Netgear WNR3500L, Tomato und T-Home Entertain über VDSL

So. Lange (über ein Jahr) ists her, dass mich mein VDSL-Anschluss in ungeahnte Bandbreitensphären befördert hat. Für das erste halbe Jahr hatte ich ‘nen WRT54GL mit Tomato dran laufen – da lief Entertain nicht. Nach besagtem halben Jahr stellte ich ‘nen zweiten WRT54G hin – per Switch zusammen mit dem WRT54GL ans Modem (Speedport 300hs) angeschlossen – und hatte dann auch nach einiger Konfigurationsarbeit den Media-Receiver am Laufen. Nach viel Arbeit hab ich in diesem Jahr nun endlich eine Lösung für Tomato-Liebhaber, die einen in jeder Facette glücklich machen dürfte.

Das Ganze benötigt immer noch einiges an Konfiguration, aber läuft stabil und beinahe alles funktioniert.

Das Gerät

Kern dieses Tutorials ist der vergleichsweise neue WNR3500L von Netgear. Als kleiner Anriss zu den Hardwaredetails: 533MHz CPU, 64MB RAM, 8MB Flash, GBit Switch, 802.11n Wifi, ein USB-Port. Für läppische 70 Euro inklusive Versand ist er zu haben.

Das Flashen

Zunächst muss man sich der grässlichen Netgear-Firmware entledigen. Das funktioniert über ein Firmware-Upgrade zu DD-WRT. Die Firmware findet sich beispielsweise hier, in Zukunft ist der Link möglicherweise tot und man sollte hier einfach “WNR3500L” eingeben und sich dann die “special file for initial flashing” besorgen.

Befinden wir uns nun unter DD-WRT, so sollten wir zunächst mal einen NVRAM-Reset durchführen.

Ist der Reset durch, so können wir mit dem Bespielen von Tomato beginnen. Das dazu nötige Flash-Image finden wir auch in Zukunft sicherlich hier, in naher Zukunft aber auch hier unter “K26-MIPSR2”. Zur Auswahl: Jede der vier Versionen wird auf dem WNR3500L laufen. Die Unterschiede kann man, soweit die Dateinamen sie nicht ohnehin erklären, hier nachlesen.

Unter DD-WRT begibt man sich nach Administration -> Firmware-Upgrade und flasht den WNR3500L mit der Tomato-Firmware. Das Ganze kann eine ganze Weile dauern – am besten einfach mal so um die 5 Minuten zurücklehnen, bevor man irgendwas macht. Danach empfiehlt es sich, erneut einen NVRAM-Reset durchzuführen.

VDSL-Konfiguration unter Tomato

Läuft Tomato nun auf dem WNR, so gibt man zunächst mal seine Zugangsdaten unter Basic -> Network ein, sobald man PPPoE als Type ausgewählt hat, und speichert ab. Unter Administration -> Admin Access gehen wir sicher, dass der Telnet-Daemon aktiviert und am Laufen ist.

Dann öffnen wir eine Telnet-Session zum Router. Unter Windows geht das über Windowstaste+R (=Ausführen), “cmd” zum Öffnen einer Eingabeaufforderung und dortiger Eingabe von

telnet 192.168.1.1

Durch Legitimation mit “root” als Benutzername und “admin” als Passwort gelangen wir nun in die Eingabeaufforderung des Routers. Dort sind für den VDSL-Zugang folgende Befehle auszuführen:

nvram set vlan7hwname=et0
nvram set vlan7ports="0t 8"
nvram set wan_ifname=vlan7
nvram set wan_ifnameX=vlan7
nvram set wan_ifnames=vlan7
nvram commit

Nach einem Reboot (Strom raus, Strom rein) dürfte nun die Internet-Einwahl auch schon direkt funktionieren. Was uns auch schon zum kompliziertesten Teil bringt…

IPTV-Konfiguration

Hier fließen diverse Problematiken (Broadcast/WLAN, RFC3442 dhcp options, igmpproxy) zusammen, und die hier vorgestellte Lösung ist die beste mir bekannte. Sie beinhaltet folgende Schritte:

  1. Isolation des Media Receivers durch Auftrennung des Switches des WNRs in einen 3-Port-Bereich für Computer und einen einzelnen Port, an den der Media Receiver angeschlossen wird
  2. Konfiguration des vlan8 Interfaces inklusive DHCP/classless static routes
  3. Konfiguration des igmpproxy
  4. Zusätzliche Firewall-Regeln

Der Reihe nach also:

1. Isolation des Media Receivers auf Port 4 (den untersten) des Switches

Weiterhin per Telnet an den Router:

nvram set vlan1hwname=et0
nvram set vlan1ports="4 3 2 1 8*"
nvram set vlan9hwname=et0
nvram set vlan9ports="1 8*"
nvram commit

Weiter im Web-Interface unter Advanced -> DHCP / DNS. Dort in die Custom Configuration-Box Folgendes eintragen:

interface=vlan9
dhcp-range=iptv,192.168.2.50,192.168.2.100,255.255.255.0,1440m
dhcp-option=iptv,3,192.168.2.1
dhcp-option=iptv,6,192.168.2.1

