Table of Contents

Arduino und IPv6

Meist wird im Zusammenhang von Arduino und Netzwerk nur von IPv4 Implementationen gesprochen. Diese sind meist beschränkt auf lokale Anwendungen, da mangels routebarer (offizieller) IP-Adressen fast immer private Adressen nach RFC 1918 verwendet werden. Dies hat zur Folge, dass ohne weitere, oft komplizierten, Einstellungen am Router/Firewall keine Erreichbarkeit des Projekts aus dem Internet gegeben ist.

Was liegt also näher als IPv6 - bei dem auch die kleinste Netzwerkzuteilung Milliarden von routebaren Adressen umfasst - für netzwerkbasierte Arduino Projekte näher anzusehen ? Gerade im Zusammenhang mit selbstorganisierenden Netzwerken (Meshs) sind auch Hersteller in der Netzwerktechnik sehr aktiv in diesem Bereich1).

IPv6 ermöglicht auch privaten Anwendern ein eigenes Netzwerk mit routebaren Adressen zu betreiben und somit von überall aus dem Internet zugreifen zu können. Dies eröffnet jede Menge Möglichkeiten, aber auch einige neue Risiken.

Die Möglichkeiten sind schier unbegrenzt, so ist es möglich Daten von verteilten Sensoren z.B. über Internet abzufragen und zu sammeln. Natürlich ist es ohne weitere Vorkehrungen auch möglich die faszinierende RGB Moodlamp mit Netzwerkanschluss aus Tadschikistan ein- und auszuschalten - damit wären auch in etwa die Risiken schon skizziert.

Andererseits, ist es mit IPv6 einfach machbar z.B. zwei Hausnetzwerke innerhalb von Familie und engem Freundeskreis miteinander ohne VPN Tricks etc. vollkommen transparent zu verbinden. Wichtig ist dann ein anständiges Begrenzen des Netzwerkverkehrs mit dem Access-Router beider Seiten. Oft wird bemängelt, dass NAT, welches unter IPv4 im heutigen Internet angeschlossenen privaten Netzwerken einen gewissen Schutz bietet, unter IPv6 wegfällt, resp. nicht vorhanden ist. Dagegen kann durchaus eingewendet wenden, dass NAT als einziger und globaler Schutz nicht taugt und das Vorhandensein von NAT Benutzer eher in falscher Sicherheit wiegt als echten Schutz bietet. Daher wird sauberes Firewalling unter IPv6 viel wichtiger (aber auch viel einfacher) als es jetzt ist.

Voraussetzungen

Um Experimente mit Arduino und IPv6 zu machen benötigt man:

Shields und Breakouts auf Basis des WIZnet W5100 funktionieren nicht!

IPv6 Adressen

Soweit so gut, nur wie kommt man an IPv6 wenn der eigene Provider es noch nicht anbietet ?

Nativ

Einerseits lohnt sich immer wieder die Nachfrage beim eigenen Provider, viele haben Projekte oder können IPv6 bereits auf Nachfrage anbieten.

Tunnel

Dann gibt es eine Anzahl von sogenannten Tunnel-Brokern. Diese funktionieren alle in etwa nach dem gleichen Prinzip, bei dem das IPv6 Netzwerk über eine, je nach Anbieter verschiedene, IPv4-Tunneltechnik zum Enduser auf den Router oder hinter den Router gebracht wird. Natürlich “wendet” dann jeder IPv6 Verkehr beim Tunnelbroker, was für die Latenz und den Durchsatz sicher nicht ideal Voraussetzungen sind. Trotzdem sind die Tunnel sehr robust und stabil und durchaus auch für einen mittelfristigen Parallelbetrieb von IPv6 und IPv4 durchaus brauchbar. Nachfolgend eine Liste der wichtigsten und grössten Tunnelbroker:

Test der IPv6 Konnektivität

Hat manIPv6 mit einem Tunnelbroker konfiguriert oder von seinem ISP erhalten, kann mit folgenden Diensten die Konnektivität geprüft werden:

Arduino Libraries

Nun muss eine Library gewählt werden, welche den eigenen Anforderungen am ehesten genügt. Zurzeit sind folgende bekannt:

Nochmals zur Errinnerung: IPv6 und obige Libraries funktionieren ausschliesslich mit Shields und Breakouts mit dem ENC28J60 Chipsatz. Wenn Sie ein Shield oder Breakout WIZnet5100 haben funktioniert dies nicht, da der IPv4 Stack dort bereits im Chip zu einem grossen Teil implementiert ist.