Der Versuch, IPv6 zu aktivieren, führt zu dem Fehler "Keine Route zum Host"

8

Ich konfiguriere ein Dual-Stack-Netzwerk auf einem KVM-Server mit statischen IPv4- und IPv6-Adressen, die von meinem Anbieter bereitgestellt wurden.

Ich gebe bei der Installation von Ubuntu alle Adressen, Nameserver und Gateways nach Bedarf ein. Danach überprüfte ich die /etc/network/interfacesDatei und stellte fest, dass die IPv6-Zeilengruppe nicht vorhanden war (eine ifconfigAusführung bestätigte dies), also fügte ich die entsprechenden Zeilen hinzu. Dies ist die endgültige Datei:

# 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

Ich habe dann das Netzwerk über neu gestartet sudo /etc/init.d/networking stop && sudo /etc/init.d/networking restartund festgestellt, dass während IPv4 funktionierte, keine ausgehende IPv6-Konnektivität verfügbar war (ich habe noch nicht nach eingehender Konnektivität gesucht).

ifconfigund ip -6 addrzeigen, dass die IPv6-Adresse erkannt wird:

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

Im Gegenteil, für den IPv6-Stack gibt es keine Standardroute:

$ 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 

Der Versuch, die fehlende Route hinzuzufügen, führt zu dem Fehler "Keine Route zum Host":

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

Was könnte falsch sein und wie kann ich die Netzwerkkonfiguration korrigieren, damit der IPv6-Stack funktioniert?

Alessandro Menti
quelle

Antworten:

6

Führen Sie in Ihrer virtuellen Maschine Folgendes aus:

ping6 ff02::2%eth0

Dies ff02::2ist die IPv6-Multicast-Adresse "Alle Router". Der On-Link-Router antwortet auf den Ping mit seiner eigenen Adresse. Zum Beispiel:

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

Sie können dies dann als gatewayAdresse hinzufügen .

iface eth0 inet6 static
        .....
        gateway fe80::56e6:fcff:fef4:66f1
        .....
Michael Hampton
quelle
Ich habe das getan, drei Router haben geantwortet (niemand stimmte mit der Gateway-Adresse überein, die mir mein Provider gegeben hat). Ich habe die mit der niedrigsten Latenz ausgewählt und die Netzwerkkonfiguration geändert. Jetzt funktioniert die Namensauflösung, die IPv6-Konnektivität jedoch nicht (ich habe ausgegeben ping6 -c 3 ipv6.google.com, der DNS hat die Adresse gefunden, aber es gab 100% Paketverlust). Irgendwelche Ideen?
Alessandro Menti
Drei verschiedene Router haben geantwortet? Ihr Provider hat ein noch bizarreres Setup als wir vermutet hatten. An dieser Stelle kann ich nur vorschlagen, dass Sie jeden von ihnen ausprobieren und prüfen, ob einer von ihnen funktioniert. Wenn keiner von ihnen funktioniert, müssen Sie sich an den Anbieter wenden, um ihn zu bitten, das defekte Netzwerk zu reparieren. :)
Michael Hampton
3

Ihre Netzmaske sollte 64 sein. Bei IPv6 ist jedes LAN normalerweise ein / 64. Ich denke, Ihr Provider erlaubt Ihnen, eine / 112 von dieser / 64 zu verwenden, aber Sie sollten eine / 64 auf der Schnittstelle konfigurieren.

Sander Steffann
quelle
Ich habe den IPv6-Stack für die Verwendung eines / 64-Netzblocks neu konfiguriert. Leider besteht das Problem weiterhin mit denselben Symptomen.
Alessandro Menti
Es tut mir leid, ich sehe jetzt, dass Ihr Host im Jahr 2001: b60: 1000: 151 :: / 64 und Ihr Gateway im Jahr 2001: b60: 1000: 0 :: / 64 ist. CDLAN muss Ihnen die falschen Informationen gegeben haben, oder ihr IPv6-Netzwerk ist durcheinander und / oder weicht von der Standardpraxis ab ...
Sander Steffann
1
Diese seltsame Abweichung ist bei VPS-Anbietern leider nur allzu häufig.
Michael Hampton
1

Es stellte sich heraus, dass die vom Anbieter angegebene Netzwerkmaskenlänge falsch war: die richtige war 48. Das Ändern hat den Trick getan.

Alessandro Menti
quelle