!"!#$%$!&'()(*+,-+(.)$-)&$"/01.2'/)+$.3$ !&4.5$#/*4$)/+6.,7* !"#$%&'#(# !"#$%&'"()*+,-"./0/1"2-34,5#$%&',67 !"8,693&+$:4";<,6"=>--3:'>?,%&,">',6"@,<52:+,6A3B, !"0,?,:+63&,"8,6+,%&$:4"',6"=>:C4$63+%>:,:"D"(>A+936,"E>:" F3BG<36"?$"F3BG<36 !"/$*&%,A,6$:4"',6"E,6H3**+,:"IH'3+,*"*><3&'"=:>+,:"9%,',6" ,66,%BG<36"*%:' !"1,BG3:%*-$*"?$6"J,%:+,463+%>:"E>:"+,-H>6K6"$:,66,%BG<36,:" =:>+,:"<,%"L:',6$:4,: !"M3&&<3BN5OP*$:4,:"-P4&%BG"<,%"=>:C4$63+%>:*A,G&,6:".?Q#Q" $:,66,%BG<36,"=:>+,:"'$6BG"?$"+%,A,"(,:',&,%*+$:47 !"M,G&,6+>&,63:+,*"IH'3+,"',*"#,+6%,<**)*+,-*"A;6"=:>+,:"-%+" -,G6"3&*"RS"1#":%BG+T;BG+%4,-"(H,%BG,6 )*)+,-(./0#%(1234( !"I:+,6*+;+?$:4"<,%-"U6*+,&&,:"E>:"F,+?9,6N5 =>:C4$63+%>:,: !"8,6+,%&,:"E>:"=>:C4$63+%>:*5"$:'" #,+6%,<**)*+,-52-34,* !"1>:%+>6%:4"',6"F,+?E,6<%:'$:4,:" .U66,%BG<36N,%+"',6"=:>+,:7 ;*&,#,-,21<.2;*1%.=+,#42-*>2 +*?0/+*>,02@+,"0=+,#4 ///6#+=6-*#706(" !.%162A.62B%.&,0*2:.+-* B"%=+&2C,+-7 C#=%*2@%.?0*,"+$0. A+*#0$2:+$&#?0. @#("+0$2D-&,0*70.?0. 8*#90.&#,5,2:0.* ///6-*#706(" !"#$%&%'"#&(") *+,-./#&&0*&("+1,$#("023+4-$,5, ///6'"#$*+,6-*#706(" !"!#$%&'$()*+&',*-.-$/&')0$1234&*50 '&,67-*&'&)%$86,$#9:;&7$<1=>$?@@@?@ABBCDEEFBG !"!#$ %&'()*'$ %+&$ ,-+*.$ /01'%2$ 3-4$ 541'%**-&6$ %+&%1$ 7-8$ 9+&-:;<71+%4%&.%&$ ,%'4+%<1101'%21$ 8=4$ .+%$ >&?'%&$ %+&%1$ .47('*?1%&$ #%1($ >?22-&+@7'+?&1&%'3%1$ AB+4%*%11$ #%1($ C%'D?4@E$ B#CFG$ !"!#$%42H6*+I('$3-.%2$.+%$8%(*%4'?*%47&'%$!.2+&+1'47'+?&$1?D+%$/?8'D74%;!@'-7*+1+%4-&6$A3G,G$ >?22-&+@7'+?&1J4?'?@?**%E$,%'4+%<1101'%2;KJ.7'%1F$%+&%1$1?*I(%&$C%'3%1G !"!#$%$!&'()(*+,-+(.)$-)&$"/01.2'/)+$.3$ !&4.5$#/*4$)/+6.,7* !"##$%&'()(!'*+,-$./0"%1$2'3,44'$"4'3%$"4$&'5"406'/$#2"$7&&8&#$+'$2&#$%%#'9$21$4:'9$%;<$&'=>2'1"$' (4=?21$204-$4',4'$"4$4'@"2$%$&&'!$&<'A4?#$4',4-$B,&&#'"&#C !"!#$%&'() !";+%'&3"8=("#2,3*4/(D=+4'3/=(*("<7=6," *3$>?"5*/"-*3+/*5,,2,3*41W:0'3*, !"Q"L4'6*1B2:*( !"#3'(0'&=(*"L4'6* !"KXKU"L4'6*"Y"P=(I6.+'3/=(,/4'6* !"U*%+*+*"P=(I6.+'3/=(,/4'6*,":+=" P(=3*("4Z6&/$%"<[*C*/&,"*/(*,"')3/8? !"LF8\]"LF8R".(0"LF8\^LF8R"4/N*0 1234)&560',33)47,8()8$/)3$ !"!#$%&'()*+,-./)03 !"')3.*&&*"7/(.N"X/,3+/5.3/=("<V*0=+']" W5.(3.]"X*5/'(]"J*(3==? !"M5&/$%*";(3C/$)&.(6,3==&,"<6$$]" 6&/5$]"5/(.3/&,]"5/,=(]"_*N"*3$>? 984)034:474)$#)3;$<864)842=)8 !"J*(*+/$"/bcR"-='+0,"<F`,]"A=.3*+,? !"F`;(6/(*,"@AKF]"K7La"<J;9X;]"/bcR? !"U*+')/"U/(/"^"9.30==+"<K3%*+=,"#9`]"4/:,? !"a;d"8/+3.'&/,/*+3*"P(=3*("<O/+3.'&U*,%? !"L)'(=,"VW#LO"ONecf"OX#7"<4/:,?" !"9:*(U=)="JBKfQ":%=(*"<KAU\? !"-+='0$=4"5='+0,"<4/:,]"4/:,*&? ;*&,#,-,21<.2;*1%.=+,#42-*>2 +*?0/+*>,02@+,"0=+,#4 ///6#+=6-*#706(" !.%162A.62B%.&,0*2:.+-* B"%=+&2C,+-7 C#=%*2@%.?0*,"+$0. A+*#0$2:+$&#?0. @#("+0$2D-&,0*70.?0. 8*#90.&#,5,2:0.* ///6-*#706(" !"#$%&%'"#&(") *+,-./#&&0*&("+1,$#("023+4-$,5, ///6'"#$*+,6-*#706(" !"!#$%&'$()*+&',*-.-$/&')0$1234&*50 '&,67-*&'&)%$86,$#9:;&7$<1=>$?@@@?@ABBCDEEFBG !"!#$%&'()*+,-./)0 !"#$%&'()*+*,"-./&01#2,3*4".(0"0*,%'&5"6*+/(6*+*"7*+().+8*"'&,"9:*(;45*00*0" <=:*(*45*00*0>=+6?".(0"9:*(@AB"<=:*(C+3>=+6? !";/(D'$%*";+C*/3*+.(6"'.D"'(0*+*"E'+0C'+*1F&'33D=+4*("0.+$%"G.,H3G&/$%*"-./&01F+=I&* !"J*+/(6*+"K.DC'(0"G.+"L(3*6+'3/=("(*.*+"#=D3C'+*"F')*3* !"J&*/$%*"#=D3C'+*"DM+"'&&*".(3*+,3M3G3*("F&'33D=+4*( !"K)3.*&&*"7/(.N"O*+,/=(*("<7/(.N"O'(/&&'"P*+(*&"Q>QR>S? !"-*3+/*5,,2,3*4"L4'6*"T"R"U-"3+=3G".4D',,*(0*+"V.()3/=('&/3H3 Einreichung für KuVS: Communication Software-Preise in der Kategorie 2 (Software aus einem Forschungsprojekt) ADAM (Administration and Deployment of Adhoc Mesh networks) der Universität Bern, Schweiz Thomas Staub, Daniel Balsiger, Simon Morgenthaler, Michael Lustenberger, Torsten Braun {staub | balsiger | morgenthaler | lustenbe | braun}@iam.unibe.ch Motivation Drahtlose Mesh Netze (Wireless Mesh Networks, WMN) haben sich zu einer wichtigen Zugangstechnologie für Breitbanddienste entwickelt. Drahtlos kommunizierende Knoten ermöglichen eine kosteneffiziente Erweiterung der Netzabdeckung. Bestehende WMNs (z.B. MIT RoofNet, Berlin RoofNet, freethe-net San Francisco usw.) decken jeweils grosse Gebiete ab. Die einzelnen Knoten sind aber häufig nach dem Aufstellen nur noch schwer erreichbar, z.B. auf Hausdächern. Aus bürokratischen und technischen Gründen kann der physikalische Zugriff sehr zeitintensiv und kostspielig sein. Solche aufwändigen Vorort-Reparaturen sollten deshalb unter allen Umständen vermieden werden. Leider sind während der Lebensdauer eines WMNs Änderungen an Konfiguration sowie Software-Aktualisierungen meist unumgänglich, z.B. um Sicherheitslücken zu schliessen. Dies erhöht wiederum die Gefahr von unerreichbaren Knoten durch Konfigurationsfehler und fehlerhafte Aktualisierungen. Eine fehlertolerante Administration und Softwareverteilung ist deshalb für alle WMNs unabdingbar. Funktionen der Software ADAM (Administration and Deployment of Adhoc Mesh networks) ermöglicht eine fehlertolerante Netzadministration sowie Software-Aktualisierungen (Kommunikationsprotokolle, Betriebssystem-Updates) der Knoten. ADAM ist eine Weiterentwicklung unserer „Secure Remote Management and Software Distribution for Wireless Mesh Networks“ Architektur [1]. ADAM verteilt Konfigurationen und Software Images völlig dezentral von einzelnen Knoten zu deren Nachbarn. Falls einige Knoten während der Konfigurationsanpassungen oder der Software Updates nicht erreichbar sind (z.B. ausgeschaltete Knoten), erhalten sie nachträglich von ihren Nachbarn die verpassten Updates. Verschiedene Sicherungsmechanismen garantieren, dass Knoten, welche nach Updates keine Verbindung zu ihren Nachbarn haben, sich automatisch wieder ins Netz integrieren können. Zum Beispiel wird bei einer durch die Reduktion der Sendeleistung verursachten Verbindungsunterbrechung die Sendeleistung wieder schrittweise erhöht bis zumindest eine Verbindung zu einem Nachbarknoten besteht. Falls ein Knoten gar keine Verbindung mehr zu einem Nachbarn besitzt, sucht er nach bestehenden drahtlosen Netzen, konfiguriert eine eindeutige lokale IPv6Adresse gemäss RFC4193 und verbindet sich dann zu einem Nachbarknoten, von welchem er die aktuelle Netzwerkkonfiguration und andere aktuelle Software-Komponenten bezieht. Falls im Netz keine Konfiguration für den Knoten existiert, meldet er sich im ADAM Management Web-Interface als zu konfigurierender Knoten. Der Administrator kann nun den Knoten nachträglich konfigurieren. ADAM bietet für gewisse Knotentypen mit mehr als 20 MB nichtflüchtigem Speicher ein fehlertolerantes Update des Betriebsystems an. Bei korruptem Dateisystem oder Linux-Kernel wird der Knoten automatisch mit dem alten funktionierenden Image neu gestartet. Über das ADAM Web-Interface können die einzelnen Knoten im Netz verwaltet, neue Konfigurationen erstellt sowie Software Updates ausgeführt werden (siehe Abbildung 1). !""#$%&'()*+)!,!-)./"01'2/3456/)7&3)8/395$2&'()%/3):/27;<'4#(&352#<')=<9#/) 7&>)?<42953/)@A%52/B ADAM ermöglicht dem Benutzer das Testen einer Knotenkonfiguration innerhalb des Netzes. Die Funktion Timed Update lädt die Konfiguration für eine gewisse Zeit auf die verteilten Knoten. Falls der Benutzer die neue Konfiguration nicht bestätigt, fällt ADAM automatisch nach Ablauf der eingegebenen Frist wieder zur alten Konfiguration zurück. Die Betriebssystem-Images für die Mesh-Knoten werden durch den ADAM Image-Builder erstellt. Beim ersten Verteilen der Knoten (Roll-out) werden auf jeden Knoten ein Standard-Image sowie die Netz- und Knotenschlüssel geladen. Nach dem ersten Start verbinden sich die Knoten automatisch und ADAM kann Netzkonfigurationen und Software-Update verteilen. Weitere Vorteile von ADAM und des dazugehörigen Image-Builder sind: • SSL-verschlüsselte Übertragung von Konfigurationen und Images zum Schutz vor Eindringlingen • Visualisierung der Netztopologie innerhalb des ADAM Web-Interface • Erhalt von Statusinformationen (Logs etc.) bei Betriebssystem-Updates • Unterstützung mehrerer Konfigurationen pro Knoten (jeweils eine aktive) • Verwaltung über Kommandozeile oder ADAM Web-Interface • Betriebssystem Images kleiner 6MB trotz umfassender Funktionalität • Aktuelle Linux-Versionen (Linux Vanilla Kernel 2.6.26.5) • Schlankeres Build-System und deshalb geringere Lernkurve als OpenEmbedded (openembedded.org) und OpenWRT (openwrt.org) • Einfache Erweiterung auf andere Hardware-Plattformen durch zusätzliche Build-Profile • Gleiche Software für alle unterstützten Hardware-Plattformen • Geringer Aufwand zur Integration neuer Software Pakete • Unterstützung von IPv4 und IPv6 inklusive gemischter IPv4/IPv6Umgebungen Systemvoraussetzungen Mit Hilfe des ADAM Image-Builder lassen sich unter aktuellen LinuxDistributionen (Fedora, Ubuntu, Debian, Gentoo) für folgende MeshHardware-Platformen Betriebssystem-Images erstellen: • PCEngines WRAP • PCEngines ALIX • Meraki Mini / Outdoor bzw. OpenMesh Mini (Atheros SOC) • XEN (Unterstützung unserer Emulationsplatform VirtualMesh [2]) Zur Verwaltung des Mesh-Netzes über das ADAM Web-Interface wird ein gängiger Browser (Internet Explorer, Firefox, Mozilla, Safari) benötigt. Verfügbarkeit Der ADAM Image-Builder ist als Open-Source unter Gnu Public Licence (GPL) 2.0 verfügbar (http://www.iam.unibe.ch/~rvs/research/software.html). Die Veröffentlichung des ADAM Web-Interface ist unter GPL 2.0 für Januar 2009 geplant. ADAM wurde im Rahmen des Forschungsprojektes MIPTel (Mobile IP Telephony) des Schweizerischen Nationalfonds (200020-113677/1) entwickelt. Referenzen [1] T. Staub, D. Balsiger, M. Lustenberger, and T. Braun, “Secure remote management and software distribution for wireless mesh networks,” in 7th International Workshop on Applications and Services in Wireless Networks (ASWN 2007), (Santander, Spain), pp. 47– 54, May 24-26 2007. [2] T. Staub, D. Balsiger, S. Morgenthaler, and T. Braun, “Virtualmesh: An emulation framework for wireless mesh networks in OMNeT++,” in 2nd International Workshop on OMNeT++ (OMNeT++ 2009) held in conjuction with the Second International Conference on Simulation Tools and Techniques (SIMUTools 2009), (Rome, Italy), March 6 2009 (submitted).!