Fl4il Paket
OPT_IGMP
Version 1.0.2 / 11.01.2009
OPT_IGMP ist ein IGMP-PROXY [1] Paket für fli4l, welches erlaubt, T-Home IPTV (andere wurden derzeit noch nicht getestet) mit fli4l als Router statt dem mitgelieferten Router Speedport W700/701 zu verwenden
Fli4l package by JKL2020@web.de (support by many others – siehe Danke)
Inhalt
E VLAN-Konfiguration (Optional für VDSL)
F Konfiguration einer zusätzlichen NIC für IPTV
I Änderungen in anderen Config-Dateien
J Verweis auf Quellen zum Thema VLAN und IPTV
Die Deutsche Telekom AG bietet derzeit VDSL25/VDSL50 - Entertain Comfort/Plus VDSL - mit Bandbreiten von bis zu 25/50 Mbit/s an.
Mit dem Paket kommt die Möglichkeit, IPTV zu empfangen. Mitgeliefert wird ein WLAN-Router (Speedport W700V/W701V), der etwas enthält was viele Router heute noch nicht können, nämlich IGMP (Internet Group Management Protocol) Routing. Zweck eines IGMP-Proxies ist, den Multicast-Traffic (verwendet bei IPTV) zwischen Netzen weiterzuleiten.
Wer fli4l für IPTV statt Speedport-Router nutzen will, braucht einen IGMP-Proxy auf dem fli4l.
OPT_IGMP stellt einen simplen dynamischen Multicast Routing Daemon als IGMP-Proxy auf dem fli4l zur Verfügung, womit ITPV auch hinter einem fli4l-Router ermöglicht wird.
OPT_IGMP ist eine Zusammenfassung aus Informationen aus der NewsGroup [7].
Die Dokumentation zum OPT_IGMP Paket beschreibt, wie fli4l konfiguriert werden muss, um VDSL und T-Home IPTV mit der mitgelieferten Set-Top-Box (STB) X300T/X301T hinter einem fli4l-Router zu betreiben.
Für die Konfiguration wird eine zusätzliche NIC (Network Interface Card = LAN- bzw. Ethernet-Karte) im fli4l verwendet, um die Set-Top-Box (STB) direkt (ohne Switches, Hubs, etc.) mit dem fli4l zu verbinden.
Hardware:
Software:
Anpassungen der folgenden Konfigurationsdateien:
Um eine IPTV STB nutzen zu können, müssen alle Netzwerk-Knoten (Hub, Switch, Bridge, Gateway, Router) zwischen der IPTV Box und dem Streaming Server multicastfähig sein. Ist das nicht der Fall und ist kein IGMP-Proxy im Netz, dann ‚frieren’ Bild und Ton nach wenigen Sekunden ein.
Deshalb sollte man vorsichtig sein, falls man zwischen STB und fli4l-Router billige Netzwerk-Knoten (im Home-Netzwerk sind das i.d.R. SHO Switches) einzusetzen möchte, denn die meisten unterstützen kein Multicast, außer es werden Switches eingebaut, die über IGMP-Snooping oder EBTables verfügen.
Bei der Verwendung von WLAN und OpenVPN-Bridges für IPTV kommt es zu Problemen, weil die Multicastpakete als Broadcasts im LAN landen.
Hier wird die Konfiguration mit 3 NIC’s beschrieben, mit einem getrennten Subnetz für IPTV, um alle o.g. Probleme auszuschließen. Trotzdem geht das ganze natürlich auch mit einem einzelnen NIC an dem gleichzeitig PCs und die IPTV STB hängen. Wer die ‚Single’ NIC-Methode bevorzugt sollte selbst wissen was er tut (das wird hier nicht weiter beschrieben).
3 Karten-Konfiguration
Der einfachste Weg, eine IPTV STB zu nutzen, ist eine zusätzliche NIC im fli4l zu installieren, die VLAN (falls T-Home) unterstützt. Leider sind derzeit nicht alle NIC’s VLAN tauglich.
Getestete NIC’s die für IPTV/VLAN funktionieren sind derzeit 3Com 905c und Intel Pro/100. Es gibt darüber hinaus sicherlich noch viele andere, jedoch nicht von mir getestet. Bekannte NIC’S die Probleme bereiten können sind: Intel Gigabit NICs mit 82540EM Chipsatz.
Anbei ein Diagramm, wie im genannten Beispiel der fli4l Router vom Standard-Router zum Router mit 3 NIC’s migriert wird:
VDSL-Modem Fli4l-Router
LAN-Schnittstelle
Fli4l-Router
VDSL-Modem IPTV-Schnittstelle zur STB
LAN-Schnittstelle
Eines vorweg: Der IGMP-Proxy – OPT_IGMP - ist nicht auf VLAN angewiesen. Vielmehr wird VLAN derzeit für T-Home/VDSL verwendet und muss dafür vom Router unterstützt werden, der eingesetzt wird. Ob VLAN für den Internet-Betrieb auch bei anderen Providern (Arcor, Alice, etc…) benötigt wird, entzieht sich meinen derzeitigen Kenntnissen.
Um also VDSL25/50 von T-Home für den Internet-Betrieb zum Laufen zu bringen, muss der NIC zum VDSL-Modem zwingend als VLAN-Interface konfiguriert werden - siehe auch [8]. VLAN hat also nichts mit IGMP und IPTV zu tun, wird aber hier beschrieben, weil es Voraussetzung für Betrieb des fl4il am VDSL-Anschluß von T-Home mit einem VDSL-Modem (kein ‚normales’ DSL-Modem).
An alle die nur das ‚normale DSL’ der Telekom, also ADSL, ADSL2, ADSL2+ haben: VLAN wird nur von VDSL benötigt, nicht aber vom ‚normalen DSL’. Die VLAN-Konfiguration wird deshalb mit dem ‚normalen DSL’ nicht funktionieren.
Für VLAN
ist folgende Konfiguration erforderlich:
(NICs wie im Kapitel D Hardware-Setup Standard-Konfiguration angegeben)
advanced_networking.txt:
VLAN_DEV_N='1'
VLAN_DEV_1_DEV='eth1’ # interface of VDSL-Modem; example: eth1
# In unserem Beispiel geht 'eth1' zum VDSL-Modem
VLAN_DEV_1_VID='7’
# ID7 to support VLAN
Optional: Falls die verwendete NIC mit der MTU-Größe Probleme hat, muss der MTU-Wert über den Parameter DEV_MTU angepasst werden. Im Test zeigte die Intel Pro/100 (e100) und auch meine 3-Com-Karte keine Probleme, andere User berichten, dass bei der 3Com ‚3c59x’ der MTU-Wert auf 1496 angepasst werden muss.
DEV_MTU_1=''
# Adjust MTU size of NIC on VDSL-Modem
# Example: DEV_MTU_1='eth1 1496'
dsl.txt:
PPPOE_ETH='eth1.7' #
eth<nummer der karte zum vdsl-modem>.7'
# Bsp 'eth1.7'
Mit der beschriebenen VLAN-Konfiguration sollte der fli4l als Router für VDSL25/30 von T-Home ohne Probleme arbeiten, sofern die eingesetzte HW leistungsfähig genug ist.
Nachdem die zusätzliche NIC in den fli4l eingebaut ist, muss in base.txt die Konfiguration für diese zweite NIC angegeben werden.
Für die Anzahl der NIC’s steht normalerweise (Standard-Konfiguration) eine 1 (die DSL-Karte wird nicht mitgezählt). Hier wird jetzt eine 2 eingetragen, da wir 2 NIC’s benutzen (siehe Erweiterte Konfiguration mit zusätzlichem IPTV NIC)
NET_DRV_N='2'
NET_DRV_1='via-rhine' # 1. NIC für als LAN-Schnittstelle
NET_DRV_2='3c59x' # 2. NIC – hier 3Com für IPTV SetTopBox
Jetzt müssen wir den Adressraum für die zweite NIC festlegen. Ich verwende im LAN 192.168.2.0/24 und habe die zweite NIC mit dem Adressraum 192.168.3.0/24 versehen.
IP_NET_N='2'
IP_NET_1='192.168.2.0/24' # LAN
IP_NET_1_DEV='eth0' # LAN
IP_NET_2='192.168.3.0/24' # IPTV
IP_NET_2_DEV='eth2' # IPTV
Damit es später auch mit der DHCP-Adressierung klappt und ich die SetTop-Box mit ‚Namen’ ansprechen kann, habe ich noch folgende Einstellungen vorgenommen.
HOST_24_NAME='iptv' # beliebig waehlbar
HOST_24_IP='192.168.3.4' # beliebig waehlbar
HOST_24_MAC='00:D0:E0:93:19:04' # T-Home X300T
DNSDHCP_RANGE_2_START='192.168.3.10' # entsprechend IP_NET_2
DNSDHCP_RANGE_2_END='192.168.3.20' # entsprechend IP_NET_2
DNSDHCP_RANGE_2_DNS_SERVER=''
DNSDHCP_RANGE_2_NTP_SERVER=''
DNSDHCP_RANGE_2_GATEWAY=''
Für die neue NIC muss der Zugriff auf das Internet natürlich genauso funktionieren, wie für die erste NIC. Dazu sind weitere Einstellungen in base.txt notwendig.
PF_INPUT_1='IP_NET_1 ACCEPT'
PF_INPUT_2='IP_NET_2 ACCEPT'
. . .
PF_FORWARD_5='IP_NET_1 ACCEPT'
PF_FORWARD_6='IP_NET_2 ACCEPT'
. . .
PF_POSTROUTING_1='IP_NET_1 MASQUERADE'
PF_POSTROUTING_2='IP_NET_2 MASQUERADE'
Am Besten ist es nach der Konfiguration der neuen NIC an diese erst mal seinen PC zu hängen, um zu sehen, ob man über die neue NIC auch ins Internet kommt. Ist der Test erfolgreich, sollte die neue zweite NIC richtig konfiguriert sein
Beim Booten des fli4l-Routers werden die Parameter der config-Datei igmp.txt in die Konfigurationsdatei /etc/igmpproxy.conf geschrieben, welche beim Start des Programms igmpproxy eingelesen werden.
Sobald der Router sich mit dem Internet verbindet, startet das Script ip-up499.igmp den IGMP-Proxy, falls igmpproxy.conf vorhanden ist. Beim Trennen (Hang-up) wird der Prozess von igmpproxy gestoppt und beim erneuten Verbinden wieder gestartet.
Hier wird der IGMP-Proxy aktiviert bzw. deaktiviert:
OPT_IGMP_PROXY='yes' # IGMP Proxy installieren: yes or no
Mit Quickleave kann die Last im Upstream-Link gesenkt werden. Falls der Parameter ‚Quickleave’ mit ‚yes’ eingeschaltet wird, führt das dazu, dass der Multicast nach einem Kanalwechsel schneller abbestellt und so die Last im Downstream gesenkt wird, indem sich der IGMP-Proxy wie ein Receiver verhält.
Gibt es 2 STB’s und sehen diese dasselbe Programm, dann kann es (mit Quickleave = yes) passieren, dass beim Umschalten des Programms von einer STB bei der zweiten STB das Programm unterbrochen wird.
Beim Einsatz von nur einer STB kann Quickleave gefahrlos eingeschaltet werden (yes).
IGMP_PROXY_QUICKLEAVE_ON='yes' # Quickleave-Modus einschalten
# yes or no; Default: yes
Für den IPTV-Betrieb benötigt der IGMP-Proxy ein Upstream- und ein Downstream-Interface. Das Upstream-Interface ist die Schnittstelle mit der NIC, an dem das VDSL-Modem hängt. Diese sollte i.d.R. immer gleich bleiben.
IGMP_PROXY_UPLOAD_DEV='ppp0' # Upstream Interface; Default: ppp0
Die Schnittstelle des Downstream-Interfaces (NIC zur IPTV SetTop-Box) ist hier abhängig von der HW-Konfiguration einzutragen. Für fli4l mit zweiter NIC – wie in diesem Dokument beschrieben - ist eth2 das Interface zur SetTop-Box.
IGMP_PROXY_DOWNLOAD_DEV='eth2' # Downstream Interface
Alle anderen Schnittstellen, außer dem eben festgelegten Downstream-Interface, die nicht für IPTV benutzen werden, müssen unbedingt ausgeschaltet werden. Insbesondere gilt dieses für das Interface zum VDSL-Modem (in unserem Beispiel eth1 bzw. eth1.7). Das erledigt OPT_IGMP ab V1.0 allerdings von selbst.
Mit dem Parameter ALT_NET werden Adressbereiche für Multicast-Traffic festgelegt, welche Ihren Ursprung außerhalb des Heim-Netzwerks haben, sowie der lokale Adressbereich, an der die STB hängt.
IGMP_PROXY_ALT_N='4' # Anzahl der Multicast Sourcen
IGMP_PROXY_ALT_NET_1='239.35.0.0/16' # IPTV streams - immer benoetigt
IGMP_PROXY_ALT_NET_2='217.0.119.0/24' # Erforderlich fuer T-Home
IGMP_PROXY_ALT_NET_3='193.158.35.0/24' # Erforderlich fuer T-Home
IGMP_PROXY_ALT_NET_4='192.168.3.0/24' # Adressraum der IPTV SetTop-Box
Damit der Multicast-Traffic von außen auch in das Heimnetz und zur STB kommt, sind noch folgende Änderungen in base.txt vorzunehmen.
.
.
PF_INPUT_3='any 224.0.0.0/4 ACCEPT'
.
.
PF_FORWARD_3='any 224.0.0.0/4 ACCEPT'
.
.
Hinweis: Wer glaubt, diese Einträge lassen sich sparen, kann hier gerne experimentieren. Ich bin zum Ergebnis gekommen, dass diese Adressen notwendig sind.
Hier noch mal zusammengefasst die Quellen, welche mir und anderen geholfen haben, einen igmpproxy zu konfigurieren.
[1] T-Home IPTV without speedport W 700V
http://man-wiki.net/index.php/T-Home_IPTV_without_speedport_W_700V
[2] Multicast-Adressen im DSL-Netz
http://www.ard-digital.de/index.php?id=14029&languageid=1
[3] Wikipedia - Multicast
http://de.wikipedia.org/wiki/Multicast
[4] VDSL-Modem unter Linux
http://www.pro-linux.de/berichte/vdsl.html
[5] T-Home IPTV ohne Speedport unter Linux (VDSL)
http://wiki.freakempire.de/doku.php/linux/thome_iptv_ohne_speedport_unter_linux_vdsl
[6] Sourceforge.net igmpproxy zum Downloaden
http://sourceforge.net/projects/igmpproxy
[7] spline.eisfair.dev – VDSL – fli4l+Speedport 300HS + IPTV
[8] [fli4l] Fli4l mit VDSL und T-Home
http://lists.spline.inf.fu-berlin.de/mailman/htdig/fli4l/2007-February/198220.html
|
OPT_IGMP |
22.08.2007 |
|
22.09.2007 |
|
1.10.2007 |
|
2.10.2007 |
|
26.03.2008 |
|
26.03.2008 |
|
Einige haben den IGMP-Proxy [6]bereits vor mir zum Laufen gebracht und mir die notwendigen Tipps gegeben, damit es auch bei mir klappt und haben mir später geholfen dieses Paket zu schreiben und die Dokumentation inhaltlich zu verbessern, bzw. den Proxy compiliert. Ich möchte mich bei allen herzlich für die Hilfe bedanken und möchte als Ergebnis dieses Paket allen Interessenten zur Verfügung stellen.