L i n u x    B e f e h l    ip

Kommando ip dient der Konfiguration von IP Adressen, Netzwerk Schnittstellen und Routing. Es gehört zum iproute2 Paket, das von allen aktuellen Linux-Distributionen installiert wird. Das Kommando ersetzt das obsolet gewordene ifconfig.

  1. Einführung

    SYNTAX: ip [OPTIONS] OBJECT {COMMAND | help }

    Linux cmd ip syntax
    Syntax des Kommandos ip

    Die meist verwendeten OBJECTs sind:

    • address zeigt und ändert IP Addressen
    • link zeigt und ändert Netwerkschnittstellen
    • route zeigt und ändert routing Tabellen
    • neigh zeigt und ändert "neighbor" Objekte (vgl. ARP Tabellen)

    Objekte können auch verkürzt gekennzeichnet werden z.B address, addr und sogar a.

    Um spezifische Hilfe zu einem Objekt zu erhalten, tippt man ip OBJECT help.

    Linux cmd ip route help
    ip route help

    Beachte:

    • Eine Änderung der Konfiguration über ip gilt unmittelbar nach Aufruf des Kommandos, kein Neustart nötig.
    • Auch geht sie nach einem Reboot verloren, es sei denn die Konfigurationsdaten wurden in dafür vorgesehenen Dateien gespeichert (Solcher Schritt setzt Adminrechte voraus).

    ip ist mächtig und vielfältig: Es wird nachstehend nur ein Bruchteil der Anwendungsmöglichkeiten besprochen.

  2. Anwendungsbeispiele von ip bezogen auf das Objekt address

    Mit dem address Objekt sind die meist verwendeten Aktionen show, add, del.

    1. ip address show
      listet alle bekannten IP Adressen auf.

      Hinweise zu verkürzten Schreibweisen:
      ⇒ Da Aktion show standardmäßig eingestellt ist, kann sie ausgelassen bleiben.
      ⇒ Das Objekt der Aktion show, nämlich address, kann in addr oder sogar a verkürzt werden.
      Folgende Abkürzungen sind also zulässig: ip address oder ip addr sogar ip a.

      Linux cmd ip address show
      ip Objekt=Address Aktion=show

      Im dargestellten Fallbeispiel werden 2 Netzwerkschnittstellen (Network Interfaces, NI) und zugeordnete Informationen (darunter die IPs) angezeigt.

      1. lo mit IP 127.0.0.1 ist die LOOPBACK Schnittstelle (Diese IP wird für die Kommunikation innerhalb des Rechners verwendet).
      2. enp57s0f1 mit IP 192.168.178.21 ist die (physikalische) IP Adresse des Rechners, welche ihn innerhalb des LAN (Local Area Network) identifiziert.

      Erläuterung der Ausgabe:
      1. Merkmale der (virtuellen) Schnittstelle lo

        <LOOPBACK,UP,LOWER_UP>

        Dies ist eine LOOPBACK Schnittstelle, die aktiv (UP) ist sowie die zugeordnete Hardware-Schicht (LOWER_UP).

        mtu 65536

        Maximum Transfer Unit: Maximale Größe einer Übertragungseinheit dieser Schnittstelle in Byte.

        qdisc noqueue

        qdisc ist der Name des Verfahrens (des Programms) zur Steuerung der Datenwarteschlange vor Sendung der Datenpakete. Das Verfahren kennt verschiedene Optionen - namens discipline -

        State UNKNOWN

        Die Schnittstelle funktioniert. Derzeit ist aber nicht angeschlossen.
        Weitere Zustände sind DOWN (Die Schnittstelle funktioniert nicht) UP (Die Schnittstelle funktioniert und wurde angeschlossen).

        group default

        Schnittstellen werden logischen Gruppen zugeordnet. Standardmäßig der Gruppe default.

        qlen 1000

        Queue length: Die maximale Länge der Übertragungsreihe.

        link/loopback

        Die MAC Adresse des mit der Schnittstelle assoziierten Gerätes ("die physische Adresse").

        inet

        Die IP Adresse der Schnittstelle in Version 4 ist 127.0.0.1/8.
        Der Teil der Adresse nach dem Schrägstrich ist die CIDR Nummer (Anzahl der zusammenhängenden 1-bits zur Charakterisierung der Netzwerkmaske: 8 x 1-bits = 255 im binären Format. Die Netzwerkmaske ist also 255.0.0.0).

        Bezogen auf inet werden folgende Merkmale angezeigt:

        1. scope host

          Die IP Adresse ist nur innerhalb des Rechners (host) gültig.

        2. lo

          Name der Schnittstelle, welcher die IP (inet) zugeordnet ist.

        3. valid_lft

          "Valid lifetime" ist die Gültigkeitsdauer (der IP Adresse).
          Für IP Werte der Version 4, die via DHCP vergeben wurden, entspricht (valid_lft) die Dauer, währenddessen die Adresse als ansprechbar gelten soll.

        4. preferred_lft

          "Preferred lifetime" ist die bevorzugte Gültigkeitsdauer (der IP Adresse), deren Bedeutung vergleichbar mit valid_lft ist. Offensichtlich muss preferred_lftvalid_lft.

        inet6

        Wie inet zeigt inet6 gleiche Merkmale der Schnittstelle, jedoch bezogen auf die IP Adresse nach Version 6 (anstatt 4).

        Tab. Merkmale der Schnittstelle lo

      2. Merkmale der (physikalischen) Schnittstelle enp57s0f1

        Die Bezeichnung enp57s0f1 lässt sich in 3 Komponenten aufteilen. en steht für "ethernet". p57 ist die Busnummer auf der Ethernetkarte. s0f1 ist die Stecknummer (Slot number).

        Nachstehend werden nur Merkmale erläutert, deren Bedeutung sich nicht unmittelbar aus der Betrachtung der Tabelle für die virtuelle Schnittstelle lo ergibt.

        <BROADCAST, MULTICAST,
        UP, LOWER_UP>

        Die Schnittstelle unterstützt BROADCAST und MULTICAST. Die Schnittstelle ist aktiv (UP), sowie die Hardware-Schicht (layer one) (LOWER_UP).

        qdisc fq_codel

        Der Zeitmanager qdisc setzt die Option (discipline) fq_codel (Fair Queuing, Controlled Delay) um: Alle Datenflüsse in der Warteschlange sollen eine angemessene Bandbreite erhalten.

        link/ether

        Die MAC Adresse der Schnittstelle

        inet

        Die IP Adresse der Schnittstelle in Version 4 ist 192.168.178.21/24.
        Die Netzwerkmaske entspricht einer zusammenhängenden Reihe von 3 x 8 x 1-bit bestimmt. Daraus ergibt sich 255.255.255.0.

        Bezogen auf inet werden folgende Merkmale angezeigt:

        1. brd: Die BROADCAST Adresse für das Netzwerk ist 192.168.178.255.

        2. scope global: Die IP Adresse der Schnittstelle ist gültig überall innerhalb des Netzwerkes.

        3. dynamic: Die IP Adresse geht verloren, wenn die Schnittstelle abgeschaltet wird.

        4. noprefixroute: Kein Eintrag in die Route-Tabelle.

        5. valid_lft, preferred_lft: Werte der Lebensdauer (life times) in Sek.

        inet6

        Beschreibung der Schnittstelle in Bezug auf IP Version 6. Die Schnittstelle hat mehrere IP Adressen v6 mit unterschiedlichen Merkmalen.

        Tab. Merkmale der Schnittstelle enp57s0f1

    2. ip -statistics address bzw. ip -s addr
      zeigt statistische Werte für alle Adressen.

    3. ip -4 address show bzw. ip -4 a
      listet die IP Adressen, welche im IP-Format Version 4 vorliegen, auf.

    4. ip -6 address show bzw. ip -6 a
      listet die IP Adressen, welche im IP-Format Version 6 vorliegen, auf.

    5. ip address show dev enp57s0f1
      listet die Merkmale der (physikalischen) Schnittstelle enp57s0f1 auf.

    6. ip -4 address show dev enp57s0f1
      listet die mit der (physikalischen) Schnittstelle enp57s0f1 assoziierten IP Version 4 auf.

    7. sudo ip address add {Adressenwert} dev {Schnittstellennamen}
      fügt ein neuer IP-Wert {Adressenwert}, der (physikalischen) Schnittstelle {Schnittstellennamen} (z.B. enp57s0f1) hinzu.
      Ich habe bisher keine praktische Gelegenheit erhalten, das Kommando zu nutzen. Daher kein Beispiel.

      Beachte: Offenbar ist es zulässig, mehrere IP-Adressen einer einzelnen Netzwerkschnittstelle zuzuordnen. Dies soll möglicherweise Administratoren flexibler auf unterschiedlichen Umgebung zu reagieren.

    8. sudo ip address del {Adressenwert} dev {Schnittstellennamen}
      löscht den IP-Wert {Adressenwert} von der (physikalischen) Schnittstelle {Schnittstellennamen} (z.B. enp57s0f1).
      Ich habe bisher keine praktische Gelegenheit erhalten, das Kommando zu nutzen. Daher kein Beispiel.

  3. Anwendungsbeispiele von ip bezogen auf das Objekt link

    Mit dem link Objekt sind die meist verwendeten Aktionen show, set (change status), add, del.

    1. ip link show dev enp57s0f1 bzw. ip link show enp57s0f1
      Anstelle des Objektes "address" kann das Objekt "link" zur Darstellung von Merkmalen einer Schnittstelle - z.B. enp57s0f1 - herangezogen werden.

    2. sudo ip link set {Schnittstellenname} down
      stoppt physikalische Schnittstelle {Schnittstellenname} - z.B. enp57s0f1.

    3. sudo ip link set {Schnittstellenname} up
      fährt physikalische Schnittstelle {Schnittstellenname} - z.B. enp57s0f1 - hoch.

    Hinweis: Solange entsprechende Konfigurationsdateien nicht geändert wurden, wirkt sich das Hinzufügen bzw. das Löschen von IP-Adressen nur bis zum nächsten Neustart aus.

  4. Anwendungsbeispiele von ip bezogen auf das Objekt route

    Das Objekt route ermöglicht Aktionen bezüglich der routing Tabelle durchzuführen: list (Standardeinstellung), add, del.

    1. ip route list bzw. ip route bzw. ip r

      Linux cmd ip route show
      ip Objekt=route Aktion=show

      Die default Regel wird dann umgesetzt, wenn keine andere gilt. In diesem Fall:

      • Die IP des Standardrouters ist 192.168.178.1 auf Gerät enp57s0f1
      • Das Routing-Protokoll ist DHCP.
      • Der metric Wert wird zur Entscheidungsfindung verwendet, wenn mehrere Routen gleichzeitig gelten. Je kleiner der Wert, desto höher die Präferenz. (100 heißt, dass diese Route "gut besprochen" wird).

      169.254.0.0/16 ist eine weitere Regel, die für die dargestellte IP Bandbreite gilt:

      • Die physikalische Schnittstelle ist auch enp57s0f1
      • scope link: Die Kommunikation erfolgt nur im Netzwerk, das dem Rechner direkt angeschlossen ist (intranet).
      • Der metric-Wert ist auf 1000 gesetzt. Diese Route ist zweite Wahl.

      192.168.178.0/24 ist eine weitere Regel, die für die dargestellte IP Bandbreite gilt:

      • Die physikalische Schnittstelle ist auch enp57s0f1
      • proto kernel: Diese Route ist vom Kernel autokonfiguriert.
      • scope link: Die Kommunikation erfolgt nur im Netzwerk, das dem Rechner direkt angeschlossen ist (intranet).
      • src 192.168.178.21: Der Sendequelle wird die gegebenen IP zugeordnet.
      • Der metric-Wert ist auf 100 gesetzt. Diese Route ist prioritär.

  5. Weiterführende Links

    1. manpages: ip (EN)
    2. How to geek: ip command (EN)
    3. Linuxize: ip command (EN)