Login
Newsletter
Werbung

Do, 13. März 2014, 15:00

WLAN-AP mit dem Raspberry Pi

Der Raspberry Pi ist ein sehr vielseitiges Gerät, das unter anderem auch zum Betreiben vielfältiger Netzwerkdienste verwendet werden kann. So ist es auch möglich, einen eigenständigen WLAN Access Point (AP) mit ihm zu betreiben, was hier näher erläutert werden soll.

Der Betrieb eines Wireless Local Area Network (WLAN) gehört mittlerweile wohl zu fast jedem Haushalt dazu. Schließt man heute einen Vertrag über die Zurverfügungstellung von Internet ab, so erhält man im Regelfalle von seinem jeweiligen Anbieter zum Abschluss des Vertrags ein Multifunktionsgerät, das neben der reinen Funktion, eine Verbindung zum größeren Netz des Internetanbieters (Wide Area Network, WAN) und mithin zum Internet herzustellen, das heißt als Modem zu fungieren, auch die Möglichkeit bietet, ein Drahtlosnetzwerk aufzubauen. Die interne Funktionsweise dieser Geräte bleibt von Seiten des Herstellers meist unter Verschluss, geschweige denn, dass man einen Konsolenzugriff auf das zumeist als Linux-Variante ausgeführte Betriebssystem erhielte. Prominente Ausnahmen von dieser Regel sind Hersteller wie Linksys oder AVM, die ihren Abnehmern einen relativ problemlosen Zugriff auf Shell und Betriebssystem gewähren.

Router sind zumeist hochspezialisierte Geräte, die darauf getrimmt sind, ihren Haupteinsatzzweck gut und anderweitige Aufgaben überhaupt nicht erfüllen zu können. In den meisten Geräten kommen stromsparende RISC-Prozessoren zum Einsatz; in neuester Zeit kommen mehr und mehr Geräte auf den Markt, deren Prozessor in ARM-Architektur gefertigt ist. Diese Rahmenbedingungen machen es denkbar schwierig, selbst bei einem verhältnismäßig offenen System beliebige Dienste auf der Hardware zu betreiben. Zu schnell erreicht man die Kapazität des oft nur geringen RAMs, anspruchsvollere Rechenaufgaben geraten zur Geduldsprobe. Dieser Artikel will sich daher damit beschäftigen, wie man mit gewöhnlicher Hardware einen eigenen WLAN Access Point betreibt, zu dem weitere Dienste nach Belieben zu- oder abgeschaltet werden können und dessen Hardware den angestrebten Aufgaben entsprechend größtenteils frei gewählt werden kann. Zum Einsatz kommt im konkreten Fall der Einplatinencomputer Raspberry Pi, doch sind die Erklärungen generisch und können auf jedes vollwertige Linux-System auf Systemd-Basis angewandt werden.

Voraussetzungen

Für den Betrieb eines eigenen WLANs sind einige Rahmenbedingungen erforderlich. Als erster und wichtigster Punkt ist hier eine funktionsfähige WLAN-Hardware zu nennen, die zwingend im Master-Modus betrieben werden können muss. Die Suche nach einer solchen gestaltet sich schnell schwierig, denn obwohl die Unterstützung der einzelnen Linux-Treiber für spezifische Chipsätze der Website des Linux-Kernels entnommen werden kann, ist es aus den Produktbeschreibungen meist nicht ersichtlich, welcher Chipsatz in einem USB-WLAN-Adapter verbaut ist, bis man die Gelegenheit hatte, ihn selbst zu testen. Persönlich hat der Autor einen TL-WN722N von TP-Link im Einsatz, der allerdings nicht mehr hergestellt wird. Der verbaute Chipsatz stammt von Atheros und wird vom renommierten ath9k-Modul vollständig unterstützt.

$ lsusb | grep 802.11
Bus 001 Device 006: ID 0cf3:9271 Atheros Communications, Inc. AR9271 802.11n

Speziell für den Raspberry Pi ist zum Betrieb eines WLANs mit einem solchen WLAN-USB-Adapter zusätzlich ein USB-Hub mit eigener Stromversorgung erforderlich, da die vom Pi über die USB-Ports gelieferte Spannung nicht ausreicht, um einen stabilen WLAN-Betrieb zu gewährleisten. Häufige Ausfälle und Verbindungsabbrüche sind die Folge. Läuft alles gut, könnte die Interface-Liste so aussehen:

$ ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
[...]
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether b8:27:eb:fe:1c:c1 brd ff:ff:ff:ff:ff:ff
5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether f8:1a:67:21:d2:a7 brd ff:ff:ff:ff:ff:ff
[...]

eth0 stellt hierbei das am Pi in Revision B ohnehin vorhandene Ethernet-Interface da, wlan0 repräsentiert den USB-WLAN-Adapter.

Auf der Softwareseite ist die Installation des WLAN-Daemons hostapd erforderlich. Will man IP-Adressen nicht statisch vergeben, so ist zudem die Installation eines IP-Management-Daemons wie dnsmasq ratsam, der sowohl zur Vergabe von IPv4-Adressen per DHCP als auch zur Versendung von IPv6-Router-Advertisements verwendet werden kann. Die entsprechenden Pakete sollten in den Repositorien aller gängigen Distributionen aufzufinden sein.

Die Notwendigkeit beider Dienste zeigt die klare Aufgabenteilung: hostapd ist nur für die Verschlüsselung der Drahtlosverbindung zuständig. Clients, die diese erste Hürde mit korrektem Passwort überwinden, wären ohne einen dahinter verfügbaren DHCP-Server (oder eine anderweitige IP-Konfiguration) trotzdem nicht in der Lage, eine Verbindung zum Netzwerk aufzubauen.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung