Routed IPTV configuratie

Doel
Deze configuratie maakt het mogelijk om routed IPTV van KPN te gebruiken met een eigen router, zonder experiabox. Deze opstelling is de tegenhanger van de bridged IPTV oplossing zoals hier beschreven. De routed IPTV oplossing zoals op deze pagina beschreven is de geprefereerde oplossing en biedt alle functionaliteiten van de door de provider meegeleverde routers.

De hieronder neergezette oplossing werkt voor zowel KPN als XS4ALL, omdat XS4ALL gebruik maakt van het televisie platform van KPN.

Schematisch overzicht
Het verschil tussen bridged en routed IPTV is hieronder te zien.

Allereerst de traditionele bridged methode. Hierbij staan de decoders rechtstreeks in verbinding met het IPTV platform van KPN. De decoders vormen samen met het platform een eigen, gescheiden netwerk.

Bij de routed methode staat het IPTV platform in verbinding met de router (experiabox) en de decoders maken ook verbinding met de router (experiabox). De decoders maken deel uit het van het thuisnetwerk. In de router zit een speciale configuratie. Allereerst is er de IGMP proxy die de communicatie met het IPTV platform doet namens de decoders. Door gebruik te maken van wat extra routeringsregels in de router kan de decoder met zowel internet als het IPTV platform communiceren.



Hoe werkt Routed IPTV
Let op: Super belangrijk is de IGMP proxy en IGMP snooping. Bij snooping houdt de router of switch bij of een bepaalde switchpoort belang heeft bij een multicast. Zo niet, dan zal de multicast niet richting die betreffende poort gaan. Zonder snooping betekent het dat het multicast verkeer van IPTV dienst uitgestuurd wordt over alle poorten die in een bridge of master/slave configuratie zitten. Dit is een behoorlijke belasting van het systeem en verspilling van de bandbreedte.

Om implementatie van routed IPTV zonder Experiabox eenvoudig te maken, hieronder eerst stap voor stap de benodigde handelingen voor routed IPTV.

Uitgangspunten:
1. VLAN 4 en 6 zijn nodig aan de provider kant. Over VLAN6 gaat het normale internet, daar wijzigt niks en configuratie informatie daarvoor kun je hier vinden.
2. De decoders moeten niet in een bridge geplaatst worden met VLAN 4, maar onderdeel uitmaken van het normale LAN. Ze krijgen (daarmee) dus een IP adres van de router, met de standaard instellingen van gateway en DNS.

Op VLAN4 moet een DHCP client gestart worden die een classless IP adres vraagt. De default gateway op de router moet NIET standaard gezet worden op basis van dit antwoord, maar op een ongunstige distance (zo hoog mogelijk). In het antwoord zit een IP adres voor de router zelf, bijbehorend subnet, een gateway adres van KPN IPTV, en een extra subnet die via een statische route via deze gateway gerouteerd moet worden. Dit allemaal over VLAN4. Bijvoorbeeld, een DHCP request kan de volgende response opleveren:

Option 3: Router: 10.142.64.1
Option 121: Classless Static Route: 213.75.112.0/21 via 10.142.64.1

Dit maakt ook duidelijk waarom de default gateway niet gevolgd mag worden. Het werkt niet als de router 10.142.64.1 op VLAN4 gaan proberen te gebruiken om al het internet verkeer af te handelen.

Het is belangrijk de volgende extra DHCP option mee te sturen in het DHCP request:

option 60: IPTV_RG

Stuur je deze option niet mee, dan krijg je geen IP adres terug. De DHCP server van KPN blijft dan compleet stil. Ondersteunt je router dit niet, dan kun je dus geen gebruik maken van routed IPTV.

Op het interne lan zitten de decoders tussen de andere apparaten. De decoders hebben ook extra DHCP opties nodig. Zorg dus dat de DHCP server deze aanbiedt:

option60: IPTV_RG
option28: het broadcast adres van je subnet, bijvoorbeeld 192.168.10.255 als je de basis configuratie hebt gevolgd.

De IGMP proxy moet gestart worden op het verkregen IP adres van de DHCP op VLAN4. De upstream is de VLAN4, de downstream de bridge of master/slave waar de decoders op zitten. De proxy moet transparant zijn voor het verkeer wat binnenkomt en daarom als alternate subnets 0.0.0.0/0 hebben.

