Fli4l Paket
OPT_IGMP
Version
2.00/ 20.12.2009
Achtung: V2.00 nur für VDSL- Zielnetz-Architektur mit Trennung ID7/ID8
OPT_IGMP
ist ein IGMP-PROXY, um fli4l als Router für IPTV statt Speedport-Router 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: Voraussetzung für die
Verwendung von opt_igmp ab V2.00 ist VDSL im Zielnetz (ID7/ID8). Für VDSL im
Startnetz oder ADSL+ ist weiterhin die opt_igmp V1.x zu verwenden.
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.
Entgegen
den früheren opt_igmp Versionen, wird der IGMP-Proxy mit opt_igmp V2.00
einmalig beim Booten des Routers gestartet und läuft dann solange eine
physikale Verbindung zum Internet besteht. Der IGMP-Proxy wird weder durch die
24h Zwangstrennung, noch durch ein manuelles trennen und verbinden des
Internet-Traffics beeinflusst.
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.
Mit der
Trennung von IPTV auf ID8 muss natürlich auch in der Konfiguration für den IGMP-Proxy eth1.8 statt bisher ppp0
eingetragen werden, womit die Umstellung Startznetz (nur ID7) auf das Zielnetz
(mit ID7/8) komplett ist.
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.
[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.