Iproute2 und hostnamectl
ip – Die wichtigsten Befehle
Das Kommando ip aus dem Paket iproute2 ist der moderne Ersatz für die alten Werkzeuge ifconfig, route und arp. Aufbau immer:
ip [ -OPTIONEN ] OBJEKT KOMMANDO [ PARAMETER ]
Wichtige Objekte:
- link – Interfaces (Layer 2)
- addr – IP-Adressen (Layer 3)
- route – Routing-Tabellen
- neigh – Neighbor-/ARP-Cache
Praktische globale Optionen:
- -4 / -6
- nur IPv4 bzw. nur IPv6 anzeigen
- -br
- brief – kompakte, tabellarische Ausgabe
- -c
- color – farbige Ausgabe
- -s
- statistics – Statistiken (mehrfach für mehr Details, z.B.
-s -s) - -j
- json – maschinenlesbare Ausgabe
ip -br -c addr # kompakt + farbig ip -j route # Routing als JSON
ip link
Verwaltet die Interfaces auf Layer 2.
- ip link show
- alle Interfaces anzeigen
- ip link show dev eth0
- nur ein bestimmtes Interface
- ip -br link
- Kurzübersicht (Name, Status, MAC)
- ip -s link show dev eth0
- Statistiken (RX/TX, Fehler, Drops)
ip link show ip link show dev eth0 ip -br link # Interface hoch / runter ip link set dev eth0 up ip link set dev eth0 down # MTU setzen ip link set dev eth0 mtu 9000 # MAC-Adresse ändern ip link set dev eth0 address 02:11:22:33:44:55 # Interface umbenennen (muss down sein) ip link set dev eth0 down ip link set dev eth0 name lan0
VLAN-Interface anlegen:
ip link add link eth0 name eth0.10 type vlan id 10 ip link set dev eth0.10 up
Bridge anlegen und Interface zuordnen:
ip link add name br0 type bridge ip link set dev br0 up ip link set dev eth0 master br0 # eth0 an die Bridge hängen ip link set dev eth0 nomaster # wieder lösen
ip addr
Verwaltet IP-Adressen auf den Interfaces (Layer 3).
- ip addr show
- alle Adressen anzeigen (Kurzform:
ip a) - ip -br addr
- Kurzübersicht
- ip -4 addr / ip -6 addr
- nur IPv4 bzw. IPv6
ip addr show ip addr show dev eth0 ip -br -c addr # Adresse hinzufügen (mit Broadcast automatisch via "brd +") ip addr add 10.0.2XX.5/24 brd + dev eth0 # Adresse entfernen ip addr del 10.0.2XX.5/24 dev eth0 # Zusätzliche (sekundäre) Adresse mit Label ip addr add 10.0.2XX.6/24 dev eth0 label eth0:1 # Alle Adressen eines Interfaces löschen ip addr flush dev eth0
Hinweis: Mit ip addr add gesetzte Adressen sind nicht reboot-fest. Dauerhaft gehört das in die jeweilige Netzwerkkonfiguration (/etc/network/interfaces bei Debian, Netplan, NetworkManager oder systemd-networkd).
ip route
Verwaltet die Routing-Tabellen.
- ip route show
- Haupt-Routingtabelle anzeigen (Kurzform:
ip r) - ip route show table all
- alle Tabellen
- ip route get ZIEL
- zeigt, welche Route für ein Ziel tatsächlich genommen wird
ip route show ip route get 8.8.8.8 # Default-Gateway setzen ip route add default via 192.168.2XX.1 ip route add default via 192.168.2XX.1 dev eth0 # Netz-Route über Gateway ip route add 10.0.2XX.0/24 via 192.168.2XX.254 # Direkte Route über ein Interface (kein Gateway) ip route add 10.0.2XX.0/24 dev eth0 # Route ersetzen / löschen ip route replace default via 192.168.2XX.1 ip route del 10.0.2XX.0/24
Spezielle Routen
Pakete an ein Ziel gezielt verwerfen statt zu routen:
- blackhole
- Paket still verwerfen (kein ICMP-Fehler)
- unreachable
- verwerfen + ICMP Network unreachable
- prohibit
- verwerfen + ICMP Communication administratively prohibited
ip route add blackhole 1.1.1.1 ip route add blackhole 10.0.2XX.0/24 # prüfen ip route show | grep blackhole ip route get 1.1.1.1 # -> 1.1.1.1 dev lo (unreachable/blackhole) # wieder entfernen ip route del blackhole 1.1.1.1
Policy Routing
Mehrere Tabellen + Regeln (z.B. für Multi-Homing):
# eigene Tabelle 100 ip route add default via 192.168.2XX.1 table 100 # Regel: Quelle aus diesem Netz -> Tabelle 100 ip rule add from 10.0.2XX.0/24 table 100 # Regeln anzeigen ip rule show
ip neigh
Verwaltet den Neighbor-Cache (IPv4: ARP, IPv6: NDP) – der Nachfolger von arp.
- ip neigh show
- Cache anzeigen (Kurzform:
ip n)
ip neigh show ip neigh show dev eth0 # Statischen Eintrag setzen ip neigh add 192.168.2XX.50 lladdr 02:aa:bb:cc:dd:ee dev eth0 nud permanent # Eintrag löschen ip neigh del 192.168.2XX.50 dev eth0 # Cache leeren ip neigh flush dev eth0 ip neigh flush all
Zustände im Neighbor-Cache:
- REACHABLE – Eintrag aktuell und gültig
- STALE – Eintrag vorhanden, aber unbestätigt (wird bei Bedarf neu geprüft)
- DELAY / PROBE – Überprüfung läuft
- FAILED – keine Antwort erhalten
- PERMANENT – statisch, läuft nicht ab
Live-Monitoring
Änderungen an Adressen, Routen und Neighbors in Echtzeit verfolgen:
ip monitor ip monitor route ip monitor neigh
Persistenz: /etc/network/interfaces
Alles mit ip ... Gesetzte ist nicht reboot-fest. Bei ifupdown (Debian, Lab-Ubuntu) gehört es nach /etc/network/interfaces. Zusätzliche Adressen und Routen hängt man per up-Direktive an das Interface:
auto eth0
iface eth0 inet static
address 10.0.2XX.5/24
gateway 10.0.2XX.1
# zusätzliche (sekundäre) IP
up ip addr add 10.0.2XX.6/24 dev eth0
# zusätzliche Netz-Route
up ip route add 10.0.2XX.0/24 via 192.168.2XX.254
- Adresse beim Boot entfernen
- die betreffende
up ip addr add ...-Zeile löschen (oder den sekundäreniface eth0:1-Block) - Route beim Boot entfernen
- die betreffende
up ip route add ...-Zeile löschen
Hinweis: Ubuntu ab 18.04 nutzt im Standard Netplan bzw. NetworkManager. Im ifupdown-Lab vorher ifupdown installieren und Netplan deaktivieren.
Kurzreferenz
ip a– Adressenip l– Interfacesip r– Routenip n– Neighbor-Cacheip -br -c a– kompakte, farbige Adressübersichtip route get 8.8.8.8– tatsächlich genutzte Route prüfen
Übung
- Wie lautet die MAC-Adresse der Interfaces?
- Wie lauten die IP-Adressen der Interfaces?
- Löschen Sie auf der Konsole die „größere" Adresse.
- Auf welchen Wert ist die MTU eingestellt?
- Auf welches GW zeigt die Default-Route?
- Gibt es weitere Netz-Routen?
- Löschen Sie auf der Konsole diese weitere Route.
- Ändern Sie die Datei
/etc/network/interfaces:- dass die gelöschte IP nicht mehr beim Neustart geladen wird,
- dass die weitere Route nicht mehr beim Neustart geladen wird.
- Setzen Sie eine Blackhole-Route auf 1.1.1.1.
- hostnamectl:
- Wie lauten Machine ID und erkannter Virtualisierungstyp?
- Setzen Sie den static Hostname auf
gns3. - Setzen Sie zusätzlich einen pretty Hostname „GNS3 Lab Server". In welcher Datei wird dieser gespeichert?
Lösungen
# 1) MAC-Adressen (Feld link/ether) ip link show ip -br link # 2) IP-Adressen ip addr show ip -br addr # 3) Größere Adresse löschen (Bsp.: .5 und .6 vorhanden -> .6 weg) ip addr del 10.0.2XX.6/24 dev eth0 # 4) MTU (Feld "mtu", Standard 1500) ip link show dev eth0 ip -br link # 5) Default-GW (Feld "default via ...") ip route show default ip route get 8.8.8.8 # 6) Weitere Netz-Routen (alles außer default + scope-link/kernel) ip route show # 7) Diese Route löschen ip route del 10.0.2XX.0/24 # 9) Blackhole-Route ip route add blackhole 1.1.1.1 ip route show | grep blackhole # 10) hostnamectl hostnamectl status # Machine ID + Virtualization hostnamectl set-hostname gns3 # static -> /etc/hostname hostnamectl set-hostname "GNS3 Lab Server" --pretty # -> /etc/machine-info
Zu 8) – in /etc/network/interfaces die beiden Zeilen entfernen (oder auskommentieren):
up ip addr add 10.0.2XX.6/24 dev eth0 # 8.1 -> entfernen
up ip route add 10.0.2XX.0/24 via 192.168.2XX.254 # 8.2 -> entfernen