25 votos

Puedo enlazar un (gran) bloque de direcciones a una interfaz?

Sé que la ip de la herramienta le permite enlazar varias direcciones a una interfaz (por ejemplo, http://www.linuxplanet.com/linuxplanet/tutorials/6553/1/). Ahora, sin embargo, estoy tratando de construir algo en la parte superior de IPv6, y sería muy útil disponer de todo un bloque de direcciones (es decir, un /64) disponibles, para que los programas se puede elegir cualquier dirección de la gama y se unen a eso. Huelga decir que, adjuntando todas las IP de este rango para una interfaz tomaría un tiempo.

¿El soporte de Linux de unión de todo un bloque de direcciones a una interfaz?

29voto

Gerald Combs Puntos 4598

Linux 2.6.37 y por encima de apoyos a través de una característica llamada AnyIP. Por ejemplo, si quiero correr

ip route add local 2001:db8::/32 dev lo

en Ubuntu 11.04 máquina aceptará conexiones en cualquier dirección en el 2001:db8::/32 de la red.

5voto

Eric Noob Puntos 531

Sí, Linux admite el enlace de un bloque de direcciones de red a una interfaz de red...pero sólo en la interfaz de loopback. Así que usted puede hacer esto:

ip addr add 192.168.5.0/24 dev lo

Y, a continuación, hacer esto:

$ nmap -sP -oG - 192.168.5.0/24

# Nmap 5.21 scan initiated Tue Dec  7 11:38:28 2010 as: nmap -sP -oG - 192.168.5.0/24 
Host: 192.168.5.0 ()    Status: Up
Host: 192.168.5.1 ()    Status: Up
Host: 192.168.5.2 ()    Status: Up
[...]
Host: 192.168.5.254 ()  Status: Up
Host: 192.168.5.255 ()  Status: Up
# Nmap done at Tue Dec  7 11:38:46 2010 -- 256 IP addresses (256 hosts up) scanned in 0.11 seconds

Con las rutas apropiadas en lugar de esto va a hacer lo que quieras...de direcciones IPv4. Te has preguntado acerca de IPv6, y no tengo ninguna experiencia con IPv6, pero hay una buena probabilidad de que va a funcionar de la misma manera.

Originalmente leer sobre esto aquí (hacia la parte inferior del artículo). Tenga en cuenta que este artículo también describe cómo asignar explícitamente varias direcciones a una interfaz usando CentOS/RedHat características antes no había conocido.

2voto

mreggen Puntos 2940

Así que no veo un par de opciones aquí:

  1. utilizar una secuencia de comandos para enlazar las direcciones de todos a la interfaz de forma individual

  2. ruta el bloque de la dirección única de su máquina, y luego de que la utilización de la máquina en el pcap interfaz para interceptar todo el tráfico de dicho bloque (como si de un router) y la manija.

  3. Usted podría concievably jugar con las reglas de NAT para luego reescribir un bloque de Ips que se encamina a una máquina en una sola IP interna en el equipo... pero vas a terminar con una IP interna por IP usted realmente quiere prestar atención, que te lleva de vuelta a la solución 1.

Si yo fuera tú, me acababa de escribir el pequeño script en la opción 1. O uso el de aquí:

#!/bin/sh
if [ "$#" -ne "4" ]; then
        echo Usage:
        echo " $0 interface ip range netmask"
        echo " examples:"
        echo "  1) Assuming you want to bind the IP range 192.168.0.1..192.168.0.254 to eth0 with netmask 255.255.255.0:"
        echo "  $0 eth0 192.168.0. 1..254 255.255.255.0"
        echo "  2) Assuming you want to bind the IPv6 range 2001:41d0:1:5000::1-2001:41d0:1:5000::254 to eth0 with netmask /56"
        echo "  $0 eth0 2001:41d0:1:5000:: 1..254 56"
else
        echo "Attempting to assign the IP range $2($3) to interface $1 with netmask $4"
        for ip in $(eval echo "{$3}"); do ifconfig -v $1 add $2$ip netmask $4; done
fi

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: