Benutzerdefinierte IPv6-Loopback-Adresse und Ping von einem anderen Host

Benutzerdefinierte IPv6-Loopback-Adresse und Ping von einem anderen Host

Kann ich oder wie kann ich der Loopback-Schnittstelle von Host A eine benutzerdefinierte IPv6-Adresse hinzufügen und sie vom Host B aus anpingen?

Ich habe versucht, etwas wie dies hinzuzufügen ::ffff:5:4:3:2, jedoch ip -6 routeheißt es, dass dieses Ziel unreachablebei ist error 101, ich es aber von Host A aus anpingen kann. Wenn ich diese Adresse tap0beispielsweise auf einstelle, ist die Route erreichbar, aber immer noch „nicht pingbar“ von Host B aus. Ich kann nicht verstehen, welche Adressen Loopback zulässt, warum meine benutzerdefinierte Adresse nicht erreichbar ist, warum ich sie von Host A aus anpingen kann, wie ich route_localnetund rp_filterfür IPv6 aktiviere.

Betriebssystem: ArchLinux, Kernel 4.10.

Ich weiß, wie es bei IPv4 geht, aber IPv6 funktioniert völlig (oder nicht?) anders.

Antwort1

Ja. Genau wie bei IPv4 nennt sich das Routing. Sie müssen einem Host mitteilen, wie er einen anderen Host erreichen kann.

Nehmen wir an, wir haben zwei Hosts, A und B.

Host A hat seine Standard-Loopback-Adresse ::1sowie Ihre benutzerdefinierte Adresse auf der Loopback-Schnittstelle. (In meinem Beispiel lautet die benutzerdefinierte Adresse fd56:dcaa:2099::1. Ich habe diese aus einer eindeutigen lokalen Adresse ausgewählt. Sie solltenULA-Adressen verwendenfür solche Zwecke.)

Host A hat auch eine Ethernet-Schnittstelle, nennen wir sie eth0. In IPv6 hat sie eine IPv6-Link-Local-Adresse. Sie kann auch andere IPv6-Adressen haben. Diese können Sie finden, indem Sie ausführen ip -6 addr eth0. Hier ist ein Beispiel aus meinem System:

$ ip -6 addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2601:404:ce00:adc0:9d6c:9e16:a9a9:b03b/64 scope global temporary dynamic 
       valid_lft 593594sec preferred_lft 74600sec
    inet6 2601:404:ce00:adc0:bc87:129a:ed5d:814/64 scope global temporary deprecated dynamic 
       valid_lft 78769sec preferred_lft 0sec                                                                                                                                                                                      
    inet6 2601:404:ce00:adc0:1453:3734:6742:4500/64 scope global mngtmpaddr noprefixroute dynamic                                                                                                                                 
       valid_lft 2591820sec preferred_lft 604620sec                                                                                                                                                                               
    inet6 fe80::5520:a68f:5416:a68c/64 scope link                                                                                                                                                                                 
       valid_lft forever preferred_lft forever

In dieser Liste sind vier verschiedene Adressen (es können auch mehr sein). Für unsere Zwecke brauchen Sie die Adresse, hinter der „Scope Link“ steht. Auf meinem System (und in meinem Beispiel) ist das fe80::5520:a68f:5416:a68c.

Auf Host B gibt es auch eine Schnittstelle eth0. Damit Host B die spezielle Loopback-Adresse von Host A erreichen kann, muss Host B wissen, wo sie zu finden ist. Dazu fügen Sie der Routing-Tabelle von Host B einen Eintrag hinzu:

# ip route add fd56:dcaa:2099::1 via fe80::5520:a68f:5416:a68c dev eth0

Wir teilen dem Kernel von Host B mit, dass er fd56:dcaa:2099::1(die spezielle Adresse von Host A auf seiner Loopback-Schnittstelle) unter fe80::5520:a68f:5416:a68c(die Link-Local-Adresse von Host A auf seiner eth0Schnittstelle) erreichen kann, Host B jedoch versuchen muss, fe80::5520:a68f:5416:a68cvonGastgeber B eth0Schnittstelle. (Das ist das Knifflige an Link-Local-Adressen. Die Adresse selbst ist nur im Kontext eines bestimmten Netzwerksegments von Bedeutung. Weitere Einzelheiten finden Sie im OSI-Netzwerkmodell.)

Sobald Sie diesen Eintrag in der Routing-Tabelle von Host B haben, sollten Sie in der Lage sein, die benutzerdefinierte Adresse von Host A von Host B aus anzupingen, da Host B nun weiß, dass er die Link-Local-Adresse von Host A als Router verwenden muss, um diese Adresse zu erreichen.

Antwort2

Denn Loopback-Adressen und Schnittstellen sind für die Kommunikation innerhalb eines einzelnen Hosts gedacht. Sie sind nicht für die Kommunikation mit einem anderen Gerät vorgesehen.

verwandte Informationen