Il tentativo di abilitare IPv6 provoca un errore "Nessuna route verso l'host"


8

Sto configurando una rete dual stack su un server KVM utilizzando indirizzi IPv4 e IPv6 statici forniti dal mio provider.

Inserisco tutti gli indirizzi, i nameserver e i gateway come richiesto durante l'installazione di Ubuntu. Successivamente, ho controllato il /etc/network/interfacesfile e ho notato che la stanza IPv6 era assente ( ifconfigun'esecuzione ha confermato ciò), quindi ho aggiunto le righe pertinenti. Questo è il file finale:

# 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

Ho quindi riavviato la rete tramite sudo /etc/init.d/networking stop && sudo /etc/init.d/networking restarte ho notato che, mentre IPv4 funzionava, la connettività IPv6 in uscita non era disponibile (non ho ancora verificato la connettività in entrata).

ifconfige ip -6 addrmostra che l'indirizzo IPv6 è riconosciuto:

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

Al contrario, non esiste alcuna route predefinita per lo stack 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 

Tentare di aggiungere la route mancante porta all'errore "Nessuna route verso l'host":

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

Cosa potrebbe esserci di sbagliato e come posso correggere la configurazione di rete in modo da far funzionare lo stack IPv6?

Risposte:


6

All'interno della macchina virtuale, eseguire quanto segue:

ping6 ff02::2%eth0

Questo ff02::2è l'indirizzo multicast IPv6 "tutti i router". Il router on-link risponderà al ping con il proprio indirizzo. Per esempio:

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

È quindi possibile aggiungere questo come gatewayindirizzo.

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

L'ho fatto, tre router hanno risposto (nessuno corrispondeva all'indirizzo del gateway fornito dal mio provider); Ho scelto quello con la latenza più bassa e ho cambiato la configurazione di rete. Ora la risoluzione dei nomi funziona, ma la connettività IPv6 no (ho emesso ping6 -c 3 ipv6.google.com, il DNS ha trovato l'indirizzo ma si è verificata una perdita di pacchetti del 100%). Qualche idea?
Alessandro Menti,

Tre diversi router hanno risposto? Il tuo provider ha una configurazione ancora più bizzarra di quanto avessimo sospettato. A questo punto posso solo suggerirti di provare ciascuno di essi e vedere se uno di loro funziona. Se nessuno di loro funziona, dovrai contattare il fornitore per chiedere loro di riparare gentilmente la loro rete interrotta. :)
Michael Hampton,

3

La tua maschera di rete dovrebbe essere 64. Con IPv6 ogni LAN è di solito un / 64. Immagino che il tuo provider ti permetta di usare un / 112 da quel / 64, ma dovresti configurare un / 64 sull'interfaccia.


Ho riconfigurato lo stack IPv6 per utilizzare un netblock / 64, purtroppo il problema persiste con gli stessi sintomi.
Alessandro Menti,

Mi dispiace, ora vedo che il tuo host è nel 2001: b60: 1000: 151 :: / 64 e il tuo gateway nel 2001: b60: 1000: 0 :: / 64. CDLAN deve averti fornito informazioni errate, altrimenti la sua rete IPv6 è incasinata e / o deviante dalla pratica standard ...
Sander Steffann

1
Questa strana deviazione è, purtroppo, fin troppo comune tra i fornitori di VPS.
Michael Hampton,

1

Si è scoperto che la lunghezza della maschera di rete fornita dal provider non era corretta: quella giusta lo era 48. Cambiarlo ha funzionato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.