Beuth Hochschule fr Technik Berlin
Fachbereich VII
Bachelorarbeit
Entwicklung und Test einer SNMP-basiertenAutomatisierungslsung fr Sensorknoten in einem 6LoWPAN
Funknetz
Development and evaluation of a SNMP-based automationsolution for 6LoWPAN sensor nodes in a wireless network
eingereicht von: Sven Zehl [S760383]
Betreuer: Prof. Dipl.-Inform. Thomas SchefflerGutachter: Prof. Dr.-Ing. Peter Gober
Abgabedatum: 14. August 2012
Kurzreferat
Im Verlauf dieser Arbeit wurde eine Automatisierungslsung zur Steuerung und ber-wachung eines 230V Verbrauchers entwickelt. Die unterste bertragungsschicht bildet einFunknetz im IEEE 802.15.4 Standard. Da fr die Vermittlungsschicht IPv6 eingesetzt wird,kommt zur Adaptierung beider Modelle das 6LoWPAN Protokoll zum Einsatz. Die Steuerungdes Smart Object wird durch einen 8 Bit Mikrocontroller der Firma Atmel und das daraufeingesetzte Betriebssystem Contiki OS 2.6 bernommen. Auf der Anwendungsschicht, wirdeine SNMPv3 Implementierung ausgefhrt, welche durch das integrierte User Based SecurityModel, Sicherheit durch Verschlsselung und Authentifizierung bietet.Im Laufe dieser Arbeit werden die einzelnen eingesetzten Technologien im ersten Schritt un-tersucht, um dann im weiteren Verlauf das daraus entwickelte Gesamtkonzept eingehend zuprfen und auszuwerten.
Abstract
During this thesis, an automation solution for controlling and monitoring of a 230V con-sumer has been developed. The lowest transmission layer is represented by a radio networkbased on the IEEE 802.15.4 standard. Because IPv6 is seated in the network layer, the6LoWPAN protocol is used for adapting both models. The control of the Smart Object ishandled by a 8 bit microcontroller of the company Atmel and the above running operatingsystem Contiki OS 2.6. On the application layer, the SNMPv3 with the User Based SecurityModel is implemented. This ensures security by offering encryption and authentication me-chanisms.In the course of this work the single used technologies are examined in the first step, then inthe next step, the total concept developed from it, is thoroughly checked and evaluated.
iii
Ich versichere, dass ich diese Bachelorarbeit selbstndig verfasst und nur die angege-benen Quellen und Hilfsmittel verwendet habe.
Berlin, den 13. August 2012
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(Unterschrift des Kandidaten)
v
Prof. Dipl.Inform. Thomas SchefflerBeuth Hochschule fur Technik BerlinLuxemburger Str. 1013353 Berlin
Telefon 0 30 / 4504 - 2648E-Mail [email protected] Berlin, den 12. April 2012
Aufgabenstellung der Abschlussarbeit von Herr Sven ZehlEntwicklung und Test einer SNMP-basierten Automatisierungslosung fur Sensor-knoten in einem 6LoWPAN Funknetz
Aufgabenstellung:
Das Simple Network Management Protokoll (SNMP) wird aufgrund seines einfachen Aufbausund der weiten Verbreitung von Implementierungen standardmaig fur die Verwaltung vonNetzwerkressourcen eingesetzt.
Im Rahmen dieser Arbeit soll untersucht werden, wie gut sich SNMP fur die Steuerung vonSmart Objects in einem 6LoWPAN-Netzwerk nutzen lasst.
Mit Hilfe von existierenden Implementierungen fur Managementstationen (z.B. Mibbrowser)soll es moglich sein, die Konfigurationsdaten des auf dem Smart Object installierten SNMPAgenten abzufragen und ggf. zu setzen. Die Kommunikation soll idealerweise sowohl uberSNMPv1 als auch uber SNMPv3 moglich sein. Die SNMPv3 Implementierung soll dabei dieVerschlusselung mit Pre-Shared Keys unterstutzen.
Die Testergebnisse sind geeignet auszuwerten. Dazu ist ein geeigneter Testplan zu erstellenund ggf. ein Testtool zu entwerfen.
Folgende Teilaspekte sind in der Arbeit zu betrachten:
Installation und ggf. Anpassung einer SNMP-Implementierung fur Contiki 2.5.
Test der SNMP Implementierung mit existierenden Managementstationen und wechseln-den Netzwerkbedingungen.
Bewertung der Komplexitat und sonstiger Anforderungen der Losung (Speicher-, Ener-gieverbrauch, Rechenzeit, Ubertragungsszeit, ...).
Dokumentation der Entwicklung sowie moglicher Erweiterungen in einem Wiki.
Fur die Bearbeitung der Aufgabenstellung werden gute Kenntnisse der Grundlagen der Netz-werktechnik vorausgesetzt. Der Bearbeiter muss sich in das Thema IPv6, SNMP und die Netz-werkkommunikation des Contiki-Betriebssystems einarbeiten.
vii
Links:
SNMP http://tools.ietf.org/html/rfc3411
Mibbrowser: http://ireasoning.com/mibbrowser.shtml
Contiki-Doku: http://www.sics.se/adam/contiki/docs/
Contiki-SNMP: http://code.google.com/p/contiki-snmp/
Thomas Scheffler
2viii
Inhaltsverzeichnis
1. Einleitung 1
2. Grundlagen 32.1. IEEE 802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1. Gerte Typen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.2. Netzwerk Topologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.3. MAC Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.4. Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. 6LoWPAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.1. Adressierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.2. Adaption Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. Simple Network Management Protokoll . . . . . . . . . . . . . . . . . . . . . . 72.3.1. Transportmechanismen . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.2. Structure of Management Information und Management Information
Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.3. ASN.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.4. BER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.5. Nachrichtenformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3.6. Protokoll Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3.7. Protokoll Operationen . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3.8. User-Based Security Model . . . . . . . . . . . . . . . . . . . . . . . . 202.3.9. View-Based Access Control Model . . . . . . . . . . . . . . . . . . . . 27
2.4. Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3. Contiki OS 293.1. Protothreads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.1. Funktionsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.1.2. Erweiterungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.1.3. Einschrnkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2. Multithreading Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.3. Kernel und Prozesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.1. Codeausfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.3.2. Prozesskontrollblock . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.3.3. Interprozesskommunikation . . . . . . . . . . . . . . . . . . . . . . . . 373.3.4. Prozessplaner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4. uIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.4.1. uIP Raw API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.4.2. uIPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.4.3. 6LoWPAN Implementierung . . . . . . . . . . . . . . . . . . . . . . . . 42
ix
Inhaltsverzeichnis
3.4.4. uIPv6 Paketverarbeitungsablauf . . . . . . . . . . . . . . . . . . . . . . 433.5. Contiki SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.1. UDP Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.5.2. Dispatcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.5.3. Das Nachrichtenverarbeitungsmodul . . . . . . . . . . . . . . . . . . . 503.5.4. Das USM Sicherheitsmodul . . . . . . . . . . . . . . . . . . . . . . . . 543.5.5. Das Command Responder Modul . . . . . . . . . . . . . . . . . . . . . 573.5.6. MIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.5.7. Konfigurationsmglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . 63
3.6. Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4. 6LoWPAN SNMPv3 Socket 654.1. bersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654.2. Erweiterungen des Contiki SNMP Agents . . . . . . . . . . . . . . . . . . . . 68
4.2.1. Portierung auf Contiki 2.5 und Contiki 2.6 . . . . . . . . . . . . . . . . 684.2.2. Portierung auf die AVR Zigbit Plattform . . . . . . . . . . . . . . . . . 684.2.3. Erweiterungen innerhalb des USM . . . . . . . . . . . . . . . . . . . . 694.2.4. Managed Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3. Evaluierung / Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784.3.1. Leistungstests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784.3.2. Funktionstests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.4. Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5. Zusammenfassung 91
Abkrzungsverzeichnis 93
Abbildungsverzeichnis 95
Tabellenverzeichnis 97
Quellcodeverzeichnis 99
Literaturverzeichnis 101
A. Anhang 109A.1. Aufbau der usmUser Group laut RFC3414 . .