VDSL-Modem unter Linux
Vorbereitung
Gleich eines vornweg: Durch die hier geschilderte Vorgehensweise geht man nicht nur des Supportanspruchs, sondern sehr wahrscheinlich auch die Garantie auf die Geräte verlustig. Also alles auf eigene Gefahr!
Idealerweise sollte man die meisten Schritte erledigen, bevor die VDSL-Verbindung geschaltet wird, da man sonst womöglich keinen Internetzugang mehr hat, um an die nötigen Programme zu kommen.
Vorgehensweise
Punkt 1 ist der Router, meist ein W700/701V oder W900V. Die genaue Vorgehensweise zum Austausch der Firmware hat Spirou im IP-Phone-Forum haarklein dargestellt, das dazugehörige Wiki inklusive des Links auf den Forenthread findet sich im IP-Phone-Forum. Die Firmware findet man auf den Seiten der Hersteller (AVM) und bei T-Home (Hilfe & Service/Downloads) oder bei Google, besonders die älteren Versionen.
Punkt 2 ist der Media Receiver. Da gibt es nicht viel zu machen, nur die Mac-Adresse (steht unten drauf) in die Datei dhcpd.conf eintragen, denn man kann ihm keine statische zuteilen und ohne Verbindung fährt er nicht einmal hoch (M$ eben) (zumindest diesen Punkt hätte man im Handbuch erwähnen sollen).
Punkt 3 ist das Modem, hier gibt es nichts zu tun. Wen es interessiert, im Onlinekosten-Forum ist beschrieben, wie man die Weboberfläche des ebenfalls Linux-basierten Gerätes aktiviert und dort verschiedene Statusdaten abfragen kann.
Punkt 4 ist dann die Umstellung der bisherigen Einwahl via PPPoE von ADSL auf VDSL. Die Grundzüge dafür sind sehr gut auf claus.freakempire.de beschrieben, bis auf eine Kleinigkeit: Die MTU/MRU-Größe muss auf 1476 anstatt 1492 geändert werden, da die 16 Byte anscheinend für die VLAN-Schicht draufgehen. Bei Suse kommt nicht vconfig
zum Einsatz, sondern die VLAN-Unterstützung ist direkt eingebaut. Siehe auch »info ifcfg-vlan
«.
Details
Im Einzelnen sieht es so aus: Bisherige Konfiguration in /etc/sysconfig/network/ifcfg-dsl0:
BOOTPROTO='none' DEVICE='eth-id-00:00:00:00:00:00' MODEM_IP='192.168.2.50' PPPD_OPTIONS='' PPPMODE='pppoe' PROVIDER='tonline-dsl' STARTMODE='manual' UNIQUE='' USERCONTROL='no' NAME='ADSL-Verbindung' MTU='1492' MRU='1492' REMOTE_IPADDR=''
Wird in diese geändert (empfehlenswert ist, den Startmodus auf Automatik zu setzen, VDSL gibt es ohnehin nur mit Flatrate):
BOOTPROTO='none' DEVICE='vlan7' MODEM_IP='192.168.2.50' PPPD_OPTIONS='' PPPMODE='pppoe' PROVIDER='tonline-dsl' STARTMODE='auto' UNIQUE='' USERCONTROL='no' VPIVCI='1/32' NAME='VDSL-Verbindung' MTU='1476' MRU='1476' REMOTE_IPADDR='' POST_UP_SCRIPT='start-igmpproxy' PRE_DOWN_SCRIPT='stop-igmpproxy'
Dazu kommt noch ein neues, virtuelles VLAN-Interface unter /etc/sysconfig/network/ifcfg-vlan7. Dafür ist das Paket vlan nötig, das sich im Suse-Repository findet. Das Modul 8021q sollte normalerweise automatisch geladen werden. Falls nicht, einfach modprobe 8021q
an die Datei /etc/init.d/boot.local anhängen. Was man für das Interface genau einträgt und welche Daten wirklich gebraucht werden und welche nicht, weiß ich nicht. Aber es scheint relativ egal zu sein, solange es an die Netzwerkkarte gebunden ist, an der das Modem hängt und die VLAN-ID 7 hat. Wichtig ist nur, dass es automatisch gestartet wird, damit es zur Einwahl auch verfügbar ist.
BOOTPROTO='none' STARTMODE='auto' ETHERDEVICE='eth-id-00:00:00:00:00:00' NAME='VLAN-Verbindung fuer VDSL' IPADDR='192.168.1.60/24' NETMASK='255.255.255.0' NETWORK='192.168.1.0' BROADCAST='192.168.1.255' REMOTE_IPADDR='192.168.2.50' UNIQUE='rBUF.IPwRm6bNMRD' USERCONTROL='no' _nm_name='bus-pci-0000:00:00.0' PREFIXLEN='24'
In der Datei /etc/ppp/options muss ebenfalls noch die MTU/MRU und noch ein paar andere Einstellungen geändert werden. Zuerst aber die bestehenden evtl. gegenteiligen suchen und auskommentieren. Die letzten beiden Zeilen kann man, wenn dann alles funktioniert, auch wieder herausnehmen, sie dienen nur der Fehlersuche. Das maxfail 5
schützt gegen versehentlich geänderte Zugangsdaten/Passwort, da der Zugang erst nach 9 Fehleingaben gesperrt wird.
passive persist nolock maxfail 5 mtu 1476 mru 1476 debug kdebug 7
So, ab jetzt sollte die Einwahl via VDSL mit ifup dsl0
bzw. bei einem ausgehenden Paket funktionieren.
Punkt 5 ist, den Media Receiver zum Laufen zu bekommen. Der in obigem Blog genannte IGMP-Proxy ist dafür zwingend notwendig. Statt des üblichen Dreisatzes direkt das Makefile bearbeiten und dann mit checkconfig
ein Paket erstellen und installieren. Die Broadcast-Regeln finden sich in der Datei /etc/igmpproxy.conf, eine kommentierte Vorlage wird mit installiert. Dies sind die nötigen Einstellungen (die erste Netzwerkkarte ist das Interface zum internen Netz, die zweite jene, an der das Modem hängt):
quickleave phyint dsl0 upstream ratelimit 0 threshold 1 altnet 217.0.119.0/24 altnet 193.158.35.0/24 altnet 239.35.0.0/16 phyint eth-id-00:00:00:00:00:00 downstream ratelimit 0 threshold 1 altnet x300t/32 phyint eth-id-00:00:00:00:00:00 disabled phyint vlan7 disabled phyint lo disabled
Als letztes braucht es noch ein kleines Skript in /etc/sysconfig/network/scripts/start-igmpproxy, das die IPTables-Regeln setzt und danach den Proxy startet:
#!/bin/bash iptables -I FORWARD -s 217.0.119.0/24 -d 224.0.0.0/4 -j ACCEPT iptables -I FORWARD -s 193.158.35.0/24 -d 224.0.0.0/4 -j ACCEPT iptables -I FORWARD -s 239.35.0.0/16 -d 224.0.0.0/4 -j ACCEPT iptables -I INPUT -d 224.0.0.0/4 -j ACCEPT iptables -I FORWARD -d 224.0.0.0/4 -j ACCEPT igmpproxy &
Gestartet wird es dank obigem Eintrag, nachdem die Verbindung steht. Der Proxy muss aber auch wieder beendet werden. Dafür reichen zwei Zeilen in /etc/sysconfig/network/scripts/stop-igmpproxy:
#!/bin/bash killall igmpproxy
Schaltet man den Media Receiver nun an, sollte er sich problemlos verbinden und dem Fernsehen steht nichts mehr im Weg.
Punkt 6 ist die Konfiguration der Firewall, zu finden unter /etc/sysconfig/SuSEfirewall2. Die meisten Einstellungen ändern sich im Vergleich zu einer ADSL-Verbindung nicht, außer was Broadcasts und den Upstream betrifft. Nur die wichtigsten sind aufgeführt, alle anderen können bleiben. Unbedingt die Netzwerkkarte, an der das Modem hängt, sowie das VLAN-Interface als extern definieren oder wenigstens in die DMZ stecken, da diese bei Wartungs- und Entstörarbeiten durchaus auch »rückwärts« vom DSLAM aus genutzt werden können (auch wenn das Modem nicht im Wartungsmodus ist). Die Konfiguration hier ist nicht für sicherheitskritische Anwendungen zu empfehlen, da alle Hosts im internen Netz durch Masquerading unbeschränkten Zugriff zum Internet erhalten. Besser ist es, ausschließlich Proxys zu verwenden, aber nun ja...
FW_DEV_EXT="dsl0 vlan7 eth-id-00:00:00:00:00:00" FW_DEV_INT="eth-id-00:00:00:00:00:00" FW_ROUTE="yes" FW_MASQUERADE="yes" FW_MASQ_DEV="dsl0" FW_MASQ_NETS="0/0" FW_ALLOW_FW_BROADCAST_EXT="yes" FW_ALLOW_FW_BROADCAST_INT="yes" FW_IGNORE_FW_BROADCAST_EXT="yes" FW_IGNORE_FW_BROADCAST_INT="yes" FW_HTB_TUNE_DEV="dsl0,9500"
Die letzte Einstellung begrenzt den Upstream auf 5% unter das Maximum. Der genaue Wert hängt aber stark von der jeweiligen Nutzung ab.