Fritz!Box durch UniFi Dream Machine ersetzen: VLAN-Konfiguration vollständig migrieren
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.
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.








Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!