IPv6-Adressen unter Linux konfigurieren und verifizieren

CompTIABeginner
Jetzt üben

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.

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.

  1. Öffnen Sie ein Terminal. Ihr Standardpfad ist ~/project.
  2. Führen Sie den Befehl ip a aus, 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 IPv4 127.0.0.1 entspricht. Der scope host zeigt 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 eine inet6-Adresse, die mit fe80:: 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. Der scope link bestä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.

  1. Wir fügen die statische GUA 2001:db8:acad::1/64 zur Schnittstelle eth0 hinzu. Die /64 gibt die Präfixlänge an, die für die meisten LANs Standard ist. Wir benötigen sudo, 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.
  2. Überprüfen Sie nun, ob die neue GUA erfolgreich zugewiesen wurde. Führen Sie den Befehl ip a erneut aus, um Ihre Netzwerkschnittstellen zu inspizieren.

    ip a
    

    Sie sollten nun die neue Adresse unter der Schnittstelle eth0 sehen. Beachten Sie scope 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.

  1. Pingen Sie die IPv6-Loopback-Adresse ::1 an. Wir verwenden die Option -c 3, um nur 3 Pakete zu senden, anstatt unbegrenzt zu pingen.

    ping6 -c 3 ::1
    

    Ein 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.

  1. Pingen Sie die GUA 2001:db8:acad::1 an, 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.

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.

  1. Führen Sie den Befehl ip a aus und identifizieren Sie die inet6-Adresse, die mit fe80:: beginnt, für die eth0-Schnittstelle.

    ip a show eth0
    

    Die 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 forever
    
  2. Pingen Sie nun diese Link-Local-Adresse an. Um den Zone Index anzugeben, hängen Sie % gefolgt vom Schnittstellennamen (eth0) an die Adresse an. Ersetzen Sie YOUR_LINK_LOCAL_ADDRESS durch die tatsächliche Adresse, die Sie gerade gefunden haben.

    ping6 -c 3 YOUR_LINK_LOCAL_ADDRESS%eth0
    

    Wenn Ihre Adresse beispielsweise fe80::216:3eff:fe00:5472 lautete, wäre der Befehl: ping6 -c 3 fe80::216:3eff:fe00:5472%eth0

    Ein 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.