Doku Wireless Basisstation unter Linux

Transcription

Doku Wireless Basisstation unter Linux
Wireless LAN Basisstation
unter Linux
Projektarbeit PA2 Sna 01/1
Studiengang Informationstechnologie
Zürcher Hochschule Winterthur
Fachgebiet:
Kommunikation
Dozenten:
Dr. Andreas Steffen
Prof. Thomas Müller
Verfasser:
Marco Studer
Walter von Arx
Klasse:
IT3b
Zeit:
SS 2001
Abgabedatum:
6. Juli 2001
Inhaltsverzeichnis
PA2 – Wireless LAN AP unter Linux
1 Inhaltsverzeichnis
2
3
4
5
Abbildungsverzeichnis .............................................................................................4
Zusammenfassung ..................................................................................................5
Aufgabenstellung .....................................................................................................6
Einführung................................................................................................................8
5.1
Systemmodell....................................................................................................9
5.2
Projektverlauf ..................................................................................................11
6
Problemanalyse .....................................................................................................13
6.1
Realisierungsvarianten....................................................................................13
6.2
Verwendung der verschiedenen Wireless Karten ...........................................13
6.3
Hardware Übersicht.........................................................................................14
7
Lösungskonzept.....................................................................................................15
7.1
Wireless LAN Netzstruktur ..............................................................................15
7.2
Umfang der Realisierungen und Erkenntnisse ................................................16
8
Installation..............................................................................................................21
8.1
Lucent Orinoco Gold 11Mbit/s.........................................................................21
8.1.1
BIOS-Einstellungen..................................................................................21
8.1.2
Windows 2000 Professional.....................................................................21
8.1.3
SuSE Linux 7.1 Professional....................................................................22
8.2
Siemens I-Gate 11M – Version Intersil............................................................23
8.2.1
BIOS-Einstellungen..................................................................................23
8.2.2
Windows 2000 Professional.....................................................................23
8.2.3
SuSE Linux 7.1 Professional....................................................................24
8.3
D-Link Air DWL-650 ........................................................................................28
8.3.1
BIOS-Einstellungen..................................................................................28
8.3.2
Windows 2000 Professional.....................................................................28
8.3.3
SuSE Linux 7.1 Professional....................................................................28
8.4
Siemens I-Gate 11M – Version Lucent............................................................29
8.5
Ausbau zu einer Base Station (Siemens Intersil Karte)...................................29
8.6
Installation PCMCIA ........................................................................................31
9
Tests ......................................................................................................................33
9.1
Testkonzept.....................................................................................................33
9.2
Softwaretools ..................................................................................................36
9.2.1
Orinoco Client Manager ...........................................................................36
9.2.2
Siemens MobilePort Manager ..................................................................42
10 Beschreibung IAPP................................................................................................44
10.1 Allgemeines.....................................................................................................44
10.2 Formierung/Unterhalt eines ESS.....................................................................45
10.3 IAPP Modi .......................................................................................................46
10.3.1 MAC-Bridge Modus..................................................................................46
10.3.2 Dynamic Route Resolution Mode.............................................................47
10.4 IAPP Service Primitiven ..................................................................................49
10.4.1 IAPP-INITIATE.request ............................................................................49
10.4.2 IAPP-INITIATE.confirm ............................................................................50
10.4.3 IAPP-TERMINATE.request ......................................................................50
10.4.4 IAPP-TERMINATE.confirm ......................................................................51
10.4.5 IAPP-ADD.request ...................................................................................51
10.4.6 IAPP-ADD.confirm ...................................................................................52
10.4.7 IAPP-ADD.indication ................................................................................52
10.4.8 IAPP-REMOVE.request ...........................................................................52
Marco Studer
Seite 2 / 83
Walter von Arx
Inhaltsverzeichnis
PA2 – Wireless LAN AP unter Linux
10.4.9 IAPP-REMOVE.confirm ...........................................................................53
10.4.10
IAPP-REMOVE.indication.....................................................................53
10.4.11
IAPP-MOVE.request.............................................................................53
10.4.12
IAPP-MOVE.confirm.............................................................................54
10.4.13
IAPP-MOVE.indication .........................................................................54
10.4.14
IAPP-MOVE.response..........................................................................55
10.4.15
IAPP-Config-READ.request..................................................................55
10.4.16
IAPP-Config-READ.confirm ..................................................................55
10.5 IAPP Messages...............................................................................................56
10.5.1 Allgemeines IAPP Paket-Format..............................................................56
10.5.2 ADD-Notify Paket .....................................................................................57
10.5.3 MOVE-Notify Paket ..................................................................................57
10.5.4 MOVE-Response Paket ...........................................................................58
11 Ausblick über weiteres Vorgehen...........................................................................59
12 Schlusswort............................................................................................................60
13 Anhang ..................................................................................................................61
13.1 Glossar............................................................................................................61
13.2 Zeitplan ...........................................................................................................62
13.3 Arbeitsteilung ..................................................................................................63
13.4 Verwendetes Material......................................................................................64
13.5 Quellenangabe ................................................................................................65
13.5.1 Websites ..................................................................................................65
13.5.2 Foren und Mailinglisten ............................................................................65
13.5.3 Bücher, Normen, Dokumentationen .........................................................66
13.6 Verzeichnisstruktur der beiliegenden CD ........................................................67
13.7 Konfigurationsfiles ...........................................................................................68
13.7.1 Auszüge aus der Datei config ..................................................................68
13.7.2 Datei wlan-ng ...........................................................................................73
13.7.3 Datei wlan-ng.conf ...................................................................................79
13.7.4 Datei wlan-ng.opts ...................................................................................81
Marco Studer
Walter von Arx
Seite 3 / 83
Abbildungsverzeichnis
PA2 – Wireless LAN AP unter Linux
2 Abbildungsverzeichnis
Abbildung 5.1 – Aufbau eines Basic Service Set (BSS) ..................................................9
Abbildung 5.2 – Aufbau eines Extended Service Set (ESS)..........................................10
Abbildung 5.3 – IAPP innerhalb der Netzstruktur ..........................................................10
Abbildung 5.4 – Handover-Situation im ESS .................................................................11
Abbildung 5.5 – Projektverlauf bezüglich HW/SW-Konfigurationen...............................12
Abbildung 7.1 – Netzstruktur .........................................................................................15
Abbildung 7.2 – Realisierte Lösung ...............................................................................16
Abbildung 7.3 – Siemens I-GATE 11M Access Point ....................................................18
Abbildung 9.1 – Testaufbau...........................................................................................33
Abbildung 9.2 – Orinoco Client Manager.......................................................................35
Abbildung 9.3 – Statusleiste Windows 2000..................................................................36
Abbildung 9.4 – Orinoco Client Manger.........................................................................36
Abbildung 9.5 – Configuration Profil ..............................................................................37
Abbildung 9.6 – Network Name einstellen .....................................................................38
Abbildung 9.7 – Linktest Monitor ...................................................................................39
Abbildung 9.8 – Register in Site Monitor Tool................................................................39
Abbildung 9.9 – Register: Selection...............................................................................40
Abbildung 9.10 – Register Site Monitor .........................................................................41
Abbildung 9.11 – Siemens Start-Menu Einträge............................................................42
Abbildung 9.12 – MobilePort Manager, Configuration ...................................................42
Abbildung 9.13 – Siemens LinkTest Version 1.0 ...........................................................43
Abbildung 10.1 – Einsatzgebiet des IAPP .....................................................................44
Abbildung 10.2 – Netzstruktur für MAC Bridge Mode ....................................................47
Abbildung 10.3 – Netzstruktur für Dynamic Route Resolution Mode .............................47
Abbildung 10.4 – Route Resolution ...............................................................................48
Abbildung 10.5 – Route Update.....................................................................................49
Abbildung 10.6 – Format einer IAPP-Meldung ..............................................................56
Abbildung 10.7 – Format einer ADD-Notify Meldung.....................................................57
Abbildung 10.8 – Format einer MOVE-Notify Meldung..................................................57
Abbildung 10.9 – Format einer MOVE-Response Meldung...........................................58
Abbildung 10.10 – Informationsstruktur .........................................................................58
Abbildung 13.1 – Zeitplan der PA ..................................................................................62
Abbildung 13.2 – Verzeichnisstruktur der CD ................................................................67
Marco Studer
Walter von Arx
Seite 4 / 83
Zusammenfassung
PA2 – Wireless LAN AP unter Linux
3 Zusammenfassung
Grundlage für unsere Projektarbeit waren zwei vorangegangene Arbeiten. Diese
beschäftigten sich beide mit Wireless LAN unter Linux. Die erste behandelte das Thema
"Implementation eines IEEE 802.11b Sniffers", der Titel der zweiten lautet "Wireless
LAN basierend auf CellularIP". Ziel unserer Arbeit war es ein Funknetz aufzubauen,
welches über zwei Access Points und zwei Mobile Stations verfügt. Die Access Points
sollten über eine Ethernetverbindung miteinander kommunizieren. Für diese
Kommunikation sollte das Inter-Access Point Protokoll (IAPP) verwendet werden. Dazu
war abzuklären, ob dieses Protokoll überhaupt schon vorhanden ist. Sollte dies nicht
der Fall sein, so muss eine Version dieses Protokolls implementiert werden. Dadurch
sollte schlussendlich das Roaming zwischen den beiden AP möglich sein.
Das am Ende der PA aufgebaute Netz bestand aus zwei funktionierenden Base
Stations. Diese wurden beide mit Siemens Intersil WLAN Karten realisiert. Weiter sind
zwei Mobile Stations vorhanden, welche beide mit einer Orinoco Lucent Karte unter
Windows 2000 ausgerüstet sind. Die Ethernetverbindung zwischen den beiden Base
Stations konnte aufgrund von Hardware-Konflikten nicht realisiert werden.
Eines unserer Hauptprobleme war, dass wir die Ethernetkarten nicht zum Funktionieren
brachten, wenn gleichzeitig eine Siemens Intersil Karte im gleichen Gerät aktiv war.
Weiter hatten wir Probleme bei der Beschaffung der benötigten Hardware.
Da wir keine Ethernetverbindung zwischen den beiden Access Points erstellen konnten,
fiel die Implementation des IAPP ins Wasser. Stattdessen konzentrierten wir uns auf die
Dokumentation dieses sich in der Entwicklungsphase befindenden Protokolls.
Die vorliegende Projektarbeit hat gezeigt, dass die Materie Wireless LAN noch stark in
der Entwicklung steckt. Die Installation dieser Karten ist unter Linux noch sehr
umständlich. Da wir in der zweitletzten Woche unsere Probleme mit den Ethernetkarten
lösen konnten, ist eine weiterführende Arbeit zu diesem Thema vorstellbar. Ziel dieser
sollte dann sein, dass Inter-Access Point Protocol zu installieren oder zu
implementieren, je nachdem wie weit dessen Entwicklung bis dann schon
vorangeschritten ist.
Marco Studer
Walter von Arx
Seite 5 / 83
Aufgabenstellung
PA2 – Wireless LAN AP unter Linux
4 Aufgabenstellung
Zürcher Hochschule Winterthur, Studiengang Informationstechnologie
Kommunikationssysteme (KSy)
Projektarbeiten SS 2001 - PA2 Sna01
Wireless LAN Basisstation unter Linux
Studierende:
§ Marco Studer, IT3b
§ Walter von Arx, IT3b
Partnerfirma:
§ Siemens Schweiz AG, Albisriederstr. 245, 8047 Zürich
http://www.siemens.ch/i-gate
Termine:
§ Ausgabe: Montag, 21.05.2001 15:30 - 16:30 im E523
§ Abgabe: Freitag, 6.07.2001
Beschreibung:
Wireless LANs werden immer mehr zum Allgemeingut. So gibt es unter Linux schon
für einige IEEE 802.11 WLAN-Karten entsprechende Treiber. Dabei wird
normalerweise davon ausgegangen, dass ein Linux-Host als mobiler Client betrieben
wird. Zwei Projektarbeiten haben gezeigt, dass die Linux-Treiber recht problemlos
arbeiten.
Weniger häufig ist der Anwendungsfall, dass unter Linux eine WLAN-Basisstation mit
allen zusätzlichen Infrastrukturfunktionen betrieben wird.
Die Projektarbeit soll verschiedene OpenSource WLAN-Stacks in Betrieb nehmen und
darauf hin untersuchen, wie weit sie für den Einsatz in einer Basisstation geeignet
sind. Wichtige Kriterien sind die Leistungsmerkmale, die unterstützt werden, sowie die
Erweiterbarkeit (Offenheit, Dokumentation etc.) der Implementation. Allenfalls sollen
auch kleinere Anpassungen an den Treibern vorgenommen werden.
Aufgaben:
§ Evaluation eines OpenSource Linux Treibers für die ORiNOCO IEEE 820.11
WLAN Karte, der als Basis für eine WLAN Basisstation (Access Point) im
Infrastructure Modus dienen kann.
§ Der Access Point Treiber soll das Inter Access Point Protocol (IAPP)
entweder in der bestehenden proprietären Variante von Aironet Corp, Digital
Ocean und Lucent Technologies oder auf der Basis des entstehenden IEEE
802.11f Standards unterstützen. Damit kann ein Roaming über mehrere WLAN
Zellen, deren Access Points über LAN Bridges miteinander verbunden sind,
ermöglicht werden.
Marco Studer
Walter von Arx
Seite 6 / 83
Aufgabenstellung
§
PA2 – Wireless LAN AP unter Linux
Gewisse interne Parameter der WLAN Access Point Karte, wie z. Bsp. die
Empfangspegel der an einem Access Point angemeldeten Mobilstationen,
sollen zugänglich gemacht und auf eine geeignete Art und Weise dargestellt
werden.
Infrastruktur / Tools:
§ Raum: E523
§ Rechner: 2 PCs, 1 Notebook
§ Hardware: 3 ORiNOCO IEEE 802.11 WLAN PCMCIA Karten,
2 PCMCIA Controller (PCI Version)
§ SW-Tools: Linux
Literatur / Links:
§ IEEE 802.11 Tutorial
http://ww.wi-fi.net/downloads/IEEE_80211_Primer.pdf
§ IEEE Standard 802.11-1999 Part 11
Wireless LAN MAC and PHY Specifications
§ IEEE Standard 802.11b-1999 Part 11
Wireless LAN MAC and PHY Specifications: Higher Speed Physical Layer
(PHY)
Extensions in the 2.4 GHZ Band
§ IEEE Standard 802.11f pre-Draft - March 2001
Recommended Practice for Multi-Vendor Access Point Interoperability via an
Inter-Access Point Protocol (IAPP) Across Distribution Systems Supporting
IEEE 802.11 Operation
§ IEFT RFC 2608
Service Location Protocol, Version 2
§ Linux WaveLAN IEEE 802.11 Treiber
http://www.fasta.fh-dortmund.de/users/andy/wvlan/
§ Neuer Treiber für ORiNOCO WLAN Karte
http://ozlabs.org/people/dgibson/dldwd/
§ Agere's ORiNOCO Home Page
http://www.orinocowireless.com
§ Wireless LAN resources for Linux
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/
§ Linux WLAN Project
http://www.linux-wlan.com/linux-wlan/
§ Linux PCMCIA Card Services Project
http://sourceforge.net/projects/pcmcia-cs
Winterthur, 21. März 2001
Dr. Andreas Steffen
21.05.2001 by Andreas Steffen
Marco Studer
Walter von Arx
PA2 2001
Seite 7 / 83
Einführung
PA2 – Wireless LAN AP unter Linux
5 Einführung
Heutzutage wird mehr und mehr Mobilität gefordert. Dies gilt nicht nur für den
Telekommunikationsbereich, sondern auch im Bereich der Datennetze. Wireless LANs
bieten dabei eine flexible und ausbaufähige Variante zu den altbewährten
kabelgebundenen Netzwerken.
Grössere drahtlose Netzwerke funktionieren ähnlich wie GSM auf dem Prinzip von
verschiedenen Zellen. Eine solche Zelle wird durch eine Basisstation (Access Point)
gebildet. Durch die Vernetzung mehrerer solcher Access Points ergibt sich ein
flächendeckendes Netz, welches den mobilen Clients (Mobile Stations) die Möglichkeit
des Roamings eröffnet. Die Vernetzung der einzelnen Access Points hat zur Folge,
dass ein Protokoll für deren Kommunikation benötigt wird.
Ziel unserer Projektarbeit war daher zuerst die Inbetriebnahme von Access Points (AP)
unter Linux. Weiter sollten wir das Inter-Access Point Protocol (IAPP), welches in der
Form eines Pre-Drafts vorliegt, untersuchen und eine eventuelle Implementierung
dessen vorbereiten. Aufbauen konnten wir auf zwei vorangegangenen Projektarbeiten.
Dabei handelt es sich einerseits um die PA zum Thema „Wireless LAN basiend auf
Cellular IP“ von Marc Steiner und Thomas Wendel und andererseits um die Arbeit
„802.11 Paket Sniffer“ von Simon Baer und Michael Pellaton.
Der vorliegende Bericht gibt Aufschluss über den Verlauf der Projektarbeit und deren
Stand bei Abgabe. Dabei wird zuerst auf die Problemanalyse, das Lösungskonzept und
den erreichten Realisierungsstand eingegangen. Danach folgt eine detaillierte
Installationsanleitung für die einzelnen Wireless LAN-Karten und ein Kapitel über die
durchgeführten Tests. Weiter folgt eine Einführung in das IAPP. Abgerundet wird der
Bericht durch ein Schlusswort und einen Anhang, welcher die Themen Glossar,
Zeitplanung, Arbeitsteilung, Materialliste, Quellenangabe und Konfigurationsfiles
behandelt.
Marco Studer
Walter von Arx
Seite 8 / 83
Einführung
5.1
PA2 – Wireless LAN AP unter Linux
Systemmodell
Grundsätzlich hat man die Möglichkeit Wireless LANs mit oder ohne Basisstationen
(=Access Points) zu betreiben. Im Sinne der Aufgabenstellung verwenden wir bei
unserer Projektarbeit Access Points, welche als Teil der Aufgabe erstellt werden
müssen.
Wie bereits erwähnt, bildet ein Access Point eine Wireless LAN-Zelle. Dabei spricht
man von einem Basic Service Set (BSS). Eine Konfiguration mit einem oder mehreren
Access Points bedeutet normalerweise, dass das Wireless LAN im sogenannten
Infrastruktur-Modus betrieben wird. Eine einzelne Zelle bietet im wesentlichen ein örtlich
eng begrenztes Netzwerk, d.h. es erlaubt die Kommunikation zwischen den einzelnen
Mobile Stations, welche beim AP angemeldet sind. Abbildung 5.1 zeigt eine Wireless
LAN-Konfiguration mit einem Access Point und zwei angemeldeten Mobile Stations.
Access Point1
Mobile Station
Mobile Station
BSS1
Abbildung 5.1 – Aufbau eines Basic Service Set (BSS)
Die Verbindung mehrerer Basisstationen erlaubt die Erstreckung eines WLANs über ein
grösseres Gebiet. Aus den einzelnen Basic Service Sets wird ein Extended Service Set
(ESS) gebildet. Als Folge des ESS ist es möglich, von einem BSS zum nächsten zu
wechseln, ohne dabei die Netzverbindung zu verlieren. Dabei wird für die betroffene
Mobile Station ohne merkliche Verzögerung einen Übergang von einem Access Point
zum nächsten bewerkstelligt. Hierbei spricht man von einem Handover. Die Funktion
des Zellenwechsels ist allgemein als Roaming bekannt.
Marco Studer
Walter von Arx
Seite 9 / 83
Einführung
PA2 – Wireless LAN AP unter Linux
Zur Verbindung der einzelnen Access Points wird ein sogenanntes Distribution System
(DS) benötigt. Dabei handelt es sich um ein weiteres, vom WLAN unabhängiges
Netzwerk. Abbildung 5.2 zeigt das einfachste denkbare Beispiel einer Netzstruktur mit
mehreren Access Points. Die abgebildete Struktur entspricht haargenau der Struktur,
die im Rahmen unserer Projektarbeit angestrebt wird. Als Medium für das Distribution
System haben wir FastEthernet verwendet. Die Verbindung der beiden Access Points
erfolgt dabei über einen Hub.
Distribution System
Ethernet
IAPP
Access Point 1
Access Point 2
Mobile Station
Mobile Station
Mobile Station
BSS 1
BSS 2
ESS
Abbildung 5.2 – Aufbau eines Extended Service Set (ESS)
Auf der Softwareseite muss die Kommunikation und Koordination der einzelnen Base
Stations und Mobile Stations gewährleistet werden. Wie in der Aufgabenstellung
gefordert, soll dies im Rahmen dieser Projektarbeit durch das Inter-Access Point
Protocol (IAPP) bewerkstelligt werden. Hauptquelle für Informationen ist dabei der im
März 2001 erschienene Pre-Draft, Quelle [19].
IAPP
IAPP
Distribution System
Ethernet
IAPP
Daten
über ESS
Registrierungsdienst
Access Point
Access Point
Abbildung 5.3 – IAPP innerhalb der Netzstruktur
Marco Studer
Walter von Arx
Seite 10 / 83
Einführung
PA2 – Wireless LAN AP unter Linux
Der Registrierungsdienst sammelt dabei Informationen über die Netzstruktur. Konkret
ist dieser Dienst dazu da, sich die Adressen aller Access Points sowohl im Wireless
LAN als auch im Distribution System zu merken und diesbezügliche Anfragen zu
beantworten.
Die wohl bedeutendste Eigenschaft eines Extended Service Set ist das Roaming.
Abbildung 5.4 zeigt eine normale Handover-Situation. Dabei verlässt eine Mobile
Station den Zuständigkeitsbereich des Access Points, bei dem er angemeldet ist, sprich
seine Zelle. Beim Eintritt in die nächste Zelle des ESS folgt die Anmeldung bei einem
neuen AP. Der Wechsel vom alten zum neuen Access Point wird als Handover
bezeichnet. Der Vorgang allgemein, der einen für die Mobile Station transparenten
Zellenwechsel erlaubt, wird Roaming genannt.
Distribution System
Ethernet
IAPP
Access Point 1
"alter AP"
Access Point 2
"neuer AP"
Handover
Mobile Station
Mobile Station
BSS 1
BSS 2
ESS
Abbildung 5.4 – Handover-Situation im ESS
5.2
Projektverlauf
Im Verlauf der Projektarbeit war es mehrmals notwendig, die Planung des Projektes
anzupassen. Der Wechsel zwischen den verschiedenen Karten, deren Treibern und
auch PCMCIA-Paketen ist aus der nachfolgenden Grafik ersichtlich. Dabei wird
zwischen Mobile Station und Access Point unterschieden, da dafür teilweise
unterschiedliche Karten, Treiber und Betriebssysteme verwendet worden sind.
Marco Studer
Walter von Arx
Seite 11 / 83
Einführung
PA2 – Wireless LAN AP unter Linux
Mobile Station
Access Point
Mobile Station
Access Point
Linux 7.1
Kernel 2.2.18
PCMCIA 3.1.22
Linux 7.1
Kernel 2.2.18
PCMCIA 3.1.22
Linux 7.1
Kernel 2.2.18
PCMCIA 3.1.22
Linux 7.1
Kernel 2.2.18
PCMCIA 3.1.22
Siemens Lucent Karten Siemens Lucent Karten
Treiber unbekannt
Treiber unbekannt
Firmware unbekannt
Funktion nicht i.O.
Funktion nicht i.O.
HW und SW
nicht vorhanden
Siemens Lucent Karten Siemens Lucent Karten
Treiber unbekannt
Treiber unbekannt
Firmware unbekannt
Funktion nicht i.O.
kein Treiber/Firmware
Funktion nicht i.O.
kein Treiber/Firmware
Keine Lieferung der benötigten
Firmware/Dokumentation
Mobile Station
Access Point
Mobile Station
Access Point
Linux 7.1
Kernel 2.2.18
PCMCIA 3.1.22
Linux 7.1
Kernel 2.2.18
PCMCIA 3.1.22
Windows 2000
Professional
Linux 7.1
Kernel 2.2.18
PCMCIA 3.1.22
Lucent Orinoco Karten
Treiber: wvlan_cs
D-Link DWL650 Karten
wlan-ng-0.1.8-pre13
kein Firmware-Upload
Lucent Orinoco Karten
Treiber Ver 6.28
Siemens Intersil Karten
wlan-ng-0.1.8-pre13
Tertiary Firmware
Funktion i.O.
Nur Adhoc-Modus-Test
Funktion nicht i.O.
kein AP-Test
Funktion i.O.
Funktion i.O.
Zu wenige D-Link/Orinoco-Karten
Eintreffen von Siemens Intersil-Karten
Inbetriebnahme Ethernetverbindung
zwischen den Access Points
Mobile Station
Access Point
Mobile Station
Access Point
Linux 7.1
Kernel 2.2.18
PCMCIA 3.1.22
Linux 7.1
Kernel 2.2.18
PCMCIA 3.1.22
Windows 2000
Professional
Linux 7.1
Kernel 2.2.18
PCMCIA 3.1.24/26
Lucent Orinoco Karten
Treiber Ver 6.28
Siemens Intersil Karten
wlan-ng-0.1.8-pre13
Tertiary Firmware
Funktion i.O.
Funktion nicht i.O.
Siemens Intersil Karten Siemens Intersil Karten
wlan-ng-0.1.8-pre13
wlan-ng-0.1.8-pre13
(Treiber)
Tertiary Firmware
Funktion nicht i.O.
Funktion nicht i.O.
Station nicht i.O.(Linux + Windows)
Eintreffen von Siemens Lucent-Karten
Probleme bei gleichzeitigem Betrieb
von Ethernet- und WLAN-Karten
Abbildung 5.5 – Projektverlauf bezüglich HW/SW-Konfigurationen
Die Grafik zeigt nur die wichtigsten, d.h. zeitaufwendigsten Konfigurationen. Daneben
sind noch einige weitere Konfigurationen erstellt worden, jedoch alle ohne sichtliche
Vorteile gegenüber den anderen.
Genauere Details zum zeitlichen Ablauf der Projektarbeit und zur vorgenommenen
Arbeitsteilung sind im Anhang dieser Dokumentation zu finden.
Marco Studer
Walter von Arx
Seite 12 / 83
Problemanalyse
PA2 – Wireless LAN AP unter Linux
6 Problemanalyse
Aufgabe dieser Projektarbeit ist es, einige OpenSource Linux-Treiber für die Siemens
Lucent WLAN Karte zu untersuchen. Dafür soll ein Netz aufgebaut werden, welches
über zwei Access Points verfügt. Des weiteren müssen zwei Mobile Stations in Betrieb
genommen werden, welche in diesem Netz arbeiten können. Alle vier Stationen sind
unter Linux zu betreiben.
Die Access Points sollen gemeinsam die Mobilen User verwalten, d.h. wenn eine
Mobile Station in den Bereich einer anderen Base Station gelangen sollte, wird der
Client der neuen Base Station übergeben werden.
Für das Roaming zwischen zwei Access Points wurde speziell das Inter-Access Point
Protocol spezifiziert. Wenn die zu installierenden Treiber dieses Protokoll nicht
unterstützen sollten, soll dieses noch implementiert werden. Weiter sollen die
Empfangspegel einer Mobile Station, die an einem Access Point angeschlossen ist,
sichtbar gemacht werden. Im Idealfall stellt uns der verwendete Treiber diese
Informationen zur Verfügung.
6.1
Realisierungsvarianten
Die gestellte Aufgabe verlangt das Roaming zwischen verschiedenen Access Points.
Um dies zu ermöglichen, soll das IAPP verwendet werden. Aus dieser Aufgabe heraus
zwingt sich uns eine Netzstruktur mit mindestens zwei Base Stations und einem oder
mehreren Mobile Stations auf. Damit wir das IAPP benutzen können, benötigen wir eine
Verbindung zwischen den beteiligten Access Points. Diese wird mittels einer
Ethernetverbindung realisiert. Durch diese Verbindung, können die Mobile Stations via
Base Station auch auf ein anderes Netz geroutet werden. Dies gehört aber nicht zu
unserer Aufgabenstellung.
Da unsere Aufgabenstellung keinen grossen Spielraum gewährleistet, haben wir auch
nicht die Wahl zwischen mehreren untereinander total verschiedenen Ansätzen. Wir
haben uns deshalb für den obenstehenden entschieden.
6.2
Verwendung der verschiedenen Wireless Karten
Zu Beginn haben wir über eine Orinoco und eine D-Link WLAN Karte verfügt. Mit
unserem Arbeitsplatz sind wir im Funkbereich einer aktiven Base Station einer
vorhergehenden Projektarbeit. In deren Dokumentation ist beschrieben worden, wie ein
Client mit der Orinoco Karte installiert wird. Aus diesem Grund haben wir uns
entschieden, zuerst eine Mobile Station mit der Orinoco Karte aufzusetzen. Damit
können wir testen, ob unser Client funktioniert. Wenn dieser eine Verbindung mit der
bestehenden Base Station aufbauen kann, ist dies der Fall.
Hierfür verwenden wir den Linux WLAN Treiber wvlan_cs, welcher standardmässig im
Linux installiert ist.
Marco Studer
Walter von Arx
Seite 13 / 83
Problemanalyse
PA2 – Wireless LAN AP unter Linux
Gelingt uns dies, werden wir dazu übergehen mit den Siemens Karten eine eigene
Base Station aufzubauen. Hierfür verwenden wir die uns von der Firma Siemens
Schweiz AG zur Verfügung gestellte Firmware. Wir wissen dann, dass wir schon über
einen funktionierenden Client verfügen, mit welchem wir unsere Base Station testen
können.
Die Treiber für die Siemens Karten haben wir von [3] runtergeladen. Hier werden wir die
neueste Version wlan-ng-0.1.8-pre13 des Treibers verwenden.
Funktioniert unsere Base Station, können wir dazu übergehen einen Client mit der
Siemens Karte zu installieren. Danach sollte unser Funknetz funktionieren und wir
können die zweite Base Station und die zweite Mobile Station in Betrieb nehmen.
Damit wir das Inter-Access Point Protocol in Betrieb nehmen können, müssen wir eine
Verbindung zwischen den beiden beteiligten Base Stations erstellen. Das einfachste ist
hier eine Ethernet Verbindung zwischen diesen beiden aufzubauen. Steht diese auch,
ist unser Extended Service Set betriebsbereit.
Jetzt können wir untersuchen, was der installierte Treiber alles unterstützt. So ist zu
testen, ob er eine Version des IAPP bereitstellt und ob die Empfangssignale des Clients
ausgelesen werden können.
6.3
Hardware Übersicht
Chipset
Access Point i.O.
Treiber AP
OS AP
Mobile Station i.O.
Treiber MS
OS MS
Marco Studer
Walter von Arx
Orinoco Lucent
Hermes
kein Test
ü
wvlan-cs
SuSE Linux 7.1
Siemens Intersil
Prism II
ü
wlan-ng-0.1.8-pre13
SuSE Linux 7.1
X
wlan-ng-0.1.8-pre13
SuSE Linux 7.1
D-Link DWL 650
Prism II
ü
wlan-ng-0.1.8-pre13
SuSE Linux 7.1
ü
wlan-ng-0.1.8-pre13
SuSE Linux 7.1
Seite 14 / 83
Lösungskonzept
PA2 – Wireless LAN AP unter Linux
7 Lösungskonzept
Dieser Abschnitt ist in zwei Teile aufgeteilt. Der erste beschreibt die theoretisch korrekte
Lösung für unsere ursprüngliche Aufgabenstellung. Im zweiten beschreiben wir unsere
effektiv realisierte Lösung und die fehlgeschlagenen Varianten.
7.1
Wireless LAN Netzstruktur
Im folgenden beschreiben wir die vorgesehene Netzstruktur. Wir planen, zwei Base
Stations und zwei Mobile Stations in Betrieb zu nehmen. Jede dieser vier Stationen soll
über eine Siemens I-GATE 11M WLAN Karte von Lucent verfügen.
Beide Base Stations verfügen zusätzlich noch über eine Xircom Ethernetkarte, mit
welcher sie untereinander verbunden sind. Über diese Verbindung sollten diese beiden
über das IAPP miteinander kommunizieren. Dieses Protokoll ist für das Roaming der
einzelnen mobilen User zuständig. Das Inter-Access Point Protocol wird in Kapitel 10
genauer beschrieben.
Distribution System
Ethernet
Access Point
Access Point
BS1
BS2
Mobile Station
MSTATION1
Mobile Station
MSTATION2
BSS
BSS
ESS
linux-wlan
Abbildung 7.1 – Netzstruktur
Marco Studer
Walter von Arx
Seite 15 / 83
Lösungskonzept
PA2 – Wireless LAN AP unter Linux
Für unser Netzwerk sehen wir ein C-Netz vor. Dieses unterteilen wir mittels richtiger
Angabe der Netzmaske in zwei Hälften, so dass Wireless LAN und Distribution System
(Ethernet) sauber voneinander getrennt sind. Die Tabelle zeigt die Vergabe der
einzelnen IP-Adressen an die im Netz angemeldeten Netzwerkdevices.
Computername
BS1
BS1
BS2
BS2
MSTATION1
MSTATION2
Device
eth0
wlan0
eth0
wlan0
wlan0
wlan0
IP-Adresse/Netzmaske
160.85.24.10/25
160.85.24.130/25
160.85.24.20/25
160.85.24.131/25
160.85.24.192/25
160.85.24.193/25
Ein WLAN mit mehreren Zellen wird ESS (Extended Service Set) genannt. In einem
ESS muss die ESSID festgelegt werden, um verschiedene Netze von einander
unterscheiden zu können. In unserem Netz setzen wir den ESSID-Parameter auf "linuxwlan". Da bei den Siemens I-GATE Karten der Funkkanal standardmässig auf 11
eingestellt ist, verwenden wir diesen.
7.2
Umfang der Realisierungen und Erkenntnisse
In diesem Abschnitt erklären wir, wie unser Netzwerk am Ende der Projektarbeit effektiv
aussieht. Hier wird auch der steinige Weg zu diesem Ziel beschrieben. In der Abbildung
7.2 ist die realisierte Lösung ersichtlich. Die Ethernet Verbindung zwischen den beiden
Base Stations ist nicht zustande gekommen.
Keine Verbindung
Distribution System
Ethernet
Access Point
Access Point
BS1
BS2
Mobile Station
MSTATION1
Mobile Station
MSTATION2
BSS
BSS
ESS
linux-wlan
Abbildung 7.2 – Realisierte Lösung
Marco Studer
Walter von Arx
Seite 16 / 83
Lösungskonzept
PA2 – Wireless LAN AP unter Linux
Am Ende der Projektarbeit funktionieren zwei Base Stations und zwei Mobile Stations.
Die beiden Base Stations betreiben wir unter SuSE Linux 7.1, Kernel 2.2.18, mit einer
Siemens Intersil 11M I-GATE WLAN Karte. Die Siemens Intersil Karte kann auch durch
eine D-Link DWL-650 Air Karte ersetzt werden. Mit beiden Karten können wir eine
funktionierende Base Station aufbauen.
Weiter haben wir zwei Mobile Stations eingerichtet, welche unter Windows 2000
arbeiten. Diese beiden Stationen verfügen jeweils über eine Lucent Orinoco Wireless
Card. Ist eine Base Station in Betrieb, so sind die beiden Mobile Stations untereinander
verbunden. Im so eingerichteten System kann jede Station die andere mittels des Ping
Befehls erreichen.
Unter Linux stehen zwei Tools zur Verfügung. Mit diesen Tools können Konfigurationen
der Siemens Intersil WLAN Karte angezeigt und geändert werden. Diese beiden
Programme heissen wlancfg und wlanctl-ng. Sie können bei der Fehlersuche hilfreich
sein.
Im weiteren beschreiben wir die verschiedenen Kombinationen welche wir ohne Erfolg
getestet haben.
Zu Beginn unserer PA sollten wir eigentlich die neuesten Siemens I-GATE 11M Karten
von Lucent erhalten und mit diesen unser Wireless Netzwerk aufbauen. Leider hatte die
Siemens Probleme mit der Lieferung der Firmware für den Betrieb eines Access Points.
Wir sollten zwischenzeitlich, d.h. bis die Karten und die Software bei uns eintreffen, mit
den Intersil Karten arbeiten.
Mit diesen hatten wir grosse Probleme. Installieren konnten wir sie, aber es gelang uns
nicht eine andere Station, ebenfalls mit einer solchen Karte ausgerüstet, anzupingen
oder sonst irgendwie im Netz zu erreichen.
Beide Base Stations verfügen über eine Xircom CreditCard 10/100-Ready
Ethernetkarte, über die sie miteinander kommunizieren sollten. Diese Karte haben wir
aber bis zur zweitletzten Woche nicht zusammen mit der Siemens Intersil WLAN Karte,
welche als Base Station arbeitet, betreiben können. Dadurch haben wir auch kein
Roaming über die beiden Base Stations mittels des Inter-Access Point Protocol
realisiert können.
Wir versuchten zwei Laptops, ausgerüstet mit nur jeweils einer Ethernet Karte, mittels
des Ping-Befehls untereinander zu erreichen. Trotz der Hilfe unserer Dozenten gelang
uns das nicht. Die Verbindung lief einmal über einen Switch und ein weiteres mal über
ein ausgekreuztes Kabel, welches an beiden Stationen angeschlossen war. Diese
beiden Versuche blieben erfolglos.
Vier Wochen nach dem Start der PA erhielten wir die neuen Siemens Karten von
Lucent. Da aber die Firmware noch nicht vorhanden war, nützten uns diese Karten nicht
viel. Eine Woche später erhielten wir dann die Nachricht, dass die neue Firmware bei
der Siemens eingetroffen ist. Leider teilte man uns mit, dass nach der Prüfung der
Lizenzbestimmungen die Firmware und die dazugehörige Dokumentation nicht an
Aussenstehende weitergegeben werden dürfen. Nach diesen interessanten Nachrichten
mussten wir mit den Intersil Karten weiterarbeiten.
Marco Studer
Walter von Arx
Seite 17 / 83
Lösungskonzept
PA2 – Wireless LAN AP unter Linux
Da wir mit diesen Karten grössere Probleme hatten, vermuteten wir, dass diese mit den
Toshiba Laptops zu tun haben. Daraufhin wollten wir die PCMCIA Karten mittels eines
PC-Adapters in unsere Desktop PCs einbauen. Dies gelang uns aber nicht, da die
Siemens Karten nicht in diese, ebenfalls von der Siemens gefertigten Adpater passten.
Das Problem war, dass die Intersil Karten eine andere Betriebsspannung benötigen als
die neueren Lucent Karten, für die diese Adapter gedacht sind. Die Adapter waren
deshalb für unsere Karten unbrauchbar. Leider erhielten wir keine anderen für unsere
Karten und konnten diesen Test nicht durchführen.
Für unsere Arbeit hatten wir drei Intersil Karten zur Verfügung. Wie wir aber erst zu
einem späteren Zeitpunkt feststellten, war eine dieser drei Karten defekt und konnte
nicht verwendet werden. Um dies zu bemerken, verbrauchten wir viel Zeit.
Wir konnten die Siemens Intersil Karte, wie in der Installation beschrieben, als Base
Station unter Linux im Infrastructure-Mode betreiben. Des weiteren sollte diese Karte
auch als Mobile Station in diesem Modus arbeiten. Dies erreichten wir jedoch nicht. Wir
hatten zu keinem Zeitpunkt eine Verbindung von einer Intersil Karte zu unseren Base
Stations, weder von Linux, noch von Windows 2000 aus. Wir konnten die Siemens
Intersil Karte nur im Ad-Hoc Modus betreiben. Da dieser Modus für unsere Anwendung
nutzlos ist, haben wir uns entschieden, für die Mobile Stations die Karten von Lucent
Orinoco zu verwenden. Diese konnten wir unter Windows 2000 relativ einfach im
Infrastructure-Mode als Mobile Station betreiben. Um die Verbindung der Orinoco Karte
unter Windows zu testen, wird ein spezieller Client Manager mitgeliefert. Dieses Tool
wird im Kapitel 9 (Tests) genauer beschrieben.
Weiter versuchten wir mit den Intersil Karten eine Verbindung auf einen Siemens IGATE 11M Access Point (Abbildung 7.3) zu erstellen. Hierfür muss die ESSID des
Netzes auf die Seriennummer des Access Points eingestellt werden. Diese Verbindung
konnten wir auch nicht herstellen. Mit den unter Windows 2000 installierten Lucent
Orinoco Karten konnten wir eine Verbindung auf diese Access Points erstellen. Damit
war klar, dass der Siemens Access Point korrekt arbeitet und dass das Problem bei den
Intersil Karten zu suchen war. Durch Zufall konnten wir diese Karten noch unter
Windows 98 testen. Dabei gelang es mit den Karten eine Verbindung zum Access Point
aufzubauen. Wir vermuten jetzt stark, dass unsere Probleme unter Windows 2000 an
den Treibern der Siemens Intersil Karte liegen. Hier sollte man unbedingt von der
Siemens einen getesteten Windows 2000 Treiber besorgen.
Abbildung 7.3 – Siemens I-GATE 11M Access Point
Marco Studer
Walter von Arx
Seite 18 / 83
Lösungskonzept
PA2 – Wireless LAN AP unter Linux
Bei allen oben beschriebenen Versuchen unter Linux verwendeten wir die PCMCIA
Version 3.1.22. Da wir nun vermuteten, unsere Probleme könnten vielleicht mit einer
neueren PCMCIA-Version behoben sein, installierten wir die Versionen 3.1.24 und
3.1.26.
Bei der Version 3.1.24 hatten wir die gleichen Probleme, ohne eine wirkliche
Verbesserung bemerkt zu haben.
Die Version 3.1.26 setzte aber ganz neue Massstäbe. Der Ping über die Ethernetkarten
funktionierte auf einmal, nachdem man die IP manuell eingestellt hatte. Die
Konfiguration per YaST/YaST2 funktioniert jedoch nicht mehr. Tragisch daran war, dass
die Siemens Intersil Karte ihren Dienst als AP beständig verweigerte. Die Meldungen
beim Starten der Karte zeigten jedoch keine Fehler. Halbwegs funktionsfähig zeigte sich
allerdings die D-Link Karte. Der Haken hierbei war im Startvorgang zu finden. Nach
dem Neustart des PCMCIA-Modules musste jeweils zuerst die Ethernet Karte
eingeschoben und manuell konfiguriert werden. Erst dann konnte die D-Link Karte
eingeführt werden. Ein Ping war danach möglich.
Da beide neueren PCMCIA-Versionen keine genügenden Verbesserungen brachten,
entschieden wir uns, wieder zu der älteren Version 3.1.22 zurück zu kehren.
Als nächstes versuchten wir, die Speicherfenster des PCMCIA-Treibers zu ändern. Hilfe
zu diesem Thema findet man im PCMCIA Linux-HOWTO, welches standardmässig mit
Linux installiert wird.
Die Speichereinstellungen werden in der Datei /etc/pcmcia/config.opts abgespeichert.
Hierbei versuchten wir folgende Speicherfenster:
§
§
§
0xd8000 – 0xdffff
0xc0000 – 0xcffff
0xc8000 – 0xcffff
Mit keiner dieser drei Einstellungen konnten wir unser Problem lösen.
Als letztes stellte uns eine andere Projektgruppe eine andere Ethernetkarte zur
Verfügung. Dabei handelte es sich um eine 3COM Megahertz 10/100 LAN Card Bus PC
Card (Model 3CCFE575BT).
Nachdem wir von Hand, mit folgendem Befehl, die IP Adresse eingestellt hatten, waren
unsere Probleme auf einmal verschwunden und wir konnten gleichzeitig die WLAN
Karte und eben diese Ethernetkarte betreiben.
ifconfig eth0 160.85.24.10 netmask 255.255.255.128 up
Wir stellten unsere PCMCIA Karten so ein, dass sie mit den IRQs 9 und 10 arbeiten.
Dies haben wir von einer uns vorangegangenen Projektgruppe (PA SS01 Sna06)
übernommen.
Marco Studer
Walter von Arx
Seite 19 / 83
Lösungskonzept
PA2 – Wireless LAN AP unter Linux
Ende der zweitletzten Woche unserer Projektarbeit hat einer unserer Dozenten, Prof. T.
Müller, herausgefunden, dass die Karte mit dem zugewiesenen IRQ 9 nie funktioniert.
Scheinbar ist bei den von uns verwendeten Toshiba Laptops dieser IRQ nicht für die
Verwendung von PCMCIA Geräten gedacht oder die Xircom-Karten haben damit ihre
Probleme, da es mit den 3Com-Karten scheinbar funktioniert.
Im YaST kann man IRQs für die Verwendung der PCMCIA-Devices reservieren. Dies
wird folgendermassen bewerkstelligt:
§
§
§
§
§
§
Zuerst als ROOT einloggen
Danach Start des Konfigurationsprogrammes YaST mit dem Befehl yast
Hier wählt man den Punkt 'Administration des Systems'
Dann den Punkt 'Konfigurationsdatei verändern' wählen
Darauf erscheint eine Liste mit Umgebungsvariablen. Hier sucht man die
Variable 'PCMCIA_PCIC_OPTS'. Dieser wird der Wert 'irq_list=5,10'
zugewiesen.
Sind diese Änderung vorgenommen, kann die Maske mittels der Taste F10
verlassen werden. Yast konfiguriert jetzt die eben vorgenommenen Änderungen.
Nachdem wir den IRQ 9 durch den 5er ersetzt hatten, funktionierten beide unsere
Karten. Die beiden Netzwerkkarten verwenden jetzt die beiden IRQs 5 und 10. Eine
nachfolgende PA-Gruppe sollte deshalb unbedingt darauf achten, dass der IRQ 9 nicht
von irgendwelchen Netzwerkkarten verwendet wird. Trotz des Wechsels des IRQs
musste die Konfiguration der Netzwerkkarte jedoch manuell durchgeführt werden.
Weitere Tests führten wir hier aus Zeitgründen nicht mehr durch, d.h. wir können also
nicht mit Bestimmtheit sagen, dass mit dieser Änderung alle Probleme behoben sind.
Da wir bis zur zweitletzten Woche keine Ethernet Verbindung unter den Base Stations
hatten, konnten wir uns auch nicht mit der Implementation des Inter-Access Point
Protocol beschäftigen. Wir haben in unserer Arbeit dieses Protokoll in einem eigenen
Kapitel behandelt.
Wie diese Arbeit weitergeführt werden kann, beschreiben wir kurz im Kapitel 11.
Marco Studer
Walter von Arx
Seite 20 / 83
Installation
PA2 – Wireless LAN AP unter Linux
8 Installation
Dieses Kapitel gibt Aufschluss über die Installation der einzelnen WLAN-Karten. Dabei
wird sowohl auf die Installation unter Linux wie auch auf die unter Windows
eingegangen. Letztere wurde jeweils durchgeführt, um herauszufinden, ob die
einzelnen Karten überhaupt funktionieren.
8.1
Lucent Orinoco Gold 11Mbit/s
Diese Beschreibung beschränkt sich auf eine Mobile Station. Mit dieser Karte
versuchten wir nie eine Base Station zu installieren.
8.1.1 BIOS-Einstellungen
Will man gleichzeitig eine Wireless LAN Karte und eine Ethernet Karte aktiv haben, so
muss im BIOS des Toshiba Laptops eine Änderung vorgenommen werden. Um ins
BIOS zu gelangen, benötigt man die von Toshiba mitgelieferte Diskette mit der
Aufschrift „Toshiba Companion Diskette Version:W98C05GRB1, Date: 23.07.1999“. Ist
man im den BIOS Einstellungen, ist einmal Page Down zu drücken, um die
Einstellungen zur PC CARD zu sehen. Dort muss der Wert des Punktes „Controller
Mode“ auf „PCIC Compatible“ stehen. Danach sollten beide PCMCIA Karten
funktionieren.
8.1.2 Windows 2000 Professional
Die Treiber und Konfigurationstools können von der Homepage von Orinoco
runtergeladen werden. Die gesamte Software wird in einem selbstextrahierende ZIPArchiv gespeichert (WLW2K70.exe). Dieses enthält die aktuellen Treiber und einen
Clientmanager. Wir benutzen die Treiberversion 6.28 und die Version 1.76 des
Clientmanagers. Nach der Installation erscheint in der Statuszeile ein neues Symbol.
Über dieses kann der Clientmanager aufgerufen werden. Unter dem Menupunkt Actions
kann ein neues Konfigurationsprofil erstellt werden. Mit der Einstellung Peer-toPeerGroup und dem richtigen Netzwerknamen kann zwischen zwei so eingestellten
Windows Rechnern eine Verbindung aufgebaut werden. Bei unserem Arbeitsplatz
waren wir im Empfangsbereich einer bereits aktiven Base Station. Dieses Signal
konnten wir einwandfrei empfangen. Der Channel ist standardmässig auf 5 eingestellt.
Dieser kann mit diesen Programmen nicht verstellt werden. Nach Orinoco passt sich
dieser automatisch dem Channel der BaseStation an, mit welcher er verbunden ist.
Marco Studer
Walter von Arx
Seite 21 / 83
Installation
PA2 – Wireless LAN AP unter Linux
8.1.3 SuSE Linux 7.1 Professional
Damit diese Karte unter Linux funktioniert, muss zuerst die oben erwähnte BIOS
Änderung vorgenommen werden.
Für diese Karte können zwei Treiber verwendet werden, die in SuSE Linux 7.1 Kernel
2.2.18 standardmässig installiert werden.
§
§
wavelan2_cs (Version 6.06)
wvlan_cs (Version 1.0.5)
Nach den Erfahrungen der vorangegangenen Projektarbeit Mth01/3 haben wir uns für
den Treiber wvlan_cs (Version 1.0.5) entschieden. Damit dieser Treiber verwendet wird,
müssen in der Datei /etc/pcmcia/config folgende Zeilen eingefügt werden.
Card “Lucent Technologies WaveLAN/IEEE Adapter“
Version “Lucent Technologies“, "WaveLAN/IEEE"
Bind "wvlan_cs"
Durch diese Zeile wird bei der Erkennung einer Lucent Orinoco Karte automatisch der
richtige Treiber geladen.
Des weiteren müssen in der Datei /etc/pcmcia/wireless.opts Änderungen vorgenommen
werden. In dieser Datei sind schon einige Karten vordefiniert. Da unsere Karte nicht
dabei ist, haben wir die Einstellungen für Generic Cards geändert. Hierhin kommt er,
wenn er keine Karten in den oberen Profilen erkennt. Folgende Änderungen haben wir
vorgenommen.
INFO="TestNetz"
ESSID="TEST"
MODE="Ad-Hoc"
CHANNEL="5"
RATE="11MB"
Wir verwendeten den Ad-Hoc-Mode, um die Kommunikation mit der bereits
vorhandenen Base Station zu testen. Diese benutzt untypischerweise nicht den
Infrastruktur-, sondern den Ad-hoc-Modus. Die Einstellungen der WLAN-Karte können
auch im Betrieb der Karte geändert werden. Um dies zu realisieren benötigt man die
Wireless Tools, welche unter [5] heruntergeladen werden können. Hier verwendeten wir
die Version 21. Diese Tools stellen fünf Programme zur Verfügung. Folgende Tabelle
zeigt diese und eine kurze Erklärung über dessen Nutzen.
Programmname
iwconfig
iwgetid
iwlist
iwpriv
iwspy
Marco Studer
Walter von Arx
Beschreibung
Konfigurieren eines Wireless Netzwerk Interfaces
Auslesen der ESSID
Wireless Statistik eines ausgewählten Nodes anzeigen
Konfigurieren von optionalen (privaten) Parameter
Wireless Statistik eines ausgewählten Nodes anzeigen
Seite 22 / 83
Installation
PA2 – Wireless LAN AP unter Linux
Es ist noch zu beachten, dass die Änderungen in den Einstellungen einer Karte nach
dem Reboot einer solchen nicht mehr vorhanden sind und erneut durchgeführt werden
müssen.
Jetzt kann der PC runtergefahren und die Karte eingesetzt werden. Beim Starten von
Linux wird die Karte nun erkannt und gestartet. Nun muss nur noch die richtige IP
Adresse der Karte zugewiesen werden. Dies wird mit folgenden Befehl erreicht, welcher
später in einem Script automatisch beim Systemstart ausgeführt wird.
ifconfig wvlan0 [IP-Adresse] [netmask (Netzmaske)]
[broadcast (Broadcast-Adresse)] up
8.2
Siemens I-Gate 11M – Version Intersil
Hierbei handelt es sich um Siemens I-Gate 11M Karten, welche von Siemens selbst
hergestellt werden.
8.2.1 BIOS-Einstellungen
Diese Version der I-Gate-Karten benötigt eine Betriebsspannung von 3.3V. Die
verwendeten Ethernetkarten von Xircom hingegen werden mit 5V betrieben. Dies hat
zur Folge, dass die BIOS-Einstellungen bezüglich PC Cards auf der StandardEinstellung "Auto-Selected" belassen werden muss. Eine Änderung, wie sie bei den
Orinoco-Karten gemacht wird, bewirkt dass beim Einsatz von zwei PCMCIA-Karten eine
der beiden Karte mit der falschen Spannung betrieben wird und daher nicht funktioniert.
8.2.2 Windows 2000 Professional
Für die Installation unter Windows sind die neuesten Treiber von der Siemens Webpage
heruntergeladen worden. Dabei handelt es sich um ein ZIP-Archiv, welches neben
Treibern auch Programme zur Konfiguration der Karten enthält. Die Datei
mobileports_downloads_standcd_b1_7.exe ist vom Stand Mai 2001 und enthält
folgende Software:
Verzeichnis
LinkTest
MPdrv
MPfw
MPmgr
Inhalt
Tool für Verbindungstests
Treiber für Siemens I-Gate 11M
Programm für Upgrade der Firmware
MobilePort Manager für Konfiguration der I-Gate Karten
Das Programm für den Upgrade der Firmware ist nicht verwendet worden. Die
Siemens-Karten werden nach Einführen in einen PCMCIA-Slot automatisch erkannt.
Bei der Installation des Treibers muss für Windows 2000 Professional die Datei
NETCW10.INF aus dem Verzeichnis MPdrv angegeben werden. Die Konfiguration der
Karte kann schlussendlich über den MobilePort Manager oder die Eigenschaften der
Netzwerkkarte (Netzwerk- und DFÜ-Verbindungen) erfolgen.
Marco Studer
Walter von Arx
Seite 23 / 83
Installation
PA2 – Wireless LAN AP unter Linux
8.2.3 SuSE Linux 7.1 Professional
Für die Installation der Siemens I-Gate-Karten sind die Treiber vom linux-wlan(tm)
Project, Quelle [3], heruntergeladen worden. Verwendet wurde die Version 0.1.8-pre13
des WLAN Next Generation Projektes (linux-wlan-ng-0.1.8-pre13.tar.gz).
Für die Installation unter Linux wird der Treiber normalerweise als Sourcecode
heruntergeladen. Da dieser zuerst kompiliert werden muss, werden noch einige
Quellcode-Pakete von SuSE Linux 7.1 benötigt. Dabei handelt es sich um folgende
Pakete.
Paket
lx_sus22
Linclude
Pcmcia
Serie
d
d
zq
Beschreibung
Linux Kernel Sourcecode für den SuSE Kernel 2.2.18
Include-Dateien für den Linux Kernel Sourcecode
Sourcecode für PCMCIA-Paket Version 3.1.22
Beim Versuch die Pakete lx_sus22 und linclude zu installieren meldet Yast
Inkompatibilitäten zwischen diesen. Diese Fehlermeldung kann ignoriert werden.
Zur Vereinfachung der Installation haben wir zuallererst den symbolischen Link linux im
Verzeichnis /usr/src korrigiert, so dass dieser auf das Verzeichnis mit dem verwendeten
Kernel verweist.
cd /usr/src
rm linux
ln –s linux-2.2.18.SuSE linux
Zum Kompilieren des Treibers werden die Konfigurationsdateien von Kernel und
PCMCIA-Paket benötigt. Diese werden folgendermassen erzeugt:
cd /usr/src/linux
make menuconfig
Das gestartete Programm kann sofort mit [EXIT] verlassen und die Konfiguration dabei
mit [YES] gespeichert werden. Danach sollte sich die Konfigurationsdatei des Kernels
.config im Verzeichnis /usr/src/linux befinden. Entsprechend kann nun auch die Datei für
das PCMCIA-Paket erzeugt werden.
cd /usr/src
tar xfz packages/SOURCES/pcmcia-cs-3.1.22.tar.gz
cd pcmcia-cs-3.1.22
./Configure
Als nächstes kann das Archiv mit dem Sourcecode entpackt werden.
tar xfz linux-wlan-ng-0.1.8-pre13.tar.gz
Marco Studer
Walter von Arx
Seite 24 / 83
Installation
PA2 – Wireless LAN AP unter Linux
Danach kann das Konfigurationsfile für die Übersetzung des Treibers erstellt werden.
Daraufhin kann alles übersetzt und in die entsprechenden Verzeichnisse kopiert
werden. Verwendet wird dabei folgende Befehlssequenz:
make config
make all
make install
Nun kann mit der Konfiguration der Karte begonnen werden. Alle benötigten Files
befinden sich im Verzeichnis /etc/pcmcia. Die nötigen Einträge für die Zuordnung einer
erkannten Netzkarte zum Treiber, der geladen werden soll, geschieht über die Dateien
wlan-ng.conf und config.
Im File wlan-ng.conf werden folgende Änderungen vorgenommen: Der erste Eintrag
muss folgendermassen aussehen:
device "prism2_cs"
class "wlan-ng" module "prism2_cs"
Für die verwendete Karte ist folgender Eintrag hinzugefügt worden.
### Siemens I-GATE WLAN-Karte, 11 Mbps
card "Intersil Siemens I-GATE 11Mb/s"
version "Siemens", "I-GATE 11M PC Card B",
version 01.01", ""
bind "prism2_cs"
Die Versions-Zeile muss dabei den gleichen Text enthalten, welcher über den Befehl
cardctl ident ermittelt werden kann. Auskommentiert worden ist der vorhandene
Eintrag für Siemens WLAN-Karten.
#card "Intersil PRISM2 Reference Design 11Mb/s
# 802.11b WLAN Card"
#
version "INTERSIL", "HFA384x/IEEE"
#
bind "prism2_cs"
Eine weitere Möglichkeit den richtigen Treiber zu laden ist über die Hersteller-ID,
welche ebenfalls mittels cardctl ident ermittelt werden kann. Der Nachteil dabei ist,
dass diese ID bei allen verwendeten Karten identisch war. Dadurch würde unabhängig
von der eingeschobenen Karte immer der PrismII-Treiber geladen. Ein weiterer Nachteil
davon ist, dass bei Vorhandensein immer dieser Eintrag beachtet wird, unabhängig
davon ob ein anderer zutrifft. Daher ist der Eintrag zwar ins File eingefügt, jedoch
auskommentiert worden.
### Allgemeine Intersil Prism2-Karten
### (wird verwendet, falls nicht auskommentiert)
#card "Intersil PRISM2 Reference Design 11Mb/s WLAN Card"
#
manfid 0x0156, 0x0002
#
bind "prism2_cs"
Marco Studer
Walter von Arx
Seite 25 / 83
Installation
PA2 – Wireless LAN AP unter Linux
Im File config muss auch ein entsprechender Device-Eintrag vorhanden sein.
device "prism2_cs"
class "wlan-ng" module "prism2_cs"
Ebenso sind die entsprechenden Karteneinträge zu ergänzen, wobei der zweite
auskommentiert sein sollte. Ein Standardeintrag für Siemens-Karten, welcher
auskommentiert werden müsste, ist von Anfang an nicht vorhanden.
### Siemens I-GATE WLAN-Karte, 11 Mbps
card "Intersil Siemens I-GATE 11Mb/s"
version "Siemens", "I-GATE 11M PC Card B",
"Version 01.01", ""
bind "prism2_cs"
### Allgemeine Intersil Prism2-Karten
### (wird verwendet, falls nicht auskommentiert)
#card "Intersil PRISM2 Reference Design 11Mb/s WLAN Card"
#
manfid 0x0156, 0x0002
#
bind "prism2_cs"
Im Anschluss daran können die Einstellungen für das ESS vorgenommen werden. Im
File wlan-ng.opts werden folgende Einträge entsprechend nachstehendem Beispiel
abgeändert.
DesiredSSID=“linux-wlan“
APSSID=“linux-wlan“
APCHANNEL=11
Ebenfalls geändert werden kann das File wireless.opts. Nach unseren Erfahrungen wird
dieses jedoch vom Intersil PrismII-Treiber gar nicht beachtet.
INFO=“Linux WLAN Basestation“
ESSID=“linux-wlan“
MODE=“Infrastructure“
CHANNEL=11
RATE=11M
Danach kann die WLAN-Karte neu initialisiert werden. Am Einfachsten wird dazu die
Karte aus dem PCMCIA-Slot entfernt und das PCMCIA-Device heruntergefahren und
wieder neu gestartet. Nach dem Einschieben der Karte sollte diese mittels zweier hoher
Töne signalisieren, dass sie richtig erkannt und der entsprechende Treiber geladen
worden ist. Folgende Befehle werden für das PCMCIA-Device verwendet:
/etc/init.d/pcmcia stop
/etc/init.d/pcmcia start
Marco Studer
Walter von Arx
Seite 26 / 83
Installation
PA2 – Wireless LAN AP unter Linux
Nun ist die Karte bereit für die weitere Konfiguration. Einzelne Einträge können mittels
der Konfigurationstools wlanctl-ng und wlancfg betrachet und verändert werden. Die IPAdresse wird mittels des Befehls ifconfig gesetzt. Die IP für die Mobile Station 1 würde
zum Beispiel durch folgenden Befehl zugewiesen:
ifconfig wlan0 160.85.24.192 netmask 255.255.255.128
broadcast 160.85.24.255 up
Danach ist die Siemens I-Gate-Karte theoretisch als Mobile Station initialisiert. Der Witz
daran ist jedoch, dass die Konfigurationen, welche über die Tools oder ifconfig gemacht
werden, bei jedem Neustart verloren gehen. Für eine dauerhafte Konfiguration müssen
die Einträge und Befehle in den entsprechenden Skripts festgehalten werden. Das dazu
notwendige Vorgehen wird bei der Beschreibung der Base Station-Installation in Kapitel
8.5 aufgezeigt.
Für den Betrieb als Access Point ist eine entsprechende Firmware notwendig. Diese
haben wir von der Siemens Schweiz AG erhalten. Ausserdem wird ein DownloadProgramm benötigt, welches wir von einem wlan-ng-Treiber-Paket Version 0.1.6
übernommen haben. Das entsprechende Programm ist nicht mehr Teil der neueren
Versionen. Hilfestellung bei der Inbetriebnahme eines Access Points leistete uns Daniel
Anklin von der Siemens Schweiz AG mit einer Kurzanleitung und dem Zusenden der
von ihm verwendeten Skripte und Konfigurationsfiles.
Das benötigte Download-Programm ist von uns kompiliert und installiert worden. Über
die Konfigurationsdatei wlan-ng.opts kann das Download-Programm gestartet und die
Firmware t10003c7.hex ins RAM der WLAN-Karte geladen werden. Daneben ist die
notwendige Konfiguration gemäss den Vorgaben von Herrn Anklin erstellt worden. Die
Base Station konnte daraufhin ohne ernst zu nehmende Fehlermeldungen gestartet
werden.
Alle Konfigurationsfiles sind im Anhang zu finden. Ebenso sind diese und die von Herrn
Anklin gemailten Files auf der beigelegten CD vorhanden.
Marco Studer
Walter von Arx
Seite 27 / 83
Installation
8.3
PA2 – Wireless LAN AP unter Linux
D-Link Air DWL-650
8.3.1 BIOS-Einstellungen
Die WLAN-Karte von D-Link wird genau wie die Siemens I-Gate Karten auch mit 3.3V
betrieben. Von dem her gilt bezüglich BIOS-Einstellungen dasselbe wie bei den
Siemens-Karten, d.h. die PC Card Einstellung ist auf „Auto-Selected“ zu setzen.
8.3.2 Windows 2000 Professional
Die aktuelle Software und Treiber für die D-Link Air DWL-650 können von der
Homepage des Herstellers [12] heruntergeladen werden. Es handelt sich dabei um das
ZIP-Archiv dwl650_driver_132.zip. Zu beachten ist, dass man vor dem Einsetzen der
Karte die Konfigurationssoftware installieren sollte. Dabei werden folgende Angaben
benötigt:
Bezeichnung
SSID
Network Mode
Wert
linux-wlan
Infrastructure
Beim Pfad für die Installation und beim vorgeschlagenen Programmordner kann der
vorgeschlagene Standardwert übernommen werden.
Nach Einführen der Karte wird der Pfad zur Treiberdatei verlangt. Dabei ist die Datei
netcw2k.inf aus dem Ordner Win2000 anzugeben.
8.3.3 SuSE Linux 7.1 Professional
Die Installation der D-Link-Karte unter Linux gestaltet sich sehr ähnlich wie die der
Siemens-Karte. Einziger Unterschied ist ein zusätzlicher Eintrag in den Files config und
wlan-ng.conf. In beiden Files ist nach erfolgter Siemens Intersil-Installation der
nachfolgende Eintrag zu ergänzen.
### D-Link DWL-650 WLAN-Karte, 11Mbps
card "D-Link DWL-650 11Mbps 802.11b WLAN Card"
version "D", "Link DWL-650 11Mbps WLAN Card",
"Version 01.02"
bind "prism2_cs"
Die Möglichkeiten der Konfiguration sind nicht untersucht worden, da die Karte für
unsere Projektarbeit nicht in Frage kam.
Marco Studer
Walter von Arx
Seite 28 / 83
Installation
8.4
PA2 – Wireless LAN AP unter Linux
Siemens I-Gate 11M – Version Lucent
Mit vier Wochen Verspätung erhielten wir diese ursprünglich für die PA vorgesehene
Karte. Da die versprochene Software zu dieser Karte, d.h. Firmware und Treiber,
endgültig ausblieben, mussten wir auf jeglichen Einsatz dieser Karte verzichten.
8.5
Ausbau zu einer Base Station (Siemens Intersil Karte)
Als erstes muss diese Karte als Mobile Station installiert werden. Wie dies gemacht wird
kann im Kapitel 8.2 nachgelesen werden.
Damit diese Karte als Base Station betrieben werden kann, muss immer beim
Aufstarten der Karte respektive des Treibers die Firmware, Base Station-Firmware ins
RAM der Karte geladen werden. Dazu benötigt man ein spezielles DownloadProgramm.
Als erstes muss dieses installiert werden. Die Sourcedateien, die man zur Installation
benötigt, können unter [8] heruntergeladen werden.
Im Source-Verzeichnis der prism2 Treiber wird nun ein neues Verzeichnis mit dem
Namen download erstellt.
mkdir /root/linux-wlan-ng-0.1.8-pre13/src/prism2/download
In dieses Verzeichnis werden nun die Dateien Makefile und prism2dl.c kopiert, welche
das Download Programm darstellen. Als nächstes wird mit folgendem Befehl,
ausgeführt in einer Konsole, in dieses Verzeichnis gewechselt.
cd /root/linux-wlan-ng-0.1.8-pre13/src/prism2/download
In der Datei prism2dl.c muss nun noch eine Änderung vorgenommen werden, damit
diese kompiliert werden kann. In der Zeile 1152 muss folgende Zeile
writemsg.addr.data = HFA384x_PDA_BASE;
durch folgende ersetzt werden
writemsg.addr.data = HFA3842_PDA_BASE;
Nach dieser Änderung kann das Programm kompiliert werden.
make
make install
Marco Studer
Walter von Arx
Seite 29 / 83
Installation
PA2 – Wireless LAN AP unter Linux
Als nächstes wird die verwendete Firmware in das Verzeichnis /etc/pcmcia kopiert. Wir
benutzten zwei verschieden Versionen, von denen wir beide ohne Probleme installieren
konnten.
Folgende Tabelle gibt einen kurzen Überblick über diese.
Produkt
Version
Dateiname
Erhalten von M. Loder
CW10 Tertiary Firmware
0.3 variant 3
t10003c3.hex
Erhalten von D. Anklin
CW10 Tertiary Firmware
0.3 variant 7
t10003c7.hex
Diese sind beide für den Prism II Chipsatz. Wir verwendeten beide Versionen. Die erste
erhielten wir von Herrn M. Loder, die zweite von Herrn D. Anklin, beide Mitarbeiter der
Firma Siemens Schweiz AG.
Jetzt muss die Datei wlan-ng.opts im Verzeichnis /etc/pcmcia/ angepasst werden.
Folgendes muss geändert werden:
§
§
§
§
§
Zeile 58 bis 64 auskommentieren, da für uns sinnlos
Zeile 80 auskommentieren und durch folgende ersetzen
USER_MIB=""
Unter STA_START, am Schluss dieses Abschnittes folgendes einfügen (Beispiel
von Base Station 2):
DesiredSSID="linux-wlan"
wlan_DEVICE=wlan0
wlan_IPADDR=160.85.24.131
wlan_NMASK=255.255.255.128
wlan_BCAST=160.85.24.255
Unter DOWNLOAD sollte folgendes stehen:
WLAN_DOWNLOAD=y
WLAN_DOWNLOADER=/sbin/prism2dl
WLAN_DLIMAGE=/etc/pcmcia/t10003c3.hex
Unter AP START folgendes ändern:
IS_AP=y
APSSID=linux-wlan
APCHANNEL=11
Optionen
DesiredSSID
wlan_DEVICE
wlan_IPADDR
wlan_NMASK
wlan_BCAST
WLAN_DOWNLOAD
WLAN_DOWNLOADER
WLAN_DLIMAGE
IS_AP
APSSID
APCHANNEL
Marco Studer
Walter von Arx
Beschreibung
Netz-ID vom ESS
Device Id der WLAN Karte
IP Adresse der WLAN Karte
Netzmaske
Broadcast Adresse
Download der Firmware durchführen oder nicht
Download Programm
Firmwaredatei welche benutzt werden soll
Arbeitet die Station als Access Point
Netz-ID vom ESS
Benutzter Funkkanal
Seite 30 / 83
Installation
PA2 – Wireless LAN AP unter Linux
Nach diesen Änderungen muss noch die Datei wlan-ng angepasst werden. Diese findet
man ebenfalls im Verzeichnis /etc/pcmcia. Hier wird unter dem Fall 'start'|'resume' unter
AP Interface vor der Zeile 287 nachstehendes eingefügt:
ifconfig $wlan_DEVICE $wlan_IPADDR netmask
$wlan_NMASK broadcast $wlan_BCAST
ifconfig $wlan_DEVICE up
Nach einem Reboot läuft der so konfigurierte Laptop als Base Station.
8.6
Installation PCMCIA
Um ein neue PCMCIA Version zu installieren geht man wie folgend beschrieben vor.
Als gute Hilfe dient dabei das PCMCIA Linux HOWTO, welches über die Linux Hilfe
aufgerufen werden kann. Da für einige in diesem Abschnitt beschriebenen
Vorgehensweisen Superuser-Rechte benötigt werden, empfiehlt es sich als ROOT zu
arbeiten.
Als erstes muss die zu installierende PCMCIA-Version runtergeladen werden. Unter [6]
können verschieden aktuelle Versionen gefunden werden. Als Beispiel nehmen wir hier
die Version 3.1.24.
Damit das PCMCIA Packet kompiliert werden kann, müssen alle dazu benötigten
Quellcode Pakete auf dem System vorhanden sein. Folgende zwei Pakete sind
unabdingbar. Diese können mit YaST von der DVD oder CD-Rom installiert werden.
§
§
lx_sus22
linclude
Serie d
Serie d
Linux Kernel Quellcode (SuSE Kernel 2.2.18)
Linux Kernel Include-Dateien (SuSE Kernel 2.2.18)
Als nächstes sollte das bereits aktive PCMCIA Packet deinstalliert werden. Dazu startet
man das Konfigurationsprogramm YaST. Unter dem Menupunkt „Paketverwaltung“
wählt man „Paketauskunft“. Hier wird jetzt nach dem Begriff „pcmcia“ gesucht.
Nach kurzer Zeit erscheint eine Liste mit Paketen. Hier selektiert man den Eintrag:
[i]
s pcmcia
PCMCIA support for Linux
Durch drücken der Space-Taste stellt man den Status dieses Eintrages auf '[D]'.
Danach kann durch drücken der F10 Taste das Menu verlassen werden und das aktuell
installierte PCMCIA Paket wird deinstalliert.
Da einige Pakete für ihre Konfiguration die Konfigurationsdatei des Kernels benötigen,
muss diese noch erstellt werden.
cd /usr/src/linux
make menuconfig
Marco Studer
Walter von Arx
Seite 31 / 83
Installation
PA2 – Wireless LAN AP unter Linux
Das nun geöffnete Programmfenster wird ohne Änderungen vorzunehmen wieder mit
[exit] verlassen. Die Frage, ob die Konfiguration gespeichert werden soll, wird mit [Yes]
beantwortet. Nun sollte im Verzeichnis /usr/src/linux die Datei .config erstellt worden
sein.
Jetzt kann die Installation des neue Paketes beginnen.
Das vorhin heruntergeladene Paket, pcmcia-cs-3.1.24.tar.gz, kann jetzt entpackt
werden. Üblicherweise wird das runtergeladene Paket im Verzeichnis
/usr/src/packages/SOURCES/pcmcia-cs-x.x.xx, wobei x.x.xx die Versionsnummer
darstellt, gespeichert. Man entpackt dieses Paket am besten in das Verzeichnis
/usr/src/:
cd /usr/src
tar xfz packages/SOURCES/pcmcia-cs-3.1.24
cd /usr/src/pcmcia-cs-3.1.24
Das entpackte Paket kann jetzt kompiliert und installiert werden.
make config
Hier müssen einige Fragen beantwortet werden. Diese können alle mit den
Standardwerten beantwortet werden (immer RETURN drücken).
make all
make install
Damit das neue Paket richtig gestartet und gestoppt wird, müssen in den Start-/ StoppVerzeichnissen dreier Runlevels jeweils zwei Softlinks auf das PCMCIA Startscript
erstellt werden.
cd
ln
ln
ln
ln
ln
ln
/etc/pcmcia
-s ../pcmcia
-s ../pcmcia
-s ../pcmcia
-s ../pcmcia
-s ../pcmcia
-s ../pcmcia
/etc/init.d/rc2.d/K17pcmcia
/etc/init.d/rc2.d/S06pcmcia
/etc/init.d/rc3.d/K17pcmcia
/etc/init.d/rc3.d/S06pcmcia
/etc/init.d/rc5.d/K17pcmcia
/etc/init.d/rc5.d/S06pcmcia
Jetzt kann das System neu gestartet werden.
reboot
Nach dem Reboot sollte das neue PCMCIA Paket korrekt arbeiten.
Marco Studer
Walter von Arx
Seite 32 / 83
Tests
PA2 – Wireless LAN AP unter Linux
9 Tests
9.1
Testkonzept
Unsere Tests beschränkten sich darauf zu prüfen, ob die Base Stations und die Mobile
Stations richtig gestartet werden und ob eine Verbindung zwischen den verschiedenen
Rechnern besteht. Weiter haben wir getestet, ob die Mobile Stations eine Verbindung
mit dem Siemens I-GATE 11M ISDN Access Point aufbauen können.
Wie aus Abbildung 9.1 ersichtlich ist, testeten wir die Clients unter Windows 2000 und
die Base Stations unter SuSE Linux 7.1, Kernel 2.2.18.
Mobile Station
Base Station
Windows 2000
Orinoco Karte
SuSE Linux 7.1
Siemens Intersil
Abbildung 9.1 – Testaufbau
Die Base Stations haben wir unter Linux eingerichtet. Wenn eine PCMCIA Karte in
einen der beiden Slots des Laptops eingesteckt wird, wird das vom System in der Datei
/var/log/messages protokolliert. Diese Datei kann mit dem Befehl tail fortlaufend
angezeigt werden.
tail –f /var/log/messages
Sie sollte nach dem Einfügen einer Siemens Intersil WLAN Karte, welche als Base
Station konfiguriert ist, folgende Einträge protokolliert haben.
cardmgr[192]: initializing socket 1
cardmgr[192]: socket 1: Intersil Siemens I-GATE 11Mb/s
kernel: cs: memory probe 0x0d0000-0x0dffff: clean.
cardmgr[192]: executing: 'modprobe prism2_cs'
kernel: init_module: prism2_cs.o: 0.1.8-pre12 Loaded
kernel: init_module: dev_info is: prism2_cs
kernel: prism2_cs: index 0x01: Vcc 3.3, irq 5, io 0x0100-0x013f
kernel: ident: nic h/w: id=0x8002 1.0.0
kernel: ident: pri f/w: id=0x15 0.3.0
kernel: ident: sta f/w: id=0x1f 0.7.6
kernel: MFI:SUP:role=0x00:id=0x01:var=0x01:b/t=1/1
kernel: CFI:SUP:role=0x00:id=0x02:var=0x01:b/t=1/1
kernel: PRI:SUP:role=0x00:id=0x03:var=0x01:b/t=1/2
kernel: STA:SUP:role=0x00:id=0x04:var=0x01:b/t=1/4
kernel: PRI-CFI:ACT:role=0x01:id=0x02:var=0x01:b/t=1/1
kernel: STA-CFI:ACT:role=0x01:id=0x02:var=0x01:b/t=1/1
kernel: STA-MFI:ACT:role=0x01:id=0x01:var=0x01:b/t=1/1
kernel: Prism2 card SN: 99SA01000000
cardmgr[192]: executing: './wlan-ng start wlan0'
kernel: Writing 4096 bytes to ram @0x1f1800
Marco Studer
Walter von Arx
Seite 33 / 83
Tests
PA2 – Wireless LAN AP unter Linux
kernel:
kernel:
kernel:
kernel:
kernel:
kernel:
kernel:
kernel:
kernel:
kernel:
kernel:
Writing
Writing
Writing
Writing
Writing
Writing
Writing
Writing
Writing
Writing
Writing
4096 bytes
4096 bytes
4096 bytes
4096 bytes
4096 bytes
4096 bytes
4096 bytes
4096 bytes
4096 bytes
2 bytes to
3144 bytes
to ram @0x1f2800
to ram @0x1f3800
to ram @0x1f4800
to ram @0x1f5800
to ram @0x1f6800
to ram @0x1f7800
to ram @0x1f8800
to ram @0x1f9800
to ram @0x1fa800
ram @0x1fb800
to ram @0x1ff000
Hier wurde die Base Station Firmware in das RAM der Siemens Karte geschrieben.
kernel: ident: nic h/w: id=0x8002 1.0.0
kernel: ident: pri f/w: id=0x15 0.3.0
kernel: ident: ap f/w: id=0x14b 0.3.7
kernel: MFI:SUP:role=0x00:id=0x01:var=0x01:b/t=1/1
kernel: CFI:SUP:role=0x00:id=0x02:var=0x01:b/t=1/1
kernel: PRI:SUP:role=0x00:id=0x03:var=0x01:b/t=1/2
kernel: AP:SUP:role=0x00:id=0x05:var=0x01:b/t=1/5
kernel: PRI-CFI:ACT:role=0x01:id=0x02:var=0x01:b/t=1/1
kernel: STA-CFI:ACT:role=0x01:id=0x02:var=0x01:b/t=1/1
kernel: STA-MFI:ACT:role=0x01:id=0x01:var=0x01:b/t=1/1
kernel: Prism2 card SN: 99SA01000000
cardmgr[192]: + Reading S-record file /etc/pcmcia/t10003c7.hex...
cardmgr[192]: + prism2dl: finished.
Der Treiber wurde gestartet.
kernel: atimwindow not used in Infrastructure mode, ignored.
kernel: prism2mgmt_start: probedelay not supported in prism2, ignored.
kernel: prism2mgmt_start: read(pcfinfo) failed, assume it's not
supported, pcf settings ignored.
Diese drei Fehlermeldungen sind für unsere Anwendung nicht von Bedeutung.
cardmgr[192]: + WLAN AP mode started
Die Karte läuft jetzt als Base Station.
Durch diese Meldung kann getestet werden, ob die Karte richtig im System initialisiert
wurde. Geht das Ganze schief, kann man aus den protokollierten Fehlermeldungen auf
den Fehler schliessen.
Marco Studer
Walter von Arx
Seite 34 / 83
Tests
PA2 – Wireless LAN AP unter Linux
Damit jetzt getestet werden kann, ob die Base Station auch funktioniert, haben wir unter
Windows 2000 eine Orinoco Lucent WLAN Karte installiert. Bei der Installation dieser
Karte wird im Windows ebenfalls ein Client Manager mitinstalliert.
Abbildung 9.2 – Orinoco Client Manager
Mit diesem kann getestet werden, ob eine Verbindung zu einer Base Station besteht. Es
werden auch alle Base Stations angezeigt, die empfangen werden können. Dieses Tool
wird im Abschnitt 9.2 genauer erklärt.
Weiter hatten wir einen Siemens I-GATE 11M ISDN Access Point. Stellt man die ESSID
auf die Seriennummer dieses Gerätes, kann man sich mit diesem verbinden. So
konnten wir ebenfalls testen, ob eine Verbindung mit diesem aufgebaut wird.
Unsere Mobile Stations konnten sich ohne Probleme mit unseren Linux Base Stations
und mit dem Siemens Access Point verbinden.
Ob eine Netzverbindung zwischen Mobile Station und Base Station besteht, haben wir
mit dem Ping-Befehl getestet. Mit diesem konnten wir von der Base Station zur Mobilen
und umgekehrt die jeweils andere Partei erreichen. Weiter testeten wir, ob sich zwei
Mobile Stations, welche an einer Base Station angemeldet sind, auch untereinander
über eine Verbindung verfügen. Dies prüften wir ebenfalls mittels des Ping-Befehles.
Auch dieser Test verlief erfolgreich.
Sind zwei Base Stations in Betrieb, so kann weiter getestet werden, ob ein Client
welcher bei BS1 angemeldet ist, auf BS2 wechselt, wenn BS1 ausgeschaltet oder
ausserhalb der Funkreichweite der Mobile Station gerät.
Da die Mobile Station schon zu Beginn in der Reichweite beider Base Stations war,
kannte sie schon beide Stationen zum Zeitpunkt des Abschaltens einer BS. Dies kann
man mit dem Orinoco Client Manager sehen. Wird jetzt die Station BS1 ausgeschaltet,
reagiert die Mobile Station korrekt und arbeitet von nun an über die Base Station 2.
Marco Studer
Walter von Arx
Seite 35 / 83
Tests
9.2
PA2 – Wireless LAN AP unter Linux
Softwaretools
In diesem Abschnitt erklären wir, wie man mit dem Orinoco Client Manager, Version
1.76, und mit dem Siemens MobilePort Manager, Version 1.26, arbeitet. Beide
Programme arbeiten unter Windows 2000 und werden mit den Treibern der jeweiligen
Karten mitinstalliert.
Abbildung 9.3 – Statusleiste Windows 2000
Beide Tools können über ein Symbol in der Statusleiste gestartet werden.
Symbol
Programm
Orinoco Client Manager (Version 1.76)
MobilePort Manager (Version 1.26)
Da wir unter Windows 2000 mit der Siemens Intersil Karte nie eine Verbindung auf
unsere Linux Base Stations oder auf den Siemens ISDN Access Point erstellen
konnten, erklären wir hier zuerst den Orinoco Manager. Mit diesem haben wir mehr
praktische Erfahrung sammeln können.
9.2.1 Orinoco Client Manager
Abbildung 9.4 – Orinoco Client Manger
Nach dem Start des Managers erscheint das Bild der Abbildung 9.4. Ist das Programm
richtig konfiguriert, werden in diesem Fenster schon einige nützliche Informationen
dargestellt. Wie das Tool richtig konfiguriert wird, erklären wir weiter unten.
Im linken Teil des Fensters sieht man die Stärke des empfangenen Signals. Weiter ist
der Status der aktuellen Verbindung ersichtlich.
Marco Studer
Walter von Arx
Seite 36 / 83
Tests
PA2 – Wireless LAN AP unter Linux
Die einzelnen Werte werden in der folgenden Tabelle kurz erklärt:
Feldbezeichnung
Connected to network
Radio connection
Access Point name
Channel
Encryption
Wert
linux-wlan
Excellent
Prism I
11
Off
Erklärung
ESSID des verbundenen Netzes
Verbindungsqualität
Name der Base Station
Funkkanalnummer
Encryption aktiviert
Zu Beginn muss das Tool richtig konfiguriert werden, um auf ein bestimmtes Netz
zugreifen zu können. Dafür muss ein neues Configuration Profile erstellt werden. Dazu
klickt man den Menupunkt Actions an. Dort wird der Punkt Add/Edit Configuration
Profile gewählt.
Abbildung 9.5 – Configuration Profil
Wie aus Abbildung 9.5 ersichtlich ist, sind hier bereits drei Profile definiert. Um mit einer
von uns erstellten Base Stations eine Verbindung aufzubauen, erstellt man das Profil
mit dem Name WLAN. Da unsere Base Stations im Infrastructure Mode arbeiten, muss
hier „Access Point“ als Betriebsart des Wireless LAN gewählt werden. Jetzt muss noch
der Namen, also die ESSID, des Netzes eingeben werden. Dazu klickt man auf den
Button Edit Profile.
Marco Studer
Walter von Arx
Seite 37 / 83
Tests
PA2 – Wireless LAN AP unter Linux
Im nun aufgegangenen Fenster, Abbildung 9.6, kann dieser Wert eingegeben werden.
Abbildung 9.6 – Network Name einstellen
In unserem Netz hat dieser Parameter den Wert 'linux-wlan'.
Jetzt können die zwei offenen Fenster mit [OK] beendet werden, um die neuen
Einstellungen zu speichern. Wieder im Hauptfenster Abbildung 9.4, wählt man das eben
erstellte Profil aus. Dazu wählt man den Menupunkt Actions. In diesem Menu kann man
unter dem Punkt Select Configuration Profile eines der konfigurierten Profile auswählen.
In unserem Fall wäre das jetzt das Profil „WLAN“.
Jetzt ist die Mobile Station mit einer von uns erstellten Base Station verbunden.
Weiter hat dieser Manager drei Funktionen um eine Verbindung anzusehen und deren
Qualität zu beurteilen. Diese findet man im Hauptmenu unter dem Punkt Advanced. Als
erstes kann hier die Karte getestet werden. Hier wird vor allem kontrolliert, ob der
verwendete Treiber zur Hardware passt.
Marco Studer
Walter von Arx
Seite 38 / 83
Tests
PA2 – Wireless LAN AP unter Linux
Weiter findet man hier den Menupunkt Link Test. Hier werden die empfangenen
Signalpegel dargestellt. Es werden die Werte SNR, Signal Level und Noise Level
grafisch dargestellt.
Abbildung 9.7 – Linktest Monitor
Mit diesem Tool kann die Qualität einer Verbindung kontrolliert werden.
Das wohl interessanteste Tool ist im Menupunkt 'Site Monitor' zu finden. Hier werden in
den verschiedenen Registern Informationen zur aktiven Verbindung dargestellt.
Abbildung 9.8 – Register in Site Monitor Tool
Marco Studer
Walter von Arx
Seite 39 / 83
Tests
PA2 – Wireless LAN AP unter Linux
Zuerst wird der Name des aktiven Netzes gezeigt. Da in Abbildung 9.9 nur eine Base
Station empfangen werden kann, wird die Verbindung zwischen zwei APs als gross
angenommen, was im oberen Teil des Fensters dargestellt wird.
Abbildung 9.9 – Register: Selection
Im Register Selection kann zwischen den empfangenen Base Stations gewählt werden.
In unserem Beispiel war nur eine in Betrieb. Es werden der Typ des Netzwerkes, die
Anzahl der in diesem Netz empfangbaren Access Points und die Kanalnummer
angezeigt. Nach dem Drücken des Buttons Scan Now, wird nach neu empfangbaren
Base Stations gesucht.
Marco Studer
Walter von Arx
Seite 40 / 83
Tests
PA2 – Wireless LAN AP unter Linux
Abbildung 9.10 – Register Site Monitor
Im Register 'Site Monitor' können folgende Werte angezeigt werden:
§
§
§
§
§
§
§
§
MAC Adresse
AP Name
SNR (grafische Darstellung in Balkenformat)
Signal (grafische Darstellung in Balkenformat)
SNR(dB)
Signal(dBm)
Noise(dBm)
Channel
Mit diesen Informationen kann sehr gut geprüft werden, mit welcher Base Station man
gerade verbunden ist. Hiermit haben wir auch testen können, wie unsere Clients
reagieren, wenn wir die aktuell verbundene Base Station entfernen. Dadurch ist klar
ersichtlich, wie auf die andere aktive BS umgeschaltet wird.
Im Register Log Settings kann eingestellt werden, ob ein LOG File geführt werden soll.
Als letztes Register kann AP names gewählt werden. Hier kann einer AP ein Name
gegeben werden, dieser Name ist aber nur auf dem PC aktiv, an dem dies eingestellt
wird, daher ist dies etwas sinnlos.
Marco Studer
Walter von Arx
Seite 41 / 83
Tests
PA2 – Wireless LAN AP unter Linux
9.2.2 Siemens MobilePort Manager
Siemens installiert mit den Treibern fünf Konfigurations- und Test-Programme. Diese
können alle vom Start-Menu aus gestartet werden.
Abbildung 9.11 – Siemens Start-Menu Einträge
Wir beschreiben hier nur die Programme, welche wir benutzt haben.
Abbildung 9.12 – MobilePort Manager, Configuration
Mit dem MobilePort Manager, Abbildung 9.12, wird die Karte auf ein Netz eingestellt.
Wir verwendeten die Version 1.26 dieses Tools.
Marco Studer
Walter von Arx
Seite 42 / 83
Tests
PA2 – Wireless LAN AP unter Linux
Im Register Configuration muss der Modus des Netzes eingestellt werden. In unserem
Netz, SSID gleich „linux-wlan“, ist dies „Infrastructure“. Die Übertragungsrate kann auf
„Fully Automatic“ gestellt werden. Wenn eine Verbindung aufgebaut wird, stellt sich
diese automatisch richtig ein. Weitere Einstellungen sind für unser Netz nicht zu
machen. Diese Änderungen müssen durch drücken des Buttons Apply Changes
übernommen werden. Wenn die Karte jetzt korrekt arbeitet, dann sieht man im Register
Link Info die aktuelle Verbindung.
Im Feld State sollte dann Connected stehen. Weiter kann in diesem Programm die
Verschlüsselung eingestellt werden. Da wir keine Verschlüsselung verwenden, haben
wir hier auch nichts eingestellt.
Abbildung 9.13 – Siemens LinkTest Version 1.0
Mit dem Programm LinkTest, Abbildung 9.13, kann ein Link getestet werden. Es wird
die SSID und die MAC Adresse des empfangenen Access Points angezeigt. Weiter
kann nach einer IP Adresse im Netz gesucht werden. Kann die IP Adresse im Netz
gefunden werden, wird die Qualität dieser Verbindung angezeigt. In Zusammenarbeit
mit dem MobilePort Manager kann zwischen verschiedenen Access Point umgeschaltet
werden.
Marco Studer
Walter von Arx
Seite 43 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
10 Beschreibung IAPP
10.1 Allgemeines
Beim Inter-Access Point Protocol IAPP handelt es ich um ein Kommunkationsprotokoll
zur Kommunikation zwischen Access Points. Das Kommunikationssystem umfasst
dabei eine beliebige Anzahl Access Points, Wireless LAN Mobile Stations und einen
Registrierungsdienst. Es muss ausserdem an ein Distribution System angeschlossen
sein. Sinn und Zweck ist dabei die Verbindung der einzelnen Zellen, kontrolliert durch
einen Access Point, zu einem einzigen, für die Mobile Stations transparenten Wireless
LAN. Dabei handelt es sich dann um ein Extended Service Set (ESS). Abbildung 10.1
zeigt schematisch die Einordnung des IAPP in die Netzstruktur.
Wireless LAN
Bereich
Distribution System
Bereich
Registration
Service
IAPP
Distribution System
Access Point
Access Point
IAPP
IAPP
Übertragung
von 802.11 Frames
WLAN
Mobile Station
Abbildung 10.1 – Einsatzgebiet des IAPP
Wichtig für die korrekte Funktion ist dabei eine vorhandene Netzstruktur im Bereich des
Distribution Systems. Konkret bedeutet dies, dass alle Stationen innerhalb des DS nach
einem gültigen Schema adressiert sein müssen, so dass das Routing funktioniert. Beim
Inter-Access Point Protocol selbst handelt es sich nicht um ein Routing-Protokoll.
Stattdessen nutzt das IAPP die bestehende Netzwerkfunktionalität für das Versenden
von Paketen auf dem Distribution System.
Marco Studer
Walter von Arx
Seite 44 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
Das IAPP an sich unterstützt zuerst einmal folgende Hauptfunktionen:
§
§
Dienste für das Distribution System
Mapping der Wireless LAN-Adressen zu Adressen des DS
Weiter sollen unter anderem zusätzliche Eigenschaften realisiert werden:
§
§
§
§
§
Entwicklung des IAPP über verschiedene Versionen hinweg
Formierung des Distribution Systems
Unterhalt des Distribution Systems (Konfiguration)
Garantie, dass jede Mobile Station nur bei einem einzigen AP angemeldet ist
Remote Konfiguration der Access Points
10.2 Formierung/Unterhalt eines ESS
Die Bildung eines Extended Service Set (ESS) aus einzelnen Basic Service Sets (BSS)
hat zur Folge, dass ein Registrierungsdienst vorhanden sein muss. Dieser Dienst hat
die Aufgabe eine Liste aller Access Points inklusive der Zuordnung ihrer ZellenIdentifikation (BSSID) zur jeweiligen IP-Adresse im Distribution System zu führen.
Durch die Bildung eines ESS ist es Stationen möglich sich transparent von BSS zu BSS
zu bewegen.
Jeder AP, der sich dem bestehenden ESS anschliessen möchte, muss sich mittels
IAPP anmelden. Der Zugriff auf den Registrierungsdienst erfolgt per Service Location
Protocol (SLP) [24]. Sobald sich also ein neuer AP dem Netz hinzugesellt, sucht dieser
den Registrierungsdienst per SLP. Falls es sich dabei um den ersten Access Point im
ESS handelt, wird dieser von sich aus den Registrierungsdienst initialisieren. In diesem
Fall definiert der AP auch gleich den Service Set Identifier (SSID), welcher die
eindeutige Bezeichnung des ESS darstellt. Auf das Thema SLP wird im Folgenden nicht
detaillierter eingegangen.
Management Stationen haben die Möglichkeit über den Registrierungsdienst
Informationen zu den einzelnen APs abzurufen. Im Gegensatz zum
Registrierungsservice soll es möglich sein, mit einer solchen Management Station mehr
als ein ESS zu kontrollieren.
Zum Lokalisieren des Registrierungsservices wird folgender Algorithmus verwendet:
1) Der AP sendet zum Auffinden des Registrierungsdienstes einen SLP-Request.
2) Weiter soll ein DNS-Lookup zum Auffinden des ESS-Registrierungsdienstes
abgesetzt werden.
3) Sofern der Registrierungsdienst des ESS verfügbar ist, folgt ein SLP Service
Reply mit der Angabe der URL des Dienstes. Darauf können beim
Registrierungsdienst SSID, BSSID und die IP-Adresse des AP innerhalb des
Distribution Systems angegeben werden.
4) Falls keine Antwort von einem Registrierungsdienst erfolgt ist, soll der Access
Point seinen eigenen Dienst errichten und eventuellen anderen APs per SLP
zugänglich machen.
Marco Studer
Walter von Arx
Seite 45 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
Sowohl eine Änderung der IP-Adresse als auch ein Herunterfahren eines Access Points
soll dem Registrierungsdienst mitgeteilt werden. Grundsätzlich sollte ein Access Point
alle fünf Minuten einen Refresh-Request zur Aktualisierung seines Eintrages an den
Registrierungsdienst senden. Bleibt dieser Request für 15 Minuten aus, wird der Eintrag
gelöscht.
Eine Implementierung eines Registrierungsservices sollte folgende Funktionen
unterstützen:
§
§
§
§
Hinzufügen neuer Einträge, d.h. Mapping der BSSID eines Access Points auf
seine IP-Adresse im Distribution System als Folge einer Registrierungsanfrage
Erneuerung der bestehenden Einträge als Folge eines Refresh-Requests
Entfernen von Einträgen aufgrund einer Deregistrierungsanfrage oder wegen
dem Ausbleiben eines Refreshs innerhalb des konfigurierten Intervals
Beantworten von Anfragen bezüglich dem Mapping von BSSIDs zu IP-Adressen
des Distribution Systems
10.3 IAPP Modi
Das Dokument IEEE 802.11-00/214 vom Juli 2000, Quelle [20], beschreibt zwei
mögliche Modi für das Inter-Access Point Protokoll. Im vorhandenen Pre-Draft [19] sind
diese allerdings nicht mehr aufgeführt, so dass deren weitere Verwendung im Rahmen
des IAPP fraglich ist.
10.3.1 MAC-Bridge Modus
Beim MAC Bridge Mode handelt es sich um den Mode, welcher auch ohne
Konfiguration des Access Points funktionsfähig sein sollte. Sinnvoll ist der Einsatz
sofern das Distribution System aus einem einzigen Broadcast-Medium besteht. Eine
Portalfunktion, d.h. eine Schnittstelle zwischen Distribution System und z.B. Ethernet,
ist in jedem Access Point integriert.
Nachteilig ist, dass aufgrund der nicht benötigten IP-Adressierung der Einsatz von IPRoutern innerhalb des DS zum Vorneherein ausgeschlossen wird. Ausserdem kann die
in IEEE 802.11 spezifizierte Maximalgrösse eines WLAN-Frames nicht genutzt werden,
da eine Anpassung an das Ethernetframe (IEEE 802.3) notwendig ist.
Marco Studer
Walter von Arx
Seite 46 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
Abbildung 10.2 zeigt den typischen Aufbau eines Wireless LAN betrieben im MAC
Bridge Mode.
LLC
802.2
assoc
integr
MAC
802.11
MAC
802.3
MAC
802.11
LLC
802.2
Access Point
MAC Bridge
station
MAC
802.3
LLC
802.2
assoc
integr
MAC
802.11
MAC
802.3
desktop
computer
MAC
802.11
802.3
LAN
Access Point
MAC Bridge
station
Abbildung 10.2 – Netzstruktur für MAC Bridge Mode
10.3.2 Dynamic Route Resolution Mode
Abbildung 10.3 zeigt eine Netzstruktur wie sie für den Dynamic Route Resolution Mode
verwendet wird.
LLC
802.2
assoc
distrib
MAC
802.11
UDP/IP
MAC
802.11
STA1
LLC
802.2
LLC 802.2
MAC 802.3
AP1
subnet 204.71.200.0
subnet
192.168.122.0
IP
Router
distrib
integr
LLC 802.2
MAC 802.3
LLC
802.2
MAC
802.3
UDP/IP
MAC
802.3
PORTAL
assoc
distrib
MAC
802.11
subnet
192.168.120.0
UDP/IP
MAC
802.11
LLC 802.2
MAC 802.3
IP
Router
wired LAN
desktop computer 1
subnet
204.71.200.0
AP2
STA2
subnet 204.71.200.0
subnet
192.168.121.0
Abbildung 10.3 – Netzstruktur für Dynamic Route Resolution Mode
Marco Studer
Walter von Arx
Seite 47 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
802.11 MAC Frames werden in UDP-Pakete eingepackt, um sie vom Access Point zum
Portal zu transportieren. Aus diesem Zweck ist es notwendig, dass alle Access Points
und das Portal eine Routing Tabelle führen. Benötigt wird hierbei ein Route Resolution
Server (RSS). Dessen Funktionalität wird dabei in einem Node des Distribution Systems
implementiert, beispielsweise im Portal. Jeder Access Point muss dabei die IP-Adresse
des RSS kennen.
Wegen der Routing Information- und Routing Response-Meldungen, welche zwischen
Access Points und Route Resolution Server hin- und hergesendet werden, kennt der
RSS die aktuelle Zelle einer jeden Mobile Station. Anfragen bezüglich Routing
beantwortet der Route Resolution Server mit der Angabe der IP-Adresse des
betreffenden Access Points oder, falls das Paket Richtung Distribution Server soll, mit
der Angabe der IP des Portals. Die nachfolgende Abbildung Abbildung 10.4 zeigt
schematisch den Ablauf der Route Resolution, welches für das Versenden eines Pakets
von STA1 zu STA2 notwendig ist. Bezogen ist dieses Beispiel auf die in Abbildung 10.3
dargestellte Netzstruktur.
STA1
Station 1
powers on
near AP1
STA2
AP1
AP2
AssociationRequest
Server
&
Portal
RoutingIndication
AssociationResponse
RoutingResponse
Station 2
powers on
near AP2
AssociationRequest
AssociationResponse
RoutingIndication
RoutingResponse
Station 1 sends
a MAC frame
to station 2
Data Frame
RoutingRequest
RoutingResponse
Data Frame
Data Frame
Abbildung 10.4 – Route Resolution
Marco Studer
Walter von Arx
Seite 48 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
Sobald eine Mobile Station die Zelle wechselt, d.h. sich bei einem neuen Access Point
anmeldet, muss der neue AP eine Routing Indication-Meldung an den Route Resolution
Server senden. Dieser verschickt dann per Multicast die Meldung an alle Access Point.
Als Folge schicken die APs dann eine Bestätigung an den RSS zurück. Damit wird
sichergestellt, dass der alte AP die Änderung zur Kenntnis genommen und den Eintrag
der Mobile Station gelöscht hat. Dies ist notwendig, da eine Mobile Station jederzeit bei
maximal einer Base Station angemeldet sein darf.
Abbildung 10.5 zeigt den vollständigen Ablauf des Route Update.
STA2
Station 2 moves
from AP2 to
AP3
AP1
AP2
AP3
ReAssociationRequest
ReAssociationResponse
Server
&
Portal
RoutingIndication
RoutingResponse
RoutingIndication (multicast)
RoutingResponse
Abbildung 10.5 – Route Update
10.4 IAPP Service Primitiven
Der vorliegende Pre-Draft beschreibt eine Reihe von Funktionen, welche das IAPP
bereitstellen muss. Diese werden nun einzeln beschrieben. Die Funktionen erfordern
teilweise das Versenden von Paketen. Diejenigen Pakete, die IAPP-spezifisch sind,
werden im nachfolgenden Kapitel 10.5 beschrieben.
10.4.1 IAPP-INITIATE.request
Diese Funktion veranlasst einerseits die Initialisierung der IAPP Datenstrukturen, der
Funktionen und des Protokolls, andererseits die Registrierung des Access Points beim
Distribution System.
IAPP-INITIATE.request {
SSID;
//
BSSID;
//
Registration Service} //
//
//
Marco Studer
Walter von Arx
Name des ESS, bei dem sich AP anmeldet
MAC-Adresse des 802.11 Interface des AP
URL des Servers, welcher für
Registrationen innerhalb des ESS zuständig
ist
Seite 49 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
Verwendet wird diese Funktion von einer externen Management Station sobald ein AP
neu initialisiert werden soll. Alle Informationen in den Access Points eigenen
Datenstrukturen gehen dabei verloren. In der Folge findet der AP selbständig den
Registrierungsdienst des Distribution Systems. Dabei findet ein Service Location
Protocol (SLP) Registrierungs-Handshake statt. Das Verfahren wird in RFC 2608 [24]
beschrieben.
10.4.2 IAPP-INITIATE.confirm
Mit dieser Service Primitive wird der externen Management Station mitgeteilt, dass die
durch IAPP-INITIATE.request ausgelöste Aktion abgeschlossen worden ist.
IAPP-INITIATE.confirm {
Status}
// Ergebnis der Funktion IAPP-INITIATE.request
Folgende Werte können dabei als Status übermittelt werden:
§
§
§
§
§
§
SUCCESSFUL
REGISTRATION_SERVICE_NOT_FOUND
ESS_NOT_FOUND
MAC_ADDRESS_IN_USE
UNKNOWN_ERROR
TIMEOUT
Ausgeführt wird diese Funktion sobald der SLP Registrierungs-Handshake
abgeschlossen ist. Der Empfänger der Meldung muss den übergebenen Statuswert
überprüfen und dementsprechend reagieren. Die Aktionen, welche die einzelnen
Statuswerte nach sich ziehen, sind im Rahmen des Pre-Drafts nicht näher beschrieben.
10.4.3 IAPP-TERMINATE.request
Diese Funktion veranlasst das IAPP seine Funktionen zu deaktivieren. Dazu melden
sich der angesprochene Access Point vom Distribution System ab.
IAPP-TERMINATE.request {
Registration Service} // URL des Servers, welcher für
// Registrationen innerhalb des ESS zuständig
// ist
Nach Erhalt von IAPP-TERMINATE.request kappt der AP die Verbindung zu allen
angemeldeten Stationen und meldet sich mittels SLP Registrierung-Handshake vom
Distribution System ab, d.h. er quittiert seine IAPP-Dienste.
Marco Studer
Walter von Arx
Seite 50 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
10.4.4 IAPP-TERMINATE.confirm
Hierbei handelt es sich um die Bestätigung, dass die von IAPP-TERMINATE.request
ausgelöste Aktion abgeschlossen worden ist.
IAPP-TERMINATE.confirm {
(?) Status}
// Ergebnis der Funktion IAPP-TERMINATE.request
Einerseits sind im vorliegenden Pre-Draft [19] keine Parameter für diese Funktion
spezifiziert. Andererseits wird geschrieben, dass eine externe Management Station als
Empfänger der Nachricht den Statuswert überprüfen und entsprechend reagieren soll.
Höchstwahrscheinlich ist die Angabe des Statuswerts beim Verfassen des Pre-Drafts
vergessen worden.
10.4.5 IAPP-ADD.request
IAPP-ADD.request wird verwendet, sobald eine Mobile Station die Zuweisung zu einem
Access Point verlangt. Als Folge davon wird eine Meldung auf das Distribution System
gegeben, welche dessen Bridge Forwarding Tabellen aktualisieren soll.
IAPP-ADD.request {
MAC-Adresse;
Sequenznummer}
// MAC-Adresse der Mobile Station
// Von der Mobile Station übermittelte Nummer
Eventuell sollte zusätzlich die für die Station gültige Pfad-Identifikation verwendet
werden. Dies ist der Fall, sofern diese vom MLME unterstützt wird. Zweck von MLME ist
das Mapping von MAC SAP Services zu Services, welche vom IAPP benötigt werden.
Die einzelnen Funktionen sind kurz in [21] beschrieben, wir sind aber nicht weiter auf
dieses Thema eingegangen.
Nach Erhalt dieser Meldung wird einerseits wie bereits erwähnt ein Paket zur
Aktualisierung der Bridge Forwarding Tabellen auf das Distribution System gegeben.
Dabei handelt es sich um ein IAPP ADD-notify Paket, dessen Format im Kapitel 10.5
genauer beschrieben wird. Andererseits muss auch das gesamte DS über die
Zuweisung der Mobile Station zum Access Point in Kenntnis gesetzt werden.
Marco Studer
Walter von Arx
Seite 51 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
10.4.6 IAPP-ADD.confirm
Hierbei handelt es ich um die Bestätigung einer IAPP-ADD.request Meldung.
IAPP-ADD.confirm {
Status}
// Ergebnis der Funktion IAPP-ADD.request
Der Statuswert soll wiederum von einer externen Management Station überprüft und
darauf reagiert werden. Abgesehen von SUCCESSFUL sind jedoch keine weiteren
Statuswerte angegeben.
Als Folge dieser Nachricht sollen nun alle an die Mobile Station adressierten Pakete an
den entsprechenden Access Point gesendet werden.
10.4.7 IAPP-ADD.indication
Diese Funktion wird verwendet, um einer externen Management Einheit mitzuteilen,
dass eine Zuweisung zwischen Mobile Station und Access Point erfolgt ist.
IAPP-ADD.indication {
MAC-Adresse}
// MAC-Adresse der Mobile Station
Ausgeführt wird diese Funktion nach dem Empfang eines IAPP ADD-notify Paketes
(Kapitel 10.5). Der AP, welcher diese Meldung empfängt, sollte die Zuweisung von
Mobile Station zu Access Point selbst nochmals überprüfen.
10.4.8 IAPP-REMOVE.request
Verwendung findet diese Service Primitive sobald sich eine Mobile Station von einem
Access Point abmeldet. Der Autor des Pre-Drafts ist nicht schlüssig, ob diese Funktion
im Rahmen des IAPP notwendig ist. Eventuell kann diese Aufgabe vom AP ohne
Hinzuziehen des IAPP erledigt werden.
IAPP-REMOVE.request {
MAC-Adresse}
// MAC-Adresse der Mobile Station
Als Folge sollte das DS davon in Kenntnis gesetzt werden, dass die Assoziation
zwischen Mobile Station und AP nicht mehr gültig ist.
Marco Studer
Walter von Arx
Seite 52 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
10.4.9 IAPP-REMOVE.confirm
Diese Service Primitive wird benötigt, um die Beendung der Aktion, ausgelöst durch
IAPP-REMOVE.request, zu signalisieren. Der Pre-Draft macht keine Aussage über
deren Semantik. Die Funktion ist nur notwendig, falls IAPP-REMOVE.request wirklich
benötigt wird.
Als Folge sollten Frames, welche für die betreffende Mobile Station bestimmt sind, nicht
mehr weitergeleitet werden.
10.4.10 IAPP-REMOVE.indication
Damit wird anderen Access Points angezeigt, dass die IAPP-REMOVE-Operationen
erfolgreich durchgeführt worden ist. Die Funktion ist nur notwendig, falls IAPPREMOVE.request wirklich benötigt wird. Weitere Angaben sind im Pre-Draft nicht zu
finden.
10.4.11 IAPP-MOVE.request
Durchlaufen wird diese Prozedur falls eine Mobile Station die Zelle wechselt, d.h. sich
bei einem neuen AP anmeldet. Als Folge davon wird ein Frame an das Distribution
System gesendet, welches die Aktualisierung der Bridge Forwarding Tabellen
veranlasst.
IAPP-MOVE.request {
MAC-Adresse;
Sequenznummer;
Alter AP}
//
//
//
//
MAC-Adresse der Mobile Station
Wert von neuem AP zu finden im Reassociation
Request Frame
MAC-Adresse des vorgängig assoziierten APs
Nach Erhalt einer solchen Meldung müssen mehrere Aktionen ausgelöst werden.
Zuerst müssen, wie schon erwähnt, alle Bridge Forwarding Tabellen im Distribution
System ein Update erhalten. Weiter sollte dem DS die neue Assoziation zwischen
Mobile Station und neuem Access Point mitgeteilt werden. Ausserdem muss der neue
AP alle Statusinformationen bezüglich Mobile Station vom alten AP abrufen. Dies
geschieht durch das Versenden eines IAPP MOVE-notify Paketes an den alten AP,
beschrieben in Kapitel 10.5. Dies macht eventuell einen Request an den
Registrierungs-Dienst notwendig.
Marco Studer
Walter von Arx
Seite 53 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
10.4.12 IAPP-MOVE.confirm
Hierbei handelt es sich um eine Bestätigung von IAPP-MOVE.request.
IAPP-MOVE.confirm {
MAC-Adresse;
Context Blob;
Status}
//
//
//
//
MAC-Adresse der Mobile Station
Mobile Station Context übermittelt vom
alten AP
Resultat von IAPP-MOVE.request
Falls der Statuswert = SUCCESSFUL ist, werden Informationen übermittelt, andernfalls
ist der Context Blob = null.
Neben SUCCESSFUL sind als gültige Statuswerte noch folgende Werte vorgesehen:
§
§
§
OLD_AP_NOT_VALID
MAC_ADDRESS_EQUAL_TO_OLD_AP
TIMEOUT
Angezeigt wird hier die Vollendung der Aktion aufgrund IAPP-MOVE.request. Zur Folge
hat dies, dass das Forwarding der Frames zum richtigen AP bewerkstelligt wird, sofern
der Statuswert = SUCCESSFUL ist.
10.4.13 IAPP-MOVE.indication
Dadurch wird angezeigt, dass eine Mobile Station sich bei einem anderen AP
angemeldet hat.
IAPP-MOVE.indication {
MAC-Adresse;
// MAC-Adresse der Mobile Station
AP Adresse}
// AP, der IAPP MOVE-notify Paket geschickt hat
Ausgeführt wird diese Service Primitive als Folge eines erhaltenen IAPP MOVE-notify
Paketes. Dadurch leitet der zuvor mit der Mobile Station assoziierte Access Point alle
seine Informationen an den neu assoziierten AP weiter. Dies geschieht mittels der
IAPP-MOVE.response Funktion.
Marco Studer
Walter von Arx
Seite 54 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
10.4.14 IAPP-MOVE.response
Benötigt wird diese Funktion zur Übermittlung von spezifischen Daten über eine Mobile
Station vom alten zum neuen Access Points im Falle eines Handovers.
IAPP-MOVE.response {
MAC-Adresse;
// MAC-Adresse der Mobile Station
AP Adresse;
// Adresse des AP, bei dem Mobile Station
// angemeldet
Context Blob}
// Mobile Station Context übermittelt
// vom alten AP
Auslöser ist hierbei die Service Primitive IAPP-MOVE.indication. Alle Informationen
werden dabei mit Paketen vom Format IAPP MOVE-response versendet. Dieses
Paketformat wird im Rahmen von Kapitel 10.5 kurz beschrieben.
10.4.15 IAPP-Config-READ.request
Mit dieser Funktion ist es möglich, Informationen bezüglich der allgemeinen
Konfiguration des Netzes abzufragen oder konfigurierbare Parameter des Netzes zu
übermitteln. Beispielsweise kann damit die aktuelle BSSID ermittelt werden. Genauere
Informationen sind im vorliegenden Pre-Draft nicht zu finden.
10.4.16 IAPP-Config-READ.confirm
Der Zweck dieser Funktion ist die Bestätigung des Erhalts der angeforderten
Informationen. Dabei soll ein Statuswert eine Aussage über die Güte der erhaltenen
Daten machen und dieser auch ausgewertet werden. Genauere Informationen sind im
vorliegenden Pre-Draft nicht zu finden.
Marco Studer
Walter von Arx
Seite 55 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
10.5 IAPP Messages
Gemäss dem Pre-Draft vom März 2001 [19] sind vier verschiedene Paketformate
beschrieben. Dabei handelt es sich zuerst einmal um die Beschreibung eines
allgemeinen IAPP-Pakets. Die anderen drei Paket-Formate beschreiben das Datenfeld
des allgemeinen IAPP-Pakets für verschiedene Arten von Meldungen.
Der ganze Abschnitt des Pre-Drafts scheint alles andere als vollendet zu sein. So sind
zum einen nur ein Bruchteil der geforderten Meldungen beschrieben, zum anderen
fehlen teilweise Längenangaben zu den einzelnen beschriebenen Feldern.
10.5.1 Allgemeines IAPP Paket-Format
IAPP Pakete sollen grundsätzlich per UDP transportiert werden, d.h. bei der folgenden
Struktur handelt es sich um das Nutzdaten-Feld einer UDP-Message. Verschickt wird
solch ein Paket sobald ein Access Point ein Reassociate Paket einer Mobile Station
erhält.
IAPP Version
1 Byte
Command
1 Byte
Daten
0 – n Bytes
Abbildung 10.6 – Format einer IAPP-Meldung
Das Versionsfeld kennzeichnet die verwendete Version des IAPP. Demzufolge
beschreibt dieses Feld die Struktur des restlichen Paketes.
Das Command-Feld kann bisher folgende definierte Werte enthalten:
Wert
0
1
2
3 – 255
Bedeutung (Meldung)
ADD-Notify
MOVE-Notify
MOVE-Response
Reserviert
Der Inhalt des Datenfeldes ist je nach Art der Meldung unterschiedlich und wird im
Folgenden genauer beschrieben.
Marco Studer
Walter von Arx
Seite 56 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
10.5.2 ADD-Notify Paket
Diese Meldung wird von einem Access Point auf dem Distribution System verschickt,
sobald sich eine Mobile Station bei ihm angemeldet hat. Ziel dabei ist es, alle anderen
Access Points im ESS zu informieren, worauf diese ihre Routing Tabellen aktualisieren
können. Verwendet wird dabei die MAC-Adresse des Mobile Clients, so dass auch
Layer 2 Geräte wie Bridges ihre Tabellen auffrischen können. Um auch in einem
geswitchten LAN alle Hosts eines Subnetztes zu erreichen wird die Meldung per
Broadcast mit der Sourceadresse 0.0.0.0 versendet.
Adresslänge
Pad
MAC-Adresse
Sequenz-Nummer
Abbildung 10.7 – Format einer ADD-Notify Meldung
Die einzelnen Felder haben dabei folgende Bedeutung:
Feld
Adresslänge
Pad
MAC-Adresse
Sequenz-Nummer
Bedeutung
8 Bit; Anzahl Oktette der MAC-Adresse
Reserviert; vorerst = 0
MAC-Adresse der assoziierten Mobile Station
Wert im Bereich 0 – 4095
10.5.3 MOVE-Notify Paket
Versendet wird dieses Paket vom neu assoziierten Access Point einer Mobile Station.
Damit wird dem vorher assoziierten Access Point mitgeteilt, dass die Mobile Station
nicht mehr seiner Zelle zugeodnet ist.
Adresslänge
Pad
MAC-Adresse
Sequenz-Nummer
Abbildung 10.8 – Format einer MOVE-Notify Meldung
Die Bedeutungen der einzelnen Felder ist analog zu der ADD-Notify Message.
Marco Studer
Walter von Arx
Seite 57 / 83
Beschreibung IAPP
PA2 – Wireless LAN AP unter Linux
10.5.4 MOVE-Response Paket
Diese Meldung wird als Antwort auf die MOVE-Notify Meldung verschickt. Gesendet
wird es vom Empfänger der MOVE-Notify Meldung direkt zu deren Sender.
Adresslänge
Pad
MAC-Adresse
Länge des Context Blob
Context Blob
Abbildung 10.9 – Format einer MOVE-Response Meldung
Folgende Tabelle gibt Aufschluss über die einzelnen Felder.
Feld
Adresslänge
Pad
MAC-Adresse
Länge d. Context Blob
Context Blob
Bedeutung
8 Bit; Anzahl Oktette der MAC-Adresse
Reserviert; vorerst = 0
MAC-Adresse der assoziierten Mobile Station
16 Bit; Anzahl Oktette im Context Blob
Struktur gemäss nachfolgender Beschreibung
Beim Context Blob Feld handelt es sich um eine beliebige Anzahl von
Informationsstrukturen nach Abbildung 10.10.
Element Identifier
Länge
Information
Abbildung 10.10 – Informationsstruktur
Der Element Identifier bezeichnet eindeutig die übermittelte Information. Spezifiziert
werden diese vom IEEE Registration Service, wobei im Pre-Draft keine näheren
Angaben darüber gemacht werden. Die Länge des Feldes beträgt 2 Byte.
Das Längenfeld beschreibt die Länge des Informationsfeldes und ist seinerseits 2 Byte
lang. Der Inhalt des Informationsfeldes ist nicht weiter beschrieben. Es wird sich dabei
aber höchstwahrscheinlich um eine Beschreibung zum Element Identifier handeln.
Marco Studer
Walter von Arx
Seite 58 / 83
Ausblick über weiteres Vorgehen
PA2 – Wireless LAN AP unter Linux
11 Ausblick über weiteres Vorgehen
Um diese Arbeit sinnvoll weiterführen zu können, muss davon ausgegangen werden,
dass die benötigte Hardware einwandfrei arbeitet. Im Idealfall sollte das Netz schon zu
Beginn der Arbeit korrekt aufgebaut sein. Dadurch müssten sich die Mitglieder des
Projektteams nicht mit Hardware-Problemen herumschlagen.
Eine weiterführende Arbeit müsste zum Ziel haben das IAPP Protokoll komplett zu
implementieren. Dazu müsste zuerst untersucht werden, wie weit die Implementationen
dieses Protokolls vorangeschritten sind. Da zum jetzigen Zeitpunkt keine solchen
gefunden werden konnten, muss davon ausgegangen werden, dass die Arbeit eine
komplette Implementation beinhalten sollte, was sicher die gesamte Zeit einer
Projektarbeit benötigt.
Weiter schlagen wir vor, bei einer weiterführenden Arbeit nicht mit den Xircom Ethernet
Karten zu arbeiten, da wir mit den 3COM Karten keine solchen Probleme feststellten.
Wir konnten diese Karten jedoch nicht austesten, da wir sie nur für kurze Zeit zur
Verfügung hatten. Weiter sollte bei Verwendung von Microsoft Windows nicht mit
Windows 2000 gearbeitet werden, ausser Siemens stellt neue Treiber für ihre Karten
zur Verfügung. Wir empfehlen hier die Nutzung von Windows 98.
Die Access Points sollten als weitere Verbesserung nicht in einem Laptop aufgesetzt
werden. Es wäre sicher besser diese in einem Desktop Computer zu installieren. Mit
den richtigen PC Kartenadapter ist dies sicher relativ schnell möglich. Dieser Aufbau
würde auch eher die reale Situation eines WLANs simulieren.
Marco Studer
Walter von Arx
Seite 59 / 83
Schlusswort
PA2 – Wireless LAN AP unter Linux
12 Schlusswort
Unsere Projektarbeit Wireless LAN Basisstation unter Linux ist eine Weiterführung
zweier Projektarbeiten. Als erstes baut sie auf die PA "Wireless LAN basierend auf
Cellular IP" und zum zweiten auf die Arbeit "Implementation eines IEEE 802.11b
Sniffers" auf.
Laut Aufgabenstellung sollten diese beiden Arbeiten gezeigt haben, dass die Treiber
unter Linux recht problemlos in Betrieb zu nehmen sind. Dies bestätigte sich für die
Karte von Orinoco. Leider müssen wir hier schreiben, dass die Intersil Karte von
Siemens nicht so einfach zum Arbeiten zu überreden ist. Die Installation als Base
Station ist uns dank der Hilfe von Herrn D. Anklin recht schnell geglückt. Ein weiteres
Problem mit den Siemens Karten war, dass wir die für diese Arbeit geplanten Siemens
Lucent Karten, erst in der vierten Projektwoche zu Gesicht bekamen. Diese wurden in
einer abendlichen Aktion von Herrn Steffen über ominöse Wege via Bahnhof Zürich
Altstetten zu Marco Studer nach Hause überbracht.
Doch leider konnten wir trotz dieses Einsatzes noch nicht mit diesen Karten arbeiten.
Denn erst einige Tage später teilte uns die Firma Siemens Schweiz AG mit, dass wir die
zum Aufsetzten einer Base Station benötigte Firmware überhaupt nicht erhalten, da wir
keine Siemens-Mitarbeiter sind. An dieser Stelle müssen wir ganz klare Kritik an die
Verantwortlichen richten, welche für die Besorgung dieser Karten zuständig waren. Wir
sind der Meinung, diese Karten und die benötigte Software hätten schon zum Zeitpunkt
des Projektstarts zur Verfügung stehen sollen.
Da wir, dank Herrn Müller, in der zweitletzten Woche die restlichen Probleme beseitigen
konnten, wäre diese Projektarbeit jetzt soweit, gestartet zu werden. Wir sind der
Meinung, dass die notwendigen Informationen zum Implementieren des IAPP Protokolls
vorhanden sind. Schon implementierte Versionen dieses Protokolls konnten wir jedoch
nicht auffinden. Eine weiterführende Arbeit müsste demzufolge diese Implementation
enthalten.
Diese Projektarbeit hatte aber nicht nur Schlechtes an sich. So lernten wir viel im
Umgang mit Linux, was auch zu unseren Erwartungen dieser PA gehörte. Auch lernten
wir die Welt des Wireless LAN kennen. Wir sahen, dass diese ganze Sache noch nicht
ganz ausgereift ist und sicher in Zukunft noch einige Verbesserungen durchlaufen
muss.
Wir danken hier auch unseren beiden Betreuern Herrn A. Steffen und Herrn T. Müller
für ihre tatkräftige Unterstützung. Sie gingen sogar soweit uns mit Pizzas zu bestechen,
um einen extra Einsatz an diesem Projekt zu forcieren.
Alles im allem bot uns diese Projektarbeit eine strenge aber auch interessante und
lehrreiche Zeit.
Winterthur, 5. Juli 2001
Marco Studer
Walter von Arx
............................
............................
Marco Studer
Walter von Arx
Seite 60 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
13 Anhang
13.1 Glossar
Begriff
Ad-hoc
AP
BSS
CSMA/CA
Erklärung
Modus für WLAN-Betrieb ohne Access Point
Access Point (=Basisstation)
Basic Service Set; WLAN-Zelle kontrolliert von einem Access Point
Carrier Sense Multiple Access with Collision Avoidance;
Zugriffsverfahren für IEEE 802.11 WLAN
DS
Distribution System; Backbone zur Venetzung der einzelnen APs
ESS
Extended Service Set; WLAN bestehend aus mehreren vernetzten
BSS
Handover
Wechsel der Zuordnung einer Station von einem AP zu einem
anderen
IAPP
Inter Access Point Protocol; Protokoll zur Kommunikation zwischen
APs
Infrastructure Modus für WLAN-Betrieb mit Access Point
MAC
Medium Access; unterster Layer im OSI-Modell, eindeutige
Adressierung durch Hardwarekennung der einzelnen Netzwerkkarten
Portal
Gateway für Umsetzung eines WLAN- auf einen Ethernet-Bereich
Registration Dienst zur Erfassung der WLAN- und Distribution System-Adressen
Service
aller APs und Beantwortung diesbezüglicher Anfragen; benötigt von
IAPP
Roaming
Vorgang der freien Bewegung inklusive Wechsel der WLAN-Zelle
einer Mobile Station innerhalb eines ESS
RSS
Route Resolution Server; kennt alle MAC-Adressen des WLANs und
deren aktuelle Zuordnung zu einem BSS
SLP
Service Location Protocol (RFC 2608); Protokoll zur Auflösung der
Adresse eines bestimmten Services
SSID
Service Set Identifier; eindeutige ID des BSS/ESS
STA
(Mobile) Station
WEP
Wired Equivalent Privacy; Methode zur Authentisierung
WLAN
Wireless LAN
Marco Studer
Walter von Arx
Seite 61 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
13.2 Zeitplan
Da wir immer wieder auf neue Probleme stiessen, mussten wir unseren Zeitplan
während der gesamten PA fortlaufend anpassen. Die unvorhergesehenen Probleme mit
den Ethernetkarten sorgten für einen Stillstand im Voranschreiten unserer Arbeit. Ein
Ansatz dieses Problem zu lösen, die Installation verschiedener PCMCIA Versionen,
verbrauchte eine weitere Woche. Schlussendlich ist aus dem Zeitplan ersichtlich, dass
in der zweitletzten Woche der Arbeit das Problem mit den Ethernetkarten gelöst werden
konnte.
Zeitplan - PA Wireless LAN unter Linux
Ausgabe Projektarbeit
Abgabe
Woche 21
Woche 22
Woche 23
Woche 24
Mo Di Mi Do Fr Mo Di Mi Do Fr Mo Di Mi Do Fr Mo Di Mi Do Fr
■
Studium PA-Dokus
Studium WLAN
Installation PCs (Linux/Windows 2000)
Aufsetzen Mobile Station (Orinoco)
Aufsetzen Mobile Station (Intersil)
Aufsetzen Base Station (Intersil)
Inbetriebnahme Ethernet
Test verschiedener PCMCIA Versionen
Studium IAPP
Erstellen Dokumentation
Zeitplan - PA Wireless LAN unter Linux
Woche 25
Woche 26
Woche 27
Mo Di Mi Do Fr Mo Di Mi Do Fr Mo Di Mi Do Fr
Ausgabe Projektarbeit
Abgabe
■
Studium PA-Dokus
Studium WLAN
Installation PCs (Linux/Windows 2000)
Aufsetzen Mobile Station (Orinoco)
Aufsetzen Mobile Station (Intersil)
Aufsetzen Base Station (Intersil)
Inbetriebnahme Ethernet
Test verschiedener PCMCIA Versionen
Studium IAPP
Erstellen Dokumentation
Abbildung 13.1 – Zeitplan der PA
Marco Studer
Walter von Arx
Seite 62 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
13.3 Arbeitsteilung
Wir konnten nicht, wie in einem reinen Softwareprojekt gut möglich, eine wirkliche
Aufgabenteilung vornehmen. Wir haben uns beide individuell in die zu bearbeitende
Materie eingearbeitet. Beim Studium der Unterlagen zu den einzelnen Karten konnten
wir eine kleine Teilung vornehmen. Dabei konzentrierte sich M. Studer mehr auf die
Siemens Intersil Karten und W. von Arx auf die Orinoco Lucent Karten. Bei der
Installation dieser Karten arbeiteten wir aber wieder zusammen. Stellte sich uns ein
Problem in den Weg, so versuchten wir dieses immer gemeinsam zu lösen. Bei der
Erstellung der Dokumentation teilten wir die einzelnen Kapitel untereinander auf.
Marco Studer
Walter von Arx
Seite 63 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
13.4 Verwendetes Material
Das ZHW stellte uns folgende Hardware für unser Projekt zur Verfügung:
Menge
4
2
3
1
2
2
1
4
1
Bezeichnung
Notebook
PC
WLAN-Karte
WLAN-Karte
WLAN-Karte
WLAN-Karte
WLAN AP
Netzwerkkarten
Switch
Marco Studer
Walter von Arx
Marke
Toshiba
Siemens Intersil
D-LINK
Lucent Orinoco
Siemens Lucent
Siemens
Xircom
CentreCom
Modell
Satellite S2650XDVD/6.0
Pentium III / 450 MHz
I-GATE 11M
Air DWL-650
128RC4 Gold, World PCMCIA Card
I-GATE 11M
I-GATE 11M ISDN AP
CreditCard Ethernet 10/100-Ready
8126XL 10 Base-T/100 Base-TX,
Fast Ethernet Switch
Seite 64 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
13.5 Quellenangabe
13.5.1 Websites
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
Wireless LAN resources for Linux
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/
Linux Wireless LAN Howto
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/#howto
AbsoluteValue Systems – Linux Wlan Project
http://www.linux-wlan.com/linux-wlan/index.html
ORiNOCO Home (Support & Documentation)
http://www.orinocowireless.com/
Wireless Tools
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
Linux PCMCIA Card Services Project
http://sourceforge.net/projects/pcmcia-cs
Linux WLAN Project – FAQ
http://linux.grmbl.be/wlan/
Download Programm für Base Station Firmware
http://www.handhelds.org/cgi-bin/viewcvs.cgi/linux/wlan-ng/src/prism2
/download/?only_with_tag=MAIN
Wireless Howto
http://www.linuxdoc.org/HOWTO/Wireless-HOWTO.html
Siemens I-Gate
http://www.siemens.ch/icw/produkte/prod_igate.htm
IEEE Standards Association Home Page
http://standards.ieee.org/
D-Link TechSupport
http://support.dlink.com/download
13.5.2 Foren und Mailinglisten
[13]
[14]
Forum zum Thema Wireless Adapters
http://sourceforge.net/forum/forum.php?forum_id=33428
Linux-WLAN Devel Mailinglist
http://archives.neohapsis.com/archives/dev/linux-wlan/
Marco Studer
Walter von Arx
Seite 65 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
13.5.3 Bücher, Normen, Dokumentationen
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
Dokumentation PA „Wireless LAN basierend auf Cellular IP“
Begleit-CD: Verzeichnis \Quellen\PA-Dokus\WLAN auf Cellular IP
Dokumentation PA „802.11 Paket Sniffer“
Begleit-CD: Verzeichnis \Quellen\PA-Dokus\802.11 Paket Sniffer
IEEE Standard 802.11-1997 Part 11 – Wireless LAN MAC and PHYspecifications
The Institute of Electrical and Electronics Engineers, Inc.
345 East 47th Street, New York, NY 10017-2394, USA
ISBN 1-55937-935-9
IEEE 802.11 Tutorial
Begleit-CD: Verzeichnis \Quellen\802.11 WLAN\
IEEE 802.11f IAPP Pre-Draft
Begleit-CD: Verzeichnis \Quellen\Iapp\Predraft
IEE 802.11f Centralized Dynamic Route Resolution Protocol over UDP/IP
Begleit-CD: Verzeichnis \Quellen\Iapp\Dynamic Route Resolution
IEEE 802.11f IAPP Service Mappings
Begleit-CD: Verzeichnis \Quellen\Iapp\Service Mappings
IEEE 802.11f Inter-Access Point Protocol Enhancements
Begleit-CD: Verzeichnis \Quellen\Iapp\IAPP Enhancements
Diverse weitere IEEE 802.11f – Dokumente
Begleit-CD: Verzeichnis \Quellen\Iapp\Vermischtes
Service Location Protocol Version 2, RFC 2608.txt
Begleit-CD: Verzeichnis \Quellen\RFCs\Slp
Kurzabriss über die AP-Installation unter Linux von D. Anklin (Siemens CH AG)
Begleit-CD: Verzeichnis \Quellen\Linux\Installationsanleitung AP
Marco Studer
Walter von Arx
Seite 66 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
13.6 Verzeichnisstruktur der beiliegenden CD
Abbildung 13.2 – Verzeichnisstruktur der CD
Marco Studer
Walter von Arx
Seite 67 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
13.7 Konfigurationsfiles
13.7.1 Auszüge aus der Datei config
# PCMCIA Card Configuration Database
#
# config 1.145 2000/11/07 21:20:05 (David Hinds)
#
# config.opts and configuration files for add-on drivers (*.conf)
# are included at the very end
#
# Device driver definitions
#
device "3c589_cs"
class "network" module "3c589_cs"
device "ibmtr_cs"
class "network" module "ibmtr_cs"
device "nmclan_cs"
class "network" module "nmclan_cs"
device "oti12_cs"
class "cdrom" module "oti12_cs"
device "pcnet_cs"
class "network" module "net/8390", "pcnet_cs"
device "smc91c92_cs"
class "network" module "smc91c92_cs"
device "wavelan_cs"
class "network" module "wavelan_cs"
# NEU FUER UNTERSTUETZUNG DES INTERSIL-TREIBERS
device "prism2_cs"
class "wvlan-ng" module "prism2_cs"
# class "network" module "prism2_cs"
device "wvlan_cs"
class "network" module "wvlan_cs"
device "memory_cs" needs_mtd
class "memory" module "memory_cs"
device "ftl_cs" needs_mtd
class "ftl" module "ftl_cs"
device "serial_cs"
class "serial" module "serial_cs"
device "parport_cs"
class "parport" module "parport_cs"
device "qlogic_cs"
class "scsi" module "qlogic_cs"
Marco Studer
Walter von Arx
Seite 68 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
device "aha152x_cs"
class "scsi" module "aha152x_cs"
device "fdomain_cs"
class "scsi" module "fdomain_cs"
device "ide_cs"
class "ide" module "ide_cs"
device "fmvj18x_cs"
class "network" module "fmvj18x_cs"
device "netwave_cs"
class "network" module "netwave_cs"
device "xirc2ps_cs"
class "network" module "xirc2ps_cs"
device "3c574_cs"
class "network" module "3c574_cs"
device "3c575_cb"
class "network" module "cb_enabler", "3c575_cb"
device "apa1480_cb"
class "scsi" module "cb_enabler", "apa1480_cb"
device "tulip_cb"
class "network" module "cb_enabler", "tulip_cb"
device "memory_cb"
class "memory" module "cb_enabler", "memory_cb"
device "epic_cb"
class "network" module "cb_enabler", "epic_cb"
device "eepro100_cb"
class "network" module "cb_enabler", "eepro100_cb"
device "serial_cb"
class "serial" module "cb_enabler", "serial_cb"
device "ray_cs"
class "network" module "ray_cs"
device "airo_cs"
class "network" module "airo", "airo_cs"
device "pcilynx_cb"
class "ieee1394" module "cb_enabler", "pcilynx_cb"
#
# Ethernet adapter definitions
#
# weggelassen
#
# Wireless network adapters
#
card "Aironet PC4500"
manfid 0x015f, 0x0005
bind "airo_cs"
Marco Studer
Walter von Arx
Seite 69 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
card "Aironet PC4800"
manfid 0x015f, 0x0007
bind "airo_cs"
card "AT&T WaveLAN Adapter"
version "AT&T", "WaveLAN/PCMCIA"
bind "wavelan_cs"
card "Cabletron RoamAbout 802.11 DS"
version "Cabletron", "RoamAbout 802.11 DS"
bind "wvlan_cs"
card "Digital RoamAbout/DS"
version "Digital", "RoamAbout/DS"
bind "wavelan_cs"
card "ELSA AirLancer MC-11"
version "ELSA", "AirLancer MC-11"
bind "wvlan_cs"
card "Lucent Technologies WaveLAN Adapter"
version "Lucent Technologies", "WaveLAN/PCMCIA"
bind "wavelan_cs"
# Wireless Karten fuer unsere Projektarbeit
#
### D-Link DWL-650 WLAN-Karte, 11Mbps
card "D-Link DWL-650 11Mbps 802.11b WLAN Card"
version "D", "Link DWL-650 11Mbps WLAN Card", "Version 01.02"
bind "prism2_cs"
### Siemens I-GATE WLAN-Karte, 11 Mbps
card "Intersil Siemens I-GATE 11Mb/s"
version "INTERSIL", "I-GATE 11M PC Card / PC Card plus", "Version 01.02", ""
bind "prism2_cs"
### Siemens I-GATE WLAN-Karte, 11 Mbps
card "Intersil Siemens I-GATE 11Mb/s"
version "Siemens", "I-GATE 11M PC Card B", "Version 01.01", ""
bind "prism2_cs"
### Allgemeine Intersil Prism2-Karten (wird verwendet, falls nicht
#auskommentiert)
#card "Intersil PRISM2 Reference Design 11Mb/s WLAN Card"
# manfid 0x0156, 0x0002
# bind "prism2_cs"
##################
card "Lucent Technologies WaveLAN/IEEE Adapter"
version "Lucent Technologies", "WaveLAN/IEEE"
bind "wvlan_cs"
card "MELCO WLI-PCM-L11"
version "MELCO", "WLI-PCM-L11"
bind "wvlan_cs"
card "NCR WaveLAN Adapter"
version "NCR", "WaveLAN/PCMCIA"
bind "wavelan_cs"
Marco Studer
Walter von Arx
Seite 70 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
card "NCR WaveLAN/IEEE Adapter"
version "NCR", "WaveLAN/IEEE"
bind "wvlan_cs"
card "RayLink PC Card WLAN Adapter"
manfid 0x01a6, 0x0000
bind "ray_cs"
card "Xircom CreditCard Netwave"
version "Xircom", "CreditCard Netwave"
bind "netwave_cs"
#
# Modems and other serial devices
#
# NOTE: most modems do not need explicit entries here, because they
# are correctly identified using the following generic entry.
#
# weggelassen
#
# Memory cards
#
# weggelassen
#
# Memory Technology Drivers
#
# weggelassen
#
# Token Ring adapters
#
# weggelassen
#
# SCSI host adapters
#
# weggelassen
#
# IEEE1394/FireWire cards
#
# weggelassen
#
# Multifunction cards
#
# weggelassen
#
# ATA/IDE fixed disk devices
#
# weggelassen
Marco Studer
Walter von Arx
Seite 71 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
#
# Non-ATA/IDE CD-ROM's
#
# weggelassen
#
# Miscellaneous card definitions
#
# weggelassen
#
# CardBus cards
#
# weggelassen
# Include configuration files for add-on drivers
# weggelassen
# Include local configuration settings
#weggelassen
Marco Studer
Walter von Arx
Seite 72 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
13.7.2 Datei wlan-ng
#! /bin/sh
#
# etc/pcmcia/wlan-ng
#
# Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved.
# -------------------------------------------------------------------#
# linux-wlan
#
#
The contents of this file are subject to the Mozilla Public
#
License Version 1.1 (the "License"); you may not use this file
#
except in compliance with the License. You may obtain a copy of
#
the License at http://www.mozilla.org/MPL/
#
#
Software distributed under the License is distributed on an "AS
#
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
#
implied. See the License for the specific language governing
#
rights and limitations under the License.
#
#
Alternatively, the contents of this file may be used under the
#
terms of the GNU Public License version 2 (the "GPL"), in which
#
case the provisions of the GPL are applicable instead of the
#
above. If you wish to allow the use of your version of this file
#
only under the terms of the GPL and not to allow others to use
#
your version of this file under the MPL, indicate your decision
#
by deleting the provisions above and replace them with the notice
#
and other provisions required by the GPL. If you do not delete
#
the provisions above, a recipient may use your version of this
#
file under either the MPL or the GPL.
#
# -------------------------------------------------------------------#
# Inquiries regarding the linux-wlan Open Source project can be
# made directly to:
#
# AbsoluteValue Systems Inc.
# info@linux-wlan.com
# http://www.linux-wlan.com
#
# -------------------------------------------------------------------#
# Portions of the development of this software were funded by
# Intersil Corporation as part of PRISM(R) chipset product development.
#
# -------------------------------------------------------------------# [MSM]: Moved here because wlan/shared may is intended to be used by
# other scripts
wlan_usage ()
{
echo "usage: wlan-ng [action] [device name] [debug]"
echo " actions: start|resume, stop|suspend, check|cksum|restart"
echo " debug : enables shell debug"
exit 1
}
if [ "$3" = "debug" ]; then set -x ; fi
Marco Studer
Walter von Arx
Seite 73 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
# Note: this 'shared' comes with the WLAN package
if [ -f /etc/wlan/shared ]; then . /etc/wlan/shared ; fi
# [MSM]: This test supplied by rlazarev, it's commented out due to pcmcia
#
stab file movement. This test needs to be 'functionized' and made a
#
little more robust.
#if [ ! -f /var/run/stab ] ; then
#
echo "Error: Possibly PCMCIA CS is not started";
#
wlan_usage;
#
exit 1;
#fi
# If number of args is less than 2 display usage
if [ $# -lt 2 ]; then wlan_usage ; fi
# Note: this 'shared' comes with the PCMCIA package
# ACTION=$1 and DEVICE=$2 are assigned in pcmcia/shared
if [ -f /etc/pcmcia/shared ] ; then . /etc/pcmcia/shared ; fi
# Get device attributes
get_info $DEVICE
HWADDR=`/sbin/ifconfig $DEVICE | sed -n -e 's/.*addr \(.*\)/\1/p'`
# Load site-specific settings
ADDRESS="$SCHEME,$SOCKET,$INSTANCE,$HWADDR"
. $0.opts
if [ -x /sbin/wlanctl-ng ] ; then WLANCTL=/sbin/wlanctl-ng ; fi
case "$ACTION" in
'start'|'resume')
#=======ENABLE========================================
# Do we want to init the card at all?
if ! is_true $WLAN_ENABLE ; then
exit 0
fi
#=======DOWNLOAD======================================
# If the card needs code/data downloaded, do it.
if is_true $WLAN_DOWNLOAD; then
if ! $WLAN_DOWNLOADER -r $WLAN_DLIMAGE $DEVICE ; then
echo Code/Data Download Failed.
exit 1
fi
fi
#=======USER MIB SETTINGS=============================
# Set the user specified MIB items.
for i in $USER_MIBS ; do
result=`$WLANCTL $DEVICE dot11req_mibset "mibattribute=$i"`
if [ $? = 0 ] ; then
eval $result
if [ $resultcode != "success" ] ; then
echo "Failed to set user MIB $i."
exit 1
fi
else
echo "Failed to set user MIB $i."
exit 1
fi
done
Marco Studer
Walter von Arx
Seite 74 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
#=======WEP===========================================
# Setup privacy
result=`$WLANCTL $DEVICE dot11req_mibget mibattribute=
dot11PrivacyOptionImplemented`
if [ $? = 0 ] ; then
eval $result
eval $mibattribute
else
echo "mibget failed."
exit 1
fi
if [ $dot11PrivacyOptionImplemented = "false" -a \
$dot11PrivacyInvoked = "true" ] ; then
echo "Cannot enable privacy, dot11PrivacyOptionImplemented=false."
exit 1
fi
if [ $dot11PrivacyOptionImplemented = "true" -a \
$dot11PrivacyInvoked = "true" ] ; then
$WLANCTL $DEVICE dot11req_mibset \
mibattribute=dot11WEPDefaultKeyID=$dot11WEPDefaultKeyID
$WLANCTL $DEVICE dot11req_mibset \
mibattribute=dot11ExcludeUnencrypted=$dot11ExcludeUnencrypted
$WLANCTL $DEVICE dot11req_mibset \
mibattribute=dot11PrivacyInvoked=$dot11PrivacyInvoked
if [ ${PRIV_GENSTR:-"empty"} != "empty" ] ; then
if [ ${PRIV_KEY128:-"false"} = "false" ]; then
keys=`$PRIV_GENERATOR $PRIV_GENSTR 5`
else
keys=`$PRIV_GENERATOR $PRIV_GENSTR 13`
fi
knum=0
for i in $keys ; do
$WLANCTL $DEVICE dot11req_mibset \
mibattribute=dot11WEPDefaultKey$knum=$i
knum=$[$knum + 1]
done
else
$WLANCTL $DEVICE dot11req_mibset \
mibattribute=dot11WEPDefaultKey0=$dot11WEPDefaultKey0
$WLANCTL $DEVICE dot11req_mibset \
mibattribute=dot11WEPDefaultKey1=$dot11WEPDefaultKey1
$WLANCTL $DEVICE dot11req_mibset \
mibattribute=dot11WEPDefaultKey2=$dot11WEPDefaultKey2
$WLANCTL $DEVICE dot11req_mibset \
mibattribute=dot11WEPDefaultKey3=$dot11WEPDefaultKey3
fi
fi
#=======MAC STARTUP=========================================
if is_true $IS_AP ; then
#=======AP STARTUP==================================
startcmd="$WLANCTL $DEVICE dot11req_start "
startcmd="$startcmd ssid=$APSSID"
startcmd="$startcmd bsstype=infrastructure"
startcmd="$startcmd beaconperiod=$APBCNINT"
startcmd="$startcmd dtimperiod=$APDTIMINT"
startcmd="$startcmd cfpollable=$APCFPOLLABLE"
startcmd="$startcmd cfpollreq=$APCFPOLLREQ"
startcmd="$startcmd cfpperiod=$APCFPPERIOD"
Marco Studer
Walter von Arx
Seite 75 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
startcmd="$startcmd cfpmaxduration=$APCFPMAXDURATION"
startcmd="$startcmd probedelay=$APPROBEDELAY"
startcmd="$startcmd dschannel=$APCHANNEL"
j=1
for i in $APBASICRATES ; do
startcmd="$startcmd basicrate$j=$i"
j=$[j + 1]
done
j=1
for i in $APOPRATES ; do
startcmd="$startcmd operationalrate$j=$i"
j=$[j + 1]
done
results=`$startcmd`
# Here's where it runs
if [ $? = 0 ]; then
eval $results
if [ $resultcode != "success" ] ; then
echo "AP not started, resultcode=$resultcode"
exit 1
else
echo "WLAN AP mode started"
fi
else
echo FAILED: $startcmd
exit 1
fi
WLAN_SCHEMESSID="$APSSID"
else
#=======STA STARTUP==================================
results=`$WLANCTL $DEVICE lnxreq_autojoin \
"ssid=$DesiredSSID" authtype=${AuthType:="opensystem"}`
if [ $? = 0 ]; then
eval $results
if [ ${resultcode:-"failure"} != "success" ]; then
echo 'error: Autojoin indicated failure!'
exit 1;
fi
fi
WLAN_SCHEMESSID="$DesiredSSID"
# ==========PCMCIA NETDEVICE=============================
# Append the SSID to the pcmcia scheme name
wlan_set_ssid_schemefile "$WLAN_SCHEMESSID"
# Call the normal network initialization
./network $1 $2
if [ ! $? ] ; then
echo "/etc/pcmcia/network initialization failed."
wlan_restore_schemefile
exit 1
fi
# Restore scheme file to it's prior contents
wlan_restore_schemefile
fi
#
#
#
#
#
#
==========AP Interface====================================
For AP, interface initialization depends on whether we're
routing or bridging. If routing, bring up the interface
using the standard pcmcia-cs network script (like a STA).
Note that routing APs will require that STAs have their
gateway address set to the AP's address.
Marco Studer
Walter von Arx
Seite 76 / 83
Anhang
#
#
#
#
#
PA2 – Wireless LAN AP unter Linux
If bridging, do NOT put the wlan MAC in promisc
mode. The code here will set up the bridge device and
set it up. NOTE: Physically ejecting either card while the bridge
is active commonly leaves a system unstable (or locked). Use
'cardctl eject' on the wlan device prior to removal.
if is_true $IS_AP ; then if is_true $IS_BRIDGE; then
if is_true $IS_OLDBRIDGE; then
ifconfig $APWIREDDEVICE promisc
ifconfig $DEVICE up
brcfg start
else
ifconfig $APWIREDDEVICE down
ifconfig $DEVICE down
brctl addbr $APBRIDGEDEVICE
brctl addif $APBRIDGEDEVICE $APWIREDDEVICE
brctl addif $APBRIDGEDEVICE $DEVICE
ifconfig $APWIREDDEVICE up 0.0.0.0
ifconfig $DEVICE up 0.0.0.0
ifconfig $APBRIDGEDEVICE up $AP_IPADDR
fi
else
# Just set up the AP interface like any other net
# device.
# ==========PCMCIA NETDEVICE=============================
# Append the SSID to the pcmcia scheme name
wlan_set_ssid_schemefile "$WLAN_SCHEMESSID"
# Call the normal network initialization
./network $1 $2
if [ ! $? ] ; then
echo "/etc/pcmcia/network initialization failed."
wlan_restore_schemefile
exit 1
fi
# Restore scheme file to it's prior contents
wlan_restore_schemefile
fi;fi
# Zuweisung der Netzwerkparameter
ifconfig $wlan_DEVICE $wlan_IPADDR netmask $wlan_NMASK broadcast
$wlan_BCAST
ifconfig $wlan_DEVICE up
;;
'stop'|'suspend')
# ==========AP BRIDGE====================================
if is_true $IS_AP ; then if is_true $IS_BRIDGE; then
if is_true $IS_OLDBRIDGE; then
brcfg stop
ifconfig $APWIREDDEVICE down
ifconfig $DEVICE down
else
ifconfig $APBRIDGEDEVICE down
ifconfig $DEVICE down
ifconfig $APWIREDDEVICE down
brctl delif $APBRIDGEDEVICE $APWIREDDEVICE
brctl delif $APBRIDGEDEVICE $DEVICE
brctl delbr $APBRIDGEDEVICE
fi
else
Marco Studer
Walter von Arx
Seite 77 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
./network $1 $2
fi
else
./network $1 $2
fi
;;
'check'|'cksum'|'restart')
# ==========STA ====================================
# Station just passes through for normal network device
# behavior. AP does nothing.
if ! is_true $IS_AP ; then
WLAN_SCHEMESSID="$dot11DesiredSSID"
# ==========PCMCIA NETDEVICE=============================
# Append the SSID to the pcmcia scheme name
wlan_set_ssid_schemefile "$WLAN_SCHEMESSID"
# Call the normal network initialization
./network $1 $2
if [ ! $? ] ; then
echo "/etc/pcmcia/network initialization failed."
wlan_restore_schemefile
exit 1
fi
# Restore scheme file to it's prior contents
wlan_restore_schemefile
fi
;;
*)
usage
;;
esac
exit 0
Marco Studer
Walter von Arx
Seite 78 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
13.7.3 Datei wlan-ng.conf
device "prism2_cs"
class "wlan-ng" module "prism2_cs"
##################
# Fuer unsere Projektarbeit erweitert
### D-Link DWL-650 WLAN-Karte, 11Mbps
card "D-Link DWL-650 11Mbps 802.11b WLAN Card"
version "D", "Link DWL-650 11Mbps WLAN Card", "Version 01.02"
bind "prism2_cs"
### Siemens I-GATE WLAN-Karte, 11 Mbps
card "Intersil Siemens I-GATE 11Mb/s"
version "INTERSIL", "I-GATE 11M PC Card / PC Card plus", "Version 01.02", ""
bind "prism2_cs"
### Siemens I-GATE WLAN-Karte, 11 Mbps
card "Intersil Siemens I-GATE 11Mb/s"
version "Siemens", "I-GATE 11M PC Card B", "Version 01.01", ""
bind "prism2_cs"
### Allgemeine Intersil Prism2-Karten (wird verwendet, falls nicht
#auskommentiert)
#card "Intersil PRISM2 Reference Design 11Mb/s WLAN Card"
# manfid 0x0156, 0x0002
# bind "prism2_cs"
##################
#Standard Eintrag
#card "Intersil PRISM2 Reference Design 11Mb/s 802.11b WLAN Card"
# version "INTERSIL", "HFA384x/IEEE"
# bind "prism2_cs"
card "Compaq WL100/200 11Mb/s 802.11b WLAN Card"
manfid 0x0138, 0x0002
bind "prism2_cs"
card "Samsung SWL2000-N 11Mb/s 802.11b WLAN Card"
manfid 0x0250, 0x0002
bind "prism2_cs"
card "Z-Com XI300 11Mb/s 802.11b WLAN Card"
manfid 0xd601, 0x0002
bind "prism2_cs"
card "ZoomAir 4100 11Mb/s 802.11b WLAN Card"
version "ZoomAir 11Mbps High", "Rate wireless Networking"
bind "prism2_cs"
card "Linksys WPC11 11Mbps 802.11b WLAN Card"
version "Instant Wireless ", " Network PC CARD", "Version 01.02"
bind "prism2_cs"
card "Addtron AWP-100 11Mbps 802.11b WLAN Card"
version "Addtron", "AWP-100 Wireless PCMCIA", "Version 01.02"
bind "prism2_cs"
Marco Studer
Walter von Arx
Seite 79 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
card "SMC 2632W 11Mbps 802.11b WLAN Card"
version "SMC", "SMC2632W", "Version 01.02"
bind "prism2_cs"
card "BroMax Freeport 11Mbps 802.11b WLAN Card"
version "Intersil", "PRISM 2_5 PCMCIA ADAPTER", "ISL37300P", "Eval-RevA"
bind "prism2_cs"
Marco Studer
Walter von Arx
Seite 80 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
13.7.4 Datei wlan-ng.opts
#! /bin/sh
# Wireless LAN adapter configuration
#
# etc/pcmcia/wlan-ng.opts
#
# Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved.
# -------------------------------------------------------------------#
# linux-wlan
#
#
The contents of this file are subject to the Mozilla Public
#
License Version 1.1 (the "License"); you may not use this file
#
except in compliance with the License. You may obtain a copy of
#
the License at http://www.mozilla.org/MPL/
#
#
Software distributed under the License is distributed on an "AS
#
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
#
implied. See the License for the specific language governing
#
rights and limitations under the License.
#
#
Alternatively, the contents of this file may be used under the
#
terms of the GNU Public License version 2 (the "GPL"), in which
#
case the provisions of the GPL are applicable instead of the
#
above. If you wish to allow the use of your version of this file
#
only under the terms of the GPL and not to allow others to use
#
your version of this file under the MPL, indicate your decision
#
by deleting the provisions above and replace them with the notice
#
and other provisions required by the GPL. If you do not delete
#
the provisions above, a recipient may use your version of this
#
file under either the MPL or the GPL.
#
# -------------------------------------------------------------------#
# Inquiries regarding the linux-wlan Open Source project can be
# made directly to:
#
# AbsoluteValue Systems Inc.
# info@linux-wlan.com
# http://www.linux-wlan.com
#
# -------------------------------------------------------------------#
# Portions of the development of this software were funded by
# Intersil Corporation as part of PRISM(R) chipset product development.
#
# -------------------------------------------------------------------#
# The address format is "scheme,socket,instance,hwaddr".
#
# -------------------------------------------------------------------WLAN_VERSION=0
WLAN_PATCHLEVEL=1
WLAN_SUBLEVEL=8
WLAN_EXTRAVERSION=-pre12
Marco Studer
Walter von Arx
Seite 81 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
case "$ADDRESS" in
#wlannoenable,*,*,*)
#
#=======ENABLE========================================
#
# Do we want to enable the card at all? Set to 'n' if you
#
# want the card initialized for normal operation. Helpful
#
# (re)loading flash or for test purposes.
#
WLAN_ENABLE=n
#;;
*,*,*,*)
#=======ENABLE========================================
# Do we want to enable the card at all? Set to 'n' if you
# want the card initialized for normal operation. Helpful
# (re)loading flash or for test purposes.
WLAN_ENABLE=y
don't
for
don't
for
#=======USER MIB SETTINGS=============================
# You can add the assignments for various MIB items
# of your choosing to this variable, separated by
# whitespace. The wlan-ng script will then set each one.
# Just uncomment the variable and set the assignments
# the way you want them.
USER_MIBS=""
#Für PA
#p2RoamingMode=2"
#p2MMTx=true \
#p2MMFixedLevel=2"
#=======WEP===========================================
# [Dis/En]able WEP. Settings only matter if PrivacyInvoked is true
dot11PrivacyInvoked=false
# true|false
dot11WEPDefaultKeyID=0
# 0|1|2|3
dot11ExcludeUnencrypted=true # true|false, in AP this means WEP
# is required for all STAs
# If PRIV_GENSTR is not empty, use PRIV_GENTSTR to generate
# keys (just a convenience)
PRIV_GENERATOR=/sbin/nwepgen # nwepgen, Neesus compatible
PRIV_KEY128=false
# keylength to generate
PRIV_GENSTR=""
# or set them explicitly.
dot11WEPDefaultKey0=
dot11WEPDefaultKey1=
dot11WEPDefaultKey2=
dot11WEPDefaultKey3=
Set genstr or keys, not both.
# format: xx:xx:xx:xx:xx
or
# xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
# e.g.
01:20:03:40:05
or
# 01:02:03:04:05:06:07:08:09:0a:0b:0c:0d
#=======STA START=====================================
# SSID is all we have for now
AuthType="opensystem"
# opensystem | sharedkey (requires WEP)
DesiredSSID="linux-wlan"
# Zuweisung der Netzwerkparameter
wlan_DEVICE=wlan0
#
wlan_IPADDR=160.85.24.130
#
wlan_NMASK=255.255.255.128
#
wlan_BCAST=160.85.24.255
#
#
Karte
IP-Adresse der WLAN-Karte
Netzmaske
Broadcast-Adresse
#=======DOWNLOAD======================================
# Do we need to download code/data to the card?
WLAN_DOWNLOAD=y
## Firmware wird auf die Karte geladen
WLAN_DOWNLOADER=/sbin/prism2dl
#Download Programm
WLAN_DLIMAGE=/etc/pcmcia/t10003c7.hex
#1.Firmware für BaseStation
WLAN_DLIMAGE=/etc/pcmcia/t10003c3.hex
#2.FW für BS Siemens Intersil
Marco Studer
Walter von Arx
Seite 82 / 83
Anhang
PA2 – Wireless LAN AP unter Linux
#=======AP START======================================
# If IS_AP is 'y', then the following settings will be
# used in the creation of a BSS with this station acting
# as the AP. If IS_AP is 'n', these settings are ignored.
IS_AP=y
## y|n
Es handelt sich um eine BS
IS_BRIDGE=n
# Are we a bridging AP?
IS_OLDBRIDGE=n
# Which kernel bridge code are we using?
APWIREDDEVICE=eth0
# Must be an ethernet device
APBRIDGEDEVICE=wlan0
## Bridge interface name
AP_IPADDR=160.85.24.130
## Bridge IP address (and only bridge)
APSSID="linux-wlan"
# SSID the AP will use, max 32 chars
APBCNINT=100
# Beacon interval (in Kus)
APDTIMINT=3
# DTIM interval (in beacons)
APCFPOLLABLE=false
# AP's CFP support (see table below)
APCFPOLLREQ=false
# AP's CFP support (see table below)
APCFPPERIOD=3
# CFP period, if CFP enabled(in beacons)
APCFPMAXDURATION=100
# CFP max length (in Kus)
APPROBEDELAY=100
# Not currently used
APCHANNEL=11
# DS channel for BSS (1-14, depends
#
on regulatory domain)
APBASICRATES="2 4"
# Rates for mgmt&ctl frames (in 500Kb/s)
APOPRATES="2 4 11 22"
# Supported rates in BSS (in 500Kb/s)
# Table of CFPOLL* values:
# CFPOLLABLE CFPOLLREQ AP Behavior
#---------------------------------------------------# false
false
No Point Coordinator (CFP) at AP
# false
true
CFP for delivery only (no polling)
# true
false
CFP delivery and polling
# true
true
Reserved, do not use
;;
esac
Marco Studer
Walter von Arx
Seite 83 / 83