Desativar IPv6 na interface no Debian Wheezy?

10

Estou trabalhando no Debian Wheezy:

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

Eu configurei duas redes para o 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

Na máquina virtual, tenho o seguinte em /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

Quando examino a configuração da interface, o IPv6 está ativado:

$ 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 interfacesnão discute como desativar o IPv6 em uma interface. O Projeto Debian IPv6 não especifica como desativar o IPv6 para o Wheezy (apenas o nível do kernel para o Squeeze).

Na ausência de documentação, tentei adicionar um offe disablepara eth1e eth2, mas resultou em um erro:

iface eth1 inet6 off

(Aparentemente, a estrofe acima completamente falido rede, porque eu recebo nada fora ifconfige pingnão funciona. Além disso, eth0e losão para baixo, mesmo que eles não foram modificados.).

O que eu adiciono para /etc/network/interfacesdesativar o IPv6 nas interfaces que configurei?

jww
fonte
11
Possível duplicata de Como desativar o IPv6 no Debian Wheezy?
um CVn
Obrigado Michael. Está perto, mas não exatamente. Estou procurando desativá-lo para a interface que configurei, e não para o kernel.
JWW
2
Se você estiver satisfeito com o bloqueio do IPv6 (não desativando), poderá usá-lo ip6tablespara bloquear completamente a entrada e a saída do IPv6, mas a interface ainda estará ouvindo o IPv6.
VL-80
Outra solução possível: como por Linux IPv6 HOWTO não há possibilidade de remover um endereço IPv6 com o comando # /sbin/ifconfig <interface> inet6 del <ipv6address>/<prefixlength>. Desabilitei o IPv6 no meu kernel, então não pude testá-lo. De qualquer forma, experimente e informe-nos.
VL-80
11
Obrigado Michael. "Por que você está tentando desativar o IPv6 em uma interface" - meu pequeno laboratório fornece apenas IPv4, então não há necessidade de IPv6. O IP v6 usa recursos adicionais e aumenta a superfície de ataque. Além disso, cria muito ruído durante os traços do wireshark. Eu acho que eu poderia voltar na rede: por que as pessoas executariam algo que não querem ou precisam?
JWW

Respostas:

13

De acordo com esta resposta , o seguinte em /etc/sysctl.confdeve desativar o IPv6 em todas as interfaces:

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

Editar: para apenas uma interface, faça o seguinte (substitua <interface>pelo nome da interface):

net.ipv6.conf.<interface>.disable_ipv6 = 1
Comunidade
fonte
Pode ser necessário executar sudo sysctl -pdepois de fazer as alterações acima. (Ou, como alternativa, você pode reiniciar.)
mpb