Fritz!Box durch UniFi Dream Machine ersetzen: VLAN-Konfiguration vollständig migrieren

Fritz!Box durch UniFi Dream Machine ersetzen: VLAN-Konfiguration vollständig migrieren – Fritz!Box zu UniFi Dream Machine Preis prüfen Migration - VLAN-Konfiguration übertragen

Komplette VLAN-Migration von Fritz!Box zu UniFi Dream Machine: Schritt-für-Schritt Anleitung

Die Fritz!Box durch UniFi Dream Machine ersetzen bedeutet den kompletten Neuaufbau deiner VLAN-Struktur. Nach der Migration landen alle Geräte im Default-VLAN 192.168.1.0/24, deine Synology NAS Angebot ist nicht mehr über das IoT-VLAN erreichbar und die methodisch aufgebaute Netzwerksegmentierung ist zerstört. Diese systematische Anleitung führt dich durch eine strukturierte 10-Phasen Migration mit Rollback-Strategie und Validierungstests.

Kritischer Zeitaufwand: Plane 6-8 Stunden für die komplette Migration ein. Die UniFi-Dokumentation suggeriert eine „einfache Migration“, aber in der Realität gibt es KEINE automatische Übernahme von Fritz!Box VLAN-Konfigurationen.

📑 Inhaltsverzeichnis

Pre-Migration Phase: Netzwerk-Inventarisierung und Backup-Strategie

Phase 1: Vollständige Netzwerk-Dokumentation (45 Minuten)

Bevor du die Fritz!Box abschaltest, musst du deine komplette Netzwerkstruktur dokumentieren. Ohne diese Dokumentation verlierst du kritische Konfigurationsdetails.

Netzwerk-Inventar Template:

# Fritz!Box VLAN-Struktur dokumentieren
echo "=== FRITZ!BOX NETZWERK-INVENTAR $(date) ===" > migration_backup.txt
echo "" >> migration_backup.txt

# Alle aktiven Geräte mit IP-Adressen erfassen
nmap -sn 192.168.178.0/24 | grep -E "Nmap scan report|MAC Address" >> migration_backup.txt

# DHCP-Reservierungen aus Fritz!Box exportieren
curl -s "http://192.168.178.1/cgi-bin/webcm?getpage=../html/capture.html" | \
grep -E "dhcp_static|ip_address|mac_address" >> migration_backup.txt

# Port-Weiterleitungen dokumentieren
curl -s "http://192.168.178.1/cgi-bin/webcm?getpage=../html/de/menus/menu2.html" | \
grep -E "port_forward|external_port|internal_ip" >> migration_backup.txt

VLAN-Mapping Tabelle erstellen:

Fritz!Box Segment IP-Bereich Geräte-Anzahl Geplante UniFi VLAN-ID Neuer IP-Bereich
Heimnetz 1 (Main) 192.168.178.0/24 15 VLAN 1 192.168.1.0/24
Heimnetz 2 (IoT) 192.168.179.0/24 8 VLAN 10 192.168.10.0/24
Gastnetz 192.168.180.0/24 5 VLAN 20 192.168.20.0/24
Drucker-Netz 192.168.181.0/24 3 VLAN 30 192.168.30.0/24

Phase 2: Fritz!Box Konfiguration sichern (15 Minuten)

# Komplette Fritz!Box Konfiguration exportieren
wget --user=admin --password=DEIN_PASSWORT \
  "http://192.168.178.1/cgi-bin/webcm?getpage=../html/capture.html&export=1" \
  -O fritzbox_backup_$(date +%Y%m%d).export

# VLAN-spezifische Einstellungen extrahieren
grep -i "vlan\|subnet\|dhcp\|port_forward" fritzbox_backup_*.export > vlan_settings.txt

# Geräte-MAC-Adressen mit Namen dokumentieren
echo "=== GERÄTE-MAC-MAPPING ===" >> migration_backup.txt
arp -a | grep "192.168.178" >> migration_backup.txt

