Meinen derzeitigen WLAN Access Point TL-WA901ND habe ich damals angeschafft, weil er billig war, und auf der Verpackung Multi SSID, 802.1X (WPA2-EAP), sowie VLAN beworbene Features waren. Das war zwar nicht gelogen, dennoch gibt es nicht erwähnte Einschränkungen. So ist es nicht möglich im Multi SSID Modus (verschiedene logische WLAN Netze auf einem Gerät) die radius basierte Authentifizierung 802.1X zu verwenden, sondern lediglich max. 4 unterschiedliche preshared keys (PSK). Ausserdem bricht das Gerät mit der Originalfirmware unter Last – insbesondere bei vielen verbundenen Clients – extrem in Punkto Performance ein.
Voraussetzungen:
- Serial TTL Wandler z. B. auch mit USB Anschluß möglich
- minimale Lötkenntnisse
- 4er Stiftleiste zum Auflöten auf dem Board des Access Points
- serielles Konsolenprogramm auf dem Rechner
- TFTP Server zum Holen der Firmwaredatei
Da das Flashen des nahezu identischen Geräts in der warpzone bereits einen großen Performancegewinn beschert hat, hab ich dieses Projekt auch für meinen in Angriff genommen. Bei lediglich 4MB Flash-Speicher sollte man tunlichst den squashfs Build nehmen und nicht das jffs2 Derivat, da einem sonst beim Ablauf der Postinstallskripte der Speicherplatz ausgeht. Für mein Gerät mit Hardware Rev. v1.04 ist also dieses OpenWRT 12.09-beta (Attitude Adjustment) Image zu verwenden.
- WLAN AP auf dem Seziertisch
- wlan – Startup – LuCI
- wlan – Overview – LuCI
- wlan – Network – Interfaces
Vorbereitungen für das Flashen:
Zwar wäre es möglich gewesen bei dieser Hardwareversion das Image über die Firmwarupdatefunktion der Originalsoftware einzuspielen, doch dann hätte ich im Fehlerfall nicht sehen können, ob und was schiefgelaufen ist, also musste ich erstmal 4 Pin-Header für die serielle Schnittstelle auf das Mainboard auflöten, wobei die Belegung wie bei TP-Link typisch die Folgende ist: RX – TX – GND – +3.3V (Strombuchse).
Zum Anschluß an einen Computer benötigt man zwingend einen seriellen TTL Adapter, der mit 3,3V kommuniziert, eine normale RS-232 Schnittstelle vom PC arbeitet mit 12V, was das Gerät mit Sicherheit grillen würde. Mit den Einstellungen 115200 baud, 8bits, keine Flußkontrolle und einem Stopbit, kann man dem Gerät nun beim Booten auf die Konsole schauen. Unter Linux verwende ich dafür entweder screen oder das grafische GTKTerm, unter Windows auch gerne putty.
Außerdem benötigen wir einen TFTP Server, der uns das OpenWRT Image über das Netzwerk ausliefert, wenn wir es anfordern. Ich nutze dazu den entsprechenden Dienst meines FreeNAS Storages, tftpd-hpa, dnsmasq oder etwas Vergleichbares werden es aber ebenso tun. Pro-Tipp: Das Image umbenennen, damit man den langen Dateinamen auf der Konsole nicht tippen muss
OpenWRT auf das Gerät bringen:
Ist das Gerät bereit, das Terminal läuft und die Verbindung steht, kann man Netzwerkkabel und Stromstecker einstecken und sollte den Durchlauf des uBoot Bootloaders sehen. Es gibt einen Zeitpunkt vor dem Laden des Kernels, an dem man ca 1 Sekunde Zeit hat, durch tippen von “tpl” den Startvorgang abzubrechen und auf den Prompt des Bootloaders zu gelangen. Das gelingt vermutlich erst nach ein paar Versuchen
Hat man es dennoch geschafft, kann man die IP- Adresse des Geräts und die des Rechners mit dem TFTP Server angeben.
setenv ipaddr a.b.c.d setenv serverip e.f.g.h
Nun wird das OpenWRT Image vom Server in den RAM geladen, der Flash-Speicher gelöscht und anschließend das neue Image aufgespielt.
tftpboot 0x80000000 openwrt-ar71xx-tl-wa901nd-squashfs-factory.bin erase 0x9f020000 +0x3c0000 cp.b 0x80000000 0x9f020000 0x3c0000
Hat dies ohne Anzeichen von Fehlern geklappt, kann man jetzt den Bootvorgang anwerfen:
bootm 0x9f020000
Der erste Start dauert noch ein wenig länger, da der verbleibende Speicher auf dem Flashbaustein mit einem jffs2 overlay Dateisystem formatiert wird, danach kann man das Gerät mit Telnet, SSH und über das Webinterface auf der IP-Adresse 192.168.1.1
Um, das Interface für das unvertraute Gäste VLAN zu erstellen, habe ich keine Möglichkeit im LUCI (Webinterface) oder UCI (Konsolenconfigprogramm) gefunden, dafür habe ich mir kurzerhand ein kleines Initscript geschrieben, das mir das Interface beim Booten hochzieht:
| Bash | | copy code | | ? |
| 1 | #!/bin/sh /etc/rc.common |
| 2 | START=99 |
| 3 | start(){ |
| 4 | vconfig add eth0 255 |
| 5 | } |
| 6 | |
| 7 | stop(){ |
| 8 | vconfig rem vlan255 |
| 9 | } |
| Bash | | copy code | | ? |
| 1 | <span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;">Das Script muss natürlich ausführbar sein, root gehören und kann dann im Webif aktiviert werden. Dann hat man im Interfaces Menü auch direkt die Möglichkeit, das Interface zu verwerden und Zonen zuzuordnen.</span> |
Fazit
Durch den Einsatz der OpenWRT Software ist alles aufgegangen, was ich mir von dem Stunt erwartet habe, ich habe eine WLAN SSID, die mit 802.1X Authentifizierung auf das vertraute VLAN gebridged ist und ein weiteres nur mit WPA2-PSK gesichertes, das in das unvertraute Gäste VLAN gesteckt wird, zudem hab ich Durchsatzraten über WLAN wie noch nie zuvor mit dem Gerät erreicht (bis zu 83Mbit/s Realdurchsatz mit einem Gerät, das nur WLAN-N 150 beherrscht) und die Performance bricht bei vielen Clients kein bisschem mehr ein. #win!





16. November 2012 um 17:43 Uhr
Hi Commander,
Danke für die Info. Stoße bei meinem WRT350nv2 auch auf das gleiche Problem mit dem Vlan und bin über google auf Deiner super Seite gelandet.
Leider bin ich nicht der Linuxpro und kann Deiner Kurzbeschreibung mit dem Webif script nicht ganz folgen.
Wäre super, wenn Du die Vorgehensweise für Laien wie mich etwas detailierter beschreiben könntest. ( bzw. vielleicht sogar in den luci trunk einpflegen könntest,… ).
Viele Grüße
Chris
17. November 2012 um 06:05 Uhr
Ich habe das Skript hier abgelegt: /etc/init.d/create_vlan255
danach: chmod +x /etc/init.d/create_vlan255
dann kann man es im Luci unter System -> Startup starten / stoppen / aktiveren usw.
Etwas einfach, wenn auch schmutziger wäre, einfach im Feld darunter bei “Local Startup” den Befehl einzutragen:
vconfig add eth0 255
Der Nachteil man könnte es via webif nicht einfach an oder ausmachen und das interface wird beim runterfahren nicht mehr entfernt, aber da es beim reboot eh verschwindet, eigentlich peng – nur halt nicht so schön.