Posts Unifi Security Gateway (USG) installeren met KPN FTTH inclusief IPTV en IPv6
Post
Cancel

Unifi Security Gateway (USG) installeren met KPN FTTH inclusief IPTV en IPv6

Inleiding

In deze handleiding neem ik je mee hoe je een Unifi Security Gateway (USG) rechtstreeks kan aansluiten op glasvezel (FTTH) van KPN en daarbij gebruik kan maken van de IPTV kastjes die door KPN worden geleverd en IPv6.

Voorbereiding

Voordat we daadwerkelijk gaan beginnen is het belangrijk om een aantal zaken voor te bereiden.

Hardware

De volgende hardware hebben we nodig om deze handleiding te kunnen voltooien.

TypeMerkOmschrijving
Glasvezel NTUGenexis / MC901Dit is het kastje (vaak in de meterkast) waar aan de ene kant de glasvezel kabel in gaat en aan de andere kant een RJ45 aansluiting waar de UTP kabel naar de router in zit.
USG RouterUbiquitiDit is de Ubiquiti Unifi security gateway (USG) die internet en IPTV verzorgt.
SwitchUbiquiti / andersDe USG zit verbonden met een switch voor je lokale apparaten in je netwerk, deze switch moet wel IGMP ondersteunen vanwege IPTV.
IPTV SetupboxArcadyan / ZTEHet kastje wat aan de ene kant met UTP op je switch zit aangesloten en aan de andere kant met HDMI (of SCART) aan je TV.
Unifi controllerUbiquiti / andersMet de controller stel je de USG in, deze kan op een stuk hardware (cloudkey) draaien maar ook op je computer, server, NAS rechstreeks of bijvoorbeeld via docker.

Let op: deze handleiding is bedoeld voor een Ubiquity Unifi Security Gateway 3. Indien je een USG 4 Pro hebt dien je in de config.gateway.json en kpn.sh de interfaces aan te passen op de manier waarop je je USG 4 Pro hebt aangesloten. Bij de USG 3 is eth0 WAN en eth1 LAN.

Software

In deze handleiding ga ik er vanuit dat we Windows 10 gebruiken waarbij we onderstaande software gaan gebruiken. Graag deze bestanden downloaden zodat ze klaar staan als we gaan beginnen.

SoftwareOmschrijving
putty.exe (64‑bit)Met dit programma kunnen we via SSH inloggen op de USG en eventueel de controller om commando’s uit te voeren.
WinSCP PortableWinSCP gebruiken we om via Secure Copy Protocol bestanden van onze computer naar de USG en eventueel de controller te krijgen.
usg-kpn-ftth zipDe inhoud van mijn github repo in zip formaat zodat we alle bestanden in het juiste (UNIX) formaat hebben. Deze gaan we later naar de juiste locaties (USG/Controller) verplaatsen.

Let op: Indien je XS4ALL hebt dien je xs4all.zip te downloaden!

Gegevens

Onderstaande informatie gaan we gebruiken in deze handleiding.

InformatieOmschrijving
URL ControllerDit is het web adres waarop de unifi controller bereikbaar is, deze is bereikbaar op een IP adres en draait vaak op poort 8443 (HTTPS).
Controller loginDe gebruikersnaam en wachtwoord om in te kunnen loggen op de controller.
IP adres USGWe maken met SSH verbinding naar dit IP adres een bestand te plaatsen en commando’s uit te voeren.
SSH login gegevens USGDe gebruikersnaam en wachtwoord om via SSH in te kunnen loggen op de USG (zie kopje hieronder).
Toegang tot bestanden controllerEr moet een configuratie geplaatst worden op de controller. Indien je een Unifi Cloud Key hebt kan dat via SSH, de inloggegevens heb je ingesteld tijdens de initiële configuratie van de Cloud Key. Als je een docker container gebruikt die je toegang te hebben tot de data map. In het geval van een server/computer dien je ook toegang te hebben tot de data map.

SSH toegang unifi apparaten