Phase 3: Downtime-Minimierung durch Parallel-Setup (30 Minuten)

Parallel-Netzwerk Strategie:
1. UniFi Dream Machine an separatem Internet-Anschluss konfigurieren
2. Alle VLANs und Netzwerke vorab einrichten
3. Geräte schrittweise umstecken statt kompletter Abschaltung

# UniFi Controller auf separatem System vorbereiten
docker run -d --name unifi-controller \
  -p 8080:8080 -p 8443:8443 -p 3478:3478/udp \
  -v unifi-data:/unifi/data \
  jacobalberty/unifi:latest

# Controller-Zugang testen
curl -k https://localhost:8443/status

Migration Schritt-für-Schritt: 10 strukturierte Phasen

Phase 4: UniFi Controller Grundkonfiguration (45 Minuten)

Initial Setup mit korrekten Netzwerk-Bereichen:

# UniFi Controller API-Setup für automatisierte Konfiguration
CONTROLLER_IP="192.168.1.1"
SITE_ID="default"

# Login und Session-Cookie erhalten
curl -c cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/login" \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"DEIN_PASSWORT"}' \
  --insecure

# Basis-Netzwerk (Main LAN) konfigurieren
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/networkconf" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Main-LAN",
    "purpose": "corporate",
    "vlan_enabled": false,
    "ip_subnet": "192.168.1.0/24",
    "dhcp_enabled": true,
    "dhcp_start": "192.168.1.10",
    "dhcp_stop": "192.168.1.200",
    "dhcp_dns": ["192.168.1.1", "8.8.8.8"]
  }' --insecure

Phase 5: VLAN-Netzwerke systematisch erstellen (60 Minuten)

IoT-VLAN (VLAN 10) für Smart Home Geräte:

# IoT-Netzwerk mit restriktiven Firewall-Regeln
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/networkconf" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "IoT-Network",
    "purpose": "vlan-only",
    "vlan_enabled": true,
    "vlan": 10,
    "ip_subnet": "192.168.10.0/24",
    "dhcp_enabled": true,
    "dhcp_start": "192.168.10.10",
    "dhcp_stop": "192.168.10.200",
    "dhcp_dns": ["192.168.1.1"],
    "igmp_snooping": true,
    "dhcp_lease_time": 86400
  }' --insecure

# Gast-VLAN (VLAN 20) mit Internet-only Zugang
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/networkconf" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Guest-Network",
    "purpose": "guest",
    "vlan_enabled": true,
    "vlan": 20,
    "ip_subnet": "192.168.20.0/24",
    "dhcp_enabled": true,
    "dhcp_start": "192.168.20.50",
    "dhcp_stop": "192.168.20.100",
    "dhcp_dns": ["8.8.8.8", "1.1.1.1"],
    "dhcp_lease_time": 3600,
    "guest_access_enabled": true
  }' --insecure

# Drucker-VLAN (VLAN 30) für Netzwerkdrucker
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/networkconf" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Printer-Network",
    "purpose": "vlan-only",
    "vlan_enabled": true,
    "vlan": 30,
    "ip_subnet": "192.168.30.0/24",
    "dhcp_enabled": true,
    "dhcp_start": "192.168.30.10",
    "dhcp_stop": "192.168.30.50",
    "dhcp_dns": ["192.168.1.1"],
    "igmp_snooping": true
  }' --insecure

Phase 6: WLAN-Netzwerke mit VLAN-Zuordnung (30 Minuten)

# Haupt-WLAN für Main-LAN
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/wlanconf" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "HomeNetwork-Main",
    "x_passphrase": "DEIN_WLAN_PASSWORT",
    "security": "wpapsk2",
    "wpa_mode": "wpa2",
    "wpa_enc": "ccmp",
    "networkconf_id": "MAIN_NETWORK_ID",
    "enabled": true,
    "hide_ssid": false
  }' --insecure

