Wie dienstbare Geister verwalten Router den Zugang zu Internet und WLAN. Die Firmware der stillen Diener ist immer öfter ein Linux-System, das diese Geräte für eigene Anpassungen öffnet.
Kleine Router, ob für WLAN oder DSL, gibt es in immer mehr Haushalten. Die kompakten Geräte verwalten nicht nur den Internetzugang, sondern arbeiten gleichzeitig als Printserver und als Server für DHCP, NAT und Firewall. Was auf der Verpackung nicht steht: Die Hersteller setzen im Segment der kleinen intelligenten Netzwerkkomponenten zunehmend Linux als Firmware ein, ohne dies an die große Glocke zu hängen.
Embedded-Linux-Geräte identifizieren
Fast nie steht im Handbuch oder auf der Website des Herstellers ein Hinweis darauf, welches Betriebssystem auf einem Router oder einer WLAN-Bridge ar- beitet. Doch es ist meist sehr leicht, Linux zu erkennen: Dazu genügt es, auf einem an das zu untersuchende Gerät angeschlossenen PC, der unter Linux läuft, »nmap« aufzurufen (siehe Abbildung 1).
Dieses Programm analysiert die Eigenschaften des TCP/IP-Stack und zieht daraus seine Schlüsse auf das Betriebssystem der Maschine. Details zu den Methoden sind unter[1] zu finden.
Die Hersteller liefern sich gegenwärtig einen regelrechten Krieg um die Kunden mit immer neuen Produkten – das erhöht den Druck auf eine schnelle Entwicklung. Eine Linux-Firmware ist dann eine willkommene Basis, zumal keine so genannten Royalties für jedes verkaufte Gerät anfallen, wie es bei anderen Embedded-Entwicklungsumgebungen üblich ist.
Einfache Entwicklung
Ein weiterer Pluspunkt für Linux ist, dass das Betriebssystem bereits auf sehr viele Embedded-Plattformen und Prozessor-Architekturen portiert wurde – zum Beispiel auch auf MIPS-Architekturen, die bei Routern besonders oft anzutreffen sind. Das erlaubt es den Herstellern, sich aufs Wesentliche zu konzentrieren: Sie müssen nur die Hardwaretreiber für die eingesetzten Komponenten portieren oder neu entwickeln, das Betriebssystem selbst gibt es fast mundgerecht zum Download.
Dabei ist aber die Versuchung groß, die Leistungen der Linux-Community zu verschweigen: Im News-Bereich der Netfilter-Homepage ([2],[3]) finden sich mehrere Fälle, in denen Hersteller die GPL erst nach Einleitung rechtlicher Schritte ernst nahmen.
Bunte Vielfalt
Es gibt eine ganze Reihe mehr oder weniger bekannter DSL- und WLAN-Router auf dem Markt, die unter Linux laufen und für die es alternative oder freie Firmware gibt. Am bekanntesten ist die WRT54G-Familie des Herstellers Linksys, der inzwischen von Cisco übernommen wurde. Die Bezeichnung der Linksys-Gerätefamilie stand auch Pate für den Namen des freien Firmware-Projekts OpenWRT, dass der nachfolgende Artikel beschreibt.
Auch andere Hersteller vertreiben Geräte, die zum Linksys-Router kompatibel sind, Tabelle 1 enthält eine Übersicht der derzeit bekannten Modelle. Noch nicht unterstützt werden allerdings die Geräte Asus WL-500G Deluxe (WL-500GD) sowie Linksys WRT56G (Version 2.2) und WRT54GS in Version 1.1.
Bei den Routern handelt es sich um hochkompakte Minicomputer, die eine ganze Reihe separater Hardware in einem kleinen Gehäuse vereinigen. Standard ist meist ein Switch mit 10/100 MBit/s und vier Ports sowie ein WAN-Anschluss, der ein DSL-Modem ansteuern kann. Vielfach gehört eine WLAN-Bridge ebenfalls zur Grundausstattung, sie erlaubt eine einfache WLAN-Infrastruktur mit 11 oder 54 MBit/s nach den gängigen Standards IEEE 802.11 b/g/h.