Om toegang te krijgen tot de USG via SSH moet dit geconfigureerd zijn. In de webinterface van de controller ga je naar settings en dan naar Controller Configuration en scroll je naar beneden naar Element SSH Authentication. Hier vink je Element SSH authentication aan en kies je een gebruikersnaam en wachtwoord. Daarna klik je op Apply Changes. Vanaf nu kan je met deze gebruikersnaam en wachtwoord via SSH inloggen op de USG.

unifi_controller_ssh

Uitgangssituatie

Voordat we beginnen moeten we eerst weten waar we starten. In deze handleiding starten we met het volgende:

  1. De USG zit met de WAN aansluiting direct aangesloten aan de NTU van KPN met een ethernet (UTP) kabel.
  2. De LAN aansluiting van de USG zit met een ethernet (UTP) kabel verbonden met een switch.
    Dat kan een unifi switch zijn maar mag ook een ander merk zijn, wel moet IGMP ondersteund worden.
  3. Op de switch (direct of via een andere switch), zit de unifi controller verbonden.
    Dit kan een unifi cloud key zijn maar ook een computer, server of een NAS.
  4. Ook zit de IPTV setupbox van KPN via een ethernet kabel verbonden aan een switch.

Ubiquiti heeft zelf een afbeelding hoe de verschillende onderdelen met elkaar verbonden zijn:

topology

In dit geval is het modem de NTU, hieronder een overzicht van de verschillende NTU’s die KPN ingebruik heeft:

ntu

Als we de bestanden hebben gedownload pakken we de twee zip bestanden (winscp en usg-kpn-ftth master.zip) uit zodat we een map met WinSCP, een map met de configuratie bestanden en als laatst putty.exe hebben.

files_downloaded

IGMP snooping aanzetten

Het is belangrijk dat op de switch(es) IGMP snooping aan staat vanwege IPTV. In de unifi controller kan je dat vinden door naar settings en dan naar networks te gaan. In het overzicht van de netwerken klik je op Edit bij het LAN netwerk en vink je Enable IGMP snooping aan.

Config.gateway.json plaatsen

Het eerste configuratie bestand wat we gaan plaatsen is een json bestand waarin een geavanceerde configuratie staat beschreven. Vanwege de complexiteit is dit niet in de webinterface in te stellen. Dit configuratie bestand is bedoeld voor de USG maar we gaan dit bestand plaatsen op de unifi controller. Zodra de unifi controller de USG de configuratie stuurt zal de unifi controller de instellingen van de webinterface samenvoegen met de geavanceerde configuratie en zo de complete configuratie naar de USG sturen.

De unifi controller kan op verschillende manieren aanwezig zijn in je netwerk:

  1. Via een stuk hardware van Ubiquity zelf, een zogenoemde Unifi Cloud Key
  2. Via een stuk software wat je op je computer/server installeert (Windows of Linux)
  3. Via een (docker)container kan de controller draaien op een server of bijvoorbeeld op een NAS

Let op: Indien de controller zich buiten het interne netwerk bevindt (internet of bij iemand anders thuis) werkt deze setup niet, dit is een bug in de unifi software.

De locatie van de config.gateway.json is altijd hetzelfde gezien vanuit de basis locatie, namelijk <unifi_base>/data/sites/site_ID. In de meeste gevallen is de site_ID gelijk aan default maar de waarde kan anders zijn indien je in de controller een site hebt toegevoegd en daar je apparaten in hebt geconfigureerd. In de adresbalk van je browser zie je in welke site je zit, in mijn geval is dat default.

De locatie van <unifi_base> hangt af waar de controller draait. Ubiquity heeft een pagina gemaakt waarop ze de verschillende locaties aangeven:

Type controllerLocatie
UniFi Cloud Key/usr/lib/unifi
Debian/Ubuntu Linux/usr/lib/unifi
Windows%userprofile%/Ubiquiti UniFi
macOS~/Library/Application Support/UniFi

