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

 

A     Wofür?. 2

B      Was wird hier beschrieben?. 2

C     Voraussetzung. 2

D     Hardware Setup. 3

E      VLAN-Konfiguration (Optional für VDSL) 4

F      Konfiguration einer zusätzlichen NIC für IPTV.. 5

G     Funktion. 6

H     Konfiguration. 6

I       Änderungen in anderen Config-Dateien. 7

J       Verweis auf Quellen zum Thema VLAN und IPTV.. 7

K     Updates. 8

L      FAQ.. 8

M     To-Do. 9

N     Danke. 9

 

 

 

 


A       Wofür?

 

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].

 

B       Was wird hier beschrieben?

 

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.

 

C       Voraussetzung

 

Hardware:

 

Software:

 

Anpassungen der folgenden Konfigurationsdateien:

 

 

D       Hardware Setup

 

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

 

 

E        VLAN-Konfiguration (Optional für VDSL)

 

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.

 

 

 

F        Konfiguration einer zusätzlichen NIC für IPTV

 

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


G       Funktion

 

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.

 

H        Konfiguration

 

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

 

 

I            Änderungen in anderen Config-Dateien

 

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.

 

J         Verweis auf Quellen zum Thema VLAN und IPTV

 

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/t­home_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

http://groups.google.de/group/spline.eisfair.dev/browse_thread/thread/a4436ef840aa9ac5/2c0c464435f1aee7?lnk=st&q=iptv+fli4l&rnum=3#2c0c464435f1aee7

 

[8] [fli4l] Fli4l mit VDSL und T-Home

http://lists.spline.inf.fu-berlin.de/mailman/htdig/fli4l/2007-February/198220.html

 

 

K       Updates

 

 

OPT_IGMP

22.08.2007

  • V0.3 Erste Version als Paket für fli3l ab V3.1.2

22.09.2007

  • V0.9 Update mit folgenden Änderungen
  • Start- und Stop-Scripte in /etc/ppp verlegt
  • Konfigurations-Script in /etc/rc.d belassen
  • IGMP-Proxy startet jetzt auch zuverlässig nach jedem aus- und wiedereinloggen des Routers

1.10.2007

  • V0.95
  • Noch mal einige Parameter in igmp.txt config weggelassen
  • Namenskonvention der Parameter on fli4l angeglichen
  • Namensänderung der verwendeten Parameter in igmp_proxy falls künftig noch mehr igmp-Pakete kommen

2.10.2007

  • V1.0
  • Script nochmals überarbeitet mit Input von Jean
  • Versionskontrolle eingebaut

26.03.2008

  • V1.0.1
  • Docu ergänzt
  • Getestet mit fli4l v3.2.0 und kernel 2.6.16.56

26.03.2008

  • V1.0.2
  • Docu geringfügig verändert
  • Neuen igmp proxy, compiliert von Harald Kaufmann
  • Getestet mit fli4l v3.2.1 , v3.2.2 und kernel 2.6.16.56

 

 

L        FAQ

 

  1. Welche HW ist für opt_igmp geeignet?

 

  1. Was für fli4l-Versionen sind für opt_igmp geeignet?

 

  1. Was muss ich beachten bevor ich opt_igmp installiere?

 

  1. Brauche ich eine zusätzliche NIC im fli4l für IPTV?

 

  1. Was ist bei der Installation von opt_igmp mit zusätzlicher NIC zu beachten?

 

  1. Was ist bei der Installation von opt_igmp über Standard NIC zu beachten?

 

  1. Warum erhalte ich Debug-Information von IGMP im syslog Fenster?

 

  1. Wie kann ich überprüfen ob ich opt_igmp richtig konfiguriert wurde?

 

M      To-Do

 

 

N        Danke

 

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.