Zum Inhalt

Linux-Netzwerkgrundlagen: TCP/IP-Stack, CIDR-Subnetting, iproute2 & DNS-Namensauflösung

Erstellt: 06.11.2026  ·  Zuletzt aktualisiert: 06.11.2026  ·  Nejat Hakan

Management Summary: Jede Linux-Serveroperation – von SSH-Administration und Container-Orchestrierung bis hin zu Datenbankreplikation und TLS-Reverse-Proxies – durchläuft den Netzwerk-Stack des Linux-Kernels. Veraltete Net-Tools (ifconfig, netstat, route, arp) sind seit über einem Jahrzehnt zugunsten der Netlink-gestützten iproute2-Suite (ip, ss) abgelöst. Dieser Leitfaden behandelt die Paketkapselung über die TCP/IP- und OSI-Schichten, IPv4-CIDR-Subnetting & IPv6-Adressierung, Schnittstellen- und Routing-Verwaltung via ip und ss, persistente Netzwerkkonfiguration auf Debian sowie ein systematisches Layer-1-bis-7-Troubleshooting.

  • Kernel TCP/IP-Paketfluss


    Verfolgen, wie ein Ethernet-Frame (L2) in ein IP-Paket (L3), TCP/UDP-Segment (L4) und einen POSIX-Socket-Puffer (sk_buff) demultiplext wird.

  • CIDR-Subnetting & IPv6


    Netzwerkgrenzen, Broadcast-Adressen, private RFC-1918-Bereiche und IPv6 /64 Link-Local- (fe80::) sowie Global-Unicast-Präfixe berechnen.

  • Moderne iproute2-Praxis


    Veraltete ifconfig- und netstat-Gewohnheiten durch direkte Netlink-Kernelabfragen mit ip addr, ip link, ip route, ip neigh und ss -tulpn ersetzen.

  • DNS & Persistente Konfiguration


    Deterministische statische IP-Adressen auf Debian konfigurieren (/etc/network/interfaces & systemd-networkd) und Namensauflösung via nsswitch.conf und dig analysieren.


1. Der Linux-Kernel-TCP/IP-Stack & Paketkapselung

Während Lehrbücher meist das theoretische 7-Schichten-OSI-Modell vermitteln, implementiert der Linux-Kernel das pragmatische 4-Schichten-TCP/IP-Modell. Jedes aktive Netzwerkpaket im Kernel-RAM wird dabei durch die Kernstruktur struct sk_buff (Socket Buffer) repräsentiert.

%%{init: {'flowchart': {'wrappingWidth': 600}}}%%
flowchart TB
    L7["🌐 Layer 7: Anwendung<br/>HTTP/3, SSH, PostgreSQL<br/>(User-Space POSIX-Socket)"]
    L4["🔀 Layer 4: Transport<br/>TCP (3-Wege-Handshake / Seq)<br/>UDP (Zustandslose Datagramme)"]
    L3["🧭 Layer 3: Netzwerk (IP)<br/>IPv4- / IPv6-Routing-Tabelle<br/>ICMP & Netfilter / nftables"]
    L2["🔌 Layer 2/1: Link & NIC<br/>Ethernet MAC + ARP / NDP<br/>virtio_net DMA-Ringpuffer"]

    L7 <-->|"sys_sendto / recvfrom"| L4
    L4 <-->|"TCP/UDP-Port-Header"| L3
    L3 <-->|"IP-Quell-/Ziel-Header"| L2

Schichten-Referenz im technischen Überblick

OSI-Schicht TCP/IP-Äquivalent Protokolldateneinheit (PDU) Kernprotokolle Primäres Linux-Diagnosetool
Layer 7 (Anwendung) Anwendung Daten / Payload HTTP/S, SSH, DNS, SMTP, WireGuard curl -v, dig, openssl s_client
Layer 4 (Transport) Transport Segment (TCP) / Datagramm (UDP) TCP (Zuverlässig), UDP (Latenzoptimiert) ss -tulpn, nc -zv
Layer 3 (Netzwerk) Internet Paket IPv4, IPv6, ICMP, IPsec ip addr, ip route get, ping, mtr
Layer 2 (Sicherung) Netzzugang Frame (48-Bit MAC) Ethernet (802.3), VLAN (802.1Q), ARP ip link, ip neigh, bridge fdb
Layer 1 (Bitübertragung) Physisch Bits / Symbole 10GBASE-T, SFP+ Glasfaser, PCIe-Lanes ethtool eth0, ip -s link

2. IPv4-CIDR-Subnetting & IPv6-Adressierung

Die CIDR-Notation (Classless Inter-Domain Routing) (192.168.10.0/24) legt fest, wie viele führende Bits einer 32-Bit-IPv4-Adresse das Netzwerkpräfix im Vergleich zum Host-Identifikator bilden.

Wichtige IPv4-CIDR-Subnetz-Referenztabelle

CIDR-Präfix Subnetzmaske Gesamte IPv4-Adressen Nutzbare Host-IPs (2^n - 2) Typische Rolle in der Infrastruktur
/32 255.255.255.255 1 1 (Einzelne Host-Route) Loopback-VIP, WireGuard-Peer-Endpunkt, Firewall-Hostregel.
/30 255.255.255.252 4 2 Punkt-zu-Punkt-Transitlink zwischen zwei Routern/Firewalls.
/28 255.255.255.240 16 14 Kleines DMZ-Segment für Reverse-Proxies und Bastion-Hosts.
/24 255.255.255.0 256 254 (.1 – .254) Standard-Server-VLAN, Homelab-LAN oder Podman-Bridge-Netz.
/16 255.255.0.0 65.536 65.534 Großes Campus-Netzwerk oder Container-Overlay-Supernetz.

Private IPv4-Bereiche (RFC 1918) & IPv6-Äquivalente

  • RFC 1918 Private IPv4-Netze:
  • 10.0.0.0/8 (10.0.0.0 – 10.255.255.255) – Enterprise-VLANs & VPN-Netze
  • 172.16.0.0/12 (172.16.0.0 – 172.31.255.255) – Container-Bridges
  • 192.168.0.0/16 (192.168.0.0 – 192.168.255.255) – Heim- und Büro-LANs
  • IPv6-Gültigkeitsbereiche (128-Bit):
  • ::1/128 – Loopback (entspricht 127.0.0.1)
  • fe80::/10 – Link-Local Unicast (Zwingend auf jedem aktiven IPv6-Interface; genutzt für NDP-Nachbarschaftserkennung und Router Advertisements)
  • fc00::/7 (fd00::/8) – Unique Local Addresses (ULA) (Privates Routing, entspricht RFC 1918)
  • 2000::/3 – Global Unicast Addresses (GUA) (Öffentlich im Internet geroutete Adressen)

3. Die iproute2-Suite souverän bedienen (ip & ss)

Verwenden Sie in modernen Linux-Skripten niemals die Ausgaben der veralteten Befehle ifconfig oder netstat. Nutzen Sie stattdessen ip (inklusive ip -br für kompakte Übersichten und ip -j für maschinenlesbares JSON) sowie ss (Socket Statistics).

Veralteter Befehl (Deprecated) Moderner iproute2-Ersatz Was damit geprüft oder geändert wird
ifconfig -a ip -br -c addr show Kompakte, farbige Übersicht aller Netzwerkkarten, Status (UP/DOWN) und IPs.
ifconfig eth0 up/down sudo ip link set dev eth0 up Aktiviert oder deaktiviert eine physische oder virtuelle Layer-2-Schnittstelle.
route -n / netstat -rn ip -c route show Zeigt die Kernel-Layer-3-Routing-Tabelle (default via ...).
arp -an ip neigh show Zeigt den Layer-2-MAC-Adress-Cache (ARP für IPv4 + NDP für IPv6).
netstat -tulpn sudo ss -tulpn Listet alle lauschenden TCP- (-t) und UDP-Ports (-u) mit zugehörigen PIDs (-p) auf.

Praxis-Workshop: iproute2 & ss im Terminal

# Datei: /opt/net-ops/iproute2_diagnostics.sh
#!/usr/bin/env bash
set -euo pipefail

# 1. Kompakte Übersicht aller Schnittstellen, MACs und IP-Adressen
ip -br -c link show
ip -br -c addr show

# 2. Layer-2 TX/RX-Paketzähler, verworfene Frames und Übertragungsfehler prüfen
ip -s link show dev eth0

# 3. Kernel abfragen, über welches Interface und Gateway ein Ziel (z. B. 1.1.1.1) erreicht wird
ip route get 1.1.1.1

# 4. Alle lauschenden TCP/UDP-Dienste und deren systemd-Prozesse anzeigen
sudo ss -tulpn

# 5. Bestehende Verbindungen auf Port 22 (SSH) mit Kernel-Timern filtern
ss -o state established '( dport = :ssh or sport = :ssh )'

4. Persistente Netzwerkkonfiguration auf Debian Linux

Je nachdem, ob es sich um einen Server (ifupdown oder systemd-networkd) oder eine Arbeitsstation (NetworkManager) handelt, wird die feste IP-Vergabe wie folgt hinterlegt:

# Datei: /etc/systemd/network/10-eth0.network
[Match]
Name=eth0

[Network]
Address=192.168.1.50/24
Gateway=192.168.1.1
DNS=192.168.1.1
DNS=9.9.9.9
IPv6AcceptRA=yes

[Link]
MTUBytes=1500

Aktivieren mit: sudo systemctl enable --now systemd-networkd && sudo networkctl reload