In het geval van de cloudkey kan je navigeren naar /usr/lib/unifi/data/sites/default/ (vervang default als je een andere site_id gebruikt). Indien je de controller software lokaal draait (op Windows of Mac) dan kan je config.gateway.json naar de juiste locatie kopieëren door middel van de verkenner of finder. In mijn geval maak ik gebruik van een docker container op mijn Synology NAS en kan ik via SSH inloggen op de NAS en naar de juiste map navigeren die aan mijn docker container gekoppeld zit.

winscp_controller

Ik start door WinSCP.exe te openen en de gegevens van mijn controller in te vullen zodat ik via SSH (SCP) verbinding maak. Indien er een waarschuwing komt over een “unknown server” kan je deze met Yes beantwoorden, WinSCP waarschuwt je namelijk dat dit de eerste keer is dat je verbinding maakt met dit apparaat.

winscp_controller_upload

In het rechter venster navigeer ik naar de locatie <unifi_base>/data/sites/site_ID, in mijn geval is dat /volume1/docker/unifi-6/data/sites/default, ik heb namelijk de map /volume1/docker/unifi-6/ gekoppeld aan de unifi map in de docker container waardoor dit mijn <unifi_base> locatie is. In het linker venster navigeer ik naar de map waarin ik usg-kpn-ftth-master.zip heb uitgepakt, selecteer ik het bestand config.gateway.json en klik ik links boven op Upload. Hierna klik ik op Ok en is het bestand config.gateway.json naar de juiste locatie gekopieërd.

Indien je op de controller naar de data map navigeert maar daarin geen map sites ziet kan je deze laten aanmaken, klik hier voor de handleiding.

kpn.sh plaatsen

Nadat we de JSON op de controller hebben geplaatst, gaan we nu een configuratie bestand op de USG plaatsen. Hiervoor klik ik in WinSCP op de knop New Session en vul ik de gegevens in van de USG. De eventuele waarschuwing van unkown server beantwoord ik met Yes. Een popup met een welkomstboodschap verschijnt en hier mag je op Continue klikken.

winscp_usg

Nadat de verbinding tot stand is gekomen navigeren we in het rechter venster naar de locatie /config/scripts/post-config.d. In het linker scherm selecteren we kpn.sh en klikken we weer op de knop Upload. Klik hierna op Ok en daarna is het bestand op de USG geplaatst.

winscp_usg_upload

Nu moeten we het bestand uitvoerbaar maken. Dat doen we door de het bestand te selecteren en daarna met de rechtermuisknop er op te klikken en voor Properties te kiezen.

winscp_usg_select

In de eigenschappen mag je een vinkje zetten bij elke X (bij Octal komt nu 0755 te staan) en daarna op Ok klikken.

winscp_usg_chmod

Nu mag je WinSCP sluiten en in de controller naar Devices gaan. Klik daarna op de USG, rechts verschijnen de details en dan klik je op het tandwiel icoon. Daarna klik je op Manage Device en klik je in het kopje Force Provision op Provision.

unifi_controller_force_provision

De USG gaat nu herstarten. Na dat internet het doet kan je de IPTV kastjes uitzetten, 10 seconden wachten, en deze weer aanzetten. Als het goed is heb je nu internet, IPTV en IPv6.

Op het moment dat internet en IPTV nog niet werken, herstart de USG dan nog een keer. Soms heeft de USG namelijk nog een herstart nodig om alle instellingen goed te kunnen zetten.

Log controleren

