IPv6 und 6LoWPAN in Home Automation Networks

Werbung
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
Herunterladen