linux-rhel-centos-fedora networking ipv4 ipv6 dhcp rhel nmcli

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 manual und ipv6.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>