Por que o IPv6 mata minha rede no Ubuntu 12.04?

2

Ok, eu tenho um bom servidor Ubuntu 12.04 headless rodando. Está muito feliz. É meu roteador / firewall / DNS / etc. eth0 é WAN, eth1 é LAN.

Eu posso facilmente conectar meu túnel IPv6 Hurricane Electric, e meu servidor continuará funcionando bem, e verá & amp; navega tanto ip4 & amp; sites ip6. Yay.

Mas se o ip6 estiver em execução, não poderei, pelo resto da vida, fazer com que o resto da minha rede navegue por qualquer coisa fora da minha rede.

Mas se eu reverter as alterações, minha rede estará bem.

O DNS parece continuar funcionando, já que posso fazer ping de uma máquina cliente & amp; ele resolverá o endereço, mas não retornará pings.

Que informações posso dar para ajudar você a me ajudar?

Meu palpite é que não é uma ponte de eth1 para eth0 corretamente depois que eu adicionei o ip6. Mas não consigo entender por que a ponte IP4 quebra.

Aqui estão minhas interfaces de trabalho:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address <ISP-STATICIP>
        netmask 255.255.255.240
        network <ISP-Assigned>
        broadcast <ISP-Assigned>
        gateway <ISP-Assigned>
        dns-nameservers 208.67.222.222 208.67.220.220 8.8.8.8 8.8.4.4
        post-up iptables-restore < /etc/iptables.up.rules
        dns-domain tymanthius.net
        # dns-* options are implemented by the resolvconf package, if installed
        MTU 9000

auto eth1
iface eth1 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        MTU 9000

E isso está quebrado:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo eth0 eth1 he-ipv6
iface lo inet loopback

# The primary network interface
iface eth0 inet static
        address <ISP-STATICIP>
        netmask 255.255.255.240
        network <ISP-Assigned>
        broadcast <ISP-Assigned>
        gateway <ISP-Assigned>
        dns-nameservers 208.67.222.222 208.67.220.220 8.8.8.8 8.8.4.4 2620:0:ccc::2 2620:0:ccd::2 2001:4860:4860::8888 2001:4860:4860::8844
        dns-domain tymanthius.net
        gateway 98.175.23.209
        # dns-* options are implemented by the resolvconf package, if installed

iface eth1 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        broadcast 192.168.1.255
        network 192.168.1.0

iface he-ipv6 inet6 v4tunnel
        endpoint 216.218.224.42
        address 2001:470:1f0e:1034::2
        netmask 64
        up ip -6 route add default dev he-ipv6
        down ip -6 route del default dev he-ipv6
        gateway 2001:470:1f0e:1034::3

iface eth0 inet6 static
        pre-up /sbin/modprobe -q ipv6 ; /bin/true
        address 2001:470:1f0e:1034::3
        netmask 64

iface eth1 inet6 static
        pre-up /sbin/modprobe -q ipv6 ; /bin/true
        address 2001:470:1f0e:1034::4
        netmask 64

A única outra mudança que fiz foi adicionar uma linha ao sysctrl.conf que lê "net.ipv6.conf.default.forwarding = 1"

    
por Tymanthius 04.01.2013 / 04:42

1 resposta

2

Você removeu a linha

post-up iptables-restore < /etc/iptables.up.rules

O IPv4 usa iptables e o IPv6 usa ip6tables . Pode ser que a alteração na configuração do iptables interrompa a conectividade IPv4. Então você provavelmente não quer remover essa linha. Ele pode definir a política de encaminhamento de pacotes IPv4 entre suas interfaces eth0 e eth1 , portanto, pode ser que isso quebre sua configuração ...

Um pouco mais abaixo você tem uma configuração IPv6 quebrada, mas isso não deve afetar sua conectividade IPv4.

Para o túnel, você define dois gateways padrão:

iface he-ipv6 inet6 v4tunnel
    endpoint 216.218.224.42
    address 2001:470:1f0e:1034::2
    netmask 64
    up ip -6 route add default dev he-ipv6
    down ip -6 route del default dev he-ipv6
    gateway 2001:470:1f0e:1034::3

Nas linhas up / down , você adiciona uma rota padrão apontando para o dispositivo de encapsulamento. A linha gateway adiciona outra rota padrão apontando para um endereço não utilizado na interface de túnel (HE sempre dá ao final do túnel o endereço que termina em :: 1), de modo que isso irá quebrar as coisas. A configuração a seguir deve funcionar melhor:

iface he-ipv6 inet6 v4tunnel
    endpoint 216.218.224.42
    address 2001:470:1f0e:1034::2
    netmask 64
    gateway 2001:470:1f0e:1034::1

E então você tenta fazer o impossível :-) Você tenta usar os endereços que o túnel usa no seu link eth0 também. Isso não funcionará. O prefixo IPv6 do túnel é 2001:470:1f0e:1034::/64 , que são todos os endereços no intervalo 2001:0470:1f0e:1034:0000:0000:0000:0000 to 2001:0470:1f0e:1034:ffff:ffff:ffff:ffff . Embora o encapsulamento use apenas dois endereços desse intervalo ( 2001:470:1f0e:1034::1 e 2001:470:1f0e:1034::2 ) você não pode usar os outros endereços em nenhum lugar, mas no túnel.

Seu link eth0 parece ser sua conexão com seu provedor de serviços de Internet ou rede upstream. Se ele não oferece IPv6, não o configure, especialmente com endereços que entram em conflito com outro link. Apenas remova as seguintes linhas:

iface eth0 inet6 static
    pre-up /sbin/modprobe -q ipv6 ; /bin/true
    address 2001:470:1f0e:1034::3
    netmask 64

O mesmo vale para o link eth1 . Você não pode usar os endereços do túnel em outra interface. O seguinte não funcionará:

iface eth1 inet6 static
    pre-up /sbin/modprobe -q ipv6 ; /bin/true
    address 2001:470:1f0e:1034::4
    netmask 64

Ao criar o túnel IPv6 no tunnelbroker.net você tem dois / 64's. Se o seu túnel tem 2001:470:1f0e:1034::/64 , então o seu encaminhado / 64 provavelmente tem 2001:470:1f0f:1034::/64 , mas verifique as informações que você recebeu do tunnelbroker.net para confirmar isso. Se eu estiver certo, a configuração correta deve ser:

iface eth1 inet6 static
    pre-up /sbin/modprobe -q ipv6 ; /bin/true
    address 2001:470:1f0f:1034::1
    netmask 64

E então você deve ativar o encaminhamento de IPv6. Algo como isso deve estar no seu arquivo /etc/sysctl.conf :

# Uncomment the next line to enable packet forwarding for IPv6
#  Enabling this option disables Stateless Address Autoconfiguration
#  based on Router Advertisements for this host
net.ipv6.conf.all.forwarding=1

Para finalizar a configuração, você provavelmente também deve configurar ip6tables como você configurou iptables .

    
por Sander Steffann 04.01.2013 / 17:54