# Datei: /etc/network/interfaces
source /etc/network/interfaces.d/*

# Loopback-Schnittstelle
auto lo
iface lo inet loopback

# Primäre statische Server-Schnittstelle
auto eth0
iface eth0 inet static
    address 192.168.1.50/24
    gateway 192.168.1.1
    dns-nameservers 192.168.1.1 9.9.9.9

Über die Konsole sicher neu laden: sudo systemctl restart networking

# Datei: /opt/net-ops/configure_nmcli_static.sh
# Statische IPv4 auf dem Verbindungsprofil "Wired connection 1" konfigurieren
sudo nmcli connection modify "Wired connection 1" \
    ipv4.addresses "192.168.1.50/24" \
    ipv4.gateway "192.168.1.1" \
    ipv4.dns "192.168.1.1,9.9.9.9" \
    ipv4.method manual

sudo nmcli connection up "Wired connection 1"

5. DNS-Namensauflösungs-Architektur unter Linux

Wenn ein Linux-Prozess getaddrinfo("nejat-hakan.de") aufruft, folgt die GNU C Library (glibc) einer strikten Abfragereihenfolge, die in /etc/nsswitch.conf definiert ist:

%%{init: {'flowchart': {'wrappingWidth': 600}}}%%
flowchart TB
    APP["💻 Anwendungsaufruf<br/>getaddrinfo()"]
    NSS["📋 /etc/nsswitch.conf<br/>hosts: files dns"]
    HOSTS["📄 /etc/hosts<br/>Statische lokale Einträge"]
    RES["⚙️ /etc/resolv.conf<br/>nameserver 127.0.0.53<br/>oder Unbound / Pi-hole"]
    AUTH["🌍 Upstream-DNS<br/>Rekursiver Resolver"]

    APP --> NSS
    NSS -->|"1. Zuerst prüfen"| HOSTS
    NSS -->|"2. DNS abfragen"| RES
    RES --> AUTH
# Datei: /opt/net-ops/dns_diagnostics.sh
# 1. glibc-Auflösungsreihenfolge prüfen (berücksichtigt /etc/hosts + DNS)
getent ahosts nejat-hakan.de

# 2. DNS direkt per dig abfragen (+short für Skripte, +trace für vollständigen Root-Pfad)
dig +noall +answer nejat-hakan.de A nejat-hakan.de AAAA
dig @9.9.9.9 nejat-hakan.de +trace

6. Bottom-Up Netzwerk-Troubleshooting-Leitfaden

Wenn ein Server einen Dienst nicht erreicht, prüfen Sie strikt von Layer 1 aufwärts bis zu Layer 7 – ändern Sie niemals Anwendungskonfigurationen, bevor Verbindung und Routing nicht verifiziert sind!

Schritt & Schicht Diagnosebefehl Fehlerbild Ursache & Behebung
1. Layer 1/2 (Link) ip link show dev eth0 NO-CARRIER oder Status DOWN Kabel nicht eingesteckt, Switchport inaktiv oder Interface administrativ deaktiviert (sudo ip link set eth0 up).
2. Layer 2 (ARP/Gateway) ip neigh show & ping -c 2 192.168.1.1 Destination Host Unreachable (INCOMPLETE in ip neigh) Falscher VLAN-Tag am Switchport oder falsche Subnetzmaske auf dem Interface konfiguriert.
3. Layer 3 (Routing) ip route show & ping -c 2 9.9.9.9 Network is unreachable Fehlende Standard-Gateway-Route (sudo ip route add default via 192.168.1.1).
4. Layer 4 (Port/Firewall) nc -zv 10.10.20.11 5432 Connection timed out oder Connection refused Timed out = blockiert durch nftables/ufw; Refused = Dienst läuft nicht oder lauscht nur auf 127.0.0.1 (sudo ss -tulpn).
5. Layer 7 (DNS) dig +short nejat-hakan.de Ping auf 9.9.9.9 klappt, aber Domainnamen scheitern (Temporary failure in name resolution) Ungültiger oder unerreichbarer nameserver in /etc/resolv.conf.

Nächste Schritte

Bauen Sie auf Ihren Netzwerkgrundlagen auf mit Firewalls, SSH-Tunneling, VLANs und virtualisierten Labortopologien:

  • Fortgeschrittenes Networking & Firewalls


    OpenSSH-Härtung & Portweiterleitung, nftables/ufw Firewalls, dnsmasq, chrony und tcpdump-Paketanalyse.

    Zum Intermediate-Leitfaden

  • Erweitertes Routing, VLANs & Namespaces


    Linux-Kernel-Routing, 802.1Q-VLAN-Trunks, LACP-Bonding (802.3ad) und isolierte ip netns-Netzwerk-Namespaces.

    Zum Advanced-Leitfaden

  • KVM/QEMU-Netzwerk-Infrastrukturlabor


    Multi-Subnetz-DMZ- und interne Servertopologien auf einer einzelnen Debian-Workstation mit KVM/QEMU simulieren.

    Zum KVM/QEMU-Labor