KPN Glasvezel met LEDE/OpenWRT (Dutch) 4
Shout-outs
Allereerst heel veel dank aan de Gathering of Tweakers-community, het betreffende KPN Topic, maar met name sl1000, van wie ik deze guide grotendeels heb overgenomen.
Uitgangspunten en Referenties
Uitgangspunten
- Deze guide werkt met
- LEDE versie 17.01.2
- OpenWRT 18.06.1
- Basiskennis van Linux, VI en netwerken is aanwezig
Resources/Referenties
- https://gathering.tweakers.net/forum/list_message/44952450#44952450
- http://netwerkje.com/eigen-router
- http://netwerkje.com/hoe-werkt-de-dienst
- http://netwerkje.com/routed-iptv
Voorbereiding
- Download LEDE van https://lede-project.org/ of OpenWRT van https://openwrt.org en zorg ervoor dat de juiste versie hebt voor jouw router.
- Zorg ervoor dat je BEKABELD aan je router vastzit (gedurende de gehele guide). Dat maakt het geheel een stuk makkelijker
- Bewaar deze manual ergens (printen, als PDF opslaan), zodat je deze beschikbaar hebt mocht je geen internet meer hebben
- Gebruik je ExperiaBox als backup, dat mocht het fout gaan, dat je in ieder geval nog internet access hebt.
- Gebruik een tool als PuTTY om een SSH verbinding naar de router op te zetten
- Zolang als je bezig bent, moet de stroom van het IPTV Kastje zijn (tot de laatste stap)
- BELANGRIJK: Voor stap 1 en 2 is het noodzakelijk dat de router een internet-verbinding heeft. Idealiter hangt deze dan achter de ExperiaBox, zodat deze het internet daarvan krijgt.
- WIFI is standaard uitgeschakeld in LEDE. Activeer dit zelf op een gewenst moment.
Uitvoering
Stap 1 – Flash LEDE en eerste voorbereiding
De documentatie van LEDE is heel duidelijk en geeft goed aan hoe te flashen. Hier zal ik verder niet op ingaan.
Standaard wordt er alleen maar een root-user aangemaakt in LEDE. Deze heeft standaard geen wachtwoord, dus dat is niet heel veilig. Na het flashen ga je dan naar het standaard adres van de router (http://192.168.1.1), je logt in met de root user en wijzig dan het wachtwoord in de UI.
We gaan nu er voor zorgen dat er een normale user naast komt. Maak hiervoor een SSH verbinding met de router, en log in met je net gewijzigde root-wachtwoord. Vervang in onderstaand “myuser” voor je eigen username.
1 2 3 4 5 6 7 8 9 10 |
opkg update opkg install shadow-useradd opkg install shadow-su useradd myuser passwd myuser mkdir /home mkdir /home/myuser chown myuser /home/myuser vi /etc/passwd myuser:x:1000:1000:myuser:/home/myuser:/bin/ash |
Stap 2 – Installeer de IGMP Proxy packages
1 2 |
opkg install kmod-bridge # Not needed on OpenWRT 18.06 opkg install igmpproxy |
Stap 3 – Configureer de switch
Configureer de switch zodat de juiste VLANs (Network -> Switch) gekoppeld zijn, dit moet er ongeveer zo uitzien:
Let er hierbij op dat LAN-poort 3 nu de poort is waar de ExperiaBox op aangesloten wordt voor telefonie.
Stap 4 – Configureer de WAN interfaces
By default, de ifname (interface name) van de WAN interface is “eth0”, op de R7800. Op jouw router kan dit anders zijn, kijk hiervoor in /etc/config/network. Noteer de ifname.
Voer nu het volgende commando uit en noteer het MAC-adres.
1 |
ifconfig eth0 |
Open /etc/config/network weer en pas de entries voor de WAN-interface aan, zodat het er uitziet zoals hieronder:
1 2 3 4 5 6 7 8 |
config interface 'wan' option ifname 'eth0.6' #Voeg dus .6 toe, dit zorgt er voor dat de interface aan vlan 6 gekoppeld wordt option proto 'pppoe' #KPN gebruikt pppoe als dail-up protocol option username 'MA-CA-DD-RE-SS-00@direct-adsl' #vul hier het mac-adres in van de wan interface option password 'kpn' #dit wachtwoord schijnt van alles te mogen zijn, maar 'kpn' werkt option ipv6 '1' #zodra kpn IPV6 uitrolt wil ik dit kunnen gebruiken, daarom schakel ik IPV6 in option peerdns '0' #ik wil mijn eigen DNS servers gebruiken, dus negeer de DNS servers die de ISP aanlevert option dns '8.8.8.8 8.8.4.4 31.220.43.191 62.141.38.230' # en dat zijn in dit geval deze DNS servers (resp 2x Google en 2x OpenDNS), pas aan naar eigen voorkeur |
Voeg nu de IPTV interface toe:
1 2 3 4 5 6 7 |
config interface 'IPTV_WAN' #of kies zelf een leuke naam :) option proto 'dhcp' option ifname 'eth0.4' #0.4 dus vlan 4 option delegate '0' option defaultroute '0' # geen default route option peerdns '0' # geen DNS gebruiken die je mogelijk krijgt aangeboden op deze interface option vendorid 'IPTV_RG' #vendorid meegeven bij de dhcp aanvraag (vereist, anders krijg je geen IP) |
In de User Interface (Network –> Interfaces), ziet dit er zo uit:
Stap 5 – Reboot de router
Om de configuratie actief te krijgen, rebooten we de router.
1 |
reboot |
Nu kunnen we de router direct aan het internet hangen. Koppel dus de ExperiaBox af en prik het draadje in de WAN-poort van je router.
Stap 6 – Voeg IPTV routes toe
Draai ‘route’, je krijgt een lijstje met actieve routes van de router te zien. Dit ziet er uit als onderstaand:
1 2 3 4 5 6 7 8 |
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default static.kpn.net 0.0.0.0 UG 0 0 0 pppoe-wan 10.81.80.0 * 255.255.248.0 U 0 0 0 eth0.4 10.81.80.1 * 255.255.255.255 UH 0 0 0 eth0.4 192.168.2.0 * 255.255.255.0 U 0 0 0 br-lan 195.190.228.20 * 255.255.255.255 UH 0 0 0 pppoe-wan 213.75.112.0 10.81.80.1 255.255.248.0 UG 0 0 0 eth0.4 |
Als alles correct werkt zie je in de lijst voor eth0.4 twee soortgelijke entries (ipadressen zullen anders zijn):
1 2 3 |
Destination Gateway Genmask Flags Metric Ref Use Iface 10.81.80.0 * 255.255.248.0 U 0 0 0 eth0.4 10.81.80.1 * 255.255.255.255 UH 0 0 0 eth0.4 |
Noteer het destination adres wat getoond wordt, in plaats van de 10.81.80.1
Open /etc/config/network en voeg het volgende toe:
1 2 3 4 |
config route option interface 'IPTV_WAN' # Gebruik hier uiteraard de naam die je hebt opgegeven voor deze interface option target '213.75.112.0/21' # met dank aan pogostokje voor deze waarde option gateway '10.81.80.1' # dit adres is dus afhankelijk van wat je hierboven genoteerd hebt |
In de User Interface, ziet dit er zo uit:
Stap 7 – Voeg DHCP Opties toe
Open /etc/dnsmasq.conf en voeg het volgende toe:
1 2 |
dhcp-option=60,IPTV_RG dhcp-option=28,192.168.1.255 #dit is het broadcast adres van je interne lan, pas deze aan naar je eigen situatie) |
Stap 8 – IGMP Proxy Settings
Open /etc/config/igmpproxy en zorg ervoor dat deze er uit ziet zoals onderstaand
1 2 3 4 5 6 7 8 9 10 11 12 13 |
config igmpproxy option quickleave 1 config phyint IPTV_WAN # Gebruik hier weer de naam overeenkomstig met de configuratie in /etc/config/network option network IPTV_WAN # Gebruik hier weer de naam overeenkomstig met de configuratie in /etc/config/network option direction upstream list altnet 192.168.2.0/24 # Pas dit aan naar jouw situatie list altnet 217.166.0.0/16 list altnet 213.75.0.0/16 config phyint lan option network lan option direction downstream |
Stap 9 – Firewall settings
Open /etc/config/firewall en voeg de volgende regels aan het einde toe:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
config zone option name 'IPTV_WAN' option input 'ACCEPT' option forward 'REJECT' option output 'ACCEPT' option network 'IPTV_WAN' option masq '1' config forwarding option dest 'IPTV_WAN' option src 'lan' config rule option name 'Allow-IGMP-Proxy' option proto 'udp' option family 'ipv4' option target 'ACCEPT' option dest_ip '224.0.0.0/4' option dest 'lan' option src 'IPTV_WAN' |
Dit zorgt er voor dat:
- Er een speciale IPTV_WAN zone komt
- IGMP verkeer wordt toegestaan vanaf de IPTV_Interface naar het LAN
- Masquerading wordt aangezet
In de user interface (Network –> Firewall –> General Settings), zou dat er zo uit moeten komen te zien:
En zo voor de Traffic Rule (Network –> Firewall –> Traffic Rules)
Stap 10 – Reboot en test
Reboot nogmaals de router. Nadat de router is gereboot, zet je je IPTV Kastje aan en test je of het werkt (wat wel zou moeten).
Je hebt nu Routed IPTV, wat betekent dat je ook zaken als NetFlix zou moeten kunnen bekijken via het kastje van KPN.
Updates
2018-12-20
- Update voor IGMPProxy settings ivm nieuwe config KPN
- Update voor OpenWRT 18.0.6.1