Ziel war es seit 2008, ohne den mitgelieferten Telekom-Router W701V das IP-TV zu nutzen. In meinem Beispiel kommt ein Funkwerk Router zum Einsatz (bintec R1200).

Voraussetzung ist eine hergestellte Internetverbindung, die ich hier bei VDSL schon beschrieben habe.

Update: seit 2015 kommt ein bintec RS353jv zum Einsatz. Der hat ein integriertes vectoring-fähiges VDSL Modem. Alles andere bleibt vom Prinzip her unverändert.

IP-TV allgemein

Es gibt zwei Möglichkeiten, Filme mit dem Receiver zu schauen: IP-TV oder VoD (Video on demand; z.B. Videoload oder das "TV-Archiv" etc.).

Bei letzterem besteht zu jedem Kunden eine individuelle Datenverbindung - eine Unicast-Verbindung (Punkt-zu-Punkt; Server <-> Kunde). Dadurch kann jeder Kunde den gewähltes Inhalt dann abrufen, wann er möchte.

 

Bei IP-TV mit hunderten von Sendern und tausenden von Kunden geht das nicht - soviele individuelle Verbindungen/Streams würde ein Netz nicht verkraften.

 

IP-TV nutzt deshalb eine andere Methode: Multicast (Punkt-zu-mehreren Punkten; Server <-> Zwischenstationen <-> Kunden)

Ein Streaming-Server sendet den Multicast-Stream einmal ins Netz. Der folgende Router oder Switch verteilt den Stream über einen oder auch mehrere!! seiner Ports weiter an die nächsten "Stationen" im Netz, diese wieder an die nächsten und so weiter. Dieses Weiterleiten an mehrere - und das ist der Clou an der Sache - geschieht NICHT wahllos an alle nachfolgend angeschlossenen "Stationen". Die Weiterleitung bekommen nur diejenigen "Stationen", die ausdrücklich "darum gebeten" haben. Alle anderen bekommen ihn nicht.

Wer den Stream nicht mehr haben will, meldet sich bei seiner "Vorgänger-Station" ab und bekommt die Datenpakete dann auch nicht mehr. Dieses "Bedarf anmelden" (sich für eine Multicast-Gruppe registrieren) und wieder abmelden (bzw. Anmeldung nicht erneuern) funktioniert über IGMP (Internet Group Management Protocol).

 

Ein Router oder Switch - also auch der Router zuhause - muss also für IPTV zwei Funktionen erfüllen:

1. Er muss den Wunsch nach einem Multicast-Stream von einem oder mehreren Mediareceivern (oder anderen Routern) entgegennehmen können und seinerseits diesen erhaltenen Bedarf an seine "Vorgänger-Station" melden können - das ist IGMP-Proxy Funktion.

2. Wenn er den Stream von der "Vorgänger-Station" bekommt, muss er die Multicast-Pakete weiterverteilen können an die, von denen er den "Streamwunsch" bekommen hatte - das ist dann das Multicast Routing.

IGMP Proxy und Multicast Routing einrichten

Die Einrichtung ist unter www.funkwerk-ec.com/faq_bintec_209_iptv_multicast_vdsl_01_de,6343,194.html kurz und knapp beschrieben.

 

Das will ich nicht komplett wiederholen, sondern nur ein paar Punkte erläutern.

 

Warum soll das "Query Interval" auf 5 Sekunden stehen?

Im Detail funktioniert es so, dass nach dem Umschalten die ersten Sekunden über einen TCP-Stream ankommen (geht schneller). Nach ca. 5 Sekunden schwenkt die Box um auf den dann (hoffentlich) eintreffenden Multicast-Stream. Wenn der IGMP Proxy nur alle 125 Sekunden die Anmeldung für einen Multicast-Stream abfragen würde, dann hätte man nach dem Umschalten erst 5 Sekunden Bild (TCP-Stream), dann 2 Minuten nichts (120 Sekunden bis zur nächsten Abfrage) und dann erst wieder Bild (Multicast-Stream). Ist das Intervall hingegen 5 Sekunden, funktioniert das nahtlos.

 

Warum beim NAT die Adresse 224.0.0.0 mit Maske 240.0.0.0?

Dazu muss man wissen, dass der IP-Adressbereich in einem Netz von 224.0.0.0 bis 239.255.255.255 für Multicast-Streams reserviert ist.

Die erste IP-Adresse in diesem Bereich, die 224.000.000.000, sieht binär dargestellt so aus:

11100000.00000000.00000000.00000000

Die End-Adresse 239.255.255.255 sieht binär dargestellt so aus:

11101111.11111111.11111111.11111111

Wie man sieht, ist der fette Teil identisch. Bei allen IP-Adressen innerhalb dieser Spanne ist das auch so.

Die Subnetz-Maske 240.000.000.000 sieht binär dargestellt so aus:

11110000.00000000.00000000.00000000

Diese Maske besagt, dass nur die "ersten" vier Bits der IP-Adresse betrachtet werden sollen.

Die NAT Regel insgesamt bedeutet demnach: leite alles weiter, was an den ersten vier Stellen eine "1110" hat (der Rest dahinter ist egal).

Diese NAT-Regel leitet also ALLE am Router ankommenden Multicast-Streams weiter (weil ja alle Streams vorne eine 1110 haben).

Die Ziel-IP-Adresse ist leer und die Maske lautet 255.255.255.255. Diese Maske besagt normalerweise, dass ALLE Bestandteile der IP-Adresse berücksichtigt werden sollen. Eine IP-Adresse mit dieser Subnetz-Maske bezeichnet also einen einzelnen Host (ein einzelnes Netzwerkgerät).

Ja aber welches? Steht ja keine IP da?

Da dort keine IP-Adresse steht, fühlt sich der Router selbst angesprochen.

Er leitet quasi die Streams an sich selbst weiter.

Und hier kommt wieder die IGMP-Proxy-Funktion ins Spiel: der Router "weiss", welcher Client über welche Schnittstelle welchen Stream angefordert hatte und verteilt den Stream dann genau an die Schnittstellen weiter.

"Ziel-IP-Adresse" ist aber weiterhin die Multicast-Adresse des Streams.

Bei der neuen Zielnetzarchitektur (mit separatem VLAN8) ist das im Grunde nicht viel anders. Es wird nur ein anderes Interface verwendet.

Bei bintec hat sich mit der neuen Firmware (ich habe Release 7.8) was geändert. Die NAT-Regel kann getrost weggelassen werden.

 

Das Wichtigste ist, beim IGMP-Proxy das Interface zum Modem auf "Host only" zu setzen. Das Interface zu den IPTV-Receivern muss dagegen auf "Host und Routing" bleiben. (Der Sinn und das Prinzip ist mir nicht klar...!)

Alles andere funktioniert aber definitiv nicht!!