Liebe Leute,
ich habe mich die letzte Woche mit der Konfiguration meines neuen Routers herumgeärgert. Im Internet habe ich auch immer nur Fragmente von Hilfestellungen gefunden, daher habe ich mich entschlossen ein HOWTO zu schreiben, so dass andere schneller als ich zum Erfolg kommen.
Der Anfang:
Da ich mir vor kurzen einen NAS zugelegt habe, war ich mit meinem Speedport, der nur 100MBit-Lan schafft, nicht mehr zufrieden. Also musste eine Alternative her.
Für folgende Gerätekombination habe ich mich entschieden:
- Router: TP-Link TL-WR1043ND (GigaBit-Lan, 300MBit-WLan, allerdings kein internes Modem)
- Modem: Arcor dsl-Speed-Modem 200 (der alte Speedport im Modem-Modus (NAT deaktiviert) geht auch)
- Internet-Leitung: DSL 16000 (langsamstes Entertain der Telekom, also kein VDSL)
Vorteile gegenüber des Speedports: VIEL billiger, VIEL flexibler und VIEL cooler, da VIEL nerdiger.
Ziel: Eigentlich klar: Router für Telekoms IPTV, also Entertain konfiguerieren.
Vorweg: Bevor ich den Router eingerichtet habe, hatte ich im Prinzip keine Ahnung von Netzwerkkonfiguration. Ich hatte ein Halbwissen über IP-Protokoll und Subnetze (ist eigentlich schon übertrieben, wusste nur, dass ein Host eine IP-Adresse hat über die er irgendwie im Netz erreichbar ist).
Nun: Ich bin etwas schlauer geworden, bin aber immer noch ziemlicher Netzwerk-Noob. Sollten hier daher irgendwelche fachlichen Unkorrektheiten auftauchen, bitte korrigiert mich!
Problem: Die Telekom bietet den normalen Internet-Traffic über das VLAN7 an, während die IPTV-Multicast-Pakete über VLAN8 gesendet werden.
Kurze Begriff-Lehre:
- VLAN: Ein Virtual Local Area Network (VLAN) ist ein logisches Teilnetz innerhalb eines Switches oder eines gesamten physischen Netzwerks. Es kann sich über einen oder mehrere Switches hinweg ausdehnen. Ein VLAN trennt physische Netze in Teilnetze auf, indem es dafür sorgt, dass VLAN-fähige Switches die Frames (Datenpakete) eines VLANs nicht in ein anderes VLAN weiterleiten und das, obwohl die Teilnetze an gemeinsame Switches angeschlossen sein können.
- Multicast: Multicast bezeichnet in der Telekommunikation eine Nachrichtenübertragung von einem Punkt zu einer Gruppe (auch Mehrpunktverbindung genannt). Der Vorteil von Multicast besteht darin, dass gleichzeitig Nachrichten an mehrere Teilnehmer oder an eine geschlossene Teilnehmergruppe übertragen werden können, ohne dass sich beim Sender die Bandbreite mit der Zahl der Empfänger multipliziert. Der Sender braucht beim Multicasting nur die gleiche Bandbreite wie ein einzelner Empfänger. Handelt es sich um paketorientierte Datenübertragung, findet die Vervielfältigung der Pakete an jedem Verteiler (Switch, Router) auf der Route statt.
Eine WARNUNG noch vorweg:
Bevor ihr hier loslegt, sollte euch klar sein, dass openWRT extrem frei ist in seinen Möglichkeiten. Das bring aber mit sich, dass es auch nicht gerade einfach ist sich dort einzuarbeiten. Linux-Kentnisse sind schonmal von Vorteil (aber vorher nicht zwingend nötig, dann ist aber folgendes umso wichtiger) und vor allem der Wille/die Bereitschaft sich einiges anzulesen. Dem Casual-User, der einfach nur das Lan-Kabel einstecken und loslegen will, sollte lieber die Finger davon lassen.
UND: Die Links beziehen sich, falls sie gerätespezifisch sind, auf den TL-WR1043ND.
Los geht's:
1. Richtet mit der OriginalTP-Link-Firmware euren Internet-Zugang ein: Benutzername setzt sich so zusammen:
[email protected]
(einfach die Nummern hintereinander weg eingeben, Suffix sollte 0001 sein)
2. Ladet euch die openWRT-Firmware: Momentaner Direkt-Link (für WR1043ND). Schaut euch aber lieber auf openWRT um, lest euch dort ein wenig ein. Hier Infos zum WR1043ND.
3. openWRT-Firmware flashen: Router per LAN-Kabel (wichtig: keine Wifi-Verbindung zum flashen) mit PC verbinden. Nutzt einfach die Firmware-Upgrade-Funktion der Original-Firmware (alles hier nachzulesen).
4. erster login: Ich bevorzuge die Konfiguration per telnet/ssh (ist aber auch per Web-Interface möglich). Lasst eure Netzwerkkarte die IP automatisch beziehen. Benutzt irgendeinen telnet-client (z.B. PuTTY) und loggt euch bei 192.168.1.1 ein (Standard IP des Routers mit openWRT). Setzt mit 'passwd' ein neues Passwort und beendet die Session mit 'exit'.
5. loggt euch jetzt per ssh (auch mit PuTTY möglich) wieder beim Router ein. Benutzername: 'root', Passwort: vorher gesetztes.
6. switches/network/interfaces einrichten (siehe auch die Links links): geht ins Verzeichnis '/etc/config' ('cd' = Change Dir), öffnet die Datei 'network' z.B. per 'vi network' (Benutzung des Editors vi: klick. Kurz: zum edit-Modus mit 'I', zurück mit ESC, Zum speicherm ':x' - ENTER (nicht im edit-Modus)), konfiguriert sie in etwa so:
config 'interface' 'loopback'
option 'ifname' 'lo'
option 'proto' 'static'
option 'ipaddr' '127.0.0.1'
option 'netmask' '255.0.0.0'
config 'interface' 'lan'
option 'ifname' 'eth0.1'
option 'type' 'bridge'
option 'proto' 'static'
option 'ipaddr' '192.168.1.1'
option 'netmask' '255.255.255.0'
config 'interface' 'iptv'
option 'ifname' 'eth0.2'
option 'type' 'bridge'
option 'proto' 'static'
option 'ipaddr' '192.168.2.1'
option 'netmask' '255.255.255.0'
config 'interface' 'wan'
option 'ifname' 'eth0.7'
option 'proto' 'pppoe'
option 'username' '[email protected]'
option 'password' 'YYY'
option 'keepalive' '10'
config 'interface' 'wan_vlan8'
option 'ifname' 'eth0.8'
option 'proto' 'dhcp'
config 'switch'
option 'name' 'rtl8366rb'
option 'reset' '1'
option 'enable_vlan' '1'
config 'switch_vlan'
option 'device' 'rtl8366rb'
option 'vlan' '1'
option 'ports' '1 2 3 5t'
config 'switch_vlan'
option 'device' 'rtl8366rb'
option 'vlan' '2'
option 'ports' '4 5t'
config 'switch_vlan'
option 'device' 'rtl8366rb'
option 'vlan' '7'
option 'ports' '0t 5t'
config 'switch_vlan'
option 'device' 'rtl8366rb'
option 'vlan' '8'
option 'ports' '0t 5t'
Ihr müsst nicht unbedingt das VLAN2 einrichten, das von den externen Ports nur den 4ten beinhaltet, an dem ich meinen Media Receiver hängen habe. Ich habe es so eingerichtet, um den Media Receiver on meinem restlichen Netz zu isolieren. Alternativ könnt ihr Port 4 mit ins VLAN1 aufnehmen und das VLAN2 rausschmeißen samt dem interface iptv, das dann ebenfalls überfüssig ist.
Nach einem network-restart '/etc/init.d/network restart' solltet ihr nun ins Internet kommen (dass das Modem an WAN-Port (der in der network-config-Datei mit 0 bezeichnet wird) des Routers hängt sollte nicht erwähnt werden müssen)
7. Falls Ihr ebenfalls den Media Receiver durch einrichten eines zusätzlichen VLANs (siehe Punkt 6; ich nutze das VLAN2) vom restlichen Netzwerk isoliert habt, so bracht dieses seperate Netz noch einen DHCP-Server, damit der Media Receiver auch eine IP bezieht.
Editiert dazu die Datei 'etc/config/dhcp' und fügt ihr die folgenden Zeilen hinzu:
config dhcp iptv
option interface iptv #hier gehört natürlich obiges Interface hin (Punkt 6)
option start 100
option limit 150
option leasetime 12h
8. installiert euch den deamon igmpproxy (z.B. mit dem WebInterface 'LuCI' (192.168.1.1)) oder mit der Shell per 'opkg install http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/igmpproxy_0.1-2_ar71xx.ipk'. Siehe dazu auch hier. Ein Blick ins Package-Verzeihnis sollte euch nochmal verdeutlichen WIE FLEXIBEL openWRT anpassbar ist.
9. richtet igmpproxy ein: in die Datei '/etc/igmpproxy.conf' gehört folgendes:
quickleave
phyint eth0.8 upstream ratelimit 0 threshold 1
altnet 217.0.119.0/24
altnet 193.158.35.0/24
altnet 239.35.0.0/16
altnet 192.168.2.177/24 # hier die IP eures Media-Receivers
phyint br-iptv downstream ratelimit 0 threshold 1 # falls MR nicht isoliert (siehe Punkt 6) wurde hier br-lan
phyint br-lan disabled
phyint pppoe-wan disabled
Kurze Begriffs-Lehre:
- IGMP: Das Internet Group Management Protocol (IGMP) ist ein Netzwerkprotokoll der Internetprotokollfamilie und dient zur Organisation von Multicast-Gruppen. IGMP benutzt wie ICMP das Internet Protocol (IP) und ist Bestandteil von IP auf allen Hosts, die den Empfang von IP-Multicasts unterstützen.
Hier geht's also nur um die Organisation der Multicast Gruppen (wenn ich es ruchtig verstehe also um Dinge wie Anmelden und Abmelden). Die Multicast-Daten-Pakete selbst werden über das UDP-Protokoll versendet.
Mit '/etc/init.d/igmpproxy start' wird igmpproxy gestartet. Bei jedem Systemstart sollte er gestartet werden wenn man '/etc/init.d/igmpproxy enable' eingibt.
10. firewall einrichten: öffnet '/etc/config/firewall' und fügt folgendes hinzu
config zone
option name wan_iptv
option network 'wan_vlan8'
option input REJECT
option output ACCEPT
option forward REJECT
option masq 1
option log 1
config forwarding
option src lan
option dest wan_iptv
config rule
option name Allow-DHCP-Renew-iptv
option src wan_iptv
option proto udp
option dest_port 68
option target ACCEPT
option family ipv4
config rule
option name Allow-Ping-iptv
option src wan_iptv
option proto icmp
option icmp_type echo-request
option family ipv4
option target ACCEPT
config rule
option name Allow-DHCPv6-iptv
option src wan_iptv
option proto udp
option src_ip fe80::/10
option src_port 547
option dest_ip fe80::/10
option dest_port 546
option family ipv6
option target ACCEPT
### IPTV Konfigurationen - Start
config rule
option src wan_iptv
option proto igmp
option target ACCEPT
config rule
option src wan_iptv
option proto udp
option dest lan
option dest_ip 224.0.0.0/4
option target ACCEPT
### IPTV Konfigurationen - Ende
Ich habe eine neue Zone, da ich die unteren Forward-Regeln nicht für das "normale" WAN Interface haben will.
Zum besseren Verständnis der firewall, die auf netfilter und iptables basiert, siehe auch hier und hier.
Firewall mit '/etc/init.d/firewall restart' neu starten und alles sollte laufen!
Noch ausstehend: Quality of Service ist noch nicht eingerichtet. Evtl. beschäftige ich mich damit in den nächsten Tagen. Falls jemand schon QoS für Entertain eingerichtet hat wäre ich für Tips dankbar-.
Auch sonstige Ergänzungenund Korrekturen sind wilkommen.
Viel Spaß!
_Lappen_ (6) 2x "Danke"
|