Dann abspeichern. Dabei ist darauf zu achten, dass die vorletzte Stelle der IP nicht gleich der sein darf, die unter Basic -> Network unter LAN angegeben ist.

Weiterhin sind unter Administration -> Scripts -> Firewall folgende Zeilen einzutragen:

# multicast vlan interface: device configuration
ifconfig vlan9 up
ifconfig vlan9 192.168.2.1

# multicast vlan interface: iptables rules
iptables -I INPUT -i vlan9 -j ACCEPT
iptables -I OUTPUT -o vlan9 -j ACCEPT
iptables -A FORWARD -i vlan9 -o br0 -j ACCEPT
iptables -A FORWARD -i br0 -o vlan9 -j ACCEPT
iptables -A FORWARD -i vlan9 -j ACCEPT

Damit wird Routing zwischen dem LAN- und dem Media Receiver-Subnetz ermöglicht, sowie der Zugang des letzteren zum Internet.

Nun muss dem Media Receiver unter Basic -> Static DHCP eine statische IP im 192.168.2.x-Subnetz angedichtet werden. Dazu ist die sechsstellige MAC-Adresse dessen LAN-Adapters nötig, die man unter Status -> Device List angezeigt bekommt, wenn man den Media Receiver an den Router anschließt.

Abschließend sollte man den Router mit an Port 4 angeschlossenem Media Receiver rebooten um sicher zu gehen, dass der Media Receiver auch eine IP im korrekten Subnetz (.2.x) bekommt (abermals unter Status -> Device List).

2. Konfiguration des vlan8 Interfaces

Abermals per Telnet:

nvram set vlan8hwname=et0
nvram set vlan8ports="0t 8"
nvram commit

Danach nochmal rebooten. Sobald das Web-Interface des Routers wieder da ist, ist unter Administration -> Scripts -> Firewall unter die schon vorhandenen Zeilen Folgendes einzutragen:

# prepare iptv interface
if [ ! "UP" == "$(ip addr | grep -i vlan8 | awk '{split($0,a,",");print a[3];}')" ] ; then
 ifconfig vlan8 up
fi

# get ip, restart wan if it works
if [ ! -e /var/run/iptv.pid  ] ; then
 udhcpc -i vlan8 -s dhcpc-event -p /var/run/iptv.pid
 service wan restart
fi

Hier wird das IPTV-Interface aktiviert und danach mit einer dynamischen IP nebst per DHCP verteilten statischen Routen zur IPTV-Infrastruktur versorgt. Es ist zwar eher unsauber, soetwas ins Firewall-Script zu schreiben, aber letzteres repräsentiert den einzigen Hook, der zu einem Zeitpunkt aufgerufen wird, zu dem alle benötigten Interfaces bereit sind, Befehle entgegen zu nehmen.

Auch hier schadet ein Reboot nicht.

3. Konfiguration des igmpproxy

Im Web-Interface unter Admin -> JFFS den Haken bei Enable setzen und auf Format / Erase… klicken. Das erstellt eine permanente Partition auf dem Flash-Chip, die wir nun mit Daten beschreiben können.

Sobald der Formatierungsvorgang fertig ist, öffnen wir abermals eine Telnet-Session. Dort besorgen wir uns den igmpproxy mitsamt funktionierender Konfiguration für T-Home:

cd /jffs
wget http://bogy.mine.nu/tomato/igmpproxy2
wget http://bogy.mine.nu/tomato/igmp.conf
chmod +x igmpproxy2

Die Konfigurationsdatei ist stark auf dieses Tutorial angepasst. Solltet ihr also Änderungen durchgeführt haben, so solltet ihr analog dazu auch den Inhalt dieser Datei anpassen.

Weiter im Web-Interface: Unter Advanced -> Firewall den Haken bei Allow Multicast wegmachen.

Dann nach Administration -> Scripts. Dort unter Init folgende Zeilen einfügen:

sleep 120
/jffs/igmpproxy2 /jffs/igmp.conf &

Dies startet 2 Minuten nachdem der Router hochgefahren ist  den IGMP-Nachrichten weiterleitenden igmpproxy.

4. Zusätzliche Firewall-Regeln

Unter Administration -> Scripts -> Firewall unter die vorhandenen Zeilen Folgendes einfügen:

# iptv rules
iptables -I INPUT -d 224.0.0.0/4 -j ACCEPT
iptables -I FORWARD -d 224.0.0.0/4 -j ACCEPT
iptables -t nat -A POSTROUTING  -o vlan8 -j MASQUERADE
iptables -A FORWARD -s 217.0.119.0/24 -i vlan8 -j ACCEPT
iptables -A FORWARD -s 193.158.35.0/23 -i vlan8 -j ACCEPT
iptables -A FORWARD -s 87.141.147.0/24 -i vlan8 -j ACCEPT
iptables -A FORWARD -s 217.6.167.0/24 -i vlan8 -j ACCEPT

Dann abspeichern. Das sind Firewall-Regeln, die dem Media Receiver den IPTV- sowie Internetzugang ermöglichen.

