Fli4l Paket
OPT_IGMP
Version 1.2.0/ 20.12.2009
Mit Ergänzungen für T-Home (VDSL) unter fli4l mit vlan id7/id8 [9]
Diese Version trennt die IPTV-Verbindung nach jeder 24h Zwangstrennung, ist also vor allem für ADSL+ und VDSL Startnetz zu verwenden.
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 JK2020@web.de (supported by many others – siehe Danke)
Inhalt
F Konfiguration einer zusätzlichen NIC für IPTV
I Änderungen in anderen Config-Dateien
Die Deutsche Telekom AG bietet derzeit VDSL25/VDSL50 (Bandbreite: 25/50 Mbit/s) zusammen mit Entertain-Paketen an. Damit besteht die Möglichkeit, Fernsehen über Internet (IPTV) zu empfangen.
Die Verteilung von IPTV erfolgt als Multicast, d.h. von einem Punkt zu einer (geschlossenen) Gruppe. Zur Organisation vom Multicast-Gruppen ist das Netzwerkprotokoll IGMP (Internet Group Management Protocol) notwendig. IGMP [1] bietet die Möglichkeit, dynamisch Multicast-Gruppen zu verwalten. Die Verwaltung findet nicht in der Sende-Station statt, sondern in den Routern, an denen Empfänger einer Multicast-Gruppe direkt angeschlossen sind. IGMP bietet Funktionen, mit denen eine Station einem Router mitteilt, dass sie Multicast-IP-Pakete einer bestimmten Multicast-Gruppe empfangen will.
Die mitgelieferten Speedport-Router (derzeit W700V/W701V/W722) unterstützen IGMP.
Wer fli4l für IPTV statt Speedport-Router nutzen will, benötigt einen IGMP-Proxy [6] auf dem fli4l-Router. OPT_IGMP ist ein IGMP-Proxy für fli4l.
Diese Dokumentation zum OPT_IGMP Paket beschreibt die Konfiguration von fli4l, um VDSL und IPTV mit der mitgelieferten Set-Top-Box (STB) X300T/X301T hinter einem fli4l-Router zu betreiben.
In dieser Beschreibung erfolgt die Installation von IPTV über eine zusätzliche Netzwerkkarte.
Achtung: Die opt-igmp Version bis V1.x (also auch diese Version) führt bei jeder 24h Zwangstrennung, sowie bei jeder manuellen Trennung (beispielsweise durch imonc) einen shutdown und restart des impproxy durch.
Damit ist opt_igmp V1.x für allem für ADSL+ und für das VDSL Startnetz (ohne ID8) vorgesehen.
Für die
Verwendung vom VDSL Zielnetz (mit ID8) wird der Einsatz von opt_igmp V2.x empfohlen
(Achtung: opt_igmp ab V2.x funktioniert nicht mit ADSL+ und VDSL Startnetz).
Die Deutsche Telekom hat VDSL als VLAN eingeführt. In der Einführungsphase (Startnetz) wurde nur ein VLAN-Tag (ID7) verwendet, über den der gesamte Traffic floss. Nach der Umstellung (Zielnetz) auf zwei VLAN-Tags (ID7, ID8) bleibt der Internet Traffic auf ID7 und der neue ID8 wird ausschließlich für den IPTV Multicast-Traffic verwendet. Die Umstellung des VDSL Betriebs auf das Zielnetz (zwei VLAN Tags ID7/ID8) ist nach derzeitigem Stand größtenteils abgeschlossen.
Hardware (neben Set-Top-Box und VDSL-Modem):
Software:
Die Anpassung der Konfigurationsdateien (base.txt, dsl.txt, advanced_networking.txt, dhcp_client.txt, dns_dhcp.txt) werden in dieser Anleitung beschrieben.
Die Empfehlung für den Speedport-Router, die IPTV STB ohne weitere Netzwerk-Elemente direkt an den Router anzuschließen, gilt natürlich auch für den fli4l-Router. Falls dennoch Netzwerk-Knoten (Hub, Switch, Bridge, Gateway, Router) zwischen der IPTV Box und Router dazwischengeschaltet werden, sollten diese multicastfähig sein, um Störungen zu vermeiden.
Im Heimnetz werden i.d.R. keine Switche verwendet, die virtuelle Netze (VLAN) voneinander trennen, um den restlichen Verkehr (ID7) vom IPTV Multicast-Traffic (ID8) zu entlasten.
Deshalb wird hier als HW-Konfiguration eine separate NIC (Network Interface Card = LAN- bzw. Ethernet-Karte) im fli4l verwendet, um die Set-Top-Box (STB) direkt mit dem fli4l zu verbinden und das restliche Heimnetz vom Multicast-Traffic zu entlasten und alle o.g. Probleme auszuschließen.
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. 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 von der Deutschen Telekom für VDSL verwendet und muss dafür vom Router unterstützt werden. Ob VLAN für den Internet-Betrieb auch bei anderen Providern (Arcor, Alice, etc…) benötigt wird, entzieht sich meinen derzeitigen Kenntnissen.
Um VDSL25/50 von T-Home für den Internet-Betrieb zum Laufen zu bringen, muss die NIC zum VDSL-Modem zwingend als VLAN-Interface konfiguriert werden - siehe auch [8]. VLAN hat also nichts mit IGMP und IPTV zu tun, ist aber zwingend notwendig und deshalb wird die Konfiguration hier beschrieben.
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.
Mit der Einführung von VDSL als Startnetz hat die Deutsche Telekom sowohl Internet als auch IPTV über VLAN ID7 eingeführt. Seit Anfang 2009 erfolgte die Umstellung vom Startnetz auf das Zielnetz.
Mit der Umstellung auf das VDSL-Zielnetz ändert sich nichts am Internetverkehr, der weiter über ID7 läuft. Wesentlicher Unterschied ist, dass für VLAN ID7 eine Einwahl erforderlich ist und eine Zwangstrennung nach 24h erfolgt. Damit läuft der Internet-Traffic jetzt komplett unabhängig vom IPTV-Traffic. VLAN ID8 wird über einen DHCP-Server ohne Einwahl zur Verfügung gestellt und es erfolgt auch keine Zwangstrennung.
VDSL Zielnetz:
Für VLAN
ist folgende Konfiguration erforderlich:
(NICs wie im Kapitel D Hardware-Setup Standard-Konfiguration angegeben)
advanced_networking.txt:
VLAN_DEV_N='2'
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 for internet
VLAN_DEV_2_DEV='eth1’ # interface of VDSL-Modem; example: eth1
# In unserem Beispiel geht 'eth1' zum VDSL-Modem
VLAN_DEV_2_VID='8’
# ID8 to support VLAN for IPTV
Die Virtual-NIC eth1.7 muss in die DSL-Konfiguration eintragen werden:
dsl.txt:
PPPOE_ETH='eth1.7' #
eth<nummer der karte zum vdsl-modem>.7'
# Bsp 'eth1.7'
Für die Virtual-NIC eth1.8 benötigen wir einen dhcp_client, da VLAN ID8 über einen DHCP-Server ohne Einwahl zur Verfügung gestellt wird.
dhcp_client.txt
OPT_DHCP_CLIENT='yes'
DHCP_CLIENT_TYPE='dhcpcd'
DHCP_CLIENT_INTERFACES='IP_NET_3_DEV' # listen on interface eth1.8
DHCP_CLIENT_USEPEERDNS='no'
DHCP_CLIENT_HOSTNAME=''
Seit Fli4l V3.3.x kann für das Interface nicht mehr eth1.8 angegeben werden, sondern es muss der Eintrag IP_NET_x_DEV verwendet werden, der für das Interface in base.txt definiert wurde; hier IP_NET_3_DEV.
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'
Jetzt sind noch die Konfigurationsdateien base.txt und dns_dhcp.txt anzupassen, wie im nächsten Kapitel beschrieben.
In base.txt und dns_dhcp.txt muss die Konfiguration für VLAN und für die zweite NIC angepasst werden.
Zweite NIC für IPTV eintragen:
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. Außerdem brauchen wir Einträge für die Virtual-NIC’s eth1.7 und eth1.8
IP_NET_N='4'
IP_NET_1='192.168.2.1/24' # home/office LAN
IP_NET_1_DEV='eth0'
IP_NET_2='192.168.3.1/24' # iptv LAN
IP_NET_2_DEV='eth2'
IP_NET_3='dhcp' # dhcp client - IP ueber dhclient
IP_NET_3_DEV='eth1.8'
IP_NET_3_MAC='00:40:63:da:cf:32' # neue MAC/nicht MAC von eth1
IP_NET_4='dhcp' # eth1.7 zum modem
IP_NET_4_DEV='eth1.7'
IP_NET_4_MAC='00:40:63:da:cf:33' # neue MAC/nicht MAC von eth1
Wichtig ist auch die Änderung die MAC-Adressen für eth1.7 und eth1.8, welche nicht mit eth1 übereinstimmen dürfen, da sonst – abhängig vom VDSL-Net der DTAG – ggf. Störungen nach der Zwangstrennung auftreten können.
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 notwendig:
PF_INPUT_1='IP_NET_1 ACCEPT'
PF_INPUT_2='IP_NET_2 ACCEPT'
PF_INPUT_3='any 224.0.0.0/4 ACCEPT'
. . .
PF_FORWARD_3='any 224.0.0.0/4 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'
Damit es später auch eine dynamische DHCP-Adressierung an der neuen IPTV-NIC klappt und die SetTop-Box einem Namen angesprochen werden kann, sind noch folgende Einstellungen in dns_dhcp.txt erforderlich:
HOST_10_NAME='igmp'
HOST_10_IP4='192.168.3.1'
HOST_11_NAME='iptv'
HOST_11_IP4='192.168.3.4'
HOST_11_MAC='00:D0:E0:93:49:34' # MAC Adr T-Home X300T
. . .
DHCP_RANGE_2_NET='IP_NET_2'
DNSDHCP_RANGE_2_START='192.168.3.10'
DNSDHCP_RANGE_2_END='192.168.3.20'
DNSDHCP_RANGE_2_DNS_SERVER1=''
DNSDHCP_RANGE_2_DNS_SERVER2=''
DNSDHCP_RANGE_2_NTP_SERVER=''
DNSDHCP_RANGE_2_GATEWAY=''
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.
OPT_IGMP_PROXY='yes' # IGMP Proxy installieren: yes or no
OPT_IGMP_DEBUG='no' # show igmpproxy verbose information
OPT_IGMP_DEBUG2='no' # show igmpproxy debug information
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='eth1.8' # Upstream Interface; Default: ppp0
# eth1.8 für T-Home/VDSL mit id7/id8
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
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 W700V
http://man-wiki.net/index.php/T-Home_IPTV_without_speedport_W_700V
[2] Wikipedia - IGMP
http://de.wikipedia.org/wiki/IGMP
[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/t-home_iptv_ohne_speedport_unter_linux_vdsl
[6] Sourceforge.net - igmpproxy
http://sourceforge.net/projects/igmpproxy
[8] [fli4l] Fli4l Dokumentation – Kapitel 4.6.2
http://www.fli4l.de/fileadmin/doc/deutsch/html/fli4l-3.4.0/node30.html
[9] T-Home (VDSL) unter Debian Linux einrichten (vlan id7 und 8)
http://claus.freakempire.de/2009/02/17/t-home-vdsl-unter-debian-linux-einrichten-vlan-id-7-und-8/
22.08.2007 |
|
22.09.2007 |
|
1.10.2007 |
|
2.10.2007 |
|
26.03.2008 |
|
11.01.2009 |
|
26.03.2009 |
|
20.05.2009 |
|
20.12.2009 |
|
Vielen Dank an alle, die mir mit Rat und Tat zur Seite standen und mir geholfen haben, dieses Paket zu erstellen.