Sé que la herramienta ip le permite vincular varias direcciones a una interfaz (por ejemplo, http://www.linuxplanet.com/linuxplanet/tutorials/6553/1/ ). En este momento, sin embargo, estoy tratando de construir algo sobre IPv6, y sería realmente útil tener disponible un bloque completo de direcciones (por ejemplo, a / 64), para que los programas puedan elegir cualquier dirección del rango y ato a eso. Huelga decir que conectar cada IP de este rango a una interfaz llevaría un tiempo.
¿Admite Linux vincular un bloque completo de direcciones a una interfaz?
Respuestas:
Linux 2.6.37 y superior admite esto a través de una función llamada AnyIP . Por ejemplo si corro
en una máquina Ubuntu 11.04 aceptará conexiones en cualquier dirección en la red 2001: db8 :: / 32.
fuente
ip route list
oip -6 route list
la ruta agregada no es visible. ¿Cómo enumeraría un bloque de direcciones AnyIP?Sí, Linux admite la vinculación de un bloque de direcciones de red a una interfaz de red ... pero solo en la interfaz de bucle invertido. Entonces puedes hacer esto:
Y luego haz esto:
Con las rutas apropiadas en su lugar, esto hará lo que desee ... para las direcciones IPv4. Has preguntado sobre IPv6, y no tengo ninguna experiencia con IPv6, pero hay muchas posibilidades de que funcione de la misma manera.
Originalmente leí sobre esto aquí (hacia la parte inferior del artículo). Tenga en cuenta que este artículo también analiza cómo asignar explícitamente múltiples direcciones a una interfaz utilizando las funciones de CentOS / Red Hat que no conocía anteriormente.
fuente
ip -6 route add local <ip> dev lo
.Entonces veo algunas opciones aquí:
use un script para vincular todas las direcciones a la interfaz individualmente
dirija el bloque que desea a la dirección única de su máquina, y luego haga que esa máquina use la interfaz pcap para interceptar todo el tráfico de dicho bloque (como si fuera un enrutador) y manejarlo.
Podrías jugar trucos con reglas NAT para luego reescribir un bloque de Ips que fueron enrutados a una máquina en una sola IP interna en esa máquina ... pero aún así terminarás con una IP interna por IP que realmente quieres pagar. atención, lo que lo lleva de vuelta a la solución 1.
Si yo fuera usted, simplemente escribiría el pequeño script en la opción 1. O use el de aquí :
fuente
Como han dicho otros, puede usar el mecanismo AnyIP para enrutar los paquetes que llegan para una subred completa a la interfaz localhost, pero tenga en cuenta que también necesitará que su enrutador ascendente enrute todos los paquetes deseados a esta máquina en El primer lugar. Esto se puede hacer simplemente con las entradas de la tabla de enrutamiento en el enrutador o mediante BGP. ARP no es realmente apropiado dado que su máquina tendría que ARP para cada IP individualmente.
fuente
El "Anyip" descrito anteriormente no funcionó para mí en centos 7. Tuve que crear un script para crear manualmente direcciones IPv6 en el arranque. Para hacerlo, he agregado lo siguiente a / etc / crontab:
Aquí está el script bash para crear aproximadamente 3000 direcciones ipv6:
fuente