Nach einem Reboot sollte dann mit in Port 4 eingestecktem Media Receiver nach ein wenig Wartezeit (ich würde schon mal so 3-4 Minuten veranschlagen.. Aber ist ja nicht schlimm, denn wer rebootet seinen Router auch ständig?) das Fernsehen sowie das Internet auch schon problemlos laufen. Die restliche Konfiguration des Routers könnt ihr nach eurem Ermessen ab hier durchführen.

Optionales

Als Appendix hier noch ein paar kleine Spielereien, die den Genuss der Kombination noch ein wenig erhöhen dürften:

SNMP-Daemon zum Netzwerk-Monitoring

Während der eingebaute Bandbreiten-Graph von Tomato schon ganz toll ist, will ein mancher möglicherweise etwas zentraler Statistiken anlegen; beispielsweise mit Hilfe von MRTG oder dem darauf basierenden Cacti. Dazu gibt es den kleinen und performanten mini_snmpd. Per Telnet-Session:

cd /jffs
wget http://bogy.mine.nu/tomato/mini_snmpd
chmod +x mini_snmpd

Dann im Web-Interface unter Administration -> Scripts -> Init nach Möglichkeit noch vor der sleep-Zeile folgende Zeile hinzufügen:

/jffs/mini_snmpd -i ppp0,vlan8

Wie genau die dazugehörigen OIDs zu beschaffen sind, habe ich in diesem Forenposting beschrieben. Bei ppp0 handelt es sich um den Traffic der Internet-Verbindung, bei vlan8 um den des IPTV-Interfaces.

IPTV vom PC aus via VLC

Während das mit dem Speedport noch funktioniert hat, geht das mit der Konfiguration von hier aufgrund des abgetrennten IPTV-Subnetzes nicht mehr. Wir verwenden dazu stattdessen die Software udpxy. Abermals per Telnet-Session:

cd /jffs
wget http://bogy.mine.nu/tomato/udpxy
chmod +x udpxy

Dann im Web-Interface unter Administration -> Scripts -> Init, nach Möglichkeit genau nach der igmpproxy-Zeile Folgendes anfügen:

/jffs/udpxy -S -a br0 -p 4022 -m vlan8

Damit wird der udpxy als Daemon gestartet und hört auf Port 4022 der Router-IP auf Anfragen, um UDP-Streams zu HTTP-Streams zu übersetzen. Die Statusseite unter http://192.168.1.1:4022/status verrät auch direkt, wie die bislang für VLC verwendeten rtp-Adressen umgewandelt werden müssen. Eine angepasste Playliste für die Router-IP 192.168.1.1 und den besagten Port habe ich hier hochgeladen.

Fix noch rebooten und alles sollte laufen.

