Netzwerk & Firewall

IPv4 und IPv6 Subnetting Tutorial – Netzwerke richtig konfigurieren

Einleitung

Subnetting ist eine fundamentale Technik im Netzwerkmanagement, die es ermöglicht, große Netzwerke in kleinere, logische Segmente zu unterteilen. Sowohl IPv4 als auch IPv6 verwenden Subnetting, jedoch mit unterschiedlichen Ansätzen und Adressräumen. Dieses Tutorial behandelt die praktische Konfiguration von IPv4- und IPv6-Subnetzen unter Linux und Windows, mit besonderem Fokus auf /64-Subnetze bei IPv6.

IPv4-Subnetting wird hauptsächlich zur effizienten Nutzung des begrenzten Adressraums verwendet, während IPv6-Subnetting bei der Organisation großer Netzwerkstrukturen hilft. Die Beherrschung beider Protokolle ist essentiell für moderne Netzwerkadministratoren.

Systemvoraussetzungen

Komponente Minimum Empfohlen
CPU 1 vCPU / 1 Core 2+ vCPU / 2+ Cores
RAM 512 MB 2 GB
Festplatte 2 GB 10 GB
Linux Ubuntu 18.04+, CentOS 7+, Debian 9+ Ubuntu 22.04+, Rocky Linux 8+
Windows Windows Server 2016+, Windows 10 Windows Server 2022, Windows 11

Benötigte Ports und Firewall-Konfiguration

Für die Subnetting-Konfiguration werden folgende Ports benötigt:

  • ICMP/ICMPv6: Für Ping-Tests (Protokoll-Nummer 1 für IPv4, 58 für IPv6)
  • SSH (22/tcp): Für Remote-Administration unter Linux
  • RDP (3389/tcp): Für Remote-Administration unter Windows
  • DHCPv6 (546/547 UDP): Falls DHCPv6 verwendet wird

Vorbereitung

Linux-System vorbereiten

Aktualisieren Sie zunächst Ihr System:

# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt install -y iproute2 net-tools iputils-ping traceroute

# CentOS/RHEL/Rocky Linux
sudo dnf update -y
sudo dnf install -y iproute net-tools iputils traceroute

Windows-System vorbereiten

Öffnen Sie die PowerShell als Administrator und aktivieren Sie IPv6, falls deaktiviert:

# IPv6-Status prüfen
Get-NetAdapterBinding -ComponentID ms_tcpip6

# IPv6 aktivieren (falls deaktiviert)
Enable-NetAdapterBinding -Name "*" -ComponentID ms_tcpip6
⚠️ Hinweis: Stellen Sie sicher, dass Sie über Administratorrechte verfügen, bevor Sie mit der Konfiguration beginnen.

IPv4-Subnetting verstehen und konfigurieren

IPv4-Subnetting-Grundlagen

IPv4 verwendet 32-Bit-Adressen, die in 4 Oktette unterteilt sind. Subnetting erfolgt über Subnetzmasken:

  • /24 (255.255.255.0): 254 verwendbare Host-Adressen
  • /25 (255.255.255.128): 126 verwendbare Host-Adressen
  • /26 (255.255.255.192): 62 verwendbare Host-Adressen
  • /27 (255.255.255.224): 30 verwendbare Host-Adressen

IPv4-Subnetz unter Linux konfigurieren

# Aktuelle Netzwerkkonfiguration anzeigen
ip addr show

# IPv4-Adresse mit Subnetz konfigurieren
sudo ip addr add 192.168.10.10/24 dev eth0

# Standard-Gateway setzen
sudo ip route add default via 192.168.10.1

# Konfiguration persistent machen (Ubuntu/Debian)
sudo nano /etc/netplan/01-netcfg.yaml

Netplan-Konfiguration für Ubuntu:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 192.168.10.10/24
        - 192.168.20.10/25
      gateway4: 192.168.10.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
# Netplan-Konfiguration anwenden
sudo netplan apply

IPv4-Subnetz unter Windows konfigurieren

# Aktuelle Netzwerkkonfiguration anzeigen
Get-NetIPConfiguration

# IPv4-Adresse konfigurieren
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.10.10 -PrefixLength 24 -DefaultGateway 192.168.10.1

# DNS-Server konfigurieren
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 8.8.8.8,8.8.4.4

# Zusätzliche Subnetz-IP hinzufügen
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.20.10 -PrefixLength 25

IPv6-Subnetting verstehen und konfigurieren

IPv6-Subnetting-Grundlagen

IPv6 verwendet 128-Bit-Adressen mit standardmäßig /64-Subnetzen:

  • /64: Standard-Subnetzgröße für End-Netzwerke
  • /48: Typische Zuteilung für Organisationen
  • /56: Häufig für kleinere Organisationen verwendet
  • /128: Host-Route (einzelne Adresse)

/64-Subnetz auswählen und konfigurieren

Beispiel für ein /64-IPv6-Subnetz: 2001:db8:1::/64

IPv6-Subnetz unter Linux konfigurieren

# IPv6-Status prüfen
cat /proc/sys/net/ipv6/conf/all/disable_ipv6

# IPv6 aktivieren (falls deaktiviert)
echo 0 | sudo tee /proc/sys/net/ipv6/conf/all/disable_ipv6

# IPv6-Adresse im /64-Subnetz konfigurieren
sudo ip -6 addr add 2001:db8:1::10/64 dev eth0

# IPv6-Standard-Route setzen
sudo ip -6 route add default via 2001:db8:1::1

# Weitere IPv6-Adressen im selben /64-Subnetz hinzufügen
sudo ip -6 addr add 2001:db8:1::20/64 dev eth0
sudo ip -6 addr add 2001:db8:1::30/64 dev eth0

Netplan-Konfiguration für IPv6:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 192.168.10.10/24
        - 2001:db8:1::10/64
        - 2001:db8:1::20/64
      gateway4: 192.168.10.1
      gateway6: 2001:db8:1::1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4, 2001:4860:4860::8888]

IPv6-Subnetz unter Windows konfigurieren

# IPv6-Konfiguration anzeigen
Get-NetIPAddress -AddressFamily IPv6

# IPv6-Adresse im /64-Subnetz konfigurieren
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 2001:db8:1::10 -PrefixLength 64

# IPv6-Gateway setzen
New-NetRoute -InterfaceAlias "Ethernet" -DestinationPrefix "::/0" -NextHop 2001:db8:1::1

# Weitere IPv6-Adressen im /64-Subnetz hinzufügen
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 2001:db8:1::20 -PrefixLength 64
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 2001:db8:1::30 -PrefixLength 64

# IPv6-DNS-Server konfigurieren
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 2001:4860:4860::8888,2001:4860:4860::8844

Erweiterte Subnetting-Konfiguration

VLAN-basierte Subnetze unter Linux

# VLAN-Interface erstellen
sudo ip link add link eth0 name eth0.100 type vlan id 100
sudo ip link set eth0.100 up

# IPv4 und IPv6 auf VLAN-Interface konfigurieren
sudo ip addr add 192.168.100.10/24 dev eth0.100
sudo ip -6 addr add 2001:db8:100::10/64 dev eth0.100

# VLAN-Konfiguration in Netplan
network:
  version: 2
  vlans:
    eth0.100:
      id: 100
      link: eth0
      addresses:
        - 192.168.100.10/24
        - 2001:db8:100::10/64

Mehrere Subnetze gleichzeitig konfigurieren

# Script für mehrere Subnetz-Konfigurationen
#!/bin/bash

# IPv4-Subnetze konfigurieren
SUBNETS_IPV4=(
    "192.168.10.10/24"
    "192.168.20.10/25" 
    "10.0.1.10/28"
)

# IPv6-Subnetze konfigurieren (/64)
SUBNETS_IPV6=(
    "2001:db8:1::10/64"
    "2001:db8:2::10/64"
    "2001:db8:3::10/64"
)

INTERFACE="eth0"

for subnet in "${SUBNETS_IPV4[@]}"; do
    sudo ip addr add $subnet dev $INTERFACE
    echo "IPv4 hinzugefügt: $subnet"
done

for subnet in "${SUBNETS_IPV6[@]}"; do
    sudo ip -6 addr add $subnet dev $INTERFACE
    echo "IPv6 hinzugefügt: $subnet"
done

Firewall-Regeln setzen

Linux Firewall (ufw/iptables)

