Fiber7 & Unifi Security Gateway (USG) mit DHCPv6 Prefix Delegation (DHCPv6-PD)
Manuelle Anleitung für DHCPv6-PD Unterstützung mit der Unifi Security Gateway (USG) via config.gateway.json
.
Die Init7 benutzt auf ihren Fiber7 standard IPv4 (DHCPv4) und IPv6 (DHCPv6-PD PD=Prefix Delegation)
Voraussetzung
- Unifi Controller Version muss mindestens
5.4.11
sein für die manuelle Konfiguration mitconfig.gateway.json
- DHCPv6-PD auf der USG funktioniert auch nur wenn ihr direkt mit Init7 verbunden seid. Es funktioniert nicht hinter einem anderen Router.
IPv6 Test vor der Konfiguration
Testseite aufrufen vom lokalen Gerät in euerem Netzwerk: https://test-ipv6.com/
Resultat
0 von 10 Tests waren erfolgreich.
Es ist Zeit IPv6 mit DHCPv6-PD einzurichten…
Manuelle Konfiguration mit config.gateway.json
Für spezielle Konfigurationen gibt es die Datei config.gateway.json
. Die Datei auf dem Unifi Controller erlaubt eine persistente Konfiguration auch bei erneuter Provisionierung.
Die Datei config.gateway.json
ist standardmässig nicht vorhanden und muss am richtigen Ort erstellt werden.
Basispfad Unifi Controller "Site"
Auf Unifi Controller können mehrere "Seiten" eingerichtet werden. Um die richtige Seite zu finden könnt ihr in der URL nachschauen:
https://UnifiController:8443/manage/site/<sitenname>/dashboard
# Meine Unifi Controller Dashbord URL:
https://UnifiController:8443/manage/site/default/dashboard
Da ich nur eine "site" habe, hat diese noch den Namen default
.
Die Basispfade für den UC und die verschiedenen Betriebsysteme sind hier dokumentiert: https://help.ubnt.com/hc/en-us/articles/115004872967
Mein UC ist auf Ubunutu installiert und somit is mein Unifi Basispfad:
/usr/lib/unifi
Der Basispfad zur "site":
/usr/lib/unifi/data/sites/default
Die Datei config.gateway.json
auf dem Unifi Controller anlegen für die gewünschte Seite:
vim /usr/lib/unifi/data/sites/default/config.gateway.json
Folgendes einfügen oder vom Link USG JSON config kopieren):
Hinweis: Diese Konfiguration funktioniert nur wenn eth0
euer WAN-Interface ist (Standardkonfiguration). Ansonsten müsst ihr die Konfiguration entsprechend anpassen.
Für VLAN müsst ihr auch etwas anpasssen, siehe die VLAN Notiz unter "Manual Configuration with .JSON File" Link.
Wichtig: Die Konfiguration vor dem Provisionieren nochmals durch einen JSON Validator laufen lassen. Die Syntax muss korrekt sein, ansonsten gibt einen boot loop auf der USG!
{
"firewall": {
"ipv6-name": {
"wan_in-6": {
"default-action": "drop",
"description": "wan_in",
"enable-default-log": "''",
"rule": {
"1": {
"action": "accept",
"description": "Allow Enabled/Related state",
"state": {
"established": "enable",
"related": "enable"
}
},
"2": {
"action": "drop",
"description": "Drop Invalid state",
"log": "enable",
"state": {
"invalid": "enable"
}
},
"5": {
"action": "accept",
"description": "Allow ICMPv6",
"log": "enable",
"protocol": "icmpv6"
}
}
},
"wan_local-6": {
"default-action": "drop",
"description": "wan_local",
"enable-default-log": "''",
"rule": {
"1": {
"action": "accept",
"description": "Allow Enabled/Related state",
"state": {
"established": "enable",
"related": "enable"
}
},
"2": {
"action": "drop",
"description": "Drop Invalid state",
"log": "enable",
"state": {
"invalid": "enable"
}
},
"5": {
"action": "accept",
"description": "Allow ICMPv6",
"log": "enable",
"protocol": "icmpv6"
},
"6": {
"action": "accept",
"description": "DHCPv6",
"destination": {
"port": "546"
},
"protocol": "udp",
"source": {
"port": "547"
}
}
}
}
}
},
"interfaces": {
"ethernet": {
"eth0": {
"dhcpv6-pd": {
"pd": {
"0": {
"interface": {
"eth1": "''"
},
"prefix-length": "48"
}
},
"rapid-commit": "enable"
},
"firewall": {
"in": {
"ipv6-name": "wan_in-6"
},
"local": {
"ipv6-name": "wan_local-6"
}
}
},
"eth1": {
"ipv6": {
"dup-addr-detect-transmits": "1",
"router-advert": {
"cur-hop-limit": "64",
"link-mtu": "0",
"managed-flag": "true",
"max-interval": "600",
"other-config-flag": "false",
"prefix": {
"::/48": {
"autonomous-flag": "true",
"on-link-flag": "true",
"valid-lifetime": "2592000"
}
},
"reachable-time": "0",
"retrans-timer": "0",
"send-advert": "true"
}
}
}
}
}
}
Folgendes müsst ihr auf 48
anpassen (bin nicht sicher ob beides angepasst werden muss, aber so funktioniert es bei mir):
…
"prefix-length": "48"
…
"prefix": {
"::/48": {
…
Jetzt die Provisionierung auf der USG forcieren: https://help.ubnt.com/hc/en-us/articles/115002913728-UniFi-How-to-Trigger-a-Provision
Testen auf der USG direkt
ssh <user>@<USG-IP>
Mit show interfaces
solltet ihr etwa sowas sehen (Die IPv4 & IPv6 Adressen habe ich alle verändert):
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
--------- ---------- --- -----------
eth0 XXX.XXX.XXX.XXX/24 u/u
123a:b12:c1234:dd:abcd:blah:blah:1111/128
eth1 192.168.XXX.XXX/24 u/u
123a:b12:d321:00:dcba:blah:654:1234/64
eth2 - A/D
lo 127.0.0.1/8 u/u
::1/128
show ipv6 route
sollte etwas dies anzeigen:
Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,
I - ISIS, B - BGP, * - FIB route.
K>* ::/0 via fe80::aaa:xyzz:0123:12bf, eth0
C>* ::1/128 is directly connected, lo
C>* 123a:b12:c1234:dd:abcd:blah:blah:1111/128 is directly connected, eth0
C>* 123a:b12:d321::/64 is directly connected, eth1
C * fe80::/64 is directly connected, eth0
C>* fe80::/64 is directly connected, eth1
Und dies sollte zwingend funktionieren ping6 google.ch
:
Lokal testen
Auch eure lokalen Geräte sollten IPv6 jetzt unterstützen. Dazu könnt ihr erneut auf diese Seite gehen: https://test-ipv6.com/
Resultat
10 von 10 Tests waren erfolgreich.
Super!! Jetzt funktioniert IPv6 auf allen Geräten. Die USG nutzt nun DHCPv6-PD mit Fiber7.
Ich kenne mich noch nicht so gut aus mit IPv6. Komischerweise zeigt mit die USG noch immer …/64 an und auch die clients bei der prefix length. Ich hoffe dies kann mir mal jemand genauer erklären.
Unifi Controller Version 5.7
soll IPv6 um einiges besser unterstützen und auch via User Interface konfigurierbar sein. Siehe hier: https://matthijs.hoekstraonline.net/2016/11/27/how-to-enable-ipv6-from-comcast-on-your-unify-security-gateway/
Urpsrünglicher Artikel: