Kommunikation – Labor Begleithandbuch zu den Versuchen 1-4
Transcription
Kommunikation – Labor Begleithandbuch zu den Versuchen 1-4
Funksysteme- und MobilKommunikation – Labor Begleithandbuch zu den Versuchen 1-4 Inhalt 1. Grundlagen .......................................................................................................................................... 3 1.1. Vorwort .................................................................................................................................... 3 1.2. IEEE 802.11 Wireless LAN ......................................................................................................... 3 1.2.1 Frequenzen ............................................................................................................................. 4 1.2.2 Übertragungsgeschwindigkeit- Theorie und Praxis................................................................ 4 1.2.3 Access Point und Anmeldung eines Clients ............................................................................ 4 1.2.4 PCF und DCF ........................................................................................................................... 5 1.2.5 IEEE 802.11n ........................................................................................................................... 6 1.3 Ad-Hoc Modus und Drahtlose Maschennetzwerke .................................................................. 8 1.3.1 802.11 Ad-Hoc Mode.............................................................................................................. 8 1.3.2 Drahtlose Maschennetzwerke................................................................................................ 9 1.4. Transportprotokolle ................................................................................................................. 9 1.4.1. TCP ......................................................................................................................................... 9 1.4.2. UDP ...................................................................................................................................... 10 2. Schnelleinführung Linux Shell ........................................................................................................... 11 3. Tools zur Hardware Konfiguration .................................................................................................... 14 3.1. Kontrolle des Interface Status ................................................................................................ 14 3.2. WLAN Interface deaktivieren und neu aufsetzen .................................................................. 15 3.3. Bestehendes Interface konfigurieren ..................................................................................... 16 3.4. WLAN Monitor Mode und Channel Hopping ......................................................................... 16 3.5. Verbindung zu einem Infrastruktur Netzwerk herstellen und beenden ................................ 17 Begleithandbuch V. 1-5 [email protected] 1 3.6.Verbindung zu einem Ad-Hoc / Mesh Netzwerk ..................................................................... 17 3.7. WLAN Übertragungsrate einstellen ....................................................................................... 18 4. Tools zur Messung ............................................................................................................................. 18 4.1. Ping ......................................................................................................................................... 18 4.2. Route ...................................................................................................................................... 19 4.3. Traceroute .............................................................................................................................. 19 4.4. Iperf ........................................................................................................................................ 19 4.5. Wireshark ............................................................................................................................... 20 5. Das Optimized Link State Routing Protocol OLSR ............................................................................. 21 6. Anhang............................................................................................................................................... 21 Begleithandbuch V. 1-5 [email protected] 2 1. Grundlagen 1.1. Vorwort Das Labor für Funksysteme- & Mobilkommunikation beschäftigt sich eingehend mit dem WirelessLAN Standard, welcher durch die IEEE 802.11 Familie beschrieben wird. WLAN ist ein Standard der in den Schichten 1 und 2 des OSI Modells definiert ist. WLAN erfreut sich großer Beliebtheit aufgrund der unkomplizierten Anwendung und wird vor allem im Home-Consumer Bereich und im öffentlichen Leben für die lokale Anbindung durch Hotspots verwendet. Das FSM-Labor beleuchtet die grundlegenden und wichtigsten Aspekte von WirelessLAN. Eine praktische Auseinandersetzung durch Messungen steht im Vordergrund und soll dem Studenten ein „Gefühl“ für die Kapazität und Leistungsgrenzen von WLAN vermitteln. Im vierten Versuch wird zusätzlich eine weniger gebräuchliche, obschon ebenso effektive Anwendungsform für WLAN aufgezeigt; die drahtlosen Maschennetzwerke. Alle Versuche werden unter Linux realisiert. Linux wurde als Basis-Betriebssystem ausgewählt, da hier vielfältige Konfigurationsmöglichkeiten für die WLAN Schnittstelle eines Rechners zur Verfügung stehen. Über die Linux Konsole (auch Shell oder Terminal genannt) lassen sich die wichtigsten Parameter des drahtlosen Interface direkt einstellen. Unabhängig von den Versuchsterminen können Sie nach Vereinbarung jederzeit die Linux Befehle in unserem TK-Labor an passender Hardware ausprobieren. Diese Option sollten jene Studenten nutzen, die sich intensiv mit der Konfiguration von Wireless Hardware unter Linux beschäftigen möchten. Dieses Handbuch soll die Studenten über das ganze Semester während den FSM-Laborterminen begleiten. Es dient Ihnen als permanentes, universelles Nachschlagewerk, ohne das die Versuche nicht durchführbar sind. Das Labor ist so konzipiert, dass die jeweiligen Versuchsunterlagen als Leitfaden durch den Versuch gelten. Die eigentlichen Aktionen müssen Sie jedoch selbst definieren, indem Sie sich zielgerichtet die jeweiligen Befehle aus diesem Handbuch heraussuchen. Aspekte die spezifisch für einen bestimmten Versuch relevant sind finden sich in den entsprechenden Versuchsunterlagen. Das Handbuch selbst hat einen allgemeingültigen Charakter. Die Information in diesem Handbuch ist bewusst praktisch aufgeführt, so dass Sie sich leicht orientieren können. Details zu einzelnen Befehlen und deren Auswirkungen können Sie jederzeit beim Betreuer erfragen. 1.2. IEEE 802.11 Wireless LAN1 IEEE 802.11 ist eine Gruppe von Standards für ein Funknetzwerk auf Basis von Ethernet. Damit ist IEEE 802.11 das am weitesten verbreitete drahtlose Netzwerk bzw. Wireless Local Area Network (WLAN). IEEE 802.11 ist, vereinfacht ausgedrückt, eine Art schnurloses Ethernet. IEEE 802.11 definiert die Bitübertragungsschicht (Anmerkung CK: und Teile der Schicht 2 – Sicherungsschicht) des OSI-Schichtenmodells für ein Wireless LAN. Dieses Wireless LAN ist, wie jedes andere IEEE-802Netzwerk auch, vollkommen Protokoll-transparent. Drahtlose Netzwerkkarten lassen sich deshalb ohne Probleme in jedes vorhandene Ethernet einbinden. So ist es ohne Einschränkungen möglich, eine schnurgebundene Ethernet-Verbindung gegen eine Wireless-LAN-Verbindung nach IEEE 802.11 zu ersetzen. 1 Entnommen aus www.elektronik-kompendium.de Begleithandbuch V. 1-5 [email protected] 3 Der Funknetz-Standard IEEE 802.11 definiert einen gemeinsamen MAC-Layer (Medium Access Control) für drei spezifische Physical Layer (PHY). Zwei davon sind den Funk-LANs, einer dem Infrarotnetz zugeordnet. Im Funknetz wird als Frequenzbereich das ISM-Band (2,4 GHz) von 2,400 bis 2,4835 GHz genutzt. Die Infrarot-Variante ist so gut wie unbekannt. Versuch 1-3 werden im sogenannten Infrastruktur-Modus betrieben, bei dem sich Clients an einem AccessPoint anmelden. Der AccessPoint dient dabei als Bridge ins drahtgebundene Netwerk und ins Internet; sozusagen als Verbindung zur Außenwelt. 1.2.1 Frequenzen Für WLAN stehen zwei Frequenzbereiche zur Verfügung. Der eine Bereich liegt um 2,4 GHz, der andere um 5 GHz. Beide Frequenzbereiche sind weltweit Lizenz-frei nutzbar. Das bedeutet, dass auf privatem Grund und Boden keine Gebühren bezahlt werden müssen. Das bedeutet aber auch, dass sich dort noch weitere Funktechniken tummeln. Insbesondere das ISM-Frequenzband (Industrial, Scientific, Medicine) um 2,4 GHz wird für Anwendungen in Industrie, Wissenschaft und Medizin intensiv genutzt. In diesem Frequenzspektrum um 2,4 GHz konkurrieren viele Standards und proprietäre Funktechniken der unterschiedlichsten Hersteller und Anwendungen. Unglücklicherweise auch Geräte des täglichen Gebrauchs, z. B. Mikrowellenherde, Funkfernbedienungen und AVFunksysteme. Die Realisierbarkeit eines Funknetzwerks mit IEEE 802.11 hängt also maßgeblich von der Nutzung anderer Funktechniken in diesem Frequenzspektrum ab. 1.2.2 Übertragungsgeschwindigkeit - Theorie und Praxis Schaut man sich die Angaben der Hersteller und Händler zur Übertragungsgeschwindigkeit ihrer Produkte an und vergleicht die Werte, die man damit in der Praxis erreicht, riecht das fast schon nach einem Reklamationsgrund. Tatsache ist, die Bruttodatenraten, wie sie auf den Produktverpackungen angegeben sind, werden in der Praxis nie erreicht. Die Bruttodatenrate sind nur unter optimalen Bedingungen (CK: keine Nachbar-WLAN Netze!) und mit einer kurzen Entfernung zu erreichen. Je nach Umgebungsbedingungen, Anzahl der teilnehmenden Stationen und deren Entfernung erreicht man nur einen Bruchteil der angegebenen Datenrate. IEEE 802.11 IEEE 802.11b IEEE 802.11g IEEE 802.11a/h/j Datenübertragungsrate (Brutto) 1-2 MBit/s 5,5 - 11 MBit/s 6 - 54 MBit/s 6 - 54 MBit/s 150 - 600 MBit/s Datenübertragungsrate (Netto) 0,5 - 1 MBit/s 1 - 5 MBit/s 2 - 16 MBit/s bis 32 MBit/s bis 150 MBit/s IEEE 802.11n 1.2.3 Access Point und Anmeldung eines Clients Jedes WLAN Netzwerk ist über eine eindeutige Kennung identifizierbar. Zunächst muss man dabei zwischen verschiedenen Netzwerkkennungen unterscheiden2: 2 http://de.wikipedia.org/wiki/Service_Set Begleithandbuch V. 1-5 [email protected] 4 BSS und ESS: Ein BSS existiert im Infrastructure Mode von WLAN (IEEE 802.11). Es benutzt einen einzigen Access Point (AP) und mehrere drahtlose Stationen, um ein Wireless LAN aufzubauen. Ein BSS besitzt eine eindeutige Kennung (BSSID). Um es zu erweitern, wird es an ein Distribution System (DS) angeschlossen. Mehrere über ein DS zusammengeschlossene BSS werden als Extended Service Set (ESS) bezeichnet. SSID: SSID (Service Set Identifier) bezeichnet in Funknetzen (WLANs) nach dem Standard 802.11 den frei wählbaren Namen eines solchen Funknetzes. ESSID: Mit der Vergabe unterschiedlicher Netzkennungen kann man auch verschiedene Wireless LANs am selben Ort betreiben. Die SSID wird an der Basisstation eingestellt. Um mehrere Basisstationen zu einem Netz (auf OSI-Schicht 2) zu verbinden, stellt man an diesen dieselbe SSID ein; sie wird dann als ESSID (Extended SSID) bezeichnet. BSSID: Basic Service Set Identifier, kurz BSSID, ist die eindeutige Bezeichnung eines Access Points in einem WLAN. Die IEEE 802.11-1999 Wireless LAN-Spezifikation definiert eine BSSID als die MAC-Adresse einer Station (STA) eines Accesspoints (AP) im Infrastrukturmodus (BSS). Die BSSID identifiziert somit jeden Wireless Access Point eindeutig, was insbesondere benötigt wird, um Access Points mit identischer ESSID unterscheiden zu können. Beim Eintritt einer Station in einer Zelle, strahlt diese auf jedem Kanal eine Anfrage aus (probe request), inklusive der ESSID für die sie konfiguriert ist sowie die von der ihrer Netzwerkkarte unterstützte Übertragungsrate. Wenn keine ESSID konfiguriert ist, hört die Station das Netzwerk auf der Suche nach einer SSID ab. Denn jeder Access point strahlt regelmäßig (ungefähr alle 0,1 Sekunden) einen Beacon (auf Deutsch Signalfeuer genannt) aus, der Informationen über seine BSSID, seine Eigenschaften und eventuell seine ESSID enthält. Der ESSID wird in der Standardeinstellung automatisch ausgestrahlt, es ist aber möglich (und empfohlen), diese Option zu deaktivieren. Bei jeder Anfrage (probe request) überprüft der Access Point die ESSID und die gewünschte Übertragungsrate im Beacon. Wenn die ESSID jener des Access Points entspricht, übermittelt dieser eine Antwort mit Informationen über seine Auslastung und Synchronisierungsdaten. Die empfangende Station kann so die Signalqualität des Access Points beurteilen und seine Entfernung einschätzen. Denn im Allgemeinen gilt, je näher ein Access Point, umso besser die Übertragungsrate. Eine Station, die sich innerhalb der Reichweite mehrerer Access Points befindet (natürlich mit der gleichen SSID) kann so den Access Point wählen, der die beste Kombination aus Übertragungsrate und Auslastung bietet. 1.2.4 PCF und DCF In einem WLAN kann es vorkommen, dass sich nicht alle WLAN-Stationen kennen. Dieses Problem nennt sich Hidden-Node oder Hidden-Terminal. Besonders problematisch ist der Fall, wenn sich mehrere Stationen außerhalb der Reichweite anderer Stationen befinden. Dabei kann es zum fälschlichen Erkennen eines freien Kanals kommen. Die PCF (Point Coordination Function) in IEEE 802.11 ist eine weitere Zugriffsregelung des MAC-Layers. Die PCF unterstützt Quality of Service (QoS), das bestimmte Charakteristiken bei der Übertragung für bestimmte Kommunikationsanforderungen garantiert. Für PCF ist ein Access Point erforderlich, der mittels einer Kanalreservierung die Senderechte an die mobilen Stationen vergeben kann. Dieser Vorgang wird als Polling bezeichnet. Dabei fragt der Access Point die Stationen innerhalb seiner Zelle nacheinander ab, ob sie Daten versenden wollen. PCF ist deshalb optimal für die Abwicklung von zeitkritischem Datenverkehr geeignet. DCF und PCF lassen Begleithandbuch V. 1-5 [email protected] 5 sich auch parallel zueinander einsetzen. PCF hat allerdings eine höhere Priorität. DCF und der dazugehörige CSMA/CA Algorithmus werden eingehend im Versuch 2 behandelt. 1.2.5 IEEE 802.11n IEEE 802.11n ist die Spezifikation für ein WLAN mit Übertragungsraten von 150, 300, 450 und 600 MBit/s. In der Praxis ist mit 120 MBit/s (bei 300 MBit/s brutto) und 240 MBit/s (bei 600 MBit/s brutto) zu rechnen. Erreicht werden diese Geschwindigkeiten mit mehrere Antennen und Signalverarbeitungseinheiten (MIMO), die Verdopplung der Funkkanal-Bandbreite auf 40 MHz, sowie die parallele Nutzung des 2,4- und 5-GHz-Frequenzbandes. Techniken zur grundlegenden Verbesserung der Übertragungsrate: Antennengruppen mit MIMO (Multiple Input Multiple Output) Spatial Multiplexing mit Space Time Block Coding (STBC) Antennen-Diversity (Signal von der Antennen mit dem besseren Empfang abgreifen) verbesserte OFDM-Modulation mit maximal 65 MBit/s in einem 20-MHz-Kanal (nur 54 MBit/s bei 802.11g) Kanalbündelung Transmit Beamforming Packet Aggregation (Zusammenfassen von Paketen) RIFS (Reduced InterFrame Spacing) Greenfield-Mode (Abschaltung der 11a-, 11b- und 11g-Unterstützung) Bei IEEE 802.11n soll der Datendurchsatz über 100 MBit/s durch einen höheren Durchsatz auf der MAC-Schicht (Media Access Control) und einem geringeren Overhead erreicht werden. Deutliche Verbesserungen sollen adaptive MACs bringen, die die Bandbreite unter allen Teilnehmern besser aufteilt. Transmit Beamforming (Sendestrahlsteuerung), Receive Combining und breite Hochfrequenzkanäle sollen die Funkverbindung verbessern und mehr Datendurchsatz bringen. Je nach Anwendung oder lokaler Frequenzvergabe (abhängig von der Regulierung) sollen 10, 20 oder 40 MHz breite HF-Kanäle möglich sein. Die WLAN-Geräte prüfen, ob diese Kanäle für die Datenübertragung frei sind. Bluetooth-Geräte in der Nähe können den WLAN-Geräten mitteilen nur einen Kanal zu nutzen. So bleibt auch für gleichzeitige Bluetooth-Funkverbindungen noch genug Bandbreite übrig. Da die Funkschnittstelle einer ständigen Veränderung unterliegt werden vor der Nutzdatenübertragung Trainingssequenzen übertragen. Mit Hilfe von Pilottönen innerhalb der Nutzdaten erfolgt dann eine dynamische Feinabstimmung der Signalverarbeitung. Der Einsatz in Räumen soll die Reflektionen (mehrfache Empfangssignale) für mehr Datendurchsatz ausnutzen. IEEE 802.11n beherrscht sowohl das 2,4-GHz- wie auch das 5-GHz-Band. Das bedeutet, es stehen zwei Frequenzbänder zur Verfügung. Doch Vorsicht, die meisten billigen 11n-Geräte beherrschen nur das 2,4-GHz-Band. Kompatibilität zu IEEE 802.11b und 802.11g: Die etablierte IEEE 802.11b/g-Technik soll durch IEEE 802.11n nicht veralten, sondern nahtlos eingebunden werden. Die parallele Nutzung von WLANs mit 802.11g und 802.11n schließt also sich nicht aus. Aber, ein WLAN mit 802.11n, das einen 40-MHz-Kanal nutzt, könnte für bestehende Begleithandbuch V. 1-5 [email protected] 6 WLANs mit 802.11g zum Problem werden. Der Grund, im 2,4-GHz-Frequenzband geht es recht eng zu. Hier tummeln sich noch weitere Funktechniken. Aus diesem Grund ist davon auszugehen, dass ein 40-MHz-Kanal nur im 5-GHz-Frequenzband möglich sein wird. Schon deshalb, um die Kompatibilität zu WLANs mit 802.11g nicht zu gefährden. Damit man überhaupt die Vorteile von IEEE 802.11n nutzen und von der Geschwindigkeitssteigerung profitieren kann, sollte der Kompatibilitätsmodus zu 802.11b und 802.11g abgeschaltet werden. Im Optimalfall richtet man den WLAN-Router oder Access Point so ein, dass er mit 802.11g im 2,4-GHz-Band und mit 802.11n im 5GHz-Band arbeitet. MIMO - Multiple Input Multiple Output: MIMO ist ein systemtheoretischer Begriff, der Systeme mit mehreren Eingangs- und Ausgangsgrößen beschreibt. MIMO sieht vor, mehrere Sende- und Empfangsantennen zu verwenden. Vom Prinzip her wird der Frequenz-Zeit-Matrix eine dritte Dimension, der Raum, hinzugefügt. Mehrere Antennen verhelfen dem Empfänger zu räumlichen Informationen, was zur Steigerung der Übertragungsrate durch Spatial Multiplexing genutzt werden kann. Dabei werden mehrere Datenströme parallel in einem Funkkanal übertragen. Die parallele Signalverarbeitung bringt verbesserten Signalempfang und vermindert die Nachteile durch Mehrwegeempfang, der durch reflektierte Signale entsteht. Insgesamt verbessert sich die Leistung des ganzen Funksystems durch MIMO erheblich. MIMO nutzt einen Effekt, der bei üblichen Funkverbindungen eher schädlich ist: Funkwellen werden häufig an Objekten reflektiert und gelangen deswegen auf mehreren Wegen zum Empfänger. Da die einzelnen Wege unterschiedlich lang sind, kann es zur Beeinträchtigung oder gar Auslöschung des Signals kommen (Multipath Fading). Bei MIMO werden mit mehreren Sendeantennen gleichzeitig unterschiedliche Signale in Richtung Empfänger gesendet. Eine Gruppe von Antennen kann so eine Richtwirkung entwickeln. Im Empfänger liefern mehrere Antennen ein besseres Empfangssignal und vergrößern die Distanz oder erhöhen den Datendurchsatz. Gleichzeitig kann die Antennengruppe so störende Signale ausblenden und dem Empfänger zu räumlichen Informationen verhelfen, was zur Steigerung der Übertragungsrate (Spatial Multiplexing) genutzt werden kann. Getrennt wird das Wellengemisch mittels digitaler Signalverarbeitung. Begleithandbuch V. 1-5 [email protected] 7 1.3 Ad-Hoc Modus und Drahtlose Maschennetzwerke3 Der Ad-Hoc Modus und die darauf aufsetzenden drahtlosen Maschennetzwerke werden im Versuch 4 des Labors ausführlicher behandelt. Dieses Kapitel bietet eine kurze Einführung in das Thema. 1.3.1 802.11 Ad-Hoc Mode Neben dem Infrastruktur-Modus lässt sich WLAN Hardware auch im Ad-Hoc Modus betreiben. Ein Access Point ist in diesem Fall nicht zwingend notwendig für die Kommunikation unter den Teilnehmern. Der Ad-Hoc Modus und die darauf aufsetzenden drahtlosen Maschennetzwerke werden im Versuch 4 des Labors behandelt. Im Ad-hoc Modus verbinden sich drahtlose ClientGeräte untereinander, um eine Punkt-zu-Punkt-Netzwerk (peer to peer aus dem Englischen) zu formen, d.h. Ein Netzwerk, in dem jedes Gerät gleichzeitig die Rolle des Clients und die Rolle des Access Points spielt. Die Summe der verschiedenen Stationen wird independant basic service set (aus dem Englischen) genannt, abgekürzt in IBSS. Ein IBSS ist daher ein drahtloses Netzwerk, das zumindest aus zwei Stationen besteht und keinen Access Point verwendet. IBSS begründet also ein flüchtiges Netzwerk, das Personen in einem Raum den Austausch von Daten ermöglicht. Es wird identifiziert durch eine SSID, wie im Falle des ESS im Infrastruktur-Modus. In einem Ad-Hoc-Netzwerk wird die Reichweite des unabhängigen BSS von der Reichweite jeder Station bestimmt. Das bedeutet, dass zwei außerhalb ihrer jeweiligen Reichweite liegenden Stationen nicht miteinander kommunizieren können, selbst wenn sie andere Stationen "sehen". Denn, im Gegensatz zum Infrastruktur-Modus, bietet der Ad-Hoc-Modus kein Distribution System an, das Frames von einer Station zur anderen übertragen kann. Daher ist IBSS definitionsgemäß ein eingeschränktes Drahtlosnetzwerk. 3 http://de.kioskea.net/contents/wifi/wifimodes.php3 Begleithandbuch V. 1-5 [email protected] 8 1.3.2 Drahtlose Maschennetzwerke4 Um den Ad-Hoc Mode im WLAN Standard nun effizient zu nutzen lassen sich mit Hilfe von sogenannten Wireless Mesh Routing Protokollen in der Netzwerkschicht die Reichweite und Leistung eines Ad-Hoc Netzwerks signifikant ausbauen. Ein Wireless Mesh Network ist ein drahtoses Netzwerk, bei dem die Knoten in einem sog. Mesh (zu deutsch: Masche / Netz) miteinander verbunden sind. WMNs sind entweder vollvermascht oder nur teilsvermascht. Von einer Vollvermaschung spricht man, wenn jeder Knoten mit jedem anderen Knoten verbunden ist. Die Netzwerkknoten unterteilen sich in Mesh Router und Mesh Clients. Mesh Router bilden untereinander das Backbone- oder auch Infrastruktur-Mesh. Das besondere an ihnen ist die Mesh-Fähigkeit, d.h. sie bieten anderen Knoten einen Verbindungspunkt zum Netzwerk und leiten deren Datenverkehr weiter. Router können auch mit dem Internet übers Festnetz verbunden sein. Diese speziellen Router nennt man Gateway-Router. Mesh Clients sind mobile Knoten, die sich über einen Router mit dem Netz verbinden. Eine Spezialität der WMNs ist, dass auch Mesh Clients Routing-Aufgaben übernehmen können sofern sie auch Mesh-fähig sind. Dann können Mesh Clients für andere Clients als Verbindungspunkt zum Netz dienen. Sind nur Mesh Clients untereinander verbunden spricht man von einem Client- Mesh. Backbone-Mesh und Client-Mesh in Verbindung ergibt ein Hybrid-Mesh. Hardware für Mesh Router unterscheidet sich in der Regel nicht von konventionellen drahtlosen Routern. Sie sind entweder als kompaktes eingebettetes System zu erwerben, oder sie sind speziell für den Einbau in PC-Systeme oder Laptops gebaut. Mesh Clients treten vielfältig auf, u.a. als Laptop, Desktop PC, Pocket PC, PDA oder IP Telefon. Mesh Clients sind kostengünstiger und energiesparend, da sie keine Gateway- und Bridge-Funktionalität brauchen. Das bedeutet, dass sie keine Verbindung zu verschiedenenartigen Netzwerken herstellen müssen. 1.4. Transportprotokolle5 1.4.1. TCP Das TCP Protokoll ist ein zuverlässiges, verbindungsorientiertes Transportprotokoll in Computernetzwerken. Es ist Teil der Internetprotokollfamilie, der Grundlage des Internets. Im Unterschied zum verbindungslosen UDP (User Datagram Protocol) stellt TCP einen virtuellen Kanal zwischen zwei Endpunkten einer Netzwerkverbindung (Sockets = Kombination aus Port und IP Adresse) her. Auf diesem Kanal können in beide Richtungen Daten übertragen werden. TCP setzt in den meisten Fällen auf das IP (Internet-Protokoll) auf, weshalb häufig (und oft nicht ganz korrekt) auch vom TCP/IP-Protokoll die Rede ist. Es ist in Schicht 4 des OSI-Referenzmodells angesiedelt. Aufgrund seiner vielen angenehmen Eigenschaften (Datenverluste werden erkannt und automatisch behoben, Datenübertragung ist in beide Richtungen möglich, Netzwerküberlastung wird verhindert usw.) ist TCP ein sehr weit verbreitetes Protokoll zur Datenübertragung. Beispielsweise wird TCP als (fast) ausschließliches Transportmedium für das WWW, E-Mail, Daten in Peer-to-Peer-Netzwerken und für viele andere populäre Netzwerkdienste verwendet. TCP ist im Prinzip eine Ende-zu-Ende-Verbindung in Vollduplex, die die Übertragung der Informationen in beide Richtungen zu gleicher Zeit zulässt. Diese Verbindung kann in zwei Halbduplexverbindungen eingeteilt werden, bei denen Informationen in beide Richtungen (allerdings nicht gleichzeitig) fließen können. Die Daten in Gegenrichtung können dabei zusätzliche 4 5 Wireless Mesh Networks: Eine Einführung, Universität Stuttgart, Author: Michael Schäfer http://www.das-asterisk-buch.de/netzwerkprotokolle.html Begleithandbuch V. 1-5 [email protected] 9 Steuerungsinformationen enthalten. Die Verwaltung (das Management) dieser Verbindung sowie die Datenübertragung werden von der TCP-Software übernommen. Die TCP-Software ist eine Funktionssammlung und (je nach Betriebssystem unterschiedlich) bei Linux auch im Betriebssystemkern, dem Linux-Kernel, angesiedelt. Anwendungen, die diese Software häufig nutzen, sind zum Beispiel Webbrowser und Webserver. Jede TCP-Verbindung wird eindeutig durch zwei Endpunkte identifiziert. Ein Endpunkt stellt ein geordnetes Paar dar, das aus IP-Adresse und Port besteht. Ein solches Paar bildet eine bidirektionale Software-Schnittstelle und wird auch als Socket bezeichnet. Mithilfe der IP-Adressen werden die an der Verbindung beteiligten Rechner identifiziert; mithilfe der Ports werden dann auf den beiden beteiligten Rechnern die beiden miteinander kommunizierenden Programme identifiziert. Durch die Verwendung von Portnummern auf beiden Seiten der Verbindung ist es beispielsweise möglich, dass ein Webserver auf einem Port (normalerweise Port 80) gleichzeitig mehrere Verbindungen zu einem anderen Rechner geöffnet hat. Ports sind 16-Bit-Zahlen (Portnummern) und reichen von 0 bis 65535. Ports von 0 bis 1023 sind reserviert und werden von der IANA vergeben. Zum Beispiel ist Port 80 für das im WWW verwendete HTTP-Protokoll reserviert. Allerdings ist das Benutzen der vordefinierten Ports nicht bindend. So kann jeder Administrator beispielsweise einen FTP-Server (normalerweise Port 21) auch auf einem beliebigen anderen Port laufen lassen. 1.4.2. UDP Das User Datagram Protocol (UDP) ist ein minimales, verbindungsloses Netzprotokoll, das zur Transportschicht der Internetprotokoll-Familie gehört. Die Aufgabe von UDP ist es, Daten, die über das Internet übertragen werden, der richtigen Anwendung zukommen zu lassen. Die Entwicklung von UDP begann 1977, als man für die Übertragung von Sprache ein einfacheres Protokoll benötigte als das bisherige verbindungsorientierte TCP. Es wurde ein Protokoll benötigt, das nur für die Adressierung zuständig war, ohne die Datenübertragung zu sichern, da dies zu Verzögerungen bei der Sprachübertragung führen würde. Um die Daten, die mit UDP versendet werden, dem richtigen Programm auf dem Zielrechner zukommen zu lassen, werden bei UDP sogenannte Ports verwendet. Dazu wird bei UDP die Portnummer des Dienstes mitgesendet, der die Daten erhalten soll. Diese Erweiterung der Host-zuHost- auf eine Prozess-zu-Prozess-Übertragung wird als Anwendungsmultiplexen und -demultiplexen bezeichnet. UDP stellt einen verbindungslosen, potenziell unzuverlässigen Übertragungsdienst bereit. Das bedeutet, dass es keine Garantie gibt, dass ein einmal gesendetes Paket auch ankommt oder dass Pakete in der gleichen Reihenfolge ankommen, in der sie gesendet wurden. Eine Anwendung, die UDP nutzt, muss daher gegenüber verloren gegangenen und umsortierten Paketen unempfindlich sein oder selbst entsprechende Korrekturmaßnahmen beinhalten. Da vor Übertragungsbeginn nicht erst eine Verbindung aufgebaut werden muss, können die Hosts schneller mit dem Datenaustausch beginnen. Dies fällt vor allem bei Anwendungen ins Gewicht, bei denen nur kleine Datenmengen ausgetauscht werden müssen. Einfache Frage-Antwort-Protokolle wie das Domain Name System (DNS) verwenden UDP, um die Netzwerkbelastung gering zu halten und damit den Datendurchsatz zu erhöhen. Ein Drei-Wege-Handshake wie bei TCP für den Aufbau der Verbindung würde unnötigen Overhead erzeugen. Daneben bietet die ungesicherte Übertragung auch den Vorteil von geringen Übertragungsverzögerungsschwankungen: Geht bei einer TCP-Verbindung ein Paket verloren, so wird es automatisch erneut angefordert. Dies braucht Zeit, die Übertragungsdauer kann daher schwanken, was für Multimedia-Anwendungen schlecht ist. Bei VoIP z. B. würde es zu plötzlichen Begleithandbuch V. 1-5 [email protected] 10 Aussetzern kommen bzw. die Wiedergabepuffer müssten größer angelegt werden. Bei verbindungslosen Kommunikationsdiensten bringen verloren gegangene Pakete dagegen nicht die gesamte Übertragung ins Stocken, sondern vermindern lediglich die Qualität. UDP übernimmt die Eigenschaften der darunterliegenden Netzwerkschicht. Im Falle des Internetprotokolls IP können Datenpakete maximal 65.535 Bytes lang sein, wovon der IP-Header und UDP-Header insgesamt mindestens 28 Bytes belegen. UDP-Datagramme haben daher maximal 65.507 Nutzdatenbytes. Solche Pakete werden jedoch von IP fragmentiert übertragen, sodass UDP nur bei Datenpaketgrößen bis zu einigen Kilobytes sinnvoll ist. IP löscht Pakete etwa bei Übertragungsfehlern oder bei Überlast. Datagramme können daher fehlen. Das UDP-Protokoll bietet hierfür keine Erkennungs- oder Korrekturmechanismen wie etwa TCP. Im Falle von mehreren möglichen Routen zum Ziel kann IP bei Bedarf neue Wege wählen. Hierdurch ist es in seltenen Fällen sogar möglich, dass später gesendete Daten früher gesendete überholen. 2. Schnelleinführung Linux Shell Nachfolgend sind ein paar grundlegende Befehle für die Linux Konsole aufgelistet. Die rot markierten Befehle kommen (neben anderen) im Laufe der Versuchstermine vor: Allgemein Befehl [Befehl] & [Befehl] && [Befehl] man [Programm] strg + C Befehl cd [Verzeichnis] cd .. cd / cd cd cp [Datei][Verz] mv mv [Datei1][Datei2] rm rm -rf mkdir rmdir ls ls -l ls -la alias ls='ls --color' pwd cat [Datei] more [Datei] Beschreibung Man kann die Konsole weiter benutzen Befehle werden nacheinander ausgefürt Zeigt die Hilfe zu einem Programm an Bricht aktuellen Vorgang in der Shell ab Verzeichnisse, Dateien Beschreibung Wechselt in das Verzeichnis Wechselt ein Verzeichnis höher Wechselt ins Wurzelverzeichnis Wechselt das Verzeichnis Wechselt in das vorherige Verzeichnis Kopiert Datei in Verzeichnis Verschiebt eine Datei benennt Datei [DATEI1] in [DATEI2] um Löscht eine Datei alles unterhalb des Verz. löschen Erzeugt ein Verzeichnis Löscht ein Verzeichnis Zeigt Ordner-Inhalt an Ausführliche Auflistung alle Dateien des Verz. ausführlich Stellt farbige Ansicht ein Zeigt das aktuelle Verzeichnis an Zeigt Inhalt einer Datei Zeigt Inhalt einer Datei seitenweise an Begleithandbuch V. 1-5 [email protected] Beispiel firefox & firefox && shutdown -h now man firefox strg + C Beispiel cd /tmp cd ../td> cd / cd .. ; cd /tmp cd cp 123.txt /tmp mv 123.txt /tmp mv 123.txt 456.txt rm /tmp/123.txt ; rm /tmp/* rm -rf /tmp/ mkdir /home/test rmdir /home/test ls /home/test ls -l /home/test ls -la /home/test alias ls='ls --color' pwd cat 123.txt more 123.txt 11 touch [Datei] whereis [Prog] find . | grep [DATEI] grep [KEY] [DATEI] locate [DATEI] updatedb which Erzeugt leere Datei Sucht nach Programm sucht eine Datei im Verzeichnis Sucht nach Begriff in einer Datei Sucht nach Datei in der Datenbank Aktualisiert die Datenbank Zeigt an, wo sich ein Programm befindet System Befehl Beschreibung arch Prozessorfamilie cat /proc/filesystems Unterstützte Dateisysteme cat /proc/cpuinfo Infos zur CPU cat /proc/filesystems Alle unterstützten Dateisysteme cat /proc/pci Infos zu den PCI-Karten dmesg | grep hd Infos über alle Laufwerke date Datum und Zeit dmesg Kernellogger: Zeigt Kernelaktivtäten free Zeigt Ausnutzung des Arbeitsspeichers glxgears Kleiner Grafiktest zur Performance der VGA glxinfo Angaben über OpenGL und Grafikkarte kill [PID] Schiesst Prozess mit bestimmter ID ab killall [Prog] Schiesst Prozess mit Prozessname ab lspci Infos über PCI-Komponenten shutdown -h now Fährt den Rechner herunter shutdown -r now Startet den Rechner neu top Zeigt Programme und CPU-Auslastung an uptime Wie lange ist der PC im Betrieb? X -version Zeigt Version von Xfree an Festplatte Befehl Beschreibung df Speicherplatz anzeigen fdisk Festplatte partitionieren mkfs.ext2 HDD mit ext2 formatieren mkfs.ext3 HDD mit ext3 formatieren mkreiserfs HDD mit reiserfs formatieren sync gepufferte Daten auf HDD speichern Mounten Befehl Beschreibung mount Hängt Datenträger in das System ein mount -t [Filesystem] Mountet mit vorgegebenen Dateisystem mount -a Mountet alle Datenträger aus der /etc/fstab mount -r Von Datenträger kann nur gelesen werden mount -w Datenträger kann gelesen und beschrieben werden mount -m Mountet ohne Eintrag in /etc/mtab Benutzer Befehl Beschreibung Begleithandbuch V. 1-5 [email protected] touch 123.txt whereis Firefox find . | grep 123.txt grep Haus 123.txt locate 123.txt updatedb which firefox Beispiel arch cat /proc/filesystems cat /proc/cpuinfo cat /proc/filesystems cat /proc/pci dmesg | grep hd date dmesg free glxgears glxinfo kill 1067 killall Firefox lspci shutdown -h now shutdown -r now top uptime X -version Beispiel df -h fdisk /dev/hda mkfs.ext2 /dev/hda1 mkfs.ext3 /dev/hda1 mkreiserfs /dev/hda1 sync Beispiel mount /dev/hda1 /mnt/win mount -t ntfs /mnt/win_xp mount -a mount -r /mnt/win mount -w /mnt/win mount -n /mnt/win Beispiel 12 id whoami who groupadd [Gruppe] groupdel [Gruppe] useradd -m [USER] userdel -r [USER] passwd [USER] su su [USER] Befehl ifconfig iwconfig ping [Rechner] Befehl lsmod make menuconfig modprobe [Modul] uname -a Zeigt Benutzername und Gruppe an Zeigt aktuell angemeldeten Benutzer an Wer ist alles eingeloggt? Erzeugt eine neue Gruppe Löscht eine neue Gruppe Erzeugt Benutzers und Homeverz. Löscht Benutzers und Homeverz. Ändert Passwort des Benutzers Man arbeitet nun als Root an der Konsole Man arbeitet nun als [USER] an der Konsole Netzwerk Beschreibung Zeigt Netzwerk-Infos an Zeigt Infos zum WLAN an Testet Verbindung zu einem Rechner Kernel und Module Beschreibung Zeigt geladene Module an id whoami who groupadd admins groupdel admins useradd -m chef useradd -m chef passwd chef su su chef Beispiel ifconfig iwconfig ping 192.168.0.1 Beispiel lsmod cd /usr/src/linux; make menuconfig modprobe printer uname -a Einrichten des Kernels Lädt ein Modul Zeigt Kernel-Version an Sonstiges Befehl ps aux rc-update show Beschreibung Zeigt alle laufenden Prozesse und Dienste an Zeigt die Dienste an, die beim Start geladen werden Beispiel ps aux rc-update show Allgemeine Hinweise: Alle benutzten Befehle für die Linux Konsole werden in diesem Tutorial gerahmt dargestellt Zum Ausführen einer der gelisteten Befehle (zum Beispiel zur Konfiguration der WLAN Karte oder zum Starten von OLSR) muss man sich in keinem bestimmten Verzeichnis/Ordner befinden Eine Konsole starten Sie mit dem Klick auf das Terminal Symbol: In jedem Terminal-Fenster können Sie mehrere Konsolen parallel betreiben. Für einen neuen Reiter bzw. eine neue Konsole drücken Sie Strg. + Umschalten/Shift + T Pro Befehl lassen sich generell mehrere Optionen gleichzeitig setzen, zum Beispiel zum Anzeigen der Inhalte des aktuellen Ordners: ls –al hat dabei denselben Effekt wie ls –a, ls –l Mit den Steuerkreuz-Tasten „oben“ und „unten“ lassen sich die zuletzt eingegebenen Befehle durchblättern Wird das Linux System korrekt gestartet so befinden Sie sich automatisch im Home Ordner, in dem sich auch alle Skripte und sonstigen Dateien aus diesem Handbuch befinden Begleithandbuch V. 1-5 [email protected] 13 3. Tools zur Hardware Konfiguration Hinweise: Angaben wie „wlan0” stehen exemplarisch für ein beliebiges Interface und werden je nach Bedarf durch wlan1, wlan2, etc. ersetzt. wlan0 ist dabei immer ein sogenannten „logisches“ Interface, das vom System auf vielen Ebenen konfiguriert und angesprochen werden kann (IP Ebene, MAC Ebene, etc.), während phy0 ein reines „physikalisches“ Interface beschreibt bei dem nur dessen Hardware Parameter verändert werden können. wlan0 setzt immer auf phy0 auf. Da die meisten der im folgenden aufgeführten Befehle Root Rechte unter Linux verlangen sollten Sie sich vorab in jeder von Ihnen benutzten Konsole als Root anmelden: su (Passwort: 20fm11) 3.1. Kontrolle des Interface Status Folgender Befehl listet zunächst alle Linux-kompatiblen WLAN Interfaces (und deren Features) des nodes auf: iw list Interessant an der Ausgabe sind vor allem die für das Interface sichtbaren Kanäle und die Bitraten die es unterstützt. Eine kompakte Übersicht aller konfigurierten drahtlosen Geräte liefert: iwconfig Um Informationen über ein einzelnes Interface zu erhalten (Interface muss dazu mit einem AP oder Ad-Hoc Netz verbunden sein): iw dev wlan0 link Wichtiger Hinweis zu diesem Befehl: Um die tatsächlich nutzbare Brutto-Bitrate eines WLAN Interface mit diesem Befehl zu bestimmen muss das Interface dafür Daten übertragen. Dies erreichen Sie indem Sie beispielsweise ping 192.168.1.1 eingeben und direkt danach iw dev wlan0 link. Der Wert „tx bitrate“ beschreibt die Brutto-Bitrate und 20MHz (802.11a/b/g) bzw. 40MHz (802.11n) die genutzte Kanalbandbreite. Alternativer Befehl: iw dev wlan0 station dump Alle zu erreichenden Access Points, deren SSIDs, Bitrates, Kanäle, etc. auslesen: ifconfig wlan0 up (Interface auf der Linux Netzwerkebene anmelden, wenn noch nicht passiert) iw dev wlan0 scan Eine Erweiterung des Befehls gibt beispielsweise nur die SSIDs und deren Signalstärken aus: iw dev wlan0 scan | egrep 'SSID|signal' „SSID“ und „signal“ können in dem Fall auch durch anderen Schlagwörter ausgetauscht werden für die man sich interessiert, beispielsweise „freq“. Jedes „|“ steht dabei für eine Oder-Verknüpfung. Alle Interfaces auf IP/Netzwerkebene auflisten (mit diesem Befehl ermittelt man leicht die aktuelle IP-Adresse und MAC Adresse eines Interface): ifconfig Begleithandbuch V. 1-5 [email protected] 14 Per DHCP eine Email Adresse anfordern: dhclient eth0 oder dhclient wlan0 Dies funktioniert sowohl mit Ethernet als auch mit WLAN Interfaces! 3.2. WLAN Interface deaktivieren und neu aufsetzen Um die Konfiguration eines Interface von neuem zu beginnen kann man es zunächst deaktivieren: iw dev wlan0 del Wichtig: wlan0 wird zwar gelöscht, phy0 bleibt jedoch bestehen. Um ein neues wlan0 zu kreieren brauchen Sie: iw phy phy0 interface add wlan0 type TYP ifconfig wlan0 up „Typ“ steht für folgende Parameter: 6 „Monitor“6: m Monitor Mode werden im Gegensatz zum Promiscuous Mode alle empfangenen Frames weitergeleitet, nicht nur die des Netzwerks, mit dem der Client momentan verbunden ist. Ein Vorteil ist, dass kein einziges Frame von der eigenen Netzwerkkarte gesendet werden muss und daher das Abhören der Frames nicht in evtl. Protokolldateien erkennbar ist. Außerdem ist keinerlei Authentifizierung am Netzwerk notwendig. Sind die Framepakete verschlüsselt, zum Beispiel mit WEP, so können sie aufgezeichnet und später entschlüsselt werden. Manche Netzwerkkarten-Treiber überspringen im Monitor Mode die Überprüfung der Prüfsumme der Zyklischen Redundanzprüfung (cyclic redundancy check) der Frames, was dazu führt, dass fehlerhafte Frames weitergeleitet werden können. Die Integrität der Daten ist also im Monitor Mode nicht sichergestellt. Darüber hinaus bieten nicht alle Treiber die Möglichkeit, die Karte in den Monitor Mode zu versetzen, oder erlauben im Monitor Mode kein Senden von Paketen. „Managed“: Dies bezeichnet den Infrastruktur Modus, in dem ein WLAN Client sich mit einem Access Point verbinden kann. Der AP ist eine zentrale, drahtlose Netzwerkkomponente die zugleich über eine Ethernet Schnittstelle verfügt, und so für die lokal verbundenen drahtlosen Clients eine Internetverbindung (oder eine Verbindung in andere Kabelnetze) bereitstellt. Im Managed Modus können die Clients nicht direkt miteinander kommunizieren; jegliche Kommunikation läuft über den AP der auch das Routing aller Pakete übernimmt. „IBSS“: der Ad-Hoc (IBSS - Independent Basic Service Set) Modus ist das Gegenstück zum Infrastruktur Modus und erlaubt es dass sich ein Node (Gegenstück zum Client) mit jedem anderen Node in seinem Sendebereich direkt vernetzt. Die Nodes müssen sich dazu im selben IP Adressraum befinden und alle auf demselben WLAN Kanal mit derselben ESSID (siehe Kapitel 1.2.3.) funken. Ein zentraler Access Point ist nicht mehr erforderlich, jedoch ein spezielles Ad-Hoc Routing Protokoll dass die Routing Funktionen des AP im Netzwerk übernimmt. So bildet sich eine sogenannte dezentrale Netzwerktopologie aus, die die Basis ist für komplexere Ad-Hoc Netze, wie zB. Wireless Mesh Netzwerke oder Vehikuläre Ad-Hoc Netze (VANET). http://de.wikipedia.org/wiki/Monitor_Mode Begleithandbuch V. 1-5 [email protected] 15 3.3. Bestehendes Interface konfigurieren Sollte wlan0 bereits bestehen lässt sich so dessen Typ ändern: ifconfig wlan0 up (Interface auf der Linux Netzwerkebene anmelden, wenn noch nicht passiert) iw wlan0 set type TYP Mögliche Parameter für „TYP“ finden sich in Kapitel 3.2. Ein fixer Kanal 5 und die SSID „Name“ lassen sich beispielsweise so konfigurieren: iwconfig wlan0 essid NAME channel 5 Anmerkung: Aus Kompatibilitätsgründen wird hier noch das alte Konfigurationstool „iwconfig“ verwendet, anstatt dessen Nachfolger „iw“. 3.4. WLAN Monitor Mode und Channel Hopping Der Monitor Modus wird benutzt um WLAN Netze zu untersuchen ohne in den Netzwerkverkehr eingreifen zu müssen. Ein WLAN Interface im Monitor Modus nimmt nicht aktiv an einem Netzwerk teil, sprich es erhält keine IP Adresse, taucht in keiner ARP Tabelle auf, etc. Trotzdem empfängt es alle regulären + einige extra Paketypen (zB. WLAN Management Pakete zur MediumZugangssteuerung, Access Point Authentifizierung, etc.) und leitet diese an das Betriebssystem des Betreiber-Clients weiter. Der Client kann dabei problemlos den Kanal wechseln um auf mehreren Kanälen Pakete zu empfangen. Mit Hilfe eines „Channel Hopping“ Skripts kann man so einfach mehrere WLAN Kanäle (sequentiell) analysieren. Ein Nachteil bei dieser Methode ist dass das Interface jeweils nur auf einem Kanal empfangen kann. Pakete, die derzeit auf anderen Kanälen verschickt werden werden so zwangsläufig nicht erfasst. Nicht alle WLAN Karten unterstützen den Monitor Modus Hardware-seitig. Die in unseren Versuchsreihen verwendeten „Asus Eee PC 1015PE“ Netbooks (schwarz) sind ausgerüstet mit WLAN Karten die einen Atheros Chipsatz tragen. Die Besonderheit von Atheros Karten ist neben der Fähigkeit im Monitor Mode zu operieren deren gut zugängliche Treiber-Programmierschnittstelle (API). Der darauf basierende „Ath5k/9k“ WLAN-Treiber ist mittlerweile fest im Linux Kernel verwurzelt und wird auch in unseren Versuchen verwendet. In unseren Versuchen benutzen wir Wireshark um die „mitgehörten“ Pakete zu analysieren. Sollten die Pakete Teil einer verschlüsselten Übertragung sein (zB. Über WEP oder WPA) muss man Wireshark das jeweilige Passwort des APs mitteilen (bereits voreingestellt in unseren Versuchen). Möchte man mehrere Kanäle analysieren bietet sich folgendes Skript an: ifconfig wlan0 up (Interface auf der Linux Netzwerkebene anmelden, wenn noch nicht passiert) ./chanhop.sh –i wlan0 Standardmäßig stellt das Skript das angegebene Interface nacheinander auf die WLAN Kanäle 1-11 (802.11b/g/n, 2.4 GHz Band) ein. Das Skript läuft danach in der Konsole weiter und kann mit der Tastenkombination Strg. + c beendet werden. Mit iwconfig lässt sich in einer separaten Konsole überprüfen auf welchem Kanal das interface gerade residiert. Der Kanal wird standardmäßig alle 0.25 Sekunden gewechselt. Möchte man nur einen Kanal analysieren muss man das Interface direkt auf diesen Kanal tunen: ifconfig wlan0 up iwconfig wlan0 channel 6 Monitor Mode aktivieren: ifconfig –a Überprüfen Sie zunächst dass kein Monitor Mode Interface (mehr) existiert, zB. Mon0, Begleithandbuch V. 1-5 [email protected] 16 mon1, etc. iw dev wlan0 interface add mon0 type monitor mon0 ist dabei das neue Monitor Mode Interface dass auf wlan0 aufsetzt ifconfig mon0 up iwconfig, ifconfig Ändert sich die Frequenz und die Anzahl der empfangenen (RX) Pakete? … Messung durchführen, zB. Mit Wireshark… iw dev mon0 interface del mon0 wieder löschen Falls das Channel Hopping Skript läuft vergessen Sie es nicht zu beenden mit Strg. + c! 3.5. Verbindung zu einem Infrastruktur Netzwerk herstellen und beenden Mit einem AP OHNE Verschlüsselung, mit der SSID „Name“ auf dem Kanal mit der Frequenz 2,432 GHz verbinden – wlan0 muss vorher entsprechend im Managed Mode eingerichtet sein!: ifconfig wlan0 up : Interface auf der Linux Netzwerkebene anmelden iw wlan0 connect NAME 2432 : Client am Router anmelden, Passwort wird nicht benötigt dhclient wlan0: Router auffordern dem Client per DHCP Protokoll eine IP Adresse zuzuteilen Um sich mit einem AP MIT WPA2 Verschlüsselung, mit der SSID „Name“ auf dem Kanal 3 (mit der Frequenz 2,422 GHz), zu verbinden können Sie das folgende Skript benutzen. Das vorgefertigte Skript „apconnect.sh“ wurde geschrieben um Ihnen den Anmeldeprozess an einem WPA2 geschützten Access Point zu vereinfachen und wird folgendermaßen aufgerufen: ./apconnect.sh wlan0 NAME 3 Das Skript erledigt für Sie unter anderem folgende Aufgaben: Ifconfig wlan0 down, ifconfig wlan0 up: Deaktivieren und wieder aktivieren des Interface auf IP Ebene iw wlan0 set type managed: Infrastruktur Modus iwconfig wlan0 essid NAME channel 3 : SSID und Kanal einstellen WPA2 Anmeldung, das Passwort wird dabei automatisch vom Skript übertragen dhclient wlan0 : Adressvergabe über DHCP für das neu eingerichtete Interface Zum Abmelden vom AP muss der Prozess „wpa_supplicant“ manuell beendet werden: pkill wpa_supplicant 3.6.Verbindung zu einem Ad-Hoc / Mesh Netzwerk Um sich mit einem Mesh Netzwerk verbinden muss das Interface zunächst in den IBSS, oder auch AdHoc Modus gebracht werden. Das nötige Skript dazu wird weiter unten beschrieben. Dann kann eine Verbindung zu einem Ad-Hoc Netzwerk mit der Netzwerk-weiten SSID „NAME“ (ESSID - Extended Service Set Identifier), welches auf dem Kanal mit der Frequenz 2,412 GHz betrieben wird, hergestellt werden: iw wlan0 ibss join NAME 2412 In den Versuchen benutzen wir ein vorgefertigtes Skript namens „ath5k_ad-hoc.sh“ dass das Setzen der ESSID, sowie alle weiteren relevanten Schritte für den Ad-Hoc Modus für Sie übernimmt. Der Aufruf erfolgt folgendermaßen: Begleithandbuch V. 1-5 [email protected] 17 ./ath5k_ad-hoc.sh 1 0 Die erste Ziffer ist dabei die Nummer des jeweiligen Nodes (siehe Label oberhalb des Bildschirms) und die zweite Ziffer beschreibt das Interface, also wlan0 Das Skript erledigt für Sie unter anderem folgende Aufgaben: Ifconfig wlan0 down, ifconfig wlan0 up: Deaktivieren und wieder aktivieren des Interface auf IP Ebene Iwconfig wlan0 mode ad-hoc: Ad-Hoc Modus iwconfig wlan0 essid NAME : ESSID einstellen ifconfig wlan0 192.168.11.1: Statische IP einstellen (da wir keinen DHCP Server im Mesh Netzwerk einrichten). Die IP wird abhängig von der Kennnummer des jeweiligen Nodes generiert, deswegen ist es wichtig dass eine Nummer nur einmal im Netz verwendet wird iwlist wlan0 channel: Auflisten aller sichtbaren Kanäle, der Nutzer muss sich hier auf einen gemeinsamen Kanal für das Ad-Hoc Netzwerk festlegen iwconfig wlan0 chan 1: Gewählten Kanal einstellen 3.7. WLAN Übertragungsrate einstellen Die maximale Bandbreite mit der ein WLAN Interface senden und empfangen kann legen Sie fest mit: iwconfig wlan0 rate 5M Damit würden Sie die Rate beispielhaft auf 5 Mbit/s reduzieren. 4. Tools zur Messung 4.1. Ping Das Ping Tool eignet sich gut um die generelle Erreichbarkeit eines anderen Netzwerkteilnehmers festzustellen, aber auch um die durchschnittliche Paketlaufzeit zu ihm bestimmen. Ping nutzt das ICMP Protokoll. Ein Client sendet ECHO_REQUEST Pakete aus die von der zu prüfenden Gegenstelle mit ECHO_RESPONSEs beantwortet werden, wenn möglich. Mit Ping lässt sich die Round-Trip-Time (RTT) bestimmen, die angibt wie lange es braucht ein Paket zu einer Gegenstelle zu senden und dieses wieder von ihr zu empfangen. In größeren Netzen sollte man sich bei der RTT Messung nicht ausschließlich auf Ping verlassen, da ICMP Pakete gegenüber dem (meist) üblichen TCP Verkehr anders geroutet oder priorisiert werden. Trotzdem bietet Ping eine einfache Möglichkeit sich über die RTT Performance einen Überblick zu verschaffen. Das Standardintervall für ausgesendete ICMP Pakete ist eine Sekunde lang. Ein einfacher Aufruf sieht folgendermaßen aus: ping 192.168.11.5 Standardmäßig wird ein ICMP Paket pro Sekunde gesendet, die Anzahl der versendeten ECHO_REQUEST Pakete lässt sich auch mit dem –c Argument (Count) begrenzen: ping 192.168.11.5 –c 20 Strg. + c beendet das Tool. Die Ausgabe liefert sowohl Echtzeitinformationen als auch eine Übersicht in der letzten Zeile. Hier lässt sich beispielsweise die durchschnittliche Round-Trip-Time („rtt avg“) in Millisekunden ablesen. man ping liefert weitere Optionen. Begleithandbuch V. 1-5 [email protected] 18 4.2. Route Mit dem Tool route können Sie sich die Routing Tabelle des jeweiligen Geräts anzeigen lassen. 4.3. Traceroute Mit Traceroute können alle Zwischen-Stationen die ein Paket in einem IP-Netzwerk passiert, bis hin zum Ziel hin angezeigt werden. Ausgangspunkt ist dabei immer der ausführende Host. Traceroute benutzt dazu multiple ICMP Pakete mit variablen Time-To-Live Werten, die den Weg eines Pakets exakt abbilden, inklusive Laufzeiten zu den einzelnen Stationen. Traceroute bietet diverse interessante Optionen, prinzipiell müssen Sie jedoch nur den Ziel-Host angeben: traceroute 192.168.1.1 oder auch traceroute www.google.de Gerade in Ad-Hoc Netzwerken, mit den sich mitunter ständig wechselnden Routing Tabellen, ist Traceroute ein gutes Tool um den aktuellen Pfad zu einem Ziel in der Mesh Wolke zu bestimmen. 4.4. Iperf Iperf ist ein Tool um UDP und TCP Traffic zu erzeugen. Solche Traffic Generatoren sind notwendig um die Performance und die Belastbarkeitsgrenzen eines Netzwerks auszuloten, da normaler Netzwerktraffic das Netzwerk meist kapazitiv nicht ausfüllt und zudem homogene und unstetige Charakteristika aufweist. Mit Iperf lässt sich beispielsweise eine Volllast auf einer Übertragungsstrecke erzeugen; das Verhalten des Netzwerks darauf kann dann später analysiert werden. Iperf gibt über die Konsole bereits eine Vielzahl von Netzwerk-Statistiken aus, darunter der Durchsatz / die Bandbreite, Latenz-Variationen (Jitter) und Paketverlustraten. Eine Iperf Verbindung besteht aus einem Client und einem Server, die getrennt voneinander auf den Enden der zu testenden Verbindung eingerichtet werden. Standardmäßig initiiert der Client die Verbindung und generiert einen Upload Stream zum Server hin. Standardmäßig benutzt iperf das TCP Transport Protokoll zur Datenübertragung, beherrscht aber auch UDP. Wenn man nichts weiter spezifiziert wählt iperf automatisch TCP. Iperf Server einrichten: iperf –s Iperf Server beenden: Tastenkombination Strg. + c Iperf Client einrichten, der sich mit der Server-Adresse 192.168.2.10 verbinden soll: iperf –c 192.168.2.10 Optionen die sowohl für den Iperf Client als auch für den Iperf Server gelten (Auszug): -u -l -i -f UDP Modus Länge eines UDP Datagramms in Bytes, zB. –l 1470 (1470 Bytes = Standard bei UDP) Echtzeitausgabe der Messergebnisse, Intervalldauer wird in Sekunden angegeben, zB. -i 1 Jede Sekunde wird der Iperf Output neu ausgegeben. Diesen Parameter sollten Sie der Übersicht halber immer aktivieren! Ausgabeformat der Bandbreite: bits(b), bytes(B), kilobits(k), kilobytes(K), megabits(m), megabytes(M), gigabits(g) oder gigabytes(G), zB. –f K Optionen die nur für den Client gelten (Auszug): -b -t Achtung, nur im UDP Modus zu verwenden: Spezifiziert die gewünschte UDP Senderate, zB. –b 10m 10 Mbit/s Dauer der Verbindung in Sekunden, zB. –t 30 Begleithandbuch V. 1-5 [email protected] 19 Statistiken: UDP Modus Sobald eine gestartete Verbindung beendet ist (entweder sie wurde zeitlich durch das –t Argument begrenzt oder manuell mit Strg. + c beendet) empfängt der Client vom Server einen Report mit wichtigen Statistiken zur Übertragung und gibt diese direkt auf der Konsole aus. Diese Statistiken sind wichtig für Ihre Versuchsauswertung da sie Messgrößen wie die übertragene Datenmenge, den Empfangsdurchsatz oder die Paketverlustrate enthalten. TCP Modus Nach einer beendeten TCP Verbindung lassen sich in der letzten Zeile die übertragene Datenmenge und der durchschnittliche TCP Goodput ablesen. 4.5. Wireshark Wireshark ist ein umfangreicher Netzwerk-Analyzer und ein Standard-Tool im IP-Bereich. Das Programm erstellt Kopien von allen sichtbaren Paketen die den ausführenden Rechner verlassen oder bei ihm eintreffen. Wireshark läuft immer nur auf einer Netzwerkkarte, also zB. auf dem WLAN Interface oder auf der Ethernet Karte). Da in den Laborversuchen ausschließlich WLAN zum Einsatz kommt, hängt die Art der sichtbaren Pakete von dem eingestellten Modus (Mode) ab. Im Monitor Mode (siehe Kapitel 3.2) werden die meisten Pakettypen sichtbar, da hier zum Beispiel auch WLAN Management Pakete, wie Access Point Beacon Frames, mit Wireshark aufgezeichnet werden. Wireshark kennt den standardmäßigen Aufbau der Paketheader sehr vieler Protokollarten und stellt diese automatisch gemäß der Schicht im OSI Modell korrekt dar. Sollte ein Paket nur Informationen der Schicht 1 und 2 beinhalten, so kann dies daran liegen, dass die oberen Schichten durch WLAN verschlüsselt wurden (WEP, WPA2). Um dies zu vermeiden, wird in manchen Versuchen die WLAN Verschlüsselung auf dem Access Point ausgeschaltet. Charakteristisch für Wireshark ist der zweigeteilte Aufbau des Hauptfensters. In der oberen Liste finden sich alle aufgezeichneten Pakete. Über die verschiedenen Spalten lassen sie sich nach Ankunftszeit, Protokoll, Paketgröße, etc. sortieren. Im Hauptfenster lassen sich auch diverse Filter einstellen, um nur bestimmte Pakettypen anzuzeigen. Möchte man beispielsweise nur Pakete des ICMP Protokolls anzeigen, so gibt man in der Filterzeile „icmp“ und bestätigt die Eingabe mit „apply“. In der unteren Liste sieht man die Eigenschaften eines jeden Pakets, bzw. den Inhalt des Headers der jeweiligen Schicht. Klickt man in der oberen Liste doppelt auf ein Paket, so öffnet sich dieselbe Ansicht in einem separaten Fenster. Neben den hier kurz genannten Features bietet Wireshark viele weitere Analyse tools, wie zum Beispiel die Bandbreitenmessung oder die Visualisierung der TCP Flusskontrolle. Der Schwerpunkt von Wireshark liegt auf den Protokollen der Schicht 3 und 4. Wichtig ist, dass Wireshark stets als root Benutzer ausgeführt wird, da man sonst nicht Zugriff auf die Netzwerkkarte und die passierenden Pakete bekommt. Praktische Befehle mit Wireshark: Wireshark ausführen: sudo wireshark Beacon Frames ausblenden7: In der Filterzeile filter !(wlan.fc.type_subtype==8) eingeben 7 Quelle: http://www.lovemytool.com/blog/2010/02/wireshark-wireless-display-and-capture-filters-samplesby-joke-snelders.html Begleithandbuch V. 1-5 [email protected] 20 Beacon Frames und 802.11 ACK Frames ausblenden: In der Filterzeile (!wlan.fc.type_subtype == 0x08) && (!wlan.fc.type_subtype == 0x1d) eingeben 5. Das Optimized Link State Routing Protocol OLSR Grundlagen zu Ad-Hoc Netzwerken und zu dem OLSR Protokoll finden sich in den Versuchsunterlagen zu Versuch 4. Starten Sie OLSR mit folgendem Aufruf; dabei müssen Sie eine Konfigurationsdatei angeben: olsrd –f PFAD ZUR CONFIG DATEI Wir verwenden zwei Konfigurationsdateien während den Versuchen, dies sind die vollständigen Pfade: /home/tkadmin/olsr-config-files/olsrd-ett.conf (für die ETT Metrik) /home/tkadmin/olsr-config-files/olsrd-etx.conf (Für die Standard Metrik ETX – Expected Transmission Count) Sie müssen jeweils den kompletten Pfad angeben. Um OLSR zu beenden nutzen Sie die Tastenkombination Strg. + c. Topologie anzeigen: Wechseln Sie in das Benutzerverzeichnis /home/tkadmin/ (‚cd‘ eintippen), falls Sie sich nicht schon dort befinden und starten Sie das Skript ‚topology‘: ./topology.pl Dieses Skript muss nicht als root ausgeführt werden. 6. Anhang 1. IEEE 802.11 Kanalliste8 2. IEEE 802.11 Message Types9 8 9 Quelle: http://de.wikipedia.org/wiki/Wireless_Local_Area_Network#Frequenzen Quelle: ANSI/IEEE Std 802.11, 1999 Edition (R2003), http://gaia.cs.umass.edu/wireshark-labs/802.11-1999.pdf Begleithandbuch V. 1-5 [email protected] 21 Anhang 1: IEEE 802.11 Kanalliste Begleithandbuch V. 1-5 [email protected] 22 Anhang 2: IEEE 802.11 Message Types Begleithandbuch V. 1-5 [email protected] 23