Ich habe versucht, mithilfe von einen ganzen IPv6 (/ 64) -Block zu einer Schnittstelle hinzuzufügen
ip route add local 2001:41d0:2:ad64::/64 dev lo
wie hier auf meinem Debian-Server beschrieben, aber mir scheint etwas zu fehlen.
Wenn ich zum Beispiel 2001:41d0:2:ad64::fe
lokal pinge, funktioniert alles einwandfrei, aber wenn ich es von einem entfernten Rechner aus versuche, funktioniert es nicht. Ich habe dann versucht, die Route auf eth0 hinzuzufügen:
ip route add local 2001::41d0:2:ad64::/64 dev eth0
Jetzt konnte ich nicht einmal eine Beispieladresse lokal anpingen!
Ich bin ein bisschen verloren, seit ich etwas vermisse, aber ich kann die Antwort hier nicht finden.
Kurz: Ich möchte 2001:41d0:2:ad64::/64
an eth0 gebunden sein, damit jede IP, die dieser Block enthält, auf meinem Computer über das Internet erreichbar ist.
Ich hoffe jemand da draußen kann mir den richtigen Weg zeigen. Danke im Voraus.
In der vom Internetdienstanbieter bereitgestellten Anleitung muss ich jedes IPv6 explizit zur Schnittstelle hinzufügen. Ich möchte, dass es impliziert wird.
Arbeitskonfiguration mit expliziter IP-Adressbindung
/ etc / network / interfaces:
auto eth0
iface eth0 inet static
address my.ip.v4
netmask 255.255.255.0
network my.network.address.ip
broadcast my.broadcast.address.ip
gateway my.gateway.ip
iface eth0 inet6 static
address 2001:41d0:2:ad64::fe
netmask 64
gateway 2001:41d0:2:adff:ff:ff:ff:ff
up ip addr add 2001:41d0:2:ad64::1/64 dev eth0
down ip addr del 2001:41d0:2:ad64::1/64 dev eth0
up ip addr add 2001:41d0:2:ad64::2/64 dev eth0
down ip addr del 2001:41d0:2:ad64::2/64 dev eth0
up ip addr add 2001:41d0:2:ad64::3/64 dev eth0
down ip addr del 2001:41d0:2:ad64::3/64 dev eth0
up ip addr add 2001:41d0:2:ad64::4/64 dev eth0
down ip addr del 2001:41d0:2:ad64::4/64 dev eth0
up ip addr add 2001:41d0:2:ad64::5/64 dev eth0
down ip addr del 2001:41d0:2:ad64::5/64 dev eth0
up ip addr add 2001:41d0:2:ad64::6/64 dev eth0
down ip addr del 2001:41d0:2:ad64::6/64 dev eth0
up ip addr add 2001:41d0:2:ad64::7/64 dev eth0
down ip addr del 2001:41d0:2:ad64::7/64 dev eth0
up ip addr add 2001:41d0:2:ad64::8/64 dev eth0
down ip addr del 2001:41d0:2:ad64::8/64 dev eth0
up ip addr add 2001:41d0:2:ad64::9/64 dev eth0
down ip addr del 2001:41d0:2:ad64::9/64 dev eth0
up ip addr add 2001:41d0:2:ad64::a/64 dev eth0
down ip addr del 2001:41d0:2:ad64::a/64 dev eth0
Lösungsversuch # 1
Ich habe versucht, die lokale Route wieder zu aktivieren, wie von @kasperd vorgeschlagen.
Inhalt meiner / etc / network / interfaces
auto lo
iface lo inet loopback
post-up ip route add local 2001:41d0:2:ad64::/64 dev lo
pre-down ip route del local 2001:41d0:2:ad64::/64 dev lo
auto eth0
iface eth0 inet static
# <snip of ipv4 config>
iface eth0 inet6 static
address 2001:41d0:2:ad64::fe
netmask 64
gateway 2001:41d0:2:adff:ff:ff:ff:ff
Lokale Routing-Tabelle:
# ip -6 route show table local
local ::1 dev lo proto none metric 0
local 2001:41d0:2:ad64::fe dev lo proto none metric 0
local 2001:41d0:2:ad64::/64 dev lo metric 1024
local fe80::225:90ff:fe06:6bbe dev lo proto none metric 0
ff00::/8 dev eth0 metric 256
Ausgabe von traceroute
(meinem lokalen Heim-PC):
1 <1 ms <1 ms <1 ms fritz.box [xxx]
2 20 ms 21 ms 24 ms 2002:c058:6301::1
3 21 ms 22 ms 24 ms 10gigabitethernet6.switch2.fra1.he.net [2001:470
:0:150::1]
4 44 ms 31 ms 40 ms 100ge3-1.core1.ams1.he.net [2001:470:0:2d4::1]
5 * * * Zeitüberschreitung der Anforderung.
6 * * 35 ms ams-5-6k.nl.eu [2001:41d0::8d1]
7 37 ms 39 ms 36 ms rbx-g2-a9.fr.eu [2001:41d0::ab1]
8 37 ms 70 ms 36 ms chi-3-4m.il.us [2001:41d0::176]
9 Zielhost nicht erreichbar.
Ablaufverfolgung beendet.
traceroute6
auf dem Server:
traceroute to 2001:41d0:2:ad64::23 (2001:41d0:2:ad64::23), 30 hops max, 80 byte packets
1 2001:41d0:2:ad64::a (2001:41d0:2:ad64::a) 0.028 ms 0.009 ms 0.008 ms
ping6
auf dem Server:
PING 2001:41d0:2:ad64::23(2001:41d0:2:ad64::23) 56 data bytes
64 bytes from 2001:41d0:2:ad64::23: icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from 2001:41d0:2:ad64::23: icmp_seq=2 ttl=64 time=0.057 ms
^C
--- 2001:41d0:2:ad64:23 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.029/0.043/0.057/0.014 ms
tcpdump
Ausgabe (beim Pingen und Tracerouting auf dem Remote-Server):
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
tracert
zum Gateway:
Routenverfolgung zu vss-3-6k.fr.eu [2001:41d0:2:adff:ff:ff:ff:ff] über maximal 3
0 Abschnitte:
1 <1 ms <1 ms <1 ms fritz.box [2002:5476:1b4c:0:c225:6ff:fe40:b2b0]
2 23 ms 22 ms 26 ms 2002:c058:6301::1
3 24 ms 40 ms 23 ms 10gigabitethernet6.switch2.fra1.he.net [2001:470
:0:150::1]
4 28 ms 37 ms 39 ms 100ge3-1.core1.ams1.he.net [2001:470:0:2d4::1]
5 * * * Zeitüberschreitung der Anforderung.
6 38 ms 33 ms * ams-5-6k.nl.eu [2001:41d0::8d1]
7 36 ms 39 ms 38 ms rbx-g2-a9.fr.eu [2001:41d0::ab1]
8 36 ms 35 ms 35 ms vss-3-6k.fr.eu [2001:41d0:2:adff:ff:ff:ff:ff]
Ablaufverfolgung beendet.
ping
zum Gateway:
Ping wird ausgeführt für 2001:41d0:2:adff:ff:ff:ff:ff mit 32 Bytes Daten:
Antwort von 2001:41d0:2:adff:ff:ff:ff:ff: Zeit=36ms
Antwort von 2001:41d0:2:adff:ff:ff:ff:ff: Zeit=34ms
Antwort von 2001:41d0:2:adff:ff:ff:ff:ff: Zeit=38ms
Antwort von 2001:41d0:2:adff:ff:ff:ff:ff: Zeit=57ms
Ping-Statistik für 2001:41d0:2:adff:ff:ff:ff:ff:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
(0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 34ms, Maximum = 57ms, Mittelwert = 41ms
Es funktioniert also immer noch lokal (Server), aber nicht von einem entfernten Standort (meinem PC).
quelle
ip route
Befehl enthält einen Tippfehler in der IPv6-Adresse.2001:41d0:2:adff:ff:ff:ff:ff
.Antworten:
Ich habe in der Vergangenheit etwas Ähnliches gebraucht. Ich stellte fest, dass drei Schritte erforderlich sind, um dies zum Laufen zu bringen:
IP_FREEBIND
oderIP_TRANSPARENT
für Sockets festlegenDer richtige Weg, um ein Präfix an den Host weiterzuleiten, besteht darin, sich an Ihren Provider zu wenden, falls dieser Ihnen noch kein Präfix zur Verfügung stellt. Sie verfügen möglicherweise über einen DHCPv6-Server, der ein Präfix an Sie delegieren kann, wenn Sie nur die richtige DHCPv6-Anforderung an ihn senden.
Wenn ein echtes Routing-Präfix aus irgendeinem Grund nicht abgerufen werden kann, Sie jedoch über ein auf einer Ihrer Netzwerkschnittstellen verfügbares Link-Präfix Zugriff auf beliebig viele Adressen haben, können Sie einen Teil davon in ein Routing-Präfix umwandeln Ein Dämon antwortet auf Anforderungen der Nachbarerkennung für jede IPv6-Adresse in diesem Bereich.
Die Verwendung eines solchen Daemons wird nur als letzter Ausweg empfohlen, da er unnötigerweise Speicherplatz von allen Ihren Nachbarn beansprucht. Es gibt einige Implementierungen eines solchen Daemons, eine, die vielversprechend aussieht, ist ndppd . (Ich habe keine besonderen Erfahrungen damit, da ich erst davon erfahren habe, nachdem ich mein eigenes mit meinem fest codierten Link-Präfix geschrieben hatte.)
Es sieht so aus, als hätten Sie die lokale Route bereits eingerichtet. Wie Sie bemerkt haben, muss es der
lo
Schnittstelle zugewiesen werden, damit es funktioniert.Schließlich benötigen die Anwendungen, die Adressen aus diesem Bereich verwenden, eine IP-Option, um sich an Adressen binden zu können, die nicht explizit einer bestimmten Netzwerkschnittstelle auf dem Host zugewiesen sind. Hier ist ein Codefragment, das verwendet werden kann:
quelle
tcpdump -pni eth0 'host 2001:41d0:2:ad65::fe'
/etc/rc.local
Es ist jetzt 2019 Jahre. Ein Wort: ip_nonlocal_bind (seit 4.3 Kernel, wie ich vielleicht weiß).
Verwenden Sie ndppd + sysctl net.ipv6.ip_nonlocal_bind = 1. Mit der letzten Option können Sie eine Bindung an eine beliebige IPv6-Adresse herstellen (in diesem Fall ist keine IP_FREEBIND erforderlich).
Vermutlich haben Sie Folgendes getan:
ndppd.conf sieht so aus:
Führen Sie ndppd aus, und Sie können jetzt eine Bindung an eine beliebige Adresse (des hinzugefügten Blocks) herstellen und sie so verwenden, wie sie sich selbst hinzugefügt hat.
quelle