IPv6 und 6LoWPAN in Home Automation Networks Thomas Scheffler [email protected] IPv6-Kongress, Frankfurt 7. Juni 2013 Inhaltsverzeichnis Übersicht Smart Objects Ziele und Anforderungen Smart Object: prinzipielle Umsetzung Bausteine Contiki Hardware Management- und Netzwerkprotokolle Implementierungen Testergebnisse Speicherverbrauch Energieverbrauch Rechen- und Transferzeit Internetanbindung Fazit und Ausblick Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 2 / 37 Smart Objects ”. . . a smart object is an item equipped with a form of sensor or actuator, a tiny microprocessor, a communication device, and a power source.” [Vasseur & Dunkels, 2010] Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 3 / 37 Evolution of Wireless Sensor Networks Entwicklungen der Sensor Netzwerke Scalability Price Cabling Any vendor Cables 1980s Proprietary radio + network Z-Wave, prop. ISM etc. ZigBee 6lowpan Internet ZigBee and WHART 6lowpan ISA100 Vendor lock-in Complex middleware 2000 2006 Open development and portability 2008 -> Increased Productivity v6.12.2009 9 6LoWPAN: The Wireless Embedded Internet, Shelby & Bormann Quelle: http://6lowpan.net Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 4 / 37 Herausforderung: Management von Smart Objects • Unterstützung einer große Anzahl von Objekten und Ad-Hoc Routing • Geringer Ressourcenbedarf • Unterstützung sicherer Application Layer • Kein Einsatz proprietärer Gateways • Keine Verwendung proprietärer, ungetesteter Protokolle ⇒ Verwendung etablierter Tools und freier Protokolle Home Automation Routing Requirements in Low-Power and Lossy Networks (RFC 5826) Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 5 / 37 Ziele und Anforderungen Entwicklung eines Smart Objects zur Steuerung eines 230V Verbrauchers mit folgenden Eigenschaften: • IPv6 • globale Adressierung und Erreichbarkeit • Autokonfiguration • 8 Bit Mikrocontroller • kleine Abmessungen (Einbau in vorhandene Geräte) • geringer Energiebedarf (< 1W) • preisgünstig (10-20 Euro) • Einsatz von standardisierten Werkzeugen des Netz-Managements • SNMPv3 (incl. Verschlüsselung und Authentisierung) • IEC104 Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 6 / 37 Smart Object: prinzipielle Umsetzung Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 7 / 37 Contiki OS • Offenes Betriebssystem für Embedded Devices • Entwickelt vom Swedish Institute of Computer Science - aktive internationale Entwicklergemeinde • Portierungen für verschiedene Hardwareplattformen verfügbar (AVR, ARM, MSP430,...) • Unterstützung für Multithreading und Protothreads • IPv6-Netzwerkstack implementiert • ∼ 40 kByte Flash/ROM • ∼ 2 kByte RAM • Entwicklungsumgebung als VM verfügbar: Instant Contiki • http://www.contiki-os.org/ Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 8 / 37 Hardwarebeschreibung • Zigbit-Modul • 8-Bit RISC (Atmega 1281) • 4 MHz Taktfrequenz • 128-KB Flash • 8-KB SRAM • AT86RF230 Radio Transceiver mit keramischer Chip-Antenne • Atmel Raven USB-Stick • 8-Bit RISC (Atmega AT90USB1287) • 8 MHz Taktfrequenz • 128-KB Flash • 8-KB SRAM • AT86RF230 Radio Transceiver mit PCB Antenne Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 9 / 37 Zigbit Platine Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 10 / 37 Smart Object : 6LoWPAN Steckdose Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 11 / 37 6LoWPAN Steckdose: Innenansicht Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 12 / 37 Management von Smart Objects • Simple Network Management Protocol (SNMP) • Standardisiert in RFC 3411, u.a. • hohe Sicherheit dank AES-Verschlüsselung und User Management in Version 3 • etabliertes Protokoll im Netzmanagement • verfügbare Tools und Bibliotheken (Net-SNMP, etc.) • Implementierung der Jacobs-Universität Bremen • angepasste Implementierung für Contiki OS (8-bit Mikrocontroller) • unterstützt SNMPv1 und SNMPv3 • http://cnds.eecs.jacobs-university.de/software/ contiki-snmp/ Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 13 / 37 Management von Smart Objects • IEC 60870-5-104 (kurz IEC 104) • Etablierter IEC-Standard im Bereich der Energieautomation • Einsatz in SCADA (Supervisory Control and Data Aquisition) Systemen • Anbindung von Fernwirkgeräten (Remote Terminal Units) über eine TCP/IP - Schnittstelle an eine Leitstelle • Implementierung ist unterteilt in Link-Funktionalität und eine Application-Funktionalität • Die Link-Funktionalität übernimmt die Linkkontrolle (z.B. das Setzen und Prüfen der Sequence Number) • Die Application-Funktionalität verarbeitet Application Service Data Units (ASDU) Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 14 / 37 IEEE 802.15.4 - Funklayer Wichtiger Funkstandard für Home Networks, Industrie- und Gebäudeautomatisierung • Unterstützt drei Übertragungsverfahren • 20 kbit/s bei 868 MHz • 40 kbit/s bei 915 MHz • 250 kbit/s bei 2.4 GHz (DSSS) • Beaconless mode • Einfacher CSMA Algorithmus • Beacon mode mit Superframe • Hybrider TDMA-CSMA Algorithmus • Bis zu 64k Netzknoten mit 16-bit Adressen • Erweiterungen: • IEEE 802.15.4a, 802.15.4e, 802.15.5 Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 15 / 37 IEEE 802.15.4 - Funklayer • Framegröße in IEEE 802.15.4 Frames beträgt 127 Byte • RFC 2460 fordert eine minimale Link-MTU von 1280 Byte ⇒ Um IPv6 Pakete in IEEE 802.15.4 Frames zu übertragen wird eine Anpassungsschicht benötigt: 6LoWPAN Quelle: http://6lowpan.net Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 16 / 37 IPv6 over Low-Power Wireless Area Networks - 6LoWPAN ver Low-Power wireless Area Networks IPv6 Header IPv6 Adaptation Layer: ined by IETF standards • Standardisiert in RFC 4919, RFC 4919, 4944,4944 u.a. draft-ietf-6lowpan-hc • Stateless Headerand -nd Compression (IP, UDP) draft-ietf-roll-rpl Byte Offset 0 4 0 1 2 3 Flow Label Traffic Class Version Payload Length Next Header Hop Limit 8 12 Source Address 40 Byte 16 20 24 28 Destination Address 32 Standardcompression Socket API teless•header 36 ables a• standard socketund API Minimaler Code- imal useSpeicherbedarf of code and mem • Unterstützung verschiedener ect end-to-end Internet Topology Optionen Multiple topology options Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 17 / 37 6LoWPAN Adressierung LoWPAN arbeitet nach den folgenden Prinzipien • Flacher Adressraum (das Funknetz ist ein IPv6 Subnetz) • Eindeutige MAC Adressen (z.B. 64-bit oder 16-bit) ⇒ Herausforderung für die Hop-by-Hop Paketweiterleitung (Mesh-under, Route-over) 6LoWPAN komprimiert IPv6 Adressen durch: • Weglassen des IPv6 Prefix • Globaler Prefix ist allen Nodes im Netzwerk bekannt • Link-local Prefix wird durch das Format der Header-Compression angezeigt • Komprimierung der Interface-ID • Kann für Link-lokale Nachrichten entfallen • Komprimierung für Multihop Dst/Src Adressen • Multicast Adressen werden komprimiert Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 18 / 37 LoWPAN Header Compression 48 → 6 Byte! Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 19 / 37 LoWPAN Netztopologien LoWPANs sind Stub-Netzwerke: • Ad-hoc LoWPAN • Keine Routen außerhalb des LoWPAN • Simple LoWPAN • Single Edge Router • Extended LoWPAN • Multiple Edge Router mit gemeinsamen Backbone Quelle: http://6lowpan.net Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 20 / 37 Routing in Low-Power Lossy Networks (RPL) (RFC 6550) Herausforderungen: 1 • Begrenzte Ressourcen (RAM, CPU, DODAG root Batterie) 2 • Unstabile, verlustbehaftete Links mit 2 2 3 4 geringer Datenrate 4 3 RPL Routing: • Dynamisches Routingprotokoll • Aufbau eines zielorientierten, gerichteten, azyklischen Graphs (DODAG) • Minimale Information auf den Knoten 6 7 5 RPL nodes 6 Destination oriented direct acyclic graph (DODAG) • Forwarding in den meisten Fällen über DODAG Root (Border Router) Thomas Scheffler Home Automation mit IPv6 Quelle: Communications 04/2011 a dir Figure 2.IEEE RPL nodesMagazine, that form point-to-point traffic (left). The sol other nodes included in the parent also supports point-to-multipoint tr 06. 2013 source 21 / rout 37 which the root07. attaches SNMP Implementierung Portierung bestehenden SNMP-Codes • Anpassung an Contiki 2.6 und die Zigbit Plattform User Based Security Model (USM) - Erweiterungen • Pseudo-zufälliger Initialisierungsvektor für den AES-CFB Algorithmus • Neustart von Geräten wird ausgewertet (AuthoritativeEngineBoots) • Überprüfung des Benutzersicherheitslevels • Verbesserte Überprüfung der AuthoritativeEngineTime • RFC-konformes SNMPv3 Discovery (Versenden authentifizierter Reports) Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 22 / 37 SNMP Implementierung SNMPv3 Managed Objects • Steuerung eines Ausgangspins des Mikrocontrollers • Abfrage der Funkempfangsstärke / Temperaturabfrage Anwendungsbeispiel Steuerung des Schaltzustands der Steckdose: snmpset -v3 -c public -u sk -l authPriv -a md5 -A password1 \ -x aes -X password2 udp6:[fd00:142::11:22ff:fe33:4455] \ iso.3.6.1.4.1.22109.100.600.1.0 i 1 SNMPv2-SMI::enterprises.22109.100.600.1.0 = INTEGER: 1 Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 23 / 37 IEC 104 Implementierung Implementierung • Implementierung des Protokolls über IPv6 • Es wurde nur eine Teilmenge der möglichen IEC104 Funktionen implementiert • Implementierung von vier ASDU Typen • Auf Qualifier Bits (z.B. Invalid) und Zeitstempel wurde verzichtet • Es wird angenommen, dass die Linküberwachung (Senden von Test-Frames im Ruhemodus) vom IEC104 Master übernommen wird • Es wird maximal eine, nicht verschlüsselte Verbindung unterstützt. Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 24 / 37 Gesamtspeicherbedarf inklusive Betriebssystem bei unterschiedlichen SNMP Sicherheitsoptionen Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 25 / 37 Energieverbrauch Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 26 / 37 Rechen- und Transferzeit Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 27 / 37 Datendurchsatz - One Hop Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 28 / 37 Internetanbindung des Funknetzes Anbindung des 6LoWPAN Netzes an einen WLAN-Router Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 29 / 37 Internetanbindung des Funknetzes Implementierung • OpenWRT(12.09) — Konfiguration opkg install kmod-ipv6 radvd ip sysctl -w net.ipv6.conf.all.forwarding = 1 • Installation des Netzwerkinterfaces opkg install kmod-usb-net-rndis ifconfig usb0 up • Serielle Debug-Ausgabe des Routers opkg install kmod-usb-acm screen /dev/ttyACM0 Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 30 / 37 Internetanbindung des Funknetzes Herausforderungen I • Der RPL-Borderrouter verteilt den IPv6-Präfix an alle Funkknoten im 6LoWPAN ⇒ Statisches IPv6 Präfix auf dem 6LoWPAN-Borderrouter platform/avr-ravenusb/contiki-raven-main.c uip_ip6addr(&ipaddr,0x2001,0xdb8,0,0,0,0,0,0x20); ⇒ Statische Route auf dem Upstream Router • USB-Interface hat zwei IP-Adressen im RPL-Subnetz • NS/NA Nachrichten werden nicht in das Funknetz weitergeleitet ifconfig usb0 -arp Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 31 / 37 Internetanbindung des Funknetzes Herausforderungen II • Fest kodierte MAC-Adresse der Funkknoten →platformabhängig Bsp. AVR Zigbit: /platform/avr-zigbit/contiki-avr-zigbit-main.c, uint8_t mac_address[8] EEMEM Bsp. AVR Raven: /platform/avr-raven/params.h, #define PARAMS_EUI64ADDR Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 32 / 37 Fazit Pro: • Smart Objects lassen sich mittels existierender Management Software einfach im Netz verwalten • Entwicklungsaufwand ist durch Nachnutzung bestehender Bibliotheken überschaubar (Entwicklung in C) • Leistungsfähigkeit für viele Anwendungsfelder ausreichend Con: • Debugging realer Applikationen schwierig (Trial-und-Error, Ausweichen auf Simulationsumgebung) • Aufbau realer Netze derzeit noch vergleichsweise konfigurationsintensiv Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 33 / 37 zukünftige, mögliche Erweiterungen • Weiterentwicklung der SNMP Implementierung (SNMP Traps) • Implementierung von over-the-air-updates aus dunkels06runtime.pdf (Softwareupdate über Funk) • Sicherheit von Smart Objects in öffentlichen Netzen ist ein interessantes Thema (Hacking, Denial-of-Service, etc.) • Unterstützung von realen Deployment-Szenarien (Adressvergabe, Konfiguration, Prefix-Delegation, etc.) • Entwicklung einer effizienten Spannungsversorgung: Energieharvesting, Duty-Cycling Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 34 / 37 zukünftige, mögliche Erweiterungen Wir suchen Forschungspartner aus der Industrie für die Weiterentwicklung und den praktische Einsatz und Test von IPv6-fähigen SmartObjects! • BMBF, ZIM • Studentenprojekte • Praktikas • Abschlussarbeiten Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 35 / 37 Kontakt Email: [email protected] WWW: http://prof.beuth-hochschule.de/scheffler/ Projekt: https://wiki.ipv6lab.beuth-hochschule.de/ contiki/ Thomas Scheffler Home Automation mit IPv6 07. 06. 2013 36 / 37