Als je met SSH inlogt op de USG kan je het log controleren met het commando cat /var/log/kpn.log om te zien of alles naar behoren is uitgevoerd:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
unifiadmin@HVA-USG-GW:~$ cat /var/log/kpn.log
[Sat Nov 13 11:24:24 CET 2021] [kpn.sh] Executed at Sat Nov 13 11:24:24 CET 2021
[Sat Nov 13 11:24:24 CET 2021] kpn.sh] creating lock file at /config/scripts/post-config.d/kpn.lock
[Sat Nov 13 11:24:24 CET 2021] [kpn.sh] routes dhcp hook does not exist
[Sat Nov 13 11:24:24 CET 2021] [kpn.sh] Creating dhcp hook at /etc/dhcp3/dhclient-exit-hooks.d/routes
[Sat Nov 13 11:24:24 CET 2021] [kpn.sh] Release dhcp interface eth0.4
Releasing DHCP lease on eth0.4 ...
[Sat Nov 13 11:24:31 CET 2021] [kpn.sh] Renew dhcp interface eth0.4
Renewing DHCP lease on eth0.4 ...
[Sat Nov 13 11:24:33 CET 2021] [kpn.sh] Restarting IGMP proxy
Warning: igmpproxy not running.
The IGMP proxy service will be started after commit. Check /var/log/messages.
[Sat Nov 13 11:24:35 CET 2021] [kpn.sh] The file /etc/commit/post-hooks.d/set-kpn-hook.sh does not exists, creating hook now
[Sat Nov 13 11:24:35 CET 2021] [kpn.sh] MTU for eth0 not configured, adjusting config
[Sat Nov 13 11:24:35 CET 2021] [kpn.sh] Disconnecting pppoe2 before changing MTU
Bringing interface pppoe2 down...
[Sat Nov 13 11:24:42 CET 2021] [kpn.sh] Setting mtu for eth0 to 1512
[Sat Nov 13 11:24:42 CET 2021] [kpn.sh] Setting mtu for eth0 vif 6 to 1508
[Sat Nov 13 11:24:42 CET 2021] [kpn.sh] Commiting
[Sat Nov 13 11:24:53 CET 2021] [set-kpn-hook.sh] Executed at Sat Nov 13 11:24:53 CET 2021
[Sat Nov 13 11:24:53 CET 2021] [set-kpn-hook.sh] Configuration changes have been commited, adding crontab for kpn.sh
[Sat Nov 13 11:24:53 CET 2021] [kpn.sh] Connecting pppoe2 after changing MTU
Bringing interface pppoe2 up...
[Sat Nov 13 11:24:54 CET 2021] [kpn.sh] removing lock file at /config/scripts/post-config.d/kpn.lock
[Sat Nov 13 11:25:01 CET 2021] [kpn.sh] Executed at Sat Nov 13 11:25:01 CET 2021
[Sat Nov 13 11:25:01 CET 2021] kpn.sh] creating lock file at /config/scripts/post-config.d/kpn.lock
[Sat Nov 13 11:25:01 CET 2021] [kpn.sh] KPN found in crontab, removing /etc/cron.d/kpn
[Sat Nov 13 11:25:03 CET 2021] [kpn.sh] removing lock file at /config/scripts/post-config.d/kpn.lock
[Sat Nov 13 11:25:03 CET 2021] [kpn.sh] Finished

Zie voor meer controle stappen deze handleiding.

IPTV op een apart netwerk

Het is mogelijk om de IPTV kastjes op een eigen netwerk te plaatsen om te kans op verstoring te verkleinen. De gebruikte switches dienen wel VLAN ondersteuning te hebben. Kijk voor deze handleiding op deze link. Mocht je IPTV ontvanger geen software kunnen ophalen dan is het raadzaam om deze in een apart VLAN te stoppen en de google DNS server toe te wijzen.

Afwijkend gedrag

Omdat we een geavanceerde configuratie toepassen zijn er een aantal dingen die afwijken:

  • Het WAN IP adres in de controller zal altijd 0.0.0.0 aangeven. Dit komt (volgens mij) omdat er twee WAN interfaces zijn (drie, als je PPPoE mee telt) en hij niet de juiste kan vinden.
  • Wanneer je direct inlogt op de USG via de webbrowser zal hij aangeven dat hij geen internet verbinding heeft. Hij heeft dit in feite wel maar het mechanisme om dat de detecteren werkt (volgens mij) niet vanwege de meerdere WAN interfaces.
  • Je kan een (L2TP) VPN volledig instellen via de controller, ik heb hier een aparte handleiding voor gemaakt.

Meer informatie

Op de volgende links vindt je meer informatie over deze setup en hoe je problemen kan opsporen en verhelpen.

Indien je me wilt bedanken (hoeft niet, mag wel) kan dat via Buymeacoffee.

This post is licensed under CC BY 4.0 by the author.

Trending Tags