This repo contains the files you need to succesfully configure the USG with KPN FTTH with IPTV and IPv6 enabled.
-
Place config.gateway.json at the unifi controller (sites/default) via SCP
The config.gateway.json contains the main configuration with the different interfaces which are needed for internet (vlan 6) and IPTV (vlan 4). IPv4 is configured via PPPoE with the kpn/kpn username and password. KPN uses a TAG which is configured in the DSLAM to identify your connection and to give you your "permanent" public IPv4 address.
-
Place routes in /etc/dhcp3/dhclient-exit-hooks.d/ via SCP
-
Execute
sudo chmod +x /etc/dhcp3/dhclient-exit-hooks.d/routes
on the USGKPN sends static routes via DHCP which the USG does not install by default. This script will install the DHCP routes when a DHCP lease is received. The chmod +x command allows the script to be executed. (source)
-
Place dhcp6.sh in /config/scripts/post-config.d/ via SCP
-
Execute
chmod +x /config/scripts/post-config.d/dhcp6.sh
on the USGIPv6 works natively in the USG, the problem with KPN is that the json nesting will go to deep (interface, vlan and pppoe) and the USG will hit a bug (source) when it tries to parse the json. To overcome this, after 2 minutes the USG will execute this script which will configure IPv6 on the PPPoE interface and will remove the task from the taskscheduler.
-
The lan network (and portfowarding if needed) needs to be configured in the Unifi controller
-
Go to the USG in devices in the controller and force provisioning
Please note that you have to put the scripts back on the USG after you perform a firmware upgrade
After provisioning please reboot the USG. After two minutes IPv6 will be enabled. This can be checked by executing show interfaces
on the USG.
The PPPOE interface has no "public" IPv6 address because it uses the link local IPv6 address to route traffic to KPN. To see the remote address execute the following command (source):
show interfaces pppoe pppoe2 log | match "IPV6|LL"
XS4ALL (a Dutch ISP which uses the KPN platform has more information regarding the technical details), more info can be found here