# UFW für IPv4 und IPv6 konfigurieren
sudo ufw enable

# Spezifische Subnetze erlauben
sudo ufw allow from 192.168.10.0/24
sudo ufw allow from 2001:db8:1::/64

# SSH für alle konfigurierten Subnetze erlauben
sudo ufw allow ssh

# ICMP/ICMPv6 für Ping-Tests erlauben
sudo ufw allow in on eth0 to any port 22
sudo iptables -A INPUT -p icmp -j ACCEPT
sudo ip6tables -A INPUT -p icmpv6 -j ACCEPT

Windows Firewall

# IPv4-Subnetz in Windows Firewall erlauben
New-NetFirewallRule -DisplayName "Allow IPv4 Subnet" -Direction Inbound -RemoteAddress 192.168.10.0/24 -Action Allow

# IPv6-Subnetz in Windows Firewall erlauben  
New-NetFirewallRule -DisplayName "Allow IPv6 Subnet" -Direction Inbound -RemoteAddress 2001:db8:1::/64 -Action Allow

# ICMP für IPv4 und IPv6 erlauben
New-NetFirewallRule -DisplayName "Allow ICMPv4" -Direction Inbound -Protocol ICMPv4 -Action Allow
New-NetFirewallRule -DisplayName "Allow ICMPv6" -Direction Inbound -Protocol ICMPv6 -Action Allow

Dienste konfigurieren und aktivieren

Systemd-networkd unter Linux

# NetworkManager deaktivieren und systemd-networkd aktivieren
sudo systemctl disable NetworkManager
sudo systemctl enable systemd-networkd
sudo systemctl enable systemd-resolved

# Dienste starten
sudo systemctl start systemd-networkd
sudo systemctl start systemd-resolved

# Status prüfen
sudo systemctl status systemd-networkd

Netzwerkdienste unter Windows

# Netzwerkdienste prüfen und neu starten
Restart-Service -Name "Dnscache"
Restart-Service -Name "DHCP"

# IPv6-Dienste aktivieren
Set-Service -Name "iphlpsvc" -StartupType Automatic
Start-Service -Name "iphlpsvc"

Installation verifizieren

Konnektivitätstests durchführen

# IPv4-Konnektivität testen
ping -c 4 192.168.10.1
ping -c 4 8.8.8.8

# IPv6-Konnektivität testen  
ping6 -c 4 2001:db8:1::1
ping6 -c 4 2001:4860:4860::8888

# Routing-Tabellen prüfen
ip route show
ip -6 route show

# Netzwerk-Interfaces prüfen
ip addr show
ip -6 addr show
# Windows-Konnektivitätstests
Test-Connection -ComputerName 192.168.10.1 -Count 4
Test-Connection -ComputerName 8.8.8.8 -Count 4

# IPv6-Tests
Test-Connection -ComputerName "2001:db8:1::1" -Count 4
ping 2001:4860:4860::8888

# Netzwerkkonfiguration anzeigen
Get-NetIPConfiguration
Get-NetIPAddress
Get-NetRoute

Erweiterte Diagnose-Tools

# Netzwerk-Stack-Diagnose unter Linux
ss -tuln
netstat -rn
ip neighbor show

# Traceroute für IPv4 und IPv6
traceroute 8.8.8.8
traceroute6 2001:4860:4860::8888
⚠️ Hinweis: Bei IPv6-Tests können lokale Adressen (fe80::/10) normale Funktionen zeigen, auch wenn globale Konnektivität fehlt.

Troubleshooting

Häufige IPv4-Probleme

Problem: IP-Adresse wird nicht übernommen

# Lösung: Interface neu starten
sudo ip link set eth0 down
sudo ip link set eth0 up

# Oder NetworkManager neu starten
sudo systemctl restart NetworkManager

Problem: Routing funktioniert nicht

# Routing-Tabelle prüfen
ip route show

# Standard-Gateway neu setzen
sudo ip route del default
sudo ip route add default via 192.168.10.1

Häufige IPv6-Probleme

Problem: IPv6 ist deaktiviert

# IPv6-Status prüfen
cat /proc/sys/net/ipv6/conf/all/disable_ipv6

# IPv6 aktivieren
echo 0 | sudo tee /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 0 | sudo tee /proc/sys/net/ipv6/conf/default/disable_ipv6

