¿Deshabilitar IPv6 en la interfaz en Debian Wheezy?

10

Estoy trabajando en Debian Wheezy:

$ uname -a
Linux openstack1 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux

Configuré dos redes para VirtualBox:

# Public network vboxnet0 (10.1.0.0/16)
VBoxManage hostonlyif create
VBoxManage hostonlyif ipconfig vboxnet0 --ip 10.1.0.254 --netmask 255.255.0.0

# Private network vboxnet1 (10.2.0.0/16)
VBoxManage hostonlyif create
VBoxManage hostonlyif ipconfig vboxnet1 --ip 10.2.0.254 --netmask 255.255.0.0
...

# VirtualBox Network
VBoxManage modifyvm openstack1 --nic1 nat \
  --nic2 hostonly --hostonlyadapter2 vboxnet0 \
  --nic3 hostonly --hostonlyadapter3 vboxnet1

En la máquina virtual, tengo lo siguiente en /etc/network/interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# Primary network interface
auto eth0
iface eth0 inet dhcp

# Public network (OpenStack)
auto eth1
iface eth1 inet static
    address 10.1.0.10
    netmask 255.255.0.0
    network 10.1.0.0
    broadcast 10.1.255.255

# Private network (OpenStack)
auto eth2
iface eth2 inet static
    address 10.2.0.10
    netmask 255.255.0.0
    network 10.2.0.0
    broadcast 10.2.255.255

Cuando examino la configuración de la interfaz, IPv6 está habilitado:

$ sudo ifconfig
[sudo] password for openstack: 
eth0      Link encap:Ethernet  HWaddr 08:00:27:6f:c5:38  
          inet addr:172.16.1.23  Bcast:172.31.255.255  Mask:255.240.0.0
          inet6 addr: fe80::a00:27ff:fe6f:c538/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:614 errors:0 dropped:0 overruns:0 frame:0
          TX packets:120 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:61279 (59.8 KiB)  TX bytes:13336 (13.0 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:79:99:40  
          inet addr:10.1.0.10  Bcast:10.1.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a00:27ff:fe79:9940/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:35 errors:0 dropped:0 overruns:0 frame:0
          TX packets:55 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5288 (5.1 KiB)  TX bytes:8485 (8.2 KiB)

eth2      Link encap:Ethernet  HWaddr 08:00:27:f1:7b:f5  
          inet addr:10.2.0.10  Bcast:10.2.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a00:27ff:fef1:7bf5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:35 errors:0 dropped:0 overruns:0 frame:0
          TX packets:55 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5288 (5.1 KiB)  TX bytes:8690 (8.4 KiB)

man 5 interfacesno analiza cómo deshabilitar IPv6 en una interfaz. El proyecto Debian IPv6 no especifica cómo deshabilitar IPv6 para Wheezy (solo el nivel de kernel para Squeeze).

En ausencia de documentación, He intentado añadir una offy disablede eth1y eth2, pero el resultado fue un error:

iface eth1 inet6 off

(Al parecer, la estrofa anterior se rompió por completo la creación de redes porque me sale nada fuera de ifconfigy pingno funciona. Además, eth0y lohan bajado a pesar de que no se modificaron.).

¿Qué agrego para /etc/network/interfacesdeshabilitar IPv6 en las interfaces que he configurado?

jww
fuente
1
Posible duplicado de ¿Cómo deshabilitar IPv6 en Debian Wheezy?
un CVn
Gracias michael Está cerca, pero no del todo. Estoy buscando deshabilitarlo para la interfaz que configuré y no para el núcleo.
jww
2
Si está contento con bloquear IPv6 (no deshabilitar), puede usarlo ip6tablespara bloquear completamente la entrada y salida de IPv6, pero la interfaz seguirá escuchando IPv6.
VL-80
Otra posible solución: según Linux IPv6 HOWTO, existe la posibilidad de eliminar una dirección IPv6 con el comando # /sbin/ifconfig <interface> inet6 del <ipv6address>/<prefixlength>. Deshabilité IPv6 en mi kernel, por lo que no pude probarlo. De todos modos, pruébalo y avísanos.
VL-80
1
Gracias michael "¿Por qué está tratando de deshabilitar IPv6 en una interfaz"? Mi pequeño laboratorio solo proporciona IPv4, por lo que no hay necesidad de IPv6. IP v6 utiliza recursos adicionales y aumenta la superficie de ataque. Además, genera mucho ruido durante las huellas de los cables de conexión. Supongo que podría enviarlo de vuelta a través de la red: ¿por qué las personas ejecutarían algo que no quieren o necesitan?
jww

Respuestas:

13

Según esta respuesta , lo siguiente /etc/sysctl.confdebería deshabilitar IPv6 en todas las interfaces:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Editar: para una sola interfaz, lo siguiente debería hacer el truco (reemplazar <interface>con el nombre de la interfaz):

net.ipv6.conf.<interface>.disable_ipv6 = 1
Comunidad
fuente
Es posible que deba ejecutar sudo sysctl -pdespués de realizar los cambios anteriores. (O, alternativamente, podría reiniciar.)
mpb