Schlagwort-Archive: openwrt

TL-MR3020 v1

Ich hatte hier im Schrank noch einen älteren TL-MR3020 v1 herumliegen, auf dem sich ein olles Image von Freifunk Stuttgart befand. Von dort (FF) erhielt er keine Updates mehr, so dass er irgendwann ausgemustert wurde. Heute hab ich ihn reaktiviert mit einem LEDE für den Einsatz auf der Straße.

Zuerst musste das alte Freifunk Image runter.

Einen Rechner mit einer IP aus dem Netz 192.168.x.100 /16 ausstatten (ich nehme gerne so eine Netzmaske, weil ich so leichter zwischen der IP der TPL-Stockfirmware und der IP eines Freifunk-APs wechseln kann)

Den MR3020 in den Wiederherstellungsmodus versetzen. Dazu beim Einstöpseln der Stromversorgung den WPS-Knopf gedrückt halten, bis der Router wild blinkt (ca. 5 Sekunden).

Dann via Telnet drauf verbinden

telnet 192.168.1.1

und sich Zugang via SSH verschaffen:

mount_root
passwd
dropbear
cd /tmp/

Vom Rechner aus das passende Image per SCP zum MR3020 übertragen

scp lede-17.01.5-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin root@192.168.1.1

und dieses dort Flashen:

sysupgrade -n lede-17.01.5-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin

Sollte die FF-Firmware neuer sein, als das zu flashende Image, hilft ein -F bei sysupgrade.

Der MR3020 braucht nun eine Zeit mit sich allein, in der die Stromversorgung nicht verloren gehen darf. Er sollte dann von sich aus neu booten und wieder unter 192.168.1.1 zu erreichen sein – jetzt allerdings auch im Browser per LuCI. Und in LuCI kann dann die restliche Konfiguration bequem vorgenommen werden.

Ich hab ihn mir so eingerichtet, dass er sich am verkabelten Interface per DHCP eine IP aus dem dann je lokalen Netz holt. Besonders brauchbar für den Außeneinsatz wird er, weil die MAC für dieses Interface händisch leicht gesetzt werden kann. Man besorgt sich vor Ort die MAC eines Rechners, stöpselt diesen aus und den MR3020 mit dessen MAC an – voila ist Netz für eigene Geräte da. Das geht in LuCI zügig:

  1. Network
  2. Interfaces
  3. Edit
  4. Advanced Settings
  5. Override MAC address
  6. Save & Apply

Literatur: MR3020, FF Reset

OpenWRT und VLAN

Den schulischen APs der Reihe nach beizubringen, dass sie nun VLAN können und dass

  • auf Grau der AP verwaltet wird und hierbei seine IP vom grauen DHCP erhält,
  • Blau unser öffentliches Netz ist (HotSpot Authentifizierung),
  • auf Pink irgendwann in ferner Zukunft das Lehrernetz gefunden werden soll (mit Radius-Auth – man darf ja noch träumen)
  • und in Grün das interne Netz für die Laptops läuft, die ihre IP vom Schulserver erhalten,

war die Aufgabe. Dies auf der Oberfläche eines jeden APs einzeln zusammen zu klicken dauert viel zu lange. Also kopiert man sich die Konfiguration von einem funktionierenden AP auf alle anderen, bootet diese insgesamt zwei mal neu und voila – es tut.

Erst einmal VLAN ermöglichen:

opkg install kmod-macvlan

