Studienarbeit

Transcription

Studienarbeit
0
Technische Universität Ilmenau
Fakultät für Elektrotechnik und Informationstechnik
Studienarbeit
Steuerung einer Hausautomatisierungsanlage über Wireless LAN
vorgelegt von:
Roman Komoll
geboren am:
Studiengang:
Elektrotechnik und Informationstechnik
Studienrichtung:
Informations- und Kommunikationstechnik
Verantwortlicher Professor:
Prof. Dr. rer. nat. habil. Jochen Seitz
Betreuender wiss. Mitarbeiter: Dipl.-Ing. Michael Heubach
Ilmenau, den 12.03.2005
1
Inhaltsverzeichnis
1
2
Einleitung ......................................................................................................................7
Grundlagen ...................................................................................................................9
2.1
Anwendungsszenarien ...........................................................................................9
2.1.1
Personal Area Network ................................................................................10
2.2
Gerätetypen ..........................................................................................................10
2.3
Der Standard IEEE802.11....................................................................................11
2.4
Aufbau..................................................................................................................12
2.5
Architekturen .......................................................................................................13
2.5.1
Systemarchitekturen (Netzwerk-Topologien)..............................................13
2.5.2
Protokollarchitektur .....................................................................................15
2.6
Kanalzugriff und Rahmenstruktur........................................................................16
2.6.1
Zugriffsverfahren .........................................................................................16
2.6.2
Rahmenformate ............................................................................................18
2.6.3
Fragmentierung von langen Nachrichten .....................................................19
2.6.4
Verwaltung von Stationen............................................................................20
2.6.5
Adressierung von Stationen .........................................................................23
2.6.6
Synchronisation............................................................................................23
2.6.7
WLAN und TCP/IP......................................................................................23
2.7
Bitübertragung .....................................................................................................24
2.7.1
Einordnung...................................................................................................24
2.7.2
Direct Sequence Spread Spectrum ...............................................................25
3. Das Basisgerät des LISTIG-Systems ........................................................................29
4. Auswahl des Schnittstellenadapters .........................................................................30
4.1
Vorbetrachtung.....................................................................................................30
4.2
Auswahl der WLAN-Geräte ................................................................................33
4.2.1
Kriterien .......................................................................................................34
4.2.2
Schnittstellen von LISTIG ...........................................................................35
4.2.3
Hardware ......................................................................................................36
5
Wireless LAN und Linux...........................................................................................37
5.1
Grundlegendes .....................................................................................................38
5.1.1
Chipsatz........................................................................................................38
5.1.2
Software-Voraussetzungen ..........................................................................38
5.1.3
Treiber ..........................................................................................................38
5.2
Grundkonfiguration..............................................................................................41
5.2.1
Konfiguration der Standard-Treiber.............................................................41
5.3
Treiber selbst kompilieren ...................................................................................42
6 Inbetriebnahme der WLAN-Schnittstelle................................................................43
6.1
Der Linux Kernel und Wireless LAN ..................................................................43
6.2
Konfiguration der PCMCIA Card Services .........................................................44
6.3
Einrichtung der Konfigurationssoftware..............................................................47
6.4
Konfiguration des Wireless LAN.........................................................................48
6.4.1
Basiskonfiguration .......................................................................................48
6.4.2
Automatische Netzkonfiguration während des Systemstarts.......................50
6.4.3
Verschlüsselung ...........................................................................................50
6.4.4
Automatische Konfiguration durch die PCMCIA Card Services ................51
6.4.5
Testen der Verbindung.................................................................................52
2
6.5
Probleme während der Testphase ........................................................................59
6.5.1
Der PCI-to-PCMCIA/PCCARD-Adapter unter Linux ................................59
6.5.2
Die Nokia D211 Card unter Linux...............................................................61
6.5.3
Die ARTEM ComCard (IEEE 802.11g) ......................................................63
7
Bewertung der Verbindungsqualität........................................................................66
7.1
Grundlegendes .....................................................................................................66
7.2
Messungen ...........................................................................................................67
7.3
Beobachtungen und Schlussfolgerungen .............................................................70
8
Sicherheit und Authentifizierung .............................................................................72
8.1
Sicherheitsaspekte ................................................................................................72
8.2
WEP .....................................................................................................................73
8.3
Authentifizierungsmechanismen..........................................................................77
8.4
Vertraulichkeit .....................................................................................................79
8.5
Exkurs: Der HostAP-Treiber auf dem LISTIG-System.......................................82
8.6
Fazit......................................................................................................................83
9
Störungsfreier Funkbetrieb ......................................................................................83
10
Abschlussbemerkungen .........................................................................................84
Anhang ................................................................................................................................86
Den Treiber der WLAN-Karte manuell aktualisieren......................................................86
2
Abbildungsverzeichnis
Abbildung 2.1
Abbildung 2.2
Abbildung 2.3
Abbildung 2.4
Abbildung 2.5
Abbildung 2.6
Abbildung 2.7
Abbildung 2.8
Abbildung 2.9
Abbildung 2.10
Abbildung 2.11
Abbildung 2.12
Abbildung 2.13
Abbildung 2.14
Abbildung 2.15
Abbildung 2.16
Abbildung 2.17
Abbildung 2.18
Abbildung 3.1
Abbildung 3.2
Abbildung 4.1
Abbildung 6.1
Abbildung 6.2
Abbildung 6.3
Abbildung 6.4
Abbildung 6.5
Abbildung 6.6
Abbildung 6.7
Abbildung 6.8
Abbildung 6.9
Abbildung 6.10
Abbildung 6.11
Abbildung 7.1
Abbildung 8.1
Abbildung 8.2
Abbildung 8.3
Abbildung 8.4
Abbildung 8.5
Abbildung 8.6
Abbildung 8.7
Abbildung 8.8
Gliederung der Betriebsarten im IEEE801.11..........................................
Architekturen der Betriebsarten im IEEE802.11....................................
Die Dienstzugangspunkte der MAC und PHY-Schichten
im IEEE802.11........................................................................................
Kanalzugriff...........................................................................................
RTS/CTS-Ablauf..................................................................................
PLCP bei 802.11/11b..............................................................................
MAC-Rahmen bei 802.11.......................................................................
Zusammenwirken der Standards.............................................................
Offene Authentifizierung von Stationen.................................................
Authentifizierung von Stationen durch gemeinsame Schlüssel..............
Unidirektionaler TCP-Verkehr über ein WLAN
mit CSMA/CA-MAC.............................................................................
Algorithmus einer expliziten Anmeldung................................................
Kanalaufteilung 2,4 GHz.........................................................................
Kanalvergabe-Beispiel............................................................................
DSSS für 1/2 Mbit/s.................................................................................
QPSK-Phasendiagramm..........................................................................
CCK-Erzeugung.....................................................................................
Kanalzuordung beim DSSS-Verfahren im IEEE802.11.....................
Die Hauptplatine des Basisgerätes......................................................
Der Versuchsaufbau des Projekts LISTIG..........................................
Erfolgreiche Installation mit dieser PCI-WLAN-Karte.......................
IP über Wireless LAN 802.11b Ad-Hoc-Modus................................
Netzwerkverbindungen......................................................................
IP-Einstellungen.....................................................................................
Windows die Konfiguration abnehmen................................................
Netgears Konfigurationswerkzeug........................................................
Profileinstellungen der drahtlosen Verbindung.....................................
Erfolgreiche Verbindung.....................................................................
Notebook pingt Basisgerät....................................................................
Konfigurationsfenster der Client-Anwendung.....................................
Übertragung einer Zeichenkette............................................................
Nokia Multimode Card.........................................................................
Messung der Verbindungsqualität mit Network Stumbler.................
Gefährdungen.....................................................................................
Einordnung der verschiedenen Sicherheitstechniken.........................
WEP-Funktionsweise.........................................................................
WEP-Authentifizierung.......................................................................
EAP-Anwendung bei WLANs............................................................
Diffie-Hellman...................................................................................
RSA-Authentifizierung.......................................................................
X-Window über SSH-Tunnel.................................................................
3
Tabellenverzeichnis
1.1
2.1
6.1
7.1
7.2
7.3
Vergleich der verbreiteten drahtlosen Übertragungstechniken..............................
Semantik der MAC-Adressen................................................................................
Kernel-abhängige Versionsnummer bei Wireless Extensions
Messwerte Netzwerk-Durchsatz, 2m.....................................................................
Messwerte Netzwerk-Durchsatz, 2m.................................................................
Messwerte Verbindungsqualität..............................................................................
4
Gebräuchliche Abkürzungen und Begriffe
Begriff
Bedeutung
Access Control List (ACL)
Die Liste der Hardwareadressen (MAC-Adressen) der
Stationen, die sich beim jeweiligen Access Point oder
Router einbuchen dürfen. Mit einigen Tricks kann eine
Hardwareadresse jedoch gefälscht werden, die Access
Control List sollte nicht die einzige Absicherung eines
WLANs sein.
Access Point (AP)
Basisstation, arbeitet wie ein Netzwerk-Switch und
verteilt Daten zwischen den Stationen. Moderne Access
Points haben zusätzlich eine Netzwerkschnittstelle und
arbeiten als Bridge.
Bridge (BRG)
Verbindet drahtlose und drahtgebundene Netze
miteinander. Wireless Bridges sind heute selten, da die
meisten Access Points gleichzeitig als Bridge arbeiten.
Basic Service Set (BSS)
Steht für die Summe alle Stationen mit der gleichen
Kennung (SSID, BSSID) in einer ..Managed
Infrastructure".
Basic Service Set Identifier (BSSID)
Hardwareadresse (MAC-Adresse) des Access Points. bei
Ad-Hoc (BSSID) Netzwerken die Hardwareadresse einer
(bevorzugten) Gegenstation.
Extended Service Set (ESS)
Bezeichnet die Gesamtheit aller miteinander (über
Distribution Systems) verbundener drahtloser und
drahtgebundener Netze.
Extended Service Set Identifier
(ESSID)
Kennung oder Name eines Gesamtnetzes (ESS).
Sinnvollerweise ein Identifier (ESSID) Firmen- oder
Abteilungsname.
5
Independent Basic Service Set
(IBSS)
Steht für die Summe aller Stationen eines Ad-Hoc-Netzes
mit gleicher (laSS) Kennung (SSID, ESSID).
Initialization Vector (IV)
3 Bytes lange, fortlaufende Paketnummer, die jedem
Datenpaket hinzugefügt wird. Sie beschränkt die Länge
des geheimen Schlüssels bei WEP auf 104, respektive 40
Bit, mit ihr zusammen ist der Paketschlüssel dann 128
(WEP-128), respektive 64 (WEP-64) Bit lang.
Router
Steht meist für Access-Router oder Wireless-Router,
solche Geräte enthalten oft Modems, ISDN-Adapter oder
einen Anschluss zum DSLModem, um selbst als
Zugangsknoten (Gateway) zum Internet zu fungieren. Je
nach Ausstattung haben sie noch Firewalls. Mail-Server
oder .... einen Netzwerk-Switch für drahtgebundene
Clients eingebaut.
Service Set Identifier (SSID)
Kennung oder Name eines Netzes, meist ist die ESSID
gemeint.
Station (STA)
Alle Wireless-Geräte, also Karten, Access Points. Router
und Bridges.
Wired Equivalent Privacy (WEP)
"drahtähnliche Vertraulichkeit". bezeichnet die
Verschlüsselung, die (WEP) zur Absicherung von
WLANs eingesetzt wird. Gebräuchlich sind WEP-64
(auch WEP-40 genannt, Schlüssellänge 40 Bit) und
WEP128 (Schlüssellänge 104 Bit), beide sind allerdings
mit Hausmitteln zu knacken.
Wireless Local Area Network
(WLAN)
Drahtloses Netzwerk (LAN)
6
Einige Begriffe rund um WLAN-Security:
•
•
•
•
•
•
•
•
•
•
ACL - Access-Control-List; Liste, in der die für ein Netzwerk zugelassenen MACAdressen gespeichert sind; jedes Firmen-Netz sollte sie verwenden, aber auch für
private Router sind sie sinnvoll...
DMZ - Demilitarized Zone
EAP - Extensible Authentication Protocol
Kerberos - ein Authentifizierungs-Verfahren
LEAP - Lightwight-EAP; proprietäre Lösung für 802.1x WLAN-Sicherheit von
Cisco; benutzt MIC (Message-Integrity-Check) um das Verfälschen von
Nachrichten zu verhindern; WLAN-Client und Access-Point müssen sich
gegenseitig authentifizieren, dadurch werden Man-in-the-Middle-Angriffe
verhindert
PMK - Pairwise Master Key; wird bei der WPA-Authentifizierung ausgetauscht
SSID - Service-Set-ID; Name des WLAN-Netzwerks, z.B. "any"
TKIP - Temporal Key Integrity Protocol; Protokoll zur Verbesserung der
Sicherheit in WLANs
WEP - Wired Equivalent Privacy; die auf RC4 basierende Verschlüsselung von
Karten nach dem 802.11-Standard
WPA - Wi-Fi Protected Access; die Wi-Fi Alliance plant, mit WPA den bekannt
unsicheren Standard WEP abzulösen
7
1
Einleitung
Der Bereich der Hausautomatisierung stellt derzeit einen kräftigen Wachstumsmarkt dar.
Viele Hersteller bieten bereits Lösungen zur Steuerung und Visualisierung von
Komponenten der Haustechnik an. Basierend auf Standard-Ethernet mit Brücken zu
verschiedensten Bussystemen werden Komponenten wie Heizung, Rollo, Markisen,
Garagentore, Zutritts- und Überwachungs- Systeme, Licht, Solaranlagen und WetterStationen über eine zentrale Einheit bedient. Die Benutzerschnittstelle ist meist
reglementiert. Das Problem besteht darin, dass kein allgemein anerkannter Standard zur
Steuerung dieser Anlagen existiert, so dass jede Automatisierungseinrichtung mit einer
separaten Steuerung ausgestattet ist. Es ist bis jetzt nicht möglich, über ein beliebiges
Bedienungsinterface auf die zentrale Einheit zuzugreifen.
Mit Hilfe des Projekts „LAN-integriertes Steuerungssystem für intelligente Gebäudetechnik“ (LISTIG) soll die Integration verschiedener Automatisierungsarchitekturen über
ein Basisgerät ermöglicht werden. LISTIG bietet eine Lösung zur Steuerung von
Komponenten der Haustechnik. Geräte und Funktionen sollen über beliebige Endgeräte
wie Handy, PDA oder Laptop mittels GPRS, IrDA, Bluetooth und WLAN gesteuert und
überwacht werden.
Diese Technologien bilden die Grundlage für künftige Hausautomatisierungs-Szenarien in
denen das Basis-System mit Komponenten der intelligenten Haustechnik verknüpft wird.
Das Basisgerät muss demnach unterschiedliche Kommunikationstechniken unterstützen.
Im Heimbereich stößt man heute schnell auf eine große Menge unterschiedlicher
Datenübertragungs-Standards und Netzwerk-Technologien.
Deshalb will ich im Folgenden einen kurzen Überblick über einige bestehende drahtlose
Übertragungs-Standards geben, welche im Zusammenhang mit Home-Networking oft
genannt werden:
IrDA:
Die Abkürzung "IrDA" steht für Infrared Data Association" und bezeichnet einen Standard
zur Datenübertragung mittels Infrarot. Seit 1995 gilt die Spezifikation 1.1 für FIR (Fast
Infrared), welche Bandbreiten von maximal 4 Mbps ermöglicht. Bis zu 16 Mbps sollen
zukünftig mit VFIR (Very Fast Infrared) übertragen werden können. Für den Aufbau von
Netzwerken ist IrDA eher ungeeignet, so dass dieser Standard vor allem für Datentransfers
zwischen einzelnen Geräten wie Notebooks, Handys, Palmtops oder für low-speed Peripherie-Geräte wie Maus oder Keyboard verwendet wird. Obwohl IrDA relativ preiswert
ist, hat es den wesentlichen Nachteil, dass zwischen allen Geräten stets Sichtverbindung
bestehen muss. Umgebungslicht hat Einfluss auf die Übertragungsqualität und Verschlüsselung ist nicht vorgesehen. Dadurch sind die Einsatzmöglichkeiten von IrDA im
Hinblick auf Heim-Netzwerke eher begrenzt. Doch aufgrund der großen Verbreitung bei
Endgeräten, brauchbarer Übertragungsraten und eines niedrigen Stromverbrauchs ist diese
Form der Datenübertragung eine Variante, die bei dem Projekt „LISTIG“ berücksichtigt
wird.
Bluetooth:
Bei Bluetooth handelt es sich um eine Nahbereichsfunk-Technologie. Auf einer Frequenz
von 2.4 GHz können Daten mit bis zu 1 Mbit pro Sekunde übertragen werden. Die
Reichweite von Bluetooth beträgt im allgemeinen ca. 10 m, läßt sich mittels eines
zusätzlichen Funkmoduls jedoch auf mehr als 100 m ausdehnen. Dieser Standard ist vor
allem im Bereich Telekommunikation nicht ohne Bedeutung, doch ebenso wie IrDA ist es
für größere Netzwerke ungeeignet. Für das Projekt „LISTIG“ stellt Bluetooth eine
8
brauchbare „Punkt-zu-Punkt-Lösung“ dar, verfügt über eine größere Reichweite als IrDA
und lässt Verschlüsselungstechniken zu. Die Verbreitung bei Endgeräten ist zur Zeit
geringer als IrDA, aber stark zunehmend.
WLAN:
Wesentlich interessanter sind dagegen sogenannte "wireless local area networks" WLANs. Der 1997 verabschiedete Standard IEEE 802.11 definiert eine Funkübertragung ebenfalls im 2.4 GHz-Frequenz-Bereich - mit bis zu 54 Mbit/s. Immerhin 11 Mbit/s sind
mit 802.11b möglich. Auch aufgrund einer Reichweite von 30-50 m in Gebäuden und ca.
300 m im Freien, sowie einigem Spielraum für Geschwindigkeitssteigerungen, sind
WLANs durchaus als eine mögliche Teillösung für zukünftige Heim-Netze anzusehen.
Aktuell wird an Verbesserungen des existierenden 802.11 und anderen Standards auf einer
Frequenz von 5 GHz gearbeitet, welche die Bandbreiten weiter erhöhen sollen.
Obwohl diese Übertragungsgeschwindigkeiten bislang nicht mit den meisten
Kabellösungen konkurrieren können, bringen drahtlose Netze grundsätzlich natürlich
erheblich Vorteile gegenüber einer festen Verkabelung mit sich. Der Nachteil liegt in der
Beeinflussbarkeit durch elektromagnetische Störquellen. Besonders häufig sind heutzutage
Laptops bereits mit integrierten WLAN-Chips ausgestattet, so dass auch dieser
Übertragungsstandard eine wichtige Variante für das Projekt „LISTIG“ darstellt. In
zunehmendem Maße werden auch PDAs mit WLAN-Funktionalität angeboten.
ÜbertragungsStandard
Vorteile
Nachteile
IrDA
sehr preiswert,
bei brauchbaren Übertragungsraten
große Verbreitung
geringer Stromverbrauch
geringe Beeinflussbarkeit
durch Funkstörquellen
geringe Sendeleistung notwendig
akzeptable Reichweite
kein Sichtkontakt notwendig
Verschlüsselungstechniken
geringe Reichweite
(bis 2m)
Sichtverbindung
notwendig
Beeinflussbarkeit durch
Umgebungslicht
keine Verschlüsselung
teurere Komponenten
elektromagnetische
Störquellen
geringere Verbreitung
weltweite Standardisierung
größere Reichweite
(bis 50m in Gebäuden)
akzeptable Übertragungsgeschwindigkeiten
kein Sichtkontakt notwendig
Verschlüsselungstechniken
zunehmende Verbreitung
elektromagnetische
Störquellen
Bluetooth
WLAN
Tabelle 1.1: Vergleich der verbreitesten Übertragungstechniken
Gerade die zunehmende Verbreitung im Heimbereich zur Datenkommunikation machen
den Standard IEEE 802.11 (WLAN) auch zur Kommunikation mit dem „LISTIG“Basisgerät interessant. Nach vorsichtigen Prognosen soll es allein in den USA bis zum Jahr
9
2007 fast 40 Millionen Laptops, Notebooks, Sub-Notebooks und Taschencomputer (PDAs)
mit einem WLAN-Funkinterface geben.
Als Aufgabenstellung der Studienarbeit ergibt sich somit die Erweiterung des Basisgeräts
mit einer Schnittstelle für WLAN. Nach Inbetriebnahme der WLAN - Komponente soll die
Kommunikation zwischen Basis- und Endgerät anhand definierter Szenarien hinsichtlich
verschiedener Kriterien wie Reichweite und Störanfälligkeit untersucht werden.
Abschließend sollen Konzepte zur Authentisierung und Sicherung erörtert und falls
möglich, integriert werden.
2
Grundlagen
Drahtlose lokale Netze (Wireless Local Area Networks –WLAN) erfreuen sich seit
mehreren Jahren einer außerordentlichen Beliebtheit, da sie den kostengünstigen und
leistungsfähigen Anschluss der in zunehmendem Maße portablen Anwendungen
ermöglichen. Es handelt sich standardisierte Netzwerktechnologien, die LANFunktionalität mit einer drahtlosen Übertragung realisieren. Ziel ist der breitbandige
Anschluss von mikroelektronischen Geräten im Umkreis von einigen zehn bis hundert
Metern.
Kabellose Netzwerke arbeiten heute nach dem IEEE 802.11 (Institute of Electrical and
Electronics Engineers) Standard und dessen Derivaten. Derzeit lassen sich fünf Formate
unterscheiden (802.11a, 802.11b, 802.11b+, 802.11g, 802.11h).
Als digitales Modulationsverfahren für die Nutzung des 2,4 GHz-ISM-Frequenzbereichs
ist in Nordamerika und in Europa der Einsatz eines Frequenzspreizverfahrens (Spread
Spectrum Technik) vorgeschrieben, also die Benutzung eines sehr breiten Frequenzbandes
zur Signalübertragung. Die Formate sind jedoch untereinander inkompatibel, d.h. damit
arbeitende Geräte können nur miteinander kommunizieren, wenn sie den selben Standard
benutzen.
Sender und Empfänger einigen sich auf einen bestimmten Funkkanal in einem
Frequenzspektrum und verwerfen die restlichen. Deswegen müssen sich alle Geräte auf
einem Funkkanal die Bandbreite teilen. Die Folge: je mehr Nutzer sich an einem Access
Point anmelden, desto geringer ist der Datendurchsatz für den einzelnen. Des Weiteren
liegt die Nettodatenrate bei etwa 45 - 60 Prozent der Herstellerangaben, da der maximale
Durchsatz nur zu schaffen ist, wenn Sender und Empfänger nahe beieinander liegen und
die Funksignale nicht gestört, gedämpft oder reflektiert werden.
2.1
Anwendungsszenarien
10
Die drahtlose Übertragung von Informationen ersetzt das Kabel zunächst lediglich auf der
Bitübertragungsschicht im ISO/OSI - Referenzmodell.
Diese grundlegend Aussage hat jedoch noch zwei Aspekte:
Die wesentlichen Netzwerkarchitekturen, wie sie sich während des jahrzehntelangen
Einsatzes drahtgebundener Netzwerke etabliert haben, werden auch von den drahtlosen
Netzen übernommen.
Werden die Dienste auf den höheren Ebenen mit dem physischen Übertragungsprotokoll
der untersten Ebene verbunden, dann ist ein drahtloses Netz doch mehr als nur ein
Kabelersatz.
Von den üblichen Netzwerkanwendungen und den sich daraus ergebenen
Anwendungsszenarien wie Personal Area Networks (PAN), Local Area Networks (LAN),
Small Offices and Home Offices (SoHo-LAN), Büro-LAN und Kopplung von Netzwerken,
interessiert uns hinsichtlich der Aufgabenstellung vor allem das Personal Area Network
(PAN).
2.1.1 Personal Area Network
Unter diesem Begriff fasst man die Kommunikation von Geräten eines oder einiger
weniger Nutzer im Umkreis von etwa 10m zusammen. Ausgehend davon kann man
annehmen, dass sich die kommunizierenden Geräte meist im gleichen Raum oder
zumindest in der unmittelbaren Nähe befinden. Dabei lassen sich die meisten
Anwendungen mit moderaten Bandbreiten zufrieden stellen. Hierunter stellt wiederum die
Kopplung externer Bediengeräte (einschließlich Notebook) mit der Dienstplattform das
Szenario der Wahl im Sinne der Zielsetzung dar.
2.2
Gerätetypen
Zur Erfüllung dieser Aufgaben müssen verschiedene Geräte zur Verfügung gestellt
werden. Dazu betrachten wir für unsere Aufgabe vor allem die Gruppe der NetzwerkAdapter, die die Verbindung der Endgeräte ermöglichen. In diese Kategorie fallen:
•
PCI- Karten zum Einsatz in Desktop-Computern. Da die Anbindung von
stationären Desktop- PCs weniger Marktbedeutung aufweist als die drahtlose
Vernetzung von portablen Notebooks, basieren die PCI- Lösungen nicht selten auf
den PC- Cards. Die Kompatibilität wird dann mit Hilfe zusätzlicher Schaltkreise
hergestellt
•
USB- Stationen zum flexiblen Einsatz an Desktop- und Notebook-Computern.
Allerdings muss die Unterstützung sowohl durch die PC-Hardware als auch durch
das Betriebssystem gegeben sein. Insbesondere für ältere PCs ist dies nicht
gegeben.
•
PC- Cards zum Einsatz in Notebooks
•
Integrierte WLAN- Adapter, die vom Hersteller fest in das Notebook eingebaut
werden
11
2.3
Der Standard IEEE802.11
Für drahtlose lokale Netze hat die Standardisierungsvereinigung des IEEE im Jahr 1997
mit dem 802.11 den ersten herstellerunabhängigen Standard für Übertragungsprotokolle
verabschiedet. Im Umfeld des IEEE802.11-Standards haben sich weitere Gremien gebildet,
die helfen sollen, den Markterfolg und die Interoperabilität der Geräte zu gewährleisten:
Die Wireless LAN Association (WLANA) soll die Verbreitung des Standards durch
Marketing- und Informationsaktivitäten unterstützen
Die 1999 gegründete Wireless Ethernet Compatibility Alliance (WECA) zertifiziert die
Interoperabilität der 802.11-kompatiblen Geräte. In diesem Zusammenhang werden die
Geräte nach IEEE802.11 auch unter dem Markennamen Wi-Fi.
Einige der wichtigsten Eigenschaften des 802.11-Standards sind:
•
•
•
•
•
5 Geschwindigkeiten: 54 MBit/s, 11 MBit/s, 5 MBit/s, 2 MBit/s und bei größerer
Entfernung Fallback auf 1 MBit/s (im Bereich von 2.4 GHz)
Robustheit der Datenübertragung durch Protokoll und RTS/CTS
Multi Channel Roaming - dadurch können mehrere Zellen denselben Bereich
abdecken und das Netzwerk insgesamt bekommt eine höhere Kapazität
Power-Management für längere netzunabhängige Betriebszeiten der mobilen
Geräte (Notebook, PDA, ...)
Verschlüsselung (WEP = Wired Equivalent Privacy; basiert auf RC4).
Am 25. Juni 2004 waren 4 Normen verabschiedet: 802.11, 802.11a, 802.11b und 802.11g.
Zur Verabschiedung vorgesehen noch für 2004 sind 802.11e und 802.11i.
•
802.11 ursprünglicher Standard, 1997 verabschiedet
o Datentransfer: brutto 1 oder 2 MBit/s
o Frequenzband 2,400 bis 2,485 GHz (lizenzfrei)
o Akzeptanz: veraltet, nicht mehr breit genutzt
•
802.11a Erweiterung der physischen Schicht, 1999
o Datentransfer: brutto 54 MBit/s
o Frequenzband 5 GHz (seit dem 13. Dezember 2002 in Deutschland
freigegeben)
o Akzeptanz: nicht verbreitet
•
802.11b Erweiterung der physischen Schicht, 1999
o Datentransfer: brutto 11 MBit/s (netto 50 %)
o Frequenzband 2,400 bis 2,485 GHz (lizenzfrei)
o Akzeptanz: noch relativ weit verbreitet
•
802.11g Erweiterung der physikalischen Schicht, 2003
o Datentransfer: brutto 54 MBit/s
o Frequenzband: 2,400 bis 2,485 GHz (lizenzfrei)
o Akzeptanz: mittlerweile der am weitesten verbreitete Standard
12
•
802.11n Neuer Standard in der Entwicklungsphase, geplant Ende 2006
o Datentransfer: brutto 540 MBit/s
o Frequenzband: geplant 5 GHz
o Akzeptanz: noch keine
Zusätzliche Erweiterungen von 802.11:
•
•
•
•
•
•
802.11c MAC-Layer-Bridging gemäß 802.1d
802.11d Anpassung an die regulatorischen Bestimmungen verschiedener Länder
802.11e Unterstützung von Quality-of-Service
802.11f Interoperabilität zwischen Basisstationen
802.11h Reichweitenanpassung, Indoor- und Outdoor-Kanäle (im 5-GHz-Band)
TPC/DFS
802.11i Erweiterungen bezüglich Sicherheit und Authentifizierung
Neben diesen gibt es proprietäre Erweiterungen, die andere Übertragungsraten erlauben
(22 MBit/s im 2,4-GHz-Band, PBCC, auch als "802.11b+" bezeichnet; oder 108 MBit/s).
Diese sind aber keine offiziellen IEEE-Standards.
Sendeleistungen: 2,4 Ghz: 100 mW
5 GHz: 60 mW, mit TPC/DFS 200 mW (indoor, ab 802.11h)
In Europa ist TPC/DFS vorgeschrieben, sodass weniger Störungen auftreten und AkkuBetriebszeiten deutlich verlängert werden.
DFS: Dynamic Frequency Selection; automatische Frequenzwahl; bevor ein Mobilgerät
sich in einem WLAN einbucht, beobachtet es erst einmal das Funk-Netz.
TPC: Transmit Power Control; Sendeleistungssteuerung; die mobilen Geräte senden nur
mit der tatsächlich benötigten Leistung
Kompatibilitäten: 802.11b und 802.11g sind zueinander kompatibel, jedoch fällt das
802.11g-Gerät dann in einen Kompatibilitätsmodus zurück, der die effektive
Geschwindigkeit auf ca. 10-15 MBit/s reduziert. 802.11a und 802.11h sind zueinander
kompatibel, keine Einschränkungen.
802.11 sieht drei Übertragungsverfahren vor: FHSS (Frequency Hopping Spread
Spectrum), DSSS (Direct Sequence Spread Spectrum) und Infrarot. Wie schon erwähnt,
sind die verschiedenen Verfahren sind nicht miteinander kompatibel. Vor allem bei 11
MBit/s dürfte DSSS das effizienteste System sein. Bei 802.11b wird nur noch DSSS
verwendet.
2.4
Aufbau
Die Familie der 802-Standards beschreibt mit der Bitübertragungsschicht (Physical Layer)
und der Sicherungsschicht (Data Link Layer) die unteren zwei Schichten des ISO/OSI Referenzmodells. Dabei wird die Verbindungsschicht noch einmal unterteilt: Die
13
Zugriffssteuerung übernimmt das Medium Access Control (MAC), die logische Steuerung
der Verbindungen erfolgt durch das Logical Link Control (LLC), das für alle Standards
nach IEEE802 identisch ist. Auf diese Weise können Protokolle der darüber liegenden
Schichten unabhängig vom Zugriffsmechanismus und der physikalischen Realisierung auf
die Kommunikationsdienste zugreifen. Insbesondere bedeutet dies, dass die drahtlosen
Protokolle nach 802.11 von Protokollen wie TCP/IP (Schichten 4 und 3) in prinzipiell der
gleichen Weise genutzt werden können wie herkömmliche drahtgebundene Protokolle
nach 802.3. Einschränkungen im Sinne einer reduzierten Datenrate können sich dennoch
durch die mehrfache Implementierung von Algorithmen zur Fehlerkorrektur oder
Verkehrssteuerung ergeben, wie sie im folgenden Kapitel erläutert werden.
¾ Zu den am weitesten verbreiteten Erweiterungen des Standards gehören die
Spezifikationen IEEE802.11a und IEEE802.11b/g. Bei gleicher Zielsetzung, höhere
Bandbreiten zu erreichen, beschreiten beide grundsätzlich unterschiedliche Wege.
Während der 802.11a einen weiteren Frequenzbereich im 5GHz-Bereich nutzt, in
dem größere Bandbreiten zur Verfügung stehen, nutzt der 802.11b (und g)
weiterhin das 2,4 GHz-ISM-Band. Der 802.11b (und g) greifen auf das DSSSVerfahren zurück. Als Modulationsverfahren zur besseren Ausnutzung des
Frequenzspektrums wird im Wesentlichen auf das Quadrature Phase Shift Keying
(QPSK) zurückgegriffen. Bei den Unterstandards 802.11a und 802.11g kommt das
OFDM-Modulationsverfahren zum Einsatz.
Mit der Wahl des DSSS-Verfahrens als Übertragungsstandard ist eine Einbeziehung des
802.11-DSSS-PHY verbunden, so dass auch Systeme nach 802.11-1997 mit Datenraten
von 1 oder 2 MBps angesprochen werden. WLAN-Systeme nach 802.11, die das FHSSVerfahren einsetzen, können jedoch nicht eingebunden werden.
2.5 Architekturen
2.5.1 Systemarchitekturen (Netzwerk-Topologien)
Der 802.11-Standard beschreibt die folgenden Betriebsarten, deren Hierarchie und Aufbau
in Abbildung 2.1 und Abbildung 2.2 dargestellt sind.
Abbildung 2.1: Gliederung der Betriebsarten im IEEE802.11
14
Abbildung 2.2: Architekturen der Betriebsarten im IEEE802.11
Im Ad-Hoc-Modus können Endgeräte in einem Peer-to-Peer-Netzwerk unmittelbar
miteinander kommunizieren. In diesem Independent Basic Service Set (IBSS) können
schnell, einfach und kostengünstig Netzwerke über meist kurze Entfernungen und mit einer
begrenzten Anzahl von Teilnehmern ohne Integration in eine größere Netzwerkstruktur
aufgebaut werden.
Die Rechner müssen sich nicht gegenseitig hören können. Access Points für den zentralen
Datentausch gibt es nicht, der Versorgungsbereich ist daher potentiell halb so groß wie in
der „Managed Infrastructure“. Werden aber nur zwei Rechner mteinander verbunden, etwa
das Basisgerät von LISTIG und ein Notebook, spielt das keine Rolle: In dem Fall muss die
WLAN-Antenne des Basisgeräts dort aufgestellt werden, wo sich ansonsten der Access
Point befinden würde. Falls man sich entscheidet externe Wireless-USB-Adapter
einzusetzen, ließen sich notfalls mit mehreren USB-Hubs hintereinander größere Distanzen
überbrücken. Längere Koaxialkabel hingegen rentieren sich kaum, die Kabelverluste sind
schon bei Längen von 10 m enorm.
Im Infrastruktur-Modus findet die Kommunikation grundsätzlich über einen Access Point
(Zugangspunkt) statt. In dieser Betriebsart können auch Stationen außerhalb der direkten
Reichweite kommunizieren. Die Anbindung an ein externes Netzwerk kann mit Hilfe eines
Gateways erfolgen.
¾ In der einfachsten Version besteht ein solches Netzwerk aus einem
Access Point und einer Gruppe von drahtlosen 802.11-Stationen im
Funkbereich des Access Points.
Ein solches Netzwerk wird als Basic Service Set (BSS) bezeichnet.
¾ Werden zwei oder mehrere BSS in einem gemeinsamen Netzwerk betrieben,
indem die Access Points über ein dahinter liegendes Netzwerk gekoppelt werden,
so spricht man von einem Extended Service Set (ESS). Das koppelnde Netzwerk
bezeichnet der Standard als Verteilungssystem (Distribution System - DS).
Dieses kann drahtgebunden oder auch mit Hilfe von Richtfunkstrecken
implementiert werden. Im ESS-Modus muss insbesondere die Lokalisierung der
Stationen in einem BSS und ein Wechsel der Stationen von einem BSS zu einem
anderen unterstützt werden. Einen solchen Wechsel bezeichnet man als Roaming.
Die hierzu notwendige Kommunikation der Zugangspunkte über das
15
Verteilungsnetz ist noch nicht Bestandteil des IEEE802.11-Standards (vgl.
Abschnitt 4.7).
Im Infrastrukturmodus müssen sich die Stationen beim Access Point anmelden. Sie
übertragen dann auf dem Kanal, der von dem Access Point verwendet und ihnen
vorgegeben wird.
¾ Die Zuordnung kann vom Systemadministrator vorgegeben werden, um
Zugriffsrechte zu verwalten und Benutzergruppen physisch zusammenzufassen.
¾ Es besteht aber auch die Möglichkeit einer Zuordnung. Insbesondere existieren
dabei verschiedene herstellerspezifische Verfahren eines Load Balancing (automatische Zuordnung). Auch kann im Rahmen des Roaming eine neue Zuordnung zum
Beispiel durch die räumliche Veränderung der mobilen Station erfolgen, die zu
einer Veränderung der Kanaleigenschaften führt.
¾ Die Bezeichnung des Ad-hoc-Modus im Rahmen des IEEE802.11-Standards
unterscheidet sich von der Definition des Ad-hoc-Networkings, worunter einfach
die Fähigkeit von Anwendungen verstanden wird, selbsttätig miteinander in
Verbindung treten zu können. Denn auch im Infrastrukturmodus müssen die Access
Points und die mobilen Stationen selbsttätig Informationen austauschen und den
Anmeldevorgang durchführen. Also: Ad-hoc-Networking betreiben die
IEEE802.11-Netze sowohl im Ad-hoc- als auch im Infrastrukturmodus.
2.5.2 Protokollarchitektur
Bei der Betrachtung der Protokollarchitektur des IEEE802.11 ist neben der auch in anderen
Protokollen üblichen Aufteilung einer Ebene in einen Sublayer und einen Management
Layer die weitere Aufteilung der Bitübertragungsschicht (PHY-Layer) hervorzuheben. In
dieser Aufteilung übernimmt das Physical-Medium-Dependent-Sublayer (PMD) die
Modulation und Kodierung, während das Physical Layer Convergence Protocol (PLCP)
medienunabhängig eine übliche PHY-Schnittstelle zur Verfügung stellt: Insbesondere
liefert das PLCP auch das Clear-Channel-Assignment-Signal (CCA), das den aktuellen
Zustand des Mediums anzeigt. Dieses CCA-Signal dient neben der Beobachtung der
Signale, die von anderen Kommunikationsteilnehmern ausgesendet werden, auch der
Vermeidung von Kollisionen mit Störungen durch Mikrowellenherde. Diese senden bei 50
Hz-Netzen und einer Aktivität von 50% Störsignale mit einer Dauer von 10 ms und einer
Pause von 10 ms aus. Selbst wenn das Störsignal des Mikrowellenherds während der
aktiven Phase sehr stark ist, stehen immer noch die 10 ms Pausenzeit für eine Übertragung
des WLAN zur Verfügung.
Die Dienstzugangspunkte (Service Access Points - SAP) für den Signalfluss sind in
Abbildung 2.3 dargestellt.
¾ Der MAC-SAP ist identisch mit den Dienstzugangspunkten der anderen Standards
nach IEEE802.x, insbesondere auch mit dem Ethernet-Standard 802.3.
¾ Der PHY-SAP ist unabhängig von der Realisierung der physischen Übertragung.
16
Eine weitere Besonderheit ergibt sich dadurch, dass auf beiden Ebenen die von den
höheren Ebenen erhaltenen Daten mit einem zusätzlichen Rahmen verpackt werden. Auf
die Rahmenformate gehe ich im nächsten Kapitel näher ein.
Abbildung 2.3: Die Dienstzugangspunkte der MAC und PHY-Schichten im IEEE802.11
2.6
Kanalzugriff und Rahmenstruktur
2.6.1 Zugriffsverfahren
Das Medium "Funk" ist in gewisser Hinsicht mit dem traditionellen Ethernet vergleichbar,
bei dem mehrere Stationen um den Zugriff auf ein Medium (bzw. jetzt ein Frequenzband)
konkurrieren. Bei WLANs nach 802.11 werden folgende Verfahren zur Koordinierung des
Medienzugriffs eingesetzt:
¾ Carrier Sense Multiple Access / Collision Avoidance (CSMA/CA)
Eine sendewillige Station prüft, ob das Medium (der Funkkanal) frei ist. Das vom
Ethernet bekannte CSMA/CD ist nicht einsetzbar, weil eine Station während des
Sendens kaum feststellen kann, ob eine weitere Station ebenfalls sendet.
¾ Distributed Coordination Function (DCF)
Eine absolute Vermeidung von Kollisionen ist nicht gegeben. Allerdings wird die
Zeitspanne, in der Kollisionen vorkommen können, durch ein geschicktes
Verfahren minimiert:
1. Station wartet Pause mit einer Mindestlänge ab
DCF Inter-Frame Spacing (DIFS)
2. Empfänger quittiert nach kurzer Pause
Short Inter-Frame Spacing (SIFS)
3. bei "besetzt": DIFS + Zufallswert (Backoff) abwarten
"Fairness": Zufallswert wird nach eigenem Senden gesetzt, sonst
heruntergezählt
17
Abbildung 2.4: Kanalzugriff
¾ Wegen der endlichen Ausbreitungsgeschwindigkeit kann es natürlich trotzdem zu
Kollisionen kommen, wenn zwei Stationen nahezu zum selben Zeitpunkt einen
freien Kanal feststellen und zu senden beginnen. Durch die ausbleibende Quittung
(ACK) kann die Kollision erkannt werden. Eine Zufallskomponente bei der Zeit bis
zum Wiederholversuch sorgt dafür, daß die beiden Stationen beim nächsten Mal
(höchstwahrscheinlich) nicht wieder kollidieren.
Der eben beschriebene Mechanismus funktioniert allerdings nur dann korrekt,
wenn alle Stationen alle anderen auch empfangen können (in unserem Beispiel
kann C sowohl A als auch B empfangen). Mitunter wird das nicht gegeben sein,
wenn zwischen bestimmten Stationen Hindernisse vorhanden sind. Wir bezeichnen
dies als das Problem der hidden nodes. Eine Station D, die A nicht empfangen
kann, könnte beispielsweise mitten während der Daten-Sendung von A beginnen.
Für diesen Fall gibt es den (optionalen) Mechanismus Request to send/Clear to
send (RTS/CTS).
Den erreichten Effekt bezeichnet man als Virtual Carrier Sense. D erfährt aus
dem CTS von B, dass der Kanal durch A für eine gewisse Zeit belegt sein wird:
Abbildung 2.5: RTS/CTS-Ablauf
18
RTS- und CTS-Rahmen enthalten eine Längenangabe für Data.
¾ Optional ist eine Point Coordination Function (PCF), bei der die
Zugriffskoordinierung
durch
den
Access
Point
erfolgt.
Damit lassen sich beispielsweise definierte Teilbandbreiten vergeben (Stichwort
"Multimedia" ...)
2.6.2 Rahmenformate
Hier sieht man die Rahmenstruktur des Physical Layer Convergence Protocol (PLCP):
Abbildung 2.6: PLCP bei 802.11/11b
192 Bits werden mit 1 Mbit/s übertragen,
bei 802.11b ist eine kürzere Präambel zugelassen.
In der Payload haben wir dann folgende Rahmenstruktur:
Abbildung 2.7: MAC-Rahmen bei 802.11
19
Die bis zu vier vorhandenen MAC-Adressen haben folgende Semantik:
DS steht für "Distribution System"
toDS/fromDS
Adr 1
Adr 2
Adr 3
00
01
10
11
Ziel
Ziel
BSSID
Ziel-BSSID
Quelle
BSSID
Quelle
BSSID
BSSID
Quelle
Ziel
Ziel
Quelle
IBSS
vom AP
zum AP
AP-AP-Bridge
Adr 4
Tabelle 2.1: Semantik der MAC-Adressen
Als Basic Service Set Identifier (BSSID) wird die MAC-Adresse des WLAN-Interfaces
des betreffenden AP verwendet.
Man fragt sich zunächst, warum hier nicht wie beim Ethernet die MAC-Adressen
von Absender und Empfänger ausreichend sind. Die Erklärung liefert eine Station,
die zwei APs im selben Subnetz "sieht". In diesem Fall darf nur einer der APs den
Rahmen weiterleiten, diese Auswahl wird durch die MAC-Adresse des AP
getroffen.
Im Falle IBSS (Betrieb ohne AP) wird als BSSID eine 48-Bit-Zufallszahl verwendet. Die
Stationen eines IBSS-Netzes erfahren diesen Wert, weil er von einem (dynamisch
gewählten) Mitglied des Netzes zyklisch als Bakensendung (Beacon) verbreitet wird. Es
gibt weiterhin eine für Broadcasts reservierte BSSID (alles 1-Bits).
Das
soll
den
Betrieb
mehrerer
Versorgungsbereichen ermöglichen.
IBSS-Netze
mit
überlappenden
Die beschriebene MAC-Schicht kann mit unterschiedlichen physischen Schichten
kombiniert werden:
Abbildung 2.8: Zusammenwirken der Standards
2.6.3 Fragmentierung von langen Nachrichten
Längere Mitteilungen lassen sich in Fragmente zerlegen, um hierdurch die
Wahrscheinlichkeit der fehlerfreien Übertragung jedes einzelnen Fragments zu erhöhen.
Dabei werden die zu einer Nachricht gehörenden Fragmente mit Hilfe des
Sequenzkontrollfelds gekennzeichnet, das im Steuerrahmen übermittelt wird. Zum einen
wird eine Identifikationsnummer der Nachricht angegeben, zum anderen werden die
einzelnen Rahmen durchnummeriert. Bei jedem Rahmen wird außerdem das More Frag-
20
Bit gesetzt. Lediglich beim letzten Rahmen wird diese Kennzeichnung nicht
vorgenommen.
Der Wert RTSthreshold, ab dem ein Paket fragmentiert werden soll, kann vom
Systemadministrator eingestellt werden. Dabei muss einerseits berücksichtigt werden, dass
lange Pakete mit einer höheren Wahrscheinlichkeit von Bitfehlern während der
Übertragung belastet sind, wobei im Fehlerfall die Übertragung wiederholt werden muss.
Andererseits erhöht sich aber durch die Fragmentierung der Protokollaufwand, so dass hier
für die jeweiligen Gegebenheiten des Funknetzes ein Optimum gefunden werden muss.
Dies geschieht meist experimentell.
2.6.4 Verwaltung von Stationen
In diesem Abschnitt finden insbesondere zwei Aspekte Berücksichtigung:
¾ Die Zuordnung der mobilen Stationen zur Zelle eines Zugangspunkts.
¾ Der Aufbau von Ad-hoc-Netzwerken.
Die Verwaltung von Stationen im Sinne des Ad-hoc-Networking umfasst die folgenden
drei Schritte:
¾ Identifikation von Stationen,
¾ Authentifizierung und
¾ Anmeldung.
Die Verwaltung von Stationen im Sinne ihrer Adressierung und Identifizierung findet sich
in Abschnitt 2.6.6.
Beacon-Rahmen
Die Beacon-Rahmen stellen Management-Rahmen dar, die in einer Zelle in periodischen
Zeitintervallen per Broadcast an alle Teilnehmer einer Zelle versendet werden und
grundlegende Informationen über die Zelle enthalten. Beacon-Rahmen werden in
Infrastruktur-Netzwerken von den Zugangspunkten versendet. In Ad-hoc-Netzwerken kann
jede Station zur nächsten TBTT (Target Beacon Trans-mission Time) einen BeaconRahmen versenden.
Damit dies nicht mehrere Stationen gleichzeitig tun, wird wieder ein Algorithmus zur
Kollisionsvermeidung eingesetzt, indem jede Station zur nächsten TBTI einen Tuner mit
einer Zufallszahl lädt und den Beacon-Rahmen nur dann sendet, wenn der Tuner
abgelaufen ist und bis zu diesem Zeitpunkt noch kein Beacon-Rahmen von einer anderen
Station empfangen wurde.
Wird ein Zugangspunkt eingeschaltet, so beginnt er mit der Versendung von BeaconRahmen in den festgesetzten Zeitabständen. Eine Station, die kein AP ist, kann also durch
die Überwachung aller physischen Kanäle herausfinden,
21
von welchen Zellen sie Signale empfangen kann. Diesen Vorgang bezeichnet man als
Passives Scanning. Dabei kann eine Station durchaus Beacon-Rahmen von mehreren
Zugangspunkten erhalten, wenn sie sich im Bereich überlappender Zellen befindet. Die
Station kann aufgrund der Signalstärke des Beacons entscheiden, bei welcher Zelle sie sich
anmelden möchte. Ist die Station so konfiguriert, dass sie sich nur bei einer bestimmten
Zelle anmelden darf, so schränkt dies natürlich die Auswahl der Funkzelle ein.
Darüber hinaus kann eine Station auch so konfiguriert werden, dass sie eine neue Zelle als
Ad-hoc-Netzwerk startet, nachdem sie eine bestimmte, einstellbare Zeit auf den Empfang
eines Beacon-Rahmens für ein Ad-hoc-Netzwerk gewartet hat.
Stationen können aber auch Aktives Scanning betreiben. Hierzu werden ManagementRahmen per Broadcast mit dem Subtype Probe Request versendet. Im Datenteil des
Rahmens ist entweder lediglich angegeben, dass die Station eine beliebige Zelle sucht,
oder es ist die Adresse der gesuchten Zelle hinterlegt. Empfängt ein AP einen solchen
Rahmen, antwortet es mit einem Management-Rahmen - mit dem Subtype Probe Response
mit den Informationen über seine Zelle. In einem Ad-hoc-Netzwerk antwortet diejenige
Station, die als Letzte für die Zelle einen Beacon-Rahmen erzeugt hat.
Authentifizierung
Unter Authentifizierung versteht man den Identitätsnachweis einer Station gegenüber einer
anderen Station. Der IEEE802.11-Standard unterscheidet zwei Arten von
Authentifizierung:
¾ Die offene Authentifizierung folgt einem sehr einfachen Algorithmus, der die
Authentifizierung nur formal erfüllt. Die in Abbildung 4.22 dargestellte offene
Authentifizierung ist das standardmäßig implementierte Verfahren.
Abbildung 2.9: Offene Authentifizierung von Stationen
¾ Die Authentifizierung durch gemeinsame Schlüssel (Shared Key Authentication)
setzt auf der verschlüsselten Kommunikation mit Hilfe des WEPAlgorithmus auf.
Er beruht auf der Überprüfung, ob die beiden beteiligten.Stationen denselben
geheimen Schlüssel aufweisen.
22
Dies wird dadurch erreicht, dass die Authentifizierung gebende Station S2 der
Authentifizierung suchenden Station SI einen Text übergibt (Challenge Text), den diese
verschlüsselt zurücksendet. Nur wenn die Verschlüsselung korrekt war, erhält diese die
Nachricht der erfolgreichen Authentifizierung zurück (vgl. Abbildung 2.8).
Abbildung 2.10: Authentifizierung von Stationen durch gemeinsame Schlüssel
Anmeldung
Grundlegend für die Funktionsweise von Infrastrukturnetzen ist die Zuordnung der
Stationen zu den jeweiligen Zellen. Dabei muss für jede Station eine eindeutige
Entscheidung möglich sein, zu welcher Zelle sie gehört, um Daten in das
Verteilungssystem zu schicken. Eine solche Zuordnung kann mit Hilfe der ESSID
erfolgen. In vielen Fällen werden aber auch herstellerspezifische Steuerinformationen
eingesetzt.
Auf der anderen Seite muss einem Access Point bekannt sein, welche Stationen sich als zu
seiner Zelle gehörend betrachten. Diese Zuordnung erfolgt über eine explizite Anmeldung
(Association), wie sie in Abbildung 2.9 dargestellt ist.
Anmeldung und Authentifizierung bilden zusammen ein zweistufiges Zuordnungssystem:
¾ Eine Station kann sich nur anmelden, wenn sie authentifiziert ist.
¾
Eine Station kann das Verteilungssystem nur dann nutzen, wenn sie bei einer Zelle
angemeldet ist.
23
2.6.5 Adressierung von Stationen
Bei der Adressierung im Rahmen von IEEE802.11-Netzwerken sind mit der Adressierung
auf MAC-Ebene und der Identifizierung auf Netzwerkebene zwei Aspekte zu
unterscheiden, die jedoch auch miteinander verbunden sind.
Auf der MAC-Ebene verwendet IEEE802.11 Adressen, die den MAC-Adressen des
IEEE802.3-Ethernet-Standards entsprechen. Auch aus diesem Grund ist die Einbindung in
die bestehenden Betriebssysteme vergleichsweise einfach. Allerdings muss noch auf einen
Aspekt hingewiesen werden, der von Zeit zu Zeit zu Verwirrung führt. Die Stationen in
Funknetzen, die Brückenfunktionen erfüllen, weisen mindestens zwei Netzwerkanschlüsse
auf. Dies gilt beispielsweise für die Zugangspunkte. Diese sind auf der einen Seite an das
drahtgebundene Verteilungssystem (Distribution System) angeschlossen sind und verfügen
dort über eine MAC-Adresse für das IEEE802.3-Netzwerk. Auf der anderen Seite wird
auch dem Funkmodul eine MAC-Adresse zugewiesen.
Auf der Netzwerkebene wird zusätzlich eine Identifikation durchgeführt.
Dabei sind zwei Identifikationsebenen zu unterscheiden:
¾ Für die Identifikation eines Basic Service Set (BSS) wird eine BSSID eindeutig
zugewiesen. Bei einem drahtgebundenen BSS wird die MAC-Adresse des
Zugangspunkts gewählt, der den Dienst für das BSS erbringt. Für ein unabhängiges
BSS (Independent BSS - IBSS) wird die BSSID zufällig gebildet.
¾ Auf der zweiten Ebene wird vom Systemadministrator eine Electronic System ID
(SSID oder ESSID) in allen mobilen Teilnehmern und allen Zugangspunkten
eingetragen, die zu einer Domäne gehören sollen.
Diese SSID bildet auch ein Element der Zugangsbeschränkung.
2.6.6 Synchronisation
Mit Hilfe der Timing Synchronisation Function (TSF) werden alle Stationen auf eine
Systemzeit synchronisiert. Die Synchronisation wird durch regelmäßiges Versenden des
TSF-Zeitgebers in einen so genannten Beacon zu den durch Target Beacon Transmission
Time (TBTT) festgelegten Zeizten gewährleistet. In inem Infrastrukturnetz ist der
Zugangspunkt für di Aussendung des Snchronisations-Beacons zustandig, während in
einem Adhoc-Netz die Beacon-Erzeugung auf alle Stationen verteilt wird. Hierzu wird die
Ausstrahlung des Beacons von den verschiedenen Stationen mit verschiedenen, zufällig
ausgewählten Verzögerungszeiten durchgeführt.
2.6.7 WLAN und TCP/IP
An dieser Stelle sollen kurz zwei Aspekte angesprochen werden, die dazu führen, dass die
Übertragung von TCP/IP- basiertem Verkehr über WLAN- Technologien nicht die
Leistungsfähigkeit erlaubt, die theoretisch möglich wäre.
Zunächst handelt es sich bei TCP/IP um ein verbindungsorientiertes Protokoll, das den
erfolgreichen Empfang von Paketen mit Empfangsbestätigungen quittiert. In dem üblichen
24
Fall, dass Informationen nur in einer Richtung übertragen werden, muss der Empfänger ein
getrenntes Paket an den Sender zurückschicken, das nur die Empfangsbestätigung enthält.
Wird diese Empfangsbestätigung nun über ein WLAN übertragen, das nach dem CSMACA- Algorithmus arbeitet, dann ergibt sich der in Abbildung 10.3 gezeigte Ablauf. Es ist
offensichtlich, dass die erreichbare Nutzdatenrate in diesen Fällen deutlich reduziert wird.
Der zweite Aspekt bezieht sich auf die Tatsache, dass TCP/IP für den Einsatz in
drahtgebundenen Netzen entwickelt wurde, was zu einer Anpassung der Zeitkonstanten an
die Gegebenheiten im drahtgebundenen Netz führte.
Abbildung 2.11: Unidirektionaler TCP-Verkehr über ein WLAN mit CSMA/CA-MAC
Jedes Paket wird auf der MAC- und auf der TCP-Ebene bestätigt. Dies führt zu einem erheblich
höheren Verkehrsaufkommen und im Falle von fortlaufendem Verkehr vom Sender S1 zum
Empfänger S2 zu einer erhöhten Kollisionswahrscheinlichkeit.
Dabei wählt TCP die Geschwindigkeit bei der Sendung von Paketen in Abhängigkeit von
der gemessenen Zeit vom Senden der vorangegangenen Pakete bis zum Empfangen der
zugehörigen Bestätigung. Da diese Zeiten aber bei drahtlosen Netzen deutlich länger sein
können als bei drahtgebundenen Netzen, ohne dass tatsächlich eine Verstopfung des
Übertragungskanals vorliegt, liefert TCP unter manchen Umständen deutlich weniger
Pakete, als das Netz übertragen könnte.
2.7
Bitübertragung
2.7.1 Einordnung
Auf der Bitübertragungsschicht ergeben sich naturgemäß die größten Unterschiede zur
drahtgebundenen Kommunikation, da ja nunmehr auf elektromagnetische Wellen als
Übertragungsmedium über die Luftschnittstelle zurückgegriffen wird. Bei der
Spezifikation des physischen Übertragungsprotokolls müssen die Eigenschaften der
Übertragung über die Luftschnittstelle - und hierbei insbesondere Störungen –
berücksichtigt werden.
25
Abbildung 2.13: Algorithmus einer expliziten Anmeldung
Zusätzlich schreibt der IEEE802.11-Standard anhand einer Klassifizierung vor, welche
Rahmen in welchem der drei Zustände von den Stationen gesendet oder empfangen werden
dürfen, um auf diese Weise den zweistufigen Aufbau umzusetzen. Zu beachten ist dabei,
dass im nicht authentifizierten und nicht angemeldeten Zustand Datenrahmen innerhalb
einer Zelle gesendet und auch empfangen werden dürfen.
Während in den frühen IEEE802.11-kompatiblen Produkten vorwiegend das FHSSVerfahren (Frequenzsprung-Verfahren) Anwendung gefunden hat, setzt sich das DSSSVerfahren zunehmend durch. Die maßgebliche Begründung hierfür besteht darin, dass die
Erweiterung IEEE802.11b/g und die damit erreichbare Datenrate nur mit dem DSSSVerfahren erreicht wird Dabei bleiben die Systeme auf eine einfache Weise
abwärtskompatibel zu den langsamen Geschwindigkeiten.
2.7.2 Direct Sequence Spread Spectrum
Die Spreizspektrum-Techniken (Spread Spectrum) wurden ursprünglich für militärischen
Funkverkehr entwickelt. Durch die Aufspreizung des Signals auf ein breites Frequenzspektrum ist dieses Signal von unerwünschten Mithörern schwieriger festzustellen als ein
herkömmliches schmalbandiges Funksignal.
Dies gilt allerdings strenggenommen nur, wenn der Mithörer die exakten
Parameter des Signals nicht kennt.
Daneben ist dieses Signal auch durch schmalbandige Funksignale nur schwer zu stören.
Selbst andere Spreizspektrum-Signale wirken nur wenig störend, wenn sich die
Spreizvorschriften unterscheiden.
Da bei WLANs mittlerweile DSSS-Verfahren die Hauptrolle spielen, werden wir uns diese
nachfolgend näher ansehen.
Oft werden mehrere WLANs bzw. mehrere Zellen eines WLAN mit überlappenden
Funkbereichen betrieben. Hier ist es vorteilhaft, unterschiedliche Frequenzbereiche zu
benutzen, um die gegenseitigen Beeinflussungen zu minimieren. Eine Separierung auf der
26
logischen Ebene ("Netzname") ist zwar auch möglich, allerdings ohne eine Vervielfachung
der Bandbreite.
Die Kanalaufteilung für DSSS hat folgende Merkmale:
•
•
•
•
•
Kanalbreite je 22 MHz
Kanäle sind überlappend!
Europa (ETSI): 1 - 13
U.S., Kanada: 1 - 11
Japan: 14
Abbildung 2.14: Kanalaufteilung 2,4 GHz
Es existieren also nur drei nichtüberlappende Kanäle. Im Idealfall wird man z.B. nur die
Kanäle 1, 6 und 11 vergeben:
Abbildung 2.15: Kanalvergabe-Beispiel
Praktische Funkzellen sind natürlich (leider) nicht wabenförmig, auch halten sich die
Funkwellen
nicht
an
eine
exakte
Grenze.
Mit nur drei nichtüberlappenden Kanälen wird man typischerweise keine Versorgung einer
Fläche ohne Interferenzen erzielen. Die Nutzung von Kanälen mit Überlappung ist dann
oft ein brauchbarer Kompromiss, denn der Störeinfluss nimmt durch den Kanalversatz
doch etwas ab.
Ein wesentlicher Zusammenhang besteht zwischen der Zellengröße und der Bandbreite
pro Fläche. Letztere können wir erhöhen, wenn wir kleinere Zellen bilden. Das
funktioniert aber nur, wenn wir gleichzeitig die Reichweiten, d.h. die Sendleistungen
verringern!
27
Beim Übertragungsverfahren Direct Sequence Spread Spectrum nach 802.11 wird die
Nutzinformation mit einem Spreizkode XOR-verknüpft:
Abbildung 2.16: DSSS für 1/2 Mbit/s
Der 11-Bit-Spreizkode ("Barker-Kode") 10110111000 ist standardisiert und einheitlich, daher
findet hier kein Kodemultiplex (CDMA - Code Division Multiple Access) statt.
Mit einem Modulationsverfahren wird nun dieses Resultat einem Träger aufmoduliert,
wobei zwei oder vier Phasen verwendet werden. Das ergibt dann ein bzw. zwei kodierbare
Bits pro Schritt. Mehr Zustände bedeuten eine höhere Datenrate, allerdings auch einen
größeren Signal/Störabstand und damit geringere Reichweite.
•
•
1 Mbit/s:
Differential Binary Phase Shift Keying (DBPSK)
2 Mbit/s:
Differential Quadrature Phase Shift Keying (DQPSK)
Abbildung 2.14: QPSK-Phasendiagramm
•
11/5,5 Mbit/s (802.11b):
Complementary Code Keying (CCK) + DQPSK
Um die höheren Datenraten zu erreichen, wird bei 802.11b kein konstanter
Spreizkode mehr verwendet, sondern dieser als zusätzliches Kodierelement genutzt.
28
Abbildung 2.15: CCK-Erzeugung
Statt 11-Bit-Barker-Kode wird ein komplexer 8-Bit-Kode verwendet,
aus den möglichen 48 Kodeworten werden 64 mit möglichst optimaler Distanz ausgewählt.
Die Symbolrate ist 1,375 Msym/s
1 aus 64 CCK: 6 + 2 => 8 bit * 1,375 Msym/s = 11 Mbit/s
1 aus 4 CCK: 2 + 2 => 4 bit * 1,375 Msym/s = 5,5 Mbit/s
Die unterschiedlichen Kanäle mehrerer 802.11-Systeme unterscheiden sich durch
verschiedene Trägerfrequenzen im Sinne eines FDMA-Verfahrens. Dabei erreicht ein
Kanal aufgrund der Spreizung mit einem 11 Bit langen PN-Code die Bandbreite von 22
MHz. In Nordamerika und in Europa ist auf diese Weise der Betrieb von drei
überlappungsfreien Kanälen möglich. Während in Nordamerika nur die Kanäle 1, 6 und 11
mit einem Bandabstand von 3 MHz überlappungsfrei betrieben werden können, sind in
Europa mit 13 Auswahlkanälen unterschiedliche Kombinationen oder größere
Bandabstände möglich. So erreicht man z.B. bei der Nutzung der Kanäle 1, 7 und 13
Bandabstände von 8 MHz. Wenn man die Kanäle 1, 6 und 13 nutzt, dann beträgt der
Bandabstand zwischen den Kanälen 6 und 13 immerhin 30 MHz.
Abbildung 2.16: Kanalzuordnung beim DSSS-Verfahren im IEEE802.11
Dieser Aspekt wird von den Befürwortern der anderen Frequenzspreiztechnologie, dem
Frequenzsprungverfahren, gern als Kritikpunkt angeführt.
Die Frequenzspreizmethode mit Barker-Code zugrunde legend leuchtet es ein, dass die
Qualität von DSSS-Systemen nicht nur im Sinne ihrer Kanaleffizienz, sondern auch in
Bezug auf ihre Störunempfindlichkeit mit wachsendem Spreizfaktor steigt. Entsprechend
erfüllt das IEEE802.11-Verfahren nur minimale Anforderungen.
29
3.
Das Basisgerät des LISTIG-Systems
Abbildung 3.1: Die Hauptplatine des Basisgerätes
Das Herzstück des LISTIG-Basisgeräts bildet der STPC Atlas Prozessor der Firma ST
Microelectronics. Er ist passiv gekühlt und unterstützt alle üblichen Schnittstellen wie den
PCI-Bus und Schnittstellen für Eingabegeräte und Speichermedien. Der Prozessor befindet
sich auf einem 120 mm x 124 mm großen Mainboard. Dessen Spannungsversorgung wird
durch ein steckerseitig modifiziertes
Standard-PC-Netzteil gewährleistet. Die
Grafikausgabe basiert auf integriertem Grafikchip. Für die Bildschirmausgaben stehen
sowohl eine 15-polige HDSUB-Buchse für den Anschluß eines CRT-Monitors, als auch
ein 18 Bit breites LVTTL-Interface für den digitalen Anschluss eines TFT-Displays in
Form einer 40-poligen ODU-Minifix Stiftleiste zur Verfügung. Die Spannung ist über eine
Sicherung gegen Kurzschluss geschützt. Weiterhin mit an „Board“ sind ein PS/2Anschluss für eine Tastatur, ein COM-Anschluss mit LVTTL-Pegel und eine 4-polige
Stiftleiste für das Nachaußenführen eines USB-Ports.
Man erkennt, dass trotz der bescheidenen Abmessungen des Mainboards alle wichtigen
Schnittstellen zur Erfüllung von grundlegenden Aufgaben eines Computersystems
vorhanden sind. Zwei PCI-Steckplätze (32 Bit, 5V) bieten die Möglichkeit das System mit
Erweiterungskarten aufzurüsten. Eine Maus lässt sich entweder an der seriellen Schnittstelle (COM) oder am USB-Port betreiben. Zum Anschluss einer Standard-ATA-Festplatte
und eines CD-ROM Laufwerks steht natürlich die IDE-Schnittstelle zur Verfügung. Sie
entspricht dem ATA4-Standard.
In meiner Testkonfiguration verwendete ich eine 40 GB große Festplatte von Western
Digital, die mit Jumpern auf den Betrieb mit maximal 32 GB herunterkonfiguriert wurde.
Als Hauptspeicher wurde für das Testsystem 128 MB SDRAM verwendet.
Das PC-BIOS basiert auf dem General Software Embedded BIOS 4.3 und unterstützt das
Booten aus linearem Flash-Speicher. Dadurch kann später im alltäglichen Einsatz ganz auf
eine Festplatte verzichtet werden. Ohne Festplatte gibt es keine bewegten mechanischen
Bauelemente, was die Robustheit des Systems erhöht und außerdem den Geräuschpegel
30
reduziert. Für das Betriebssystem stehen 4MB und als Programmspeicher 8MB FlashSpeicher zur Verfügung. Als lokales Betriebsystem bieten sich für das Basisgerät
DOS/Embedded DOS und Linux an.
Auf dem Testsystem wird das Open-Source Betriebssystem Debian/GNU Linux genutzt.
Debian verwendet den Linux-Betriebssystemkern, aber die meisten grundlegenden
Systemwerkzeuge stammen vom GNU-Projekt. Hierin vereinen sich weltweit fast
eintausend aktive Entwickler, die in ihrer Freizeit bisher mehr als 8700 Anwendungspakete
(vorkompilierte Software, die in einem praktischen Format für eine einfache Installation
auf dem Rechner zusammengestellt ist) für Debian produziert haben. Das neueste stabile
Release von Debian ist 3.0 (Codename „Woody“). Die neueste Aktualisierung zu diesem
Release wurde am 1. Januar 2005 vorgenommen.
Zusätzliche Informationen zum Basisgerät können der mitgelieferten Kurzbeschreibung
zum STPC-Board des Hörmann Funkwerks Kölleda entnommen werden.
Abbildung 3.2: Der Versuchsaufbau des Projekts LISTIG
4.
Auswahl des Schnittstellenadapters
4.1
Vorbetrachtung
Mobile Computer ab der PDA-Klasse verfügen über Web-Browser und TCP/IP-Protokollstacks. Sub-Notebooks und Notebooks sind mit den gleichen Browsern wie SchreibtischPCs ausgerüstet. Diese Programme sind dabei nicht nur zum Surfen per Modem-, ISDNoder DSL-Zugang im Internet geeignet, sie lassen sich auch zur Fernsteuerung eingebetteter Systeme, im Sinne der Aufgabenstellung also von Automatisierungssystemen, per
Bluetooth oder WLAN nutzen. Unter diesen Aspekten habe ich mich zur Bearbeitung
meiner Aufgabe für das Kommunikationsmodell Notebook / Basisgerät entschieden.
Auf der einen Seite stehen dem Anwender heute eine ganze Reihe mobiler Endgeräte zu r
Verfügung, um Embedded-Systeme zu steuern. Auf der anderen Seite fehlen noch
31
genügend eingebettete Systeme, die WLAN-Module integrieren. Aber wie wird einen
solche Schnittstelle mit vertretbarem Aufwand realisiert? Welche Hard- und
Softwarekomponenten sind erforderlich? Ein einfaches Konzept lässt sich auf Linux-Basis
realisieren. Inzwischen gibt es für WLAN zahlreiche Chipsätze am Markt. Die
Technologie ist nicht mehr neu und die verfügbaren Schaltkreisfamilien inzwischen auch
sehr ausgereift. Daher erscheint die Integration einer entsprechenden Funkschnittstelle auf
den ersten Blick relativ einfach. Man könnte auf einen WLAN-Chipsatz, wie z.B. den
PRISM 2, PRISM 2.5 oder PRISM 3 von Intersil setzen. Der Integrationsaufwand auf
einem Non-Windows-System ist allerdings nicht zu unterschätzen, da sehr komplexe
Protokollstacks portiert werden müssen. Für diese sind teilweise erhebliche Lizenzkosten
zu entrichten und aufwendige Entwicklungswerkzeuge notwendig. Für Projekte im
Embedded-Marktsegment mit kleinen bis mittleren Stückzahlen ist eine Integration des
Funkmoduls meistens nicht sinnvoll. Der Hersteller kann hier auf die bereits am Markt
vorhandenen preiswerten PCMCIA-Karten oder
zurückgreifen, die Notebooks
nachträglich mit einem WLAN-Interface ausrüsten. Im Rahmen des Listig-Projekts habe
ich mich für eine PCI-Variante entschieden, was ich später näher erläutern werde.
Für PCMCIA- und PCI-Karten gibt es üblicherweise auch die entsprechenden SoftwareTreiber. Diese sind meist sehr ressourcenhungrig und sind daher im EmbeddedSysemumfeld, indem auch das LISTIG-Projekt angesiedelt sein soll, unpraktikabel. Der
Grund: Die meisten Notebooks laufen auf Windows-PC-Betriebssystemen wie Windows
98, NT, ME, 2000 oder XP.
Folglich muss ich mich anderer Wege bedienen, um an die notwenigen Treiber zu
gelangen: In der Regel nutzen die PCMCIA- bzw. PCI-WLAN-Karten bestens bekannte
Chipsätze. Für diese stehen zahlreiche Treiber als Open Source Software im Quellcode zur
Verfügung. Solche Treiber lassen sich in einer Linux-Umgebung, zusammen mit den
Standard-Protokollstacks des Betriebssystems zum Leben erwecken, was mir nach
anfänglichen Hürden, auf die ich später noch eingehe, schließlich gelungen ist.
Soll das LISTIG-System später aus einem Flash-Speicherbaustein heraus gestartet werden,
empfiehlt sich ein Embedded Linux, indem die erforderlichen PCMCIA-Treiber
eingebunden werden.
Innerhalb der Open-Source-Szene findet man sowohl zahlreiche Bluetooth- als auch
WLAN-Treiber-Implementierungen für Linux. Im Linux-Kernel sind die Treiber für
PCMCIA sowie die beiden Netzwerkschnittstellen eth0 und wlan0 eingebunden. OpenSource-Treiber haben im Vergleich zu ihren binären Windows-Vertretern im Übrigen noch
einen weiteren Vorteil: Sie sind oft wesentlich ausgereifter und besitzen ein höheres
Entwicklungsniveau. Die Ursache für diesen Sachverhalt liegt darin, dass der Quellcode im
Internet unter GPL (General Public License) zur Verfügung steht. Die Erkenntnisse und
Verbesserungen einzelner Entwickler fließen jeweils in den Quellcode zurück und führen
zu einer stetigen Weiterentwicklung. Erkannte Probleme werden im Internet über MailingListen offen diskutiert und durch keine Marketing- oder Rechtsabteilung unterdrückt.
Bei der Entscheidung für eine bestimmte WLAN-Technologie rücken verschiedene
Auswahlkriterien in den Blickpunkt der Betrachtung. Zu berücksichtigen sind vor allem
folgende Punkte:
¾ Stabilität des Standards: Ist der Standard in seiner gegebenen Version ausgereift
und stabil oder sind zusätzliche Erweiterungen und Modifikationen zu erwarten, die
den kompatiblen Einsatz mit aktueller Ausrüstung in Frage stellen?
32
•
Als Kompromiss zwischen modernster Technologie und bewährtem und
ausgereiftem technischen Standard habe ich für das LISTIG-Basisgerät eine
WLAN-Schnittstellen-Karte nach dem 802.11b-Standard ausgewählt. Zum
Zeitpunkt der Bearbeitung meiner Aufgabenstellung gab es in der OpenSource-Szene noch keine ausgereiften Treiber für Linux, die Chipsätze des
Standards 802.11g vernünftig unterstützten, wie zeitaufwendige
Recherchen ergaben. So scheiterte die Einbindung einer PCMCIA-WLANKarte (ARTEM Com Card CC-W54g) mit Intersil-Chipsatz nach 802.11gStandard an Treiberproblemen.
¾ Verbreitung des Standards: Hat der Standard eine ausreichende Akzeptanz
gefunden, um auch in Zukunft durch innovative Geräte unterstützt zu werden?
•
Chipsätze nach 802.11b haben eine sehr große Verbreitung gefunden. Die
entsprechenden Geräte sind inzwischen sehr preiswert erhältlich. Die
Kompatibilität ist hervorragend, da die modernen 802.11g-Chipsätze zum
802.11b-Standard abwärts kompatibel sind.
¾ Geschwindigkeit: Welche Datenrate stellt die jeweilige Technologie zur Verfügung? Hierbei ist unbedingt zwischen Brutto- und Nettodatenrate zu unterscheiden
•
Diese Frage muss vor dem Hintergrund der Anforderung an die
Anwendung des LISTIG-Systems berücksichtigt werden. Die Anforderung
nach Bandbreite bei einer Heimautomatisierungs-Anlage zur Übertragung
von einigen Steuersignalen kann eine untergeordnete Rolle spielen. Zur
drahtlosen Steuerung einer solchen Anlage müssen relativ wenige Daten
ausgetauscht werden.
Die Erweiterung IEEE-802.11b sieht maximal 11 MBit/s vor. In der Praxis
reduziert sich die Transferrate um die Hälfte. Für den vorliegenden
Anwendungsfall erscheint diese Geschwindigkeit absolut ausreichend.
¾ Reichweite: Welche Reichweite lässt
erwarten? Dabei sind insbesondere
Leistungsdichten zu betrachten. Der
Erreichung höherer Reichweiten ist
gewählten Technologie.
•
der Einsatz der jeweiligen Technologie
die zulässigen Sendeleistungen bzw.
Einsatz von anisotropen Antennen zur
im Wesentlichen unabhängig von der
Größere Distanzen zwischen den Stationen machen sich beim Funk-LAN
deutlich bemerkbar. IEEE-802.11b bietet eine ausreichende Reichweite für
den Zugriff auf das Basisgerät einer Hausautomatisierungsanlage von
variablen Orten innerhalb eines Gebäudes (abhängig von der Dicke und
Beschaffenheit der Wände).
¾ Quality of Service: Werden definierte Dienstgüten unterstützt? Hierbei ist
allerdings die Frage nach der Durchgängigkeit dieser Unterstützung über alle
Netzwerkebenen zu stellen.
•
Auch diese Frage spielt in unserem Anwendungsfall eine untergeordnete
Rolle
33
¾ Sicherheitsmechanismen: Welche Sicherheitsmechanismen sind im Standard
vorgesehen? Hierbei ist zu berücksichtigen, dass nur diejenigen Mechanismen
durchgängig im Betrieb Einsatz finden können, die von allen Geräten unterstützt
werden. Solange homogene Netze von nur einem Hersteller betrieben werden,
reicht die Unterstützung auf Produktebene vollkommen aus. Dieses Szenario gilt
allerdings
nur
bei
Punkt-zu-Punkt-Verbindungen
wie
Funkbrücken
uneingeschränkt.
¾
• Standardmäßig ist zumindest das weit verbreitete WEP und bei einigen
neueren und teureren Geräten WPA als Verschlüsselungstechnik integriert.
Weiterführende Sicherheitstechniken können softwareseitig nachträglich
nach Einrichtung eines Access Points auf dem Basisgerät implementiert
werden.
¾ Administration: Welche Protokolle sind in dem Standard vorgesehen, die eine über
alle Hersteller durchgängige Verwaltung des gesamten Netzwerks erlauben?
•
Da 802.11b ein Unterstandard von 802.11 ist, besitzt es eine Protokollarchitektur, die sich durch hohe Kompatibilität zu allen denkbaren
Netzwerkkomponenten auszeichnet.
¾ Ad-hoc-Networking: In welchem Maße werden Funktionalitäten eines AdhocNetworking unterstützt?
•
4.2
Allgemein bieten drahtlose Netzwerke die Fähigkeit, dass über den reinen
Aufbau einer Netzwerkverbindung hinaus auch die Anwendungen
selbsttätig miteinander in Verbindung treten können.
Auswahl der WLAN-Geräte
Auf dem sehr dynamischen Gebiet WLAN wechselt das Produktspektrum recht häufig
(selbst die Herstellernamen bleiben von Änderungen nicht verschont).
Zwei wesentliche Produktklassen sind:
1. Client Adapter (CA)
In manchem neueren mobilen Gerät sind WLAN-Adapter fest eingebaut, hier sind
ggf. die Besonderheiten nationaler Zulassungsbedingungen zu beachten (nutzbare
Kanäle ...). In den meisten Fällen werden heute austauschbare Adapter eingesetzt,
die es für unterschiedliche Schnittstellen und Formfaktoren gibt:
•
•
•
•
PCMCIA/PC-Card (Cardbus)
Compact Flash (kleiner als PC-Card, für PDAs)
PCI (eher wenig gebräuchlich)
USB (die praktikabelste Variante für Desktops)
2. Access Point (AP)
34
Hier gibt es eine größere Anzahl von Unterscheidungsparametern:
•
•
•
•
•
•
•
•
Basis-Funktionalität (L2-Bridge ...)
Anzahl der Kanäle (typisch 1 .. 2)
Festnetz-Schnittstelle (typisch 100 BASE TX)
WEP- und andere Sicherheitsparameter
Filterfunktionen
Management-Schnittstellen
zulässige Umgebungsbedingungen
Stromversorgung: z.B. Power over Ethernet (PoE)
Im Rahmen meiner Aufgabenstellung gibt es für den Einsatz eines Access Points keine
zwingende Notwendigkeit, da für die Übertragung der Steuersignale vom Notebook/PDA
zum Basisgerät der Ad-hoc-Modus eine ausreichende Technik darstellt. Eine Ausnahme
bildet die Option, das Basisgerät hinsichtlich des Funkverkehrs mit weiteren Sicherheitsmechanismen ausstatten zu wollen. Aber selbst hierfür ließe sich ein Access Point auf
Linux-Basis unter Nutzung spezieller Open-Source-Treiber softwareseitig implementieren.
4.2.1 Kriterien
Ebenso wie im vorangegangenen Kapitel waren auch bei der Auswahl des konkreten
Wireless Adapters einige Vorüberlegungen anzustellen:
¾ Bauformen: Welche Bauformen werden unterstützt? Bei den mobilen PCgestützten Stationen unterscheidet man dabei im Wesentlichen USB-, PCI- oder
PC-Card-gestützte Geräte. Bei den Access Points ist die Vielfalt deutlich größer,
die Fragestellung aber meist unkritischer.
¾ Erreichbare Bandbreiten: Im Gegensatz zu drahtgebundenen Systemen sind die
erreichbaren Bandbreiten wesentlich abhängig von der Qualität der Empfänger, die
nicht im Standard vorgegeben sind. Hier geben die aktuellen Testergebnisse in den
einschlägigen Fachzeitschriften ausreichend Auskunft.
¾ Erreichbare Reichweiten: Die Frage nach den Reichweiten, über die ein Funknetz
betrieben werden kann, ist eng mit der Frage nach der jeweils erreichbaren
Bandbreite verknüpft.
¾ Verfügbarkeit von Relaisstationen: Die Reichweite von Funknetzen kann unter
Umständen durch den Einsatz von Relaisstationen vergrößert werden. Diese sind
im Wesentlichen einsetzbar bei Punkt-zu-Punkt-Verbindungen.
¾ Kompatibilität zu anderen Geräten: Auch wenn die grundsätzliche Kompatibilität
der Geräte in heterogenen Umgebungen durch die Konformität zum Standard
gegeben ist, stellen viele Geräte zusätzliche Funktionen zur Verfügung, die
außerhalb des Standards stehen. Hierbei ist ein unterschiedlicher Grad an
Gemeinsamkeiten zu beobachten.
¾ Zusätzliche Sicherheitsmechanismen: Vor allem in den Fällen, in denen die im
Standard vorgesehenen Sicherheitsmechanismen als nicht ausreichend angesehen
werden, erweitern manche Hersteller ihre Geräte durch zusätzliche
Sicherheitsmechanismen. Diese sind dann unter Umständen aber nur in homogenen
Netzen zu nutzen.
35
¾ Zusätzliche Funktionalitäten: Einige Geräte - und hierbei insbesondere die Access
Points - stellen zusätzliche Netzwerkfunktionalität zur Verfügung. Als Beispiele
können Routing oder Firewall genannt werden.
¾ Administration und Werkzeuge: Welche Werkzeuge zur Verwaltung der Stationen
und des Netzwerks werden bereitgestellt? Bei Access Points ist es mittlerweile weit
verbreitet, dass ein Embedded Webserver den Zugriff über einen normalen
Webbrowser ermöglicht. Aber auch hier können erhebliche Unterschiede bei
Übersichtlichkeit und Bedienungskomfort beobachtet werden. Bei mobilen
Stationen, die ohnehin die Installation von Treibern benötigen, werden meist
zusätzliche Administrationswerkzeuge eingesetzt.
¾ Preis: Bei der Bestimmung der kommerziellen Aspekte sind die gesamten
Systemkosten zu berücksichtigen. Dies gilt sowohl für den Vergleich zwischen
drahtgebundenen und drahtlosen Systemen und der Fragestellung nach Leitungsund Installationskosten als auch für die Kosten während des gesamten
Lebenszyklus.
Somit
schließen
die
Systemkosten
auch
den
Administrationsaufwand und eventuelle Erweitungs- oder Ersatzbeschaffungen mit
ein.
¾ Chipsatz: Der eingebaute Chipsatz der zu verwendenden Karte spielte bei meiner
Entscheidung die größte Rolle, da hiervon abhing, ob stabile Open-Source-Treiber
erhältlich sind, mit denen die WLAN-Karte unter Linux verwendet werden kann.
4.2.2 Schnittstellen von LISTIG
Als Schnittstellen für ein WLAN-Gerät bietet das LISTIG-Basisgerät PCI-Slots und ein
USB-Interface. Über einen PCMCIA-to-PCI-Adapter ließe sich das große Angebot an
verfügbaren PCMCIA-Karten für Notebooks im LISTIG-System nutzen. Für die USBSchnittstelle fällt das Angebot kleiner aus und somit ist die Unterstützung mit Treibermodulen für Linux sowohl in der Open-Source-Szene und erst recht herstellerseitig nur
gering. Außerdem fallen für USB-Geräte höhere Preise an. Ein anderer Grund, auf die
USB-Variante zu verzichten, war der, dass im Rahmen des LISTIG-Projektes die
Verbindungsvariante per Bluetooth den einzigen USB-Port bereits für sich beansprucht.
IrDa bedient sich des seriellen Ports, während sich die GSM-Variante den einen der beiden
PCI-Slots für die Netzwerkkarte reserviert. Da insgesamt 2 PCI-Slots zur Verfügung
stehen, kann einer für die WLAN-Erweiterung genutzt werden.
In der Praxis stellte sich jedoch heraus, dass auf dem Basisgerät nur der äußere PCI-Slot
nutzbar ist, so dass auf dem Testsystem bisher entweder nur die LAN-Netzwerkkarte oder
die WLAN-Karte genutzt werden kann.
Im PCI-Bus gibt es nur die vier IRQ-Leitungen INT_A bis INT_D. An diesen hängen alle
PCI-Geräte, also nicht nur die Steckkarten, sondern auch Onboard-Geräte wie z.B der
USB-Controller. Eine Logikschaltung ordnet die vier PCI-Interruptleitungen den 15 IRQEingängen des PIC zu. Bei einigen Mainboards kann man per BIOS-Setup noch weiter in
die Zuordnung der PCI-Interrupts eingreifen und etwa festlegen, welcher PCI-Slot welche
IRQ-Nummer bekommen soll. Das funktioniert natürlich nur im Rahmen der elektrischen
Gegebenheiten, also: Wenn zwei PCI-Slots elektrisch an dieselbe Interruptleitung
36
angeschlossen sind, kann man das nicht per BIOS-Setup ändern. Der 2. PCI-Slot ist bei
den meisten Boards der einzige, für den sich wirklich ein ungeteilter IRQ einstellen lässt.
Im BIOS des LISTIG-Mainboards ließ sich keine Änderung der Zuordnung von PCIInterrupts erreichen, so dass der innere PCI-Slot zusammen mit dem USB-Port, der ISABridge und dem IDE-Controller fest mit dem Interrupt 11 verbunden sind, während der
äußere Slot ständig den Interrupt 10 zugewiesen bekommt. Eventuell ist ein BIOS-Update
des Mainboards erforderlich.
Als PCI-to-PC Card-Adapter stand mir zunächst der Level-One RNC-0100 mit dem
Chipsatz ti PCI1225 von Texas Instruments zur Verfügung. Alle Versuche, die PCMCIAWLAN-Karten
• Nokia D211
• Linksys WPC11E
• Cabletron Systems Roam About
• Artem ComCard 54g
darin unter Linux zum Laufen zu bringen, liefen jedoch ins Leere. Der Grund kann
fehlende oder mangelnde Unterstützung dieses Chipsatzes in den PCMCIA-Packages von
Linux sein. Daraufhin beschloss ich, es direkt mit einer PCI-WLAN-Karte zu versuchen,
in der Hoffnung auf bessere Unterstützung durch Open-Source-Treiber. Das hat schließlich
zum Erfolg geführt.
Genau wie bei der Datenübertragung per Bluetooth und Infrarot, erscheint mir für die
direkte Übermittlung der Steuersignale, einschließlich Feedback, eine einfache
Schnittstellenkarte als ausreichend für eine Heimautomatisierungsanlage, womit die
Anschaffung eines teureren Access Points für Netzwerke überflüssig wäre. Ohnehin gibt
es, wie bereits erwähnt, unter Linux dank der Erfolge des „HostAP“- Projektes
(http://hostap.epitest.fi/) die Möglichkeit, Access Point-Funktionalität softwaremäßig für
Prism-basierte Karten einzurichten, was für die Implementierung erweiterter
Sicherheitsmaßnahmen von Bedeutung wäre.
4.2.3 Hardware
Alle Systeme unterstützen im Wesentlichen die Betriebssysteme der Microsoft-WindowsFamilie. In den kommerziellen Standardpaketen spielt die Unterstützung von Unix im
Allgemeinen und Linux im Speziellen keine Rolle. Für den Einsatz unter Linux sind seit
der Kernel-Version 2.2 die gängigsten Karten im Kernel integriert. Für andere Produkte ist
man auf das Engagement der Linux-Gemeinde angewiesen.
Unter Berücksichtigung der vorigen Kapitel genannten Fragestellungen entschied ich mich
also nach ausführlichen Recherchen für die WLAN-Karte „Netgear MA311 (PCI)“, welche
den Standard 802.11b unterstützt.
Dieser Standard hat sich auf breiter Front, auch wegen des günstigen Preises und der
Tatsache, dass das 2,4-GHz-Band in den meisten Ländern lizenzfrei genutzt werden darf,
durchgesetzt. Die Produkte mit diesem Standard gelten als ausgereift und arbeiten in der
Praxis
auch
untereinander
gut
zusammen.
Die Sendeleistung liegt bei maximal 100 mW was eine Reichweite von 40 m ermöglicht.
In Abhängigkeit des Baustoffs für Wände und Decken reduziert sich die Reichweite auf 25
bis 30 m. Im Außenbereich lassen sich Reichweiten bei Sichtkontakt bis 100 m oder mehr
erreichen.
37
Netgear-Produkte sind im Allgemeinen ausgereift und günstig zu haben.
Das entscheidende Auswahlkriterium war jedoch der Chipsatz. Hier kam es darauf an, das
die Karte einen generischen Chipsatz besitzt, der von den meisten Linux-Distributionen
unterstützt wird. Auf der Webseite des Linux-WLAN-Projekts: http://www.linuxwlan.org/docs/wlan_adapters.html.gz ließ sich sich der Chipsatz dieses Produkts als
Prism2/2.5/3 identifizieren. Hierfür galt es anschließend die passenden Treibermodule
aufzuspüren. Nachdem genau das bei verschiedenen mir zur Verfügung stehenden WLANKarten (Linksys WPC11E, Cabletron Roam About und Artem ComCard54g) gescheitert
war, ließ sich die Netgear-Komponente letztendlich erfolgreich installieren.
Abbildung 4.1: Erfolgreiche Installation mit dieser PCI-WLAN-Karte
Die drahtlose Konnektivität dieser Karte liegt bei 11 MBit/s brutto mit automatischer
Fallback-Geschwindigkeit für größere Entfernungen. Nach meinen Recherchen zeichnet
sich die Karte durch eine sehr gute Kompatibilität und gute Empfängerqualität aus.
Leistungsmerkmale:
•
•
•
•
•
•
•
•
Unterstützung des IEEE 802.11b-Standards
11-MBit/s Datendurchsatz (Brutto)
40-, 64- und 128-Bit WEP-Verschlüsselung
Reichweite im Gebäude bis zu ca. 50 m
Bus-Interface: 32-Bit PCI v2.2 Compliant
LED-Anzeigen
Externe Antenne
WiFi-Zertifizierung
Auf der Seite des Test-Clients (ein Notebook mit Windows XP) kam eine Wireless PC
Card vom gleichen Hersteller zum Einsatz, um maximale Kompatibilität zu gewährleisten.
Es handelt sich hierbei um die Netgear MA521 (802.11b)
5
Wireless LAN und Linux
38
Auf dem Basisgerät kommt, wie schon erwähnt, das Open-Source Betriebssystem
Debian/GNU Linux zum Einsatz. Das bedingt eine genaue Recherche, bei welcher
Hardware, welche Konfiguration aus Linux-Kern, Treibermodulen und zusätzlichen
Paketen notwendig ist, um eine erfolgreiche Installation der WLAN-Hardware zu
garantieren. Darüberhinaus müssen Konfigurationsdateien des Betriebssystems bearbeitet
werden.
5.1
Grundlegendes
5.1.1 Chipsatz
Die Frage nach dem Chipsatz einer WLAN Karte ist vor dem Kauf zumindest für LinuxUser entscheidend, sonst kann man später böse Überraschungen erleben. Denn um WLAN
unter Linux zu nutzen, braucht man natürlich einen Adapter, für den ein Treiber existiert.
Dieser unterstützt im Normalfall immer einen bestimmten Chipsatz. So kann es passieren,
dass WLAN Karten zweier unterschiedlicher Hersteller mit dem gleichen Treiber laufen.
Genauso passiert es aber, dass Karten mit der exakt gleichen Bezeichnung eines Herstellers
unterschiedliche Treiber benötigen, weil der in der Produktion der Chipsatzanbieter
gewechselt wurde; und selbst der Hinweis: „Linux Support“ ist manchmal irreführend. Es
ist also Vorsicht geboten, wenn man eine WLAN Karte anschafft. Wichtig ist es, vor dem
Kauf die genaue Version der Karte in Erfahrung zu bringen, denn nur über die ist es
möglich, den Chipsatz zu bestimmen. Kein Hersteller schreibt die Art des Chipsatzes auf
die Packung. Zum Glück gibt es Suchmaschinen im Internet. So konnte ich nach
Versionsnummer, Bezeichnung und dem Stichwort "Linux" zu suchen, um den Chipsatz
meiner Karte zu bestimmen.
Auch ist es mit einigen Treibern bisher nicht möglich Airsnort oder andere
Scanprogramme zu benutzen. Beste Unterstützung erfahren bisher der Orinoco, Prism
Chipsatz.
Eine umfangreiche Liste geordnet nach Herstellern findet man hier:
http://www.linux-wlan.org/docs/wlan_adapters.html.gz
5.1.2 Software-Voraussetzungen
Benötigt werden für eine erfolgreiche Installation im Allgemeinen:
•
•
•
•
Treiber für Kartenchipsatz, falls nicht in Kernel
Kernelquellen mit PCMCIA-Karten-Unterstützung und Wireless Extensions
eventuell externes PCMCIA-Package
Wireless-Tools
in den richtigen Versionen !
5.1.3 Treiber
Zum Zeitpunkt meiner Projektarbeit gab es drei große Treiber-Sammlungen für WLANGeräte unter Linux: Die PCMCIA-Card-Services (pcmcia_cs) unter http://pcmcia-cs.
sourceforge.net, deren Treiber inzwischen größtenteils in den Kernel aufgenommen
39
wurden, die "Next Generation"-Treiber von AbsoluteValue Systems Inc.(besser bekannt
als linux-wlan-ng) von http://www.linux-wlan.org sowie die Linksammlung von Jean
Tourrilhes
aus
dem
Linux
Wireless
LAN
Howto
von
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wireless.html.
Hier noch einmal eine etwas detailliertere Übersicht:
1) Orinoco
Karten mit diesem Chipsatz werden bereits seit frühen Kernel Versionen unterstützt
(Lucent, WaveLan, Lucent Orinoco, Symbol Spectrum 24, Apple AirPort, Prism2-Cards)
2) wlan-ng
Treiber für Karten mit Prism 2/2.5/3 Chipsatz. Sie unterstützen nicht das Wireless-ToolsPaket, aber liefern ihre eigenen Konfigurationstools mit. Download unter:
http://www.linux-wlan.com/linux-wlan/
3) host-ap
Treiber für Intersil Prism2/2.5/3
USB cards basierend auf dem Prism Chipsatz werden nicht unterstützt. Der Treiber besteht
aus drei Komponenten
hostap-driver: Treiber mit Access Point Unterstützung (IEEE 802.11)
hostapd: User space daemon for extended IEEE 802.11 management
IEEE 802.1X Authentifizierung
RADIUS Authentication client
RADIUS Accounting client
hostap-utils: Utilities
http://hostap.epitest.fi/
4) prism54
Linux Kernel Treiber WLAN 802.11(1/b/g) für den Prism GT/Duette Chipsatz
Voraussetzung:
Kernel 2.4.23+ oder besser 2.6.0+
Weiterhin wird eine Firmware für die Karte benötigt: http://prism54.org/firmware/
Download: http://www.prism54.org
5) RTL8180
Dieser Chipsatz wird meist in preislich günstigen Karten verbaut. Teilweise steht auf den
Verpackungen: Linux Support, das stimmt zunächst auch, nur handelt es sich dabei
teilweise um closed source. Die vom Hersteller Realtek angebotenen vorkompilierten
Treiber funktionieren leider nicht mit jeder Kernelversion. Angeboten wird: Linux kernel
2.4.18 (gcc version 2.96) Linux kernel 2.4.20 (gcc version 3.2.2). Der neue 2.6 wird bisher
nicht unterstützt und auf einem 2.4.x System lassen sich die Treiber zwar kompilieren,
allerdings wurde die closed source Komponente gegen einen 2.4.20 Kernel von Red Hat
gebaut. Inzwischen wurde ein Projekt auf Sourceforge.net ins Leben gerufen, um eine
bessere Treiberunterstützung zu gewährleisten.
Download von Realtek:
http://www.realtek.com.tw/downloads...px?Keyword=8180
40
Projekt auf sourceforge
http://sourceforge.net/projects/rtl-ddp/
6) Centrino
Nachdem sich Intel lange nicht um eine Linux-Unterstützung gekümmert hatte, wird
inzwischen stetig an einem Linux Treiber gearbeitet:
http://ipw2100.sourceforge.net/
7) Athero
Linux Treiber für 802.11a/b/g Athero Chipsatz
Download: http://sourceforge.net/projects/madwifi/
FAQ: http://www.mattfoster.clara.co.uk/madwifi-faq.htm,
Wiki http://madwifiwiki.thewebhost.de/wiki/
8) Ndiswrapper
Einen Sonderweg geht das Projekt Ndiswrapper. Es versucht den mit der Karte immer
mitglieferten Windowstreiber zu laden und ihn somit unter Linux benutzbar zu machen.
Homepage:
http://ndiswrapper.sourceforge.net/
Unterstützte Chipsätze:
http://ndiswrapper.sourceforge.net/...d_chipsets.html
9) Driverloader
Die kommerzielle Variante von ndiswrapper ist schon etwas weiter fortgeschritten und
wurde auch aufgrund der mangelnden Unterstützung von Intel für die Entwicklung von
Linux Treibern für den Centrino entwickelt:
Derzeit werden folgende Chipsätze unterstützt:
Atheros
Broadcom (AirForce)
Cisco (Aironet)
INPROCOMM
Intel (PRO/Wireless 2100, 2100A, 2200BG - Centrino)
Intersil (Prism GT/Duette/Indigo)
Marvell (Libertas)
Realtek (RTL8180L)
Texas Instruments (ACX100, ACX111/TNETW1130)
Eine 30 tägige Testversion kann man sich für alle gängigen Linuxdistributionen
herunterladen oder selbst kompilieren. Voraussetzung Kernel 2.4.x
http://www.linuxant.com/driverloade...l/downloads.php
(Die Lizenz kostet 19.95$)
10) Atmel
Treiber unter http://atmelwlandriver.sourceforge.net
Übersicht über die unterstützten Geräte:
http://atmelwlandriver.sourceforge.net/usbtable.html
Eine Maillinglistenarchiv/Mailingliste für diesen Chipsatz, der hauptsächlich in USB
Geräten verbaut wird, befindet sich hier:
http://iprserv.jura.uni-leipzig.de/.../atmel-wlan-usb
41
5.2
Grundkonfiguration
Die Zusammengehörigkeit der einzelnen WLAN-Geräte zu einem Netz, egal ob Ad-Hoc
oder "Managed Infrastructure", wird durch die Verwendung der gleichen SSID (Service
Set Identifier) festgelegt. Auch müssen alle Geräte auf dem gleichen Kanal arbeiten. Es
stehen die Kanäle 1 bis 14 zur Verfügung, der Bereich ab Kanal 8 aufwärts wird allerdings
auch von Bluetooth-Geräten benutzt, was beim Parallelbetrieb zu Störungen oder
niedrigeren Datenraten führen kann.
Immer wieder wird empfohlen, für die SSID eine kryptische, möglichst zufällige
Zeichenfolge zu verwenden, um Angreifern den Zugang zum Netz zu erschweren. Da die
SSID jedoch von vielen Access Points bei jedem Datenpaket in die Welt hinausposaunt
wird, braucht man lediglich kurz in den abgehörten Datenstrom zu schauen, um die SSID
herauszubekommen. Daher ist es sinnvoller, den Namen des Betreibers in der SSID
unterzubringen: So kann ein Nachbar durch simples Lauschen feststellen, welche WLANs
in seiner Umgebung stehen, zu wem sie gehören und eventuell wie weit sie entfernt sind um sich dann einen anderen Kanal zu suchen oder bei Störungen Kontakt aufzunehmen.
5.2.1 Konfiguration der Standard-Treiber
Die Treiber des Kernels, der PCMCIA-Card-Services sowie aus der Treiber-Sammlung
von Jean Tourrilhes verwenden zur Konfiguration die Datei /etc/pcmcia/wireless.opts. Die
Datei besteht im Wesentlichen aus Variablen-Zuweisungen für die einzelnen WLANKarten, wobei die verschiedenen Konfigurationen über die Hardwareadresse (MacAdresse) auseinander gehalten werden. Wird nur eine Karte eingesetzt, kann auf die
Angabe der Hardwareadresse verzichtet werden.
Die Hardwareadresse der Karte muss nicht komplett angegeben werden, die ersten drei
Bytes in hexadezimaler Schreibweise reichen meist als Unterscheidungskriterium zwischen
verschiedenen Herstellern aus. Die Adresse steht meist auf dem Typenschild oder auf der
Rückseite der Karte, ansonsten kann sie nach Anschließen der Karte per ifconfig abgerufen
werden.
Bei ESSID wird die vorab besprochene SSID des WLAN-Netzes eingetragen.
Die Network-ID, kurz NWID, ist eine bis zu vierstellige hexadezimale Kennung, die für
ein WLAN wiederum einheitlich gesetzt sein muss. In der Praxis wird die NWID faktisch
nicht benutzt.
Wird das WLAN-Netzwerk im Ad-Hoc-Modus betrieben, wird entsprechend MODE =
"Ad-Hoc" gesetzt. Bei einer "Managed Infrastructure" muss entsprechend MODE =
"Managed" angegeben werden. Der Modus auto ist gefährlich: Wird ein WLAN entgegen
der Empfehlungen mit SSID any betrieben, kann es passieren, dass sich die Karte
irrtümlich in einer fremden "Managed Infrastructure" in der Nachbarschaft anmeldet,
obwohl lokal im Ad-Hoc-Modus gearbeitet wird.
Mit den Variablen FREQ und CHANNEL wird der Betriebskanal angegeben. Man sollte
hierbei stets FREQ offen lassen und einen der 14 Kanäle mittels CHANNEL setzen - es ist
schlicht leichter zu merken.
Die gewünschte maximale Transferrate wird mittels RATE eingestellt. In den meisten
Fällen arbeitet auto völlig ausreichend, es wird dann versucht, die höchste Transferrate zu
42
verwenden. Bei größeren Entfernungen oder hohen Reflexionen kann es sinnvoll sein, die
maximale Transferrate von vornherein zu beschränken. Das erlaubt einen schnelleren
Verbindungsaufbau, weil keine Zeit zum Probieren höherer Transferraten verschwendet
wird.
Die neben Kanaleinstellung und SSID wichtigste Variable ist KEY, dort wird der WEPSchlüssel des Netzes eingetragen. Für die Praxis ermittelt man einen Schlüssel entweder
mit einem Würfel - hierbei können durchaus die 20-seitigen Würfel verschiedener
Rollenspiele gute Dienste tun - oder durch Auslesen von /dev/urandom mit folgendem
Befehl:
listig2:~ # dd if=/dev/urandom bs=14 count=1 2>/dev/null \ | hexdump | cut -c 9 -40 |
tr “ “ –
5fc3-c39f-30ae-b6f5-1283-adlb-9c
Um Missverständnissen vorzubeugen: Es wird pro WLAN ein einziger Schlüssel
bestimmt, nicht für jedes WLAN-Gerät ein neuer. Oder man ermittelt gleich mehrere, die
man dann in regelmäßigen Abständen bei allen WLAN-Geräten austauscht.
Die Variablen SENS, RTS, FRAG, IWCONFIG, IWSPY sowie IWPRIV werden in der
Praxis nicht benötigt, eine detaillierte Beschreibung findet sich in den Man-Pages
iwconfig(8), iwspy(8) und iwpriv(8).
Die Konfigurationsdatei /etc/pcmcia/wlan-ng.opts für die „Next Generation“-Treiber ist
etwas anders aufgebaut als die der Standard-Treiber, enthält aber ebenfalls hauptsächlich
Variablenzuweisungen. Für Nicht-PCMCIA-Geräte wird die Konfigurationsdatei
/etc/wlan.conf benutzt. Da diese Treiber-Sammlung im Rahmen meiner Projektarbeit im
Weiteren keine Rolle spielt, gehe ich auf deren Konfiguration nicht näher ein.
5.3
Treiber selbst kompilieren
Mitunter fehlen die benötigten Treiber zum Betrieb des WLAN-Geräts, Standard bei allen
aktuellen Distributionen ist das PCMCIA-Card-Services-Paket, welches unter Umständen
aktualisiert werden muß, wie in meinem Fall.
Die "Next Generation"-Treiber enthalten nur spezielle Distributionen, wie z.B die SuSE
Linux 8.1, sonstige Treiber müssen allerdings von Hand übersetzt werden. Hinweise,
welche Treiber wo zu beziehen sind, liefert das Linux Wireless LAN Howto von Jean
Tourrilhes auf http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux.
Zum Kompilieren eines PCMCIA-Treibers werden in jedem Fall die Kernel-Quellen sowie
die Quellen der PCMCIA-Card-Services benötigt. Dabei kann meist auf die Quellen der
Distribution zurückgegriffen werden, nur in Ausnahmefällen braucht man die OriginalQuellen der PCMCIA-Card-Services von http://pcmcia-cs.sourceforge.net/ftp oder gar
einen Original-Kernel.
Die Kernel-Quellen müssen vor dem Kompilieren der WLAN-Treiber zumindest per make
dep vorbereitet worden sein, dieser Schritt löst Abhängigkeiten innerhalb des Kernels auf.
Anschließend werden die PCMCIA-Quellen mittels ./configure konfiguriert und per make
install übersetzt und installiert.
43
Erst dann ist der WLAN- Treiber an der Reihe, zum Beispiel in Form des TreiberPakets
linux-wlan-ng für Prism-2- und Prism-3-Chipsätze. Nach Entpacken des Quellpakets von
ftp://ftp.linux-wlan.org/pub/linux-wlan-ng wird make config aufgerufen.
Der Treiber wird nach der Konfiguration per make übersetzt und mit make install
installiert. Dabei wird das Skript rc.wlan nach /etc/init.d kopiert, jedoch kein symbolischer
Link für die automatische Einrichtung beim Systemstart angelegt.
6
Inbetriebnahme der WLAN-Schnittstelle
6.1
Der Linux Kernel und Wireless LAN
Der Linux Kernel unterstützte schon sehr früh Karten mit denen man drahtlose Netze
aufbauen konnte. Dennoch gab es lange keine einheitliche API für solche Treiber. Erst mit
den Wireless Extensions wurde so eine Schnittstelle zum Kernel geschaffen. Die Wireless
Extensions wurden als Erweiterung der Netzwerk Schnittstellen (z.B. eth0) definiert. Über
die Erweiterungen können nun die zusätzlichen Einstellungen, die für ein drahtloses
Netzwerk notwendig sind vorgenommen werden. Alle zusätzlichen Einstellungen wurden
aber nicht in das Programm ifconfig eingebaut, sondern in ein extra Programm ausgelagert.
Dieses Tool heißt iwconfig und ist Bestandteil der Wireless-Tools.
Wireless-Tools die Befehle
Nach der Installation der Wireless-Tools verfügt man über die nötigen Befehle, um die
WLAN Karte konfigurieren zu können. Nähere Informationen findet sich in den manpages zu dem jeweiligen Befehl. Die Wireless-Tools beinhalten Managementanwendungen
wie:
iwconfig
Iwconfig ist ähnlich wie ifconfig, aber auf die Wireless Extensions abgestimmt. Es wird
benützt, um spezifische Parameter auf der Netzwerkschnittstelle zu setzen. Iwconfig wird
auch eingesetzt, um diese Parameter und die Interface-Statistik anzuzeigen.
iwspy
Iwspy wird benützt, um eine Liste von Adressen (IP- und MAC-Adressen) auf einer
Wireless Netzwerkschnittstelle zu setzen und Qualitätsinformationen über dieselben
zurückzulesen.
iwlist
Iwlist gibt Informationen von einer Wireless Netzwerkschnittstelle zurück, die von
Iwconfig nicht angezeigt werden. Dies ist typischerweise eine Liste von Parametern.
iwpriv
Iwpriv [interface] iwpriv interface private-command [private-parameters] iwpriv interface
roam
{on,off}
iwpriv
interface
port
{ad-hoc,managed,N}
Iwpriv ist das Kameraden Tool zu iwconfig. Iwpriv handelt mit Parametern und
Einstellungen für jeden Treiber. Ohne Argumente listet iwpriv private Kommandos auf,
44
die
für
jedes
Interface
verfügbar
sind.
Mit dem Linux Kernel 2.4.x sind die PCMCIA Treiber und Module fester Bestandteil des
Kernel geworden. Es existiert zwar weiter das PCMCIA Card Services Paket, aber hieraus
werden nur noch die User-Level Utilities benötigt. Weiterhin sollte bei PCI-to-CardBus
Komponenten nur noch das yenta_socket Modul benutzt werden.
Natürlich muss der Kernel mit den Optionen für PCMCIA, Wireless LAN, Wireless
Extensions und den Treiber für die ORiNOCO bzw. Prism2-Karten kompiliert werden.
Folgende Optionen sind hierbei ausreichend:
#
# PCMCIA/CardBus support
#
CONFIG_PCMCIA=m
CONFIG_CARDBUS=y
#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
CONFIG_NET_WIRELESS=y
CONFIG_PCMCIA_HERMES=m
CONFIG_AIRO_CS=m
Den Vorgang der Konfiguration beschreibe ich im nächsten Kapitel.
6.2
Konfiguration der PCMCIA Card Services
Seit dem Kernel 2.4.3 ist der Treiber orinoco_cs fester Bestandteil im Mainlinecode. Für
die Ansteuerung des "Hermes" Wireless MAC Controller wird das Modul hermes benutzt.
Ab dem Kernel 2.4.5 sind alle Treiber für Wireless LAN unter dem Verzeichnis wireless
zusammengefasst. Ausserdem wurde der PCMCIA unabhängige Teil von orinoco_cs in
das Modul orinoco verschoben und macht somit die einfache Entwicklung von PCI und
USB Wireless Adaptern möglich.
Mit dem Kernel 2.4.4 wurden die Wireless Extensions von der Version 10 auf die
Version 11 erneuert. Es sollte somit mindestens ein Kernel ab der Version 2.4.4 benutzt
werden. Am besten ist natürlich die Version 2.4.6 oder neuer.
Nachdem ich auf der Webseite:
http://www.linux-wlan.org/docs/wlan_adapters.html.gz
anhand
meiner Kartenbezeichnung den verwendeten Chipsatz als Prism2/2.5/3
identifizieren konnte, hatte ich nun die Wahl, entweder die wlan-ng-Treiber oder die
Treiber aus der Treibersammlung von Jean Tourrilhes zu verwenden. Ich entschied mich
aufgrund von Erfahrungsberichten für die zweite Variante. Auf der Internetseite des OpenSource-Entwicklers Jean Tourilhes
45
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.drivers.html
fand ich anschließend unter der Rubrik „Wavelan IEEE/Orinoco, PrismII and Symbol
Cards“ die gewünschten Informationen:
Treiber-Name:
Version:
wo:
orinoco_pci.o
v0.13e, v0.14alpha2
Linux Kernel (ab 2.4.21; 2.5.71)
PCMCIA-Package (3.1.34)
Ich habe mich aufgrund von Empfehlungen aus Linux-Foren bezüglich der Kombination
aus WLAN-Chipsatz, den passenden Treibern und der optimalen Kernelversion für den
Linux-Kernel 2.4.23 entschieden, was unmittelbar mit der erforderlichen Version der
Wireless Extensions zusammenhing. Die Voraussetzung, die PCI-WLAN-Karte Netgear
MA311 zum Laufen zu bringen, war das Vorhandensein der Wireless Extensions in der
Version 16 im Kernel. Ein weiterer Vorteil dieses Kernels war, dass die benötigten
Komponenten des Orinoco-Treibers bereits im Kernel vorhanden sind und sich somit die
Treiberinstallation auf das richtige Konfigurieren des Kernels beschränkt, um die korrekten
Module zu erstellen.
Kernel
2.4.3
2.4.4
2.4.5
2.4.6
2.4.7
2.4.8
2.4.9
2.4.10
2.4.11
2.4.12
2.4.13
2.4.14
2.4.15
2.4.16
2.4.17
2.4.18
2.4.19
2.4.20
2.4.21
2.4.22
2.4.23
Treiber
0.03
0.04c
0.05d
0.06c
0.06c
0.06c
0.06f
0.07
0.08a
0.08a
0.08a
0.08a
0.08a
0.08a
0.08a
0.09b
0.11b
0.11b
0.13b
0.13d
0.13d
Verzeichnis
drivers/net/pcmcia/
drivers/net/pcmcia/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
drivers/net/wireless/
Wireless Extensions
Version 10
Version 11
Version 11
Version 11
Version 11
Version 11
Version 11
Version 11
Version 11
Version 11
Version 12
Version 12
Version 12
Version 12
Version 12
Version 12
Version 13
Version 14
Version 15
Version 15
Version 16
Tabelle 6.1: Kernel-abhängige Versionsnummer bei Wireless Extension
Der Orinoco Treiber soll den alten wvlan_cs Treiber vollständig ersetzen. Leider wird
dieses von keiner Linux Distribution beachtet und die Linux PCMCIA Packages benutzen
auch noch den veralteten Treiber. In der Datei /etc/pcmcia/config sollten folgende Einträge
vorhanden sein. Der Eintrag für wvlan_cs ist Standard. Die Einstellungen für orinoco_cs
müssen hinzugefügt werden:
46
device "wvlan_cs"
class "network" module "wvlan_cs"
device "orinoco_cs"
class "network" module "orinoco_cs"
In meinem Fall war es erforderlich, (trotz PCI-WLAN-Karte), das Paket PCMCIA_CS in
einer neueren Version zu installieren. In der Distribution vorhanden waren die Card
Services PCMCIA_CS 3.1.33. Erforderlich war die Version 3.1.34, die ich mir wiederum
von der Debian-Homepage als „PCMCIA-Package 3.1.34“ besorgte. Die Installation
gelingt mit:
#
dpkg –i pcmcia_cs_3.1.34
Exkurs: Kernelkonfiguration
Zur Installation des WLAN-Geräts war es nötig, mir auf der Grundlage des Kernels 2.4.23
einen eigenen Kernel mit angepasster Konfiguration zu bauen. Im Internet finden sich einige Quellen die die Konfiguration, das Übersetzen und Einbinden eines Kernels beschreiben.
Für das Erstellen eines eigenen neuen Kernels benötigte ich einige zusätzliche Software,
die sich auf dem Testsystem relativ problemlos (aber zeitaufwendig, weil sehr langsam)
nachinstallieren ließ:
#
apt-get install gcc make bzip2 libncurses-dev
gcc: GNU C Compiler, wird für den Kernel-Bau benötigt
make: Ebenfalls für Kernel-Bau
bzip2: Dekomprimierungs-Tool
libncurses-dev: Developement-Paket für das Text-Menü Frontend "curses"; benötigt für
menuconfig, mit dem ich den Kernel konfiguriere.
Die folgenden Schritte habe ich in der Textkonfiguration "make menuconfig" ausgeführt:
Under Device Drivers -> Networking support ->
Wireless LAN (non-hamradio)
[*] Wireless LAN drivers (non-hamradio) & Wireless
Extensions
---
Wireless 802.11b ISA/PCI cards support
<M>
Hermes chipset 802.11b support
(Orinoco/Prism2/Symbol)
<M>
Hermes in PLX9052 based PCI adaptor support
(Netgear MA301 etc.) (EXPERIMENTAL)
<M>
Hermes in TMD7160 based PCI adaptor support
(EXPERIMENTAL)
<M>
Prism 2.5 PCI 802.11b adaptor support
(EXPERIMENTAL)
47
Kernelmodul laden
Nachdem der Kernel mit den entsprechenden Treibern konfiguriert und erstellt wurde,
sollten jetzt folgende Module vorhanden sein:
•
•
•
hermes.o
orinoco.o
orinoco_pci.o
Root-Rechte vorausgesetzt, muss man zunächst das benötigte Kernel Modul laden. Das
geschieht durch:
#
modprobe orinoco_pci.
Nach Eingabe von lsmod kann man sich das vom Vorhandensein der richtigen Module
überzeugen. Darüber hinaus kann mit dem Befehl dmesg kann kontrolliert werden, ob der
Ladevorgang erfolgreich verlaufen ist.
Der Treiber für die MA311 sollte beim Start geladen werden, weil die PCI-Karte ja schon
beim Einschalten des Rechners eingesteckt sein muss. Sollte das nicht der Fall sein, kann
man es problemlos per modconf nachladen:
#
modconf
In der Auswahl dann "kernel/drivers/net/wireless" -> "orinoco_pci" anwählen. Danach
wird das Modul in "/etc/modules" eingefügt und bei jedem Systemstart mitgeladen.
6.3
Einrichtung der Konfigurationssoftware
Als Konfigurationssoftware verwendete ich die "Wireless-Tools". Unter Debian kann man
diese üblicherweise leicht nachinstallieren:
#
apt-get install wireless-tools
Die auf dem Testsystem vorinstallierte Linux-Distribution Debian 3.0 Woody enthält
standardmäßig jedoch eine zu alte Version der „Wireless-Tools“, nämlich 23.2.
Erforderlich zur Inbetriebnahme der Karte sind jedoch unbedingt die „Wireless-Tools
Version 26“. Dieses Paket besorgte ich mir von der Debian-Homepage und installierte es
nachträglich. Diese Prozedur gestaltete sich recht umständlich und langwierig, da es eine
Menge Abhängigkeitskonflikte in den Paketen der Debian-Distribution nach sich zog. Um
letztendlich alle Abhängigkeiten aufzulösen, war die Installation folgender Bibliotheken
notwendig:
1. libc6
(>= 2.3.2.ds1-4)
2. libiw27
(>=26+27pre10)
• libdb1-compat
• libnss-db
(=2.2.6.2)
• libdb3
(>=3.2.9-17)
Die „Wireless-Tools Version 26“ sind nicht kompatibel mit den „Wireless Extensions“
älter als Version 9, was auch ein Grund für die Wahl des Kernels 2.4.23 war.
Wie ich gemerkt habe ist es anzuraten, eventuell das Paket als "unstable" zu installieren,
48
weil sonst die "Wireless Extensions" zwischen Kernel und dem "Wireless-Tools" Paket
unterschiedlich sein können, was zu Problemen führen kann:
#
apt-get install wireless-tools/unstable
Sollten sich bei der folgenden Konfiguration der Karte Fehler zeigen, bei denen es um
"Wireless Extensions" geht, wäre es das klügste, die "Wireless-Tools" aus den Quellen zu
übersetzen. Dazu besorgt man sich hier die aktuellen Sourcen und kompiliert das Paket
dann nach dem bekanntem Muster "./configure" und "make". Vor dem "make install" muss
allerdings das Debian-Paket aber entfernt werden:
#
apt-get remove wireless-tools
#
#
#
#
#
cd /usr/src
tar zxf wireless_tools.26.tar.gz
cd wireless_tools
make
make install
6.4
Konfiguration des Wireless LAN
6.4.1 Basiskonfiguration
Eine Wireless LAN Karte ist für den Linux Kernel das gleiche wie eine normale
Netzwerkkarte und wird somit als Ethernet Device (z.B. eth0) im Kernel angemeldet. Mit
Hilfe der Programme ifconfig und route kann die Wireless LAN Karte genauso
konfiguriert werden wie jeder andere Netzwerkkarte unter Linux auch. Mit DHCP kann
sogar die Adresse automatisch bezogen werden.
listig2# ifconfig -a
eth0
Link encap:Ethernet HWaddr 11:22:33:44:55:66
inet addr:192.168.0.100 Bcast:192.168.0.255
Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:3 Base address:0x100
Bevor jedoch die Karte mit einer IP-Adresse versehen wird, sollte sie mit Hilfe der
Wireless Extensions eingestellt werden. Hier kommt das Programm iwconfig zum Einsatz.
iwconfig funktioniert genauso wie ifconfig und zeigt beim Aufruf ohne Parameter die
aktuellen Einstellungen der Wireless Extensions an.
Die wichtigsten Einstellungen für ein Wireless LAN sind ESSID, Mode, Frequency (bzw.
Channel) und Encryption key.
Die manuelle Basiskonfiguration sieht wie folgt aus:
49
modprobe orinoco_pci
iwconfig eth0 mode ad-hoc nick ""
essid "heimautomat" channel 6
ifconfig eth0 192.168.0.1
ifconfig eth0 up
Der Befehl iwconfig funktioniert genauso wie ifconfig und zeigt beim Aufruf ohne
Parameter die aktuellen Einstellungen der Wireless Extensions an:
eth0
IEEE 802.11-DS
ESSID:"heimautomat"
Mode:Ad-Hoc Frequency:2.437GHz
XX:XX:XX:XX:XX:XX
Bit Rate:11Mb/s
Sensitivity:1/3
Cell:
Tx-Power=15 dBm
Retry min limit:8
thr:off
RTS thr:off
Fragment
Encryption key:off
Power Management:off
Link Quality:0
level:0
Signal level:0
Rx invalid nwid:0
invalid frag:0
Noise
Rx invalid crypt:0
Tx excessive retries:0
Missed beacon:0
Rx
Invalid misc:0
Seltsam ist, dass die Link-Qualität mit “0” angezeigt wird. Nichts desto trotz funktioniert
die Funkverbindung.
Hier die Ausgabe von ifconfig:
eth1
Link encap:Ethernet
XX:XX:XX:XX:XX:XX
HWaddr
inet addr:192.168.0.1
Mask:255.255.255.0
Bcast:192.168.2.255
UP BROADCAST RUNNING MULTICAST
Metric:1
MTU:1500
RX packets:78 errors:0 dropped:0
overruns:0 frame:0
TX packets:123 errors:0 dropped:0
overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:5376 (5.2 KiB)
(19.4 KiB)
TX bytes:19965
Interrupt:5 Base address:0xc000
Memory:dddff000-dddfffff
50
Soll der Treiber “orinoco_pci” der WLAN-Karte beim Starten jeweils automatisch
geladen werden, was natürlich zu empfehlen ist, so muß er in die Datei /etc/modules
eingetragen werden.
Wenn man einen (oder mehrere) Access Points ohne Verschlüsselung betreibt ist es unter
Linux nur notwendig den Netzwerknamen (ESSID) zusetzen und den Modus auf Managed
umzustellen. Der entsprechende Access Point wird automatisch gefunden und auch
benutzt. Im Beispiel wäre der Netzwerkname "HEIMAUTOMAT".
listig2# iwconfig eth0 essid HEIMAUTOMAT
listig2# iwconfig eth0 mode managed
Das Setzen der Frequency (bzw. Channel) ist unter Linux im Managed Modus nicht
erlaubt. Hier wird standardmäßig der Kanal 3 benutzt, was einer Frequenz von 2.422GHz
entspricht.
6.4.2 Automatische Netzkonfiguration während des Systemstarts
Alternativ lässt sich die Konfiguration des WLAN Adapters auch über die Datei
/etc/network/interfaces vornehmen. Alle Parameter werden dort in der Form
"wireless_<function> <value>" gespeichert. Hier die Datei im Editor ("nano") mit allen
Optionen für ein Ad-Hoc Netzwerk ohne Access Point und auskommentierter Verschlüsselung:
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# The loopback interface
# automatically added when upgrading
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
#
network 192.168.0.0
#
broadcast 192.168.10.255
#
gateway 192.168.10.1
wireless_channel 6
wireless_mode Ad-hoc
wireless_essid "HEIMAUTOMAT"
#
wireless_enc ca4e-ff42-43ae-92c2-76fe-75ef-1e restricted
Zum Schluss muss man natürlich das Netzwerk neu starten um die Änderungen zu
übernehmen:
#
/etc/init.d/networking restart
6.4.3 Verschlüsselung
Ein Wireless LAN sollte immer mit einer WEP128 Verschlüsselung betrieben werden und
somit ist es natürlich notwendig dem Treiber den Schlüssel mitzuteilen. Standardmäßig
51
können die Wireless LAN Karten vier verschiedene Schlüssel gleichzeitig speichern,
wovon eine aber nur aktive sein kann. Karten mit WEP64 und WEP128 Verschlüsselung
unterstützen sowohl 40-Bit (5 Zeichen) wie auch 104-Bit (13 Zeichen) lange Schlüssel.
Man kann die Schlüssel als Hex-Wert oder auch als Zeichenkette angeben. Bei der Angabe
als Zeichenkette ist ein "s:" voranzustellen. Ob es sich um einen WEP64 oder WEP128
Schlüssel handelt unterscheidet das Programm iwconfig automatisch an der Länge der
Eingabe. Die Position im Kartenspeicher wird ein eckigen Klammern hinter dem Schlüssel
angegeben. Nur die Positionsangabe aktiviert den Schlüssel.
listig2#
listig2#
listig2#
listig2#
iwconfig
iwconfig
iwconfig
iwconfig
eth0
eth0
eth0
eth0
key
key
key
key
s:abcde [1]
s:abcdefghijklm [2]
6162636465666768696A6B6C6D [3]
[3]
Natürlich kann man sich auch die aktuell gespeicherten Schlüssel anzeigen lassen. Hierfür
muss man das Programm iwlist benutzen. Der aktuell benutzte Schlüssel erscheint auch in
der Auflistung von iwconfig.
listig2# iwlist eth0 keys
eth0
2 key sizes : 40, 104bits
4 keys available :
[1]: 6162-6364-65 (40 bits)
[2]: 6162-6364-6566-6768-696A-6B6C-6D (104 bits)
[3]: 6162-6364-6566-6768-696A-6B6C-6D (104 bits)
[4]: off
Current Transmit Key: [3]
Nun kann das Interface mit ifconfig und route konfiguriert werden und man kann die
Arbeit im Netzwerk beginnen.
listig2# ifconfig eth0 192.168.0.100 netmask 255.255.255.0
listig2# route add default gw 192.168.0.1
6.4.4 Automatische Konfiguration durch die PCMCIA Card Services
Es ist sehr umständlich bei jedem einstecken der Karte die Wireless Extensions zu
konfigurieren und dann die Netzwerk Einstellungen zu vergeben. Mit Hilfe der Card
Services kann dieses aber automatisch bei jedem Einstecken der Karte erledigt und beim
Entfernen der Karte wieder rückgängig gemacht werden. Als erstes wollen wir die
Einstellungen für die Wireless Extensions eintragen. Dies geschieht in der Datei
/etc/pcmcia/wireless.opts. Wichtig sind hier der Netzwerkname, der Modus und der WEP
Schlüssel.
case "$ADDRESS" in
*,*,*,*)
INFO="Wireless LAN Setup"
52
ESSID="HEIMAUTOMAT"
MODE="Ad-hoc"
KEY="s:abcdefghijklm [1]"
;;
esac
Jetzt muss noch das Netzwerk konfiguriert werden. Hierfür werden die entsprechenden
Einträge in der Datei /etc/pcmcia/network.opts vorgenommen.
case "$ADDRESS" in
*,*,*,*)
INFO="Network Setup"
IPADDR="192.168.0.1"
NETMASK="255.255.255.0"
BROADCAST="192.168.0.255"
GATEWAY="192.168.0.0"
;;
esac
Für die Card Services ist leider nicht zu erkennen ob es sich um eine Netzwerkkarte oder
eine Wireless LAN Karte handelt und die Befehle für Wireless Extensions werden immer
mit ausgeführt. Dies führt natürlich zu Fehlermeldungen, wenn eine normale
Netzwerkkarte eingelegt wird. Um diese zu vermeiden sollten die Einstellungen in
/etc/pcmcia/wireless.opts nur beachtet werden, wenn es eine Wireless LAN Karte ist. Alle
Karten, die den ORiNOCO Treiber benutzen haben eine MAC Adresse aus zwei
Bereichen. Zum ersten 00:60:1D:* und zum zweiten 00:02:2D:*. Manche Karten können
sowohl zum ersten als auch zum zweiten Bereich gehören. Man muss also immer beide
angeben.
case "$ADDRESS" in
# Lucent Wavelan IEEE (+ Orinoco, RoamAbout and ELSA)
*,*,*,00:60:1D:*|*,*,*,00:02:2D:*)
INFO="Wireless LAN Setup"
ESSID="HEIMAUTOMAT"
MODE="Ad-hoc"
KEY="s:abcdefghijklm [1]"
;;
esac
6.4.5 Testen der Verbindung
Für den einfachen Verbindungstest reichte zunächst einmal der ICMP-Befehl Ping.
Das LISTIG-Basisgerät mit der gesteckten (äußerer PCI-Slot) WLAN-Karte Netgear
MA311 PCI wurde mit dem Kernel 2.4.23 gebootet und der Treiber orinoco_pci geladen.
Sobald der Treiber geladen ist, zeigt die Karte durch eine permanent leuchtende grüne
LED ihren ordnungsgemäßen Betriebszustand an. Insoweit Wireless-Konfigurationseinstellungen durch Startskripte automatisch zugewiesen werden, wie im Kapitel 6.4.4
53
beschrieben, braucht nichts weiter eingerichtet werden. Alternativ lädt man den Treiber
manuell per
#
modprobe orinoco_pci
Blinkt die LED jedoch gleichmäßig und stetig, dann wurde der Treiber nicht richtig
eingebunden oder fehlerhaft konfiguriert. Auch in diesem Fall kann man versuchen ihn
mit modprobe oder insmod manuell zu laden, bzw. manuell neu zu konfigurieren.
Eine kurze Überprüfung mit dem Befehl lsmod gibt Aufschluß darüber, ob alle zum
Treiber gehörigen Module richtig eingebunden wurden. Es gibt drei Module, die zur BootZeit geladen werden müssen, damit die WLAN-Karte erfolgreich initialisiert und
konfiguriert ist:
•
•
•
hermes.o
orinoco.o
orinoco_pci.o
Wenn das richtige Kernel-PCMCIA-Modul eingebunden, oder die externen PCMCIA-Card
Services entsprechend installiert wurden, werden die Module automatisch geladen.
Als Gegenstelle dient ein Notebook, auf dem unter Windows XP eine PCMCIA-WLANKarte (Netgear MA521)
installiert ist.
LISTIG-Basisgerät
Netgear MA311 PCI Card
IP-Adresse: 192.168.0.1
Subnetzmaske: 255.255.255.0
Debian Linux Kernel 2.4.23
Client-Notebook
Netgear MA521 PCMCIA Card
IP-Adresse: 192.168.0.2
Subnetzmaske:255.255.255.0
MS Windows XP
Abbildung 6.1: IP über Wireless LAN 802.11b Ad-Hoc-Modus
Der Client, in meinem Fall das Notebook mit Windows XP, wird mit eingesteckter
PMCIA-WLAN-Karte gestartet. Daraufhin erscheint unter den Netzwerkverbindungen
eine „Drahtlose Netzwerkverbindung“, die mit IP-Adresse und Subnetzmaske konfiguriert
werden muss:
54
Abbildung 6.2: Netzwerkverbindungen
Das kann erfolgen, indem man im
Abbildung 6.3: IP-Einstellungen
Kontextmenü
die Eigenschaften der
Drahtlosen Netzwerkverbindung aufruft
und sich die Eigenschaften vom
Internetprotokoll (TCP/IP) anzeigen läßt.
Die Netgear MA521-Windows-Treiber-Software liefert ein graphisches Konfigurationstool
mit, auf welches man rechts unten über Systemtray zugreifen kann. Darüber erledigt man
weitere Einstellungen. Hierbei bietet sich an, das Windows-Interne Tool abzuschalten,
damit es nicht zu Konflikten kommt. Man erledigt das über die Registerkarte „Drahtlose
Netzwerke“ in den Eigenschaften der Drahtlosen Netzwerkverbindung:
Hier entfernt man einfach das
Häkchen bei: „Windows zum
Konfigurieren
der
Einstellungen verwenden“
Man ist auf das Windowseigene Tool nur dann angewiesen , wenn vom Hersteller der
WLAN-Hardware
kein
adäquates Werkzeug mitgeliefert
wird.
55
Abbildung 6.4: Windows die
Konfiguration abnehmen
Das Konfigurationswerkzeug
von Netgear lässt sich intuitiv
bedienen. Man kann hier
Profile erstellen, in denen man
wichtige Merkmale wie
Netzwerk-SSID,
Netzwerkmodus, Kanal,
Verschlüsselung,
Übertragungsrate,
Fragmentierungsschwelle und
einiges mehr abspeichern
kann:
Abbildung 6.5: Netgears
Konfigurationswerkzeug
Nachdem ich den
Netzwerkmodus „Ad-Hoc“
eingestellt, als SSID
„heimautomat“ eingetragen und
den Kanal 10 ausgewählt habe,
kann ich die Einstellungen
beispielsweise unter dem Profil
„ListigSetup“ abspeichern.
Wenn ich jetzt auf die Registerkarte „Standortüberprüfung“
wechsle, sehe ich, dass der
Scanvorgang bereits im Gange
ist und die in der Umgebung
vorhandenen Netze ausfindig
gemacht werden.
Sobald ich das Netz
„heimautomat“ aufgelistet sehe,
markiere ich es mit der linken
Maustaste und klicke den Button
„Verbinden“
Abbildung 6.6: Profileinstellungen der drahtlosen Verbindung
56
Jetzt, da ich mit der Basisstation über Funk verbunden bin, bekomme ich auf der Registerkarte „Status“ Informationen zur Signalstärke und Verbindungsqualität angezeigt.
Außerdem sehe ich, wie viel Daten übertragen und empfangen werden.
Abbildung 6.7: Erfolgreiche Verbindung
Das Notebook in der Rolle des Client kann jetzt versuchen das Basisgerät von LISTIG mit
einem Ping zu erreichen. Ping sendet ein ICMP-Echo-Request-Paket an die Zieladresse des
zu überprüfenden Hosts. Der Empfänger muss, insofern er das Protokoll unterstützt, laut
Protokollspezifikation eine Antwort zurücksenden: ICMP Echo-Reply. Ist der Zielrechner
nicht erreichbar, antwortet der Router: Network unreachable (Netzwerk nicht erreichbar)
oder Host unreachable (Gegenstelle nicht erreichbar).
Das Ping Programm wird oft zur Fehlerbehebung von Netzwerken verwendet, da sich
damit gut feststellen lässt ob eine physikalische Netzwerkverbindung fehlerfrei
funktioniert. Es werden Datenpakete an den Rechner 192.168.2.1 gesandt. Vom Programm
wird die Zeit gemessen, bis die Antwort des Hosts eintrifft. Die Zeitangabe sagt aus, wie
lange es dauert, bis ein Datenpaket zum Host und wieder zurück braucht. Man kann daran
grob erkennen, ob die Gegenstelle funktioniert und mit welcher Verzögerung bei einer
Verbindung zu rechnen ist:
C:\ping 192.168.0.1
Abbildung 6.8: Notebook pingt Basisgerät
Der Ping vom Basisgerät zum Notebook funktioniert auf die gleiche Weise:
57
#
ping 192.168.0.2
# Ping 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=127 time=5.03 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=127 time=1.70 ms
Nachfolgend wird beschrieben, wie ich die Verbindung zwischen Notebook und Basisgerät
mit einer kleinen Testapplikation prüfe. Für eine bequemere Prozedur kann den IPAdressen von LISTIG und Notebook in der Datei
/etc/hosts
127.0.0.1
192.168.0.1
192.168.0.2
localhost
listig
notebook
ein passender Name zugewiesen werden, der dann zu Adressierungszwecken genutzt
werden kann.
Voraussetzung für das Funktionieren der Software ist ein erforderliches Debian-Paket
(libstdc++2.10_2.95.2-14_i386.deb), welches von www.debian.org bezogen werden kann.
Die Installation glückte mit:
# dpkg -i libstdc++2.10_2.95.2-14_i386.deb
Zu beachten ist, dass die Datei libstdc++[1].so.5 in das Verzeichnis /usr/lib/ kopiert und
umbenannt werden muss in libstdc++.so.5
Die Testsoftware besteht aus zwei Teilen, einer Serveranwendung in C-Code und einer
Client-Anwendung in Java-Code.
Gestartet wird die Applikation auf dem Basisgerät aus dem Home-Verzeichnis
(/home/roman) mit:
# ./listig listig2 3353
nach dem Schema:
# ./<program name> <host name> <port>
(Die Portnummer ist frei wählbar)
Danach lauscht das Programm auf eine Aktion vom Client:
listig2:~# cd /home/roman
listig2: /home/roman# ./listig listig2 3353
Server: opening socket on port = 0, datagrams on port = 3353
request from notebook
Your request: Licht aus
10 bytes received
request from notebook
Your request: Licht aus
10 bytes received
request from notebook
Your request: Temperatur=20 14 bytes received
request from notebook
Your request: Temperatur=20 14 bytes received
9
58
Damit das Client-Modul der Testapplikation auf dem Windows XP- Notebook läuft, muss
das Java 2 Runtime Environment (http://java.sun.com/j2se/1.4.2/download.html) auf
diesem Rechner installiert sein. Der Aufruf des Client-Programmes geschieht durch
Doppelklick auf die Datei listig.jar.
In dem sich öffnendem Fenster können
Konfigurationseinstellungen vorgenommen werden:
Abbildung 6.9: Konfigurationsfenster der Client-Anwendung
Das oberste Feld der Eingabemaske ist selbsterklärend. Unter „Port“ kann ein beliebiger
freier Port eingetragen werden.
Ebenso kann über das Feld „Send a message“ eine beliebige Nachricht (z.B.
Steuerinformationen) an den LISTIG-Host geschickt werden. Diese erscheint dann bei
erfolgreicher Hin- und Rückübermittlung wieder im Feld „Receive a message“ mit voran
gestelltem „You have sent:“ Ein Beispiel könnte folgendermaßen aussehen:
59
Abbildung 6.10: Übertragung einer Zeichenkette
Auf dem Monitor der Basisstation lässt sich mitverfolgen, dass die Ausgabe zwei mal
erfolgt. Das hängt mit dem Quittierungsverfahren zusammen, da die Daten zuerst vom
Server empfangen und dann wieder zurück an den Client verschickt werden.
6.5
Probleme während der Testphase
6.5.1 Der PCI-to-PCMCIA/PCCARD-Adapter unter Linux
Am Anfang standen mir als Test-Hardware nur PCMCIA-WLAN-Karten zur Verfügung,
was den Einsatz eines PCI-to-PCMCIA-Adapters erforderte. Hierbei kommt es nicht nur
darauf an, dass die WirelessLAN-Karte vom Betriebssystem unterstützt wird, sondern es
müssen auch Treiber zur Unterstützung der PCI-Host-Bridge vorhanden sein.
Bei der Bridge handelt es sich um den
Typ:
PCI-Version:
Frequenzbereich:
unterstützt:
Slot:
Datenrate:
Level One RNC-0100
v2.2
2,4 GHz
PCMCIA Typ I, II oder III, PC-Card
kompatibel zu PCI 2.2, Card Bus und PC-Card 2.0 Standard
maximal 11 Mbps
Der Chipsatz ließ sich als Ricoh R5C476II identifizieren. Ob er prinzipiell unter Linux
arbeiten soll, darüber ließ sich keine eindeutige Antwort finden. Hier traf ich in Foren auf
widersprüchliche Meinungen.
60
Nach gründlichen Recherchen habe ich die Informationen über die Komponenten
zusammengetragen, die zur Installation benötigt werden:
Was wird benötigt?
1. Zunächst das PCMCIA Package, welches unter http://pcmcia-cs.sourceforge.net/
zu finden ist.
Versionen: pcmcia-cs-3.3.8 oder
pcmcia-cs-3.0.14
2.
Des weiteren muss der Linux-Kernel mit folgenden Optionen kompiliert werden:
CONFIG_HOTPLUG (Support for hot-pluggable devices) = YES
CONFIG_PCMCIA (PCMCIA/CardBus support) = Module
CONFIG_CARDBUS (CardBus support) = YES
Zu guter Letzt brauchen wir noch die Wireless-Tools, welche unter
http://www.fasta.fh-dortmund.de/users/andy/wvlan/ zu finden sind.
3. Nachdem der Kernel mit den oben genannten Parametern kompiliert ist, muss das
PCMCIA Package installiert werden. Hier sind keine besonderen Tips
notwendig, einfach "make config", "make all", "make install".
Nun die Konfiguration des PCMCIA Packages:
Im File "/etc/pcmcia/config.opts" ist nun folgender Eintrag vor zunehmen:
module "wvlan_cs" opts "channel=1"
Außerdem muss das File /etc/pcmcia/network.opts bzw. /etc/pcmcia/wireless.opts
angepasst werden, wie in Kapitel 5.2.1 beschrieben.
Nun sollte sich das PCMCIA-Service starten lassen. Auf dem LISTIG-System musste ich
das Modul "yenta_socket" manuell laden, bevor ich das PCMCIA-Service starten konnte.
Doch der Erfolg, die WLAN-Karten in diesem Adapter zum Leben zu erwecken, blieb
trotzdem aus. Ich probierte es erfolglos mit:
•
•
•
•
Nokia D211
Linksys WPC11b
Cabletron Systems Roam About 802.11DS High Rate
und später mit
ARTEM ComCArd CC-W54g-STD-ETS-128
Linux unterstützt solche Adapter normalerweise mit den beiden Modulen:
•
•
i82365,
yenta_socket
Das Pcmcia_cs package verwendet aber nur das Modul i82365; das yenta_socket-Modul
ist darin nicht vorhanden.
61
Im Kernel ist wiederum das Modul yenta_socket wichtiger , weil ab der Kernel-Version
2.4.18 durch das Modul i82365 keine PCI-Adapter mehr unterstützt werden.
Für 486DX –PC’s ist eigentlich i82365 das richtige Modul. Doch in den neueren Kernelversionen, (>=1.4.18), die wir auf LISTIG brauchen, unterstützt eben dieses Modul keine
PCI-Adapter mehr.
Von Händlern habe ich Aussagen gelesen, dass kaum ein Hersteller die PCI-to-PCMCIAAdapter bisher so richtig im Griff hat.
David Hinds, der Entwickler des PCMCIA Linux-Codes äußert sich dazu sinngemäß, dass
die Tatsache, dass der Kernel nicht immer in der Lage ist, die Interrupt-Vergabe für ein
PCI-Gerät zu bestimmen, den Grenzen des Linux PCI-Subsystems zuzuschreiben ist. Es
scheint außerdem Motherboard-spezifisch zu sein, weil es von der Information abhängt,
die das BIOS liefert.
Genau hier liegt auch die Ursache für das im Kapitel 4.2.2 angesprochene Problem mit
dem nicht funktionierendem inneren PCI-Slot des LISTIG-Mainboards. Es ist dringend ein
BIOS-Update notwendig.
Zitat David Hinds:
"This problem, where the kernel is unable to determine the interrupt routing for a PCI
device, is a limitation of the linux PCI subsystem. It tends to be motherboard specific
because it depends on what information the BIOS provides. I think the problem most often
crops up, these days, with boards that are designed for ACPI. They provide PCI interrupt
information in ACPI tables, but do not provide a complete or correct PCI Interrupt Routing
Table, which is the only way the kernel currently knows how to fish out this information."
Quelle: http://www.serc-rmit.edu.au/~paul/wireless.html
So kann man im Prinzip nur die PCI-Bridge austauschen (oder das Motherboard)
Weitere Mainboards mit den gleichen Problemen sind z.B.:
•
•
•
Mainboard MSI K7T266 Pro (MS-6380)
Mainboard MSI K7T266 Pro2
Mainboard MSI KT3-Ultra ARU (6380E)
Besonders Mainboards von MSI scheinen Probleme mit dem Linux-PCI-Subsytem zu
haben.
6.5.2 Die Nokia D211 Card unter Linux
Die Nokia DataCard D211 vereint Datenübertragung per WLAN, GPRS und HSCSD in
einer PC-Card.
Sie verfügt über eine interne Antenne
Abbildung 6.11:
und soll mit einer breiten Palette
tragbarer Geräte kompatibel sein, die über
Nokia Multimode Card
62
einen Steckplatz für PC-Karten vom Typ II
oder III mit ausreichender Stromversorgung
verfügen.
Keine Probleme unter Windows
Für Windows- Betriebssysteme wurde der Treiber D211NIC.sys V1.00 025
auf der beiliegenden CD mitgeliefert. Die Installation unter Windows verlief
komplikationslos. Die Verbindung zur Datenübertragung sowie die Konfiguration werden
bedienungsfreundlich von der grafischen Benutzeroberfläche aus gesteuert. Das Nokia
D211 erreicht Übertragungsgeschwindigkeiten von bis zu 11 Mbit/s mit Wireless LAN.
Zudem verfügt das Nokia D211 über eine zum IEEE802.11bWiFi Standard kompatible
Schnittstelle für Mobilfunknetze.
Linuxtreiber
Für Linux befanden sich ebenfalls Treiber auf der CD, die jedoch
1. veraltet und
2. speziell für eine SuSe-Distribution gedacht waren.
Von der Nokia-Internetseite habe ich mir aktualisierte Treiber heruntergeladen.
Nach der ebenfalls von Nokias Webseite bezogenen englischen Installationsanleitung
(PDF-Dokument) gestaltete sich auch die Installation unter Linux zunächst unproblematisch.
Nicht gerade ideal ist jedoch, dass der Treiber (übrigens für die Kernelversion 2.4.22) zur
Hälfte aus einem binären Modul besteht, welches das Kernel-Modulmanagement
übernimmt. Hier kommt ein proprietäres Verfahren zum Einsatz, welches zur
Konfiguration der WLAN-Schnittstelle die standardmäßig bewährten Wireless-Tools
umgeht.
Installationsanleitung nachvollziehbar
Im einzelnen mussten folgende Schritte durchgeführt werden:
•
•
•
•
•
•
Entpacken der Treibermodule
Kopieren in die richtigen Verzeichnisse
Konfiguration des Treibers
Kompilieren des Treibers
Installieren der Treibermodule und Userspace-Utilities
Konfiguration der WLAN-Verbindung
Adapter-Problem
Jedoch aufgrund der im vorigen Kapitel geschilderten Probleme mit der PCI-Bridge,
verlief die Installation ergebnislos. Erschwerend macht sich das Fehlen einer Betriebs-LED
bemerkbar, die wenigstens Auskunft über eine physische Verbindung hätte geben können.
Teilerfolg
Erst nach deren Einsatz in der zweiten PCI-Host-Bridge, einem Dual Slot PCI-to-PC Card
Controller (PCI1221PDV) mit dem Chipsatz ti PC1221, einer sogenannten „Swap-Box“,
die in einem 3 ½ “-Schacht eingebaut ist, konnte ich mit meinem Notebook als Gegenstelle
63
ein Signal von der Nokia-Karte empfangen. Die physikalische Funktion ließ sich also
realisieren.
Neue Probleme
Das Problem war jetzt, dass der Treiber keine Anweisungen und Steuerbefehle verarbeitete
und damit die WLAN-Verbindung nicht konfigurierbar war. Versucht man das BenutzerInterface-Programm NOKIA_CTL aufzurufen, erscheint eine nichtssagende
Fehlermeldung.
Als Lösung für das Projekt LISTIG stellt die Karte meiner Meinung nach nicht die erste
Wahl dar, da zu proprietär im Ansatz. Außerdem kommt die Karte definitiv nicht mit der
Funktion SSID-Hide zum Geheimhalten der Netzwerk-Kennung klar und hat nach den
Erfahrungen zahlreicher Linux-User Probleme mit WEP.
Lösung?
Die Lösung der Probleme könnte eine neue Firmware sein
Da ich nur schwer beurteilen kann, ob die Probleme mit der Karte rein softwaremäßig sind,
oder wiederum mit dem Einschub-Adapter zusammenhängen, entschloss ich mich danach,
auf
eine
reine
PCI-WLAN-Karte
umzusteigen.
6.5.3 Die ARTEM ComCard (IEEE 802.11g)
Diese WirelessLan-Karte nach dem neueren 802.11g –Standard versuchte ich anfangs auf
dem LISTIG-Basisgerät unter Debian-Linux zum Laufen zu bringen. Wie sich später herausstellte, war das ein aussichtsloses Unterfangen. Zu diesem Zeitpunkt war die Unterstützung von Karten dieser neueren Generation mit Open Source –Treibern einfach zu
lückenhaft , fehleranfällig und oft gänzlich unmöglich. Bis heute hat sich nicht viel verbessert. Im Gegenteil die Unterstützung ist sogar in vielen Fällen aus verschiedenen Gründen schwieriger geworden.
Die Artem ComCard CC-W54g-STD-ETS-128 unterstützt Datenraten bis zu 54 Mb/s,
verfügt über automatische Datenratenanpassung, und ist abwärts kompatibel zum Standard
802.11b.
Zweifelhafte Linux-Unterstützung
Im Datenblatt des Herstellers befindet sich ein eindeutiger Hinweis, dass das Betriebssystem Linux nicht unterstützt wird.
Im Widerspruch dazu findet man auf der Internetseite des Herstellers aber einen Treiber
für seine 802.11g-Karten unter Linux. Es handelt sich leider um Treiber für eine alte
SuSe-Distribution: Suse8.2.
Der Treiber ist eingebettet in eine Archiv-Datei: SuSe8.2-pcmcia-3.2.3-1.tar.gz und
beziehbar über den Link:
http://www.artem.de/content/artem/artem000221/SuSe8.2-pcmcia-3.2.3-1.tar.gz
Der Treiber soll lediglich unter den Distributionen SuSe 8.2 und RedHat 9.0
funktionieren. Nach Erfahrungsberichten aus Internetforen funktioniert er mit SuSe 9.0
schon nicht mehr. Meiner Meinung nach handelt es sich um veraltete PRISM54-Treiber
des Open-Source-Projekts „Prism54“ (www.prism54.org)
64
Alternativ kann man sich nämlich hier mit dem aktuellen PRISM54-Treiber versorgen, der
folgende Chipsätze
• Prism Indigo
• Prism Fribee
• Prism GT
• Prism Duette
unterstützt, welche auf IEEE802.11g-Wireless-Karten verbaut werden.
Anfang 2004 war auf dieser Webseite übrigens noch die ARTEM-Karte gelistet, mit
großen Fragezeichen, weil noch keine Erfolgsmeldung bekannt war. Ab März 2004 ist die
Karte ganz aus dieser Liste verschwunden, was auch damit zusammenhängen kann, dass
der Hersteller vielleicht den Chipsatz ganz gewechselt hat und für den unter Linux gar
keine Unterstützung zu erwarten ist.
Hintergrund
Die Treiber stammen meist von einer unabhängigen Entwicklergruppe. Deshalb haben sie
noch die eine oder andere Eigenheit, schon die Installation gelingt oft nur unter
Schwierigkeiten. Auch hinsichtlich der Konfiguration halten sich die Entwickler nicht
immer an Standards, wie etwa die Wireless Extensions bei Linux, obwohl diese die
Implementierung einer eigenen Konfigurationsschnittstelle ersparen und dem Anwender
den Umgang mit unterschiedlichen Produkten erleichtern. Ohne ein gutes Stück
Handarbeit - Erstellen und Einbinden von Konfigurationsskripten geht die Inbetriebnahme
der neuen WLAN-Karten derzeit noch nicht vonstatten. Bei fast allen Treibern ist
zumindest ein Teil des Codes nicht als Quelltext erhältlich. Da werden Binary-OnlyModule in den Kernel geladen und verwehren dem Entwickler jegliche Einflussnahme
sowie Details über den Hardwarezugriff und die integrierten Funktionen. Hier stoßen zwei
Welten aufeinander: Firmen, die ihrer Konkurrenz keine Details über die Funktionsweise
liefern wollen und die Open-Source-Bewegung, für die gerade die Offenlegung der Interna
erwünscht, wenn nicht gar erforderlich ist.
Oft scheitert das Finden des richtigen Treibers für die eigene WLAN-Karte aber schon
daran, dass kaum ein Hersteller den verwendeten Chipsatz angibt. Viele Anbieter wechseln
ihn zudem zwischen Produktversionen, ohne gleichzeitig die Typennummer der Karte zu
ändern. Eine recht gut gepflegte Liste enthält das WLAN-Wiki der Universität
Konstanz.(http://wiki.uni-konstanz.de/wiki/bin/view/Wireless/WirelessLAN).
Hilft diese Liste nicht weiter, kann man oft anhand der Vendor- und Device-IDs den
vorhandenen Chipsatz herausfinden. Unter Linux zeigt normalerweise ein lspci -n diese
IDs an. Alternativ wirft cardctl ident Informationen zur Karte aus.
Prism54-Treiber
Bei den ursprünglich von Intersil entwickelten Prism-Chipsätzen, laufen viele Funktionen
als Software auf dem integrierten Mikrocontroller. Anders als noch bei den Vorgängern
wird die dafür nötige Firmware nun jedes Mal beim Starten des Treibers in die Karte
geladen. Grundsätzlich kann man den Treiber als freie Software betrachten, da alle auf
dem Host laufenden Programmteile unter der GPL im Quelltext vorliegen. Problematisch
ist allerdings die Bereitstellung des Firmware-Images, dafür sind die Anwender nach wie
vor auf den Hersteller angewiesen.
Umständliche Installation
65
Die Installation des Prism54Treibers gestaltet sich sehr umständlich und erfordert das
Lesen zahlloser Readme-Dateien. Er basiert auf einer von Intersil für Access Points
entwickelten Software, die für die normale Anwendung nicht gerade freundlich scheint.
Bei meinen Versuchen habe ich mich genau und sorgfältig an die mitgelieferte
Installationsanleitung unter Documentation/index.html gehalten. Beispielsweise war es
notwendig, den Kernel ohne aktivierten PCMCIA/CardBus-Support und mit einem
mitgelieferten Kernelpatch neu zu erstellen. Erst danach kann der eigentliche Treiber
kompiliert werden.
Wenn bis hierhin alles geklappt hat, wird nach Konfiguration der Card Utils und Starten
des Treibers die WLAN-Konfiguration über die mitgelieferten Programme setoid und
getoid fällig.
Diese sollen mit ihrem Handling und der Verwendung von SNMP-OID (Simple Network
Management Protocol Object IDentifier) angeblich den Ursprung aus einem Access-PointTreiber offenbaren. Details muss man sich obendrein aus der Quelldatei bloboid.h
zusammensuchen.
Es wird in der Anleitung zu einem 2.6’er Kernel geraten. Ohnehin sind alle notwendigen
Patches oder zusätzlich zu installierenden Pakete unstable oder testing. Alle Treiber waren
Snapshots (CVS) und wurden ca. jede halbe Stunde aktualisiert. Weitere Pakete, die in der
Vorbereitung installiert werde mussten, waren:
Hotplug, Hotplug-Utils, Pcmcia-cs und Wireless-Tools in den neuesten Versionen, was
eine Menge Abhängigkeitskonflikte mit installierten Paketen und Bibliotheken einbrachte,
die es aufzulösen galt. Zusätzlich musste Firmware aus dem Internet geladen und ein
Firmware-Agent gescriptet werden. Alle Einzelheiten zu schildern würde den Rahmen
dieser Arbeit sprengen.
Versuch fehlgeschlagen
Die Installation des Hotplug-Systems ist aus unbekanntem Grund fehlgeschlagen. Doch
der Hauptgrund zum Abbrechen des Versuchs war, dass nach den zahlreichen
erforderlichen Installationen der Befehl make menuconfig nicht mehr funktionierte, der
jedoch zum Konfigurieren des gepatchten Kernels unbedingt gebraucht wurde. Hinweise
deuteten auf eine kaputte glibc-Bibliothek. Dieses Problem ließ sich aber nicht in einer
akzeptablen Zeitspanne lösen.
Auch problematisch war, dass sich nach der Installation des Linux-Kernel 2.6.4 und der
Hotplug-Umgebung, das System so langsam wurde, dass sich Tastatureingaben merklich
verzögert auswirkten und sich die Bootzeit auf etwa 10 – 15 Minuten erhöhte.
Fazit
Wer aktuelle WLAN-Karten unter Linux zum Laufen bringen möchte, muss derzeit noch
auf wenig zufriedenstellende und fehlerhafte Treiber zurückgreifen, die oft auch noch
Binary-Only-Module mitbringen.
Die Unterstützung der einheitlichen Konfigurationsschnittstelle Wireless Extensions unter
Linux bleibt abzuwarten.
Unter diesen Gesichtspunkten schien es nicht sinnvoll, weiter mit der ARTEM-Karte oder
anderen Prism54-Karten zu experimentieren, da auch das LISTIG-System damit
offensichtlich überfordert wäre.
Es war richtig, sich danach für eine PCI-WLAN-Karte nach IEEE802.11b zu entscheiden.
Auf der Webseite www.prism.org ist von dem Problem zu lesen, dass immer mehr
Hersteller die neuen SoftMAC Chipsätze einkaufen, die noch nicht von Linux unterstützt
66
oder vielleicht nie unterstützt werden. Sie sollen die bisherigen FullMAC Chipsätze
ersetzen, ohne dass die Hersteller wichtige Identifizierungsnummern ändern. Wenn man
nicht die Möglichkeit hat die Karte vor dem Kauf unter Linux zu testen, kann man
heutzutage nur empfehlen, auf Karten mit 802.11g basiertem Chipsatz zu verzichten.
Auf http://prism54.org/supported_cards.php sieht man, dass momentan nur sehr wenige der
Prism54-basierten Karten von Linux-Treibern profitieren. Konkret sind das:
•
•
•
•
Netgear WG511
3com OfficeConnect 11g Wireless LAN PC Card
SMC2802W - EZ Connect g 2.4GHz 54 Mbps Wireless PCI Card
D-Link Air Plus Xtreme G A1
Die Erfolgsquote bei Installation dieser Karten liegt um die 90 %,
doch im Betrieb treten teilweise hohe Fehler-Raten von durchschnittlich um die 40% auf.
7
Bewertung der Verbindungsqualität
7.1
Grundlegendes
Die Reichweite hängt stark von den Räumlichkeiten, den Antennen und der Sendeleistung
ab. Grundsätzlich breiten sich im verwendeten Frequenzbereich von 2.4 GHz die
Funkwellen quasioptisch aus, d.h. im wesentlichen so, wie man es von "normalem" Licht
her kennt. Ideal ist daher eine direkte Sichtverbindung zwischen LISTIG-Basisgerät und
PC-Karte im Notebook/PDA. In geschlossenen Räumen basiert der Empfang auch stark
auf Reflexion der Funkwellen an Wänden oder anderen dichten, ebenen Flächen. Dabei
kann es vorkommen, dass ein Signal beim Empfänger aus mehreren Richtungen
gleichzeitig
oder
fast gleichzeitig ankommt und sich so überlagert.
Im folgenden einige grobe Reichweitenangaben (bezogen auf 802.11b), abhängig von den
verwendeten Antennen:
¾ Normale Antennen (die integrierte Antenne der PCMCIA-Karte)
• auf der grünen Wiese ca. 300m
• in offenen Räumen oder verglasten Gebäuden ca. 100m
• in Büros mit dünnen Wänden (kein Beton) ca. 40m
• problematisch ist u.U. metallbedampftes Energiesparglas - je nach
Ausführung ist dahinter mit stark vermindertem bis gar keinem Empfang zu
rechnen
• in Räumen mit Stahlbetonwänden ist an der Wand Schluss - oft geht
allerdings noch etwas durch die Fenster raus
• Beton ist nicht gleich Beton. Filigranbeton - aus dem in Neubauten oft
Geschossdecken sind - lässt Funkwellen - wenn auch stark gedämpft durch.
67
Typische Dämpfungswerte sind folgende:
• offenes Gelände:
• geschlossene Räume:
•
•
•
•
•
7.2
5 dB
>30 dB
jede Wand, Decke:
4 – 6 dB
Beton:
6 – 8 dB
Glas:
3 dB
Metall:
sehr große Dämpfung
atmosphärische
Änderungen (Luftfeuchte, Regen, Schnee):
10 dB
Messungen
Die Leistungsfähigkeit einer Netzwerkverbindung lässt sich am besten anhand der
Übertragung von großen Dateien überprüfen. Folglich gilt es den Netzwerkdurchsatz zu
messen. Im Internet findet dazu Tools, wie z.B. NetIO, welches auch ich für meine
Messungen verwendete. Das Tool wird über Kommandozeilen in einer DOS-Box bedient.
Es ist so konzipiert, dass es mindestens auf zwei Rechnern im Netzwerk eingerichtet
werden muss. Auf dem LISTIG-Basisgerät wird die Datei netio116 im so genannten
Servermodus gestartet und auf dem Notebook im Client-Modus. Für den eigentlichen Test
schickt dann der NetIO-Client unterschiedlich große Datenpakete an den NETIO-Server.
Der wiederum sendet die Daten zurück und damit wird der Datendurchsatz gemessen.
Auf dem LISTIG-System wechselt man zunächst mit
#
cd /home/roman/netio116/bin
in das richtige Verzeichnis. Das LISTIG-Gerät soll also nach folgendem Schema:
#
./linux-i386 –s <Client-IP-Nummer> -p <freie Portnummer>
im Servermodus gestartet werden. Dazu tippt man ein:
#
./linux-i386 –s 192.168.0.2 –p 18767
Die Option –s steht für Server-Modus. Nach der Eingabebestätigung sollte anschließend im
Fenster die Zeile
TCP/IP server Listening
zu sehen sein.
Auf dem Windows-Notebook öffne ich über Start/Programme/Zubehör/Eingabeaufforderung eine DOS-Box und wechsele in das entsprechende bin-Verzeichnis meiner
entpackten Datei. Der Aufruf des Programms unter Windows unterscheidet sich etwas von
der Linux-Version. Mit der Option –t teile ich NetIO mit, das mit TCP/IP getestet wird. Ich
gebe also ein:
68
C:\Net\netio116\bin> win32-i386 –t 192.168.0.1 –p 18767
Auf dem anderen Rechner, auf dem der Server läuft, ist jetzt der Satz
TCP/IP connection established
zu lesen, gefolgt von einem
...done
sobald die Verbindung steht.
Schaut man sich jetzt den Client-Rechner an, sieht man in der DOS-Box, wie verschiedene
Datenpakete mit unterschiedlichen KByte-Größen abgeschickt werden.
Sobald vom Server die Rückmeldung kommt, wird der Datendurchsatz in KByte/s
angezeigt. Es werden insgesamt sechs Datenpakete losgeschickt, deren Größe sich immer
verdoppelt. Das erste Paket hat 1 KByte Größe, das letzte ist demnach 32 KByte groß. Pro
Paket werden zehn Sekunden gemessen, bevor der NetIO-Server das Feedback schickt.
Ein weiteres Tool, das ich zu Performance-Messungen einsetzte, ist Network Stumbler.
Es läuft unter den Windows-Betriebssystemen und kann somit auf einem Client-Gerät, wie
z.B. einem Notebook zu Messungen benutzt werden.
Network Stumbler ist ideal zur Reichweitenmessung und veranschaulicht präzise, wie die
Verbindungsqualität mit jedem Meter Entfernung leidet. Es ist frei im Internet erhältlich
und wird regelmäßig aktualisiert.
Die aufgenommenen Messdaten geben Auskunft über vorhandene WLAN-Netze,
Netwerk-Kennung (SSID), Kanal, Geschwindigkeit, Netzwerktyp, Verschlüsselungsart,
Signal-Rausch-Abstand, Empfangsfeldstärke und deren Spitzenwerte:
Abbildung 7.1: Messung der Verbindungsqualität mit Network Stumbler
69
Messwerte
Den Tabelleneintragungen ging eine Auswertung von umfangreichen Messwertreihen voran.
1. Paketgrößenabhängiger Netzwerk-Durchsatz mit NetIO, ohne
Verschlüsselung
Distanz 2 Meter:
Durchschnittliche Datenrate in KByte/s
Paketgröße
in KByte
1
2
4
8
16
32
Sender Tx
Empfänger Rx
453
490
584
591
593
616
557
571
581
612
601
596
Ø = 554
Ø = 586
Tabelle 7.1: Messwerte Netzwerk-Durchsatz, 2m
Distanz 4 Meter:
Durchschnittliche Datenrate in KByte/s
Paketgröße
in KByte
1
2
4
Sender Tx
Empfänger Rx
442
425
478
595
606
604
70
8
16
32
513
491
529
634
621
630
Ø = 480
Ø = 6151
Tabelle 7.2: Messwerte Netzwerk-Durchsatz, 4 m
2. Messwerte mit NetIO und Net Stumbler über unterschiedliche Reichweiten,
mit Verschlüsselung (WEP 128 Bit)
Distanz
zwischen Host
und Client
<1m
5m
5 m (1 Wand)
8m
( 2 Wände)
10 m
10 m (1 Wand)
15 m (1 Wand)
20 m (1 Wand)
20 m (1 Wand
+ 1 Glaswand)
Empfangsfeldstärke
in dBm
SNR
in dB
Durchschnittliche
Datenrate in KByte/s
Sender
Empfänger
-70 max. -53
-71 max. -54
-73 max. -57
-77
25
28
23,5
24
474
493
462
478
564
556
551
557
-76 max. -56
-77 max. -56
-79
-79
23
26
19
24
457
479
474
426
282
560
533
530
465
202
Tabelle 7.3: Messwerte Verbindungsqualität
7.3
Beobachtungen und Schlussfolgerungen
Würden die 11 MBit/s, die WLAN nach IEEE 802.11b theoretisch schafft, voll und ganz
nutzbar "durchkommen", dann müsste der Datendurchsatz zwischen zwei Computern
rechnerisch 1.408 KByte/s entsprechen (wenn man die 11 MBit/s auf die Darstellung als
KByte/s umrechnet). Da die 11 MBit/s, die ein WLAN technisch schaffen könnte, nur
unter absoluten Idealvoraussetzungen erreicht werden und zudem ein Teil der
Übertragungsrate für technische Abläufe und nicht für den reinen Datentransport
verbraucht werden, gilt ein Datendurchsatz von 600 KByte/s als hervorragender Wert und
alles über 400 KByte/s immer noch als sehr gut.
1
Der zufälligerweise höhere Datendurchsatz beim Empfang in der 4m-Distanz im Vergleich zur 2m-Distanz
könnte mit dem Interferenzmuster von Empfangsmaxima und Empfangsminima der EM-Wellen
zusammenhängen wie es im nächsten Kapitel erklärt wird.
71
Maxima und Minima
Die Wellenlänge im 2,4 GHz-Band beträgt ca.12 cm. Jeder Metallgegenstand mit 7 cm
Länge oder einem Vielfachen davon ist damit ein guter Absorber oder Reflektor – im
Zweifel reicht schon ein Nagel in der Wand. Das Interferenzmuster, welches durch
Reflexionen in Räumen entsteht, ist also sehr fein. Ein Empfangsoptimum kann wenige
Zentimeter neben einem Empfangsminimum liegen. Daher sind starke Schwankungen in
der Empfangsfeldstärke beim Verschieben der WLAN-Karte (Antenne) schon um wenige
Zentimeter normal - und machen sich natürlich gerade dann bemerkbar, wenn der Empfang
ohnehin schon recht schwach ist. Praxisrelevante Aussagen über die Reichweite lassen sich
so kaum machen: Während im freien Feld durchaus Entfernungen von über 50 km möglich
sind, kann die Verbindung in der eigenen Wohnung schon zwei Zimmer weiter zusammenbrechen.
Polarisation
man sollte Antenne am besten mit einem Winkel von 90 Grad zueinander ausrichten. Das
liegt daran, dass nicht nur die Energiefelddichte (Signalstärke) eine Rolle spielt, sondern
auch die Polarisation. Wenn man es perfekt machen will, richtet man auch in einem Raum
die Antennen senkrecht zueinander aus, so dass jeweils eine Antenne eine Polarisationsrichtung abdeckt.
Datendurchsatz
Der in den Standards festgelegte (und im Marketing stark beworbene) BruttoDatendurchsatz wird in der Praxis mit realen Anwendungen nie erreicht.
Die Brutto-Datenrate von 11 MBit/s bezieht alle Kontrollinformationen und StatusMeldungen ein, in der Praxis erreicht man auch unter optimalen Bedingungen höchstens 1
MByte/s, die bei einigen Metern Entfernung oder durch Wände schnell auf 100KByte/s
oder noch weniger einbrechen, irgendwann versagt die Verbindung dann gänzlich. Je
größer die Distanz zwischen zwei WLAN-Geräten, umso geringer ist die
Übertragungsgeschwindigkeit.
Da der WLAN-Protokoll-Overhead unabhängig von der Paketgröße stets konstant bleibt,
verringert sich bei kleineren Paketgrößen die Netto-Datenrate entsprechend.
|---------------------- 1500 byte -----------------|
[------------------ Nutzdaten ----------------][CRC]
Zeitverzögerung:
Systembedingt können in Funknetzen - im Vergleich zu der recht fehlerfreien Verbindung
in einem kabelgebundenen Netzwerk - teilweise erheblich verlängerte Übertragungszeiten
auftreten. Das äußert sich z.B. in relativ hohen Ping-Zeiten (relevant vor allem bei Voiceover-IP (VoIP)-Anwendungen, oder Maschinensteuerungen).
Der Grund dafür ist die Tatsache, dass das Funknetz im OSI-Schichtenmodell auf dem
Physical Layer (der untersten Schicht) angesiedelt ist, und deshalb von den darüber
liegenden Schichten (insbesondere der Transport- und Sicherungsschicht) genauso wie ein
Netzwerkkabel behandelt wird. Wegen der im Funknetz nicht zu vermeidenden Störungen
realisiert WLAN aber, anders als ein einfaches Kabel, schon seine eigenen
Korrekturmechanismen. Diese erweiterten Sicherungsfunktionen sorgen bei Fehlern in der
Übertragung selbstständig für ein erneutes Verschicken der Datenpakete, ohne dass die
höheren OSI-Schichten davon etwas mitbekommen. Der Protokoll-Stack wiederum 'weiss'
ja nichts von der Existenz dieser funknetzspezifischen Korrekturmechanismen, deshalb
interpretiert z.B. TCP/IP die kleine Verzögerung durch die (Funknetz-)Korrektur
72
seinerseits als 'Verstopfung' der Leitung und erhöht die notwendigen Bestätigungen von
Datenpaketen durch den Empfänger, um gehäufte Wiederholungen von Datenpaketen zu
vermeiden. Für die gesicherte Datenübertragung hat aber eben schon das Funknetz gesorgt
- aus einer ursprünglich kleinen Verzögerung wird damit schnell eine größere.
Geschwindigkeit:
Für die geringe Datenmenge, die zur Steuerung einer Hausautomatisierungsanlage anfällt,
ist der Standard 802.11b mit 11 MBit/Sekunde völlig ausreichend. 11 MBit/s brutto
bedeuten letztendlich in der Praxis 4 bis 6 MBit/s.
Erhöhung der Sendeleistung und Reichweite
In der Praxis sind Entfernungen von 25 bis über 50 Meter möglich. Wie bei allen
Funkverbindungen hängt das stark von der Raumaufteilung und den verwendeten
Baustoffen ab. Die Reichweite ist ein wichtiges Kriterium, dass man allerdings nur sehr
grob angeben kann. In Büro-Umgebungen beträgt sie je nach System 30 bis 100 Meter. Im
Freien kommt man auch bis zu einem Kilometer weit, was im Anwendungsfall von
LISTIG jedoch keine Rolle spielt. Sollte die Sendeleistung oder die Reichweite des WLAN
trotz Optimierung der Standortwahl über die Datendurchsatzmessungen nicht ausreichen,
gibt es mehrere Möglichkeiten, diese dennoch ein wenig zu erhöhen. Die Antennen in den
üblichen WLAN-Karten sind Rundstrahler. So kann man am Basisgerät stärkere Antennen
mit Keulencharakteristik, also mit Richtwirkung, verwenden oder wenn die WLAN-Karte
des Clients über einen entsprechenden Anschluss verfügt, kann dieser mit einer externen
Antenne ausgestattet werden.
8
Sicherheit und Authentifizierung
8.1
Sicherheitsaspekte
Mit welchen Problemen ist bei einer drahtlosen Steuerung zu rechnen?
Abbildung 8.1: Gefährdungen
73
Man sieht hier dieselben Gefährdungsklassen, die man schon von drahtgebundenen Netzen
kennt. Wie dort ist Sicherheit auch relativ und muss immer eine angemessene Wertigkeit
gegenüber den oft konkurrierenden Merkmalen wie Nutzerfreundlichkeit oder Performanz
erhalten.
Eine absolute Sicherheit gibt es natürlich nicht:
"The only system which is truly secure is one which is switched off and unplugged,
locked in a titanium lined safe, buried in a concrete bunker, and is surrounded by
very highly paid armed guards. Even then, I wouldn't stake my life on it."
(Gene Spafford)
Bei den Vorkehrungen zur WLAN-Sicherheit hat man folgende Teilaspekte zu unterscheiden:
•
•
•
Authentifizierung und Autorisierung
Integrität
Vertraulichkeit
Vorkehrungen zur Sicherheit können in ganz verschiedenen Schichten angeordnet werden.
Damit wird klar, dass hier keineswegs nur WLAN-spezifische Techniken eine Rolle
spielen. Einige der Techniken sind alternativ, aber auch Kombinationen sind oft sinnvoll.
Abbildung 8.2: Einordnung der verschiedenen Sicherheitstechniken
8.2
WEP
74
Funknetze sind offensichtlich leichter abzuhören oder zu beeinflussen als drahtgebundene
Netze oder gar Lichtwellenleiter. In Anerkennung dieser Tatsache wurde als Bestandteil
von 802.11 eine Technologie unter der Bezeichnung Wired Equivalent Privacy (WEP)
entwickelt.
Diese soll ein Abhören der Funkübertragung verhindern oder zumindest erschweren. Ein
sekundäres Ziel war die Realisierung einer Zugriffskontrolle auf das WLAN. WEP soll
etwa das Sicherheitsniveau eines Kabel-Ethernet erreichen.
Die Realisierung hat mehrere Elemente:
•
•
Verschlüsselung mit Stream Cipher RC4
den Partnern ist ein geheimer Schlüssel bekannt
shared secret key
•
Integrity Check (IC) CRC-32 zur Integritätsprüfung
linear, d.h. Modifizierer kann CRC wieder stimmend machen!
•
24 Bit Initialization Vector (IV)
soll identische verschlüsselte Daten bei identischem Klartext verhindern,
wird unverschlüsselt übertragen
75
Abbildung 8.3: WEP-Funktionsweise
Im Laufe der letzten 2 Jahre sind einige signifikante (und vermeidbare) Schwachstellen
von WEP gefunden worden:
•
Der IV-Raum ist zu klein, hier ein Rechenbeispiel:
8 Mbit/s, 1000-Byte-Pakete
d.h. 1 ms/Paket, 16777,216 s für 2^24 Pakete, ca. 4,6h
Der IV wiederholt sich also nach einigen Stunden, damit liegt dann auch der
gleiche Schlüsselstrom vor.
•
•
Wenn ein Klartext bekannt ist, dann kann der dazugehörige Schlüsselstrom durch
XOR ermittelt werden. Damit sind dann alle verschlüsselten Texte, die den
gleichen IV verwenden, entschlüsselbar.
Die Kenntnis eines Klartexts zu einem verschlüsselten Text ist leichter zu erlangen,
als man auf den ersten Blick glaubt. Beispielsweise kann man einen bekannten
76
•
•
Klartext von einem beliebigen Host außerhalb des WLAN an eine Mobilstation
schicken.
Die Integritätsprüfung mittels CRC-32 kann nur zufällige Fehler mit hoher
Wahrscheinlichkeit erkennen. Bei absichtlichen Modifikationen kann auch ohne
Kenntnis des Klartext-Inhalts der CRC-32-Wert wieder "passend" gemacht werden.
Das lässt sich beispielsweise ausnutzen, um die Ziel-IP-Adresse auf einen
beliebigen Host außerhalb des WLAN zu ändern. Der AP entschlüsselt dann den
betreffenden Datenstrom.
Ein Klient weist zur Authentifizierung die Kenntnis des Schlüssels nach:
Abbildung 8.4: WEP-Authentifizierung
Ein Mithörer kennt jetzt Klartext und verschlüsselten Text,
er kann daraus den RC4-Strom bestimmen (für einen IV).
Ein Mithörer kann nun eine andere Challenge korrekt beantworten!
•
Die Verteilung der geheimen Schlüssel ist nicht trivial. Allen Nutzern (auch
Gästen)
muß
der
geheime
Schlüssel
bekanntgegeben
werden.
Ein öffentlicher Aushang ist hierzu sicher nicht optimal, etwas besser ist z.B. die
Lieferung dieser Information nach Authentifizierung über einen anderen Weg
(geschützte
WWW-Seite
...).
Eine Alternative wäre das Einsammeln der Notebooks und die Schlüsseleinstellung
durch eine vertrauenswürdige zentrale Stelle. Beide Verfahrensweisen haben
Nachteile. Auch die in den meisten APs gegebene Möglichkeit, eine kleine Anzahl
verschiedener Schlüssel einzustellen, mildert das Problem nur wenig.
Aus den geschilderten Schwachstellen sollte man folgende Konsequenzen ziehen:
... kurze Schlüsselnutzungszeiten
Ein automatisiertes Schlüsselmanagement kann die beschriebenen Schwachstellen
teilweise beheben. Einige Produkte enthalten entsprechende Zusätze, die Interoperabilität
ist dann aber möglicherweise nicht gegeben.
77
... Firewalls/SSH/SSL nutzen
Beim heutigen Stand der Technik ist die Verwendung von etablierten Techniken in
anderen Schichten empfehlenswert.
Folgende Standardisierungswege für WEP-Verbesserungen (IEEE 802.11i) zeichnen sich
ab:
•
•
8.3
Temporal Key Integrity Protocol (TKIP)
o Kurzfristig, weitgehende Nutzung vorhandener Hardware
o Message Integrity Check (MIC) "Michael" mit 64-Bit-Schlüssel (weniger
rechenaufwendig als z.B. HMAC-SHA1)
o Sequenznummer gegen Replay (48 Bit)
o Verschlüsseln mit "Per-Packet"-Schlüssel (aus Basisschlüssel,
Sequenznummer ...)
Counter-Mode-CBC-MAC (CCMP)
o Advanced Encryption Standard (AES) als Verschlüsselung
o Cipher Block Chaining Message Authentication Code (CBC-MAC) zur
Integritätssicherung
Authentifizierungsmechanismen
Eine Authentifizierung der WLAN-Nutzer braucht man aus mehreren Gründen:
•
•
•
nur festgelegte Nutzer/Nutzerklassen zulassen
Ressourcenbegrenzung (Bandbreiten/Datenmengen) ?
Abrechnung (Accounting)
Zur Identifikation eines Nutzers gibt es eine ganze Reihe unterschiedlicher Ansätze. Einige
sind eher für kleine, selten wechselnde Nutzermengen geeignet; für große Nutzermengen
sind nicht alle Verfahren praktikabel.
•
Kenntnis des
Network Name, SSID,
Extended Service Set IDentifier (ESSID)
Der Nutzer weist hier nur nach, dass er einen Netzidentifikator kennt. Wenn dies
als "Netzpasswort" gehandhabt werden soll, ergeben sich dieselben logistischen
Hürden
wie
bei
der
Verteilung
geheimer
WEP-Schlüssel.
Ein offenes Netz akzeptiert Mobilstationen ohne Netzidentifikator. Für die
Einschränkung auf Mobilstationen, die den SSID kennen, findet man mitunter die
Bezeichnung "Closed Network" (das ist wohl etwas irreführend).
•
MAC-Adresse - 48 Bit
Hier wird im Grunde die WLAN-Karte als "Authentifizierungstoken" verwendet,
was sich ganz gut mit der mancherorts praktizierten Ausleihe von WLAN-Karten
organisieren
lässt.
Nachteilig ist der Organisationsaufwand für "fremde" WLAN-Karten. Außerdem
78
ist eine MAC-Adresse kein Geheimnis, sie lässt sich leicht ermitteln. Weniger
bekannt ist die Tatsache, daß sich in vielen Fällen auch beliebige MAC-Adressen
einstellen lassen.
•
WEP-Authentifizierung - shared secret key
Wie wir im letzten Abschnitt gesehen haben, ist diese Variante eher
kontraproduktiv.
•
VPN-Authentifizierung (PPTP, IPSec ..)
Viele VPN-Technologien enthalten Vorkehrungen zur Authentifizierung gegenüber
dem
anderen
Tunnelende,
so
etwas
ist
natürlich
nutzbar.
Hier greifen die Eigenschaften (und potentiellen Schwachstellen) der verwendeten
VPN-Technologie.
•
Nutzername/Passwort via HTTPS
Die Nutzer müssen sich über eine Anwendung authentifizieren. Die
Authentifizierungsinformationen (z.B. Nutzername und Passwort) müssen
hinreichend sicher übertragen werden, was beispielsweise mit HTTP über SSL/TLS
gegeben ist.
•
Port-based access control - IEEE802.1x
Das ist eine neue Entwicklung zur Authentifizierung von Netzzugängen. Im Fokus
befinden sich nicht nur WLAN-Zugänge, sondern z.B. auch Ethernet-Dosen mit
mehr
oder
weniger
öffentlichem
Zugang.
Diese Technik ist Teil der neuen IEEE-Sicherheitsarchitektur Robust Security
Network (RSN). Es wird das Extensible Authentication Protocol (EAP)
verwendet, hier konkret EAP over Wireless (EAPoW).
Abbildung 8.5: EAP-Anwendung bei WLANs
Da EAP ursprünglich für drahtgebundene Netze vorgesehen war, fehlten spezielle
Vorkehrungen zum kryptografischen Schutz der Authentifizierungsinformationen.
79
Weiterhin hat sich der Authenticator nicht selbst ausgewiesen, so daß man mit
einem "illegalen" AP/Authenticator die Authentifizierungsinformationen
"einsammeln"kann.
Beide Probeme löst die Entwicklung EAP/TLS, wo mit Transport Layer
Security (TLS) eine bewährte Technik zur Herstellung eines sicheren Kanals
verwendet wird (bekannt von https ...).
•
...
Einige der Verfahren sind kombinierbar, was Schwachstellen kaschieren kann.
Problematisch ist oft die Erkennung der Kontinuität bzw. des Nutzungsendes für einen
autorisierten Nutzer.
Für die Verwaltung von Authentifizierungsdaten sollte möglichst auf etablierte und für
andere Zwecke oft ohnehin vorhandene Techniken zurückgegriffen werden, wie z.B.
•
•
•
Remote Authentication Dial In User Service (RADIUS), RFC 2865
Kerberos
Directory-Systeme (LDAP ...)
Ein typischer Ablauf sieht dann so aus:
1.
2.
3.
4.
8.4
MS2 assoziiert sich mit AP
MS bekommt private IP
MS authentifiziert sich (z.B. gegenüber VPN-Server)
MS bekommt NAT freigegeben oder "eigene" IP
Vertraulichkeit
Eine mögliche Vorkehrung zur Sicherung der Vertraulichkeit ist die Verwendung der
WEP-Verschlüsselung. Trotz der bekannten Schwachstellen ist das sicher besser als gar
keine Vorkehrungen. Andererseits wird man bei etwas höheren Anforderungen nicht um
zusätzliche oder alternative Techniken herumkommen. Dieser Abschnitt soll primär
Lösungen "oberhalb" von WEP kurz darstellen.
•
Virtual Private Networks (VPN)
o IPSec
Bei den ersten Standardentwürfen zu IPSec hatte man übrigens ähnliche
Fehler gemacht wie bei WEP. Mittlerweile kann IPSec aber als
einigermaßen solide gelten. Als Nachteil bleibt die meist nicht triviale und
schwer auf Korrektheit zu prüfende Konfigurierung (vor allem in
Endsystemen).
o
2
Mobile Station
Point-to-Point Tunneling Protocol (PPTP)
80
Diese Variante ist im Windows-Umfeld recht verbreitet. Es gibt allerdings
auch hier eine Reihe signifikanter und gern ausgenutzter Schwachstellen.
o
Layer 2 Tunneling Protocol (L2TP)
Hinter dieser Variante stehen IETF und große Routerhersteller.
•
End-zu-End-Verschlüsselung und -Authentifizierung
o Secure Sockets Layer (SSL)
Transport Layer Security (TLS)
o Secure Shell (SSH)
Wir können hier nicht die Abläufe und Anforderungen aller End-zu-End-Varianten
behandeln,
diese
sind
auch
nicht
WLAN-spezifisch.
Hier sollen nur beispielhaft wesentliche Elemente des Ablaufs bei SSH 2.x gezeigt werden,
da hierbei wichtige Merkmale klar werden.
Zu Beginn wird ein "gemeinsames Geheimnis" nach dem Diffie-Hellman-Verfahren
gewonnen:
Abbildung 8.6: Diffie-Hellman
Anschließend weist der Server seine Identität nach (hier mittels RSA):
81
Abbildung 8.7: RSA-Authentifizierung
Jetzt können über die so gesicherte Verbindung nicht nur Textdialoge geführt werden,
sondern nahezu beliebige Protokolle "getunnelt" werden, z.B. X-Window:
Abbildung 8.8: X-Window über SSH-Tunnel
82
8.5
Exkurs: Der HostAP-Treiber auf dem LISTIG-System
Viele der in den vorangegangenen Kapiteln dargestellten Sicherheitstechniken (wie z.B.
das von mir favorisierte EAP/TLS) lassen sich nur mit einem Access Point verwenden.
Das HostAP-Projekt (http//hostapi.epitest.fi) entwickelt für Linux einen speziellen
Treiber, der gewöhnliche WLAN-Karten mit Access Point- Funktionalität ausstattet.
Es ist eine Patch-Datei erforderlich, die von der Homepage des HostAP Projekts
runtergeladen werden kann. Da es den Patch erst für Kernelversionen ab 2.4.24 gab, war es
notwendig, dass ich zu diesem Versuch zusätzlich den Kernel 2.4.24 besorgen und nach
Anwendung des Patches auf dem Basisgerät installieren musste.
Nach dem Entpacken der Kernelquellen wendet man den Patch folgendermaßen an:
#
#
cd /usr/src/linux-2.4.24
patch –p1 </usr/src/hostap-driver-02.4.tar/hostap-driver-0.2.4/Kernelpatches/hostap-linux-2.4.24.patch
#
cp /usr/src/ hostap-driver-02.4.tar/hostap-driver0.2.4/driver/modules/hostap*.[ch]
drivers/net/wireless
Eine andere Variante wäre es, den HostAP-Treiber separat zu installieren.
Den Treiber selbst gibt es in Form einer Archiv-Datei: hostap-driver-x.y.z.tar.gz
Um ihn zu kompilieren, sind die Kernel-Headers erforderlich. Diese kann man sich mit
Hilfe der Debian-Paketverwaltung mit:
#
make-kpkg kernel-headers
bequem erstellen.
Mit Hilfe von
#
make menuconfig
habe ich den Treiber in das System eingebunden und anschließend den Kernel kompiliert.
Nachdem das geglückt war, konnt ich mit:
#
modprobe hostap
den HostAP-Treiber erfolgreich laden und anschließend mit lsmod überprüfen.
Die Anwendung des HostAP-Treibers erfordert eine gründliche Einarbeitung in seine
Funktionen, die jedoch über den zeitlichen Rahmen der Studienarbeit hinausgehen würde.
Eventuell lassen sich einige Funktionen erst nach einem Firmware-Update der WLANKarte nutzen. Außerdem muß die Karte wahrscheinlich mit
#
iwconfig eth0 mode master
in den Master-Modus versetzt werden.
83
8.6
Fazit
Die mindeste Sicherheitsvorkehrung, die man im Wireless LAN vom LISTIG-System
vornehmen sollte, ist das Setzen eines WEP-128-Bit-Keys. Trotz der in diesem Kapitel
beschriebenen offensichtlichen Mängel des WEP-Standards, stellt die Verschlüsselung mit
128 Bit immerhin eine Einstiegshürde für „Gelegenheits-Schnüffler“ dar. Außerdem erhöht
das mindestens wöchentliche Wechseln des WEP128-Schlüssels die WLAN-Sicherheit des
LISTIG-Systems mit einem vertretbaren Aufwand. Die Vorgehensweise für das Setzen des
WEP-Schlüssels ist in Kapitel 6.4.3 beschrieben.
Einige Sicherheitsberater schlagen vor, die SSID-Broadcasts zu unterdrücken. Aber
während dieser Schritt vielleicht „war driving“ – Angriffe (kostenloses Mitnutzen einer
fremden Internetverbindung) reduziert, garantiert er nur einen temporären Vorteil, weil
diese Information aufgedeckt wird, sobald sich ein neuer Benutzer mit dem Netzwerk
verbindet.
Ein Angreifer ist vielleicht nicht in der Lage, sich unabhängig direkt am Server
einzuloggen, weil dazu ein korrekter Benutzername und ein Passwort erforderlich ist, aber
wenn er clever genug ist, braucht er das gar nicht. Er kann mit einem geeigneten Tool
(Kismet, AirSnort) das Wireless LAN beobachten, um einen Benutzer ausfindig zu
machen, der bereits eingeloggt ist. Dann imitiert er den Datenverkehr dieses Benutzers.
Wenn der Angreifer die Netzwerk-Adress- Informationen des Benutzers kopiert, ist der
Server nicht in der Lage zu realisieren, dass er in Wirklichkeit mit einem illegalen
Eindringling kommuniziert und gewährt ihm die selben Zugriffsrechte, wie einem legalen
Benutzer.
Zugangskontrolle über MAC-Adressenfilterung als weitere Maßnahme, die Sicherheit zu
erhöhen, würde auf dem LISTIG-System bei Einsatz des HostAP-Treibers aus Kapitel 8.5
funktionieren. Meiner Meinung nach lohnt es sich auf jeden Fall, die Verwendung dieses
Treibers auf diesem System weiter zu untersuchen. Darüber hinaus wären dann weitere
Sicherheits- und Authentifizierungsmaßnahmen möglich wie z.B. EAP/TLS (Kapitel 8.3).
Der Wireless LAN –Adapter im LISTIG-Basisgerät unterstützt zur Zeit noch keine
Unterdrückung der SSID. In einer aktuelleren Firmware steht dieses Feature zur Verfügung. Aber auch die Verschlüsselungstechnik WPA, als verbesserter Nachfolger von WEP
soll Ende des Jahres in einem Firmware-Update zur Verfügung stehen. Voraussetzung für
die Nutzung von WPA sind dann wiederum ausgereifte Linuxtreiber, die zur Zeit jedoch
noch in der Entwicklungsphase sind.
9
Störungsfreier Funkbetrieb
Beim späteren Einsatz des LISTIG-Systems muss man sowohl potentielle Störquellen, als
auch solche Funkstandards beachten, die sich von WLAN-Geräten stören lassen. Im
Heimbereich können beispielsweise AV-Funkstrecken vorkommen, mittels denen man
Signale vom Kabel-Decoder oder Videorecorder bequem im ganzen Einfamilienhaus
verteilen kann. Mit WLAN- und Bluetooth-Geräten lassen sich diese wirkungsvoll stören,
denn das Videosignal wird nur analog moduliert im 2,4 GHz-Bereich übertragen. Abhilfe
ist dann gewährleistet wenn sich beide Geräte manuell auf einen anderen Kanal umschalten
lassen.
84
Die Mikrowelle in der Küche kann auch zur Störquelle werden, da sie mit 2,4 GHz im
gleichen Frequenzbereich arbeitet wie die 802.11/g WLAN-Netze. Die teureren 802.11a/hVarianten gehen diesem Problem aus dem Weg.
Auf der anderen Seite lassen sich WLAN-Übertragungen so gut wie gar nicht von den AVBrücken stören, da sie als Digitalfunkverfahren im Vorteil sind und Übertragungsfehler
mittels spezieller Korrekturverfahren ausmerzen.
Zu unerwünschten Überlappung von Funkzellen kann es dann kommen, wenn
beispielsweise ein WLAN- und ein Bluetooth-Netz einander überlappen. Die Folge sind
statische Interferenzen. Mit der Bluetooth-Spezifikation 1.2 soll dieses Problem jedoch mit
Hilfe des Adaptive Frequency Hopping (AFH) behoben sein.
Wenn 802.11b und 802.11g- Geräte räumlich benachbart sind, konkurrieren beide zum
gegenseitigen Nachteil um das Funkband. Techniken zur dynamischen Kanalwahl fehlen
im 2,4 GHz-Band und somit gibt es keine automatische „Verkehrsregelung“, wenn zwei
oder mehr 2,4-GHz-WLANs einander überlappen.
Beim überlappenden Betrieb funken 802.11b-Geräte auf dem gleichen Kanal wie die
802.11g-Gegenstücke. Damit die verschiedenen Datenpakete nicht kollidieren, senden die
Funknetze nicht zur selben Zeit, sondern erst dann, wenn das Medium frei ist. Bei gleich
guten Funkbedingungen brauchen 802.11b-Geräte für dieselbe Datenmenge mehr Zeit als
802.11g-Geräte. Für den gemeinsamen Betrieb von 802.11g und 802.11b stehen nur drei
nichtüberlappende Kanäle zur Verfügung (z.B. 1, 7 und 13). Bei zunehmender Popularität
der b- und g-Versionen steigt somit die Wahrscheinlichkeit für Kollisionen. Wirkliche
Abhilfe schafft nur eine Flucht in den 5-GHZ-Bereich, indem sich wegen teurer Geräte
noch sehr wenige WLAN-Nutzer tummeln.
10
Abschlussbemerkungen
Die Kombination LISTIG und WLAN erscheint als eine sehr attraktive Kommunikationslösung zur Steuerung der Haustechnik. Reichweite und Datenrate sind schon jetzt bei dem
weitverbreiteten und kostengünstigen Drahtlos-Standard 802.11b sehr zufriedenstellend.
Störquellen lassen sich durch geschickte Platzierung und externe Antennen mit Richtwirkung weitgehend ausschließen. Als Digitalfunkverfahren, mit Fehlerkorrektur-Mechanismen ist WLAN robust genug, um analoge Störquellen im selben Frequenzbereich, (wie
z.B. AV-Brücken), ohne Einbußen zu verkraften.
Die Sicherheit ist bei Wireless LAN eine wichtige Problematik. Aber die Vielfalt an
Sicherheits- und Authentifizierungsmaßnahmen hat sich in jüngster Vergangenheit stark
erhöht; die Techniken haben sich verbessert und werden ständig weiterentwickelt. Außer
WEP128 und WAP-Firmware-Update bietet sich für das LISTIG-System, zur Erhöhung
der Sicherheit, die HostAP-Software (siehe Kapitel 8.5) an, die aus Linux-Rechnern
flexible und leistungsfähige WLAN-Acess-Points macht. Es würde sich meiner Meinung
nach lohnen, das Projekt an dieser Stelle weiter zu verfolgen.
Der Umstieg auf den schnelleren 802.11g- Standard scheint im Hinblick auf eine
Steuerungs-Schnittstelle für Hausautomatisierungstechnik momentan nicht zwingend
notwendig.
85
Neuere Linux-Kernel der 2.6’er Serie mit Hotplug-System bremsen das System zu stark
aus und machen vernünftige Bedienung fast unmöglich. Bei meinen Versuchen haben sich
die Kernel 2.4.23 und 2.4.24 (für HostAP) als optimal erwiesen.
86
Anhang
Den Treiber der WLAN-Karte manuell aktualisieren
Um beispielsweise den neusten, eventuell erweiterten und verbesserten Orinoco_cs Treiber selbst zu kompilieren, lädt man sich am besten das aktuellste tar.gz File von der
Webseite
http://www.hpl.hp.com/personal/Jean_Tourilhes/Linux/Orinoco.html
Man
benötigt weiterhin die Kernel-Sourcen, für die entsprechende Kernelversion unter dem das
eigene System läuft. Soweit man sie nicht auf CD zur Verfügung hat, kann man die
Kernelquellen von: http://www.kernel.org oder
ftp://ftp.kernel.org beziehen. Das ist die beste Archivseite für Kernelquellen und KernelCode.
Man
lädt
sich
beispielsweise
die
2.4.23-Kernel-Sources
von:
http://www.kernel.org/pub/linux/kernel/2.4/linux-2.4.21.tar.gz.
Das Kompilieren des orinoco_cs - Treibers erfordert ebenfalls, dass ein symbolischer Link
von /lib/modules/<version>/build auf die Kernel-Sourcen des aktuellen Kernels zeigt. Z.B
soll /lib/modules/2.4.23/build ein symbolischer Link sein, der auf /usr/src/linux-2.4.23
verweist. Um diesen Link anzulegen, muss man folgende Befehlszeile eingeben:
#
ln -s /usr/src/linux-2.4.23 /lib/modules/2.4.23/build
Um anschließend den Treiber zu erstellen, muss man das tar.gz File entpacken und
anschließend in dessen Hauptverzeichnis wechseln:
#
#
tar xzvf orinoco-0.13e.tar.gz
cd orinoco-0.13e
Um den Treiber zu kompilieren und zu installieren, muß abschließend noch folgendes
eingegeben werden:
#
#
make
make install
Falls man versucht den Treiber zu laden und dabei die Fehlermeldung „Card Services
release does not match“ erhält, wurde der Treiber gegen die Kernel-PCMCIA-Treiber
kompiliert, jedoch benutzt das System eigentlich die Treiber des PCMCIA-Packages. Um
den Fehler zu beheben, muss man dazu das Makefile im orinoco-0.13e - Verzeichnis
editieren und der PCMCIA_CS Variable den richtigen Pfad für das PCMCIA-CS-Package
zuweisen.
Wenn der Treiber ordnungsgemäß installiert ist, kann man eingeben
#
modprobe orinoco_cs
um das Treiber-Modul zu laden.
87
Literaturverzeichnis
[1] Axel Sikora: Wireless LAN. Protokolle und Anwendungen.
Addison-Wesley, 2001, ISBN 3-8273-1917-X, 240 S.
[2] Bruce Potter, Bob Fleck: 802.11 Security.
O'Reilly, 2002, ISBN 0596002904, 208 S.
"Rezeptsammlung", u.a. HostAP/Prism2
[3] Jon Edney, William A. Arbaugh: Real 802.11 Security.
Addison Wesley, 2004, 2nd Printing, ISBN 0-321-13620-9
[4] Matthew S. Gast: 802.11 Wireless Networks: The Definitive Guide.
O'Reilly, 2002, ISBN 0596001835, 464 S.
[5] Roger Weeks, Edd Dumbill & Brian Jepson: Linux Unwired
O'Reilly, 2004, First Edition
[6] Philippe Bertin: WLAN Standards and Evolutions
Ann.Telecommun., 2003
[7] Franz Joachim Kauffels: Wireless LANs-Drahtlose Netze
Mitp-Verlag, 2002
[8] Arno Kral, Heinz Kreft: WirelessLANs Networker’s Guide
Markt+Technik, 2002
[9] Rob Flickenger: Wireless Hacks
O'Reilly, 2003
[10] Peter H.Ganten, Wulf Alex: Debian GNU/Linux
Springer, 2.Auflage, 2004
[11] Patrick Ditchen: Shell-Skript-Programmierung
Mitp-Verlag, 2002
[12] Johannes Endres: Offene Funknetze:WLAN-Konfiguration
c’t 13/2004 S.98 ff.
[13] Stefan Krecher: Authentifizierungsverfahren
c’t 18/2004 S. 192 ff.
[14] Corinna Aichele: Aufbau von Linux-basierten Access Points mit HostAP
Linux Magazin, Sonderheft 3/2004, S. 22 ff
88