# IoT-WLAN für Smart Home Geräte
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/wlanconf" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "HomeNetwork-IoT",
    "x_passphrase": "IOT_WLAN_PASSWORT",
    "security": "wpapsk2",
    "wpa_mode": "wpa2",
    "wpa_enc": "ccmp",
    "networkconf_id": "IOT_NETWORK_ID",
    "enabled": true,
    "hide_ssid": false
  }' --insecure

# Gast-WLAN mit Zeitbegrenzung
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/wlanconf" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "HomeNetwork-Guest",
    "x_passphrase": "GUEST_PASSWORT",
    "security": "wpapsk2",
    "networkconf_id": "GUEST_NETWORK_ID",
    "enabled": true,
    "guest_access_enabled": true,
    "guest_access_time": 480
  }' --insecure

Phase 7: Firewall-Regeln für Inter-VLAN Communication (45 Minuten)

Kritische Firewall-Konfiguration für VLAN-übergreifende Kommunikation:

# Main-LAN zu IoT-VLAN (für NAS-Zugriff)
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/firewallrule" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Main-to-IoT-Access",
    "ruleset": "LAN_IN",
    "rule_index": 2000,
    "action": "accept",
    "protocol": "all",
    "src_networkconf_id": "MAIN_NETWORK_ID",
    "dst_networkconf_id": "IOT_NETWORK_ID",
    "enabled": true,
    "logging": false
  }' --insecure

# IoT-VLAN Internet-Zugang (aber kein LAN-Zugriff)
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/firewallrule" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "IoT-Internet-Only",
    "ruleset": "LAN_IN",
    "rule_index": 2001,
    "action": "drop",
    "protocol": "all",
    "src_networkconf_id": "IOT_NETWORK_ID",
    "dst_networkconf_type": "NETv4",
    "dst_address": "192.168.1.0/24",
    "enabled": true,
    "logging": true
  }' --insecure

# Drucker-VLAN von Main-LAN erreichbar
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/firewallrule" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Main-to-Printer-Access",
    "ruleset": "LAN_IN",
    "rule_index": 2002,
    "action": "accept",
    "protocol": "tcp",
    "src_networkconf_id": "MAIN_NETWORK_ID",
    "dst_networkconf_id": "PRINTER_NETWORK_ID",
    "dst_port": "80,443,515,631,9100",
    "enabled": true
  }' --insecure

Phase 8: DHCP-Reservierungen migrieren (30 Minuten)

Statische IP-Zuweisungen aus Fritz!Box übertragen:

# NAS-Geräte mit festen IPs
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/user" \
  -H "Content-Type: application/json" \
  -d '{
    "mac": "aa:bb:cc:dd:ee:ff",
    "name": "Synology-NAS",
    "fixed_ip": "192.168.10.50",
    "network_id": "IOT_NETWORK_ID",
    "use_fixedip": true,
    "usergroup_id": ""
  }' --insecure

# Drucker mit statischer IP
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/user" \
  -H "Content-Type: application/json" \
  -d '{
    "mac": "11:22:33:44:55:66",
    "name": "HP-LaserJet",
    "fixed_ip": "192.168.30.10",
    "network_id": "PRINTER_NETWORK_ID",
    "use_fixedip": true
  }' --insecure

# Smart Home Hub (Philips Hue Bridge)
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/user" \
  -H "Content-Type: application/json" \
  -d '{
    "mac": "00:17:88:aa:bb:cc",
    "name": "Hue-Bridge",
    "fixed_ip": "192.168.10.100",
    "network_id": "IOT_NETWORK_ID",
    "use_fixedip": true
  }' --insecure

Phase 9: Port-Forwarding Rules migrieren (45 Minuten)

Externe Erreichbarkeit für NAS und Server wiederherstellen:

# SSH-Zugang zur Synology NAS
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/portforward" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "SSH-NAS-Access",
    "enabled": true,
    "src": "wan",
    "dst_port": "2222",
    "fwd_ip": "192.168.10.50",
    "fwd_port": "22",
    "proto": "tcp",
    "log": false,
    "pfwd_interface": "wan"
  }' --insecure