Verder moet er NAT worden gedaan op deze IP reeksen tussen VLAN4 en het interne netwerk.

213.75.112.0/21 
en
217.166.0.0/16

Voorbeeld configuratie RouterOS/Mikrotik

Schakel voordat je verder gaat eerst je decoders uit.

# DHCP client
# De interface moet een VLAN4 zijn op de poort waar de glasvezel op binnen komt. In dit voorbeeld VLAN4 op poort 1.
# Wijzig dit naar je eigen setup.
#
# Maak eerst het VLAN aan.

/interface vlan
add interface=ether1 name=vlan1.4 vlan-id=4

# De bridge voor de LAN poorten moet IGMP snooping hebben. Als de bridge al bestaat
# maak dan alleen de aanpassing IGMP-snooping=yes.

/interface bridge
add arp=proxy-arp igmp-snooping=yes name=bridge-LAN protocol-mode=none

# DHCP client op VLAN4.
/ip dhcp-client option
add code=60 name=option60-vendorclass value="'IPTV_RG'"
/ip dhcp-client
add default-route-distance=210 dhcp-options=option60-vendorclass disabled=no \
    interface=vlan1.4 use-peer-dns=no use-peer-ntp=no

# IGMP proxy
# De upstream interface is de glasvezel. Er is maar 1 upstream.
# In dit voorbeeld krijgt bridge-LAN de multicast (alle poorten, behalve WiFi).
# De proxy werkt alleen als er een IP adres op een interface staat. Zie je een interface op I(=inactive) staan, 
# dan staat er geen IP adres op die interface.
# Zet dus het IP adres van de bridge op de bridge zelf en niet op een poort die onderdeel is van die bridge.

/routing igmp-proxy interface
add alternative-subnets=0.0.0.0/0 interface=vlan1.4 upstream=yes
add interface=bridge-LAN

/routing igmp-proxy
set quick-leave=yes

# NAT -- Let op dat deze specifieke regels VOOR algemene regels voor bijvoorbeeld internet moeten staan
add action=masquerade chain=srcnat comment="Needed for IPTV" dst-address=213.75.112.0/21 out-interface=vlan1.4
add action=masquerade chain=srcnat comment="Needed for IPTV" dst-address=217.166.0.0/16 out-interface=vlan1.4

# DHCP server
# De server draait waarschijnlijk al in het netwerk. Zaken als DNS en gateway zijn al geregeld en aktief.
/ip dhcp-server option
add code=60 name=option60-vendorclass value="'IPTV_RG'"
add code=28 name=option28-broadcast value="'192.168.10.255'" (of welk broadcast adres van toepassing is)

/ip dhcp-server option sets
add name=IPTV options=option60-vendorclass,option28-broadcast

# Static leases
# In dit voorbeeld voor de duidelijkheid een vast IP adres voor een decoder. Tevens hangen we de 
# extra DHCP opties aan dit MAC adres, zodat alleen deze decoder deze extra informatie krijgt.
# Vervang het IP adres en het MAC adres door de juiste waardes. Kies een IP adres buiten je
# reguliere DHCP pool. Het MAC adres kun je vinden door de decoder eerst een keer op te starten
# en te kijken welk MAC een IP adres gevraagd heeft in de logs. Of je kijkt onderop de decoder.

/ip dhcp-server lease
add address=192.168.10.x comment="Decoder 1" dhcp-option-set=IPTV \
mac-address=50:7E:xx:xx:xx:xx server=dhcp-thuis

# Dynamic leases
# Dit werkt ook prima, zet de DHCP options dan op de hele server.

En dan ...

Kijk of de DHCP client een IP adres heeft gekregen, of er routes zijn toegevoegd daardoor en of de IGMP proxy aktief is.
Vergeet niet de poort van de decoder in het normale LAN te plaatsen. Dus niet meer in VLAN4.
Schakel dan een decoder in. Of sluit hem aan, een decoder hoeft niet perse opnieuw opgestart te worden hiervoor.
De decoder moet probleemloos opstarten (de "blokjes" onderin het scherm). Gebeurt dat niet, dan is de routing niet in orde.
Daarna zal er TV beeld moeten verschijnen. Bevriest dit beeld na 2 seconden dan is er een probleem met de IGMP proxy.