Tentando ativar o IPv6 resulta em um erro "Não há rota para hospedar"


8

Estou configurando uma rede de pilha dupla em um servidor KVM usando endereços IPv4 e IPv6 estáticos fornecidos pelo meu provedor.

Eu introduzo todos os endereços, servidores de nomes e gateways conforme necessário ao instalar o Ubuntu. Depois disso, verifiquei o /etc/network/interfacesarquivo e notei que a estrofe do IPv6 estava ausente (uma ifconfigexecução confirmou isso); por isso, adicionei as linhas relevantes. Este é o arquivo final:

# 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 151.236.18.86
        netmask 255.255.255.0
        network 151.236.18.0
        broadcast 151.236.18.255
        gateway 151.236.18.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 91.227.204.227 91.227.205.227
        dns-search mydomainname.com
iface eth0 inet6 static
        pre-up modprobe ipv6
        address 2001:b60:1000:151:236:18:86:0
        netmask 112
        gateway 2001:b60:1000::1
        dns-nameservers 2001:4860:4860::8888 2001:4860:4860::8844
        dns-search mydomainname.com

Em seguida, reiniciei a rede via sudo /etc/init.d/networking stop && sudo /etc/init.d/networking restarte notei que, enquanto o IPv4 estava funcionando, a conectividade IPv6 de saída não estava disponível (ainda não verifiquei a conectividade de entrada).

ifconfige ip -6 addrmostre que o endereço IPv6 é reconhecido:

eth0      Link encap:Ethernet  HWaddr 52:54:00:b1:27:87  
          inet addr:151.236.18.86  Bcast:151.236.18.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:feb1:2787/64 Scope:Link
          inet6 addr: 2001:b60:1000:151:236:18:86:0/112 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16409 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1178 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1126656 (1.1 MB)  TX bytes:763658 (763.6 KB)

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:b60:1000:151:236:18:86:0/112 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:feb1:2787/64 scope link 
       valid_lft forever preferred_lft forever

Pelo contrário, nenhuma rota padrão existe para a pilha IPv6:

$ ip -6 route
2001:b60:1000:151:236:18:86:0/112 dev eth0  proto kernel  metric 256 
fe80::/64 dev eth0  proto kernel  metric 256 

Tentar adicionar a rota ausente leva ao erro "Nenhuma rota para hospedar":

$ sudo ip -6 route add default via 2001:b60:1000::1
RTNETLINK answers: No route to host

O que poderia estar errado e como posso corrigir a configuração de rede para que a pilha IPv6 funcione?

Respostas:


6

Dentro da sua máquina virtual, execute o seguinte:

ping6 ff02::2%eth0

Este ff02::2é o endereço multicast do IPv6 "todos os roteadores". O roteador no link responderá ao ping com seu próprio endereço. Por exemplo:

64 bytes from fe80::56e6:fcff:fef4:66f1: icmp_seq=1 ttl=64 time=0.347 ms

Você pode adicioná-lo como o gatewayendereço.

iface eth0 inet6 static
        .....
        gateway fe80::56e6:fcff:fef4:66f1
        .....

Eu fiz isso, três roteadores responderam (ninguém correspondia ao endereço de gateway que meu provedor me forneceu); Eu escolhi aquele com a menor latência e mudei a configuração da rede. Agora, a resolução de nomes funciona, mas a conectividade IPv6 não (eu publiquei ping6 -c 3 ipv6.google.com, o DNS encontrou o endereço, mas houve 100% de perda de pacotes). Alguma ideia?
— Alessandro Menti

Três roteadores diferentes responderam? Seu provedor tem uma configuração ainda mais bizarra do que suspeitávamos. Neste ponto, só posso sugerir que você experimente cada um deles e veja se um deles funciona. Se nenhum deles funcionar, você precisará entrar em contato com o provedor para solicitar a gentileza de corrigir sua rede interrompida. :)
— Michael Hampton

3

Sua máscara de rede deve ser 64. Com o IPv6, toda LAN é geralmente um / 64. Eu acho que seu provedor permite que você use um / 112 a partir desse / 64, mas você deve configurar um / 64 na interface.


Reconfigurei a pilha IPv6 para usar um / 64 netblock, infelizmente o problema persiste com os mesmos sintomas.
— Alessandro Menti

Sinto muito, agora vejo que seu host está em 2001: b60: 1000: 151 :: / 64 e seu gateway em 2001: b60: 1000: 0 :: / 64. CDLAN deve ter-lhe dado a informação errada, ou a sua rede IPv6 é confuso e / ou afastamento da prática ...
— Sander Steffann

1
Infelizmente, esse desvio estranho é muito comum entre os provedores de VPS.
— Michael Hampton

1

Aconteceu que o comprimento da máscara de rede que o provedor me forneceu estava incorreto: o correto estava 48. Mudar fez o truque.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.