Wir haben jetzt 2013 und ich dachte, es ist längst überfällig, IPv6 auf meinem Server zu aktivieren. Aber leider hatte ich einige Probleme. Um ehrlich zu sein, habe ich nur wenig Erfahrung mit IPv6. Ich hoffe, Sie können mir bei meinem "kleinen" Problem helfen.
Eine kleine Bemerkung: Die folgenden Adressen sind verschleiert, es ist nicht das, was ich in meinen Konfigurationen verwendet habe;)
Ich führe einen Debian-Squeeze (Debian 2.6.32-46) aus und habe von meinem Provider einen / 64-IPv6-Block erhalten: 2a01: 4f8: a0: aaaa :: / 64
Daher habe ich die Datei / etc / network / interfaces wie folgt geändert (was auch von meinem Provider empfohlen wird):
# Loopback device:
auto lo
iface lo inet loopback
# device: eth0
auto eth0
iface eth0 inet static
address 85.10.xxx.zz
broadcast 85.10.xxx.yy
netmask 255.255.255.224
gateway 85.10.xxx.1
iface eth0 inet6 static
# Main IPv6 Address of the server
address 2a01:4f8:a0:aaaa::2
netmask 64
gateway fe80::1
auto eth0:1
iface eth0:1 inet static
address 85.10.xxxx.uu
netmask 255.255.255.224
# default route to access subnet
up route add -net 85.10.xxx.0 netmask 255.255.255.224 gw 85.10.xxx.1 eth0
Nach einem Neustart (ich bin faul und wollte nicht alles mit route
oder hinzufügen ip
) sieht meine eth0- Schnittstelle folgendermaßen aus:
eth0 < first line removed >
inet addr:85.10.xxx.zz Bcast:85.10.xxx.yy Mask:255.255.255.224
inet6 addr: 2a01:4f8:a0:aaaa::2/64 Scope:Global
inet6 addr: fe80::bbbb:cccc:dddd:eeee/64 Scope:Link <--- from MAC address
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24133 errors:0 dropped:0 overruns:0 frame:0
TX packets:21712 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3464246 (3.3 MiB) TX bytes:5776451 (5.5 MiB)
Interrupt:25 Base address:0x2000
und die Routen ip -6 route
sehen so aus:
2a01:4f8:a0:aaaa::/64 dev eth0 metric 1024 mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev vboxnet0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
default via fe80::1 dev eth0 metric 1024 mtu 1500 advmss 1440 hoplimit 4294967295
Mein Problem ist nun, dass mein IPv6 nicht richtig funktioniert. Wenn ich versuche, eine IPv6-Adresse zu pingen, z. B. ping6 ipv6.google.com. Ich erhalte: "Ziel nicht erreichbar: Adresse nicht erreichbar"
Welches sieht so aus in tcpdump -i eth0 ip6
:
00:29:05.386500 IP6 2a01:4f8:a0:aaaa::2 > ff02::1:ff00:1: ICMP6, neighbor solicitation, who has fe80::1, length 32
00:29:05.390869 IP6 2a01:4f8:a0:bbbb::1 > 2a01:4f8:a0:aaaa::2: ICMP6, neighbor advertisement, tgt is fe80::1, length 32
2a01: 4f8: a0: bbbb :: 1 ist übrigens. als mein Gateway aufgeführt (an der Online-Administratorkonsole meines Providers).
Ich denke, der Grund für all dies ist der fehlende NDP-Eintrag / die fehlende MAC-Adresse von fe80 :: 1 . Weil ip -6 neigh
gibt mir:
fe80::1 dev eth0 router FAILED
Ich denke schon, wenn ich das tue: ping6 -I eth0 fe80::1
Ich bekomme eine richtige Echoantwort und die gewünschte Mac-Adresse für meine fe80 :: 1- Adresse sowie einen perfekt funktionierenden IPv6-Stack:
$ip -6 neigh
fe80::1 dev eth0 lladdr ll:mm:nn:oo:pp:qq router REACHABLE
Hier ist auch wieder der Dump von tcpdump -i eth0 ip6
:
00:30:37.555702 IP6 fe80::bbbb:cccc:dddd:eeee > fe80::1: ICMP6, echo request, seq 1, length 64
00:30:37.560219 IP6 fe80::1 > fe80::bbbb:cccc:dddd:eeee: ICMP6, echo reply, seq 1, length 64
(wieder: fe80 :: bbbb: cccc: dddd: eeee ist meine linklokale Adresse, abgeleitet von der MAC-Adresse)
Ab diesem Zeitpunkt kann ich IPv6 verwenden: Ich kann Ping6-Websites verwenden, über IPv6 eine Verbindung zu Diensten herstellen oder über IPS6 über SSH sogar eine Verbindung zu meinem Server herstellen.
Also, was mache ich hier falsch? Ich habe viel Zeit damit verbracht, herauszufinden, wie man das "behebt". Ich wette, es kann mit zwei Befehlen gelöst werden. Dies ist übrigens das erste Mal, dass ich mich mit IPv6 auf einem Server beschäftige. Also bitte vergib mir meine Unerfahrenheit. Übrigens. Ich habe auch versucht, einige sysctl net.ipv6. * -Flaggen zu ändern, aber ohne Erfolg. Wenn es für die Lösung notwendig ist, kann ich meine Konfiguration auch hier posten.
Jeder Hinweis ist mehr als willkommen!
Vielen Dank im Voraus!
Ich schaue auf den Teil Ihrer Frage, in dem Sie sagen:
Das ist merkwürdig. Ihr System sendet eine korrekte (soweit ich aus Ihrem tcpdump ersehen kann) Nachbarwerbung und der Router sendet eine korrekte (erneut AFAICT) Nachbarwerbung zurück. Dies würde auf ein Problem auf Ihrem lokalen Computer hinweisen.
Führen Sie auf diesem Computer eine Firewall durch? Die ICMPv6-Filterung unterscheidet sich stark von der ICMP-Filterung. Viel mehr Teile der IPv6-Kommunikation benötigen ordnungsgemäß funktionierendes ICMPv6. Wenn Sie zu viel oder falsch filtern, treten Probleme genau so auf, wie Sie sie jetzt sehen.
Wenn Sie weitere Informationen wünschen, schauen Sie sich bitte RFC 4890 an .
quelle
Versuchen Sie stattdessen, eine der tatsächlichen Adressen des Routers als Standard-Gateway zu verwenden
fe80::1
.quelle
Ihr Gateway für IPv6 sollte sich im selben Subnetz befinden
So etwas wie 2a01: 4f8: a0: aaaa :: 1 Dies ist in der Router- oder VLAN-Konfiguration festgelegt. Bitte überprüfen Sie, was Sie in Ihrem Router haben. eine Probe:
quelle
Der Punkt ist, dass IPv6 ICMPv6 verwendet, um den Verbindungsstatus zu überprüfen, im Gegensatz zu IPv4, wo ARP diesen Zweck erfüllt. Deshalb funktioniert nach dem Pingen alles. Passen Sie Ihre Firewall-Regeln an:
quelle