33 responses to “Netgear WNR3500L, Tomato und T-Home Entertain über VDSL

  1. Ich habe Deine Anleitung zwar nur bis zum Schritt “VDSL-Konfiguration unter Tomato” nachvollzogen, da ich VDSL ohne IPTV beziehe und … es funktioniert alles bestens 🙂 Nachdem ich den ganzen Tag vergeblich versucht habe DD-WRT (verschiedene Builds) mit VLAN7 Tagging ans Fliegen zu bekommen, habe ich im myopenrouter.com Forum Deinen Eintrag gelesen.

    Die WLAN LED leuchtet zwar nicht und die Internet-LED in der falschen Farbe, aber das sind Dinge, die mich nicht sonderlich stören.

    Bin übrigens auch von einem WRT54GL umgestiegen, hatte dort allerdings vorher jahreland DD-WRT drauf. Zuletzt lief diese Kombination auch mit VDSL, dort allerdings auf Grund der alten Hardware mit angezogener Handbremse.

    Die Geschwindigkeit jetzt beträgt etwas mehr als 5MB/s, also genau so viel, wie der Anschluss hergeben sollte. Upload ist auch ok.

    Achja, noch eine kleine Bemerkung an potenzielle Nachahmer: Das 30-30-30 Ritual sollte auf jeden Fall durchgeführt werden, da man nach dem Umflashen von DD-WRT auf Tomato mitunter nicht sofort auf den Router bekommt.

    Und das .trx File muss vor dem Flashen in .bin umbenannt werden, ansonsten gibt’s eine Ablehung von DD-WRT.

    Wird am VLAN Tagging von DD-WRT eigentlich noch gearbeitet? Die Menü-Einträge gibt’s ja, nur bewirken tun sie anscheinend nichts _/

  2. Pingback: Anonymous

  3. Hi
    vielen Dank erstmal für die Anleitung, hab in deinen Blog in mehr oder weniger regelmäßigen Abständen mal wieder reingeguckt und anfang der Woche diesen Blogeintarg gelesen und mir prombt nen 3500l zugelegt als ersatz für meinen linksys.
    funktioniert soweit auch mit dem ip-tv, nur wenn ich den receiver aus mache (standby), und ihn danach wieder an mache sehe ich nur ein schwarzes bild, bis ich den netgear wieder starte.
    ist mir in der anleitung ein fehler unterlaufen?

    mfg
    Stephan

  4. hm. kann ich jetzt so direkt auch nichts zu sagen.

    reicht es denn vielleicht auch, am media receiver nach dem aufwachen den kanal zu wechseln?

    wenn nicht:
    du koenntest mal testweise per ssh oder telnet auf den router und waehrend du den receiver in den standby schickst/rausholst zwischendurch ein paarmal schauen, ob der igmpproxy noch laeuft:

    ps w | grep igmpproxy2

    wenn er (v.a. nach dem wiederaufwachen des receivers) abstuerzt, solltest du dir auch mal den output des igmpproxy ansehen, bis er sich verabschiedet. dazu beendest du ihn erst und startest ihn dann temporaer im debug-modus:

    killall igmpproxy2
    /jffs/igmpproxy2 -dvv /jffs/igmp.conf

    da wird er haufenweise debug-informationen ausspucken; wichtige dinge, auf die man achten sollte, sind die listen der routing-eintraege. da macht er dann sone kleine tabelle mit quell- und ziel-ip. veraendert sich diese liste wenn der MR wieder hochfaehrt wieder aktiver als zu dem zeitpunkt, zu dem er im standby war, dann stimmt zumindest die kommunikation anscheinend noch.

    weitere diagnoseschritte fallen mir jetzt nicht ein.

  5. Sobald ich mein Speedport 221 von Ebay hab, will ich den 722 wieder zurückgeben.
    Da ich kein Entertain hab, läuft der Router auch OHNE Modifikation erstmal am VDSL?
    Und dann brauch ich nur einen Mod mit nem guten FTP Server via USB, was ist da emfpehlenswert? Kann ich für meine bescheidenen Ansprücke auch irgendwas einfacheres einfach per FW Update funktion installieren? Erstmal möchte ich nämlich nur den 722 durch den WNR3500 ersetzen (die FTP Funktion beim 722 läuft leider nicht stabil) ohne mich groß in Linux einarbeiten zu müssen 😉
    Danke für die Antworten…

  6. moin!
    ohne modifikation vdsl: nein.
    sofern du den router benutzt, kannst du eigentlich nur eine variante von tomato benutzen, und das ist der oben verlinkte teddy bear k2.6 mod. der hat auch gleich smb- sowie ftp-server dabei, mit dem du vergleichweise einfach eine per usb angeschlossene partition uebers netz freigeben kannst. der durchsatz ist nicht fantastisch, aber fuer den ernsthaften NAS-betrieb brauchst du ohnehin ein anderes geraet.

    prinzipiell ist alles in diesem artikel die “abridged” version der instandsetzung – soll heissen, wesentlich einfacher geht es mit den vorgegebenen elementen (hardware, software, t-com architektur) nicht. sofern du alles sauber befolgst, solltest du an deinem ziel ankommen, auch ohne grosse eigenmaechtige einarbeitung in die linux-welt. da tomato nun halt auf einem linux kernel aufbaut, kommst du allerdings um das (angeleitete) benutzen der shell kaum herum.

  7. Danke für die Antwort… aber die kommt leider, oder zum Glück, zu spät. Ich hab den WNR3500B mit original FW am Sppedport 221 laufen. Rennt super!
    Ok, ich könnte mich dennoch mit einer guten FW beschäftigen, aber so hab ich da ein bissi Zeit… ggf. erweiter Netgear ja seine FW noch um eine Userverwaltung beim FTP, dann wär ich auch so superhappy =)

    Ist bei der Tomato FW eigentlich auch ein Gast-WLAN mit drin? konnte da nirgens ne Info zu finden. Da ich des auch brauch, war ich echt froh erstmal so klar zu kommen… diese custom FW Geschichte ist ja scho cool, aber wenn man bei 0 Anfängt extrem mühsam Licht in den Dschungel zu bringen. Da hat Dein Blog schon viel geholfen.

  8. wundert mich, dass das einfach so laeuft. aber der SP221 wird wohl sein noetiges dafuer tun ;).

    gast-wlan hat tomato leider nicht. gab soweit ich weiss zwar in der community auf linksysinfo.org mal bestrebungen, das manuell hinzukriegen, ist aber gescheitert. und da der ap-daemon aktuell kaum mehr ueber die kommandozeile steuerbar ist, kann man das wohl bis auf weiteres vergessen.

    trotzdem noch viel erfolg und spass mit deinem router!

  9. Hallo!

    Kann ich mich Julian nur anschließen, ein Gast Wlan wäre natürlich noch die Krönung. Hab mich mittlerweile schon in einigen Firmwares versucht leider bietet Tomato aber die wenigsten Möglichkeiten in der Richtung.

    Aber vielleicht könnt ihr mir ja weiterhelfen? Ich wäre schon glücklich, wenn ich das eth1 Interface (also Wlan) aus der Bridge nehmen könnte und als Vlan nutzen, da ich kein eigenes Wlan benötige.

    Kann man das irgendwie mit Tomato händisch über die Konsole realisieren?

    Danke für eure Hilfe!

    Mfg

    • jo, sollt gehen. schau dir mal an, wie du nvram-variablen per konsole ausgibst und manipulierst (google), und gib deinem wlan-interface dann ein eigenes vlan.

      dann kannst du aehnlich wie in diesem artikel iptables-befehle konstruieren, die das neu erstellte vlan zwar ins internet, nicht aber ins restliche LAN-vlan lassen (musste grad 2 regeln weglassen). am besten suchst du ein wenig im linksysinfo.org-forum, da hab ich auch schon so 1-2 beitraege zum wlan-isolieren gefunden.

      je nach tomato-version die du benutzt, geht das ganze auch relativ leicht (vanilla), oder zumindest mit akzeptablem arbeitsaufwand (tomatousb k2.6).

  10. Hi! Vielen Dank erstmal für dieses Tutorial!

    Ich benutze daheim einen WRT54G v2 mit DD-WRT (Kernel 2.4) und habe einen DSL16+ Anschluss von der Telekom (ADSL2+ inkl Entertain/IPTV).
    Mit DD-WRT kann ich mich zwar wunderbar einwählen usw, IPTV bekommt man aber nicht zum laufen. (ADSL2+ braucht kein VLAN7 zum Einwählen, allerdings benötigt man VLAN8 für IPTV).

    Ich wäre Dir sehr dankbar, wenn du meine Fragen beantworten könntest:
    1. Kann man diese Anleitung fuer DD-WRT (Linksys WRT54G v2, Kernel 2.4) umsetzen?
    2. Laeuft dieses ueberhaupt auch mit Kernel 2.4 oder muss unbedingt eine auf 2.6 basierende Firmware laufen?
    3. Fuer ADSL2+ => eigentlich muesste man nur das Einrichten von VLAN7 weglassen und den Teil “IPTV-Konfiguration” fuer DD-WRT umarbeiten? Die IPTV-Konfiguration hat ja mit VLAN7 nichts zu tun?
    4. Meines Wissens nach ist ja in DD-WRT bereits ein igmpproxy integriert. Kann man also Teil 3 – “Konfiguration des igmpproxy” – weglassen?
    An sich koennte man doch aber auch den bereits in DD-WRT vorhandenen igmpproxy mit dem proxy aus dieser Anleitung ersetzen?

    Vielen Dank im Voraus!

    • hallo!

      grad ein wenig gegoogelt, weil es mir spanisch vorkam, dass du mit adsl2+ und entertain mit dd-wrt nicht internet+fernsehen zum laufen bekommst, und da bin ich auch auf dein posting im dd-wrt forum gestossen. seltsam, dass das nicht einfach so funktioniert, brainslayer friemelt da jedenfalls schon laenger mit rum. hast du moeglicherweise irgendnen speedport als modem in gebrauch? die stellen gerne mist mit den vlans an…

      aber okay, ich werd trotz mittlerweile eher limitiertem dd-wrt-wissen mal versuchen, zu antworten:
      1. vielleicht. dir fehlt ja im prinzip nur das 8er vlan und die routen (kriegst du via dd-wrts dhcp-client/script hin) sowie die dazugehoerigen firewall-regeln und der igmpproxy. bin wie gesagt nicht mehr in der materie drin, aber mit ein wenig dd-wrt wiki und den befehlen hier solltest du schon was hinkriegen koennen
      2. prinzipiell brauchst du einen kernel, der IGMPv3 unterstuetzt. tomato hatte das problem, dass der verwendete 2.4.20-kernel nur einen v2-stack aus dem 2.6er-tree zurueckportiert bekam, fuer v3 gab es meines wissens keinen backport. da dd-wrt einen neueren 2.4er-kernel verwendet, hat das schon seit ner ganzen weile igmpv3-unterstuetzung. dd-wrts 2.4-kernel reicht also.
      3.+4. naja, dd-wrt ist ein wenig anders aufgebaut als tomato. beispielsweise hat tomato die vlan-konfiguration ueber nvram-variablen; unter dd-wrt gibt es da das vconfig tool (dd-wrt wiki!). wie man damit tagged ports einstellt weiss ich nicht genau, da empfehle ich dir ebenfalls das nachschlagen. wie in (1) erwaehnt brauchst du fuer entertain prinzipiell:
      – interface mit vlan id 8 tag auf dem wan-interface
      – ip per dhcp (guter weg zu testen, ob die verbindung zum zielnetz steht) + die statischen routen, die ueber dhcp propagiert werden (der dd-wrt dhcp-client kann das)
      – ein igmpproxy. da reicht auch der von dd-wrt; das ist heutzutage sowieso eine offenbar leicht abgeaenderte version des frei verfuegbaren igmpproxy(.sf.net), die ich fuer tomato auch kompiliert hab.

      das ganze ist halt schon gewaltig arbeit dafuer, dass es eigentlich out of the box mit deiner hard- & software laufen sollte. bis der ganze kram bei mir gescheit lief, hats auch ueber ein halbes jahr gedauert, weil ich mit meinem vorhaben quasi alleine da stand. sollte aber zu machen sein, und auf dem weg dahin lernt man ein wenig mehr ueber linux, netzwerke und eventuell programmieren. 😉 wenn du noch konkrete fragen hast, nur zu.

      • Danke erstmal für die Antwort und die Infos, vor allem bzgl des Modems! Habe mir bei eBay spaßeshalber ein Teledat 302 ersteigert und darauf die ADSL2+ fähige Firmware draufgespielt. Damit funktioniert alles einwandfrei!

        Es war also doch der Speedport 201 der Übeltäter!

        Gruß
        Pali

  11. Hi… thanks for the wonderfull instructions… I was getting very frustrated with dd-wrt since I didnt even get the pppoe working.. However I still seem to have an issue with the IGMP join…

    – VLC from the laptop works perfectly….
    – The T-Home STB is in its own subnet… gets epg data… and plays video for 5 sec.. then the videoframe freezes,,

    Any idea on how I can track down the problem? I followed your instructions to the letter…
    Any advice would be highly appreciated…
    -j

    • hey there.
      your symptoms do seem to suggest that the whole IGMP stuff isn’t working correctly. when you change the channel on your t-home box, the video stream for the first few seconds is pulled off the internet (to which your box evidently has access). this is called unicast, and it is done because it offers a quick-reacting alternative to the somewhat slower multicast (done via igmp).

      what you should do to check if everything is working as it should is the following, in sequence, over an ssh/telnet terminal:
      – check if the vlan8-interface is working correctly: do “ifconfig”. is vlan8 listed, does it have an ip address/bcast/mask?
      – if this is the case, does the vlan8-interface have its routes? do “route -n” – there should be 8-9 routes on the Iface vlan8.
      – check if the igmpproxy process is running: “ps w | grep igmp” should yield one line that has -c in it.
      – check your configuration file over the terminal. if you transfer the file from windows, it may not work well (due to linebreaks). do “vi /path/to/configfile” and see if it looks correct. if it doesn’t, hit i to enter the editing mode of vi and re-write it from scratch, then hit escape to leave editing mode and type :wq to save and quit.

      if none of the above give an indication as to what’s wrong, check your tomato version. there was a brief period (i think beta 50-51 of teddybear’s tomatousb mod) where classless static routes were broken, but the most recent build fixes that.

      • Hi Julian,

        the issue is that Tomato starts it own igmpproxy /etc/igmp.conf

        /jffs/igmpproxy2 /jffs/igmp.conf can only start when the other igmpproxy is no longer running

        How can I stop tomato to run its own igmpproxy or…. how can I move the modified igmp.conf file permenatly into /etc/ ?

  12. heh, crap. i completely forgot about that part in this tutorial. you need to go to your webif, go to advanced -> firewall and UNtick [ ] allow multicast. that prevents tomato from starting its own (rather old) version of igmpproxy.

    you unfortunately can’t alter files in the /etc directory, as it is mounted read-only. you’ll have to put your files in the /tmp directory.

  13. Hi! Vielen Dank für das Tutorial. Habe es mit einem WNR3500L+Speedport 300HS und Tomato 54 an T-Home Entertain/VDSL50 Schritt für Schritt nachvollzogen. Der Internetzugang klappt, das Fernsehen allerdings nicht. Der Mediareceiver hat die IP 192.168.2.50 und kommt über PPPoE ins Netz, der Debug-Output von igmpproxy2 beim Senderwechsel sieht für mich halbwegs logisch aus, und ich empfange danach auf vlan8 massenhaft TV-Pakete wie

    14:21:27.578310 IP (tos 0x80, ttl 26, id 17459, offset 0, flags [none], proto UDP (17), length 1356) 193.158.35.67.1408 > 239.35.10.2.10000: UDP, length 1328

    Leider geht davon nichts auf vlan9 Richtung Mediareceiver raus (auch nicht ins br0-LAN), dabei müsste das nach meinem Verständnis mit den iptables-Regeln aus dem Tutorial (s.u.) soweit klappen. Ich bekomme auch nach dem Senderwechsel nichtmal 5 Sekunden Fernsehen über Unicast (d.h. FORWARD klappt auch dafür nicht?). Hatte jemand von euch so ein Problem schonmal?

    # iptables -nL
    Chain INPUT (policy DROP)
    target prot opt source destination
    ACCEPT all — 0.0.0.0/0 224.0.0.0/4
    ACCEPT all — 0.0.0.0/0 0.0.0.0/0
    DROP all — 0.0.0.0/0 93.220.101.198
    DROP all — 0.0.0.0/0 0.0.0.0/0 state INVALID
    ACCEPT all — 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
    ACCEPT all — 0.0.0.0/0 0.0.0.0/0
    ACCEPT all — 0.0.0.0/0 0.0.0.0/0

    Chain FORWARD (policy DROP)
    target prot opt source destination
    ACCEPT all — 0.0.0.0/0 224.0.0.0/4
    ACCEPT all — 0.0.0.0/0 0.0.0.0/0
    DROP all — 0.0.0.0/0 0.0.0.0/0 state INVALID
    TCPMSS tcp — 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU
    ACCEPT all — 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
    wanin all — 0.0.0.0/0 0.0.0.0/0
    wanout all — 0.0.0.0/0 0.0.0.0/0
    ACCEPT all — 0.0.0.0/0 0.0.0.0/0
    ACCEPT all — 0.0.0.0/0 0.0.0.0/0
    ACCEPT all — 0.0.0.0/0 0.0.0.0/0
    ACCEPT all — 0.0.0.0/0 0.0.0.0/0
    ACCEPT all — 217.0.119.0/24 0.0.0.0/0
    ACCEPT all — 193.158.34.0/23 0.0.0.0/0
    ACCEPT all — 87.141.147.0/24 0.0.0.0/0
    ACCEPT all — 217.6.167.0/24 0.0.0.0/0

    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination
    ACCEPT all — 0.0.0.0/0 0.0.0.0/0

    • Hallihallo.

      das liegt vermutlich an einem Bug in den Versionen >=53 von TomatoUSB. Wie dir `route -n` verraten wird (nicht haufenweise routen auf vlan8), werden die vom DHCP-Server aufs vlan8 versandten classless static routes nicht verarbeitet – dadurch gelangen irgendwelche Requests vom MR zwar durchaus zum igmpproxy und der erstellt auch entsprechende Routen in seiner Routingtabelle, Pakete werden aber nicht uebers vlan8-Interface geroutet, sondern ueber vlan7, wo sich niemand angesprochen fuehlt.

      Ich hatte teddy_bear (TomatoUSB Hauptentwickler) kurz nach Release von Build 54 dahingehend schon bescheid gesagt. Er war der Meinung, dass der Fehler eigentlich gar nicht auftreten sollte und hat nach Logs gefragt. Leider hab ich bislang keine Zeit/Elan gehabt, wild am Router rumzuflashen.

      Eine Loesung waere ein Rollback auf Version 52. Von 54->52 musste ich keinen NVRAM-Reset durchfuehren. Link:
      VPN: http://sourceforge.net/projects/tomatousb/files/Rotten/tomato-K26USB-1.28.9052MIPSR2-beta23-vpn3.6.rar/download
      STD: http://sourceforge.net/projects/tomatousb/files/Rotten/tomato-K26-1.28.9052MIPSR1-beta23-Std.rar/download

      Wenn du selbst dran tinkern willst, ist die aktuell beste Loesung wohl, ein DHCP-Event-Script zu schreiben, das die von udhcpc uebergebene staticroutes-Variable entsprechend verarbeitet. Du kannst z.B. in /tmp ein Script mit inhalt “env” erstellen und dann udhcpc -i vlan8 -s ./env.sh ausfuehren, dann siehst du wie die Variable aussieht. Mit ein wenig googlen solltest du dann auch ein 0815-DHCP-Script finden und es entsprechend anpassen koennen.

      • Hm, das hilft leider nur für den Unicast-Teil. Die Routen waren in der Tat nicht da, und als ich sie gesetzt habe, gingen die Sender für jeweils 5 Sekunden. Die Multicast-Pakete kommen weiterhin nicht an. Tomato 52 hat den Router leider gebrickt (komisch?), das will ich jetzt nicht nochmal probieren, bin froh dass das unbricken per USB-TTL-Kabel funktioniert hat. Was könnte Multicast sonst noch verhindern? Die Option “Allow Multicast” ist bei Tomato 54 scheinbar anders als in diesem Tutorial standardmäßig nicht aktiv, aber auch aktivieren + deaktivieren + Neustart brachte nichts. Was macht diese Option intern, vielleicht kann ich das ja mal verifizieren?

      • Huppsala. Hab dir oben die MIPSR1-std-Version gelinkt, die laeuft natuerlich auf dem WNR nicht. Probier doch mal die VPN-Version aus, das sollte laufen.

        “Allow Multicast” steuert (bilde ich mir zumindest ein) lediglich, ob der interne igmpproxy laeuft oder nicht. Moeglicherweise wird noch irgendeine iptables-Regel auf ne 224er-IP hinzugefuegt. Aber halt eben nichts, was schaden sollte, solange man es abstellt.

        Wie sahen denn deine vlan9-Routes aus? Hier mal exemplarisch meine aktuelle Routingtabelle (route -n):

        Kernel IP routing table
        Destination Gateway Genmask Flags Metric Ref Use Iface
        193.158.137.14 84.178.255.254 255.255.255.255 UGH 0 0 0 vlan8
        217.6.164.45 84.178.255.254 255.255.255.255 UGH 0 0 0 vlan8
        217.6.164.48 84.178.255.254 255.255.255.248 UG 0 0 0 vlan8
        217.6.167.128 84.178.255.254 255.255.255.192 UG 0 0 0 vlan8
        87.140.255.0 84.178.255.254 255.255.255.128 UG 0 0 0 vlan8
        212.184.168.0 84.178.255.254 255.255.255.0 UG 0 0 0 vlan8
        193.158.34.0 84.178.255.254 255.255.254.0 UG 0 0 0 vlan8
        84.178.192.0 0.0.0.0 255.255.192.0 U 0 0 0 vlan8
        87.141.128.0 84.178.255.254 255.255.128.0 UG 0 0 0 vlan8

      • Tatsache, mit Tomato 52 geht es wie beschrieben, vielen Dank für die Hilfe! Die Routen werden korrekt gesetzt, allerdings auch nicht anders, als ich sie gestern manuell hatte. Was man scheinbar auf jeden Fall nicht machen darf: im Router z.B. Google DNS einstellen, ohne dem Mediareceiver den normalen Telekom DNS zu geben (dhcp-option=iptv,6,217.0.43.65,217.0.43.81) – dann setzt das Bild auch nach 10 Sekunden aus. Womöglich war das gestern das Problem, ich weiß nicht, wie lange ich da den Telekom DNS benutzt habe.

  14. Hi Julian,
    wollte mich nur kurz für das HOWTO bedanken. Endlich kann ich mich wieder vom Speedport verabschieden und einen gescheiten Router verwenden 🙂
    Bei mir läuft das übrigens auch nur unter Tomato 52, mit Tomato 54 hatte ich das gleiche Unicast Problem wie Jonas.
    Nochmal many many THX 🙂
    Michi

  15. Hallo, ich hoffe Ihr könnt mir helfen, hab den Netgear 3500L mit dd-wrt bespielt und dann das pw auf: Admin und password geändert.

    Dann hab ich die Tomato k26 1.28.90 aufgespielt

    wenn ich jetzt auf den Router zugreifen will fragt er nach den PW aber ich komm mt den zugangsdaten admin und password nicht drauf.

    Könnt Ihr mir bitte helfen

    • das liegt vermutlich daran, dass dd-wrt das http-passwort im nvram hasht und tomato iirc nicht. dabei wird, soweit ich mich erinnere, die linux-crypt-funktion verwendet.

      probier doch hier mal den string als passwort aus, den er dir bei eingabe von “password” ausspuckt:

      http://www.functions-online.com/crypt.html

      wenn’s das nicht tut, probier den benutzernamen “root” – der ist glaube ich standard fuer tomato und kann nur umstaendlich geaendert werden.

      wenn das noch nicht funktioniert, probier noch md5 und und sha1 aus. ich hatte dasselbe problem auch schon, und die ersten zwei vorschlaege haben damals geholfen.

  16. ich hab allerdings noch ein anderes Problem,

    ich habe einen Samsung 40UE6710

    außerdem besitze ich einen Netgear WNR3500L welcher mit der Firmware Tomato 1.28 USB läuft. An diesem habe ich eine Samsung S1 Festplatte Fat32 formatiert angeschlossen.

    Mein Problem ist das ich über DLNA auf die Festplatte zugreifen kann, allerdings werden nicht alle Ordner (Filme) auf dem Samsung Fernseher angezeigt obwohl sich noch andere Ordner mit Filmen auf der Platte befinden.

    Wenn ich mit meinem Lappi auf die Platte zugreife zeigt er mir die Ordner alle wunderbar an.

    Habt Ihr ne Idee woran es liegen könnte?

  17. Hey,

    das Thema ist zwar schon etwas älter, aber bei mir hat sich seit einiger Zeit ein Problem ergeben. Vielleicht liest ja noch jemand mit.

    Ich habe die o.g. Konfiguration schon laufen, aber nach einer Zwangtrennung erkennt der Router manchmal nicht die ppp0-Adresse als WAN, sondern verwendet die des VLAN8. Das zeigt sich so, dass in der Overview im Webinterface die IP des VLAN8 steht, und auch in der Firewall-Konfiguration diese als WAN auftaucht.

    Folge ist, dass LAN problemlos funktioniert. Auch IPTV funktioniert, aber normaler Internetzugang ist nicht möglich.

    Hat jemand schon ein änhliches Problem gehabt (und gelöst)? Kann man dem Router erklären, welches Interface WAN ist?

    Danke schonmal im voraus!

  18. Diese Anleitung scheint mit neueren Tomato-Versionen nicht zu funktionieren. Ich habe es mit dem aktuellen Shibby- und Victek-Mod versucht – ohne Erfolg.
    Der Effekt ist, dass der Receiver kein Multicast empfängt (Bild friert nach ein paar Sekunden ein). Auch bleibt die Uhrzeit falsch.

    Kann jemand helfen, die Anleitung zu übertragen. Mein Wissen um Linux / Netzwerktechnik ist dazu bei weitem zu begrenzt.

  19. Wenn ich nach “VDSL telekom tomato” im Netz suche, so ist dieser Post die einzig wirklich hilfreiche Stelle, obwohl seit dem letzten Eintrag von Julian schon etwas Zeit vergangen ist!

    Ich habe den Netgear 3500L, allerdings in der Version v2, und mit dem neusten Shibby-Mod (112) versehen. Alles bestens, aber ich habe (leider 😉 einen VDSL-Anschluss.

    Zuerst habe ich versucht, das VLAN 7 über das VDSL GUI des Mods einzutragen, dabei musste ich den Router nach jedem Versuch per TTL-Kabel neu flashen. Ich denke, das GUI ist immer noch nicht 100% fertig. Die NVRAM Sequenz von oben hat auch nicht funktioniert.

    Deshalb frage ich einfach mal: Kann der Netgear 3500Lv2 überhaupt VDSL? Hat das schon jemand hin bekommen? Was muss ich tun?
    Hat es jemand schon geschafft, die Telekom-Anbindung über das Shibby VDSL GUI konfigurieren? Wie sieht der Eintrag aus?

    @Julian: EIn Update deines Blogs wäre super!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s