# HTTPS-Zugang für NAS Web-Interface
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/portforward" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "HTTPS-NAS-WebUI",
    "enabled": true,
    "src": "wan",
    "dst_port": "5001",
    "fwd_ip": "192.168.10.50",
    "fwd_port": "5001",
    "proto": "tcp",
    "log": false
  }' --insecure

# Plex Media Server
curl -b cookies.txt -X POST \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/portforward" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Plex-Media-Server",
    "enabled": true,
    "src": "wan",
    "dst_port": "32400",
    "fwd_ip": "192.168.10.50",
    "fwd_port": "32400",
    "proto": "tcp",
    "log": false
  }' --insecure

Phase 10: Switch-Port Konfiguration (30 Minuten)

VLAN-Tagging für angeschlossene Switches und Geräte:

# Trunk-Port für Managed Switch (alle VLANs)
curl -b cookies.txt -X PUT \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/device/SWITCH_MAC" \
  -H "Content-Type: application/json" \
  -d '{
    "port_overrides": [
      {
        "port_idx": 1,
        "portconf_id": "trunk_all_vlans",
        "name": "Uplink-Switch",
        "op_mode": "switch"
      }
    ]
  }' --insecure

# Access-Port für IoT-Geräte (VLAN 10)
curl -b cookies.txt -X PUT \
  "https://${CONTROLLER_IP}:8443/api/s/${SITE_ID}/rest/device/SWITCH_MAC" \
  -H "Content-Type: application/json" \
  -d '{
    "port_overrides": [
      {
        "port_idx": 8,
        "portconf_id": "iot_access_vlan10",
        "name": "IoT-Devices",
        "op_mode": "switch"
      }
    ]
  }' --insecure

Post-Migration Validierung: Systematische Tests

Validierungstest 1: VLAN-Segmentierung prüfen (15 Minuten)

# Test 1: Alle VLANs sind aktiv und erreichbar
for vlan in 1 10 20 30; do
  echo "Testing VLAN $vlan gateway..."
  ping -c 3 -W 2 192.168.$vlan.1 && echo "✓ VLAN $vlan OK" || echo "✗ VLAN $vlan FAILED"
done

# Test 2: DHCP-Leases in korrekten VLAN-Bereichen
ssh admin@192.168.1.1 'cat /var/lib/dhcp/dhcpd.leases' | \
grep -E "lease 192\.168\.(10|20|30)" | wc -l
# Erwartung: > 0 (Geräte in VLAN-spezifischen IP-Bereichen)

# Test 3: Inter-VLAN Routing funktioniert
ping -c 3 -I 192.168.1.100 192.168.10.50 && echo "✓ Main→IoT OK" || echo "✗ Main→IoT BLOCKED"
ping -c 3 -I 192.168.1.100 192.168.30.10 && echo "✓ Main→Printer OK" || echo "✗ Main→Printer BLOCKED"

Validierungstest 2: Geräte-Konnektivität prüfen (20 Minuten)

# Test 4: NAS-Erreichbarkeit in IoT-VLAN
nmap -p 22,80,443,5000,5001 192.168.10.50
# Erwartung: Alle Ports "open"

# Test 5: Smart Home Geräte im IoT-VLAN
nmap -sn 192.168.10.0/24 | grep -c "Nmap scan report"
# Erwartung: Anzahl entspricht dokumentierten IoT-Geräten

# Test 6: Drucker-Zugriff aus Main-LAN
telnet 192.168.30.10 9100 < /dev/null && echo "✓ Printer accessible" || echo "✗ Printer blocked"

# Test 7: Gast-WLAN Internet-only Zugang
# Von Gast-Gerät (192.168.20.x):
ping -c 3 8.8.8.8 && echo "✓ Guest Internet OK" || echo "✗ Guest Internet BLOCKED"
ping -c 3 192.168.1.1 && echo "✗ Guest LAN accessible (SECURITY RISK)" || echo "✓ Guest LAN blocked"

