Static IP, DHCP & IPv6 Setup on RHEL (Artikel 081)
Konfiguration der IP-Adressierung unter RHEL und Rocky Linux. Fokus auf statische IPv4/IPv6 Setups, DHCP-Client-Verhalten und das Härten von IPv6-Schnittstellen via nmcli.
# IP-Management on RHEL: IPv4 und IPv6 sicher konfigurieren
TL;DR / Management Summary In der RHEL-Welt (Red Hat Enterprise Linux) ist die Adressvergabe über den NetworkManager strikt typisiert. Während man unter Ubuntu oft mit YAML-Dateien experimentiert, nutzen wir hier nmcli, um atomare Änderungen am Stack vorzunehmen. Besonders bei IPv6 bietet RHEL mächtige Features wie “Stable-Privacy” oder spezifische Router-Advertisement Filter, die für Enterprise-Sicherheit unerlässlich sind.
# 1. Einführung & Architektur
Dual-Stack unter Kontrolle.
RHEL bevorzugt IPv6, wenn es verfügbar ist. Der NetworkManager verwaltet beide Protokolle in einem gemeinsamen Verbindungsprofil.
# Der Adress-Workflow (Mermaid)
graph TD
A[NIC: eth0] --> B[NM Connection Profile]
B --> C{IPv4 Method}
B --> D{IPv6 Method}
C -->|Manual| C1[Static IP]
C -->|Auto| C2[DHCPv4]
D -->|Manual| D1[Static IPv6]
D -->|Auto| D2[SLAAC / DHCPv6]
D -->|Ignore| D3[Disabled]
# 2. IPv4: Statisch & DHCP
Die Klassiker.
# Statische IP setzen (Enterprise Standard)
sudo nmcli con mod "eth0" \
ipv4.addresses 192.168.1.10/24 \
ipv4.gateway 192.168.1.1 \
ipv4.method manual
sudo nmcli con up "eth0"
# DHCP mit lokaler Hostname-Übermittlung
Oft soll der Server seinen Hostnamen an den DHCP-Server senden (für dynamisches DNS):
sudo nmcli con mod "eth0" ipv4.dhcp-hostname "server01"
# 3. IPv6: Das nächste Level
SLAAC, DHCPv6 und Privacy.
IPv6 auf Servern erfordert Disziplin. Wir wollen keine wechselnden Adressen.
# Statische IPv6 Konfiguration
sudo nmcli con mod "eth0" \
ipv6.addresses "2001:db8:acad::10/64" \
ipv6.gateway "2001:db8:acad::1" \
ipv6.method manual
# IPv6 Privacy Extensions deaktivieren (Wichtig!)
RHEL aktiviert oft “Privacy Extensions”, was zu wechselnden temporären Adressen führt. Auf Servern deaktivieren wir das:
sudo nmcli con mod "eth0" ipv6.ip6-privacy 0
# 4. Day-2 Operations: Monitoring & Validierung
Läuft alles?
# IP-Adressen prüfen (mit Farbe und Struktur)
ip -c -br addr show
# DHCP Leases einsehen
Woher hat mein RHEL-Server die IP?
cat /var/lib/NetworkManager/internal-*.lease
# 5. Troubleshooting & “War Stories”
Praxisfallen.
# Story 1: “Der IPv6 Duplicate Address Error (DAD)”
Symptom: Das Interface zeigt tentative bei der IPv6-Adresse, und die IP ist nicht pingbar.
Ursache: Ein anderes Gerät im Netz hat die gleiche IPv6-Adresse. Das Duplicate Address Detection (DAD) Protokoll blockiert die IP.
Lösung: Nutzen Sie ip -6 addr – dort steht dadfailed. Suchen Sie den Konflikt im Netz oder ändern Sie Ihre statische IP.
# Story 2: “DHCP-Timeout beim Boot”
Symptom: Der Server braucht 2 Minuten zum Booten, weil er auf eine IP wartet, die nie kommt (z.B. in einem isolierten VLAN).
Ursache: NetworkManager wartet standardmäßig auf den DHCP-Sieg.
Lösung: Setzen Sie ipv4.may-fail no (wenn die IP kritisch ist) oder reduzieren Sie den Timeout:
sudo nmcli con mod "eth0" ipv4.dhcp-timeout 10
# 6. Fazit & Empfehlung
- Server-Standard: Nutzen Sie
ipv4.method manualundipv6.method manual. - Sicherheit: Deaktivieren Sie IPv6 (
ipv6.method ignore), wenn Sie es nicht nutzen, um unbemerkte Tunnel-Angriffe zu verhindern. - Proxmox: In Proxmox-VMs ist es oft besser, die IP via Cloud-Init zu setzen, was im Hintergrund die nmcli-Befehle für RHEL-Gäste ausführt.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Verbindung anzeigen | nmcli con show |
| IP hinzufügen (Zweit-IP) | nmcli con mod <id> +ipv4.addresses <ip> |
| DNS löschen | nmcli con mod <id> -ipv4.dns <ip> |
| Route löschen | nmcli con mod <id> -ipv4.routes <route> |
| IPv6 ausschalten | nmcli con mod <id> ipv6.method ignore |
| Link-Local IP sehen | ip -6 addr show dev eth0 scope link |
| ARP Cache leeren | ip neighbor flush all |
| Hostname ändern | hostnamectl set-hostname <name> |