Abbildung 1: Nmap untersucht die Eigenheiten des TCP/IP-Stack und das Antwortverhalten des Rechners, um das dort laufende Betriebssystem zu ermitteln.
Günstige Alternative zum Router-PC
Die Preise der kompakten Router liegen zwischen 80 bis 90 Euro, sie sind damit kaum teurer als jede Einzelkomponente Access-Point, DSL-Router und Netzwerkswitch. Zudem enthalten die Router keine Lüfter. Auch beim Stromverbrauch fallen die Kompaktgeräte positiv auf, mehr als 10 bis 20 Watt Spitzenleistung benötigt kaum ein Router. Selbst Power over Ethernet ist möglich.
Im Vergleich dazu ist ein ausrangierter Pentium-Rechner ein lärmendes, Strom fressendes Ungetüm: Allein der Stromverbrauch bei einer durchschnittlichen Leistung von 80 Watt summiert sich beim Betrieb rund um die Uhr pro Jahr auf 125 Euro – womit sich ein neuer Router bereits im ersten Jahr nur über die Stromkosten amortisiert.
| Tabelle 1: WRT54G-kompatible Linux-Router |
|---|
| Asus WL-500B (Version 1.0) |
| Asus WL-500G |
| Buffalo WBR-G54 |
| Buffalo WBR2-G54 |
| Buffalo WLA-G54 |
| Linksys WAP54G (Version 1.0) |
| Linksys WRT54G (Versionen 1.0, 1.1, 2.0) |
| Linksys WRT54GS (Version 1.0) |
| Siemens SE505 |
Die Anforderungen der Benutzer an die PC-Router sind vielseitig und übersteigen stellenweise das Standardrepertoire von WLAN- oder DSL-Routern, zum Beispiel statisches Routing, individuelle Konfiguration aller Netzwerkschnittstellen, Forwarding zwischen den Netzen, Masquerading und natürlich auch eine Firewall, die sowohl die internen als auch die externen Netze voreinander schützt. Ein weiterer wichtiger Punkt ist Quality of Service[4], damit trotz der schmalbandigen Internetleitung sowohl Voice over IP[5] als auch Filesharing gleichzeitig arbeiten können.