Validierungstest 3: Externe Erreichbarkeit prüfen (10 Minuten)

# Test 8: Port-Forwarding funktioniert
EXTERNAL_IP=$(curl -s ifconfig.me)
nmap -p 2222,5001,32400 $EXTERNAL_IP
# Erwartung: Alle konfigurierten Ports "open"

# Test 9: DNS-Auflösung in allen VLANs
for vlan in 1 10 20 30; do
  nslookup google.com 192.168.$vlan.1 && echo "✓ DNS VLAN $vlan OK" || echo "✗ DNS VLAN $vlan FAILED"
done

# Test 10: DHCP-Reservierungen aktiv
ssh admin@192.168.1.1 'grep -E "(Synology|HP-LaserJet|Hue-Bridge)" /var/lib/dhcp/dhcpd.leases'
# Erwartung: Alle reservierten Geräte mit korrekten IPs

Rollback-Strategie: Rückkehr zur Fritz!Box bei kritischen Problemen

Rollback-Trigger: Wann zurück zur Fritz!Box?

Kritische Fehler die Rollback erfordern:
– Mehr als 3 VLANs funktionieren nicht nach 2 Stunden Debugging
– Internet-Zugang für mehr als 50% der Geräte ausgefallen
– Geschäftskritische Services (NAS, Server) nicht erreichbar nach 1 Stunde
– Massive Performance-Probleme (>100ms Latenz im LAN)

Rollback-Prozedur (30 Minuten)

# Schritt 1: Fritz!Box wieder als Router aktivieren
# - Fritz!Box an Hauptanschluss anschließen
# - UniFi Dream Machine auf Bridge-Mode umstellen

# Schritt 2: Fritz!Box Konfiguration wiederherstellen
# Im Fritz!Box Web-Interface:
# System → Sicherung → Sicherungsdatei einspielen
# Datei: fritzbox_backup_YYYYMMDD.export auswählen

# Schritt 3: Geräte-Konnektivität validieren
for ip in $(seq 1 254); do
  ping -c 1 -W 1 192.168.178.$ip >/dev/null 2>&1 && echo "Device found: 192.168.178.$ip"
done

# Schritt 4: Kritische Services prüfen
# NAS erreichbar:
ping -c 3 192.168.178.50 && echo "✓ NAS accessible"
# Internet funktioniert:
ping -c 3 8.8.8.8 && echo "✓ Internet OK"
# DHCP verteilt IPs:
dhclient -r && dhclient && echo "✓ DHCP working"

Post-Rollback Analyse

# UniFi-Konfiguration für späteren Retry sichern
scp admin@192.168.1.1:/usr/lib/unifi/data/sites/default/config.gateway.json \
  unifi_failed_config_$(date +%Y%m%d).json

# Fehler-Logs sammeln für Debugging
ssh admin@192.168.1.1 'tail -200 /var/log/messages' > unifi_error_logs.txt
tail -100 /usr/lib/unifi/logs/server.log >> unifi_error_logs.txt

# Netzwerk-Performance vor/nach Vergleich
echo "Fritz!Box Performance Test:" > performance_comparison.txt
ping -c 10 8.8.8.8 | tail -1 >> performance_comparison.txt
iperf3 -c speedtest.net -t 30 >> performance_comparison.txt

Troubleshooting: Hard Debug Flow für häufigste Migrationsfehler

Debug Flow 1: Alle Geräte landen im Default-VLAN

Symptom: Nmap-Scan zeigt alle Geräte in 192.168.1.0/24, keine VLAN-Segmentierung

60-Sekunden Quick Fix:

# 1. VLAN-Konfiguration prüfen (15s)
ssh admin@192.168.1.1 'show vlan' | grep -v "VLAN 1"
# Erwartung: Mindestens VLAN 10, 20, 30 sichtbar

# 2. Wenn leer: VLANs wurden nicht erstellt (30s)
curl -b cookies.txt -X GET \
  "https://192.168.1.1:8443/api/s/default/rest/networkconf" \
  --insecure | jq '.data[].vlan'
# Erwartung: [null, 10, 20, 30]

# 3. Fehlende VLANs sofort erstellen (15s)
curl -b cookies.txt -X POST \
  "https://192.168.1.1:8443/api/s/default/rest/networkconf" \
  -H "Content-Type: application/json" \
  -d '{"name":"IoT-Network","vlan":10,"ip_subnet":"192.168.10.0/24","dhcp_enabled":true}' \
  --insecure

Root Cause: UniFi Controller erstellt nur Default-Netzwerk, alle anderen VLANs müssen manuell angelegt werden.

Debug Flow 2: Inter-VLAN Kommunikation blockiert

Symptom: ping 192.168.10.50 von 192.168.1.100 schlägt fehl mit „Destination Host Unreachable“

60-Sekunden Quick Fix:

# 1. Routing-Tabelle prüfen (10s)
ssh admin@192.168.1.1 'ip route | grep 192.168.10'
# Erwartung: "192.168.10.0/24 dev br1.10"

# 2. Firewall-Regeln prüfen (20s)
ssh admin@192.168.1.1 'iptables -L FORWARD -n | grep 192.168'
# Erwartung: ACCEPT-Regeln zwischen VLAN-Subnetzen

# 3. Fehlende Inter-VLAN Regel erstellen (30s)
curl -b cookies.txt -X POST \
  "https://192.168.1.1:8443/api/s/default/rest/firewallrule" \
  -H "Content-Type: application/json" \
  -d '{
    "name":"Allow-Main-to-IoT",
    "action":"accept",
    "ruleset":"LAN_IN",
    "src_networkconf_id":"MAIN_ID",
    "dst_networkconf_id":"IOT_ID"
  }' --insecure

Root Cause: UniFi hat standardmäßig restriktive Inter-VLAN Firewall-Regeln aktiviert.

Debug Flow 3: DHCP-Leases in falschen IP-Bereichen

Symptom: IoT-Geräte erhalten 192.168.1.x IPs statt 192.168.10.x

60-Sekunden Quick Fix:

# 1. DHCP-Scope Konfiguration prüfen (15s)
ssh admin@192.168.1.1 'cat /etc/dhcp/dhcpd.conf | grep -A5 "subnet 192.168.10"'
# Erwartung: DHCP-Pool für 192.168.10.0/24

# 2. VLAN-Interface Status prüfen (15s)
ssh admin@192.168.1.1 'ip addr show br1.10'
# Erwartung: "inet 192.168.10.1/24"

# 3. DHCP-Service für VLAN neu starten (30s)
ssh admin@192.168.1.1 'systemctl restart isc-dhcp-server'
# DHCP-Leases löschen für Neuverteilung:
ssh admin@192.168.1.1 'rm /var/lib/dhcp/dhcpd.leases && touch /var/lib/dhcp/dhcpd.leases'

Root Cause: VLAN-spezifische DHCP-Scopes wurden nicht konfiguriert oder DHCP-Service erkennt VLAN-Interfaces nicht.

Debug Flow 4: WiFi-Geräte landen im falschen VLAN

Symptom: IoT-SSID verbundene Geräte erhalten 192.168.1.x statt 192.168.10.x IPs

60-Sekunden Quick Fix:

# 1. SSID-VLAN Mapping prüfen (20s)
curl -b cookies.txt -X GET \
  "https://192.168.1.1:8443/api/s/default/rest/wlanconf" \
  --insecure | jq '.data[] | {name: .name, vlan: .networkconf_id}'