Dann neu booten. Mit ifconfig angesehen soll es am Ende so aussehen:

    br-blue Link encap:Ethernet HWaddr 64:70:02:78:1D:5F
    inet6 addr: fd34:cf26:d77b::1/60 Scope:Global
    inet6 addr: fe80::6670:2ff:fe78:1d5f/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:100 errors:0 dropped:0 overruns:0 frame:0
    TX packets:166 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:9114 (8.9 KiB) TX bytes:14396 (14.0 KiB)

    br-green Link encap:Ethernet HWaddr 64:70:02:78:1D:5F
    inet6 addr: fd34:cf26:d77b:10::1/60 Scope:Global
    inet6 addr: fe80::6670:2ff:fe78:1d5f/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:2354 errors:0 dropped:0 overruns:0 frame:0
    TX packets:166 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:749902 (732.3 KiB) TX bytes:14396 (14.0 KiB)

    br-grey Link encap:Ethernet HWaddr 64:70:02:78:1D:5F
    inet addr:192.168.0.139 Bcast:192.168.0.255 Mask:255.255.255.0
    inet6 addr: fd34:cf26:d77b:20::1/60 Scope:Global
    inet6 addr: fe80::6670:2ff:fe78:1d5f/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:1847 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1689 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:175780 (171.6 KiB) TX bytes:431449 (421.3 KiB)

    br-pink Link encap:Ethernet HWaddr 64:70:02:78:1D:5F
    inet6 addr: fe80::6670:2ff:fe78:1d5f/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1773 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 B) TX bytes:574414 (560.9 KiB)

    eth0 Link encap:Ethernet HWaddr 64:70:02:78:1D:5F
    inet6 addr: fe80::6670:2ff:fe78:1d5f/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:9283 errors:0 dropped:167 overruns:0 frame:0
    TX packets:7976 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:1947524 (1.8 MiB) TX bytes:5061428 (4.8 MiB)
    Interrupt:4

    eth0.1 Link encap:Ethernet HWaddr 64:70:02:78:1D:5F
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:2335 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1729 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:211878 (206.9 KiB) TX bytes:434729 (424.5 KiB)

    eth0.2 Link encap:Ethernet HWaddr 64:70:02:78:1D:5F
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:4566 errors:0 dropped:0 overruns:0 frame:0
    TX packets:801 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:1141302 (1.0 MiB) TX bytes:80814 (78.9 KiB)

    eth0.3 Link encap:Ethernet HWaddr 64:70:02:78:1D:5F
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:2208 errors:0 dropped:0 overruns:0 frame:0
    TX packets:3708 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:410171 (400.5 KiB) TX bytes:3944129 (3.7 MiB)

    eth0.4 Link encap:Ethernet HWaddr 64:70:02:78:1D:5F
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1734 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 B) TX bytes:569420 (556.0 KiB)

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536 Metric:1
    RX packets:6 errors:0 dropped:0 overruns:0 frame:0
    TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:288 (288.0 B) TX bytes:288 (288.0 B)

    wlan0 Link encap:Ethernet HWaddr 64:70:02:78:1D:5F
    inet6 addr: fe80::6670:2ff:fe78:1d5f/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:595 errors:0 dropped:0 overruns:0 frame:0
    TX packets:2903 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:63160 (61.6 KiB) TX bytes:940426 (918.3 KiB)

    wlan0-1 Link encap:Ethernet HWaddr 66:70:02:78:1D:5F
    inet6 addr: fe80::6470:2ff:fe78:1d5f/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:3617 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1995 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:3938021 (3.7 MiB) TX bytes:460510 (449.7 KiB)

Einmal /etc/config/network anpassen:

    config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

    config globals 'globals'
    option ula_prefix 'fd34:cf26:d77b::/48'

    config interface 'grey'
    option ifname 'eth0.1'
    option type 'bridge'
    option proto 'dhcp'
    option ip6assign '60'

    config interface 'green'
    option ifname 'eth0.2'
    option type 'bridge'
    option ip6assign '60'

    config interface 'blue'
    option ifname 'eth0.3'
    option type 'bridge'
    option ip6assign '60'

    config interface 'pink'
    option ifname 'eth0.4'
    option type 'bridge'
    option proto 'dhcp'
    option ip6assign '60'

    config switch
    option name 'switch0'
    option reset '1'
    option enable_vlan '1'

    config switch_vlan
    option device 'switch0'
    option vlan '1'
    option vid '1
    option ports '0t 1t 2t 3t 4t 5t'

    config switch_vlan
    option device 'switch0'
    option vlan '2'
    option vid '2'
    option ports '0t 1t 2t 3t 4t 5t'

    config switch_vlan
    option device 'switch0'
    option vlan '3'
    option vid '3'
    option ports '0t 1t 2t 3t 4t 5t'

    config switch_vlan
    option device 'switch0'
    option vlan '4'
    option vid '4'
    option ports '0t 1t 2t 3t 4t 5t'

