[ubiquiti & IP-tv] Ervaringen en Discussies
Welkom op dit Topic dat specifiek over Ubiquiti routers & switches gaat in combinatie met IP-tv.
Er zijn steeds meer mensen die afscheid willen nemen van de router die wordt meegeleverd vanuit de provider icm glasvezel. Dit om een grote verscheidenheid aan redenen. (security, stabiliteit, gebruikersgemak of gewoon omdat het moet kunnen)
Het algemene Ubiquiti topic is zeer populair en we (Xbeam en ikzelf) zien steeds vaker dezelfde vragen met betrekking tot IP-tv configuraties terugkomen. Vandaar de start van dit nieuwe topic. Aangezien dit een nieuwe start is, moet nog veel informatie worden aangevuld in de Topic Start. Als er contributies zijn, dan horen we dit graag.
Algemene Uitleg WAN netwerk
De meeste providers leveren hun dienst met een eigen dichtgetimmerde router. De routers zijn van wisselende kwaliteit. De rol van de routers is om de routering van data verkeer tussen het internet (WAN) en het lokale (LAN) netwerk te regelen.
Alle providers hebben aan de WAN kant meerdere virtuele netwerken in gebruik. (VLAN) Ze doen dit om makkelijker de kwaliteit en prioriteit van de data pakketten te kunnen regelen, zonder het gebruik de DPI.
De meeste partijen (de grote jongens) leveren hun IP-TV dienst middels een routed IP-tv. Dit betekent dat de router de verschillende VLANS aan de WAN zijde vertalen naar een enkel LAN aan de lokale zijde.
Binnen je eigen netwerk, werk je dan min of meer plug and play tussen je apparaten. Het maakt dus niet uit waar je je TV-box aansluit.
T-mobile werken middels Switched IP-tv. Dit betekent dat je aan je geleverde router een of twee poorten hebt waar je je TV-box op mag aansluiten (die mag je natuurlijk met een switch verder uitbreiden)
Kortom TV en Internet is volledig gescheiden, ook op het interne netwerk. Voor elke TV box moet je dus, in theorie, een kabel trekken naar de router.
Dit verschil is van belang als je je router wil vervangen.
Algemene uitleg intern netwerk
Ook op je interne netwerk kun je gaan werken met VLAN's. Met verschillende VLAN's maak je eigenlijk verschillende netwerken op 1 fysiek netwerk.
Redenen waarom je dat zou willen is voornamelijk isolatie van de verschillende apparaten / mensen op je netwerk.
Je kunt hierbij denken aan een gasten (wifi)netwerk, of een apart netwerk voor IOT apparaten.
Eigenlijk kun je op deze manier netwerk scheiden op basis van het vertrouwen wat je in de 'klanten' hebt.
Een paar 'spelregels'
- Verdiep je in de materie, want dit is niet makkelijk om op te zetten
- Zorg voor managed switches over je hele netwerk
- maak van te voren een plan hoe je de dingen wil opzetten (hoeveel VLANS, en welk apparaat moet waar)
- Besef je dat apparaten tussen VLANS in beginsel niet met elkaar praten.. (defeats the purpose)
- Besef je dat eindapparatuur over het algemeen absoluut niet overweg met een VLAN (vandaar de noodzaak van managed switches)
Hierbij is de router de spin in het web die middels regels de interne en externe routering regelt.
Van de Router gaan er dus VLAN 'tagged' data pakketjes naar de Core Switch.
In die core switch definieer je dus een uplink poort die tagged pakketjes herkent op de VLAN nummers die je wil gebruiken.
Vanaf dit punt moet je dus weten welk poortje welk apparaat gaat 'servicen'. Als het een andere switch is, moet je weten of datapakketjes van beide VLANS mogelijk moet zijn of misschien maar 1.
Als het poortje een eindpunt bevat dan koppel je het betreffende VLAN aan die poort als untagged. Want het apparaat dat aan dat poortje hangt, weet niets van VLANs.
Op deze manier kun je dus een soort snelweg bouwen van VLAN verkeer tussen switches en pas op het eindpunt beslis je welk VLAN het apparaat toe behoort.
Er zijn ook apparaten die wel met een VLAN overweg kunnen, zoals verschillende AccessPoints. Voorbeeldje, de unifi APs kunnen overweg met VLANS.
Je kunt dus 2 VLANS laten uitkomen op het poortje waar de AP op zit. (getagged) waarbij je in de config van unifi aangeeft welk VLAN aan welke SSID gekoppeld moet worden.
Herstel van niet meer werkende VPN instellingen.
Kopieer en plak deze instelling naar een het kladblok op je pc. Wijzig de pppoeX en ethX naar de Door jouw gebruikte eth en pppoe configuratie uit je JSon.
Login via SSH in op de USG en kopieer en plak je aangepaste instellingen in de ssh terminal en voer ze uit. De vpn instellingen worden zo tijdelijk hersteld.
Helaas moet je deze instellingen na iedere provisioning opnieuw uitvoeren. Dit is op te vangen door een script wat deze instellingen automatische na iedere provisioning uitvoert
code:
1
2
3
4
5
6
| configure set vpn ipsec ipsec-interfaces interface pppoeX delete vpn l2tp remote-access dhcp-interface ethX set vpn l2tp remote-access outside-address 0.0.0.0 commit save |
Ik hoop dat bovenstaand omschrijving een beetje helpt met het ontrafelen van de netwerkwerk beginselen.
Basis informatie per provider
KPN
VLAN ID | Functie | verbindingstype |
---|---|---|
4 | IP-tv | DHCP |
6 | Internet en Telefonie | pppoe |
- IGMP Snooping / Routing over VLAN 4
- De router maakt (naast de normale internet verbinding via een PPP verbinding) ook een (bridged, RFC1483) verbinding voor de TV.
• Voor ADSL gaat dat via vpi/vci 8/71
• Voor VDSL en FTTH via (802.1q) VLAN 4
Via DHCP wordt een ip adres (alleen v4) opgehaald. In het DHCP request moeten de volgende opties staan:
• 55 (parameter-rquest-list), bevat minstens 1, 3, 28 en 121
• 60 (Vendor Class Identifier), bevat de string IPTV_RG
Het DHCP antwoord bevat (in optie 121, zie RFC3442) een of meer statische routes, daarmee wordt dynamisch aangegeven welk verkeer niet via de PPP verbinding maar via de iTV verbinding gerouteerd moet worden - Static route naar 213.75.112.0/21 over het IP-TV Gateway (IP-adres verkregen op VLAN 4)
Op deze pagina is bovenstaande informatie te vinden + extra details over het gebruik van een eigen Telefonie SIP client.
Delta
VLAN ID | Functie | verbindingstype |
---|---|---|
100 of 500 | Internet | onbekend |
101of 501 | IP-tv | onbekend |
102 of 502 | Voip | onbekend |
Telfort
VLAN ID | Functie | verbindingstype |
---|---|---|
4 | IP-tv | DHCP |
34 | Internet | DHCP |
- IGMP Snooping / Routing over VLAN 4
- Static route naar 213.75.112.0/21 over het IP-TV Gateway (IP-adres verkregen op VLAN 4)
VLAN ID | Functie | verbindingstype |
---|---|---|
4 | IP-tv | DHCP |
6 | Internet | pppoe |
7 | VoIP | DHCP |
- IGMP Snooping / Routing over VLAN 4
- Static route naar 213.75.112.0/21 over het IP-TV Gateway (IP-adres verkregen op VLAN 4)
VLAN ID | Functie | verbindingstype |
---|---|---|
640 | IP-tv | DHCP |
300 | Internet | DHCP |
- Let op : T-mobile werkt met een switched configuratie in hun eigen router
VLAN ID | Functie | verbindingstype |
---|---|---|
4 | IP-tv | DHCP |
6 | Internet | DHCP |
- IGMP Snooping / Routing over VLAN 4
- MAC-adres van de geleverde Fritzbox koppelen aan VLAN 4.
VLAN ID | Functie | verbindingstype |
---|---|---|
4 | IP-tv | DHCP |
34 | Internet (en Telefonie) | DHCP |
- IGMP Snooping / Routing over VLAN 4
- Static route naar 185.24.175.0/24 en 185.41.48.0/24 over het IP-TV Gateway (IP-adres verkregen op VLAN 4)
- IGMP Proxy whitelist : 239.0.3.0/16 en 225.0.71.0/24 en 224.0.0.0/16
VLAN ID | Functie | verbindingstype |
---|---|---|
4 | IP-tv | DHCP |
1001 | Internet | DHCP* |
500 | Onbekend | DHCP |
- Let op, VLAN 1001 geeft alleen een werkende verbinding als het MAC adres van de door online gegeven router wordt gebruikt. Deze waarde moet in je VLAN config worden opgeslagen (USG JSON config of Edgerouter in het config file / setting tree
- IGMP Snooping / Routing over VLAN 4
- Static route naar 185.24.175.0/24 en 185.41.48.0/24 over het IP-TV Gateway (IP-adres verkregen op VLAN 4)
- IGMP Proxy whitelist : 239.0.3.0/16 en 225.0.71.0/24 en 224.0.0.0/16
JSON:
1
2
3
4
5
6
7
8
9
10
| { "interfaces":{ "ethernet":{ "eth0":{ "description":"WAN", "mac":"xx:xx:xx:xx:xx:xx:xx", }, }, }, } |
Stipte
VLAN ID | Functie | verbindingstype |
---|---|---|
4 | IP-tv | DHCP |
128 | Internet | pppoe |
- IGMP Snooping / Routing over VLAN 4
- Static route naar 217.166.226.0/24 over het IP-TV Gateway (IP-adres verkregen op VLAN 4)
- IGMP Proxy whitelist : 213.75.167.0/24 en 217.166.226.0/24
VLAN ID | Functie | verbindingstype |
---|---|---|
148 | IP-tv | DHCP |
141 | Internet | DHCP |
149 | VoIP | DHCP |
- IGMP Snooping / Routing over VLAN 148
- Static route naar 217.166.226.0/24 over het IP-TV Gateway (IP-adres verkregen op VLAN 148)
- IGMP Proxy whitelist : 239.0.3.0/16, 225.0.71.0/24, 224.0.0.0/16
Unifi-UDM configuratie en How To's
Ubiquiti biedt vooralsnog zelf geen functionaliteit voor het opzetten van IPTV op de UniFi Dream Machine (Pro/Pro SE). Echter is het sinds firmware v1.11+ mogelijk om IPTV werkend te krijgen met behulp van een script geleverd door de udm-iptv package. Voor de volledige, up-to-date uitleg en broncode, zie de GitHub repository voor udm-iptv.
Met dank aan @fabianishere.
Vereisten
- De kernel op jouw UniFi device ondersteund multicast routing (nodig voor IPTV). Zie hier of dat zo is.
- IGMP snooping staat aan op de (eventuele) switches tussen jouw UniFi device en de IPTV decoder.
- De FTTP NTU (of welk ander type modem) van jouw ISP is verbonden met een van de WAN ports van jouw UniFi device.
Internet verbinding opzetten
De volgende stap is het opzetten van de internet verbinding op jouw UniFi device. Het volgende voorbeeld gaat uit van KPN, maar de stappen zullen niet veel verschillen per ISP.- In het UniFi Dashboard, ga naar Settings > Internet.
- Selecteer de WAN port die is verbonden met de NTU.
- Schakel VLAN ID in en stel deze in op 6 voor KPN.
- Zet IPv4 Connection op PPPoE.
- Voor KPN, zet Username op "internet".
- Voor KPN, zet Password op "internet".
Interne LAN instellen
Er zijn ook een aantal wijzigingen aan de interne LAN nodig:- In het UniFi Dashboard, ga naar Settings > Networks.
- Selecteer het LAN netwerk waar de IPTV decoders aan gekoppeld zijn. Het is aanbevolen om een apart netwerk te maken voor jouw IPTV decoders om interferentie met andere apparaten te voorkomen.
- Schakel Advanced > IGMP Snooping in, zodat IPTV verkeer alleen wordt verzonden naar de apparaten die het moeten ontvangen.
- Ga naar Advanced > DHCP Option en voeg de opties toe die hier staan beschreven.
Helper tool instellen
Volg de stappen van de oorspronkelijke guide. Deze wordt regelmatig geüpdatet met de laatste versies van de software.Unifi-USG configuratie en How To's
Voor een installatie script en uitleg zie
@Coolhva ’s GitHub
Om de TV kastjes in een eigen netwerk te plaatsen en de kans om storingen te verminderen kan men de volgende vervolg handleiding volgen Link
Voor de doe het zelf Tweaker volgen nu 2 @xbeam Json configuratie bestanden.
Kijk wel goed of je de juiste json config gebruikt er zit namelijk verschil in de poort nummering tussen de USG4 (pro) en de USG3 (de kleine van de 2)
Pas de json aan naar je eigen provider door alleen de hierboven genoemde provider specifieke instellingen te wijzigen in de json.
Deze werkende KPN voorbeeld json’s zijn precies volgens de specificatie van UBNT geschreven en bevatten daardoor geen dubbele (conflict) instellingen met de controller. Hierdoor blijven alle instellingen in de controller actief en bruikbaar zonder dat je het risico loopt op commit conflicten en eindigt in bootloop.
USG4 (pro) IPTVJSON:
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 { "interfaces": { "ethernet": { "eth2": { "firewall": { "in": { "ipv6-name": "WANv6_IN", "name": "WAN_IN" }, "local": { "ipv6-name": "WANv6_LOCAL", "name": "WAN_LOCAL" }, "out": { "ipv6-name": "WANv6_OUT", "name": "WAN_OUT" } }, "dhcp-options": { "default-route": "no-update", "name-server": "no-update" }, "vif": { "4": { "address": [ "dhcp" ], "dhcp-options": { "client-option": [ "send vendor-class-identifier "IPTV_RG";", "request subnet-mask, routers, broadcast-address, static-routes, rfc3442-classless-static-routes;" ], "default-route": "no-update", "default-route-distance": "210", "name-server": "no-update" }, "ip": { "source-validation": "loose" } }, "6": { "description": "WAN", "firewall": { "in": { "ipv6-name": "WANv6_IN", "name": "WAN_IN" }, "local": { "ipv6-name": "WANv6_LOCAL", "name": "WAN_LOCAL" }, "out": { "ipv6-name": "WANv6_OUT", "name": "WAN_OUT" } }, "pppoe": { "2": { "default-route": "none", "firewall": { "in": { "ipv6-name": "WANv6_IN", "name": "WAN_IN" }, "local": { "ipv6-name": "WANv6_LOCAL", "name": "WAN_LOCAL" }, "out": { "ipv6-name": "WANv6_OUT", "name": "WAN_OUT" } }, "name-server": "none", "password": "kpn", "user-id": "kpn" } } } } } } }, "protocols": { "igmp-proxy": { "interface": { "eth2.4": { "alt-subnet": [ "0.0.0.0/0" ], "role": "upstream", "threshold": "1" }, "eth0": { "alt-subnet": [ "0.0.0.0/0" ], "role": "downstream", "threshold": "1" } } }, "static": { "interface-route": { "0.0.0.0/0": { "next-hop-interface": { "pppoe2": { "distance": "1" } } } } } }, "port-forward": { "wan-interface": "pppoe2" }, "service": { "dns": { "forwarding": { "except-interface": [ "pppoe2" ] } }, "nat": { "rule": { "5000": { "description": "MASQ corporate_network to IPTV network", "destination": { "address": "213.75.112.0/21" }, "log": "disable", "outbound-interface": "eth2.4", "protocol": "all", "type": "masquerade" }, "6001": { "outbound-interface": "pppoe2" }, "6002": { "outbound-interface": "pppoe2" }, "6003": { "outbound-interface": "pppoe2" } } } } }
Na het inladen van de json moet je nog 1 ding doen en dat is een static route aanmaken in de GUI/controllerUSG3 IPTVJSON:
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 { "interfaces": { "ethernet": { "eth0": { "firewall": { "in": { "ipv6-name": "WANv6_IN", "name": "WAN_IN" }, "local": { "ipv6-name": "WANv6_LOCAL", "name": "WAN_LOCAL" }, "out": { "ipv6-name": "WANv6_OUT", "name": "WAN_OUT" } }, "dhcp-options": { "default-route": "no-update", "name-server": "no-update" }, "vif": { "4": { "address": [ "dhcp" ], "dhcp-options": { "client-option": [ "send vendor-class-identifier "IPTV_RG";", "request subnet-mask, routers, broadcast-address, static-routes, rfc3442-classless-static-routes;" ], "default-route": "no-update", "default-route-distance": "210", "name-server": "no-update" }, "ip": { "source-validation": "loose" } }, "6": { "description": "WAN", "firewall": { "in": { "ipv6-name": "WANv6_IN", "name": "WAN_IN" }, "local": { "ipv6-name": "WANv6_LOCAL", "name": "WAN_LOCAL" }, "out": { "ipv6-name": "WANv6_OUT", "name": "WAN_OUT" } }, "pppoe": { "2": { "default-route": "none", "firewall": { "in": { "ipv6-name": "WANv6_IN", "name": "WAN_IN" }, "local": { "ipv6-name": "WANv6_LOCAL", "name": "WAN_LOCAL" }, "out": { "ipv6-name": "WANv6_OUT", "name": "WAN_OUT" } }, "name-server": "none", "password": "kpn", "user-id": "kpn" } } } } } } }, "protocols": { "igmp-proxy": { "interface": { "eth0.4": { "alt-subnet": [ "0.0.0.0/0" ], "role": "upstream", "threshold": "1" }, "eth1": { "alt-subnet": [ "0.0.0.0/0" ], "role": "downstream", "threshold": "1" } } }, "static": { "interface-route": { "0.0.0.0/0": { "next-hop-interface": { "pppoe2": { "distance": "1" } } } } } }, "port-forward": { "wan-interface": "pppoe2" }, "service": { "dns": { "forwarding": { "except-interface": [ "pppoe2" ] } }, "nat": { "rule": { "5000": { "description": "MASQ corporate_network to IPTV network", "destination": { "address": "213.75.112.0/21" }, "log": "disable", "outbound-interface": "eth0.4", "protocol": "all", "type": "masquerade" }, "6001": { "outbound-interface": "pppoe2" }, "6002": { "outbound-interface": "pppoe2" }, "6003": { "outbound-interface": "pppoe2" } } } } }
Daar hebben je het next hop adres voor nodig en kan je achter halen met het CLI commando
USG
code:
1
| show dhcp client leases interface eth0.4 |
USG-PRO
code:
1
| show dhcp client leases interface eth2.4 |
Output:
Je krijgt dan je DHCP lease op het KPN iptv netwerk. Hierin staat een router adres en die vul je in als next hop adres in de static rule.
Bij het aanmaken van de static route vul je specifieke eigen provider next hob en destination netwerk ip adressen in.
Basis uitleg hoe de JSON beheerd moet worden zie hier
Edgemax configuratie en How To's
Aangezien er vele verschillende soorten Edgerouters zijn met meer of minder interfaces of gecombineerd met switches, is het niet handig om een compleet edgerouter config file te posten.
In plaats daarvan lijkt het handig om de specifieke eigenschappen voor de WAN interface en IGMP proxy etc.. per provider te posten.
Om van nul te starten met een edgerouter is het dan handig om de router af fabriek eerst middels de wizard de basis instellingen te geven en dan specifieke brokken te updaten op basis van de provider inputs.
Dit forum hier heeft als hoofdfocus IP-TV configs, dus laten we firewall settings even buiten beschouwing.
Er zijn eigenlijk maar een paar 'kleine' dingen te configureren om een edgerouter de hoofdrol in je netwerk te laten nemen.
- WAN interface configuratie
- LAN configuratie (mag je lekker zelf weten, 1 groot lokaal lan, of allerlei VLAN-nen voor IOT en of gasten.) let wel op dat hoe meer virtual LANs lokaal hoe meer routes er zijn om verkeer te regelen.
De configs gaan uit van 1 LAN interface. - Static route voor IP-TV
- IGMP Proxy
- aanzetten RTSP helper (helpt bij haperingen of niet werken van on demand diensten.)
Voor Tweak zijn dan de volgende config elementen belangrijk
WAN instellingen
Er zijn dus twee Virtual interfaces, 4 en 34, beide krijgen middels DHCP een IP-adres. de MAC adressen zijn gekopieerd van het de vervangen router om dezelfde IP-adressen te houden als daarvoor.
code:
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
30
31
32
33
34
35
36
37
| ethernet eth0 { description WAN duplex auto firewall { in { } local { } } speed auto vif 4 { address dhcp description WAN-IPTV firewall { in { name WANIPTV_IN } local { name WANIPTV_LOCAL } } mac XX:XX:XX:XX:XX:XX } vif 34 { address dhcp description WAN-INTERNET firewall { in { name WAN_IN } local { name WAN_LOCAL } } mac XX:XX:XX:XX:XX:XX } } |
Static route voor IP-tv.
Op basis van het ip adres op vif4 (in mijn geval 10.10.51.50) moet de route worden vastgelegd.
code:
1
2
3
4
5
6
7
8
9
10
11
12
| static { interface-route 0.0.0.0/0 { next-hop-interface eth0.34 { } } route 185.6.48.0/26 { next-hop 10.10.51.1 { description "Routed IPTV" distance 1 } } } |
Volgende stap is de IGMP proxy, anders krijgt de settopbox nog steeds geen zenders doorgegeven.
Zet voor elke interface waarbij de Proxy niets hoeft te doen 'role disabled' dat voorkomt een hoop 'ruis' op het netwerk.
code:
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
| igmp-proxy { interface eth0 { role disabled threshold 1 } interface eth0.4 { alt-subnet 0.0.0.0/0 role upstream threshold 1 } interface eth0.34 { role disabled threshold 1 } interface eth1 { role downstream threshold 1 whitelist 239.0.3.0/16 whitelist 225.0.71.0/24 whitelist 224.0.0.0/16 } interface eth2 { role disabled threshold 1 } } |
Conntracking
Voor tweak specifiek zijn er twee elementen die stabiliteit geven voor unicasting van media (on-demand spullen) en voor SIP.
In de system configuratie voor conntrack, kun je rtsp aanzetten en sip uitzetten. Dit is optioneel als het in jou situatie al goed werkt, niet aankomen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
| conntrack { expect-table-size 2048 hash-size 32768 modules { rtsp { } sip { disable } } table-size 262144 } |
[Voor 255% gewijzigd door fabianishere op 24-01-2022 10:57. Reden: Actualiseer UDM guide.]