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ützteniproute2-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 viaipundss, 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
/64Link-Local- (fe80::) sowie Global-Unicast-Präfixe berechnen. -
Moderne
iproute2-Praxis
Veraltete
ifconfig- undnetstat-Gewohnheiten durch direkte Netlink-Kernelabfragen mitip addr,ip link,ip route,ip neighundss -tulpnersetzen. -
DNS & Persistente Konfiguration
Deterministische statische IP-Adressen auf Debian konfigurieren (
/etc/network/interfaces&systemd-networkd) und Namensauflösung viansswitch.confunddiganalysieren.
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-Netze172.16.0.0/12(172.16.0.0–172.31.255.255) – Container-Bridges192.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 (entspricht127.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/ufwFirewalls,dnsmasq,chronyundtcpdump-Paketanalyse. -
Erweitertes Routing, VLANs & Namespaces
Linux-Kernel-Routing, 802.1Q-VLAN-Trunks, LACP-Bonding (
802.3ad) und isolierteip netns-Netzwerk-Namespaces. -
KVM/QEMU-Netzwerk-Infrastrukturlabor
Multi-Subnetz-DMZ- und interne Servertopologien auf einer einzelnen Debian-Workstation mit KVM/QEMU simulieren.