# 2. Falsche VLAN-Zuordnung korrigieren (40s)
# WLAN-ID ermitteln:
WLAN_ID=$(curl -b cookies.txt -X GET \
  "https://192.168.1.1:8443/api/s/default/rest/wlanconf" \
  --insecure | jq -r '.data[] | select(.name=="HomeNetwork-IoT") | ._id')

# Korrekte VLAN-Zuordnung setzen:
curl -b cookies.txt -X PUT \
  "https://192.168.1.1:8443/api/s/default/rest/wlanconf/${WLAN_ID}" \
  -H "Content-Type: application/json" \
  -d '{"networkconf_id":"IOT_NETWORK_ID"}' \
  --insecure

Root Cause: SSID wurde ohne VLAN-Zuordnung erstellt oder mit falschem Netzwerk verknüpft.

Debug Flow 5: Port-Forwarding funktioniert nicht

Symptom: nmap -p 2222 EXTERNE_IP zeigt „filtered“ statt „open“

60-Sekunden Quick Fix:

# 1. NAT-Regeln prüfen (15s)
ssh admin@192.168.1.1 'iptables -t nat -L PREROUTING -n | grep 2222'
# Erwartung: "DNAT tcp dpt:2222 to:192.168.10.50:22"

# 2. Ziel-IP in korrektem VLAN prüfen (15s)
ping -c 1 192.168.10.50 && echo "Target reachable" || echo "Target unreachable"

# 3. Port-Forward Regel neu erstellen (30s)
curl -b cookies.txt -X POST \
  "https://192.168.1.1:8443/api/s/default/rest/portforward" \
  -H "Content-Type: application/json" \
  -d '{
    "name":"SSH-NAS",
    "src":"wan",
    "dst_port":"2222",
    "fwd_ip":"192.168.10.50",
    "fwd_port":"22",
    "proto":"tcp",
    "enabled":true
  }' --insecure

Root Cause: Port-Forward Regeln zeigen auf alte Fritz!Box IP-Bereiche oder wurden nicht migriert.

Debug Flow 6: Switch-Ports taggen VLANs nicht korrekt

Symptom: Geräte an Switch-Ports erhalten keine IP oder landen im Default-VLAN

60-Sekunden Quick Fix:

# 1. Switch-Port VLAN-Status prüfen (20s)
ssh admin@192.168.1.10 'bridge vlan show'
# Erwartung: Ports mit korrekten VLAN-Tags

# 2. Port-Profile Konfiguration prüfen (20s)
curl -b cookies.txt -X GET \
  "https://192.168.1.1:8443/api/s/default/rest/device/SWITCH_MAC" \
  --insecure | jq '.data[0].port_overrides'

# 3. Trunk-Port für alle VLANs konfigurieren (20s)
curl -b cookies.txt -X PUT \
  "https://192.168.1.1:8443/api/s/default/rest/device/SWITCH_MAC" \
  -H "Content-Type: application/json" \
  -d '{
    "port_overrides":[{
      "port_idx":1,
      "portconf_id":"trunk_all",
      "name":"Uplink"
    }]
  }' --insecure

Root Cause: Switch-Ports haben Default-Konfiguration ohne VLAN-Tagging oder falsche Port-Profile.

Häufige Irrglauben bei der Fritz!Box zu UniFi Migration

Irrglaube 1: „VLANs werden automatisch übernommen“

Die technische Realität: Fritz!Box verwendet proprietäre VLAN-Implementierung mit GUI-basierten „Heimnetz“-Segmenten, während UniFi explizite 802.1Q VLAN-Tags erfordert. Fritz!Box VLAN-IDs (1-8) müssen manuell auf UniFi-Netzwerke gemappt werden.

Praktische Konsequenz: Nach dem Wechsel landen alle Geräte im Default-VLAN 192.168.1.0/24, da keine VLAN-Struktur übertragen wird.

Irrglaube 2: „IP-Adressen bleiben automatisch erhalten“