Und /etc/config/wireless anpassen:

    config wifi-device 'radio0'
    option type 'mac80211'
    option hwmode '11ng'
    option path 'platform/ath9k'
    list ht_capab 'SHORT-GI-40'
    list ht_capab 'DSSS_CCK-40'
    option country 'US'
    option txpower '27'
    option channel '4'

    config wifi-iface
    option device 'radio0'
    option network 'green'
    option mode 'ap'
    option ssid 'intern'
    option encryption 'psk2'
    option key 'geheim'

    config wifi-iface
    option device 'radio0'
    option mode 'ap'
    option encryption 'none'
    option ssid 'public'
    option network 'blue'

Die DNS Dienste auf dem AP wegwerfen, weil der DNS zentral läuft (auf Schulserver oder auf dem grauen Server für die Infrastruktur):

/etc/init.d/dnsmasq stop
killall dnsmasq # nur zur Sicherheit
/etc/init.d/dnsmasq disable

Dann noch einmal neu booten und vor Ort testen, nachdem man die VLAN Einstellungen auch auf den Switches so angepasst hat, dass man seinen AP wieder findet.

WDR4900 WAF=0

wdr4900_leds

Oha. Der WAF beim TPLink WDR4900 ist sehr, sehr niedrig. Das liegt vor allem an den grell blauen LEDs des Geräts und dessen Unsitte auf dem Uplink dauernd zu blinken.

Zwar bietet OpenWrt theoretisch die Möglichkeit, die LEDs zu steuern – aber eben nur die, die vom System auch erkannt werden.

An vier von den blauen Dingern komm ich ran (und dann wären da noch zwei grüne für USB Aktivitäten) – aber eben nicht an die LEDs des Switches.

Jetzt hilft nur noch schwarzes Isolierband 🙁

wdr4900_leds [ODT] [180 kb]

wdr4900_leds [PDF] [180 kb]

OpenWRT auf TL-WDR4900 N900

Im Prinzip läuft bei der Installation von OpenWRT auf dem TPLink WDR4900 alles wie gewohnt: einfach rund.

Leider fällt bei diesem Router aber beim OpenWRT Release Barrier Breaker der Aufruf des Web-Interfaces Luci auf die Nase und meldet:

/usr/lib/lua/luci/dispatcher.lua:284: No valid theme found

Bei mir lag das daran, dass das Default Theme nicht installiert war, weil ich mir gleich das Paket luci-theme-bootstrap gezogen hatte.

Ein

opkg install luci-theme-openwrt

schafft Abhilfe.

Das Theme Bootstrap (svn-r9934-1) lässt sich aber bei mir auch im Anschluss hieran nicht aktivieren. In Luci wird es nicht einmal als Auswahlmöglichkeit angezeigt.

Resetting TP-Link TL-MR3020

… war wohl nix. Meine Anleitung von vorgestern zu OpenWRT auf dem kleinen Kästchen enthielt einen kleinen, aber tödlichen Fehler, den ich inzwischen behoben habe. Hierbei durfte ich dann gleich mal kennen lernen, wie man einen total verzockten MR3020 in den Auslieferungszustand zurücksetzt, wen OpenWRT installiert ist.

openwrt_reset

Ein

tcpdump -Ani eth0 port 4919 and udp

liefert auf dem Gerätchen schlicht … nix. So ist es etwas schwer, den richtigen Zeitpunkt abzupassen, an dem man den Geräteschalter drückt, um den MR3020 in den failsafe Modus zu versetzen.

Was aber half war ein ca. 60 sekündiges Dauergeklicke auf dem einzig vorhandenem Schalter nach einem Reboot durch Ziehen das Stromkabels. Man kann sich dann mit telnet wieder anmelden, mountet das Dateisystem und setzt das Ding wie in der oben verlinkten Anleitung zurück.

OpenWRT auf TP-Link TL-MR3020

Für die freien Tage musste was zum Spielen ins Haus: ein TP-Link TL-MR3020 für rund 30€. Die Installation von OpenWRT gelingt nach Anleitung über die Browseroberfläche ohne Probleme. Nach zwei Reboots kann man sich über telnet einloggen und ein Passwort für root setzen. Telnet ist damit deaktiviert – in Zukunft kommt man über SSH auf den MR3020. Ein

opkg –help

