Einführung
In diesem Labor lernen Sie die grundlegenden Fähigkeiten zur Konfiguration und Überprüfung von IPv6-Adressen auf einem Linux-System. Mithilfe moderner Kommandozeilen-Tools sammeln Sie praktische Erfahrungen mit den wesentlichen Aufgaben der IPv6-Netzwerkverwaltung, von der Inspektion bis zur statischen Konfiguration und Konnektivitätstests. Dieses Labor konzentriert sich auf die Verwendung des ip-Befehls aus der iproute2-Suite und des ping6-Dienstprogramms, die in modernen Linux-Distributionen wie Ubuntu 22.04 Standard sind.
Sie beginnen mit dem ip a-Befehl, um die automatisch konfigurierten IPv6-Loopback- und Link-Local-Adressen auf Ihren Netzwerkschnittstellen zu ermitteln. Als Nächstes weisen Sie einer Schnittstelle manuell eine statische globale Unicast-Adresse zu. Schließlich verwenden Sie den ping6-Befehl, um die Netzwerkkonnektivität zu den Loopback-, Link-Local- und neu konfigurierten globalen Unicast-Adressen zu überprüfen und zu bestätigen, dass Ihre IPv6-Einrichtung korrekt funktioniert.
Link-Local- und Loopback-Adressen mit ip a entdecken
In diesem Schritt lernen Sie, wie Sie die IPv6-Adressen entdecken, die automatisch auf Ihrem System konfiguriert werden. Moderne Linux-Distributionen, einschließlich Ubuntu 22.04, haben IPv6 standardmäßig aktiviert. Wir werden den ip-Befehl verwenden, das moderne und empfohlene Werkzeug für Netzwerkkonfiguration und -inspektion unter Linux.
Zuerst inspizieren wir die Netzwerkschnittstellen und ihre zugewiesenen Adressen. Der Befehl ip a ist eine Kurzform für ip address.
- Öffnen Sie ein Terminal. Ihr Standardpfad ist
~/project. - Führen Sie den Befehl
ip aaus, um alle Netzwerkschnittstellen und ihre Adressen aufzulisten.
ip a
Sie sehen eine Ausgabe, die der folgenden ähnelt. Die genauen Schnittstellennamen (wie eth0) und Adressen können variieren, aber die Struktur wird dieselbe sein.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:16:3e:00:54:72 brd ff:ff:ff:ff:ff:ff
altname enp0s5
altname ens5
inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
valid_lft 1892159972sec preferred_lft 1892159972sec
inet6 fe80::216:3eff:fe00:5472/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:89:01:6f:fc brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
Nun analysieren wir die Ausgabe, um die wichtigsten IPv6-Adressen zu identifizieren:
Loopback-Adresse: Suchen Sie nach der Schnittstelle namens
lo. Dies ist die virtuelle Loopback-Schnittstelle, die zum Testen des Netzwerkstacks auf dem lokalen Rechner verwendet wird. Sie sehen die IPv6-Adresse::1/128. Dies ist die IPv6-Loopback-Adresse, die in IPv4127.0.0.1entspricht. Derscope hostzeigt an, dass sie nur innerhalb des Hosts selbst gültig ist.Link-Local-Adresse: Suchen Sie nach Ihrer primären Netzwerkschnittstelle (z. B.
eth0,enp0s3). Sie finden eineinet6-Adresse, die mitfe80::beginnt. Dies ist Ihre Link-Local-Adresse. Sie wird jeder IPv6-fähigen Schnittstelle automatisch zugewiesen und für die Kommunikation nur im lokalen Netzwerksegment (z. B. Ihrem lokalen Ethernet-LAN) verwendet. Derscope linkbestätigt, dass diese Adresse nur auf der lokalen Verbindung gültig und nicht im Internet routbar ist.
Sie haben nun erfolgreich die beiden grundlegenden Arten von automatisch konfigurierten IPv6-Adressen auf Ihrem System identifiziert.
Statische globale Unicast-Adresse mit ip addr add hinzufügen
In diesem Schritt konfigurieren Sie manuell eine globale Unicast-Adresse (GUA) auf Ihrer Netzwerkschnittstelle. Während Link-Local-Adressen für die Kommunikation im lokalen Netzwerksegment verwendet werden, sind GUAs das IPv6-Äquivalent zu öffentlichen IPv4-Adressen. Sie sind global eindeutig und im Internet routbar.
Für dieses Labor verwenden wir eine Adresse aus dem 2001:db8::/32-Block, der speziell für Dokumentation und Beispiele reserviert ist. Dies stellt sicher, dass wir nicht versehentlich eine reale, bereits verwendete Internetadresse verwenden.
Wir fügen die statische GUA
2001:db8:acad::1/64zur Schnittstelleeth0hinzu. Die/64gibt die Präfixlänge an, die für die meisten LANs Standard ist. Wir benötigensudo, da die Änderung von Netzwerkschnittstellen Administratorrechte erfordert.sudo ip -6 addr add 2001:db8:acad::1/64 dev eth0- Hinweis: Diese Änderung ist temporär und wird entfernt, wenn Sie das System neu starten. Für eine dauerhafte Konfiguration unter Ubuntu würden Sie normalerweise Dateien in
/etc/netplan/bearbeiten, aber das liegt außerhalb des Rahmens dieses Labors.
- Hinweis: Diese Änderung ist temporär und wird entfernt, wenn Sie das System neu starten. Für eine dauerhafte Konfiguration unter Ubuntu würden Sie normalerweise Dateien in
Überprüfen Sie nun, ob die neue GUA erfolgreich zugewiesen wurde. Führen Sie den Befehl
ip aerneut aus, um Ihre Netzwerkschnittstellen zu inspizieren.ip aSie sollten nun die neue Adresse unter der Schnittstelle
eth0sehen. Beachten Siescope global, was darauf hinweist, dass dies eine routbare Adresse ist.1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:00:54:72 brd ff:ff:ff:ff:ff:ff altname enp0s5 altname ens5 inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0 valid_lft 1892159959sec preferred_lft 1892159959sec inet6 2001:db8:acad::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::216:3eff:fe00:5472/64 scope link valid_lft forever preferred_lft forever
Sie haben erfolgreich eine statische IPv6 GUA Ihrer Netzwerkschnittstelle zugewiesen. Im nächsten Schritt testen wir die Konnektivität zu dieser neuen Adresse.
Konnektivität zu Loopback und GUA mit ping6 testen
In diesem Schritt verwenden Sie das Dienstprogramm ping6, um die IPv6-Konnektivität zu testen. Dieser Befehl ist das IPv6-Äquivalent des bekannten ping-Befehls und ist für die Netzwerkdiagnose unerlässlich. Wir werden überprüfen, ob Ihr lokaler IPv6-Stack korrekt funktioniert und ob die globale Unicast-Adresse (GUA), die Sie im vorherigen Schritt konfiguriert haben, reagiert.
Zuerst testen wir den lokalen IPv6-Stack, indem wir die Loopback-Adresse anpingen.
Pingen Sie die IPv6-Loopback-Adresse
::1an. Wir verwenden die Option-c 3, um nur 3 Pakete zu senden, anstatt unbegrenzt zu pingen.ping6 -c 3 ::1Ein erfolgreicher Test zeigt, dass Pakete mit 0% Paketverlust gesendet und empfangen werden, was bestätigt, dass Ihr lokaler IPv6-Stack betriebsbereit ist.
PING ::1(::1) 56 data bytes 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.026 ms 64 bytes from ::1: icmp_seq=2 ttl=64 time=0.021 ms 64 bytes from ::1: icmp_seq=3 ttl=64 time=0.035 ms --- ::1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2030ms rtt min/avg/max/mdev = 0.021/0.027/0.035/0.005 ms
Als Nächstes testen wir die GUA, die Sie der Schnittstelle eth0 manuell zugewiesen haben. Dies bestätigt, dass die Schnittstelle korrekt konfiguriert ist und auf dieser Adresse lauscht.
Pingen Sie die GUA
2001:db8:acad::1an, die Sie im vorherigen Schritt hinzugefügt haben.ping6 -c 3 2001:db8:acad::1Ähnlich wie beim Loopback-Test zeigt ein erfolgreiches Ergebnis Antworten von der Adresse an, was bestätigt, dass sie korrekt zugewiesen und auf dem Host erreichbar ist.
PING 2001:db8:acad::1(2001:db8:acad::1) 56 data bytes 64 bytes from 2001:db8:acad::1: icmp_seq=1 ttl=64 time=0.028 ms 64 bytes from 2001:db8:acad::1: icmp_seq=2 ttl=64 time=0.037 ms 64 bytes from 2001:db8:acad::1: icmp_seq=3 ttl=64 time=0.038 ms --- 2001:db8:acad::1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2034ms rtt min/avg/max/mdev = 0.028/0.034/0.038/0.004 ms
Sie haben nun erfolgreich die Konnektivität sowohl zur Loopback-Adresse als auch zu Ihrer manuell konfigurierten globalen Unicast-Adresse verifiziert.
Konnektivität der Link-Local-Adresse mit ping6 testen
In diesem Schritt lernen Sie, wie Sie die Konnektivität zu einer Link-Local-Adresse testen. Wie Sie bereits festgestellt haben, beginnen diese Adressen mit fe80:: und sind nur in einem einzigen Netzwerksegment (dem "Link") gültig. Da sie nicht global eindeutig sind, müssen Sie dem ping6-Befehl zusätzliche Informationen bereitstellen, um anzugeben, welche Netzwerkschnittstelle zum Senden des Pings verwendet werden soll. Dies wird als "Zone Index" oder "Scope ID" bezeichnet.
Zuerst müssen Sie die Link-Local-Adresse Ihrer eth0-Schnittstelle erneut ermitteln.
Führen Sie den Befehl
ip aaus und identifizieren Sie dieinet6-Adresse, die mitfe80::beginnt, für dieeth0-Schnittstelle.ip a show eth0Die Ausgabe wird ähnlich wie diese aussehen. Sie müssen die Adresse kopieren (z. B.
fe80::xxxx:xxff:fexx:xxxx).2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:00:54:72 brd ff:ff:ff:ff:ff:ff altname enp0s5 altname ens5 inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0 valid_lft 1892159869sec preferred_lft 1892159869sec inet6 2001:db8:acad::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::216:3eff:fe00:5472/64 scope link valid_lft forever preferred_lft foreverPingen Sie nun diese Link-Local-Adresse an. Um den Zone Index anzugeben, hängen Sie
%gefolgt vom Schnittstellennamen (eth0) an die Adresse an. Ersetzen SieYOUR_LINK_LOCAL_ADDRESSdurch die tatsächliche Adresse, die Sie gerade gefunden haben.ping6 -c 3 YOUR_LINK_LOCAL_ADDRESS%eth0Wenn Ihre Adresse beispielsweise
fe80::216:3eff:fe00:5472lautete, wäre der Befehl:ping6 -c 3 fe80::216:3eff:fe00:5472%eth0Ein erfolgreicher Ping bestätigt, dass die Schnittstelle auf ihre Link-Local-Adresse reagiert.
PING fe80::216:3eff:fe00:5472%eth0(fe80::216:3eff:fe00:5472%eth0) 56 data bytes 64 bytes from fe80::216:3eff:fe00:5472%eth0: icmp_seq=1 ttl=64 time=0.031 ms 64 bytes from fe80::216:3eff:fe00:5472%eth0: icmp_seq=2 ttl=64 time=0.030 ms 64 bytes from fe80::216:3eff:fe00:5472%eth0: icmp_seq=3 ttl=64 time=0.030 ms --- fe80::216:3eff:fe00:5472%eth0 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2028ms rtt min/avg/max/mdev = 0.030/0.030/0.031/0.000 ms
Wenn Sie den %eth0-Teil vergessen, schlägt der Befehl fehl, da das System nicht weiß, welche Schnittstelle für das Link-Local-Ziel verwendet werden soll. Diese spezielle Syntax ist ein Schlüsselkonzept bei der Handhabung von Link-Local-IPv6-Adressen.
Zusammenfassung
In diesem Lab haben Sie grundlegende IPv6-Konfigurations- und Verifizierungsaufgaben auf einem Linux-System mit der ip-Befehlssuite durchgeführt. Sie haben zunächst ip a verwendet, um die Netzwerkschnittstellen zu inspizieren und erfolgreich die automatisch zugewiesene IPv6-Loopback-Adresse (::1) auf der lo-Schnittstelle sowie die Link-Local-Adresse (mit fe80:: beginnend) auf der primären Netzwerkschnittstelle identifiziert. Anschließend haben Sie eine statische globale Unicast-Adresse (GUA) auf der primären Schnittstelle mit dem Befehl ip addr add manuell konfiguriert.
Zur Validierung der Konfiguration haben Sie das Dienstprogramm ping6 verwendet. Sie haben bestätigt, dass der lokale Netzwerk-Stack betriebsbereit ist, indem Sie die Loopback-Adresse angepingt haben, und verifiziert, dass die statische GUA korrekt zugewiesen und erreichbar war. Schließlich haben Sie die spezifische Anforderung für das Testen von Link-Local-Adressen kennengelernt, die die Verwendung der %interface-Syntax mit ping6 beinhaltet, um den Zone Index (ausgehende Schnittstelle) explizit anzugeben – ein notwendiger Schritt aufgrund des link-Scopes dieser Adressen.