Abbildung 2: Die Linksys-Router WRT54G und WRT54GS begründen mit ihren verschiedenen Revisionen eine ganze Familie von Routern, auf denen die freie Linux-Firmware OpenWRT läuft. Je nach Modell unterscheiden sich jedoch die Anschlüsse, der Prozessortakt und die Speicherausstattung der Geräte.
Linux ausgetauscht
Die vorgefertigte Firmware der jeweiligen Hersteller deckt nur einen Teilbereich dieses Forderungskatalogs ab, wer mehr möchte, ist mit einer erweiterbaren Linux-Distribution gut beraten.
Ein großes Problem sind die Speicherbeschränkungen der Router, selten besitzen sie mehr als 32 MByte RAM und 8 MByte ROM. Das Herzstück der Embedded-Linux-Router ist eine MIPS-CPU mit einigen Zusatzkomponenten, die Broadcom zu einem Chip zusammengegossen hat. Weitere Interfaces wie Netzwerk und USB sind per PCI angekoppelt. Die Tabellen 2 und 3 zeigen die Hardware-Ausstattung der Router WRT54GS von Linksys und WL-500G von Asus, sie wurden mit Hilfe des Hardware-Erkennungs-Skripts erstellt[6],[7].
In den Gerätelisten der beiden Tabellen tauchen auch einige Devices auf, die nicht über Anschlüsse des Routers herausgeführt sind. Broadcom baut eine ganze Reihe solcher integrierten Chips mit CPU und Zusatzkomponenten, die Routerhersteller verdrahten später nur die gewünschten Komponenten und lassen den Rest einfach unbestückt.
Leider hat der Endanwender kaum eine Chance, an diese vernachlässigten Komponenten heranzukommen – der Broadcom-Chip steckt in einem Ball-Grid-Array-Gehäuse (BGA), das kopfüber montiert ist. Eine Ausnahme sind die beiden seriellen Anschlüsse des WRT54G und des WRT54GS in Version 1.0.
Familienbande
Die Geräte der Linksys-Familie WRT54G sind schon länger auf dem Markt, sodass es mehrere Versionen mit der gleichen Gerätebezeichnung gibt. Die Version 1.0 gab es schon vor der Übernahme durch Cisco. Bei ihr sitzt das WLAN-Modul in einem Mini-PCI-Slot. Auf der Platine ist deutlich erkennbar Platz für einen UART 16C550 nebst Pegelwandler und auf der Vorderseite des Routers sind noch zwanzig LEDs untergebracht. Der eingesetzte Broadcom-Chip enthält eine MIPS-CPU mit 125 MHz Takt, 16 MByte RAM und 4 MByte Flash. Der integrierte Netzwerkswitch des Routers basiert auf einem ADMtek ADM6996 mit 10/100 MBit/s Transferrate und sechs Ports sowie automatischer Kabelkreuzung.
| Tabelle 2: Hardware des Linksys WRT54GS |
|||
|---|---|---|---|
| Bus-ID | Vendor-ID | Device-ID | Gerät |
| 00:00.0 | 0x14e4 | 0x0800 | Broadcom Sentry5 Chipcommon I/O-Controller |
| 00:01.0 | 0x14e4 | 0x4320 | Broadcom BCM4306 802.11b/g Wireless LAN Controller |
| 00:02.0 | 0x14e4 | 0x4713 | Broadcom Sentry5 Ethernet Controller |
| 00:03.0 | 0x14e4 | 0x4717 | Broadcom BCM47xx Sentry5 USB Device Controller |
| 00:04.0 | 0x14e4 | 0x4716 | Broadcom BCM47xx Sentry5 USB Host Controller |
| 00:05.0 | 0x14e4 | 0x0816 | Broadcom BCM3302 Sentry5 MIPS32 CPU |
| 00:06.0 | 0x14e4 | 0x080f | Broadcom Sentry5 DDR/SDR RAM Controller |
Den ersten Anschluss des ADM6996 hat der Hersteller mit der CPU verbunden, die nächsten vier sind als herkömmliche LAN-Anschlüsse aus dem Gehäuse herausgeführt. Der letzte Port dient als WAN-Anschluss. Dass alle Netzwerkschnittstellen über ein gemeinsames Ethernet-Interface mit der CPU verbunden sind, ist in der Praxis kein Problem, da Linux die verschiedenen LAN- und WLAN-Ports mit VLAN-Tagging[8] auseinanderhalten kann. Für Transfers, die vom WAN- auf die LAN-Interfaces laufen, führt es jedoch zu einer Bandbreitenbeschränkung. Allerdings ist fraglich, ob nicht die CPU der Engpass in dieser Konstellation ist.
Zusätzliche Schnittstellen
Mit Revision 1.1 des WRT54G änderten sich einige Äußerlichkeiten, so prangte nun das Cisco-Logo auf dem Gehäuse und die Zahl der LEDs an der Gerätefront schrumpfte auf acht. Auch wurde das WLAN-Mini-PCI-Modul durch eine auf dem Mainboard fest integrierte Variante ersetzt. Auf dem Board gibt es drei unbestückte Anschlüsse: die Löt-Pads des Mini-PCI-Slots, einen nicht dokumentierten 12-poligen JTAG-Debug-Port und einen 20-poligen Busanschluss, dessen Pinbelegung Tabelle 4 verrät.
| Tabelle 3: Hardware des Asus WL-500G |
|||
|---|---|---|---|
| Bus-ID | Vendor-ID | Device-ID | Gerät |
| 00:00.0 | 0x14e4 | 0x0803 | Broadcom (vermutlich I/O-Controller) |
| 00:01.0 | 0x14e4 | 0x4711 | Broadcom BCM47xx Sentry5 iLine32 HomePNA 2.0 |
| 00:02.0 | 0x14e4 | 0x4713 | Broadcom Sentry5 Ethernet Controller |
| 00:03.0 | 0x14e4 | 0x4712 | Broadcom BCM47xx V.92 56k Modem |
| 00:04.0 | 0x14e4 | 0x4715 | Broadcom Sentry5 USB Controller |
| 00:05.0 | 0x14e4 | 0x0804 | Broadcom Sentry5 PCI Bridge |
| 00:06.0 | 0x14e4 | 0x0805 | Broadcom Sentry5 MIPS32 CPU |
| 00:07.0 | 0x14e4 | 0x0811 | Broadcom Sentry5 External Interface Core |
| 00:08.0 | 0x14e4 | 0x4713 | Broadcom Sentry5 Ethernet Controller |
| 01:00.0 | 0x14e4 | 0x4710 | Broadcom BCM4710 Sentry5 PCI to SB Bridge |
| 01:02.0 | 0x14e4 | 0x4320 | Broadcom BCM4306 802.11b/g Wireless LAN Controller |
Die aktuelle Version der freien Router-Firmware OpenWRT unterstützt auch die Revision 2.0 des Linksys WRT54G. Hier verwendet der Hersteller an Stelle der 125-MHz-CPU einen 200-MHz-Typ. Zudem hat er die Funktionen des Steuer- und PCI-Interface in die CPU verlegt, sodass auf dem Mainboard lediglich noch der HF-Teil des WLAN-Interface separat ausgeführt ist.
Auch der in Revision 1.1 unbestückte Busanschluss sowie das Mini-PCI-Modul entfallen, dafür hat der Hersteller zwei serielle Schnittstellen auf dem Mainboard vorgesehen, aber nicht bestückt. Mit Hilfe eines Maxim MAX233 und der Schaltung von[9] lassen sich jedoch beide Schnittstellen benutzen.
Der erste serielle Port »/dev/ttyS0« ist als Systemkonsole vorgesehen und mit den Parametern 115200 Baud, 8N1 konfiguriert. Der zweite serielle Anschluss steht für beliebige Steuer- und Kommunikationsaufgaben zur Verfügung, etwa für die Anbindung eines analogen Telefonmodems, um beim Ausfall der DSL-Verbindung eine Einwahlmöglichkeit in Reserve zu haben, oder zum Aufbau eines Modem-Internet-Routers.
Basis-Layout verändert
Die Version 2.2 des WRT54G wurde bei Redaktionsschluss noch nicht von OpenWRT unterstützt. Die Hardware-Anordnung des Routers unterscheidet sich grundsätzlich von dem der Vorgänger, zudem verwendet der Hersteller nun den aktuellen Ethernet-Chipsatz Broadcom BCM5325E.
Neben dem WRT54G wird derzeit das Modell WRT54GS (Abbildung 2) verkauft. Es verfügt über den gleichen Funktionsumfang wie seine Vorgänger. Die Revision 1.1 enthält den gleichen neuen Ethernet-Chip wie das Modell WRT54G (Revision 2.2) und läuft derzeit noch nicht mit OpenWRT. Das S am Ende der Modellbezeichnung des WRT54GS steht für Speedbooster, damit kennzeichnet Linksys die nicht standardisierte Erhöhung der Datenrate per WLAN, wenn zwei Geräte des gleichen Herstellers miteinander funken.
Deutlich interessanter als die höhere Transferrate per WLAN sind jedoch die anderen Interna, so verfügt die 200-MHz-CPU nun über 32 MByte RAM und 8 MByte Flash. Die beiden seriellen Schnittstellen gibt es genauso wie bei den G-Modellen.
Neben den äußeren Merkmalen der einzelnen Modelle hat der Hersteller für jede neue Revision auch einen eigenen Seriennummernbereich verwendet. Die mit CDF1 beginnenden Seriennummern kennzeichnen die Revision 1.0 des WRT54G, CDF2 und CDF3 die Revision 1.1. Ab Revision 2.0 tragen die Geräte eine Seriennummer, die mit CDF5 anfängt, während die GS-Modelle Seriennummern ab CGN1 tragen.
| Tabelle 4: Busanschluss des WRT54G Rev. 1.1 |
|||
|---|---|---|---|
| Pin | Signal | Pin | Signal |
| 1 | D0 | 2 | A0 |
| 3 | D1 | 4 | A1 |
| 5 | D2 | 6 | A2 |
| 7 | D3 | 8 | A3 |
| 9 | D4 | 10 | /CS |
| 11 | D5 | 12 | /RD |
| 13 | D6 | 14 | /WR |
| 15 | D7 | 16 | Reset |
| 17 | GND | 18 | INT |
| 19 | GND | 20 | GND |

G Abbildung 3: Der Router WL-500G von Asus verwendet die gleiche Hardwarebasis wie der WRT54G von Linksys. Das neuere Modell Asus WL-500GD wird von OpenWRT allerdings noch nicht unterstützt.

E Abbildung 4: Der Asus- Router von innen. Das WLAN-Modul ist herausnehmbar im Mini-PCI-Slot rechts oben untergebracht, links in der Mitte sitzt der 20-polige Busanschluss für Erweiterungen. Die hochintegrierte MIPS-CPU ist genau dazwischen eingelötet.
Kompatibler Router von Asus
Der Aufbau des Asus WL-500G (Abbildung 3) ähnelt sehr dem Linksys-Router aus Abbildung 2. Wie in Abbildung 4 zu sehen ist, verwendet auch Asus einen integrierten MIPS-Prozessor mit Zusatzkomponenten von Broadcom, taktet ihn jedoch nur mit 125 MHz. An Speicher stehen dem Gerät 16 MByte RAM und 4 MByte ROM zur Verfügung.
Anders als bei Linksys hat Asus alle drei Netzwerkgeräte – WLAN, WAN und den integrierten Switch – direkt an die CPU angeschlossen. Damit besitzt der Router zwei unabhängige Ethernet-Interfaces und einen WLAN-Anschluss, kann den integrierte Netzwerkswitch aber nicht per VLAN-Tagging kontrollieren. Der USB-OHCI-Adapter ist ebenfalls per PCI-Bus angebunden und zur Ansteuerung eines USB-Druckers vorgesehen. Der Anschluss lässt sich mit OpenWRT auch anderweitig nutzen, genauso wie die parallele Schnittstelle des Geräts.
| AVM Fritz-Box Fon mit Linux |
|---|
| Wie die im Artikel beschriebenen Router Linksys WRT54GS und Asus WL-500G basiert auch die AVM Fritz-Box auf einer MIPS-CPU. Anders als die Router der Konkurrenz besitzt die Fritz-Box Fon zusätzlich einen ISDN-Anschluss sowie analoge Anschlüsse für Telefon und Fax; DSL-Modem, USB-Slave-Port sowie WLAN und Ethernet gehören ebenfalls zur Grundausstattung. Die MIPS-CPU ist bei AVM mit 150 MHz getaktet, verfügt jedoch über 32 MByte RAM und 4 MByte Flash-ROM. Die serielle Schnittstelle des Geräts ist wie beim Linksys WRT54G nicht herausgeführt, ließe sich aber mit der Zusatzbeschaltung von [9] oder einem passenden Handy-Anschlusskabel nutzen.
Die Fritz-Box Fon wurde von AVM für den Einsatz mit Voice over IP entwickelt, abgehende Gespräche überträgt sie je nach Ziel entweder über das DSL-Modem ins Internet oder per ISDN-Anschluss ins herkömmliche Telefonnetz. Für störungsfreie Abwicklung der VoIP-Gespräche sorgt Quality of Service[4]. Angelockt durch die vielfältigen Anschlussmöglichkeiten gab es bereits erste erfolgreichen Versuche, sich auf der Fritz-Box per Telnet einzuloggen. Enrik Berkhan hat unter[10] ein Rezept veröffentlicht, das diesen Vorgang beschreibt. Schlüssel ist die Firmware-Update-Funktion über das Netz, mit der der Fritz-Box-Anwender die Firmware »starttelnet.image« von[10] einspielt. Dort ist der Telnetzugang aktiv. Die Änderungen sind jedoch zunächst nur temporär, die dauerhafte Installation der neuen Linux-Firmware beschreibt Enrik Berkhan ebenfalls auf seiner Homepage. |
Mehrgleisig mit Linux
Die Unterschiede zwischen den Linksys-Routern und dem Gerät von Asus sind nur gering, alle Modelle mit Ausnahme der Revision 2.2 bei Linksys arbeiten mit der gleichen Netzwerk- und WLAN-Hardware. Das vereinfacht die Entwicklung von freien Alternativen zu der vom Hersteller mitgelieferten Linux-Firmware, zum Beispiel OpenWRT.
Doch vor dem Vergnügen kommt erst die Arbeit: die Firmware der Router gegen ein offenes System ersetzen – wie das geht und wie man seine eigene Router-Distribution zusammenstellt, beschreibt der folgende Artikel. (mdö)
| Infos |
|---|
| [1] Betriebssystem-Erkennung mit Nmap: [http://www.insecure.org/nmap/nmap-fingerprinting-article.html]
[2] Netfilter-Projekt: [http://www.netfilter.org] [3] Einigung des Netfilter-Projekts mit Allnet: [http://www.netfilter.org/news/2004-02-17-allnet-gpl.html] [4] Linux-Magazin 02/05, Heftschwerpunkt “Bandbreiten-Management”: [https://www.linux-magazin.de/ausgabe/2005/02/] [5] Linux-Magazin 08/04, Heftschwerpunkt “Voice over IP”: [http://www. linux-magazin.de/ausgabe/2004/08/] [6] Mirko Dölle, “Gestatten, Sherlock Bash”: LinuxUser 03/05, S. 86 [7] Hardware-Erkennungsskript aus [6]: [http://www.mirko-doelle.de/vdr/hwdetect] [8] Chris Hübsch, “Patchen ohne Kabel”: Linux-Magazin Sonderheft 03/04, S. 12 [9] Serielles Interface für Linksys WRT54G(S): [http://www.rwhitby.net/wrt54gs/serial.html] [10] Näheres zur Fritz-Box Fon: [http://www.akk.org/~enrik/fbox] |