zeigt die wichtigsten Befehle der Paketverwaltung an und die folgenden Befehle ziehen eine SSL verschlüsselte Browseroberfläche für die Konfiguration des Routers an Bord (und ein etwas hübscheres Design sowie deutsche Sprachpakete für dieselbe gleich mit):

opkg update

opkg install luci-theme-bootstrap

opkg install luci-i18n-german

opkg install luci-ssl

/etc/init.d/uhttpd restart

/etc/init.d/uhttpd enable

openwrt

Inzwischen habe ich zwei WLAN Netze auf dem kleinen Kästchen laufen – eines für Geräte, die in mein Heimnetz dürfen und dann ihre IP vom DHCP auf meiner Smoothwall erhalten (oben LAN genannt) und ein Netz für Gäste, an die der TPLink die IPs verteilt.

Dabei erhält der MR3020 die IP immer vom DHCP des Netzes, an das ich ihn stecke – hier im Heimnetz also vom DHCP auf der Smoothwall. Das ist für Netzwerker sicherlich eine grausige Vorstellung: Ein Router, der seine IP nicht statisch gesetzt bekommt, sondern vom DHCP erhält 🙁 Das hat für mich aber einen Vorteil, zu dem ich am Ende noch komme.

Im Hinterkopf zu behalten ist, dass mein Heimnetz nur rot und grün kennt. Ein dezidiertes blaues Netz für WLAN existiert hier nicht. Alle AccessPoints hängen demnach bei mir im grünen Netz.

Anyway: Aufgefallen ist mir bei der Fummelei, dass diese Anleitung bei OpenWRT bei mir nicht richtig passen wollte und an einigen Stellen verändert werden musste. Zu diesen Änderungen:

owrt_drahtlos

Zuerst wird eine neue WLAN Schnittstelle (hier: bdjl_guest) eingerichtet, die lediglich die WLAN Schnittstelle des Routers beinhaltet.

Das geht am schnellsten über /Netzwerk /Drahtlos /Hinzufügen.

owrt_schnittstellen

Dann wird der neuen WLAN Schnittstelle eine statische IP verpasst und der DHCP Server auf dieser aktiviert. Die entsprechenden Funktionen befinden sich unter /Netzwerk /Schnittstellen und dort nach einem Klick auf /Bearbeiten.

Schon hier kann man in den erweiterten Einstellungen dieser Schnittstelle eine eigene Firewall-Zone zuweisen – was ich tat.

owrt_zonen

Unter /Netzwerk /Firewall findet sich die Zone wieder – verweist aber zuerst auf REJECT. Hier muss der neuen Zone die Weiterleitung auf WAN zugeordnet werden, was über den Schalter /Bearbeiten möglich ist.

owrt_nat

Unter /Netzwerk /Firewall /Verkehrsregeln wird dann von der Gast-WLAN-Schnittstelle auf ETH0 (also LAN) ge-NAT-et.

Ausbruchsicher ist das evtl. nicht – selbst wenn Fing keine Geräte aus meinem Heimnetz findet. Aber – hey – es ist ein Gastnetz für meine Bude. Die Menschen sitzen dann auf meinem Sofa. Innenverteidigung ist meine Sache nicht und die Vorteile bleiben bestehen:

Ich erspare mir in Zukunft die lästige Aufnahme der MAC Adressen von Gastgeräten und viel Gefummel mit der Smoothwall, wenn Besuch kommt und mit dem eigenen Gerät nur online gehen will.

Außerdem müsste – das muss ich aber noch testen – mein TPLink auch in fremden Netzen funktionieren: Einstöpseln … und er erhält vom DHCP Server des fremden Netzes (in meinem Fall z.B. das Schulnetz) eine IP. Auf dem einen WLAN, das er aufzieht, kann ich dann so ins lokale Netz, als wäre ich mit meinem Laptop direkt angemeldet. Der TPLink benimmt sich wie ein AccessPoint. Auf dem anderen WLAN, dem WLAN für Gäste, kommt jeder Client rein, dem ich den WPA2 Key der kleinen Büchse mitteile … und taucht im internen Netz garnicht auf. Und da sich die MAC Adresse von eth0 leicht ändern lässt, kann man sich in fremden Netzen auch mal eine „leihen“ 😉