Problem: Duplicate Address Detection (DAD) Fehler

# DAD-Status prüfen
ip -6 addr show

# Interface neu konfigurieren
sudo ip -6 addr del 2001:db8:1::10/64 dev eth0
sudo ip -6 addr add 2001:db8:1::10/64 dev eth0

Windows-spezifische Probleme

Problem: IPv6-Konnektivität funktioniert nicht

# IPv6-Binding prüfen
Get-NetAdapterBinding -ComponentID ms_tcpip6

# IPv6 zurücksetzen
netsh int ipv6 reset
netsh winsock reset

# Neustart erforderlich
Restart-Computer

Allgemeine Diagnose-Befehle

# Linux: Umfassende Netzwerk-Diagnose
sudo dmesg | grep -i network
journalctl -u systemd-networkd
journalctl -u NetworkManager

# Paket-Capture für detaillierte Analyse
sudo tcpdump -i eth0 -n
# Windows: Netzwerk-Diagnose
Get-NetAdapter
Get-NetIPConfiguration -Detailed
Test-NetConnection -ComputerName 8.8.8.8 -TraceRoute

# Event-Logs prüfen
Get-WinEvent -LogName System | Where-Object {$_.LevelDisplayName -eq "Error"}

Updates und Wartung

Regelmäßige Wartungsaufgaben

# Linux: System-Updates
sudo apt update && sudo apt upgrade -y  # Debian/Ubuntu
sudo dnf update -y                       # RHEL/CentOS

# Netzwerk-Tools aktualisieren
sudo apt install --only-upgrade iproute2 net-tools

# Konfiguration sichern
sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.backup
# Windows: System-Updates prüfen
Get-WindowsUpdate
Install-WindowsUpdate -AcceptAll -AutoReboot

# Netzwerk-Konfiguration exportieren
Get-NetIPConfiguration | Export-Csv -Path "C:\backup\network-config.csv"

Monitoring und Überwachung

# Script für regelmäßige Konnektivitätsprüfung
#!/bin/bash
LOG_FILE="/var/log/network-check.log"

echo "$(date): Starte Netzwerk-Check" >> $LOG_FILE

# IPv4-Tests
if ping -c 1 8.8.8.8 >/dev/null 2>&1; then
    echo "$(date): IPv4 OK" >> $LOG_FILE
else
    echo "$(date): IPv4 FEHLER" >> $LOG_FILE
fi

# IPv6-Tests  
if ping6 -c 1 2001:4860:4860::8888 >/dev/null 2>&1; then
    echo "$(date): IPv6 OK" >> $LOG_FILE
else
    echo "$(date): IPv6 FEHLER" >> $LOG_FILE
fi
⚠️ Hinweis: Führen Sie regelmäßige Backups Ihrer Netzwerkkonfiguration durch und dokumentieren Sie alle Änderungen.

Fazit und nächste Schritte

In diesem Tutorial haben Sie gelernt, wie Sie IPv4- und IPv6-Subnetze unter Linux und Windows konfigurieren. Die wichtigsten Erkenntnisse:

  • IPv4-Subnetting maximiert die Effizienz begrenzter Adressräume
  • IPv6 /64-Subnetze sind der Standard für End-Netzwerke
  • Beide Protokolle können parallel betrieben werden (Dual-Stack)
  • Proper Firewall-Konfiguration ist essentiell für die Sicherheit
  • Regelmäßige Tests und Monitoring gewährleisten stabile Netzwerke

Empfohlene nächste Schritte:

  • Experimentieren Sie mit komplexeren Subnetting-Szenarien
  • Implementieren Sie automatisierte Netzwerk-Monitoring-Lösungen
  • Erforschen Sie erweiterte IPv6-Features wie Privacy Extensions
  • Konfigurieren Sie DHCP-Server für beide Protokolle
  • Implementieren Sie Network Address Translation (NAT) für IPv4
  • Lernen Sie über IPv6-Transition-Mechanismen (6to4, Teredo, etc.)

Mit diesem Wissen können Sie professionelle Netzwerkinfrastrukturen aufbauen und verwalten, die sowohl aktuellen als auch zukünftigen Anforderungen gerecht werden.