Die Netzwerk-Realität: IP-Adressen ändern sich zwangsläufig, da UniFi andere DHCP-Bereiche verwendet (Standard: 192.168.1.x/24) als Fritz!Box (Standard: 192.168.178.x/24). Statische IP-Zuweisungen müssen im UniFi Controller neu konfiguriert werden.

Praktische Konsequenz: Deine Synology NAS Angebot ist nach der Migration unter der alten IP nicht mehr erreichbar.

Irrglaube 3: „UniFi Controller kann Fritz!Box Konfigurationsdateien importieren“

Die Import-Realität: Kein direkter Import möglich. Fritz!Box .export-Dateien sind proprietär verschlüsselt und UniFi Controller hat keine Importfunktion dafür. VLAN-Konfiguration muss komplett manuell neu erstellt werden.

Praktische Konsequenz: Plane 6-8 Stunden für komplette Neukonfiguration aller Netzwerksegmente, DHCP-Scopes und Firewall-Regeln ein.

Erweiterte Konfiguration: Optimierungen nach erfolgreicher Migration

mDNS-Reflector für Smart Home Geräte

Nach der Migration funktioniert die automatische Geräteerkennung zwischen VLANs nicht mehr. Philips Hue Bridges und Sonos Lautsprecher sind nicht mehr auffindbar.

# mDNS-Reflector zwischen Main-LAN und IoT-VLAN aktivieren
curl -b cookies.txt -X PUT \
  "https://192.168.1.1:8443/api/s/default/rest/networkconf/IOT_NETWORK_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "mdns_enabled": true,
    "igmp_snooping": true,
    "multicast_enhance": true
  }' --insecure

QoS-Regeln für Netzwerk-Performance

# Gaming-Traffic priorisieren (Main-LAN)
curl -b cookies.txt -X POST \
  "https://192.168.1.1:8443/api/s/default/rest/trafficrule" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Gaming-Priority",
    "enabled": true,
    "action": "set_dscp",
    "dscp": 46,
    "matching_target": "INTERNET",
    "network_id": "MAIN_NETWORK_ID",
    "app_category_ids": ["gaming"]
  }' --insecure

# IoT-Traffic begrenzen (max 10 Mbps)
curl -b cookies.txt -X POST \
  "https://192.168.1.1:8443/api/s/default/rest/trafficrule" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "IoT-Bandwidth-Limit",
    "enabled": true,
    "action": "set_bandwidth_limit",
    "bandwidth_limit_down": 10000,
    "bandwidth_limit_up": 5000,
    "network_id": "IOT_NETWORK_ID"
  }' --insecure

Monitoring und Alerting

# Netzwerk-Performance Monitoring aktivieren
curl -b cookies.txt -X PUT \
  "https://192.168.1.1:8443/api/s/default/set/setting/mgmt" \
  -H "Content-Type: application/json" \
  -d '{
    "advanced_feature_enabled": true,
    "alert_enabled": true,
    "auto_upgrade": false,
    "discovery_enabled": true
  }' --insecure

# VLAN-spezifische Alerts konfigurieren
curl -b cookies.txt -X POST \
  "https://192.168.1.1:8443/api/s/default/rest/alert" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "IoT-VLAN-Down",
    "type": "network_down",
    "network_id": "IOT_NETWORK_ID",
    "enabled": true,
    "email_enabled": true
  }' --insecure

Die komplette VLAN-Migration von Fritz!Box zu UniFi Dream Machine erfordert systematische Planung und methodische Umsetzung. Mit dieser strukturierten 10-Phasen Anleitung, den Validierungstests und der Rollback-Strategie gelingt die Migration ohne Datenverlust und mit minimaler Downtime. Die häufigsten Fehlerquellen sind durch die Debug-Flows schnell identifizierbar und behebbar.

Kritischer Erfolgsfaktor: Dokumentiere deine ursprüngliche Fritz!Box-Konfiguration vollständig vor der Migration. Ohne diese Dokumentation verlierst du wichtige Netzwerk-Details, die später schwer zu rekonstruieren sind.

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert