Linux-Magazin Netze neu ordnen (Vorschau)
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
04/14<br />
DIE ZEITSCHRIFT FÜR LINUX-PROFESSIONALS<br />
Im Test: Tools für<br />
Online-Umfragen<br />
Meinungen erforschen mit Polldaddy,<br />
Lime Survey und Opina S. 58<br />
Knoppix 7.3<br />
Klaus Knopper über Ausstat<br />
tung, Security und Usability<br />
seines Babys S. 50<br />
Frameworks 5<br />
KDEs großes Aufräumen<br />
des historisch gewucherten<br />
Library-Wirrwarrs S. 66<br />
<strong>Netze</strong> <strong>neu</strong> <strong>ordnen</strong><br />
Software Defined Networking<br />
beendet das administrative<br />
Klein-Klein<br />
■ SDN-Grundlagen: Begriffe, Protokolle,<br />
Effekte, Open Source S. 28<br />
■ Frei und einsatzfähig: Open Flow S. 32<br />
■ Open Daylight bei der <strong>Linux</strong> Foundation S. 38<br />
■ Die aktuellen SDN-Produkte von VMware,<br />
Cisco, Midokura und IBM CS S. 40<br />
■ Mininet: Super Experimentier-Kasten<br />
für Netz- oder SDN-Admins S. 46<br />
■ Anleitung: Verteiltes Storage-Setup<br />
mit simplem ATA over Ethernet S. 76<br />
■ Sehen aus wie Lisp und laufen wie Java:<br />
Webprogramme in Clojure S. 96<br />
Perl-gesteuerte Suchmaschine für Strings sowie Fotos mit Umkreissuche S. 108<br />
www.linux-magazin.de<br />
Deutschland Österreich Schweiz Benelux Spanien Italien<br />
4 6,40 4 7,05 sfr 12,80 4 7,50 4 8,30 4 8,30<br />
4 192587 306401 04
Kompostiertes<br />
Login 04/2014<br />
Editorial<br />
Das <strong>Linux</strong>-<strong>Magazin</strong> begeht dieses Jahr seinen 20. Geburtstag. Neben der<br />
Freude darüber, das dienstälteste gedruckte Nur-<strong>Linux</strong>-Medium auf der Welt<br />
zu sein, mischen sich zugleich Gedanken an übrig Gebliebenes und Vergänglichkeit.<br />
Ich meine nicht nur die rund 1000 unerledigten E-Mails in meinem<br />
Posteingang, die sich über reichlich ein Jahrzehnt angesammelt haben. Vorgestern<br />
legte mir eine Kollegin einen Stapel Zip-Disketten mit <strong>Linux</strong>-<strong>Magazin</strong>-<br />
Druckdaten aus den späten 90ern auf den Schreibtisch.<br />
www.linux-magazin.de<br />
3<br />
Der journalistischen <strong>Linux</strong>-Chronistenpflicht folgend, würde ich die Daten<br />
gerne ins Heute überführen. Gerade im Zuge der 20-Jahres Ausgabe könnten<br />
wir die auch gut brauchen. Nur wie rankommen? Gestern habe ich aus einem<br />
(im Wortsinne) Haufen zum Verschrotten freigegebener Hardware ein Zip-<br />
Laufwerk gezogen. Als Nächstes brauche ich ein seltsames Scsi-Kabel und<br />
einen PC, wo ich das reingesteckt bekomme …<br />
Jan Kleinert, Chefredakteur<br />
Was dem <strong>Linux</strong>-<strong>Magazin</strong> in zehn Jahren in Sachen Leichen-im-Keller bevorsteht, kann es sich schon heute bei<br />
Apple anschauen. Der Macintosh des Computerpioniers ist dieser Tage 30 Jahre alt geworden. Damals galt<br />
der Mac als das Sinnbild für digitale Unabhängigkeit, wozu sicher Ridley Scotts Anti-Big-Brother-Werbevideo<br />
genauso viel beigetragen hat wie die Einstellung: Damals wären Apples Allgemeine Geschäftsbedingungen<br />
von heute undenkbar gewesen.<br />
Ein TV-Team des National Geographic Channel ist dieser Tage bei den Dreharbeiten für die Dokureihe<br />
„Diggers – die Schatzsucher“ überraschend auf eine bislang verschollen geglaubte Zeitkapsel gestoßen. Die<br />
hatten die Veranstalter der International Design Conference in Aspen vor 30 Jahren verbuddelt. Sie sollte<br />
eigentlich nach 20 Jahre wieder geborgen werden. Aufgrund von Arbeiten auf dem betreffenden Gelände<br />
ging das Ding aber sprichwörtlich wie wörtlich verschüttet.<br />
In der ausgegrabenen Zeitkapsel, vielleicht sollte man sie Zeit-Urne nennen, fand sich unter anderem Steve<br />
Jobs’ erste Computermaus. Die hatte der Apple-Gründer den Veranstaltern 1983 als persönlichen Gegenstand<br />
überlassen, nachdem er auf der Konferenz den mittlerweile legendären Vortrag „The Future is not<br />
what it used to be“ gehalten hatte. Dabei benutzte er einen Apple-Computer, in das er genau das heutige<br />
Artefakt gestöpselt hatte.<br />
Vielleicht sollte auch ich irgendwo ein Loch ausheben und die Zip-Disks für die interessierte Nachwelt versenken?<br />
Ich hätte ein Problem weniger, und ein archäologisch vernarrtes TV-Team der Zukunft ein Thema<br />
mehr. Wahrscheinlicher ist, dass mir die Aktion den Ruf einer Umweltsau einbrächte, der Schwermetalle und<br />
mit Weichermachern durchsetzten Kunststoff sorglos im Boden versenkt. Allein den laxen Umweltgesetzen<br />
des Jahres 1983 hat Steve Jobs es zu verdanken, dass seine damalige Müllentsorgungspraxis die heutige<br />
Öffentlichkeit mit Milde aufnimmt. Mäuse von heute, so viel muss klar sein, gehören nicht in Erdlöcher!<br />
Die Zip-Disks lasse ich vorerst auf meinem Schreibtisch liegen. Meine 1000 historischen E-Mails könnte ich<br />
ja einem computergeschichtliches Museum übergeben. Das würde meine digitale Seele sehr entlasten, und<br />
die 20-Jahres-Feierlichkeiten dürfen beginnen.
Inhalt<br />
www.linux-magazin.de 04/2014 04/2014<br />
4<br />
Mit der Anzahl der Geräte und vir tuellen Maschinen wächst die Komplexität der lokalen<br />
Netzwerke ins nicht Beherrschbare. Software Defined Networking (SDN) beendet das administrative<br />
Klein-Klein, indem es untere <strong>Netze</strong>benen zu virtuellen Services abstrahiert. Der<br />
<strong>Magazin</strong>-Schwerpunkt taucht in diese <strong>neu</strong>e und teilweise schon praxistaugliche Technik ein.<br />
Aktuell<br />
Titelthema: <strong>Netze</strong> <strong>neu</strong> <strong>ordnen</strong><br />
6 N ew s<br />
n Libre Office 4.2 ist fertig<br />
n Open SSH 6.5: Schneller und effizienter<br />
n Britische Behörde: Ubuntu ist sicher<br />
n CfP: Chemnitzer <strong>Linux</strong>tage 2014<br />
28 Grundlagen<br />
Titel<br />
Warum und wie Admins mit Software<br />
Defined Networking an Flexibilität und<br />
zentraler Steuerung gewinnen.<br />
38 Open Daylight<br />
Namhafte Unternehmen kooperieren und<br />
erarbeiten einen gemeinsamen Standard.<br />
Im Februar erblickte Open Daylight Tageslicht.<br />
Neben OOXML hält die Europäische Kommission<br />
auch den Einsatz von ODF für okay.<br />
12 Zahlen & Trends<br />
n Centos und Red Hat kooperieren<br />
n Erste <strong>Vorschau</strong> der KDE Frameworks 5<br />
n Cumulus-<strong>Linux</strong> auf Dell-Switches<br />
20 Zacks Kernel-News<br />
n Ein bisschen getrollt: <strong>Linux</strong> und BSD<br />
n Probleme mit »sscanf()«<br />
Software ersetzt die echten Netzwerkgeräte,<br />
die in Tabellen Informationen vorhalten.<br />
32 Open Flow<br />
Dümmere Netzwerkhardware schafft<br />
klügere <strong>Netze</strong>: Bei Open Flow geht diese<br />
Gleichung auf.<br />
40 Enterprise-Produkte<br />
Software Defined Networking gewinnbringend<br />
umzusetzen ist das Ziel von VMware,<br />
Cisco, IBM und Midokura.<br />
46 Mininet<br />
Als Testbett für SDN emuliert Mininet ein<br />
komplettes Netzwerk.<br />
OF-Controller<br />
TCP<br />
Mininet<br />
22 Fosdem 2014<br />
Zwischen 5000 und 12 000 OSS-Freaks<br />
trafen sich in mehr als 500 Vorträgen an<br />
der Freien Universität Brüssel.<br />
Open Flow steuert den Datenfluss zentral und<br />
senkt die Hardwarekosten.<br />
»eth0«<br />
Root Namespace<br />
Socket<br />
»s1-eth0«<br />
Softwareswitch<br />
Socket<br />
»s1-eth1«<br />
Mininet nutzt die Network Namespaces, Veth Pair Veth um Pair<br />
»h1-eth0«<br />
separierte virtuelle Switches anzulegen.<br />
»h2-eth0«<br />
Prozess 1<br />
Prozess 2<br />
Typisch Fosdem: Lennart Poetterings Kdbus-<br />
Vortrag war hoffnungslos überfüllt.<br />
26 Cebit 2014 <strong>Vorschau</strong><br />
Offen und mobil ist das Motto der Cebit,<br />
zumindest was Open Source angeht.<br />
TOOL<br />
DELUG-DVD<br />
Knoppix 7.3 32/64 Bit<br />
TOOL<br />
TOOL<br />
Exklusiv nur hier: Klaus Knoppers<br />
installierbare Live-Distribution.<br />
Neu: Knoppix auf einem USB-Stick<br />
ist jetzt updatebar!<br />
Fosdem-Vorträge<br />
Zum Nachschauen und Hinhören:<br />
4 Stunden Highlights aus Brüssel<br />
H1-Namespace<br />
Details zu DVD-<br />
TOOL<br />
Inhalten auf S. 49<br />
E-Book komplett<br />
„Praxishandbuch VMware Vsphere 5“<br />
Das E-Book kostet regulär 40 Euro!<br />
Magnolia CMS<br />
TOOL<br />
Exklusiv angefertigte Virtual<br />
Appliance mit sonst nicht erhältlichen<br />
Zusatzmodulen<br />
TOOL<br />
SDN: Mininet-VM<br />
H2-Namespace
04/2014 04/2014<br />
Inhalt<br />
58 Meinung zählt<br />
Universitäre Studien, Kundenzufriedenheit<br />
oder die politische Meinung:<br />
Lime Survey, Opina und Polldaddy gestalten<br />
Online-Umfragen.<br />
80 Winterrätsel-Auflösung<br />
„A Plea for lean Software“ lautete die<br />
korrekte Lö sung. 14 Leser lagen richtig,<br />
einer von ihnen gewinnt einen Videorecorder<br />
für den Raspberry Pi.<br />
96 Web funktional<br />
Sieht aus wie Lisp und läuft überall,<br />
wo Java installiert ist: Clojure ist<br />
handlich und bringt jede Menge Bibliotheken<br />
und Tools mit.<br />
www.linux-magazin.de<br />
5<br />
Software<br />
Sysadmin<br />
Know-how<br />
49<br />
Einführung<br />
Auf der DELUG-DVD: Knoppix exklusiv,<br />
eine VM mit Magnolia CMS, Fosdem-<br />
Videos und ein <strong>Linux</strong>-E-Book.<br />
50 Knoppix 7.3<br />
Titel<br />
Klaus Knoppers Live-Betriebssystem in<br />
der <strong>neu</strong>esten Exklusiv-Version.<br />
75 Einführung<br />
Aus dem Alltag eines Sysadmin: Charly<br />
reguliert seine Downloadserver.<br />
76 ATA over Ethernet<br />
Titel<br />
Mit AOE virtuelle Netzwerk-Raids bauen.<br />
92 Kerntechnik – Folge 73<br />
Das Tracing-Werkzeug Ktap hilft bei<br />
Entwicklung, Tuning und Fehlersuche.<br />
Applikation<br />
Bytecode<br />
Ktap<br />
Output<br />
Ktap-Skript (Lua)<br />
Userland<br />
Kernel<br />
56 Magnolia<br />
Das DELUG-Magnolia bietet attraktive<br />
Zugaben des CMS-Herstellers.<br />
Tools wie Guymager erkennen AOE-Laufwerke.<br />
Ktap besteht<br />
Lua-Interpreter<br />
aus einem Kernelmodul<br />
VM Kernelmodul<br />
und einer Applikation. »ktapvm.ko«<br />
Ktap-Runtime-Library<br />
Auch ein Shop-Modul hat Magnolia integriert.<br />
58 Bitparade<br />
Titel<br />
Drei Dienste helfen beim Einrichten und<br />
Auswertung von Online-Umfragen.<br />
66 KDE Frameworks 5<br />
Titel<br />
Die nächsten Frameworks sollen Ordnung<br />
in KDEs Bibliotheken-Wust bringen. Der<br />
An wen der muss weniger installieren.<br />
Forum<br />
80 Winterrätsel-Lösung<br />
Alle Fragen und alle Antworten.<br />
84 Recht<br />
Warum und wann eine Firma für<br />
Vergehen der OSS-Community haftet.<br />
88 Tux liest<br />
Deterministische Auto maten<br />
und weniger<br />
schlechter Code.<br />
90 Leserbriefe<br />
Auf den Punkt gebracht.<br />
Service<br />
»uprobe« »kprobe« »ftrace« »perf«<br />
Programmieren<br />
96 Clojure<br />
Titel<br />
Modernere Webanwendungen schreiben.<br />
102 C++ – Folge 15<br />
Drei Jahre nach C++11 erhält der Sprachstandard<br />
mit C++14 den letzten Schliff.<br />
Ein Beispiel berechnet den Zeitaufwand für einen<br />
Schultag in verschiedenen Auflösungen.<br />
108 Perl-Snapshot<br />
Eine Big-Data-Suchmaschine für Strings<br />
und Fotos mit Elasticsearch.<br />
Die Seite Inqlude führt bereits jetzt zahlreiche<br />
interessante Qt-und KDE-Bibliotheken.<br />
72 Tooltipps<br />
Ajenti 1.2.17, Uncsv 0.9.1, Haveged 1.8,<br />
EBD 0.9.20, Prun, Tcpreplay 4.0.0.<br />
3 Editorial<br />
114 IT-Profimarkt<br />
115 Seminare<br />
117 Stellenanzeiigen<br />
120 Veranstaltungen<br />
120 Inserenten<br />
121 Impressum<br />
122 <strong>Vorschau</strong><br />
Perlmeister Schilli steigt in die vollautomatische<br />
Big-Data-gestützte Bildauswertung ein.
Aktuell<br />
www.linux-magazin.de News 04/2014<br />
6<br />
News<br />
EU empfiehlt „auch ODF“ als Standardformat<br />
Die Europäische Kommission hält den Einsatz von ODF für okay.<br />
Ein Mitglied der schwedischen<br />
Piratenpartei, Amelia Andersdotter,<br />
hatte im November<br />
eine Anfrage an die EU-Kommission<br />
gestellt, in der die<br />
Abgeordnete in zwei Punkten<br />
nachhakte, wie es denn um<br />
die von der EU empfohlenen<br />
Dateiformate stehe.<br />
2011 hatte das Interinstitutionelle<br />
Komitee für Informatik<br />
(IIIS) alle Stellen angewiesen,<br />
den von Microsoft entwickelten<br />
und kontrollierten Standard<br />
OOXML zu unterstützen.<br />
Andersdotter fragte nach, welchen<br />
Sinn das mache, wenn<br />
nur ein Hersteller diesen Standard<br />
implementiere, und wie<br />
man mit öffentlichen Einrichtungen<br />
zu kommunizieren gedenke,<br />
die andere Standards<br />
einsetzen.<br />
Laut Open Source Observatory<br />
auf [https://joinup.ec.europa.<br />
© Europäische Union<br />
eu] hat der Vizepräsident der<br />
Europäischen Kommission –<br />
Maroš Šefčovič höchstselbst<br />
– geantwortet und dabei<br />
OOXML und ODF als Minimalanforderungen<br />
für den<br />
Dokumentenaustausch benannt.<br />
Dies, so Šefčovič, stelle<br />
sicher, dass kein Vendor-Lockin<br />
bestehe oder aufkommen<br />
könne. Zudem sollen Behörden<br />
andere Dateiformate nach<br />
dem Best-Effort-Prinzip, also<br />
soweit es eben praktisch möglich<br />
sei, unterstützen.<br />
Open-Source-Aktivisten vom<br />
Open Forum Europe zeigten<br />
sich von dieser Antwort wenig<br />
beeindruckt und bezeichneten<br />
die Entscheidung als überfällig.<br />
Sie kritisierten, dass es<br />
die Europäische Union nicht<br />
wage, Farbe zu bekennen und<br />
sich auf den einen offenen<br />
Standard ODF festzulegen. n<br />
Google-Mitarbeiter debuggen Ffmpeg und Libav<br />
Mateusz Jurczyk und Gynvael<br />
Coldwind arbeiten beide für<br />
Google und tragen dort den<br />
Titel Information Security Engineers.<br />
Zu ihrem Job gehört<br />
es unter anderem, für das Internet<br />
wichtige Komponenten<br />
auf ihre Sicherheit hin abzuklopfen<br />
und die Hersteller<br />
über Sicherheitslücken zu<br />
informieren.<br />
Dank ihres Arbeitgebers<br />
Google stehen den Sicherheitsforschern<br />
für ihre Aufgabe die<br />
Kapazitäten von Googles Rechenzentren<br />
zur Verfügung,<br />
um im großen Stil automatisierte<br />
Tests umzusetzen, beispielsweise<br />
per Fuzzing.<br />
In den letzten beiden Jahren<br />
sei so auch das in C verfasste<br />
Multimedia-Framework Ffmpeg<br />
[http://www.ffmpeg.org] in<br />
ihren Fokus geraten, schreiben<br />
die Forscher in Googles<br />
Security-Blog [http://googleonlinesecurity.blogspot.de].<br />
Die<br />
Software streamt, konvertiert<br />
und zeichnet Video- und Audio-Datenströme<br />
auf und<br />
dient als Basis für zahlreiche<br />
Anwendungen, zu denen neben<br />
Googles Chrome auch der<br />
beliebte Videolan Client (VLC)<br />
und Mplayer gehören.<br />
Man habe Ffmpeg beim Fuzzing<br />
zunächst unter Zuhilfenahme<br />
von 500 Cores mit simplen<br />
Mutationsalgorithmen<br />
beworfen sowie mit Dateien<br />
aus Mplayers Sample-Video-<br />
Sammlung und aus FATE (Ffmpeg<br />
Automatic Testing Environment).<br />
Im nächsten Schritt<br />
seien die Forscher dann zu<br />
2000 Kernen und zum Einsatz<br />
„komplexerer und effektiverer<br />
Mutationsmethoden“ übergegangen<br />
und hätten mit den<br />
Beispieldateien mehr Code<br />
abgedeckt.<br />
Der Erfolg: In den zwei Jahren<br />
ihrer Arbeit habe das Ffmpeg-Projekt<br />
mehr als 1000<br />
Bugfixes von den Forschern<br />
erhalten, einige von ihnen<br />
Security-bezogen. Das habe<br />
die Robustheit und Sicherheit<br />
von Ffmpeg deutlich gestärkt.<br />
Zugleich haben sie mit den<br />
Maintainern von Libav [https://<br />
libav.org], einem Ffmpeg-Fork,<br />
kooperiert, sodass nun beide<br />
Projekte eine ähnliche Stabilität<br />
aufweisen. Die Libav zähle<br />
zwar erst 413 Patches, hole<br />
aber kontinuierlich auf.<br />
Die Ingenieure wollen auch<br />
künftig mit Ffmpeg und Libav<br />
zusammenarbeiten, bezeichnen<br />
die Projekte als „Fuzz<br />
clean“, raten aber dazu, nur<br />
vertrauenswürdige Inhalte<br />
abzuspielen und andernfalls<br />
Sicherheitsvorkehrungen zu<br />
ergreifen.<br />
n
Open SSH 6.5 sicherer und effizienter<br />
Dass Daniel Bernstein in der<br />
Kryptoszene einen guten Ruf<br />
genießt, ist kein Wunder: Der<br />
Mann hatte 1995 in den USA<br />
einen Prozess gewonnen, der<br />
dazu führte, dass Source code<br />
heute den Schutz des First<br />
Amendments (Meinungsfreiheit)<br />
genießt. Seit dem Urteil<br />
unterliegen Verschlüsselungsalgorithmen<br />
zudem nicht<br />
mehr dem Exportverbot. Dabei<br />
verteidigte sich Bernstein<br />
im späteren Verlauf des Prozesses<br />
sogar selbst, ohne eine<br />
formale Anwaltsausbildung<br />
zu haben.<br />
Das Open-SSH-Projekt [http://<br />
www.openssh.com] vertraut dem<br />
Mathematiker offenbar, was<br />
sich in einigen Änderungen<br />
der Version 6.5 niederschlägt.<br />
SSH-Client und ‐Server setzen<br />
bereits seit einiger Zeit<br />
auf Bernsteins Curve25519-<br />
Algorithmus. Beim asymmetrischen<br />
Schlüsselaustausch<br />
kommt nun das auf elliptischen<br />
Kurven beruhende<br />
Austauschprotokoll Elliptic<br />
Curve Diffie Hellman (ECDH)<br />
zum Einsatz. Es erzeugt die<br />
symmetrischen Schlüssel zum<br />
Chiffrieren der eigentlichen<br />
Kommunikation.<br />
Ebenfalls von Daniel Bernstein<br />
stammt Ed25519, eine<br />
Implementierung des digitalen<br />
Signaturschemas EdDSA,<br />
die zugleich effizienter und sicherer<br />
sein soll als andere Implementierungen<br />
von EdDSA.<br />
Eine <strong>neu</strong>e Transpositions-Variante<br />
kombiniert Bernsteins<br />
Chacha20 mit Poly1305 und<br />
soll kryptographisch schwache<br />
und schlecht implementierte<br />
Chiffrensammlungen<br />
für Transport Layer Security<br />
(R4, CBC) ersetzen.<br />
Zugleich lehnt Open SSH<br />
RSA-Schlüssel von alten proprietären<br />
Clients und Servern<br />
ab, die das obsolete RSA/<br />
MD5-Schema verwenden.<br />
Es akzeptiert lediglich noch<br />
DSA-Keys und auch die nur<br />
zeitlich begrenzt. Schwächere<br />
Hash-Kalkulationen für den<br />
Schlüsselaustausch in unfreien<br />
Clients und Servern lehnt<br />
Open SSH 6.5 nun ab. n<br />
Open SSH gehört zu den Standardtools der meisten <strong>Linux</strong>-Distributionen.<br />
News 04/2014<br />
Aktuell<br />
www.linux-magazin.de<br />
7<br />
Kernel 3.13: NFtables, schnellere SSD-IOPS und NFC mit Secure Element<br />
Mit reisebedingter Verspätung<br />
entließ Linus Torvalds im Januar<br />
2014 die Version 3.13 des<br />
Kernels in die freie Wildbahn,<br />
sie hat wieder interessante<br />
Features im Gepäck. Die Aufnahme<br />
von NFtables in den<br />
Kernel hatte sich ja bereits bei<br />
der Veröffentlichung des Vorgängers<br />
abgezeichnet, nun ist<br />
der Code im Kernel.<br />
Auf der Mailingliste hat NFtables-Entwickler<br />
Patrick McHardy<br />
die aktuelle Version mit der<br />
Nummer 0.099 versehen und<br />
den Code für testfähig und<br />
geeignet für den privaten Einsatz<br />
erklärt. Zugleich kündigte<br />
er für die nächste Version eine<br />
vollständige Kommandoreferenz<br />
sowie eine ausführliche<br />
Dokumentation an.<br />
Mit fast einer Million I/O-Operationen<br />
pro Sekunde (IOPS)<br />
übertreffen aktuelle SSDs den<br />
entsprechenden Wert traditioneller<br />
Festplatten deutlich.<br />
Bei Letzteren setzen physikalische<br />
Eigenschaften von Kopfmechanik<br />
und rotierenden<br />
Scheiben den IOPS Grenzen.<br />
Sequenzielle Zugriffe sind<br />
aus diesem Grund die beste<br />
Wahl.<br />
Das ist bei SSDs anders: Sie<br />
erlauben es, I/O-Operationen<br />
zu parallelisieren, was Kernel<br />
3.13 seit Neuestem unterstützt.<br />
Ein veränderter Block<br />
Layer beherrscht ein Multiqueue-Verfahren<br />
[http://kernel.<br />
dk/blk‐mq.pdf] und erreicht so<br />
viele Millionen IOPS. Allerdings<br />
wurde bislang erst der<br />
»virtioblk«-Treiber portiert,<br />
weitere sollen in den nächsten<br />
Releases folgen.<br />
Bei AMD-Radeon-Karten unterstützt<br />
der <strong>neu</strong>e Kernel<br />
standardmäßig Powermanagement<br />
für verschiedene Asics<br />
(BTC, SI, Evergreen, R7XX)<br />
sowie APUs (Sumo und Palm).<br />
Für mobile AMD-Radeon-<br />
Hardware mit zwei GPUs beherrscht<br />
er zudem automatisches<br />
GPU-Switching.<br />
Auch beim Intel-Support gibt<br />
es Verbesserungen. Kernel<br />
3.13 kommt mit Intels MIC-<br />
Architektur (Many Integrated<br />
Core) zurecht, auf die unter<br />
anderem Xeon-Phi-Prozessoren<br />
setzen. Sie stecken beispielsweise<br />
im Tianhe-2, dem<br />
zurzeit schnellsten Supercomputer<br />
der Welt.<br />
Für ARMs Big-Little-Architektur<br />
gibt es einen Switch, um<br />
bei laufendem Betrieb Aufgaben<br />
an zwei SMP-Systeme zu<br />
delegieren, wobei ein kleiner<br />
Hypervisor die Virtualisierungsfunktionen<br />
der Cortex-<br />
CPUs verwendet.<br />
TCP Fast Open erspart TCP-<br />
Verbindungen einen Roundtrip<br />
und beschleunigt so die<br />
Kommunikation über TCP<br />
– Kernel 3.13 aktiviert es<br />
standardmäßig. Im Ethernet-<br />
Bereich bringt <strong>Linux</strong> Support<br />
für HSR (High-availability<br />
Seamless Redundancy) mit:<br />
In Netzwerken mit Ringtopologie<br />
ermöglicht das Protokoll<br />
Failover-Redundanz.<br />
Auch in der Near Field Communication<br />
(NFC) tut sich<br />
etwas: Der »pn544«-Treiber<br />
unterstützt nun das Secure<br />
Element, um NFC-Anwendungen<br />
sicher auszuführen.<br />
Das soll Bezahlen über NFC<br />
ermöglichen.<br />
Das ist aber wie so oft nur die<br />
Spitze des Eisbergs. Weitere<br />
Neuerungen liefern wie immer<br />
die Kernelversteher von<br />
den Kernelnewbies [http://<br />
kernelnewbies.org/<strong>Linux</strong>_3.13]. Wer<br />
den Kern selbst übersetzen<br />
möchte, findet den Quellcode<br />
auf [ftp://kernel.org]. n
Aktuell<br />
www.linux-magazin.de News 04/2014<br />
8<br />
Sprachsteuerungs-App mit Simon Listens<br />
Eine Android-App macht<br />
das Smartphone zum Drahtlos-Mikrofon<br />
für die Open-<br />
Source- Sprachsteuerung Simon<br />
Listens. Simon Micro ist<br />
nicht kostenlos, sondern für<br />
rund 3 Euro bei Google Play<br />
zu haben. Nach Eingabe von<br />
IP-Adresse, Username und<br />
Passwort verbindet sich das<br />
Mobilgerät mit der Simon-<br />
Listens-Installation.<br />
Was die Sprachsteuerung ermöglicht,<br />
zeigt das Projekt in<br />
zwei Videos: Alte oder körperbehinderte<br />
Menschen können<br />
eine Medienanwendung<br />
inklusive Fernsehen, Musik,<br />
Video und Bildergalerie mit<br />
kurzen Sprachbefehlen steuern.<br />
Weitere Informationen<br />
über die Software und das<br />
Projekt gibt es unter [http://<br />
simon‐listens.org].<br />
n<br />
Die App Simon Micro ist mit wenigen<br />
Angaben als Drahtlos-Mikrofon<br />
konfiguriert.<br />
Britische Behörde: Ubuntu am sichersten<br />
Aus einer Untersuchung verschiedener<br />
Client-Betriebssysteme<br />
durch die britische IT-<br />
Sicherheitsbehörde CESG ist<br />
Ubuntu 12.04 LTS als sicherstes<br />
Produkt hervorgegangen.<br />
Das Testfeld bestand aus elf<br />
Desktop- und Mobil-Betriebssystemen,<br />
dazu gehörten<br />
Windows 7 und 8, Windows<br />
RT, Android 4.2, Apples I-OS<br />
6 und Mac OS X 10.8 sowie<br />
Google Chrome OS 26.<br />
Die Briten untersuchten die<br />
Sicherheit der Systeme in<br />
mehreren Kategorien, beispielsweise<br />
VPN, Festplattenverschlüsselung,<br />
Secure Boot,<br />
Sandboxing sowie die Durchsetzung<br />
von Security Policy<br />
und Update Policy.<br />
Kein System konnte alle Ansprüche<br />
für den Einsatz in britischen<br />
Behörden vollständig<br />
erfüllen, doch Ubuntu 12.04<br />
LTS zeigte sich insgesamt als<br />
das sicherste System im Testfeld.<br />
Die meisten kritischen<br />
Schwächen wies Windows<br />
Phone 8 auf.<br />
Ubuntu-Hersteller Canonical<br />
hofft darauf, mit der Ubuntu-<br />
Version 14.04 LTS aufgrund<br />
der Unterstützung von Secure<br />
Boot noch besser abzuschneiden.<br />
Ausführlichere Informationen<br />
aus erster Hand gibt es<br />
auf der CESG-Website [http://<br />
www.cesg.gov.uk], ein eigenes<br />
PDF auf [http://ubuntu.com] bewertet<br />
die Untersuchung aus<br />
Canonicals Sicht.<br />
n<br />
Libre Office 4.2 ist fertig<br />
Die Document Foundation hat<br />
Version 4.2 von Libre Office<br />
veröffentlicht. Die freie Bürosuite<br />
erfuhr unter anderem<br />
Verbesserungen der Performance<br />
und kann noch mehr<br />
Fremdformate importieren.<br />
Für die Release haben Entwickler<br />
die Tabellenkalkulation<br />
Calc gründlich überholt.<br />
Besonders das Verarbeiten<br />
großer Datenmengen und<br />
der Import umfangreicher<br />
und komplexer Xlsx-Tabellen<br />
klappt nun schneller, weil die<br />
Software ihre Berechnungen<br />
über Open CL auf dem Grafikprozessor<br />
vornimmt.<br />
In Sachen Interoperabilität<br />
kann das freie Office besser<br />
mit Docx-Dateien (Microsoft<br />
OOXML) und RTF-Dokumenten<br />
umgehen. Neue Importfilter<br />
gibt es für Abiword und<br />
Apple Keynote. Die Textverarbeitung<br />
Writer speichert jetzt<br />
Vorlagen auch im Microsoft-<br />
Word-Format DOT.<br />
Daneben haben die Entwickler<br />
70 Prozent der Dialogboxen<br />
der Benutzeroberfläche überarbeitet,<br />
für Poweruser gibt<br />
Libre Office 4.2 beschleunigt Berechnungen in Calc durch den Einsatz der GPU.<br />
es zudem eine Oberfläche zur<br />
Expertenkonfiguration. Die<br />
Windows-Ausgabe der Open-<br />
Source-Suite unterstützt das<br />
IAccessible2-Feature für die<br />
Barrierefreiheit, in der derzeitigen<br />
Release gilt es allerdings<br />
noch als experimentell.<br />
Aus Entwicklersicht beschreibt<br />
Michael Meeks in seinem<br />
Blog die Fortschritte der<br />
<strong>neu</strong>en Version. Dazu gehören<br />
eine bessere Testabdeckung,<br />
das Entfernen von deutschsprachigen<br />
Kommentaren und<br />
totem Code sowie die Umstellung<br />
der technischen Dokumentation<br />
auf Doxygen.<br />
Libre Office ist unter LGPL lizenziert,<br />
Version 4.2 steht für<br />
<strong>Linux</strong>, Windows und Mac OS<br />
X zum Download unter [http://<br />
de.libreoffice.org/download/] bereit.<br />
Der Klick auf den Menü-<br />
Eintrag »Neuerungen 4.2«<br />
führt auf eine deutschsprachige<br />
Seite, welche die Features<br />
von Libre Office 4.2 samt<br />
Screenshots vorstellt. Die<br />
deutsche Lokalisierung des<br />
GUI sowie die Hilfe gibt es als<br />
separate Dateien.<br />
n
Valve verschenkt Spiele an Entwickler<br />
Nicht uneigennützig, aber<br />
großzügiger als viele andere<br />
Firmen bietet Valve Debianund<br />
Ubuntu-Entwicklern die<br />
Spiele aus eigener Herstellung<br />
an. Die frohe Botschaft eröffnete<br />
Neil McGovern, dessen<br />
Firma Collabora mit Valve kooperiert,<br />
seinen Mitentwicklern<br />
zunächst auf der Debian-<br />
Mailingliste.<br />
Demnach erhalten Debian-<br />
Entwickler Zugang zu allen<br />
vergangenen und zukünftigen<br />
Spielen, die Valve produziert<br />
– und das sind nicht die<br />
schlechtesten. Zur Auswahl<br />
zählen etwa Half Live, Left 4<br />
Dead, Dota und Portal. Gute<br />
zwei Wochen später erhielten<br />
auch Ubuntu-Entwickler dieses<br />
Angebot.<br />
Valve dürfte dabei Hintergedanken<br />
hegen, denn das<br />
Wohlwollen der Entwickler<br />
schadet sicher nicht, wenn die<br />
eigene Spielekonsole Steam<br />
auf Debian-Basis läuft. Doch<br />
zeigen sich andere Firmen,<br />
die Debian und Ubuntu im<br />
großen Stil einsetzen, meist<br />
nicht so großzügig.<br />
Die Gruppe der Beschenkten<br />
ist indes überschaubar: Nicht<br />
jeder, der mal ein Patch geliefert<br />
hat, ist automatisch ein<br />
Debian- oder Ubuntu-Entwickler.<br />
Dieser Status setzt<br />
einiges an Vorarbeit voraus<br />
und folgt festen Regeln. n<br />
Coverity bindet Github und Travis CI an<br />
Der Anbieter Coverity hat seinen<br />
kostenlosen Code-Scanservice<br />
für Open-Source-Projekte<br />
nun auch an die Dienste<br />
Github und Travis CI angebunden.<br />
Mit der <strong>neu</strong>en Integration<br />
sollen auch Projekte,<br />
die keine eigene Infrastruktur<br />
betreiben, in den Genuss der<br />
statischen Code-Analyse kommen.<br />
Sie können ihren Code<br />
über den Repository-Hoster<br />
Github oder den Continuous-<br />
Integration-Anbieter Travis<br />
CI zur Untersuchung einreichen.<br />
Zu den ersten Projekten, die<br />
von der <strong>neu</strong>en Schnittstelle<br />
Gebrauch machen, zählt die<br />
Git-Bibliothek Libgit2, die das<br />
publikumswirksam mit einem<br />
Coverity-Badge auf ihrer Github-Seite<br />
signalisiert.<br />
Coveritys statische Code-<br />
Analyse für C/C++ und Java<br />
nutzen inzwischen rund<br />
1200 Open-Source-Projekte,<br />
darunter der <strong>Linux</strong>-Kernel,<br />
der Apache-Webserver und<br />
der Python-Interpreter. Jedes<br />
Jahr veröffentlicht das Unternehmen<br />
zudem den Open<br />
Source Integrity Report, der<br />
Auskunft über den Zustand<br />
der gescannten Open-Source-<br />
Projekte gibt.<br />
Weitere Informationen sowie<br />
kostenlose Anmeldemöglichkeiten<br />
für Projekte gibt es unter<br />
[https://scan.coverity.com]. n<br />
News 04/2014<br />
Aktuell<br />
www.linux-magazin.de<br />
9<br />
Anzeige
Aktuell<br />
www.linux-magazin.de News 04/2014<br />
10<br />
Kurznachrichten<br />
SEO-Panel 3.4.0: Die plattformübergreifende Software will Admins beim<br />
Optimieren von Webseiten helfen. Neu: An Bord sind nun ein fortgeschrittener<br />
Proxymanager, ein Proxy-Import-Feature und die Möglichkeit,<br />
automatisch den Proxy zu wechseln, falls der aktuelle versagt. Die Software<br />
integriert Jquery, und es gibt eine Wiederherstellungsroutine für<br />
Passwörter. Lizenz: GPLv2 [http://www.seopanel.in]<br />
SFL-Phone-KDE 1.3.0: Freier Telefonclient für den KDE-Desktop. Neu:<br />
Die Release verbessert die NAT-Unterstützung, bietet eine optimierte<br />
Rauschunterdrückung und automatische Aussteuerung an und unterstützt<br />
Klingeltöne im Ogg- und Flac-Format. Noch experimentell ist die<br />
Möglichkeit, Videokonferenzen mit mehreren Teilnehmern abzuhalten.<br />
Die Entwickler haben SFL-Phone-KDE unter Einsatz von Qt 5 und QML<br />
umgeschrieben. Da die Software aber nicht auf den KDE-Frameworks in<br />
Version 5 basiert, handelt es sich um eine KDE-4-Anwendung. Lizenz: GPL<br />
[http://sflphone.org]<br />
Epoch 1.0: Minimalistisches, alternatives Initsystem. Neu: Das System ist<br />
in einer einzigen Binärdatei enthalten und benutzt »/etc/epoch.config« als<br />
einzige Konfigurationsdatei. Das Kommando »epoch« dient zum Starten<br />
und Stoppen, Aktivieren und Deaktivieren von Diensten, zeigt deren Status<br />
an und kann den Runlevel wechseln. Das Initsystem verfolgt die PIDs<br />
aller Dienste und unterstützt auch PID-Dateien. Daneben hört es auf die<br />
Tastenkombination [Strg] + [Alt] + [Entf], die beim Booten oder Shutdown<br />
hängende Tasks abbricht. Drückt der Admin die Kombination zweimal<br />
binnen 5 Sekunden, startet Epoch das System <strong>neu</strong>. Lizenz: Public Domain<br />
[http://universe2.us/epoch.html]<br />
Lernstick 2014-01-24: Mobile Lernumgebung in Form eines Live-<strong>Linux</strong>, das<br />
sich auf externen Medien (USB-Sticks) installieren und ausführen lässt.<br />
Neu: Zu den Neuerungen der Software zählt das Programm Arandr, mit<br />
dem der Anwender Monitore und Beamer per GUI einrichtet. Ebenfalls <strong>neu</strong><br />
sind Stopmotion und Synfig Studio für Animationen sowie Raw Therapee<br />
zum Verarbeiten von Raw-Dateien. Viele Anwendungen wie Libre Office,<br />
Krita, Blender, Dia und Fritzing wurden aktualisiert, das betrifft auch die<br />
Treiber für Nvidia- und ATI/AMD-Grafikkarten sowie HP-Drucker. Lizenz:<br />
freie Software [http://www.imedias.ch/projekte/lernstick/]<br />
Luminance HDR 2.4.0: Plattformübergreifende Software, die beim Erstellen<br />
von HDR-Fotos hilft. Neu: Version 2.4.0 setzt automatisches Anti-<br />
Ghosting ein und unterstützt FITS (Flexible Image Transport System), ein<br />
Standarddatenformat in der Astronomie. Zudem bringt Luminance HDR<br />
einen verbesserten Merge-Algorithmus für 32-Bit-TIFFs mit. Lizenz: GPLv2<br />
[http://sourceforge.net/projects/qtpfsgui/]<br />
Endian Firewall Community 3.0 erhältlich<br />
Das Unternehmen Endian hat<br />
seine Firewall-Distribution in<br />
Version 3.0 als Community-<br />
Edition veröffentlicht. Die<br />
kostenlose und GPLv2-lizenzierte<br />
Ausgabe bringt einen<br />
HTTPS-Filter sowie einen<br />
SMTP-Proxy mit. Bei IPsec<br />
gibt es zusätzliche Verschlüsselungs-<br />
und Hashing-Algorithmen<br />
sowie Ike in Version<br />
2. Open VPN unterstützt nun<br />
den TUN-Modus und hat eine<br />
Benutzerverwaltung sowie<br />
integrierte CA im Gepäck. Für<br />
Echtzeit-Logging sorgt das<br />
Tool Ntop-ng.<br />
Das ISO-Image für die Community-Ausgabe<br />
steht auf der<br />
Webseite [http://www.endian.<br />
com] zum Download bereit,<br />
zugleich ist auch Endians<br />
Enterprise-Produkt für das<br />
Unified Threat Management<br />
(UTM) in Version 3.0 verfügbar.<br />
Für dieses bietet die Firma<br />
auf Anfrage eine Online-<br />
Demo an.<br />
n<br />
X11-Nachfolger: Wayland und Weston in Version 1.4<br />
Eine aktuelle Statistik zeigt,<br />
dass etwa 90 Prozent der Änderungen<br />
für die Version 1.4<br />
der Grafikprotokolle Wayland<br />
und Weston den Referenz-<br />
Compositor Weston betreffen.<br />
Die 40 Entwickler haben während<br />
des Release-Prozesses<br />
425 Commits für Weston abgeliefert<br />
und nur 46 für Wayland.<br />
Das verdeutlicht die Präferenz<br />
der Entwicklungsarbeit<br />
und unterstreicht die Aussage<br />
von Kristian Høgsberg, nach<br />
der Wayland mittlerweile<br />
recht stabil laufe.<br />
Die Änderungen an Wayland<br />
bestehen im Wesentlichen aus<br />
Bugfixes. Das Subsurfaces-<br />
Protokoll ist im Wayland-Repo<br />
gelandet und empfiehlt sich<br />
so dem offiziellen Wayland-<br />
Protokoll. Hilfsfunktionen<br />
sollen den SHM-Puffer gegen<br />
kaputte oder bösartige Clients<br />
schützen.<br />
Die Änderungen an Weston<br />
entsprechen laut Høgsberg<br />
ziemlich genau den ursprünglichen<br />
Plänen. So gibt es nun<br />
zum Beispiel Fensterknöpfchen<br />
für Xwayland-Windows<br />
und saubere Dekorationen für<br />
den eingebetteten Compositor.<br />
Der GL-Renderer ist ein ladbares<br />
Modul, was es Weston<br />
ermöglicht, zur Laufzeit von<br />
Pixman zum GL-Renderer zu<br />
wechseln. Das führe zu einem<br />
fixeren Start des Compositors,<br />
weil Weston EGL und GLES2<br />
nachladen könne.<br />
Der Touchscreen-Support<br />
wurde ebenso optimiert wie<br />
die Keyboard-Fokus-Animation<br />
und Exposay, eine Exposé-artige<br />
Animation zur<br />
Fensterauswahl. Das Weston-<br />
Terminal verfügt jetzt über eine<br />
Scrollback-Historie und ein<br />
Kontextmenü, unter anderem<br />
für Copy & Paste-Aktionen.<br />
Weston unterstützt neben<br />
XRGB 8888 weitere Framebuffer-Formate<br />
und verwendet<br />
Logind für privilegierte<br />
Zugänge. Letzteres übernimmt<br />
auf diesem Wege die Aufgabe,<br />
die zuvor das Programm<br />
»weston‐launch« erledigt hat,<br />
weshalb Weston nun ohne<br />
Support des Setuid Helper<br />
mit Kernel-Modesetting läuft.<br />
Nicht zuletzt gibt es auch ein<br />
paar kleinere Änderungen an<br />
Mesa.<br />
Der Quellcode der <strong>neu</strong>en<br />
Versionen von Wayland und<br />
Weston lässt sich wie immer<br />
über die Release-Seiten [http://<br />
wayland.freedesktop.org] herunterladen.<br />
(kki/mfe/mhu) n
Aktuell<br />
www.linux-magazin.de Zahlen & Trends 04/2014<br />
12<br />
Zahlen & Trends<br />
VoIP: Gemeinschaft ändert die Lizenz<br />
Das Telefonanlagen-Projekt Gemeinschaft wechselt zur MIT-Lizenz.<br />
Für das Telefonanlagen-Projekt<br />
„Gemeinschaft“ beginnt<br />
das <strong>neu</strong>e Jahr mit ein paar<br />
Veränderungen. Für die Anwender<br />
am wichtigsten ist<br />
sicherlich, dass die Macher<br />
die Lizenz für die Version 5<br />
von GPL auf MIT umstellen.<br />
Zusätzlich verabschiedet sich<br />
nach knapp zehn Jahren der<br />
Projektgründer und Coreteam-<br />
Leiter Stefan Wintermeyer –<br />
wenn auch auf Raten.<br />
Laut Wintermeyer erweise<br />
sich die GPL für viele Firmen,<br />
die Gemeinschaft verändert<br />
verkaufen wollen, als problematisch.<br />
Darum erfolge nun<br />
der Wechsel hin zur MIT-Lizenz.<br />
Die immer noch populären<br />
Versionen 3 und 4 unterliegen<br />
indes weiterhin der<br />
GPL, weil eine Umstellung auf<br />
die MIT-Lizenz faktisch unmöglich<br />
sei. Zeitgleich wächst<br />
das Coreteam personell, und<br />
Sascha Daniels wird <strong>neu</strong>er<br />
Chef. Nach Aussage seines<br />
Vorgängers hat er in den letzten<br />
Jahren als Gemeinschaft-<br />
3-Maintainer gezeigt, dass er<br />
die beste Besetzung für diese<br />
Position sei.<br />
Projektgründer Wintermeyer<br />
will und kann sich nur langsam<br />
aus dem Coreteam zurückziehen<br />
und wird weiterhin<br />
in der Gemeinschaft-<br />
5-Community aktiv bleiben,<br />
zumal seine Firma Amooma<br />
die Anlagen-Bestandskunden<br />
weiterhin betreut. Technisch<br />
stehen für 2014 keine Umbrüche<br />
an, was für eine Telefonanlagensoftware<br />
kein Nachteil<br />
sein muss. Zusätzliche Telefonmodelle<br />
fürs Provisioning<br />
seien aber zu erwarten. n<br />
Centos und Red Hat kooperieren<br />
Erste <strong>Vorschau</strong> auf KDE Frameworks 5<br />
Das amerikanische Open-<br />
Source-Unternehmen Red<br />
Hat und die Macher der Red-<br />
Hat-basierten Community-<br />
Distribution Centos haben<br />
angekündigt künftig enger<br />
zusammenzuarbeiten. Red<br />
Hat möchte die Centos-Community<br />
besser integrieren,<br />
während Red Hat Enterprise<br />
<strong>Linux</strong> (RHEL) als Enterprise-<br />
Angebot bestehen bleibt. Das<br />
Fedora-Projekt soll auch in<br />
Zukunft für das Ausprobieren<br />
innovativer Technologien zuständig<br />
sein.<br />
Wie Karanbir Singh vom<br />
Centos-Projekt Anfang Januar<br />
2014 auf der Projektseite<br />
[http://www.centos.org] schrieb,<br />
geht es den Partnern auch um<br />
eine Zusammenarbeit jenseits<br />
der Betriebssystem-Plattform,<br />
zum Beispiel beim Cloud<br />
Computing mit Open Stack.<br />
Red Hat will dem Centos-<br />
Projekt beim Ausbau seines<br />
Buildsystems helfen und es<br />
mit weiteren Ressourcen unterstützen.<br />
Auch soll ein Git-<br />
Repository die Zusammenarbeit<br />
erleichtern.<br />
Centos begleitet die noch<br />
junge Initiative mit einem<br />
<strong>neu</strong>en Governing Board, das<br />
sich aus dem bestehenden<br />
Centos-Coreteam sowie weiteren<br />
Mitgliedern aus der<br />
Centos-Community und von<br />
Red Hat zusammensetzt. n<br />
Seit fast drei Jahren bereitet<br />
das KDE-Projekt seine Bibliotheken<br />
für Version 5 der<br />
Desktopumgebung vor. Nun<br />
ist eine erste Preview-Variante<br />
von KDE Frameworks 5<br />
verfügbar. Die insgesamt 57<br />
Module erweitern das C++-<br />
Toolkit Qt 5 und stellen zum<br />
Beispiel Funktionen für Menüs,<br />
Dateizugriffe sowie eine<br />
Rechtschreibprüfung für KDE-<br />
Anwendungen bereit.<br />
Die einzelnen Komponenten<br />
sind unterschiedlich ausgereift,<br />
als am weitesten fortgeschritten<br />
betrachten die<br />
Entwickler Karchive zur Dateikomprimierung<br />
und Thread<br />
Weaver. Letzteres kümmert<br />
sich, unterstützt von Jobs<br />
oder Queues, um die Thread-<br />
Verwaltung. Eine Liste der<br />
vorhandenen Module liefert<br />
KDEs Community-Wiki [http://<br />
community.kde.org].<br />
Die aktuelle Preview 4.95.0<br />
steht im Quelltext (unter der<br />
LGPLv2.1) und in Form von<br />
Binärpaketen für Kubuntu,<br />
Open Suse und Arch <strong>Linux</strong><br />
zum Download bereit. Anfang<br />
April 2014 soll es nach den<br />
aktuellen Plänen eine Beta<br />
geben, im Juni erwarten die<br />
Macher schließlich die endgültige<br />
Release. Hinweise für<br />
interessierte Tester und Entwickler<br />
finden sich auf Dot<br />
KDE [http://dot.kde.org]. n
Ubucon 2014 sucht Themen und Beiträge<br />
Vom 17. bis 19. Oktober 2014<br />
feiert die Benutzerkonferenz<br />
Ubucon das 10-jährige Bestehen<br />
von Canonicals Distribution.<br />
Bis zum 31. Juli<br />
nehmen die Organisatoren<br />
nun Vorschläge für Vorträge<br />
entgegen.<br />
Aus den Wünschen der<br />
Community entsteht eine Liste<br />
mit gefragten Vortragsthemen.<br />
Dabei schreiben die Veranstalter,<br />
die Besucher sollten nicht<br />
schüchtern sein: „Kaum eine<br />
Idee kann zu abstrus sein, als<br />
dass sie nicht in das Konzept<br />
passt. Natürlich sollte das gewünschte<br />
Thema am besten<br />
mit Ubuntu, aber zumindest<br />
mit <strong>Linux</strong> und/oder Open<br />
Source zu tun haben.“<br />
Anschließend können sich bis<br />
15. August Referenten und<br />
Gesprächsleiter für Vorträge,<br />
Workshops und Diskussionsrunden<br />
melden. Dabei dient<br />
die Themenwunschliste lediglich<br />
als Anregung, es besteht<br />
kein Zwang, sich an diese<br />
Liste zu halten, auch eigene<br />
Vorschläge sind willkommen.<br />
Weitere Details und eine Kontaktmöglichkeit<br />
finden sich<br />
im Call-for-Papers-Bereich auf<br />
der Webseite.<br />
Die Ubucon 2014 wird in der<br />
niedersächsischen Gemeinde<br />
Katlenburg-Lindau stattfinden.<br />
Alle Infos zur Veranstaltung<br />
und über die Möglichkeit,<br />
mitzuhelfen, gibt es<br />
unter [http://ubucon.de/2014/].n<br />
Cumulus’ <strong>Linux</strong> auf Dell-Switches<br />
Durch ein Vertriebsabkommen<br />
mit Cumulus Networks<br />
bietet Dell auf seiner Netzwerkhardware<br />
nun optional<br />
deren <strong>Linux</strong>-basierte Software<br />
an. Laut Dell soll die Trennung<br />
zwischen Hardware und<br />
Software den Unternehmen<br />
mehr Auswahl und Flexibilität<br />
bringen, beispielsweise<br />
sollen sie künftig die geeignetste<br />
Software-Ausstattung<br />
für ihr Einsatzszenario wählen<br />
können.<br />
Darüber hinaus ermögliche<br />
der Austausch der Software<br />
auf Netzwerkgeräten schnellere<br />
Innovationszyklen. In<br />
einem ersten Schritt sollen<br />
die Top-of-Rack-Switches Dell<br />
Networking S6000 und S4810<br />
wahlweise mit dem <strong>Linux</strong>-<br />
Netzwerkbetriebssystem von<br />
Cumulus Networks erhältlich<br />
sein, und zwar noch im ersten<br />
Quartal 2014.<br />
Das 2010 gegründete kalifornische<br />
Unternehmen Cumulus<br />
ist auf <strong>Linux</strong>-Systeme für<br />
Netzwerk-Switches spezialisiert.<br />
Sein <strong>Linux</strong> beruht auf<br />
der freien Distribution Debian<br />
und läuft auf 1G/10G/40G-<br />
Hardware. Es bietet Layer-3-<br />
Features wie Open Shortest<br />
Path First (OSPF), Border-<br />
Gateway-Protokoll (BGP) und<br />
Layer-2-Features wie VLAN-<br />
Trunks oder IPv6 Router Advertisement.<br />
Es unterstützt VxLAN und integriert<br />
sich mit VMware NSX<br />
oder Open Stack. Hinzu kommen<br />
Funktionen für Management,<br />
QoS, Monitoring (mit<br />
Collectd, Ganglia, Net-SNMP,<br />
Nagios/Icinga, Graphite) und<br />
Sicherheit sowie zur Automation<br />
(mit Puppet, Chef, Cfengine).<br />
Details und eine Evaluationsversion<br />
auf Anfrage gibt<br />
es auf der Produktseite. n
Aktuell<br />
www.linux-magazin.de Zahlen & Trends 04/2014<br />
14<br />
Docker erhält Finanzspritze von 15 Millionen US-Dollar<br />
Die Container-Virtualisierer<br />
von Docker haben für die<br />
Weiterentwicklung des gleichnamigen<br />
Produkts in einer<br />
zweiten Finanzierungsrunde<br />
15 Millionen US-Dollar von<br />
verschiedenen Venture-Kapital-Firmen<br />
eingestrichen. Das<br />
Geld feiern die Gründer der<br />
Firma in ihrem Blog als Anerkennung<br />
ihrer Arbeit: Mittlerweile<br />
gebe es 5000 Anwendungen<br />
in Form von Docker-<br />
Containern, das Konzept sei<br />
auf dem Schirm großer Firmen<br />
wie Ebay und Yandex. Zudem<br />
habe man Docker in Tools wie<br />
Chef und Puppet und Plattformen<br />
wie Open Stack und<br />
Google Compute Engine und<br />
Rackspace integriert.<br />
Mit der Finanzierung im Rücken<br />
wollen die Entwickler<br />
das Docker-Projekt auf die<br />
„nächste Ebene“ heben. Geld<br />
soll in verschiedene Bereiche<br />
fließen, wobei an erster<br />
Stelle die Entwicklung der<br />
Open-Source-Plattform steht.<br />
Die Version 1.0 von Docker<br />
ist das nächste Ziel der Entwickler.<br />
Sie wollen zusätzliche<br />
Plattformen erschließen<br />
und die Fähigkeiten von Docker<br />
nach den Wünschen der<br />
Community erweitern. Auf<br />
der To-do-Liste steht auch der<br />
Ausbau in Sachen Dokumentation<br />
und Training, Konferenzen<br />
und Treffen sollen einen<br />
einfachen Zugang für <strong>neu</strong>e<br />
Entwickler ermöglichen.<br />
Die Docker-Macher möchten<br />
zudem die Community-<br />
Plattform weiterentwickeln,<br />
die Infrastruktur rund um<br />
Docker verbessern und die<br />
Herkunft öffentlicher Container<br />
transparenter gestalten.<br />
Nicht zuletzt soll das Geld in<br />
den kommerziellen Support<br />
und die Hosting-Plattform für<br />
zahlende Kunden fließen. So<br />
hofft das Projekt, seine Open-<br />
Source-Bereiche nachhaltig<br />
finanzieren zu können. n<br />
<strong>Linux</strong>con und Plumbers Conference in Düsseldorf<br />
Die <strong>Linux</strong>con Europe 2014 findet<br />
vom 13. bis 15. Oktober<br />
in Düsseldorf statt, erstmals<br />
zusammen mit der <strong>Linux</strong><br />
Plumbers Conference. Ebenfalls<br />
vor Ort sind die Embedded<br />
<strong>Linux</strong> Conference sowie<br />
das KVM-Forum.<br />
Der Call for Papers für das<br />
von der <strong>Linux</strong> Foundation organisierte<br />
Event läuft bis zum<br />
11. Juli. Themen sind Kernelentwicklung,<br />
Virtualisierung,<br />
Cloud Computing, Dateisysteme,<br />
Big Data sowie Software<br />
Defined Networking.<br />
Im selben Abwasch hat die<br />
Foundation den Plan für ihre<br />
weiteren Veranstaltungen im<br />
Jahr 2014 veröffentlicht. Ein<br />
Novum war der Open Daylight<br />
Summit am 4. und 5. Februar<br />
2014 im kalifornischen Santa<br />
Clara, der sich dem hauseigenen<br />
Projekt zum Software<br />
Defined Networking widmete.<br />
Die amerikanische <strong>Linux</strong>con<br />
findet vom 20. bis 22 August<br />
2014 in Chicago statt, zusammen<br />
mit dem Kernel Summit,<br />
der geschlossenen Arbeitssitzung<br />
der <strong>Linux</strong>-Entwickler. n<br />
Shotwell als Pantheon Photos geforkt<br />
Ein komfortabler Bildbetrachter<br />
für <strong>Linux</strong> heißt Shotwell,<br />
entwickelt hat ihn seit 2009<br />
die Open-Source-Firma Yorba.<br />
Doch diese kümmert sich inzwischen<br />
vornehmlich um<br />
ein anderes Projekt, den E-<br />
Mail-Client Geary, und hat<br />
daher einem Fork durch die<br />
Entwickler des Elementary-<br />
Projekts zugestimmt.<br />
Jim Nelson, der Chef von<br />
Yorba, sei mit der Übernahme<br />
einverstanden, erklärt Elementary-OS-Entwickler<br />
Daniel<br />
Foré auf der Elementary-<br />
Mailingliste, denn Yorba sei<br />
derzeit komplett mit der Arbeit<br />
an Geary ausgelastet.<br />
Da die Shotwell-Macher allerdings<br />
der Gnome Developer<br />
Community beigetreten seien,<br />
Shotwell wurde geforkt und heißt nun Pantheon Photos.<br />
müsste die weitere Entwicklung<br />
von Shotwell über Gnomes<br />
Git und den Bugtracker<br />
des Projekts laufen, was für<br />
die Elementary-OS-Entwickler<br />
offenbar wenig attraktiv ist.<br />
Man habe sich daher mit Nelson<br />
geeinigt, Shotwell unter<br />
dem Namen Pantheon Photos<br />
zu forken und die Entwicklung<br />
auf die Launchpad-Plattform<br />
zu verlagern.<br />
Yorba will Shotwell zwar später<br />
selbst weiterentwickeln,<br />
aber Jim Nelson verspricht,<br />
den Pantheon-Entwicklern<br />
mit Rat und Tat zur Seite zu<br />
stehen. Die erhoffen sich von<br />
Pantheon Photos einen erstklassigen<br />
Bildbetrachter für<br />
den in Elementary OS eingesetzten<br />
Pantheon-Desktop. n
Aktuell<br />
www.linux-magazin.de Zahlen & Trends 04/2014<br />
16<br />
Grafische Oberfläche für Lizenzcheck mit SPDX<br />
Triplecheck ist eine freie Software<br />
mit grafischer Oberfläche,<br />
die künftig der Analyse<br />
von Software Compliances<br />
dienen soll. Sie liest und erstellt<br />
SPDX-Dokumente, ihr<br />
Entwickler hat sie auf der Fosdem<br />
im Februar vorgestellt.<br />
Sie soll großen Softwareprojekten<br />
beim Verwalten freier<br />
Lizenzen helfen.<br />
Mit ihren Lizenzen möchten<br />
Open-Source-Projekte meist<br />
sicherstellen, dass ihr Code<br />
möglichst vielen Menschen<br />
und der Gemeinschaft nützt<br />
und – falls das Copyleft-Prinzip<br />
greift – Änderungen am<br />
Code wieder allen zur Verfügung<br />
stehen.<br />
Nun existieren jedoch etliche<br />
freie Lizenzen, die sich auf<br />
Tausende von Projekten verteilen.<br />
In Großprojekten, die<br />
schnell mal Hunderte von<br />
Der Prototyp von Triplecheck: Ein GUI verwaltet SPDX-Dokumente.<br />
freien Bibliotheken verwenden,<br />
geht so mitunter der<br />
Überblick verloren, welche<br />
Lizenzen im Einsatz sind. Das<br />
dürfte der Rechtsabteilung<br />
Magenbeschwerden verursachen,<br />
denn Copyleft-Lizenzen<br />
sind nicht in jedem Einsatzbereich<br />
erwünscht.<br />
Hier soll künftig Triplecheck<br />
[http://triplecheck.de] gepaart<br />
mit der SPDX-Spezifikation<br />
(Software Package Data Exchange)<br />
in die Bresche springen.<br />
Erdacht auf dem <strong>Linux</strong><br />
Collaboration Summit 2010<br />
und unterstützt von der <strong>Linux</strong><br />
Foundation soll die SPDX-Spezifikation<br />
(aktuell ist Version<br />
1.2) das Verwalten der Lizenzen<br />
in Großprojekten vereinfachen.<br />
Indem Entwickler die freien<br />
Lizenzen, die auf einer vordefinierten<br />
Liste stehen, maschinenlesbar<br />
in Quellcode einbetten<br />
und durch bestimmte<br />
Tags und Formate erweitern,<br />
bringen sie Ordnung in den<br />
Lizenzdschungel. Triplecheck,<br />
das unter der European Public<br />
License (EUPL) steht, implementiert<br />
die Spezifikation<br />
nun in einer Software mit grafischer<br />
Oberfläche.<br />
Triplecheck ist in Java geschrieben,<br />
läuft plattformübergreifend<br />
und benötigt<br />
keine Installation. Der Quellcode<br />
von Version 0.2 steht seit<br />
der Fosdem online.<br />
Das Tool zeigt, für welche<br />
Quellcodedateien überhaupt<br />
Lizenzinformationen vorliegen<br />
und welche Komponenten<br />
von Drittanbietern zum<br />
Einsatz kommen, auf die die<br />
Software zugreift, etwa Icons<br />
und Bibliotheken. Daneben<br />
lässt Triplecheck seine Anwender<br />
SPDX-Dokumente mit<br />
Hilfe eines grafischen Editors<br />
bearbeiten.<br />
n<br />
Konkrete Pläne für Fedora Server<br />
Kein Ubuntu Phone vor 2015<br />
Nach Version 20 wollen die<br />
Fedora-Entwickler ihre Distribution<br />
in mehreren Varianten<br />
anbieten. Die Anforderungen<br />
für eine Server-Ausgabe nehmen<br />
nun Gestalt an, denn die<br />
im Oktober 2013 gegründete<br />
Arbeitsgruppe hat den letzten<br />
Entwurf des Product Requirements<br />
Document (PRD) online<br />
gestellt.<br />
Der Server soll demnach als<br />
Community-Plattform für<br />
Administratoren dienen, die<br />
Dienste mit der <strong>neu</strong>sten Technologie<br />
installieren möchten.<br />
Er soll sowohl einzelne<br />
Dienste abdecken, sich aber<br />
auch für den Betrieb eines<br />
ganzen Rechenzentrums und<br />
den Aufbau einer privaten<br />
Cloud eignen.<br />
Daneben unterscheidet die Arbeitsgruppe<br />
fünf Zielgruppen<br />
für den Server: Der MacGyver-Admin<br />
muss mit geringen<br />
Ressourcen auskommen, der<br />
Devops-Techie möchte rasch<br />
Anwendungen ausliefern, der<br />
traditionelle Entwickler erwartet<br />
stabile APIs und ABIs, der<br />
Junior-Admin braucht einen<br />
einfachen Mechanismen zur<br />
Serververwaltung. Nicht zuletzt<br />
soll die Server-Variante<br />
auch Entscheidungsträger<br />
mit Open-Source-Interesse<br />
ansprechen.<br />
Die Arbeitsgruppe bittet nun<br />
auf der Mailingliste um Feedback,<br />
das Fedora-Wiki liefert<br />
unter dem Stichwort „Fedora.<br />
next“ weitere Informationen<br />
für Interessierte.<br />
n<br />
In einer „Ask Me Anything“-<br />
Session (IAMA) dürfen Reddit-Leser<br />
willige Prominente<br />
mit Fragen löchern. Auch<br />
Ubuntus Community-Manager<br />
Jono Bacon gab dort bereitwillig<br />
Auskunft. Seine Session<br />
lief Mitte Januar 2014,<br />
und er ließ auch das Thema<br />
Ubuntu Phone nicht aus. Es<br />
würde ihn wundern, so Bacon,<br />
wenn sich vor 2015 ein<br />
großer Anbieter finden würde,<br />
der das Ubuntu Phone auf den<br />
Markt bringe.<br />
Das kollidiert zwar nicht mit<br />
der Aussage seines Chefs<br />
Mark Shuttleworth, relativiert<br />
sie aber ein wenig. Ubuntus<br />
Gründer sprach einen Monat<br />
zuvor noch davon, einen Vertrag<br />
mit einem Hersteller für<br />
das Ubuntu-Smartphone abgeschlossen<br />
zu haben, ohne aber<br />
Details preiszugeben. Seine<br />
rechte Hand – Bacon – gab<br />
nun zu Protokoll, dass kleinere<br />
OEMs womöglich schon<br />
vor 2015 Ubuntu-Touch-Geräte<br />
ausliefern könnten, allerdings<br />
beschränkt auf einzelne Regionen<br />
der Welt. Das könnte<br />
darauf hinweisen, dass die<br />
Suche nach einem größeren<br />
Verkäufer fürs Ubuntu Phone<br />
noch andauert.<br />
Zumindest verschafft der <strong>neu</strong>erliche<br />
Aufschub Canonicals<br />
Entwicklern eine Atempause.<br />
Diese können sie nutzen, um<br />
den Displaymanager Mir zu<br />
stabilisieren und das relativ<br />
überschaubare Angebot an<br />
Apps auszubauen. n
Aktuell<br />
www.linux-magazin.de Zahlen & Trends 04/2014<br />
18<br />
Schweizer Open Source Directory nimmt noch Ausländer auf<br />
Das Open Source Directory<br />
[http://www.ossdirectory.ch] der<br />
Swiss Open User Group (kurz<br />
CH/Open) verzeichnet seit<br />
Kurzem auch mehr als 100<br />
deutsche Firmen. 257 Firmen,<br />
347 Open-Source-Produkte<br />
und 260 OSS-Referenzen<br />
umfasste das OSS Directory<br />
von CH/Open zu Redaktionsschluss.<br />
Darin enthalten sind<br />
nun die Firmenprofile aller<br />
Mitglieder der Open Source<br />
Business Alliance (OSBA). Sie<br />
sind speziell gekennzeichnet<br />
und können bis zu zehn eigene<br />
Produkte eintragen.<br />
Auch funktional habe man<br />
das OSS Directory verbessert,<br />
schreibt die User Group CH/<br />
Open in einer Pressemitteilung.<br />
Neu seien beispielsweise<br />
Anwendungsbeispiele,<br />
mit deren Hilfe die Nutzer der<br />
Webseite alle OSS-Referenzen<br />
einer Behörde sehen. Die Firmen<br />
lassen sich nach Land<br />
und Ort filtern, wobei die<br />
Datenbank nun mehrere Niederlassungen<br />
erfasst. Auch<br />
Stelleninserate für Jobs rund<br />
um das Thema Freie Software<br />
sind in der Rubrik „OSS Jobs“<br />
möglich.<br />
Als nächstes Projekt stehen<br />
die Verbesserung der Mehrsprachigkeit<br />
und die Ausweitung<br />
des Verzeichnisses in die<br />
französischsprachige Schweiz<br />
(Romandie) ins Haus. n<br />
Das Schweizer OSS Directory expandiert und zeigt in der Suche nun auch deutsche<br />
Firmen an. Geholfen dabei hat die OSBA.<br />
Britischer Minister will mehr Open Source<br />
VMware kauft Airwatch für 1,13 Milliarden<br />
Francis Maude, der britische<br />
Minister für Kabinettsangelegenheiten,<br />
möchte kleinere<br />
und mittlere Unternehmen<br />
(KMU) stärken, indem er<br />
dafür plädiert, proprietären<br />
Lösungen wie MS Office den<br />
Rücken zu kehren. Beachtliche<br />
200 Millionen Pfund an<br />
Steuergeldern seien seit 2010<br />
allein für Microsofts Office-<br />
Suite in die Kassen des Redmonder<br />
Konzerns geflossen,<br />
kritisiert der Minister.<br />
Seine Lösung laut einem<br />
„Guardian“-Bericht: Wechsel<br />
auf Open-Source-Software.<br />
Dazu zählt er neben Open<br />
Office allerdings auch den<br />
Onlinedienst Google Docs,<br />
der im klassischen Sinne weder<br />
frei noch offen ist, sondern<br />
lediglich kostenlos. Mit<br />
diesem Schritt ließe sich das<br />
Oligopol der IT-Ausrüster, das<br />
aus „wenigen großen Firmen“<br />
bestehe, brechen, gab der Minister<br />
auf einer Veranstaltung<br />
zur Präsentation <strong>neu</strong>er Onlinedienste<br />
zu Protokoll.<br />
Der Einsatz offener Standards<br />
werde nicht nur die Ministerien<br />
aus ihrem proprietären<br />
Lock-in befreien, sondern<br />
auch die Tür für alternative<br />
Software-Anbieter aufstoßen,<br />
so offenbar das Kalkül<br />
des Politikers. Im Endeffekt<br />
möchte Maude mit seiner<br />
Open-Source-Strategie wahrscheinlich<br />
auch die Anzahl<br />
jener KMU erhöhen, die Aufträge<br />
im öffentlichen Sektor<br />
übernehmen.<br />
Ein Beispiel, das seine<br />
Wunsch vorstellung deutlich<br />
machen soll, gab der Minister<br />
auch gleich. So habe ihm ein<br />
<strong>neu</strong>er Hostingvertrag gezeigt,<br />
dass die Regierung auf diesem<br />
Weg enorm viel Geld sparen<br />
könne. Eine kleinere Firma<br />
habe den <strong>neu</strong> ausgeschriebenen<br />
Auftrag für 60 000 Pfund<br />
erledigt, während der große<br />
Anbieter für die Leistung etwa<br />
4 Millionen verlangte. Das sei<br />
natürlich ein Extrembeispiel,<br />
er hoffe aber, dem Steuerzahler<br />
Geld zu sparen. n<br />
Umgerechnet 1,13 Milliarden<br />
Euro (1,54 Milliarden<br />
US-Dollar) legt VMware auf<br />
den Tisch, um sich Airwatch<br />
einzuverleiben. Der Virtualisierer<br />
hofft darauf, mit Hilfe<br />
seines Neuerwerbs besser im<br />
Cloud- und Mobilbereich Fuß<br />
zu fassen.<br />
Airwatch kümmert sich im<br />
Wesentlichen um die Verwaltung<br />
mobiler Geräte, vor allem<br />
unter Sicherheitsgesichtspunkten.<br />
Das ist zunehmend<br />
ein Thema, denn im Rahmen<br />
von Bring Your Own Device<br />
(BYOD) melden sich immer<br />
mehr Mitarbeiter mit ihren<br />
mobilen Geräten im Firmennetz<br />
an. Admins treibt diese<br />
Entwicklung insbesondere<br />
vor dem Hintergrund der Sicherheit<br />
allerdings den Angstschweiß<br />
auf die Stirn.<br />
„Mit diesem Erwerb wird<br />
VMware seine Computing-<br />
Angebote für Enduser um ein<br />
grundlegendes Element erweitern,<br />
was es unseren Kunden<br />
ermöglichen wird, mit ihren<br />
mobilen Arbeitskräften durchzustarten,<br />
ohne die Sicherheit<br />
zu gefährden“, schreibt<br />
Patrick Gelsinger, CEO von<br />
VMware, in der offiziellen<br />
Ankündigung.<br />
Wenig überraschend gibt auch<br />
Alan Dabbiere, Chairman von<br />
Airwatch, seiner Freude Ausdruck:<br />
„Indem wir uns einem<br />
bewährten Innovator wie<br />
VMware anschließen, erhalten<br />
wir die Gelegenheit, unsere<br />
marktführenden Lösungen<br />
einem breiteren Spektrum<br />
von Kunden und Partnern anzubieten<br />
und ihnen zu helfen,<br />
sich optimal auf die Mobile-<br />
Cloud-Welt einzustellen.“<br />
Bei der Gelegenheit nannte<br />
VMware auch gleich den Umsatz<br />
für das vierte Quartal<br />
2013: Demnach machte das<br />
Unternehmen einen Umsatz<br />
von 1,48 Milliarden US-Dollar<br />
(etwa 1,1 Milliarden Euro)<br />
und steigerte ihn damit um<br />
20 Prozent im Vergleich zum<br />
vierten Quartal des Vorjahres.<br />
(jk/kki/mhu/mfe)<br />
n
Aktuell<br />
www.linux-magazin.de Kernel-News 04/2014<br />
20<br />
Zacks Kernel-News<br />
Mehr Sicherheit fürs Sandboxing<br />
Die SE-<strong>Linux</strong>-Sandbox des Red-Hat-Entwicklers Dan Walsh (hier auf dem <strong>Linux</strong>tag<br />
2011) finden manche Entwickler nicht sicher genug.<br />
Der russische Entwickler<br />
Viktor Porton kritisiert das<br />
Sandbox-Kommando von SE<br />
<strong>Linux</strong>. Er schreibt, Programme<br />
in der Sandbox könnten<br />
immer noch <strong>neu</strong>e Prozesse<br />
außerhalb erzeugen oder den<br />
Systemcall »setsid()« aufrufen,<br />
um auszubrechen. Er<br />
schlägt vor, jedem Prozess in<br />
der Sandbox ein <strong>neu</strong>es Feld<br />
als Sandbox-ID hinzuzufügen.<br />
Kindprozesse erben diese ID<br />
und unterliegen dann den<br />
gleichen Beschränkungen wie<br />
ihr Erzeuger.<br />
Den Vorschlag, dafür Cgroups<br />
zu verwenden, nahm er gerne<br />
an. Doch da schaltete sich Andy<br />
Lutomirski ein, er schrieb:<br />
„Meiner Meinung nach sind<br />
Cgroups ein völlig gescheiterter<br />
Versuch, eine Schnittstelle<br />
für normale Programme zu<br />
schaffen. Es wird sogar immer<br />
schlimmer.“ In einer weiteren<br />
Mail geht Andy aber auf Viktors<br />
ursprünglichen Vorschlag<br />
ein. Er empfiehlt, statt einer<br />
weiteren ID das Kernelfeature<br />
Subreaper zu verwenden, das<br />
es seit <strong>Linux</strong> 3.4 gibt. Es verfolgt<br />
die Abstammung von<br />
Prozessen und teilt entfernten<br />
Vorfahren mit, wenn deren<br />
Nachkommen sich beenden.<br />
Andy möchte Subreaper mit<br />
einem weiteren Modus ausstatten,<br />
der ganze Prozessbäume<br />
kontrolliert und ein<br />
API bereitstellt, über das man<br />
allen Prozessen ein Signal<br />
schicken kann, etwa um sie<br />
zu beenden. So soll kein Prozess<br />
mehr aus der Sandbox<br />
ausbüchsen.<br />
Viktor wendet ein, dass dann<br />
die Anwendungen den <strong>neu</strong>en<br />
Subreaper-Modus unterstützen<br />
müssten. Dabei seien es<br />
gerade diese Programme, denen<br />
er nicht traue und die er<br />
deshalb in eine Sandbox sperre.<br />
Andy präzisiert, nicht die<br />
fremde Software, sondern der<br />
Sandbox-Mechanismus müsse<br />
das Feature unterstützen,<br />
denn die fraglichen Prozesse<br />
sollten als Kinder der Sandbox<br />
laufen.<br />
Ein anderer Ansatz stammt<br />
von Joshua Brindle. Er schlägt<br />
vor, die Sandbox durch einen<br />
Seccomp-Filter sicherer zu<br />
machen, der die verfügbaren<br />
Systemcalls einschränkt. Auf<br />
diese Weise ließe sich beispielsweise<br />
»setsid()« in den<br />
Griff bekommen.<br />
Viktor hält das für keine passende<br />
Lösung für sein Szenario.<br />
Er möchte bestimmte<br />
Subnetze für die Sandbox<br />
sperren, und das könne Seccomp<br />
nicht. In seinem Weblog<br />
[http://portonsoft.wordpress.<br />
com] veröffentlicht er weitere<br />
Überlegungen zum Thema,<br />
die interessanterweise doch<br />
auf Cgroups setzen. n<br />
Ein bisschen getrollt: <strong>Linux</strong>, BKL und BSD<br />
Auch die Nachricht eines so<br />
genannten Trolls kann zu interessanten<br />
Diskussionen auf<br />
der Kernel-Mailingliste führen.<br />
Im Januar schlug ein Störenfried<br />
mit dem Pseudonym<br />
Antti Heikkinen vor, <strong>Linux</strong> in<br />
der Sprache Perl <strong>neu</strong> zu schreiben,<br />
denn das Betriebssystem<br />
sei aufgebläht und schlecht<br />
entworfen. Ein anderer Troll<br />
fügte hinzu: „<strong>Linux</strong> hatte länger<br />
als die Konkurrenz ein Big<br />
Kernel Lock (BKL). Es wurde<br />
nie ordentlich entworfen, Free<br />
BSD dagegen ist organisierter<br />
und einheitlicher.“<br />
Theodore Ts’o parierte gekonnt:<br />
„<strong>Linux</strong> hat länger am<br />
BKL festgehalten, weil es SMP<br />
schon länger als die Konkurrenz<br />
unterstützt. BKL sind wir<br />
endgültig Mitte 2012 losgeworden.<br />
Dagegen hatten Free<br />
BSD, Net BSD und Open BSD<br />
noch im Jahr 2013 ein äquivalentes<br />
Giant Lock in einigen<br />
Subsystemen.“<br />
Er fuhr fort: „Natürlich skaliert<br />
<strong>Linux</strong> schon lange besser<br />
als die BSD-Familie, SGI etwa<br />
verwendet es auf Systemen<br />
mit Hunderten Prozessoren,<br />
und <strong>Linux</strong>-Anwender betreiben<br />
schon ein Jahrzehnt lang<br />
Rechner mit 32 oder 64 CPUs.<br />
Free BSD dagegen rühmte<br />
sich erst 2013 seiner verbesserten<br />
Skalierbarkeit auf 16<br />
Prozessoren.“<br />
Zum Thema Trolle bemerkte<br />
Ted: „Mein Lieblingsvorschlag<br />
dieser Art stammt aus den<br />
frühen Neunzigern und lautet,<br />
BSD 4.3 nach Emacs Lisp<br />
zu portieren, damit man das<br />
komplette System unter GNU<br />
Emacs betreiben kann.“ n
Vorsichtig am ABI kratzen<br />
Der Keyring-Maintainer David<br />
Howells hat <strong>neu</strong>lich ein<br />
heikles Thema auf die Tagesordnung<br />
gebracht. Einige<br />
Kerberos-Entwickler hatten<br />
ihn gebeten, die Systemcalls<br />
»add_key(«) und »request_<br />
key()« zu ändern, dazu einige<br />
Kernelfunktionen.<br />
Insbesondere wünschten sie<br />
sich, dass die Bibliothek Libkrb5<br />
bei einem Fehler den<br />
Session-Keyring als Fallback<br />
benutzen kann. Existiert der<br />
Keyring aber nicht, legen Kinit<br />
und der Kernel derzeit automatisch<br />
einen an, der jedoch<br />
wieder verschwindet, wenn<br />
Kinit sich beendet.<br />
David erwog ein paar Lösungen,<br />
von denen einige den<br />
Kernel berührten, andere ihn<br />
unangetastet lassen. Die Kerbe<br />
ros-Entwickler könnten beispielsweise<br />
aus dem Userspace<br />
einen Session-Keyring<br />
anlegen. So käme es nicht dazu,<br />
dass Kinit einen erzeugt<br />
– und man müsste nichts im<br />
Kernel ändern.<br />
Daneben fand er aber auch<br />
gute Argumente für Anpassungen<br />
im Kernel, denn der brauche<br />
ja nicht stillschweigend<br />
einen <strong>neu</strong>en Session-Keyring<br />
anzulegen. Stattdessen könne<br />
er den User-Session-Keyring<br />
als Fallback verwenden. Nach<br />
Davids Ansicht würde diese<br />
Änderung die meisten Prozesse<br />
nicht stören.<br />
Da dies aber eine Änderung<br />
des Kernel-ABI bedeuteten<br />
würde, fragte David vorsichtig<br />
auf der Mailingliste an. Linus<br />
Torvalds antwortete, indem<br />
er die eiserne ABI-Regel des<br />
Kernels zitierte: „Sollte jemand<br />
die Änderung zu spüren<br />
bekommen, machen wir sie<br />
wieder rückgängig. In anderen<br />
Worten: Änderungen sind<br />
nicht vollkommen tabu, aber<br />
sie dürfen keine anderen Programme<br />
stören.“<br />
Daneben schrieb Linus: „Ehrlich<br />
gesagt kann ich das nicht<br />
beurteilen. Deine Änderung<br />
hört sich vernünftig an, aber<br />
wer weiß, was in den Distributionen<br />
vor sich geht. Wir<br />
müssen sehr vorsichtig sein<br />
und den Kerberos-Leuten<br />
klarmachen, dass wir die Änderung<br />
gnadenlos zurücknehmen<br />
werden, wenn sie bestehenden<br />
Benutzern Probleme<br />
macht.“<br />
n<br />
Probleme mit »sscanf()«<br />
Der Intel-Entwickler Bruce<br />
W. Allen hat der Mailingliste<br />
einen möglichen Bug in der<br />
»sscanf()«-Implementierung<br />
des Kernels gemeldet. Die<br />
Funktion liest eine Zeichenkette<br />
aus mehreren Teilen<br />
und teilt sie in mehrere Stücke,<br />
deren Länge vorgegeben<br />
ist. Bruce schrieb, während<br />
»sscanf()« aus der C-Bibliothek<br />
korrekt funktioniere, setze<br />
die Version im Kernel eines<br />
der Ergebnisse auf 0.<br />
Al Viro konnte das Problem<br />
bis zu einem Patch des Suse-<br />
Entwicklers Jan Beulich vom<br />
Dezember 2012 zurückverfolgen.<br />
Der wollte das Verhalten<br />
der Funktion eigentlich besser<br />
Anzeige<br />
an den Standard anpassen:<br />
Der Anwender sollte für jeden<br />
Teilstring die gewünschte<br />
Byte-Länge angeben dürfen.<br />
Um das zu erreichen, verwirft<br />
Jans Code die überzähligen<br />
Zeichen der Eingabe. Doch<br />
wirft er zu viel weg.<br />
In seiner gründlichen Art vergrub<br />
sich Al weiter im Code<br />
von »sscanf()« und förderte<br />
weitere Probleme zutage. Linus<br />
Torvalds fand die ganze<br />
Sache viel zu kompliziert. Er<br />
schlug vor, dem Problem auszuweichen<br />
und Feldgrößen in<br />
»sscanf()« gar nicht zu unterstützen<br />
– allerdings nur dann,<br />
wenn niemand sie benutzt.<br />
(Zack Brown/mhu) n<br />
Kernel-News 04/2014<br />
Aktuell<br />
www.linux-magazin.de<br />
21<br />
2.6.34.x am Ende<br />
Der finnische Entwickler Aaro<br />
Koskinen hat sich besorgt<br />
erkundigt, ob es denn für den<br />
Kernelzweig 2.6.34.x keine<br />
Updates mehr gebe. Dessen<br />
Maintainer, Paul Gortmaker<br />
von Wind River, hatte bereits<br />
im Juli 2013 angekündigt, den<br />
Zweig in den Ruhestand zu<br />
versetzen. Paul antwortete, er<br />
plane noch eine weitere Ausgabe.<br />
Wenn das End of Life<br />
(EOL) erreicht sei, werde er<br />
es auf der Kernel-Homepage<br />
bekanntgeben.<br />
H. Peter Anvin merkte an, es<br />
sei schon mehr als ein Jahr<br />
seit der letzten 2.6.34-Release<br />
vergangen. Damit habe dieser<br />
Zweig fünf Monate Rückstand<br />
gegenüber 2.6.32, und es fehlten<br />
einige Securitypatches.<br />
Daraufhin brachte Paul noch<br />
eine Version heraus, mittlerweile<br />
ist 2.6.34.15 aber als<br />
EOL markiert. <br />
n
Aktuell<br />
www.linux-magazin.de Fosdem 2014 04/2013<br />
22<br />
Zu Besuch bei einem der wichtigsten OSS-Events Europas<br />
Brüsseler Spitzen<br />
Um 1700 war Brüssel ein wichtiges Zentrum der Spitzenklöppelei, am 1. und 2. Februar 2014 dagegen die Pilgerstätte<br />
für Open-Source-Entwickler. Ein (zu) dicht gedrängtes Programm der Fosdem lockte eine ungezählt<br />
große Besucherschar an, darunter einen Reporter des <strong>Linux</strong>-<strong>Magazin</strong>s. Text und Fotos: Markus Feilner, Holger Gantikow<br />
Die Fosdem ist Spitze. Zumindest<br />
in der Open-Source-<br />
Szene hat sich das 2001<br />
erstmals veranstaltete Event<br />
etabliert, hier trifft sich alles,<br />
was in der freien Software<br />
Rang und Namen hat – vom<br />
Kernelentwickler bis zum<br />
BSD-Mastermind und dem<br />
Desktop- oder Groupware-<br />
Evangelisten.<br />
Frei wie die Uni<br />
Die vielleicht größte Open-<br />
Source-Konferenz Europas [1],<br />
traditionell an der Libre Université<br />
de Bruxelles [2] ausgetragen<br />
und wie immer mit<br />
dem legendären Beer Event<br />
im Café Delirium (Abbildung<br />
1) eingeleitet ([3], [4]), stellt<br />
den Besucher schon bei der<br />
Planung vor einige Probleme:<br />
512 Vorträge [5], Lightning<br />
Talks, Workshops, LPI-Zertifizierungen,<br />
Devrooms, BOFs<br />
(Birds of a Feather) verteilen<br />
sich auf über 20 Tracks und in<br />
mehr als zehn verschiedene<br />
Räume in vier Gebäuden des<br />
ausgedehnten Solbusch Campus<br />
im Osten der belgischen<br />
Hauptstadt.<br />
Wären da nicht die Videos<br />
[6], die das Team dieses Jahr<br />
kurzerhand von allen Vorträgen<br />
aufzeichnete und im Web<br />
veröffentlichte, dann hätte<br />
niemand die Chance, einen<br />
auch nur annähernd signifikanten<br />
Anteil der Veranstaltungen<br />
zu verfolgen. Die Idee<br />
für die Videos und die Organisation<br />
der Technik entstand<br />
spontan innerhalb von zwei<br />
Wochen, die Keynotes finden<br />
sich auf der DELUG-DVD dieses<br />
<strong>Magazin</strong>s.<br />
Der Besuch der vollständig<br />
von freiwilligen Helfern organisierten<br />
und von OSS-Firmen<br />
gesponsorten Veranstaltung<br />
(Abbildung 2) ist kostenlos,<br />
was allerdings auch jedwede<br />
Messung des Besucherstroms<br />
unmöglich macht – es gibt<br />
keine Eintrittskarten, Listen<br />
oder Ähnliches. Doch weil<br />
die Fosdem-Netzwerker wieder<br />
einmal ein fast perfekt<br />
funktionierendes WLAN (Abbildung<br />
3, 2014 erstmals auch<br />
mit IPv6) auf die Beine stellten,<br />
bestand die Möglichkeit<br />
einer Schätzung.<br />
Gesichert ist nur die Mindestanzahl:<br />
„Wir hatten wenigstens<br />
450 Besucher – so viele<br />
Referenten waren nachvollziehbar<br />
anwesend. Genauso<br />
sicher ist, dass mehr als 8000<br />
unterschiedliche MAC-Adressen<br />
im Netz waren. Also waren<br />
ungefähr 5000 bis 12 000<br />
Leute hier, je nachdem, wie<br />
viele Geräte pro Person man<br />
als Durchschnitt annimmt“,<br />
erklärten die Veranstalter<br />
am Sonntagabend in der Abschluss-Keynote.<br />
Teilweise überfüllt<br />
Bei so vielen Besuchern, Räumen<br />
und prominenten Rednern<br />
wird schnell klar, dass<br />
es für den Besucher nicht realistisch<br />
ist, alle interessanten<br />
Vorträge zu besuchen. Gerade<br />
Themen, die die OSS-Community<br />
aktuell hitzig diskutiert,<br />
sorgen regelmäßig für lange<br />
Schlagen vor den Hörsälen.<br />
Unter anderem bei Lennart<br />
Poettering trat dieser Effekt<br />
auf. Der Kernelentwickler, der<br />
mit Systemd für erbitterte Diskussionen<br />
gesorgt hatte, stellte<br />
in einem vollbesetzten Raum,<br />
in dem schätzungsweise 100<br />
Sitzplätze waren, Kdbus vor<br />
[7]. Vor der Tür drängelten<br />
sich mindestens ebenso viele<br />
Interessierte, die aber der Moderator<br />
abwies (Abbildungen<br />
4 und 5).<br />
Kdbus<br />
Poettering (auf Google Plus unter<br />
dem Pseudonym „Lennart-<br />
PoetteringTheOneAndOnly“<br />
unterwegs), der wie sein Entwicklerkollege<br />
Kay Sievers<br />
wieder im roten „Open Source<br />
Tea Party“-T-Shirt auftrat (ein<br />
Seitenhieb auf eine Diskussion<br />
mit Canonicals Mark Shuttleworth),<br />
darf sich freuen, beim<br />
Thema Kdbus mit dem ebenfalls<br />
anwesenden Greg Kroah-<br />
Hartman einen der wichtigsten<br />
Kernelentwickler auf seiner<br />
Seite zu haben.<br />
Doch auch die vorgetragenen<br />
technischen Argumente vermochten<br />
die Zuhörer wohl zu<br />
überzeugen – die kritischen<br />
Stimmen hielten sich bei den<br />
Nachfragen in Grenzen. Kdbus<br />
sei deutlich performanter<br />
als der D-Bus-Daemon (es<br />
brauche bisweilen nur ein<br />
Fünftel der Context Switches),<br />
stehe bereits beim Booten zur<br />
DELUG-DVD<br />
Auf der DELUG-<br />
DELUG-DVD<br />
DVD warten knapp vier Stunden<br />
Videomaterial aus Janson, dem<br />
Keynote-Auditorium und größten<br />
Hörsaal der Libre Université<br />
de Bruxelles, auf Zuschauer.
Abbildung 1: 10 000 Bier gingen über den Tresen – glaubt man den Informationen,<br />
die am Ende des feucht-fröhlichen Beer Events im Café Delirium kursierten.<br />
Abbildung 2: Sponsoren – ja, aber organisiert wird die Fosdem traditionell von<br />
vielen Freiwilligen. Die organisieren das Netz, filmen die Videos und moderieren.<br />
Abbildung 3: Ein WLAN für 8000 Geräte mit wahlweise IPv6, Dual Stack oder<br />
IPv4 parallel? Was auf kommerziellen Messen oft zum Ärgernis wird, scheint<br />
kein Problem, wenn sich die richtigen Open-Source-Leute drum kümmern.<br />
Verfügung und habe auch<br />
sonst einige Vorteile. Über ein<br />
Unix-Standardinterface samt<br />
API (ein Device unter »/dev«)<br />
können Anwendungen über<br />
das Kdbus-System Informationen<br />
und Daten austauschen<br />
(Interprozesskommunikation),<br />
wo bei sich sowohl effizienter<br />
Datentransfer im Gigabyte-<br />
Bereich wie auch Credentials<br />
und Meta-Informationen,<br />
Timestamps und viele andere<br />
Features umsetzen lassen.<br />
PostgreSQL- und<br />
Libre-Office-Days<br />
Am Freitag vor der Fosdem<br />
trafen sich die PostgreSQL-<br />
Entwickler im Radisson-Hotel.<br />
Der „Fosdem PG Day“ (Abbildung<br />
6, [8]) ist geprägt von<br />
technischen Vorträgen, Talks<br />
und Keynotes. Abends setzen<br />
sich die Datenbank-Developer<br />
gemütlich zusammen, in einem<br />
eigenen Event in Konkurrenz<br />
zum gerne überfüllten<br />
Fosdem Beer Event.<br />
Eine andere Entwicklergruppe<br />
blieb dagegen länger in Brüssel:<br />
An den Tagen nach der<br />
Konferenz traf sich die Libre-<br />
Ofice-Community, um auf<br />
dem „Libre Office UX Hackfest“<br />
([9], Abbildung 7) weiter<br />
an der freien Officesuite zu<br />
arbeiten. Kurz vor der Fosdem<br />
hatte das Team erst die Version<br />
4.2 herausgegeben [10],<br />
die die Konferenzbesucher am<br />
Libre-Office-Stand unter die<br />
Lupe nehmen konnten. Auch<br />
der Termin für die diesjährige<br />
Libre Office Conference steht<br />
mittlerweile fest: Sie findet<br />
vom 2. bis 5. September in<br />
Bern statt.<br />
Automotive<br />
Großen Raum auf der Fosdem<br />
nahmen die Vorträge aus dem<br />
Embedded-Bereich ein, allen<br />
voran die Themen „Connected<br />
Car und FOSS“, etwa im<br />
Vortrag von Mikael Söderberg.<br />
Der schilderte, wie viel freie<br />
Software in Autos eingezogen<br />
ist und wie aus dem Infotainment-Bereich<br />
mehr und mehr<br />
Open-Source-Produkte in andere<br />
Bereiche der Fahrzeuge<br />
„springen“. Marktforschern<br />
zufolge werden bereits in wenigen<br />
Jahren „die meisten Infotainment-Systeme<br />
mit <strong>Linux</strong><br />
statt QNX oder Windows laufen“<br />
(Söderberg).<br />
Vollvirtualisierte<br />
ARM-Architektur<br />
Auch Xen on ARM war ein<br />
Thema. Nicht nur ein weiterer<br />
Port sei das, erklärt<br />
Stefa no Stabellini, vielmehr<br />
habe man auch die Architektur<br />
aufgeräumt und „viel<br />
Kram rausgeworfen, der aus<br />
der x86-Historie kommt, etwa<br />
Qemu – jetzt ist keine Emulation<br />
mehr notwendig und die<br />
Codebase ist deutlich kleiner“.<br />
Nur noch ein Zehntel soll die<br />
Fosdem 2014 04/2013<br />
Aktuell<br />
www.linux-magazin.de<br />
23<br />
Abbildung 4: Vielleicht die Hälfte der Interessierten schaffte es, einen Sitzplatz<br />
bei Lennart Poetterings Vortrag über Kdbus zu ergattern. Der Rest drängte sich<br />
vor der Tür, während …<br />
Abbildung 5: … drinnen Lennart – unterstützt von Greg Kroah-Hartman und Kay<br />
Sievers – die Vorteile des <strong>neu</strong>en Interprozess-Kommunikation-Mechanismus<br />
Kdbus vorstellte.
Aktuell<br />
www.linux-magazin.de Fosdem 2014 04/2013<br />
24<br />
umfassen – bei fast gleichem<br />
Feature-Umfang.<br />
Auf ARM gäbe es keine Unterscheidung<br />
mehr zwischen<br />
Para- und Vollvirtualisierung,<br />
sondern nur noch Hardware-<br />
Virtualisierung mit so genannten<br />
Paravirtualized Interfaces.<br />
Und für Android wollen die<br />
Entwickler bald Xen auf ARM<br />
in der Version Kitkat (Android<br />
4.4) bringen, basierend auf<br />
Kernel 3.8.<br />
Archäologie<br />
Während sich in den Technik-Tracks<br />
die Urgesteine wie<br />
Howard Chu („Was ist <strong>neu</strong> in<br />
Open LDAP“?, Abbildung 8,<br />
[11]) tummelten, drehten sich<br />
die Keynotes beispielsweise<br />
um Wikipedia-Autokorrektur:<br />
Da niel Naber schilderte die<br />
Probleme der Wikipedia mit<br />
Grammatik- und Stilfehlern<br />
und wie sie das mit Hilfe des<br />
Java-Language-Tools lösen<br />
konnte.<br />
In der zweiten Keynote gab<br />
John Turnbull Anregungen,<br />
wie sich ein <strong>neu</strong>er Entwickler<br />
am besten in ein altes<br />
Softwareprojekte einarbeitet.<br />
Unter dem Titel der „Software-Archäologie“<br />
schilderte<br />
er sowohl soziale Regeln mit<br />
Verhaltensweisen wie auch<br />
das technische Vorgehen für<br />
den, der <strong>neu</strong> zu einem etablierten,<br />
alten Projekt stoße.<br />
Reden, höfliches Nachfragen,<br />
Lesen, Dokumentation updaten<br />
und Tests einbringen und<br />
beschreiben seien da hilfreich,<br />
meint Turnbull.<br />
OSS und die NSA<br />
Und zu guter Letzt blieb auch<br />
die sonst beabsichtigt unpolitische<br />
Fosdem nicht vor<br />
einer Keynote über den NSA-<br />
Skandal verschont. In einem<br />
anschließend viel diskutierten<br />
Vortrag zeigte der Varnish- und<br />
BSD-Entwickler Poul-Henning<br />
Kamp auf unterhaltsame<br />
Weise Spekulationen, wie<br />
denn die NSA-Einflussnahme<br />
auf Open-Source-Projekte und<br />
die gängigen Sicherheitstechnologien<br />
aussehen könnte –<br />
Deckname: Orchestra (Abbildung<br />
9).<br />
Hätte er „die finanziellen und<br />
technischen Möglichkeiten<br />
der US-Geheimdienste, dann<br />
würde ich die Open-Source-<br />
Community unterwandern“<br />
und „sicherheitsrelevante<br />
Projekte unnötig komplex und<br />
APIs so kompliziert und undurchschaubar<br />
gestalten wie<br />
etwa das Open-Source-Kronjuwel<br />
Open SSL“. Außerdem<br />
würde er dafür sorgen, dass<br />
niemand selbst signierte Zertifikate<br />
verwendet, sondern nur<br />
die von der NSA beglaubigten<br />
Root-CAs. n<br />
Infos<br />
[1] Fosdem 2014: [http:// www.<br />
fosdem. org/ 2014]<br />
[2] LUB: [http:// www. ulb. ac. be]<br />
[3] Beer Event:<br />
[https:// fosdem. org/ 2014/<br />
practical/ beerevent/]<br />
[4] Café Delirium:<br />
[http:// deliriumcafe. be]<br />
[5] Fosdem-Events:<br />
[https:// fosdem. org/ 2014/<br />
schedule/ events/]<br />
[6] Fosdem-Videos:<br />
[http:// video. fosdem. org]<br />
[7] Kdbus: [https:// plus. google.<br />
com/ +LennartPoettering<br />
TheOne AndOnly/ posts/<br />
13JZ7GpyVDb]<br />
[8] Fosdem, PG Day: [http://<br />
fosdem2014. pgconf. eu]<br />
[9] Libre Office UX, Hackfest:<br />
[https:// wiki. document<br />
fo un dation. org/ Hackfest/<br />
FOSDEM2014]<br />
[10] Mathias Huber, „Libre Office<br />
4.2 ist fertig“: [http:// www.<br />
linux- magazin. de/ NEWS/<br />
Libre‐Office‐4. 2‐ist‐fertig/]<br />
[11] Interview mit Howard Chu:<br />
[https:// fosdem. org/ 2014/ interviews/<br />
2014‐howard‐chu/]<br />
Abbildung 6: Die PostgreSQL-Community traf sich vor der Fosdem, …<br />
Abbildung 7: … die Libre-Office-Entwickler in den Tagen danach.<br />
Abbildung 8: Auch wenn das Grumpy-Cat-Bild am Ende seiner Präsentation<br />
nichts Gutes vermuten ließ, blieb der Open-LDAP-Entwickler Howard Chu für<br />
Fragen nach seinem Vortrag doch aufgeschlossen.<br />
Abbildung 9: „Open SSL ist ein Kronjuwel der OSS-Welt, aber das API und die<br />
Dokumentation sind so schlecht, dass es ein Leichtes wäre, darin bösartigen<br />
Code unterzubringen“ – Poul-Henning Kamp über die Möglichkeiten der NSA.
Aktuell<br />
www.linux-magazin.de Cebit 04/2014<br />
26<br />
<strong>Linux</strong> und Open Source auf der Cebit 2014<br />
Offen und mobil<br />
Auf der Cebit vom 10. bis 14. März 2014 kommen die Liebhaber von freier Software und <strong>Linux</strong> auf ihre Kosten.<br />
Der zentrale Anlaufpunkt dafür ist Halle 6 mit der Special Conference Open Source. Mathias Huber<br />
Abbildung 1: Die Special Conference Open Source in Halle 6 bietet nonstop Vorträge zu <strong>Linux</strong> und freier Software.<br />
Wer auf dem weitläufigen<br />
Gelände der Cebit 2014 nach<br />
<strong>Linux</strong> und Open Source sucht,<br />
sollte einen Abstecher in Halle<br />
6 machen. Dort findet er die<br />
„Special Conference Open<br />
Source“ samt Vortragsbühne<br />
(Abbildung 1), den „Open<br />
Source Park“ mit seinen Ausstellern<br />
sowie den „Mobile<br />
Enterprise Park“.<br />
Vorträge nonstop<br />
Auf der Open-Source-Bühne<br />
(Block H01) präsentiert täglich<br />
um 12.15 Uhr Klaus<br />
Knopper seine <strong>neu</strong>este Knoppix-Edition<br />
7.3, die er für das<br />
<strong>Linux</strong>-<strong>Magazin</strong> maßgeschneidert<br />
hat. Neben Hilfe für<br />
Einsteiger hat Knopper auch<br />
Tipps und Tricks für Fortgeschrittene<br />
parat.<br />
Themen für IT-Professionals<br />
behandelt am selben Ort die<br />
Firma Heinlein Support. Die<br />
<strong>Linux</strong>-Spezialisten sind täglich<br />
um 13.45 Uhr mit Vorträgen<br />
über IT-Mana gement,<br />
Open Stack und Cloud stack<br />
sowie sicheres Filesharing<br />
und Mailhosting vertreten<br />
und fördern das Programm<br />
als Hauptsponsor.<br />
Dem aktuellen Thema UEFI<br />
und Secure Boot widmet sich<br />
der <strong>Linux</strong>-<strong>Magazin</strong>-Autor Udo<br />
Seidel, daneben gibt es Empfehlungen<br />
für die Migration<br />
zu Libre Office sowie zu Softwareverteilung<br />
und Clientmanagement.<br />
Holger Gantikow<br />
von der Science+Computing<br />
AG macht Smartphones und<br />
Tablets zum Schweizer Taschenmesser<br />
für Admins.<br />
In pointierter Rede trägt das<br />
amerikanische <strong>Linux</strong>-Urgestein<br />
Jon „Maddog“ Hall<br />
seine Ansichten zu freier<br />
Software vor, etwa über Open<br />
Source in der Bildung, die<br />
NSA-Spitzelaffäre und zum<br />
Infrastrukturprokekt Caua in<br />
Brasilien. Dazwischen ist Hall<br />
am Stand der Medialinx AG<br />
(Block H08) zu finden, wo er<br />
Anwendungen des preiswerten<br />
ARM-Boards Raspberry Pi<br />
demonstriert. Das Vortragsprogramm<br />
ist unter [http://<br />
www.linux‐magazin.de/Cebit<br />
‐2014] zu finden.<br />
Preisverleihung<br />
Am Donnerstag (13. März)<br />
wird die Vortragsbühne zum<br />
Schauplatz einer besonderen<br />
Veranstaltung. Die Medialinx<br />
AG, Herausgeberin des <strong>Linux</strong>-<br />
<strong>Magazin</strong>s, verleiht ihre „<strong>Linux</strong><br />
New Media Awards 2014“ und<br />
zeichnet damit besondere<br />
Leistungen im Bereich <strong>Linux</strong><br />
und Open Source aus. Ab 17<br />
Uhr übergeben prominente<br />
Laudatoren die Trophäen an<br />
die Gewinner, die bis zum<br />
letzten Augenblick geheim<br />
bleiben. Prämien gibt es in sieben<br />
Kategorien. Dazu gehören<br />
die beste Open-Source-Lösung<br />
zum Konfigurationsmanagement,<br />
das beste Privacy-Tool,<br />
das innovativste Projekt, die<br />
beste freie Android-App, das<br />
beste Addon für den Raspberry<br />
Pi sowie den bedeutendsten<br />
Beitrag zu <strong>Linux</strong> und<br />
Open Source.<br />
Die Gewinner hat eine internationale<br />
Jury mit über 300<br />
Mitgliedern ausgewählt. Daneben<br />
vergeben die Leser des<br />
<strong>Linux</strong>-<strong>Magazin</strong>s und seiner<br />
Schwesterzeitschriften den<br />
Publikumspreis für die beste<br />
<strong>Linux</strong>-Desktopumgebung. Im<br />
Anschluss gibt es Gelegenheit,<br />
mit den Preisträgern bei<br />
einem kleinen Umtrunk ins<br />
Gespräch zu kommen.<br />
Rund um das Vortragsforum in<br />
Halle 6 sind die Anbieter professioneller<br />
Open-Source-Produkte<br />
und ‐Dienstleistungen<br />
vertreten. Das Unternehmen<br />
Würth Phoenix beispielsweise<br />
präsentiert auf der Cebit die<br />
jüngste Release seiner Monitoringlösung<br />
Neteye sowie<br />
das <strong>neu</strong>e ITMS-Angebot Erizone.<br />
Die Netways GmbH hat<br />
die Puppet Labs zu Gast am<br />
Stand und demonstriert neben<br />
dem Systemmanagement mit<br />
Puppet auch Monitoring mit<br />
Icinga sowie Log-Management<br />
mit Logstash.<br />
Die Bremer Firma Univention<br />
zeigt einen Assistenten<br />
für die Mi gration von Active-<br />
Directory-Domänen. Das Tool
© Ben van ’t Ende<br />
Abbildung 2: Im CMS Garden in Halle 5 stellen sich freie Contentmanagement-<br />
Systeme vor, wie hier Drupal in Person des CMS-Gärtners Daniel Andrisek.<br />
mit dem Namen AD-Takeover<br />
stellt Kundensysteme von einer<br />
Microsoft-Umgebung auf<br />
<strong>Linux</strong>-Server um.<br />
Ebenfalls in Halle 6 angesiedelt<br />
ist das Expert Panel Mobile<br />
Enterprise. Am Montag<br />
(10. März) um 15 Uhr findet<br />
dort die Podiumsdiskussion<br />
„Durchbruch des Mobile Payment<br />
in Deutschland – was<br />
muss passieren?“ statt. Auf<br />
dem Podium sitzen Vertreter<br />
von Firmen und Verbänden<br />
wie dem Bundesverband der<br />
Deutschen Volksbanken und<br />
Raiffeisenbanken (BVR),<br />
Lendstar, NTT Data, Payleven<br />
und Valuephone sowie<br />
der Blogger Maik Klotz von<br />
Mobile-zeitgeist.de.<br />
Forschung und CMS<br />
Auch andere Cebit-Hallen bieten<br />
Interessantes. In Halle 5<br />
am Stand E06 liegt der 120<br />
Quadratmeter großer CMS<br />
Garden (Abbildung 2). Hier<br />
können die Besucher die<br />
Vielfalt freier Contentmanager<br />
von Drupal über Plone<br />
bis Typo3 erkunden. Weitere<br />
Informationen liefert der CMS<br />
Garden e.V. unter [http://<br />
www.cms‐garden.org].<br />
In Halle 9 stellen zahlreiche<br />
Universitäten, Fachhochschulen<br />
und Forschungseinrichtungen<br />
aus. Sie zeigen ihre<br />
Forschungsprojekte, in denen<br />
immer wieder <strong>Linux</strong> und<br />
Open Source stecken. So beispielsweise<br />
die FU Berlin mit<br />
ihrem LGPL-lizenzierten Betriebssystem<br />
Riot für das Internet<br />
der Dinge. Hinter dem<br />
Namen Docear verbirgt sich<br />
dagegen eine freie Lösung<br />
zum Verwalten akademischer<br />
Publikationen, an dem die<br />
Otto-von-Guericke-Universität<br />
Magdeburg mitarbeitet.<br />
Aber die Cebit hat auch<br />
Highlights jenseits der Open-<br />
Source-Spezialisierung zu bieten.<br />
Dazu gehören auf jeden<br />
Fall die Auftritte von Apples<br />
Technik-Mastermind Steve<br />
Wozniak am Donnerstag<br />
und des Wikipedia-Gründers<br />
Jimmy Wales am Freitag,<br />
beide in Halle 8 auf der Center<br />
Stage. Zum Besuch ist allerdings<br />
ein Ticket „Exhibition &<br />
Conferences“ erforderlich. n<br />
Cebit 04/2014<br />
Aktuell<br />
www.linux-magazin.de<br />
27<br />
Anzeige
Titelthema<br />
www.linux-magazin.de Grundlagen 04/2014<br />
28<br />
Software Defined Networking beendet das administrative Klein-Klein<br />
<strong>Netze</strong> <strong>neu</strong> <strong>ordnen</strong><br />
Die Globalisierung der Firmen, die rasant ansteigende Menge von Geräten, Virtualisierung, Cloud und „Bring<br />
your own device“ machen klassisch organisierte IP-<strong>Netze</strong> schwer plan- und administrierbar. Statt zu hadern,<br />
sollten sich Admins mit einem radikal <strong>neu</strong>en Ansatz befassen: Software Defined Networking. Udo Seidel<br />
Inhalt<br />
28 Grundlagen<br />
Software Defined Networking macht<br />
<strong>Netze</strong> flexibel und zentral steuerbar<br />
32 Open Flow<br />
Das Protokoll steuert den Datenfluss<br />
zentral und senkt die Hardwarekosten.<br />
38 Open Daylight<br />
Das Gemeinschaftsprojekt dient als<br />
Dach für einzelne SDN-Komponenten.<br />
40 Kommerzielle Produkte<br />
Software Defined Networking gewinnbringend<br />
umzusetzen ist das Ziel von VMware,<br />
Cisco, IBM und Midokura.<br />
46 Mininet<br />
Als Testbett für SDN emuliert Mininet ein<br />
komplettes Netzwerk.<br />
Nicht nur einmal revolutionierten Virtualisierungstechniken<br />
in den vergangenen<br />
zehn Jahren die IT-Welt. Vor allem<br />
die x86-Architekturen zogen mit vielen<br />
Features, aber auch in Sachen Leistungsfähigkeit<br />
mit Mainframes und Großrechnern<br />
gleich, die derlei Ressourcenaufteilung<br />
bereits seit Jahrzehnten beherrschen.<br />
IBMs Z-Serie und ihre Vorläufer,<br />
die System/360-Maschinen, feiern just<br />
zur Cebit 2014 ihren 40. Geburtstag [1].<br />
Server, Storage und Network<br />
Virtualisierung als Konzept ist gleichermaßen<br />
einfach wie erfolgreich: Die Serverhardware<br />
existiert nicht real, sondern<br />
nur mehr als pure Software. Dabei treten<br />
die ursprünglich notwendigen Hardwaretreiber<br />
hinter die Virtualisierung zurück.<br />
Server-Umzüge sind so viel einfacher,<br />
herstellerspezifische Hardware-Limitierungen<br />
fast irrelevant.<br />
Admins stampfen <strong>neu</strong>e Server jetzt binnen<br />
Minuten aus dem Boden – das Konzept<br />
ist so erfolgreich, dass es auch andere<br />
Bereiche erfasst hat: Wie die vorige<br />
Ausgabe des <strong>Linux</strong>-<strong>Magazin</strong>s am Beispiel<br />
von Open Stack zeigte [2], geht auch<br />
der Storage-Bereich seit ein paar Jahren<br />
einen ähnlichen, virtuellen Weg. Analog<br />
zur Virtualisierung ganzer Rechner<br />
ziehen Admins auch hier eine Abstraktionsschicht<br />
zwischen Datenträgern und<br />
dem Anwender oder der Applikation ein<br />
und gewinnen ähnliche Vorzüge wie im<br />
Server-Bereich.<br />
Wenig überraschend macht der Trend<br />
auch vor dem Netzwerk nicht halt. Ganze<br />
Firmennetze existieren mittlerweile nur<br />
mehr virtuell, aus Software aufgebaut<br />
und per Mausklick konfigurierbar [3].<br />
Quo vadis?<br />
IP-Netzwerke bestehen in der Regel aus<br />
eine Reihe von autonomen Systemen:<br />
Switches, Routern und Firewalls. Die<br />
Netzwerkgeräte werten ankommende Datenpakete<br />
aus, schlagen eventuell in Tabellen<br />
nach und senden sie entsprechend<br />
weiter. Damit das funktioniert, müssen<br />
diese Systeme die Netzwerktopologie zumindest<br />
teilweise kennen (Abbildung 1).<br />
Die Position eines bestimmten Geräts im<br />
Netzwerk definiert dessen Funktion, ein<br />
Stellungswechsel hat unter Umständen<br />
fatale Folgen.<br />
Im Laufe der Zeit stellte die Internet Engineering<br />
Task Force (IETF, [4]) Admins<br />
eine Reihe von Protokollen zur Seite, um<br />
die einfache Steuerlogik aufzupeppen.<br />
Diese Erweiterungen adressierten jedoch<br />
oft nur eine bestimmte Aufgabe und wirken<br />
aus heutiger Sicht vergleichsweise<br />
isoliert. Hinzu kam, dass die wachsende<br />
Anzahl dieser Standards im Verbund mit<br />
herstellerspezifischen Optimierungen und<br />
Software-Abhängigkeiten die Komplexität<br />
heutiger Netzwerk anwachsen ließ.<br />
Never touch a running<br />
network ...<br />
Ganz nebenbei blieb dabei nahezu jegliche<br />
Flexibilität auf der Strecke. Strukturelle<br />
Änderungen sind in vielen <strong>Netze</strong>n<br />
heute mindestens ein mittelgroßes
Abbildung 1: Ein traditionelles IP-Netzwerk besteht aus echten Geräten, die in Tabellen Informationen vorhalten<br />
und nach definierten Regeln kommunizieren.<br />
Projekt, über dem das Damoklesschwert<br />
eines teuren und gefährlichen Betriebsausfalls<br />
hängt.<br />
Mehr Peers und viele <strong>neu</strong>e<br />
Datentypen<br />
Auch die Welt außerhalb des Netzwerks<br />
stand nicht still. An die Stelle klassischen<br />
Client-Server-Verkehrs tritt eher Peer-artiger<br />
Datenfluss. Immer mehr Rechner<br />
und Anwendungen sind an der Kommunikation<br />
beteiligt. Die Servervirtualisierung<br />
schiebt Rechner hin und her und<br />
verändert so dynamisch ganze Bereiche<br />
der Netzwerktopologie. Smartphones<br />
und Tablet-PCs lassen die Anzahl der<br />
Teilnehmer explodieren.<br />
Mit Software Defined Storage kommen<br />
ganz <strong>neu</strong>e Datentypen hinzu, und Big-<br />
Data-Herausforderungen manifestieren<br />
sich in steigenden Datenvolumina, die<br />
schnell durchs Netzwerk müssen. Die<br />
Veränderung einer Richtlinie für das gesamte<br />
Netzwerk erfordert Konfigurationsanpassungen<br />
von Hunderten, vielleicht<br />
Tausenden von Systemen.<br />
Und damit nicht genug: Die Cloud bringt<br />
noch weitere <strong>neu</strong>e Herausforderung an<br />
das Netzwerk mit sich. Da wären beispielsweise<br />
hochgradige Flexibilität, Sicherheit,<br />
Konformität und Revisionsfähigkeit.<br />
All das ließ sich zwar auch in<br />
klassischen Netzwerken bewerkstelligen,<br />
aber nur durch eine Vielzahl von Mitarbeitern<br />
oder durch teure Managementlösungen<br />
– oder eben durch Virtualisierung<br />
auf der Netzwerkebene.<br />
Divide et conquer<br />
Die grundlegenden Ideen hinter dem<br />
Software Defined Networking (SDN) sind<br />
über sieben Jahre alt und stammen aus<br />
der Stanford University. Primäres Anliegen<br />
von SDN ist die Trennung von Konfiguration<br />
und Infrastruktur (Abbildung<br />
2). In seiner Doktorarbeit [5] beschrieb<br />
Martin Casando 2008 die Idee der logischen<br />
Trennung der Kontroll-Logik vom<br />
Datenfluss. Casando und seine Betreuer<br />
– Nick McKeown und Scott Shenker – gelten<br />
daher als die Väter von SDN.<br />
Im selben Jahr gründeten sie die Firma<br />
Nicira Networks, die sich auf das <strong>neu</strong>e<br />
Themengebiet konzentrierte. Um 2012<br />
übernahm VMware diese Firma für sagenhafte<br />
1,2 Milliarden Dollar [6]. Niciras<br />
Network Virtualisation Platform ist<br />
die Basis von VMwares NSX [7].<br />
In der einschlägigen Literatur finden sich<br />
oft die Begriffe Control Plane und Data<br />
Plane. Letztere sind die Switches, Router<br />
und Firewalls. Die Control Plane befindet<br />
sich dagegen außerhalb der Netzwerkgeräte.<br />
Ihre Geräte brauchen daher nicht<br />
so viel eigene Intelligenz mitzubringen,<br />
wie dies im traditionellen IP-Netzwerk<br />
der Fall ist – die verbaute Firmware darf<br />
deutlich schlanker ausfallen.<br />
Die physikalische Trennung von Kontrollund<br />
Infrastruktur-Schicht (also Control
Titelthema<br />
www.linux-magazin.de Grundlagen 04/2014<br />
30<br />
Anwendung<br />
Kontrolle/Konfiguration<br />
SDN-<br />
Kontroll-<br />
Software<br />
Infrastruktur<br />
Plane und Data Plane) erlaubt es darüber<br />
hinaus, auch die darunter liegende<br />
Hardware unabhängig zu tunen, weil der<br />
leistungsfähige Rechner mit der Kontroll-<br />
Software die Arbeit erledigt. Die Data<br />
Plane leitet lediglich die Datenpakete<br />
weiter, nach den Richtlinien der Kontroll-<br />
Logik.<br />
Das bedeutet aber auch, dass beide Instanzen<br />
miteinander kommunizieren<br />
müssen. An dieser Stelle kommt Technologie<br />
wie Open Flow ([8], siehe Kasten<br />
„Offene Flüsse“) ins Spiel und definiert<br />
eine Standardschnittstelle für diesen Informationsaustausch.<br />
Die oben genannten Wissenschaftler um<br />
Shenker beteiligten sich konsequenterweise<br />
auch an der Gründung der Open<br />
Network Foundation im März 2011. Ziel<br />
der Non-Profit-Organisation ist die Unterstützung<br />
und Überwachung der Schnittstellen<br />
und Standards für SDN. Mit<br />
Google, Facebook, Microsoft, der Deutschen<br />
Telekom, Verizon und Yahoo sind<br />
echte Schwergewichte als Gründungsmitglieder<br />
engagiert.<br />
Pro et contra<br />
Geschäftsprozess<br />
API<br />
Netzwerkdienst<br />
API (Open Flow, ...)<br />
SDN ist beliebt, nicht nur wegen der inhärent<br />
geringeren Abhängigkeit von den<br />
Herstellern der Netzwerkhardware. Die<br />
Intelligenz ist nun im Controller beheimatet,<br />
der über standardisierte Schnittstellen<br />
die notwendigen Informationen mit<br />
den Geräten austauscht. Admins freuen<br />
sich, weil das auch die Entwicklung des<br />
eigenen Netzwerks vom Lebenszyklus<br />
Geschäftsprozess<br />
API<br />
Netzwerkdienst<br />
Netzwerkgeräte<br />
Geschäftsprozess<br />
API<br />
Netzwerkdienst<br />
API (Open Flow, ...) API (Open Flow, ...)<br />
Abbildung 2: Die Architektur von Software Defined Networking ist flexibel, aber hierarchisch gegliedert.<br />
der darunter liegenden Hardware entkoppelt<br />
– wie bei der Servervirtualisierung<br />
auch. Das Trennen von Datenfluss und<br />
Kontroll-Logik zentralisiert das Management<br />
und erlaubt es dem Administrator,<br />
sein Netzwerk in seiner Gesamtheit zu<br />
überblicken und zentral zu verwalten.<br />
Die vorher autonomen Systeme werden<br />
damit Teile eines sich zusammenfügenden<br />
Puzzles.<br />
Für Admins entstehen ganz <strong>neu</strong>e Möglichkeiten,<br />
die Datenflüsse effizienter zu<br />
gestalten. Eine Firewall muss nun nicht<br />
mehr jedes Paket untersuchen, wenn vorherige<br />
Prüfungen erfolgreich waren und<br />
ausreichend sind. Die Abstraktion von<br />
den (herstellerbedingten) Gegebenheiten<br />
der einzelnen Netzwerkgeräte erlaubt<br />
nun Konfigurationen zu automatisieren,<br />
die vorher unmöglich waren.<br />
Richtlinien legt der Netzwerk-Admin über<br />
die Kontroll-Logik fest. Diese übermittelt<br />
die notwendigen Informationen über die<br />
standardisierten Schnittstellen an die jeweiligen<br />
Endgeräte. Eigenschaften oder<br />
sogar einzelne Dienste sind nicht mehr<br />
auf Port-Ebene definiert, sondern an<br />
Offene Flüsse<br />
Open Flow beschreibt Standards und Schnittstellen<br />
für die Kommunikation zwischen der<br />
Control Plane und einer Data Plane. Letztere<br />
wird oft auch als Forwarding Plane (Weiterleitungs-Struktur)<br />
referenziert.<br />
Der Open-Flow-Standard unterliegt der Verwaltung<br />
der Open Networking Foundation (ONF,<br />
[9]). Version 1.0.0 stammt übrigens noch aus<br />
2009. Die Forwarding-Plane setzt sich aus<br />
zentraler, vielleicht sogar globaler Stelle.<br />
Letztlich stellt SDN eine Abstraktion der<br />
Netzwerkschicht bereit, was das Verwalten<br />
aus Geschäftsprozessen heraus erlaubt<br />
(das wäre die Anwendungsschicht<br />
in Abbildung 2). So lässt sich auch das<br />
Netzwerk auf eine Anwendung zuschneiden,<br />
denn diese kennt ja die Fähigkeiten<br />
des <strong>Netze</strong>s.<br />
Kritik<br />
Aber es gibt auch einige Kritikpunkte<br />
oder zumindest offene Fragen. Der Controller<br />
ist nun das Hirn des Netzwerks<br />
– und damit der Single Point of Failure:<br />
Fällt er aus, ist der GAU vorprogrammiert.<br />
Ihn ohne Hochverfügbarkeits-Konzepte<br />
zu betreiben, erscheint mutig bis fahrlässig.<br />
Weitere Fragen stellen sich fast<br />
von selbst: Wie viele Geräte kann eine<br />
Kontrollinstanz verwalten? Wie organisiert<br />
man die Kontrollinstanzen, damit<br />
sie hochverfügbar und zudem skalierend<br />
sind? Der Anteil der Kommunikation von<br />
Control- und Data Plane macht, glaubt<br />
man der Literatur, typischerweise 3 bis 5<br />
Prozent des Traffics aus.<br />
Für den Einsatz von SDN gibt es mehrere<br />
Ansätze. Die Unterschiedlichkeit trägt dabei<br />
teilweise den eben genannten Kritikpunkten<br />
Rechnung. Das symmetrische<br />
Modell zentralisiert die Kontrollinstanz<br />
so weit wie möglich, wobei natürlich<br />
die Störanfälligkeit den offensichtlichsten<br />
und im Alltag vielleicht auch gravierendsten<br />
Nachteil ausmacht.<br />
Das zu lindern versucht der asymmetrische<br />
Ansatz, bei dem die einzelnen<br />
Systeme die relevanten Konfigurationen<br />
kennen und daher auch beim Ausfall der<br />
Kontroll-Logik weiterarbeiten. Typischerweise<br />
organisiert der Administrator sein<br />
Netzwerk in Zellen, die – für sich genommen<br />
– autonom arbeiten. Nachteile dieser<br />
Lösung sind die eigentlich unnötige<br />
Switches und Routern zusammen. Dabei spielt<br />
es keine Rolle, ob diese physikalisch oder nur<br />
virtuell existieren.<br />
Open Flow ist gerade dabei, sich als Quasi-<br />
Standard zu etablieren. Diverse Netzgeräte-<br />
Hersteller haben sich seine Unterstützung auf<br />
die Fahne geschrieben. Auf der Homepage des<br />
Projekts kann man die aktuelle Spezifikation<br />
für Open-Flow-Switches herunterladen.
Redundanz von Informationen und das<br />
Mehr an dezentraler Verwaltung.<br />
Eine weitere Unterscheidung lässt sich<br />
bezüglich des Ortes machen, an dem das<br />
SDN-Hirn liegt. Bei hochgradig virtualisierten<br />
Umgebungen ist es sinnvoll, dem<br />
Hypervisor beziehungsweise dem Host<br />
die notwendige Denkarbeit aufzubrummen.<br />
Anders der Netzwerk-zentrierte<br />
Ansatz: Hier erledigen dedizierte Netzwerkgeräte<br />
den SDN-Job. Auch eine Mischung<br />
ist denkbar, selbst wenn sie den<br />
Gewinn durch Software Defined Networking<br />
schmälert.<br />
Eine dritte Art, SDN-Modelle zu unterscheiden,<br />
betrifft die Verteilung der Informationen.<br />
Einerseits können die Controller<br />
die Informationen über die bekannten<br />
Broad- und Multicast-Mechanismen verbreiten.<br />
Das führt aber zum erwähnten<br />
Anstieg der Netzwerklast. Die Alternative<br />
dazu besteht in verteiltem Hashing<br />
und verteilten Nachschlagetabellen, was<br />
deutlich weniger Informationen übers<br />
Netz schickt. Dieser so genannte Floodless-Ansatz<br />
ist weniger zentral, bringt<br />
dafür aber die gleichen Nachteile wie das<br />
asymmetrische Modell mit sich.<br />
Geglückter Start<br />
Der Autor<br />
Dr. Udo Seidel ist eigentlich Mathe-Physik-Lehrer<br />
und seit 1996 <strong>Linux</strong>-Fan. Nach seiner Promotion<br />
hat er als <strong>Linux</strong>/Unix-Trainer, Systemadministrator<br />
und Senior Solution Engineer gearbeitet.<br />
Heute ist er Leiter des <strong>Linux</strong>-Strategie-Teams bei<br />
der Amadeus Data Processing GmbH in Erding.<br />
Seit 2011 hat SDN so richtig Fahrt aufgenommen.<br />
Insbesondere auf der Controller-Seite<br />
haben Netzwerkarchitekten die<br />
Qual der Wahl. Die Open-Source-Community<br />
kann auf Projekte wie Floodlight<br />
[10], Beacon [11] oder Open Daylight<br />
[12] verweisen. Auch kommerzielle<br />
Produkte gibt es, natürlich sind neben<br />
VMware auch Cisco [13], HP [14], IBM<br />
[15] und Brocade [16] dort vertreten.<br />
Die Netzwerkgeräte-Seite lässt noch genügend<br />
Raum für Verbesserung. Leider<br />
ist die Anzahl der SDN-fähigen Switches<br />
noch recht übersichtlich. Die Gründungsmitglieder<br />
der Open Networking Foundation<br />
arbeiten mit Nachdruck daran, die<br />
eigenen <strong>Netze</strong> auf das Paradigma umzustellen,<br />
flächendeckende praktische<br />
Erfahrung mit dem <strong>neu</strong>en Ansatz zum<br />
Netzwerkeln fehlen jedoch.<br />
Aber immerhin hat das Cloud Computing<br />
Bewegung in die Sache gebracht. Open<br />
Stack [17] mit seiner Netzwerk-Komponente<br />
Neutron [18] ist nur die Spitze des<br />
Eisbergs. (mfe)<br />
n<br />
Infos<br />
[1] IBMs Z-Series/Virtual Machine (z/VM):<br />
[http:// www. vm. ibm. com]<br />
[2] „Speichern als Kür“: <strong>Linux</strong>-<strong>Magazin</strong> 03/<br />
14, S. 28 bis 54<br />
[3] „Software-Defined Networking: The New<br />
Norm for Networks“: Whitepaper der<br />
Open Networking Foundation;<br />
[http:// www. opennetworking. org/<br />
images/ stories/ downloads/ white‐papers/<br />
wp‐sdn‐newnorm. pdf]<br />
[4] IETF: [http:// www. ietf. org]<br />
[5] Martin Casando, „Architectural support<br />
for security management in enterprise<br />
networks“: [http:// yuba. stanford. edu/<br />
~casado/ mcthesis. pdf]<br />
[6] VMware übernimmt Nicira:<br />
[http:// www. finanzen. net/ nachricht/<br />
aktien/ VMware‐kauft‐Nicira‐fuer<br />
‐1‐26‐Milliarden‐Dollar‐1966322]<br />
[7] VMware NSX:<br />
[http:// www. vmware. com/ products/ nsx/]<br />
[8] Open Flow:<br />
[http:// www. opennetworking. org/ sdn<br />
‐resources/ onf‐specifications/ openflow/]<br />
[9] Open Networking Foundation:<br />
[http:// www. opennetworking. org]<br />
[10] Floodlight: [http:// www. projectfloodlight.<br />
org/ floodlight/]<br />
[11] Beacon: [http:// openflow. stanford. edu/<br />
display/ Beacon/ Home]<br />
[12] Open Daylight:<br />
[http:// www. opendaylight. org]<br />
[13] Cisco SDN: [http:// www. cisco. com/ web/<br />
strategy/ docs/ gov/ cis13090_sdn_sled_<br />
white_paper. pdf]<br />
[14] HP SDN: [http:// h20195. www2. hp. com/<br />
v2/ GetPDF. aspx/ 4AA3‐8562ENW. pdf]<br />
[15] IBM SDN: [http:// www‐03. ibm. com/<br />
systems/ networking/ sdn/ index. html]<br />
[16] Brocade SDN:<br />
[http:// www. brocade. com/ solutionstechnology/<br />
technology/ softwaredefined‐networking/<br />
index. page]<br />
[17] Open Stack: [http:// www. openstack. org]<br />
[18] Neutron:<br />
[http:// wiki. openstack. org/ wiki/ Neutron]
Titelthema<br />
www.linux-magazin.de Open Flow 04/2014<br />
32<br />
Netzwerke mit Open Flow verwalten<br />
Alles im Fluss<br />
Dümmere Netzwerkhardware schafft klügere <strong>Netze</strong>? Bei Open Flow jedenfalls geht diese Rechnung auf und<br />
erspart dem Admin einige Arbeit, indem er den Datenfluss zentral von einem Punkt aus steuert. Marc Körner<br />
© Tono Balaguer, 123RF.com<br />
Software Defined Networking (SDN)<br />
degradiert herkömmliche Netzwerkhardware<br />
(etwa Switches und Router) mit all<br />
ihren integrierten Features zu dummen<br />
Wachposten mit einer ausgelagerten zentralen<br />
Software als Kommandostelle, dem<br />
Controller (Abbildung 1). Möglich macht<br />
das ein <strong>neu</strong>es Protokoll namens Open<br />
Flow [1], das mittlerweile auffallend viele<br />
proprietäre und freie SDN-Projekte implementieren.<br />
Zwei Ebenen<br />
Open Flow ist nicht nur ein technisches<br />
Modell, sondern spezifiziert auch das<br />
eben erwähnte Prinzip. Und es ist zugleich<br />
der Name des Kommunikationsprotokolls,<br />
über das der Controller und<br />
die realen und virtuellen Switches, Hubs<br />
und Router miteinander reden. Nicht zuletzt<br />
verwaltet Open Flow die Regeln für<br />
die Paketweiterleitungen.<br />
Die Grundidee besteht darin, Hardware<br />
einzusetzen, die Pakete weiterleitet,<br />
jedoch abgesehen von der Open-Flow-<br />
Schnittstelle keinerlei weitere Intelligenz<br />
mitbringt. Diese Trennung von Datenund<br />
Kontrollebene (Data Plane und Control<br />
Plane) reduziert die Gerätekosten<br />
deutlich, denn die Software-seitige Implementierung<br />
der diversen Protokolle für<br />
den Betrieb eines Geräts in einer Layer-<br />
2-Domain (Bridged/Switched Network)<br />
geht ins Geld. Diese Kosten entfallen<br />
beim Open-Flow-Einsatz komplett.<br />
Zudem muss der Admin die Geräte nicht<br />
mehr einzeln vorkonfigurieren: Da die<br />
gesamte Intelligenz im Con troller steckt,<br />
muss er den Schreibtisch nicht mehr verlassen,<br />
sondern steuert das Netzwerk von<br />
einem zentralen Punkt aus.<br />
Alt gegen <strong>neu</strong><br />
SDN erleichtert zudem die Arbeit der<br />
Techniker im Network Operation Center<br />
(NOC), die sich in Firmen um den Netzwerkbetrieb<br />
kümmern. Ein defektes Gerät<br />
tauschen sie ohne weitere Eingriffe in<br />
die Gerätekonfiguration aus: Nach dem<br />
Einbau und dem Patchen der Kabel er-<br />
kennt der Controller dank Open Flow das<br />
<strong>neu</strong>e Gerät und bindet es in das aktive<br />
Netzwerk ein.<br />
Während Hubs und Repeater den eher<br />
historischen Ansatz verfolgen, Pakete<br />
auf allen Ports mit einem aufbereiteten<br />
Übertragungspegel weiterzuleiten, agieren<br />
Switches etwas intelligenter. Sie legen<br />
sich intern Tabellen an, mit deren<br />
Hilfe sie den jeweiligen MAC-Adressen<br />
Ports zu<strong>ordnen</strong>. Dadurch verschicken<br />
sie Pakete zielgerichtet und reduzieren<br />
zugleich die Netzlast und den Stromverbrauch.<br />
Lediglich Pakete mit einer<br />
Broadcast-Adresse senden die Switches<br />
an alle Ports. Sie sind nötig, um etwa die<br />
IP-Adressen von Hosts aufzulösen, das<br />
Stichwort lautet hier Adress Resolution<br />
Protocol (Arp).<br />
Im Kontrast dazu verfolgt Open Flow ein<br />
„Flow“-basiertes Weiterleitungskonzept.<br />
Indem der Controller das Netzwerk in<br />
seiner Gesamtheit betrachtet, kann er<br />
für bestimmte Pakete eine Art Ende-zu-<br />
Ende-Verbindung über mehrere Switches<br />
hinweg aufsetzen. Den Pakettyp macht er<br />
zum Beispiel am Transportprotokoll fest<br />
und leitet TCP-Webtraffic mit Zielport 80<br />
stets über Route A zum Ziel.<br />
Sobald der Controller die Signatur erkennt,<br />
weist er die beteiligten Switches<br />
im Netzwerk an, ihre Forwarding-Einträge<br />
entsprechend zu setzen. Der Admin<br />
instruiert also nicht mehr selbst die lokalen<br />
Switches, sondern stellt über den<br />
Controller fein granulierte Regeln für das<br />
gesamte, lernfähige Netzwerk auf.<br />
Schnelle Specs<br />
Die Entwicklung der Open-Flow-Spezifikation<br />
hat seit ihrer ersten Vorstellung<br />
2008 ziemlich an Fahrt aufgenommen.<br />
Allein zwischen der Testsuite 0.8.1 vom
Juni 2008 und der Spezifikation in Version<br />
1.0 vom Dezember 2009 haben die<br />
Macher sieben Updates veröffentlicht. Bis<br />
zum heutigen Tag kamen acht weitere<br />
Iterationen hinzu, die aktuelle Version<br />
trägt die Nummer 1.4.<br />
Tabellenkalkulationen<br />
In der Praxis ist Version 1.0 der Spezifikation<br />
am weitesten verbreitet. Ihr API<br />
implementieren die Entwickler und Hersteller<br />
in den kommerziellen und freien<br />
Switches sowie den Controllern. Ihre<br />
Weiterleitungslogik besteht im Wesentlichen<br />
aus einer Flow Table, die wiederum<br />
diverse Flow Entries enthält (Abbildung<br />
2). Letztere bringen einen Header mit,<br />
der in mehreren Feldern ein Identifikationsmuster<br />
versammelt, das der Paketerkennung<br />
dient (Matching Pattern).<br />
Daneben definieren die Flow Entries auf<br />
Pakete anwendbare Aktionen und haben<br />
eine Zählerfunktion (Counter) im Gepäck.<br />
Version 1.1 führte dann mehrere<br />
Flow Tables ein, weswegen Kenner hier<br />
von einer Pipeline sprechen. Die Version<br />
ergänzte zudem zusätzliche Header<br />
Fields, anhand derer die Switches Pakete<br />
identifizieren, etwa für MPLS (Multiprotocol<br />
Label Switching) und IPv6.<br />
Die Spezifikationen sind teils sehr umfangreich,<br />
weil sie ausführliche Erklärungen<br />
zu den Flow-Entry-Strukturen, dem<br />
Aufbau der Flow Tables, den möglichen<br />
Aktionen und den Zählfeldern liefern.<br />
Interessierte finden alle Dokumente frei<br />
verfügbar auf der Webseite der Open Networking<br />
Foundation [2]. Klar ist, dass<br />
sowohl die Zahl der Features als auch<br />
Open-Flow-Switch-Spezifikationen<br />
Open Flow Switch<br />
SW Secure Channel<br />
HW<br />
Flow Table<br />
Open Flow Protocol<br />
die Möglichkeiten zur internen Steuerung<br />
mit jeder Versionsnummer wachsen.<br />
Wachposten<br />
Abbildung 1: Ein Open-Flow-fähiger Switch mit Anbindung an den Controller.<br />
SSL<br />
Trifft ein Paket in einem Open-Flow-<br />
Netzwerk auf einem der für Open Flow<br />
reservierten Ports ein, untersucht der<br />
Switch, wie in der jeweiligen Spezifikation<br />
beschrieben, das Header Field (Abbildung<br />
3). Er vergleicht dessen Bits mit<br />
den Einträgen in seiner Flow Table, die<br />
als Einträge auch Wildcards verwenden<br />
darf. Im Trefferfall führt der Switch die<br />
in den Flow Entries definierten Aktionen<br />
aus und aktualisiert zum Schluss den<br />
Counter.<br />
Als Aktionen kann er das Paket zum<br />
Beispiel an einen Port weiterleiten, dessen<br />
Header-Feld modifizieren oder es an<br />
eine andere Flow Table forwarden. Findet<br />
sich der Eintrag im Header-Feld hingegen<br />
nicht in der Flow Table wieder, kapselt<br />
der Switch das Paket und sendet es an<br />
den Controller, der dann entscheidet, wie<br />
er damit verfährt. Entweder leitet er es<br />
direkt weiter oder er weist die Switches<br />
an, den Flow-Eintrag in ihrer Flow Table<br />
zu ergänzen, damit sie Pakete mit diesem<br />
Header künftig nach einem bestimmten<br />
Muster behandeln.<br />
Der Controller kennt zwei Arten von<br />
Flow Entries, proaktive und reaktive.<br />
Proaktiv heißt, dass der Controller den<br />
Switch anweist, einen Flow-Eintrag für<br />
eine bestimmte Flow Table zu setzen,<br />
ohne dass der Switch darum gebeten hat.<br />
Reaktiv ist der Vorgang, wenn der Switch<br />
auf ein Datenpaket stößt, dessen Header-<br />
Feld-Einträge nicht in seiner Flow Table<br />
vorkommen. Er kapselt<br />
es dann, sendet es<br />
an den Controller und<br />
Controller der erzeugt als Reaktion<br />
einen passenden<br />
Flow-Eintrag für das<br />
unbekannte Paket.<br />
Hat ein Switch einen<br />
Flow Entry erst einmal<br />
PC<br />
gesetzt, winkt er die<br />
zum Flow gehörenden<br />
Pakete einfach durch.<br />
Dies verringert die<br />
Reaktionszeit, weil es<br />
den Umweg über den<br />
Controller einspart.<br />
Bremsend wirkt, dass<br />
Packet<br />
In<br />
die Hardware nicht alle Aktionen der<br />
Flow-Einträge kennt. Führt aber eine<br />
Software diese Aktionen aus, verlangsamt<br />
dies den Prozess. Bei reaktiven Flow<br />
Entries verzögert hingegen der Controller<br />
die Weiterleitung durch zusätzliche Kommunikation<br />
und das Warten auf Entscheidungen<br />
zur Paketbehandlung.<br />
Hardware<br />
Open Flow hat sich als SDN-Konzept bis<br />
zum Produktiveinsatz entwickelt, die dedizierten<br />
Switches, die Open Flow unterstützen,<br />
bezeichnen sich als Open Flow<br />
Enabled. Es handelt sich um Hybrid-<br />
Switches, die neben ihrer herkömmlichen<br />
Switch-Funktionalität und den damit verbundenen<br />
Protokollen, etwa dem Link<br />
Local Discovery Protocol (LLDP), auch<br />
eine Open-Flow-Konfiguration anbieten.<br />
Um sie zu nutzen, muss der Netzwerker<br />
abhängig vom Herstellermodell verschiedene<br />
Konfigurationen an der Open-Flow-<br />
Instanz auf dem Switch vornehmen. Dies<br />
bedeutet meist, dass er die entsprechenden<br />
Ports oder VLANs in den Open-Flow-<br />
Modus versetzt, damit ein externer Controller<br />
die Switches instruiert.<br />
Zurzeit beschränkt sich der Einsatz von<br />
Open Flow auf den Bereich klassischer<br />
Switches für Datenpakete (Data Path).<br />
Für optische <strong>Netze</strong>, die Lichtwellen weiterleiten<br />
(Light Path), gibt es Open-Flowähnliche<br />
Technologien. Forscher arbeiten<br />
seit einiger Zeit daran, Open Flow aber<br />
auch in diesem Bereich zu etablieren,<br />
um eine übergreifende und einheitliche<br />
Managementebene für Netzwerktechnologien<br />
zu schaffen.<br />
Volle Kontrolle<br />
Controller<br />
Open Flow Switch<br />
Packet<br />
Out<br />
Abbildung 2: Über ihre Einträge, die Flow Entries,<br />
reguliert die Flow Table den Datenstrom.<br />
Es gibt diverse Controller für Open-Flow-<br />
Netzwerke. Sie dienen in der Regel als<br />
Plattform für so genannte Netzwerkapp-<br />
Open Flow 04/2014<br />
Titelthema<br />
www.linux-magazin.de<br />
33
Titelthema<br />
www.linux-magazin.de Open Flow 04/2014<br />
34<br />
likationen (Apps). Die Controller implementieren<br />
das zur Spezifikation kompatible<br />
Open-Flow-Protokoll und kümmern<br />
sich um die Kommunikation mit den<br />
Switches.<br />
Als Plattform ermöglichen sie es den<br />
App-Entwicklern zugleich, sich voll und<br />
ganz auf das Implementieren der Apps<br />
zu konzentrieren (Abbildung 4). Dazu<br />
bieten die Controller meist ein API für<br />
eine geläufige Programmiersprache an.<br />
Die Apps leiten eingehende Pakete an alle<br />
Ports weiter und dienen so als virtuelle<br />
Hubs. Oder sie routen gezielt Pakete auf<br />
Basis von MAC-Adressen und fungieren<br />
als Bridges und Switches.<br />
Die meisten Controller bringen ein paar<br />
Basismodule mit. Die erwähnte Switch-<br />
Anwendung dient Entwicklern zugleich<br />
als Fallbeispiel, um eigene Apps zu entwerfen.<br />
Für viele weitere Anwendungen<br />
müssen konventionelle Netzwerke spezielle<br />
Geräte einsetzen, etwa für Router,<br />
Firewalls oder Load Balancer.<br />
Nox<br />
In Port<br />
Einer der ersten Open-Flow-Controller<br />
heißt Nox [3], steht unter der GPLv3<br />
und wird seit 2008 entwickelt. Er folgt<br />
einem Modulkonzept mit einem C++und<br />
Python-API und dient als Beispiel<br />
(Hub, Switch), um Entwicklern zu zeigen,<br />
wie sie das API zum Entwerfen von<br />
Netzwerkanwendungen nutzen.<br />
Floodlight<br />
VLAN<br />
Ethernet<br />
ID SA DA Type<br />
Der Floodlight-Controller [4] ist hingegen<br />
etwas <strong>neu</strong>er und setzt auf die plattformübergreifende<br />
Programmiersprache<br />
IP<br />
SA DA Proto<br />
Abbildung 3: Schema der Header Fields aus der Open-Flow-Spezifikation 1.0.<br />
Listing 1: Netzwerk in Mininet anlegen<br />
01 mininet@mininet‐vm:~$ sudo mn ‐‐topo single,2<br />
‐‐mac ‐‐switch ovsk ‐‐controller remote<br />
02 *** Creating network<br />
03 *** Adding controller<br />
04 Unable to contact the remote controller at<br />
127.0.0.1:6633<br />
05 *** Adding hosts:<br />
06 h1 h2<br />
Java. Auch Floodlight bringt einige Apps<br />
mit und verfolgt ein Modul- und Appbasiertes<br />
Konzept. Die Standardversion<br />
liefert zum Beispiel ein Modul mit, das<br />
eine zusätzliche REST-Schnittstelle zum<br />
aktiven Setzen statischer Flows anbietet.<br />
So wie Nox steht auch Floodlight unter<br />
einer Open-Source-Lizenz, in diesem Fall<br />
unter der von Apache.<br />
Frenetic<br />
Src<br />
TCP<br />
Frenetic [5] ist ein Projekt der Princeton<br />
University, das die LGPLv3 verwendet.<br />
Die Netzwerk-Programmiersprache läuft<br />
als Anwendung auf dem Nox-Controller,<br />
verwendet ein eigenständiges Runtime<br />
Environment und spricht wahlweise<br />
Ocaml oder Python.<br />
Frenetic bringt eine weitere Abstraktionsschicht<br />
zur App-Entwicklung ins Spiel,<br />
die es erlaubt, die Menge an Sourcecode<br />
zu reduzieren und anwendungsorientierten<br />
Quellcode zu schreiben. Dieser lässt<br />
sich modular in Funktionen kapseln und<br />
wiederverwenden. Während der C++-<br />
Quellcode für einen Repeater beispielsweise<br />
um die 100 Codezeilen umfasst,<br />
erledigt Frenetic die Implementierung mit<br />
weniger als zehn Zeilen Code.<br />
Open Flow und Mininet<br />
Dst<br />
Wie SDN mit Open Flow funktioniert,<br />
lässt sich am besten an den folgenden<br />
drei praktischen Beispielen zeigen. Das<br />
im Schwerpunkt vorgestellte Mininet [6]<br />
liefert eine passende Umgebung zum Testen<br />
und Evaluieren solcher <strong>Netze</strong>.<br />
Die Heft-DVD bringt fertige Virtualbox-<br />
Images mit, als Typ stellt der Anwender<br />
07 *** Adding switches:<br />
08 s1<br />
09 *** Adding links:<br />
10 (h1, s1) (h2, s1)<br />
11 *** Configuring hosts<br />
12 h1 h2<br />
13 *** Starting controller<br />
14 *** Starting 1 switches<br />
15 s1<br />
App<br />
Controller<br />
App<br />
Open-Flow-Netzwerk<br />
Abbildung 4: Die Open-Flow-Controller dienen häufig<br />
als Plattform für Netzwerk-Applikationen.<br />
»<strong>Linux</strong>« ein und wählt die passende Architektur<br />
aus. Als »Disk‐Image« dient die<br />
entpackte VMDK-Datei. Bevor er die VM<br />
startet, sollte er jedoch die Einstellung für<br />
den Netzwerkadapter auf »Netzwerkbrücke«<br />
stellen, um die VM auch extern über<br />
das LAN zu erreichen.<br />
Hat der Nutzer die VM gestartet und sich<br />
angemeldet (Benutzername und Passwort<br />
lauten »mininet«), findet er die idealerweise<br />
per DHCP zugewiesene IP-Adresse<br />
heraus, indem er »ifconfig« eintippt. Über<br />
sie erreicht er die VM nun via SSH von einem<br />
externen Host aus. Weitere Mininet-<br />
Parameter verrät »man mn«.<br />
Level 1: Hin und zurück<br />
Im ersten Szenario erzeugt der Admin ein<br />
Netzwerk, das aus zwei Hosts besteht,<br />
die ein Switch verbindet (Listing 1). Er<br />
verzichtet auf den Controller, um die<br />
Flow Entries manuell zu setzen. Um zu<br />
prüfen, ob die Verbindung steht, schickt<br />
Host 1 nun über das CLI von Mininet<br />
einen Ping an Host 2:<br />
mininet> h1 ping ‐c 4 h2<br />
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of U<br />
data.<br />
From 10.0.0.1 icmp_seq=1 Destination Host U<br />
Unreachable<br />
[...]<br />
Der Versuch schlägt allerdings fehl, weil<br />
der Switch ohne Flow Entries und ohne<br />
Controller zunächst keine Pakete weiterleitet.<br />
Die Abwesenheit der letzten beiden<br />
zeigt:<br />
mininet@mininet‐vm:~$ dpctl dump‐flows<br />
tcp:127.0.0.1:6634<br />
stats_reply (xid=0x6929ef28): flags=none U<br />
type=1(flow)
Das hier verwendete Tool »dpctl« setzt<br />
nun einen Flow-Eintrag, der die an Port 1<br />
des Switch ankommenden Pakete an Port<br />
2 weiterreicht:<br />
mininet@mininet‐vm:~$ dpctl add‐flow tcp:U<br />
127.0.0.1:6634 in_port=1,actions=output:2<br />
Open Flow 04/2014<br />
Titelthema<br />
Wieder nichts: Der zweite Ping-Test<br />
schlägt auch fehl, da der Switch zwar<br />
Pakete an Host 2 weiterleitet, Letzterer<br />
aber nicht antwortet.<br />
Setzt der Netzwerker mit »dpctl« in Form<br />
eines weiteren Flow Entry jedoch ein Forwarding<br />
von Port 2 auf Port 1, wird das<br />
Ergebnis positiv: Beide Hosts tauschen<br />
sich ungehindert über den Switch aus, so<br />
lange der Idle-Timeout nicht dazwischenfunkt<br />
(Listing 2).<br />
Level 2: Wo bleibt Arp?<br />
Szenario 2 verwendet einen identischen<br />
Netzaufbau wie in Szenario 1, schickt<br />
den initialen Befehl allerdings so ab, dass<br />
Open Vswitch als eingebauter Controller<br />
zum Zuge kommt:<br />
mininet@mininet‐vm:~$ sudo mn ‐‐topo U<br />
single,2 ‐‐switch ovsk ‐‐controller ovsc<br />
Der Verbindungstest mit »ping« ist sofort<br />
erfolgreich, die Flow Table zeigt drei<br />
Flow-Einträge (Listing 3).<br />
Abbildung 5: Mit Wireshark lässt sich die Kommunikation zwischen Controller und Switches prima mitlesen.<br />
Neben dem Arp-Reply sind jeweils zwei<br />
ICMP-Requests und ‐Replies zu sehen,<br />
die aus dem vom Ping erzeugten Flow-<br />
Eintrag stammen. Allerdings stellt sich<br />
die Frage, was mit dem Arp-Request passiert<br />
ist, der üblicherweise als Broadcast<br />
übers Netzwerk geht. Indem der Netzwerker<br />
den Control Channel, der Switch<br />
und Controller verbindet, per Tcpdump<br />
oder Wireshark mitschneidet, kann er<br />
feststellen, dass der Controller die Arp-<br />
Requests direkt weiterleiten lässt, was<br />
keinen Flow Entry benötigt.<br />
Wer Wireshark mit dem Open-Flow-Dissector<br />
nutzt, der Teil des Mininet-Image<br />
ist, kann sehr übersichtlich die gesamte<br />
Kommunikation des Open-Flow-Controllers<br />
einsehen und analysieren. Abbildung<br />
5 zeigt als Beispiel den Handshake zwischen<br />
Controller und Switch sowie den<br />
»Features Reply« des Switch, der dem<br />
Controller signalisiert, welche Open-<br />
Flow-Aktionen er unterstützt.<br />
Level 3: Baumartige<br />
Im dritten und letzten Szenario erzeugt<br />
Mininet ein Netzwerk mit Baumtopologie<br />
(Abbildung 6), bei dem jeweils drei<br />
Hosts an den Switches S2 bis S4 hängen.<br />
Die drei Switches stöpselt Mininet dann<br />
an einen Aggregations-Switch (S1). Hier-<br />
www.linux-magazin.de<br />
35<br />
Listing 2: Die funktionierende Flow Table<br />
01 mininet@mininet‐vm:~$ dpctl dump‐flows tcp:127.0.0.1:6634<br />
02 stats_reply (xid=0x9565ff66): flags=none type=1(flow)<br />
03 cookie=0, duration_sec=39s, duration_nsec=436000000s, table_id=0, priority=32768, n_packets=12, n_bytes=728, idle_timeout=60,hard_timeout=0,<br />
in_port=1,actions=output:2<br />
04 cookie=0, duration_sec=13s, duration_nsec=466000000s, table_id=0, priority=32768, n_packets=6, n_bytes=476, idle_timeout=60,hard_timeout=0,<br />
in_port=2,actions=output:1
Titelthema<br />
www.linux-magazin.de Open Flow 04/2014<br />
36<br />
Abbildung 6: Floodlight erkennt die Baumstruktur des Testnetzwerks automatisch<br />
und bildet sie auch grafisch ab.<br />
bei handelt es sich um eine übliche Topologie<br />
für Netzwerke in Firmen oder auch<br />
Rechenzentren. Diesmal legt der Admin<br />
einen Remote-Controller fest, weist ihm<br />
eine IP-Adresse und einen Open-Flow-<br />
Standard-Controller-Port zu:<br />
mininet@mininet‐vm:~$ sudo mn ‐‐topo U<br />
tree,depth=2,fanout=3 ‐‐mac ‐‐switch U<br />
ovsk ‐‐controller=remote,ip=Controller-IP,U<br />
port=6633<br />
Als Konsequenz kann der Admin nun<br />
einen beliebigen Rechner im lokalem<br />
Netzwerk auswählen, auf dem er zum<br />
Beispiel Floodlight in der Basiskonfiguration<br />
startet:<br />
java ‐jar floodlight.jar<br />
Ist Mininet online, erkennt Floodlight<br />
anhand der Konsolenausgaben unter anderem<br />
sowohl die Verbindungen zu den<br />
Switches als auch die Topologie. Über die<br />
Eingabe von<br />
http://Controller‐IP:8080/ui/index.html<br />
kannten Switches und<br />
Hosts anzeigen – über<br />
den Reiter »Topology«<br />
auch grafisch. Die<br />
Grafik in Abbildung<br />
6 ist zwar eher funktional<br />
als ansehnlich,<br />
genügt jedoch, um<br />
einen Überblick zu erhalten.<br />
Resümee<br />
Dank Open Flow betrachtet<br />
der Admin<br />
sein Netzwerk nicht<br />
mehr als eine Ansammlung<br />
diverser Einzelgeräte, die lokal<br />
arbeiten und Pakete nach je eigenen<br />
Regeln weiterleiten, sondern als großes<br />
Ganzes, mit den Netzwerkgeräten als<br />
fernsteuerbaren Schleusen. Das öffnet<br />
eine Tür für <strong>neu</strong>e Ideen. Als wohl verbreitetste<br />
SDN-Manifestation, die auch<br />
in kommerziellen Produkten zum Einsatz<br />
kommt, sorgt Open Flow für frischen<br />
Wind im Bereich der Virtualisierung und<br />
der Flexibilität von Netzwerken und leistet<br />
Geburtshilfe für zahlreiche darauf aufsetzende<br />
Anwendungen.<br />
Die Technologie hat das Potenzial, Netzwerklösungen<br />
an der Basis zu verändern,<br />
und erfordert ein <strong>neu</strong>es Verständnis dafür,<br />
was eine Netzwerkinfrastruktur leisten<br />
kann. Open Flow behebt viele der<br />
Probleme, die Netzwerke seit der ersten<br />
technischen Realisierung des Ethernet<br />
mit sich herumschleppen. Es führt die<br />
Evolution in einem Bereich ein, in dem<br />
seit Jahren Workarounds dominieren, um<br />
die grundlegenden Techniken kompatibel<br />
zu halten.<br />
Wie so häufig, ist jedoch nicht alles Gold,<br />
was glänzt. Zu den offenen Fragen ge-<br />
ruft der Admin dann das Web-UI von<br />
Floodlight auf und lässt sich alle erhört,<br />
wie Admins Open Flow grundsätzlich<br />
in Produktivumgebungen einsetzen<br />
können und wie es sich als Ersatz zu den<br />
konventionellen Netzwerken macht – besonders<br />
in Rechenzentren oder großen<br />
Firmennetzwerken. Das streift die Frage,<br />
wie sich die Kontrollebene in solchen<br />
Kontexten skalieren und strukturell organisieren<br />
lässt.<br />
Ein konkretes Problem besteht darin,<br />
dass die Hardware verschiedene Open-<br />
Flow-Aktionen zurzeit nur mangelhaft<br />
unterstützt. Nicht zuletzt bereiten die immer<br />
<strong>neu</strong>en Versionen der Spezifikation<br />
den Firmware- und Controller-Hersteller<br />
beim Implementieren der <strong>neu</strong>en Features<br />
Kopfschmerzen. (kki) <br />
n<br />
Infos<br />
[1] Open Flow, erstes Paper:<br />
[http:// archive. OpenFlow. org/ documents/<br />
OpenFlow‐wp‐latest. pdf]<br />
[2] Open Networking Foundation: [https://<br />
test. opennetworking. org/ index. php]<br />
[3] Nox: [http:// www. noxrepo. org]<br />
[4] Floodlight: [http:// www. projectfloodlight.<br />
org/ floodlight/]<br />
[5] Frenetic: [http:// www. frenetic‐lang. org]<br />
[6] Mininet: [http:// mininet. org]<br />
[7] Open-Flow-Tutorial:<br />
[http:// archive. OpenFlow. org/ wk/<br />
index. php/ OpenFlow_Tutorial]<br />
Der Autor<br />
Marc Körner arbeitet als<br />
wissenschaftlicher Mitarbeiter<br />
am CIT der TU Berlin.<br />
Er beschäftigt sich seit<br />
über drei Jahren mit Open<br />
Flow und schreibt momentan<br />
an seiner Dissertation. Die setzt sich mit<br />
der Integration von Open-Flow-Anwendungen in<br />
Rechenzentren auseinander.<br />
Listing 3: Flow Tables auslesen<br />
01 mininet@mininet‐vm:~$ dpctl dump‐flows tcp:127.0.0.1:6634<br />
02 stats_reply (xid=0xf857cb47): flags=none type=1(flow)<br />
03 cookie=0, duration_sec=3s, duration_nsec=981000000s, table_id=0, priority=0, n_packets=4, n_bytes=392, idle_timeout=60,hard_timeout=0,icmp,<br />
in_port=1,dl_vlan=0xffff,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=10.0.0.1,nw_dst=10.0.0.2,nw_tos=0x00,icmp_type=8,icmp_<br />
code=0,actions=output:2<br />
04 cookie=0, duration_sec=3s, duration_nsec=980000000s, table_id=0, priority=0, n_packets=4, n_bytes=392, idle_timeout=60,hard_timeout=0,icmp,<br />
in_port=2,dl_vlan=0xffff,dl_src=00:00:00:00:00:02,dl_dst=00:00:00:00:00:01,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0x00,icmp_type=0,icmp_<br />
code=0,actions=output:1<br />
05 cookie=0, duration_sec=3s, duration_nsec=981000000s, table_id=0, priority=0, n_packets=1, n_bytes=42, idle_timeout=60,hard_timeout=0,arp,<br />
in_port=2,dl_vlan=0xffff,dl_src=00:00:00:00:00:02,dl_dst=00:00:00:00:00:01,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_proto=2,actions=output:1<br />
06
Titelthema<br />
www.linux-magazin.de Open Daylight 04/2014<br />
38<br />
Der SDN-Controller Open Daylight<br />
Strahlende Zukunft<br />
An den Grundlagen kommender SDN-Produkte arbeiten namhafte Unternehmen gemeinsam im Open-<br />
Source-Projekt Open Daylight. Im Februar 2014 erblickte dessen erste Code Release das Tageslicht. Mathias Huber<br />
Bescheidenheit zählt in der Regel nicht<br />
zu den Tugenden großer IT-Unternehmen.<br />
Umso bemerkenswerter war es, als Erik<br />
Ekudden, oberster Technologie-Stratege<br />
bei Ericsson, konstatierte: „Keiner von<br />
uns ist groß genug, sich den Themen<br />
Software Defined Networking und Network<br />
Functions Virtualization allein zu<br />
stellen. Daher bleibt uns nur die Zusammenarbeit.“<br />
Das sagte er auf dem Open<br />
Daylight Summit im Februar 2014 [1].<br />
Die Veranstaltung fiel zusammen mit der<br />
ersten Release der SDN-Suite Open Daylight,<br />
dem gemeinsamen Produkt vieler<br />
Branchengrößen.<br />
Gemeinsames Projekt<br />
Das Open-Daylight-Projekt [2], im April<br />
2013 gegründet, steht als so genanntes<br />
Collaborative Project unter der Ägide der<br />
<strong>Linux</strong> Foundation. Die Mitgliederliste<br />
verzeichnet alles, was in der Netzwerkbranche<br />
Rang und Namen hat: Brocade,<br />
Cisco, Juniper und Citrix rangieren in der<br />
ersten Reihe zusammen mit Red Hat, IBM<br />
und Microsoft. Das Projekt soll in der<br />
noch frühen Phase des SDN mit Open-<br />
Source-Software eine Grundlage schaffen,<br />
auf der die Mitglieder ihre Produkte aufbauen<br />
wollen. Als Lizenz für den Code,<br />
hauptsächlich in Java und Python, haben<br />
die Partner die Eclipse Public License<br />
(EPL) 1.0 gewählt.<br />
Das erste greifbare Ergebnis der Zusammenarbeit<br />
ist die Release Hydrogen vom<br />
Februar 2014. Dabei handelt es sich eigentlich<br />
um eine komplette Distribution<br />
von SDN-Software, denn Open Daylight<br />
besteht aus zahlreichen Unterprojekten,<br />
die einzelne Komponenten entwickeln.<br />
Synchronisierte halbjährliche Releases<br />
sollen für Konsistenz sorgen.<br />
Den Kern von Open Daylight bildet der<br />
SDN-Controller. Dessen Komponenten<br />
teilen sich eine Java-Runtime und kommunizieren<br />
untereinander mit Funktionsaufrufen.<br />
Unterhalb dieser Kontrollschicht<br />
befindet sich das so genannte<br />
Southbound Interface, wie Abbildung 1<br />
zeigt. In dieser Richtung liegt alles, was<br />
konkreter als die Control Plane ist (siehe<br />
den Grundlagen-Artikel „Teile und herrsche“<br />
in diesem Schwerpunkt).<br />
An die Service Abstraction Layer (SAL),<br />
die untere Abstraktionsschicht des Controllers<br />
samt Plugin-Manager, docken<br />
Plugins für mehrere Protokolle an, die<br />
zum Steuern der Data Plane mit ihren<br />
Netzwerkgeräten dienen. Diese Multi-<br />
Protokoll-Unterstützung ist ein wichtiges<br />
Ziel des Projekts, und so finden sich dort<br />
unter anderem Plugins für Open Flow<br />
(Versionen 1.0 und 1.3), den Standard<br />
Netconf sowie das OVSDB-Management-<br />
Protokoll für Open Vswitch – schließlich<br />
kann das Netzwerk-Equipment auch<br />
virtualisiert sein.<br />
In der Gegenrichtung liegt das Northbound<br />
Interface, das den Anschluss an<br />
Abstrakteres bildet: an Netzwerkanwendungen<br />
sowie Management- und Orchestrierungssoftware.<br />
Dazu zählt die Open-<br />
Stack-Komponente Neutron, die für die<br />
Gäste des Cloud-Computing-Frameworks<br />
Netzwerkverbindungen herstellt. Mit solcher<br />
Software kommuniziert der Controller<br />
über ein REST-API.<br />
Praktisches<br />
Erste Gehversuche mit Open Daylight<br />
macht der interessierte Admin am besten<br />
mit einem in Software nachgeahmten<br />
Netzwerk. Dazu bietet sich die freie<br />
Software Mininet an (siehe Artikel in<br />
diesem Schwerpunkt). Praktischerweise<br />
hält das Projekt virtuelle <strong>Linux</strong>-Appliances<br />
mit vorinstalliertem Mininet vor [3].<br />
Sie lassen sich mit verschiedenen Virtualisierungstechnologien<br />
betreiben, die<br />
Entwickler empfehlen Virtualbox. Dessen<br />
jüngste Versionen haben allerdings<br />
gelegentlich Probleme mit den bereitgestellten<br />
OVF-Dateien. Es ist ratsam, von<br />
Hand eine Ubuntu-VM mit 1 GByte RAM<br />
anzulegen und ihr das heruntergeladene<br />
VMDK-Image zuzuweisen.
Während die virtuelle Maschine bootet,<br />
kann der Admin den Open-Daylight-Controller<br />
installieren. Voraussetzung dafür<br />
ist Java 7. Es stehen RPM-Pakete und Zip-<br />
Files zum Download [4] bereit, die Base-<br />
Ausgabe ist ausreichend. Virtuelle <strong>Linux</strong>-<br />
Appliances sowie Docker-Container sind<br />
ebenfalls im Angebot. Bei einer distributions<strong>neu</strong>tralen<br />
Installation aus dem Zip<br />
braucht man nach dem Entpacken nur<br />
das im Verzeichnis enthaltene Startskript<br />
mit »./run.sh« auszuführen.<br />
Mit laufendem Open Daylight und einsatzbereiter<br />
Mininet-VM lässt sich ein<br />
einfaches Forwarding-Beispiel aus dem<br />
Projekt-Wiki nachvollziehen [5]. In die<br />
Konsole der virtuellen Maschine loggt<br />
sich der User »mininet« mit gleichlautendem<br />
Passwort ein. Dort erstellt er<br />
mit dem folgenden Befehl ein einfaches<br />
Netzwerk mit baumartig angeordneten<br />
Switches in drei Ebenen:<br />
sudo mn ‐‐controller=remote,ip=IP‐AdresseU<br />
‐‐topo tree,3<br />
Abbildung 2: Das in einer Mininet-VM emulierte Testnetzwerk taucht in der grafischen Darstellung im Webinterface<br />
des SDN-Controllers Open Daylight auf.<br />
Der Platzhalter »IP‐Adresse« ist mit der<br />
von außen erreichbaren Adresse des<br />
Hosts zu ersetzen, auf dem Open Daylight<br />
läuft. Unter »http://IP‐Adresse:8080« ist<br />
die Weboberfläche des SDN-Controllers<br />
zu finden (Abbildung 2), als Username<br />
und Passwort dient »admin«.<br />
Die grafische Darstellung im Browser<br />
zeigt die sieben emulierten Switches,<br />
die etwas durcheinander aussehen. Per<br />
Drag & Drop lassen sie sich übersichtlicher<br />
an<strong>ordnen</strong>. Unter dem Netzwerkdiagramm<br />
findet sich der blaue Button »Add<br />
Gateway IP Address« als die der Anwender<br />
eine IP-Adresse und Subnetz-Maske<br />
wie »10.0.0.254/8« einträgt.<br />
Auf der Konsole der Mininet-VM lässt<br />
sich nun ein Ping von einem virtuellen<br />
Host zum anderen schicken, beispielsweise<br />
mit »h1 ping h7«. Dann wechselt<br />
man zurück zur Weboberfläche und dort<br />
zum Reiter »Troubleshooting«. Dort kann<br />
der Admin unter »Existing Nodes« einen<br />
Knoten auswählen und unter »Flows«<br />
oder »Ports« Detailinformationen zu dessen<br />
Verbindungen aufrufen.<br />
Damit sind die Möglichkeiten von Open<br />
Daylight längst nicht ausgeschöpft. Die<br />
Software lässt sich clustern und erlaubt<br />
daneben den Fernzugriff über die Java<br />
Management Extensions (JMX). Die Service<br />
Provider Edition der Software fügt<br />
noch Plugins für die Protokolle BGP,<br />
PCEP und SNMP4SDN hinzu. Außerdem<br />
gibt es eine Virtualization Edition mit<br />
dem Virtual Tenant Manager (VTN), der<br />
den Anschluss an die Netzwerkkomponente<br />
Neutron von Open Stack herstellt.<br />
Ausblick<br />
Wer nicht zur Entwickler-Community der<br />
beteiligten Unternehmen gehört, tut sich<br />
mit Open Daylight noch schwer. Die Dokumentation<br />
im Wiki ist sehr bruchstückhaft<br />
und häufig nicht aktuell. Es bleibt<br />
abzuwarten, ob sich das bessert oder ob<br />
der Kunde auf die aufpolierten Produkte<br />
der Hersteller angewiesen sein wird. n<br />
Open Daylight 04/2014<br />
Titelthema<br />
www.linux-magazin.de<br />
39<br />
© opendaylight.org<br />
Abbildung 1: Die zentrale Komponente von Open Daylight ist die in Java implementierte Kontrollschicht. Mit<br />
physischen und virtuellen Netzwerkgeräten (unten) kommuniziert sie mittels Protokoll-Plugins, mit Managementsoftware<br />
(oben) per REST-API.<br />
Infos<br />
[1] Open Daylight Summit:<br />
[http:// events. linuxfoundation. org/ events/<br />
opendaylight‐summit]<br />
[2] Open Daylight:<br />
[http:// www. opendaylight. org]<br />
[3] Mininet-VMs:<br />
[http:// mininet. org/ download/]<br />
[4] Open-Daylight-Downloads: [http:// www.<br />
opendaylight. org/ software/ downloads]<br />
[5] Installation und erste Schritte:<br />
[https:// wiki. opendaylight. org/ view/<br />
OpenDaylight_Controller:Installation]
Titelthema<br />
www.linux-magazin.de Enterprise-Produkte 04/2014<br />
40<br />
Kommerzielle SDN-Umgebungen als Alternative zu Open Flow<br />
Nur vorerst eine Nische<br />
Während Open Flow von Idealen und der Technik getrieben ist, zählt für Konzerne zuerst die Frage, wie sich<br />
Software Defined Networking monetarisieren lässt. Vor allem VMware, aber auch Midokura, Cisco und IBM<br />
bringen eigene Ansätze als Konkurrenz zu Open Flow. Martin Loschwitz, Markus Feilner, Jan Kleinert<br />
Foto: Markus Feilner<br />
Wer sich mit dem Thema Software Defined<br />
Networking beschäftigt, bekommt<br />
den Eindruck, SDN sei nur in Sachen<br />
Cloud Computing interessant. Und in der<br />
Tat fallen die Begriffe Cloud und SDN<br />
meist im gleichen Atemzug. Über den<br />
Umweg gängiger Cloud-Umgebungen und<br />
dort insbesondere mit Hilfe von Open<br />
Stack hat sich Open Flow mitsamt seinen<br />
Frontends zu einem weithin akzeptierten<br />
Standard entwickelt. Und wer von SDN<br />
im Open-Stack-Kontext redet, meint damit<br />
fast immer das Open-Vswitch-Projekt<br />
[1], das bekanntlich auf Open Flow zurückgreift.<br />
Ein Stück vom Kuchen<br />
Diese Vereinnahmung des SDN-Begriffs<br />
kann Firmen wie VMware und Cisco freilich<br />
nicht gefallen. Denn selbstverständlich<br />
möchten auch die Platzhirsche [2]<br />
ein Stück des Kuchens abhaben, den sie<br />
griffig und Cloud-unabhängig als Software<br />
Defined Data Center (SDDC) titulieren.<br />
Aus diesem Grund wundert es nicht,<br />
dass die großen Unternehmen in letzter<br />
Zeit ihre eigenen SDN-Lösungen propagieren.<br />
Nicht jedes von ihnen hatte allerdings<br />
bereits passende Entwicklungen<br />
in der Schublade: VMware kaufte sein<br />
SDN-Angebot ein, übernahm die Firma<br />
Nicira und vermarktet die Software nun<br />
als VMware NSX [3].<br />
Die Konkurrenz hat den Trend ein wenig<br />
verschlafen und versucht jetzt, aufzuholen:<br />
Cisco ([4], Kasten „Cisco und<br />
das SDN“) wagt sich mit seinem Ansatz<br />
gerade aus der Deckung und möchte Anteile<br />
am Netzwerkmarkt halten. Ganz erwartungsgemäß<br />
will auch Big Blue noch<br />
ein Wörtchen mitreden ([5], Kasten<br />
„Ganz frisch: IBM SDN VE“) und geht<br />
deshalb mit einer eigenen SDN-Software<br />
an den Start.<br />
Anders als im OSS-Umfeld ist der Markt<br />
kommerzieller SDN-Lösungen derzeit<br />
unübersichtlich. Als Beispiel für man-<br />
chen Underdog im SDN-Business stellt<br />
der Artikel stellvertretend Midokura vor.<br />
Das Unternehmen mit einer überschaubaren<br />
Anzahl an Büros weltweit bietet<br />
in Form von Midonet ([6], Kasten „Der<br />
Underdog – Midonet“) auch einen SDN-<br />
Stack an, mit dem es gegen die großen<br />
Konzerne anzurennen versucht.<br />
Auch auf Seiten freier Software sind einige<br />
Projekte im Spiel: Open Vswitch,<br />
Open Daylight, Ryu und noch einige Nischenprodukte<br />
tauchen auch im kommerziellen<br />
Zusammenhang immer wieder<br />
auf. Diesen Lösungen ist gemein, dass<br />
sie im Hintergrund Open Flow verwenden.<br />
Anders ist das bei den kommerziellen<br />
Produkten: Es existieren bis dato nur<br />
wenige echte Referenzinstallationen, die<br />
auf Basis der SDN-Software von VMware<br />
oder Cisco arbeiten. Dieser Artikel konzentriert<br />
sich daher auf ein konkretes<br />
Beispiel mit VMware, das am längsten<br />
auf dem Markt ist und viele bekannte<br />
Konzepte vereint.<br />
Auf Shopping-Tour<br />
Angesichts der wachsenden Konkurrenz<br />
von Xen, KVM und vor allem Open<br />
Stack hat der Virtualisierungs-Platzhirsch<br />
VMware in letzter Zeit viel Geld investiert,<br />
um vorhandene Funktionen mit<br />
Cloud-Computing-Umgebungen unter<br />
einen Hut zu bringen. Ein gutes Beispiel<br />
liefert Open Stack, mit dem VMware mittlerweile<br />
klaglos zusammenarbeitet: Ein<br />
vorhandenes Vcenter lässt sich aus Open<br />
Stack heraus problemlos ansprechen.<br />
Langfristig genügte es VMware aber offensichtlich<br />
nicht, nur den Markt für die<br />
Virtualisierung von Computing-Angeboten<br />
zu bedienen. Mit dem Anspruch, die<br />
Messlatte im Sinne des Software Defined
© Yves Fauser, VMware<br />
Data Center selbst anzulegen, knöpfte<br />
sich VMware mit dem Software Defined<br />
Networking ein weiteres Ziel auf dem<br />
Weg vor. Anstatt aber ein eigenes Entwicklerteam<br />
für ein passendes Produkt<br />
aufzubauen, angelte sich der Konzern<br />
kurzerhand Nicira [7], einen der Vorreiter<br />
und quasi das Bootcamp für SDN-<br />
Experten im IT-Bereich.<br />
Nicira<br />
Management und<br />
Operator-Tools<br />
Der NVP-Stack in NSX<br />
NVP-API<br />
NVP Control Plane<br />
Das amerikanische Unternehmen Nicira<br />
war durchaus kein Unbekannter.<br />
Seine Gründer sind<br />
Nick McKeown, Scott<br />
Shenker und Martin<br />
Casado. Gerade der<br />
Dritte profilierte sich<br />
als treibender Kopf<br />
hinter der Entwicklung<br />
von Open Flow.<br />
Casados wissenschaftliche<br />
Arbeit an<br />
der Uni in Stanford<br />
hat Open Flow eine<br />
definierte Grundlage<br />
verschafft, und auch<br />
Open Vswitch geht auf<br />
das Konto von Nicira.<br />
VMware erwarb also nicht irgendein Unternehmen,<br />
sondern eine der wichtigsten<br />
Firmen im SDN-Land.<br />
Quantum und<br />
Quantum-API<br />
L2/L3-Gateways Service-Nodes Hypervisoren<br />
Netzwerk-Hardware und physikalisches Netz<br />
Abbildung 1: Niciras NVP ist nun Bestandteil von VMwares NSX. Die Grafik<br />
zeigt, wie sich VMware den ganzen Stack vorstellt.<br />
NVP<br />
Vorrangig gekauft hat VMware Nicira<br />
aber wohl wegen der Network Virtualization<br />
Platform (NVP, Abbildung 1), einem<br />
von Nicira entwickelten Open-Flow- und<br />
Open-Vswitch-Aufsatz. Das Produkt war<br />
quasi ein Framework um Open Vswitch<br />
herum, das die in Open Flow vorgesehene<br />
Funktionalität über kommerzielle<br />
aber immerhin standardisierte Interfaces<br />
exponiert und dabei deutlich mehr zu<br />
bieten hat, als es bei Open Vswitch ab<br />
Werk der Fall ist.<br />
Relaunch unter einem<br />
<strong>neu</strong>em Mäntelchen<br />
Mit einem Schlag erwarb VMware sowohl<br />
die Software als auch die gesamte<br />
Entwicklertruppe von Nicira. Kurze Zeit<br />
später folgte ein Relaunch von NVP als<br />
VMware-Brand: VMware NSX war geboren,<br />
NVP wurde ein Teil davon. Welche<br />
Komponenten von NSX ein Kunde zum<br />
Einsatz bringt, hängt von der Infrastruktur<br />
vor Ort ab: Wer bis dato nur auf<br />
Vsphere, Vcenter und Co. gesetzt hat,<br />
benutzt lediglich den Controller-Cluster<br />
von NVP und setzt bei den Hypervisoren<br />
mittelfristig auf den zuvor schon vorhandenen<br />
Virtual Distributed Switch (Abbildung<br />
2).<br />
Kommen <strong>Linux</strong>-Hypervisoren auf Basis<br />
von KVM oder Xen zum Einsatz, sieht die<br />
Sache anders aus: Dann übernimmt NVP<br />
praktisch durchgehend das Kommando.<br />
Dass sich NVP ursprünglich im <strong>Linux</strong>-<br />
Kontext wohler fühlte als im klassischen<br />
VMware-Universum, lässt sich auch aus<br />
Enterprise-Produkte 04/2014<br />
Titelthema<br />
www.linux-magazin.de<br />
41<br />
Cisco und das SDN<br />
SDN entzieht der Netzwerkhardware gewöhnlich<br />
Intelligenz und überträgt sie auf höhere<br />
abstrakte Schichten. Das kommt Firmen wie<br />
VMware entgegen, Hardwarehersteller, allen<br />
voran Cisco, bedroht dies langfristig.<br />
ONE und ACI: Open Network Environment und<br />
Application Centric Infrastructure<br />
Als erste Antwort boten die Amerikaner eine<br />
engere Bindung zwischen der hauseigenen<br />
physikalischen Infrastruktur und SDN-nahen<br />
Komponenten. Das Open Network Environment<br />
(Cisco ONE) bietet eine programmierbare Plattform,<br />
die APIs, Agenten, Controller und Komponenten<br />
für Overlay-<strong>Netze</strong> enthält. Grundlage<br />
bildet die Cisco-Systemsoftware IOS, IOS-XR<br />
und NX-OS. Zudem hatte der Hersteller für die<br />
Catalyst-Switches 3560 und 3750 einen Open-<br />
Flow-Agenten programmiert.<br />
Die Bemühungen wirkten zunächst recht vorsichtig,<br />
vielleicht auch, um das traditionelle<br />
Geschäft nicht zu gefährden. Um so mehr überraschte<br />
es, als Cisco letzten November eine<br />
eigene anwendungszentrierte und rechenzentrumsweite<br />
Architektur vorstellte, die deutliche<br />
Züge von SDN aufwies und auf der anderen<br />
Seite funktionell recht weit ins Private Cloud<br />
Computing hineinreichte.<br />
Cisco ACI (Application Centric Infrastructure,<br />
[4]) passt das Netzwerk automatisch an wechselnde<br />
Anwendungsanforderungen an und stellt<br />
IT-Anwendungen per Virtualisierung On-Demand<br />
bereit. Im Zentrum stehen der <strong>neu</strong>e Nexus<br />
9000 Data Center Switch mit 60 TByte Datendurchsatz<br />
pro Sekunde sowie ein Application<br />
Policy Infrastructure Controller (APIC), welche<br />
die Hardware virtueller und physischer Netzwerksegmente<br />
einheitlich steuern. ACI weist<br />
über Policy-Templates automatisch Netzwerkressourcen<br />
und Sicherheitsrichtlinien zu und<br />
verteilt zugleich die Lasten und Durchsätze.<br />
Mit dem frei programmierbaren APIC lassen<br />
sich mehrere APIC-Appliances zu einem Cluster<br />
verbinden. Der unterstützt laut Hersteller alle<br />
Anwendungen in der Fabric unabhängig davon,<br />
ob sie auf virtuellen oder physischen Servern<br />
laufen. Virtuelle Maschinen – Cisco verträgt<br />
sich mit allen gängigen Hypervisoren – seien<br />
zudem in wenigen Minuten einsatzbereit und<br />
in Echtzeit steuerbar. Cisco hat die APIC-APIs<br />
offengelegt und lädt Open-Source-Projekte wie<br />
Open Stack dazu ein, ihre Tools zu integrieren.<br />
APIC Enterprise-Modul<br />
Mitte Februar meldete der Hersteller dann, APIC<br />
um ein Enterprise-Modul (APIC EM) ergänzt zu<br />
haben, das die ACI über das Rechenzentrum<br />
hinaus auf WANs und Campus-Netzwerke erweitert.<br />
Für das Compliance-Management bietet es<br />
netzwerkweite Quality of Service und beschleunigt<br />
intelligente WAN-Deployments. Wichtiger<br />
noch: Die Erweiterung verhilft APIC zu echten<br />
SDN-Fähigkeiten, indem es viele Konfigurations-<br />
und Policy-Änderungen über das gesamte<br />
Netzwerk automatisiert. Netzwerkmanagement<br />
und ‐Troubleshooting werden laut Cisco damit<br />
effizienter, da sich das gesamte Netzwerk als<br />
Einheit betrachten lasse.<br />
Das Enterprise-Modul besteht aus drei Elementen:<br />
Eine konsolidierte Netzwerkinformationsdatenbank,<br />
der Policy-Infrastruktur und der<br />
Automatisierungskomponente. Es steuert <strong>neu</strong>e<br />
SDN-fähige Hardware genauso wie herkömmliche<br />
Cisco-Netzwerkprodukte und besitzt zudem<br />
Netzwerkschnittstellen zu Open Flow und anderen<br />
Drittanbietern, auch solchen, die WAN- und<br />
Campus-Orchestrierung anbieten.
Titelthema<br />
www.linux-magazin.de Enterprise-Produkte 04/2014<br />
42<br />
© Yves Fauser, VMware<br />
Operator<br />
NVP-Manager<br />
NVP-API<br />
NVP-Controller<br />
Tenants<br />
Open Stack<br />
Langfristig will VMware die einzelnen<br />
Bestandteile der NSX-Architektur in ein<br />
einheitliches Produkt gießen. Bis dahin<br />
behalten Vsphere-basierte Architekturen<br />
ihre Sonderrolle und nutzen nur bedingt<br />
die Features von NVP. Allerdings inveseiner<br />
anderen Tatsache ablesen: Auf das<br />
Konto von Nicira gehen nicht nur NVP<br />
und Open Flow, sondern auch beträchtliche<br />
Teile von Open Stack Neutron ([8],<br />
vormals auch als Quantum bekannt), der<br />
SDN-Komponente von Open Stack (Abbildung<br />
3).<br />
Die NVP-Architektur<br />
L3-Gateway<br />
OVS<br />
OVS<br />
Hypervisor 1<br />
Das ideale NVP-Setup im Unternehmen<br />
hängt davon ab, ob bereits VMware-<br />
Komponenten im Einsatz sind oder ob<br />
VMware erst als <strong>neu</strong>er Lieferant in ein<br />
Rechenzentrum einzieht. Allen Varianten<br />
Internet Bare-Metal-VLAN Remote-Site<br />
L3-Gateway<br />
OVS<br />
L3 Fabric<br />
OVS<br />
Hypervisor 2<br />
Web App Web DB DB App<br />
...<br />
L2-Gateway<br />
OVS<br />
Hypervisor N<br />
Compute<br />
Abbildung 2: Auf physikalischer Ebene baut VMware NSX ein virtuelles L2-Netz auf einem echten Layer-3-Netzwerk auf. Dabei vermittelt<br />
an vielen Stellen Open Vswitch (in der Abbildung kurz als OVS gekennzeichnet) zwischen den Fabrics.<br />
OVS<br />
gemein ist, dass es einen NVP-Controller-<br />
Cluster gibt. Der ist quasi das Hirn der<br />
gesamten SDN-Infrastruktur: Er enthält<br />
die Datenbank mit der spezifischen Konfiguration<br />
für die vorhandenen virtuellen<br />
<strong>Netze</strong> der Kunden.<br />
Es handelt sich beim NVP jedoch nicht<br />
um eine Kombination von Bordmitteln<br />
wie MySQL. Vielmehr stellt der Controller-Cluster<br />
eine NVP-Eigenentwicklung<br />
dar, und er beherrscht dabei auch Funktionen<br />
wie die automatische Replikation<br />
von Daten. Der Controller ist in aktuellen<br />
NVP-Installationen stets ein redundant<br />
aufgebauter 3-Knoten-Cluster. Fällt<br />
einer der Server also<br />
aus, kümmert sich<br />
NVP automatisch um<br />
einen Failover.<br />
Fest mit dem NVP-<br />
L2-Gateway Controller verbunden<br />
ist ein RESTful-API:<br />
OVS<br />
Das ermöglicht es, Änderungen<br />
an der Konfiguration<br />
des NVP-<br />
Clusters vorzunehmen<br />
– per HTTP steuerbar.<br />
Darüber lässt sich<br />
Service-Nodes<br />
das gesamte Verhalten<br />
des NVP-Clusters<br />
OVS<br />
detailliert bestimmen.<br />
Natürlich bietet NVP<br />
auch einen eigenen<br />
Consumer für dieses<br />
API, ein umfangreiches<br />
Webinterface, das<br />
im Hintergrund REST-<br />
Befehle absetzt.<br />
Die physikalische Topologie des restlichen<br />
Netzwerkes hängt vom genutzten<br />
Deployment-Szenario ab. Im Vsphere-<br />
Beispiel holen sich die Hypervisoren ihre<br />
Konfigurationsparameter von dem oben<br />
beschriebenen Controller-Cluster.<br />
Topologie<br />
Ganz Frisch: IBM SDN VE<br />
Offensichtlich möchte Big Blue den SDN-Zug nicht verpassen und bringt<br />
mit etwas Verspätung ein eigenes SDN-Produkt auf den Markt. Kurz vor<br />
Redaktionsschluss, am 7. Februar 2014, veröffentlichte das Unternehmen<br />
eine Pressemitteilung, laut der IBMs SDN VE in Kürze zur Verfügung<br />
stehe. Das Akronym steht für „Software Defined Networking for Virtual<br />
Environments“. Technische Details, Preise oder Support-Bedingungen<br />
waren der Verlautbarung nicht zu entnehmen, wohl aber Informationen<br />
zum Design.<br />
Open Daylight plus NSX-Ähnlichkeiten plus Overlays und Gateways<br />
So arbeitet IBM einerseits auf Basis der Open-Daylight-Technologie und<br />
verfolgt zudem ein Design, das dem von VMwares NSX ähnelt, indem es<br />
einen zentralen Controller liefert, der die Konfiguration speichert. Andererseits<br />
gesellen sich Overlays und Gateways zu Nicht-SDN-<strong>Netze</strong>n –<br />
auch das eine von VMware bekannte Vorgehensweise. IBM unterstreicht<br />
durch seinen Einstieg in das Geschäft jedenfalls die Bedeutung von SDN:<br />
Big Blue würde sich wohl nicht mit der Sache beschäftigen, hielte das<br />
Unternehmen es nicht für eine langfristig lohnende Investition.<br />
Der Underdog – Midonet<br />
Wie VMwares NSX ist auch Midonet von Midokura fest im Cloud-Segment<br />
verankert. Als großen Vorteil seiner Produkte stellt der Hersteller die<br />
Kompatibilität zu Open Stack heraus. Damit begibt sich Midonet in direkte<br />
Konkurrenz zu NSX, hat aber eine deutlich kleinere User-Basis.<br />
Konzeptionell ähneln sich NSX und Midonet, und wie VMware hat Midonet<br />
eine beträchtliche Menge an Features implementiert, die im Cloud-<br />
Kontext von Bedeutung sind: Verteilte Router für Layer-2 und Layer-3-<br />
Anwendungen, inhärente Hochverfügbarkeit und ein RESTful-API samt<br />
eigenem Webinterface sind nur einige davon.<br />
Preise? Nur Midokura traut sich<br />
Aufschlussreich scheint auch die Tatsache, dass von allen angefragten<br />
Unternehmen nur Midokura in der Lage war, innerhalb von zwei Wochen<br />
Preise und ein Supportmodell zu nennen, obwohl auch dieser Hersteller<br />
beteuerte, in dieser Branche und bei diesen Produkten fänden sich<br />
eher individuelle Preise pro Projekt. In einem einfachen Szenario mit<br />
Premium-Support (24/7) nimmt der Hersteller um die 2000 Euro pro<br />
Host und Jahr.
© Yves Fauser, VMware<br />
Erzeuge Netz 1<br />
Tenant-Skipte<br />
Horizon<br />
Orchestration-Code<br />
Boote VM an Netz 1<br />
Quantum-API<br />
Nova-API<br />
Erzeuge Port Netz 1,<br />
Return Port-ID<br />
tiert die Firma einen großen Teil ihrer Arbeit<br />
derzeit auf diese Komponente – ein<br />
weiterer Beleg dafür, dass VMware diese<br />
Technologie für strategisch wichtig hält.<br />
Deutlich eleganter wirkt VMwares NSX<br />
mit seiner Kernkomponente NVP. Für<br />
freie Cloud-Lösungen wie Open Stack<br />
oder Cloud Stack hat Nicira NVP ja eigentlich<br />
entwickelt. Dass es sich hier<br />
auch mehr zu Hause fühlt, spürt der<br />
Admin vielerorts.<br />
Im Open-Stack-Kontext greifen die einzelnen<br />
Komponenten von NVP fast nahtlos<br />
ineinander: Auch hier gibt es natürlich<br />
den Controller-Cluster samt API und<br />
Webinterface, der sich um alle Belange<br />
der NVP-Konfiguration kümmert. Hinzu<br />
kommen diverse Zusatzkomponenten,<br />
die im Cloud-Kontext eigene Rollen übernehmen.<br />
NVP-Plugin<br />
Nova-Driver<br />
Erzeuge<br />
Netz 1<br />
Return Port-ID<br />
Vnic,<br />
Port ID<br />
Abbildung 3: Open Stack wird zum Consumer von NVP. Dank des passenden Plugins …<br />
NVP Controller<br />
Cluster<br />
OVS<br />
Nova Compute<br />
Pushe Flow-State<br />
ausschließt: VLANs beispielsweise sind<br />
tendenziell eine statische Angelegenheit.<br />
Ein Kunde in der Cloud will aber nicht<br />
darauf warten, dass ein Admin ein VLAN<br />
auf allen Switches einrichtet.<br />
Freilich ist es aber auch in einer Cloud<br />
notwendig, dass die VMs verschiedener<br />
Kunden über die Grenzen von Computing-Knoten<br />
hinweg sicher kommunizieren.<br />
Im SDN-Konstrukt muss also ein<br />
Ersatz für VLANs her, der die sichere<br />
Kommunikation von VMs einzelner Kunden<br />
innerhalb des Setups garantiert.<br />
Für die Cloud geht man deshalb typischerweise<br />
von mehreren, rein virtuellen<br />
Layern aus (siehe auch Abbildung 2):<br />
Zwischen den einzelnen Computing-Knoten<br />
entspannt sich ein virtuelles Layer-<br />
2-Netzwerk, das physikalisch auf dem<br />
Layer 3 liegt, weil es<br />
Techniken wie GRE-<br />
Tunneling benutzt.<br />
Um das Netzwerk<br />
nach außen kümmern<br />
sich spezielle<br />
Knoten der Cloud, die<br />
so genannten Layer-<br />
3-Knoten: Sie routen<br />
L3-Fabric einerseits Pakete von<br />
VMs ins Internet, und<br />
über eine Zusatzkomponente<br />
(nämlich den<br />
DHCP-Dienst) sorgen<br />
sie auch dafür, dass<br />
Kunden-VMs IP-Adressen erhalten, die<br />
zum jeweiligen privaten und virtuellen<br />
Kundennetzwerk passen. Die Verwaltung<br />
der Netzwerktopologie obliegt in typischen<br />
Cloud-Setups allein dem Kunden,<br />
der sich seine privaten <strong>Netze</strong> so anlegen<br />
kann, wie es ihm gefällt. Im Idealfall<br />
entsteht so ein Setup, in dem jeder Kunde<br />
nach seiner Facon glücklich wird, während<br />
der Anbieter sich über eine hochgradig<br />
flexible Installation freut.<br />
Neutron als Blaupause<br />
Open Stack Neutron, die SDN-Komponente<br />
der Cloud-Umgebung, bildet für<br />
diese Art der Installation quasi die Blaupause.<br />
In einer Standardinstallation kümmern<br />
sich bei Open Stack Open Flow und<br />
Enterprise-Produkte 04/2014<br />
Titelthema<br />
www.linux-magazin.de<br />
43<br />
SDN in der<br />
Cloud<br />
Wer die Funktionen<br />
der einzelnen NVP-<br />
Komponenten verstehen<br />
will, braucht ein<br />
wenig Hintergrundwissen<br />
über SDN,<br />
Cloud Computing und<br />
Netzwerke im Allgemeinen,<br />
weil sich in<br />
einer Wolke ganz andere<br />
Anforderungen<br />
stellen als in konventionellen<br />
Setups. SDN-<br />
Deployments müssen<br />
in hohem Maße dynamisch<br />
sein, was den<br />
Einsatz klassischer<br />
Technologien häufig<br />
Abbildung 4: … lassen sich problemlos die NVP-Funktionen aus Neutron heraus nutzen.
Titelthema<br />
www.linux-magazin.de Enterprise-Produkte 04/2014<br />
44<br />
Open Vswitch Hand in Hand darum, die<br />
gewollten Effekte zu erreichen.<br />
Wie passt NVP hier rein?<br />
Die physikalische Netzwerktopologie einer<br />
NVP-Installation ist so flach wie im<br />
Beispiel beschrieben. VLANs sucht man<br />
hier meist vergebens. VMware nennt dieses<br />
physikalische Netzwerk offiziell übrigens<br />
Layer-3-Fabric (siehe Abbildung 1).<br />
Tatsächlich ist diese Komponente das virtuelle<br />
L2-Netzwerk im physischen Layer<br />
3: Jeder Hypervisor-Host betreibt seine<br />
eigene Instanz von Open Vswitch.<br />
Auf den Hypervisoren unterscheidet sich<br />
ein NVP-Setup damit gar nicht so sehr<br />
von einem Setup, das ohne NVP auskommt<br />
und nur auf das bekannte Open<br />
Vswitch setzt. Letzteres kümmert sich<br />
darum, dass die Systeme im Hintergrund<br />
Open-Flow-Tabellen anlegen und entsprechend<br />
der gewünschten Konfiguration<br />
warten. In einem auf Open Flow<br />
basierenden Netz beruht schließlich jeglicher<br />
Paketfluss auf eben den Flows, die<br />
Open Flow im Kernel verankert. Hinzu<br />
kommen im NVP-Setup die Layer-2- und<br />
Layer-3-Gateways. Die Layer-2-Gateways<br />
sind eine NVP-Besonderheit: Sie bieten<br />
die Möglichkeit, mit externen Netzwerken<br />
Verbindungen herzustellen, die „außen“<br />
über diverse, auch geroutete Pfade<br />
führen können, während nach innen in<br />
der virtuellen Sicht das gesamte L2-Netz<br />
noch immer wie ein großes Netzwerksegment<br />
aussieht. Anders formuliert: Über<br />
die L2-Gateways in NVP können Kunden<br />
ihr vorhandenes Netz in ein virtuelles<br />
Cloud-Netz integrieren und so die Migration<br />
von echtem Blech in virtuelle VMs<br />
erleichtern. Überhaupt hat sich VMware<br />
dem virtuellen Layer 2 stärker gewidmet<br />
als es Open Vswitch tut (Abbildung 5).<br />
Layer 2 und 3<br />
Denn während bei Open-Vswitch-Setups<br />
das gesamte Layer-2-Netz im Hintergrund<br />
entweder über GRE-Tunnel zwischen den<br />
Hypervisoren, den L3-Gateways oder<br />
über separate, physikalische VLANs<br />
funktioniert, bietet VMwares Ansatz<br />
mehr: Außer GRE oder VXLAN lässt sich<br />
bei NVP auch IPsec nutzen, wenn zwei<br />
Computing-Knoten aus Sicherheitsgründen<br />
verschlüsselt reden sollen.<br />
Abbildung 5: VMware NSX erfindet jede Menge<br />
Funktionalität um Open Vswitch herum.<br />
VMware nennt diesen Ansatz „Programmatic<br />
Tunneling“, die Technik ist deutlich<br />
umfangreicher als die mit Open Vswitch<br />
gelieferte. Als offensichtlicher Vorteil<br />
zählt auch, dass diese Art von Layer-<br />
2-Routing dabei hilft, Kunden von bestehenden,<br />
klassischen Virtualisierungsumgebungen<br />
hin zu Cloud-Lösungen zu<br />
migrieren.<br />
Die Layer-3-Gateways im NVP-Kontext<br />
sind – siehe oben – für das Routing von<br />
Paketen nach draußen verantwortlich,<br />
ihre Rolle entspricht also ziemlich genau<br />
jener, die klassische Layer-3-Gateways<br />
in einem Open-Stack-Setup mittels Open<br />
Vswitch auch einnehmen.<br />
Dann gibt es noch die Service-Nodes:<br />
So nennt VMware Netzwerkknoten, die<br />
den Hypervisor-Nodes Arbeit abnehmen,<br />
insbesondere also Broadcast- sowie<br />
Multicast-Traffic und Unicast-Pakete an<br />
unbekannte Adressen. In großen SDN-<br />
Deployments verursacht solcher Geister-<br />
Traffic bereits jede Menge Verkehr auf<br />
der Leitung; je mehr sich die Hypervisor-<br />
Knoten selbst um ihn kümmern müssen,<br />
umso weniger Ressourcen bleiben ihnen<br />
für das eigentliche Computing.<br />
Die Service-Nodes gelten als VMwares<br />
Antwort auf berechtigte Kritik von<br />
Admins, denen SDN-Deployments suspekt<br />
erschienen, weil sie DOS-Angriffe<br />
ermöglichen. Schon mit Broadcast- oder<br />
Multicast-Traffic lässt sich in einem Hy-<br />
pervisor-Verbund mit GRE-Verbindungen<br />
ein echtes Denial-of-Service starten,<br />
das wahllos VMs beeinträchtigt. Indem<br />
VMware diesen Traffic an separate Hosts<br />
auslagert, verringert es die Gefahr deutlich.<br />
Hochverfüg bar oder lieber<br />
Standalone?<br />
VMware hat sich auch eines weiteren<br />
Problems angenommen, das im normalen,<br />
auf Open Vswitch fußenden Open<br />
Stack derzeit ungelöst ist: Die Hochverfügbarkeit<br />
von Netzwerkdiensten. Typische<br />
Open-Stack-Installationen benötigen<br />
dazu Pacemaker, das im Stile eines klassischen<br />
Failover-Clusters ausgefallene<br />
Dienste wie das Layer-3-Gateway oder<br />
den SDN-Controller ersetzt.<br />
Bei NVP sind alle diese Funktionen bereits<br />
enthalten, und zwar mit automatischem<br />
Failover. Fällt ein Knoten des<br />
Controller-Clusters aus, übernimmt der<br />
nächste. Ausfallende L2- oder L3-Gateways<br />
ersetzt NVP automatisch durch eine<br />
andere Instanz – und das fast augenblicklich,<br />
sodass es zu keiner merklichen<br />
Downtime kommt. Wer sich bereits mit<br />
Open Stack beschäftigt hat und dort über<br />
der Hochverfügbarkeit der Open-Stack-<br />
Komponenten brütete, weiß solche Features<br />
zu schätzen.<br />
Fast schon überflüssig zu erwähnen, dass<br />
die Integration von Open Stacks SDN-<br />
Dienst Neutron und VMwares NVP annähernd<br />
perfekt ist – schließlich stammen<br />
beide Programme in weiten Teilen von<br />
denselben Entwicklern, und VMware hat<br />
nach dem Kauf von Nicira viel Wert darauf<br />
gelegt, die gute Open-Stack-Integration<br />
beizubehalten.<br />
Das darf aber nicht darüber hinweg täuschen,<br />
dass NVP auch ohne Open Stack<br />
gut benutzbar ist. Sobald <strong>Linux</strong>-basierte<br />
Hypervisoren im Spiel sind, kann das<br />
Programm seine Dienste bieten. Die Konfiguration<br />
passiert dann natürlich nicht<br />
direkt aus der Cloud-Umgebung heraus,<br />
sie bleibt am Administrator hängen.<br />
Fazit: Wohl zukunfsträchtig,<br />
aber teuer<br />
Die Cloud und kein Ende: Allen voran<br />
VMware lässt derzeit wenig Zweifel daran,<br />
wo nach Meinung der Platzhirsche
die Reise hingeht – nämlich weiter in die<br />
Wolken. Wer eine Cloud-Computing-Umgebung<br />
aufbaut, hat viele Möglichkeiten,<br />
sich mit kommerziellen Zusatzdiensten<br />
auszustatten. Die Kombination aus Open<br />
Stack und VMware erscheint derzeit eine<br />
der vielversprechendsten zu sein. Mehrere<br />
große Unternehmen wie Ebay oder<br />
der US-amerikanische Anbieter von Hosting-Dienstleistungen<br />
Rackspace setzen<br />
auf NVP (Rackspace sogar im direkten<br />
Tandem mit Open Stack). Mittlerweile<br />
vermarktet VMware NVP für Umgebungen,<br />
in denen KVM und Xen den Ton<br />
angeben, auch als separates Produkt, losgelöst<br />
von Open Stack.<br />
Das Unternehmen sieht darin offensichtlich<br />
einen Weg, den Fuß auch bei den<br />
Unternehmen in die Türe zu kriegen,<br />
die sich VMware für Virtualisierungsdienste<br />
nicht zulegen wollen. In der<br />
Community genießt NVP selbst bei den<br />
FLOSS-Entwicklern viel Prestige; nicht<br />
selten scheint es, als schiele man bei<br />
Open Flow etwas neidisch auf NVP, weil<br />
das Zusatzfunktionen bietet, die Open<br />
Flow selbst fehlen.<br />
Einziger NVP-Pferdefuß dürfte wohl der<br />
Preis sein, denn die Lizenzen lässt sich<br />
VMware nach Erfahrung des Autors eine<br />
satte Stange Geld kosten. Das Plus an<br />
Komfort im Vergleich mit einer OSS-Lösung<br />
ist insofern ziemlich teuer erkauft.<br />
Gegenüber Preisanfragen schweigt sich<br />
die Branche wohlweislich lieber aus:<br />
Nur Midokura sah sich in der Lage, dem<br />
<strong>Linux</strong>-<strong>Magazin</strong> auf Nachfrage binnen<br />
zwei Wochen einen konkreten Preis für<br />
das Produkt und den Premium-Support<br />
zu nennen. <br />
n<br />
Infos<br />
[1] Konstantin Agouros, „Virtuous schalten“:<br />
<strong>Linux</strong>-<strong>Magazin</strong> 02/13, S. 64.<br />
[2] C. Kühnast, M. Schynowski, M. Feilner,<br />
N. Graf „Wählerischer Platzhirsch“:<br />
<strong>Linux</strong>-<strong>Magazin</strong> 08/10, S. 70<br />
[3] VMware NSX:<br />
[http:// www. vmware. com/ products/ nsx/]<br />
[4] Cisco Application Centric Infrastructure:<br />
[http://www.cisco.com/c/en/us/solutions/<br />
data-center-virtualization/applicationcentric-infrastructure/index.html]<br />
[5] IBM SDN VE:<br />
[http:// www. ibm. com/ networking]<br />
[6] Midonet:<br />
[http:// www. midokura. com]<br />
[7] VMware und Nicira: [http:// www. vmware.<br />
com/ de/ support/ acquisitions/ nicira]<br />
[8] Open Stack Neutron:<br />
[https:// github. com/ openstack/ <strong>neu</strong>tron]<br />
Der Autor<br />
Martin Gerhard Loschwitz<br />
arbeitet als Principal Consultant<br />
bei hastexo. Er beschäftigt<br />
sich dort intensiv<br />
mit den Themen HA, Distributed<br />
Storage und Open<br />
Stack. In seiner Freizeit pflegt er Pacemaker für<br />
Debian.<br />
Enterprise-Produkte 04/2014<br />
Titelthema<br />
www.linux-magazin.de<br />
45
Titelthema<br />
www.linux-magazin.de Mininet 04/2014<br />
46<br />
Testbett für SDN<br />
Sandkastenspiele<br />
Dank Mininet konstruiert Philip Wette seine SDN-Topologien zunächst im Sandkasten, bevor er sie auf eine<br />
ziemlich erwachsene Rechnerfarm loslässt. Namespaces im Kernel machen es möglich. Philip Wette<br />
© imagebavarias, 123RF.com<br />
Mit einem einfachen Software-Update<br />
für den Open-Flow-Controller ändert<br />
ein Netzwerk-Admin oft das komplette<br />
Verhalten eines Open-Flow-organisierten<br />
Netzwerks [1]. Das Update kann er selbst<br />
schreiben, schließlich stehen die meisten<br />
Controller unter Open-Source-Lizenzen.<br />
Doch wie findet er heraus, ob seine Controller-Erweiterung<br />
auch mit der Topologie<br />
des Produktivnetzwerks harmoniert?<br />
Dumm wäre es, wenn er sie aktiviert und<br />
plötzlich das Routing oder die Firewall<br />
Amok laufen. Will er das Update zunächst<br />
ausgiebig in einer kontrollierten<br />
Umgebung testen, stößt er schnell auf<br />
Mininet [2].<br />
Sandkasten für Netzwerker<br />
Mininet braucht nur ein einziges <strong>Linux</strong>-<br />
System, um ein Netzwerk zu emulieren,<br />
das bei Bedarf Hunderte von virtuellen<br />
Switches und Hosts entfaltet. Es bildet<br />
also ein komplettes Netzwerk mitsamt<br />
angeschlossenen Computern auf einem<br />
Rechner ab, wobei die Hardware des<br />
Hosts über die maximale Anzahl an Switches<br />
und virtuellen Hosts bestimmt. Über<br />
einen Open-Flow-Controller kontrolliert<br />
und steuert der Admin dieses Testnetz<br />
dann nach Gutdünken. Doch das ist nicht<br />
alles: Die emulierten Hosts führen jedes<br />
unmodifizierte <strong>Linux</strong>-Programm aus. So<br />
prüft der Betreiber ohne Aufwand, ob<br />
und wie sich das veränderte Netzwerk<br />
auf einzelne Programme auswirkt, die in<br />
ihm laufen.<br />
Mininet testet aber nicht nur <strong>neu</strong>e Routing-<br />
und Forwarding-Regeln auf Herz<br />
und Nieren. Will ein Admin die Topologie<br />
eines realen Netzwerks verändern,<br />
kann er die Folgen bereits im Vorfeld über<br />
Mini net emulieren oder er verwendet es,<br />
um <strong>neu</strong>e <strong>Netze</strong> noch in der Planungsphase<br />
zu evaluieren.<br />
Griff in die Trickkiste<br />
Damit Mininet die große Zahl an virtuellen<br />
Switches und Hosts auf einem physikalischen<br />
Rechner nachbildet, nutzt es<br />
einige ausgefeilte Technologien, die der<br />
<strong>Linux</strong>-Kernel bereits seit einiger Zeit anbietet.<br />
Beispielsweise verzichtet Mininet<br />
auf eine vollständige Virtualisierung und<br />
emuliert virtuelle Switches und Hosts als<br />
einfache Prozesse auf einem gemeinsamen<br />
Hostsystem.<br />
Weil sich diese Prozesse aber wie individuelle,<br />
miteinander vernetzte Geräte<br />
verhalten sollen, muss der Kernel sie<br />
voneinander trennen. Hierbei machen<br />
sich die mit Version 2.2.24 eingeführten<br />
Network Namespaces [3] nützlich. Sie<br />
ermöglichen es, Prozesse mit individuellen<br />
Netzwerkschnittstellen sowie eigenen<br />
Routing- und Arp-Tabellen auszustatten.<br />
Jeder Prozess verfügt über einen eigenen<br />
Netzwerkkontext, die Kommunikation<br />
wickeln zwei Prozesse über die ihnen zugeordneten<br />
virtuellen Netzwerkschnittstellen<br />
ab.<br />
Prozesse reden allerdings nur direkt miteinander,<br />
wenn zwischen ihren Netzwerkschnittstellen<br />
eine Art virtuelles<br />
Kabel existiert. Das setzt Mininet mit<br />
den so genannten Veth Pairs um, die den<br />
Paketaustausch zwischen zwei Schnittstellen<br />
erlauben.<br />
Abbildung 1 illustriert, wie es der Kernel<br />
über die Network Namespaces ermöglicht,<br />
einen Rechner mit einem Netzwerk<br />
auszustatten, das über zahlreiche Schnittstellen<br />
verfügt. In dem dargestellten Beispiel<br />
hängen die zwei virtuellen Hosts H1<br />
und H2 an einem gemeinsamen Switch<br />
S1. Bash-Prozesse emulieren jeweils H1<br />
und H2, der Switch S1 läuft im Root Namespace,<br />
in dem auch der <strong>Linux</strong>-Kernel<br />
operiert. H1 und H2 bringen jeweils eigene<br />
Network Namespaces und eigene<br />
Netzwerkschnittstellen mit, »h1‐eth0«<br />
beziehungsweise »h2‐eth0«.<br />
Der Switch S1 verfügt nur über zwei<br />
Ports, »s1‐eth0« und »s1‐eth1«, die ihn<br />
über Veth Pair mit den entsprechenden
OF-Controller<br />
TCP<br />
»eth0«<br />
Mininet<br />
Root Namespace<br />
Softwareswitch<br />
Socket<br />
Socket<br />
»s1-eth0«<br />
»s1-eth1«<br />
»h1-eth0«<br />
Veth Pair<br />
Veth Pair<br />
»h2-eth0«<br />
Prozess 1<br />
Prozess 2<br />
H1-Namespace<br />
H2-Namespace<br />
Abbildung 1: Mininet nutzt die Network Namespaces im Kernel, um auf einem Host voneinander separierte<br />
virtuelle Hosts und Switches anzulegen.<br />
Schnittstellen der Hosts verbinden. Die<br />
Kommunikation zwischen H1 und H2 erfolgt<br />
somit ausschließlich über S1.<br />
Ein Softwareswitch spielt den Paketvermittler<br />
zwischen den Schnittstellen<br />
»s1‐eth0« und »s1‐eth1«. Er läuft im Root<br />
Namespace, verwendet die physikalische<br />
Schnittstelle »eth0« und wartet auf Befehle<br />
des Open-Flow-Controllers, die ihn<br />
über das Open-Flow-Protokoll erreichen.<br />
Der Controller läuft meist außerhalb des<br />
Mininet-Hosts, oft auch auf anderen Maschinen<br />
im Netzwerk.<br />
Mininet bringt jedoch auch selbst Controller<br />
mit, die sich über das Installationsskript<br />
einspielen lassen: Nox [4],<br />
den Open-Vswitch-Controller [5] sowie<br />
den Referenz-Controller von Open Flow<br />
1.0 [6]. Die drei laufen auf derselben<br />
physikalischen Maschine wie Mininet,<br />
reden über das lokale Loopback Device<br />
mit dem Switch und lassen sich über das<br />
Mininet-CLI starten.<br />
Um den emulierten Kabeln bestimmte<br />
Eigenschaften zuzuweisen, instruiert<br />
Mininet das im <strong>Linux</strong>-Kernel verankerte<br />
Traffic-Shaping-Werkzeug »tc« (Traffic<br />
Control, [7]). Das Tool reguliert neben<br />
Tabelle 1: Unterstützte Switches<br />
Softwareswitch Open-Flow-Version Modus<br />
Referenzimplementierung 1.0 Userspace<br />
Indigo Virtual Switch 1.0 Kernelspace<br />
Open Vswitch 1.0 Kernelspace<br />
Ofsoftswitch 13 1.3 Userspace<br />
der maximalen Datenrate eines jeden<br />
emulierten Links zusätzlich dessen Paketfehlerrate<br />
und Latenz. Daneben legt der<br />
Admin über »tc« das Buffering-Verhalten<br />
der Netzwerkschnittstellen fest. Dies bestimmt<br />
darüber, wie die Schnittstellen in<br />
einer Überlastsituation mit Paketen umgehen.<br />
Hier kommen neben einem einfachen<br />
First-in-first-out-Verfahren (Fifo)<br />
auch komplexere Techniken wie Random<br />
Early Detection (RED) zum Einsatz.<br />
Open-Flow-Versionen<br />
Generell kommt Mininet mit verschiedenen<br />
Softwareswitches zurecht, die wiederum<br />
zu unterschiedlichen Versionen von<br />
Open Flow kompatibel sind. Die aktuelle<br />
Mininet-Version 2.1 liefert in der Standardinstallation<br />
native Unterstützung für<br />
den Referenzswitch von Open Flow 1.0<br />
[6], den Indigo Virtual Switch [8] sowie<br />
für Open Vswitch [9]. Die Referenzimplementierung<br />
ist ein reines Userspace-<br />
Programm, während die beiden anderen<br />
als Kernelmodule laufen und daher eine<br />
wesentlich höhere Performance bei geringerem<br />
Forwarding Delay erzielen (Tabelle<br />
1).<br />
Alle drei Switches implementieren<br />
Open<br />
Flow 1.0. Wer mit der<br />
<strong>neu</strong>en Version Open<br />
Flow 1.3.x [10] experimentieren<br />
möchte,<br />
kann den Referenz-
Titelthema<br />
www.linux-magazin.de Mininet 04/2014<br />
48<br />
Abbildung 2: Dank des Python-API lässt sich Mininet mit einer Handvoll Befehle<br />
um <strong>neu</strong>e Hosts erweitern, die der Admin auch gleich konfiguriert.<br />
switch gegen die Variante von Open Flow<br />
1.3 (»ofsoftswitch13«) austauschen. Dies<br />
klappt am einfachsten, wenn der Admin<br />
Mininet mit<br />
# mininet/util/install.sh ‐n3fx<br />
installiert. Dank der Option liefert der<br />
Netzwerkemulator eine zu Open Flow 1.3<br />
kompatible Version von Nox aus.<br />
Interaktion mit Mininet<br />
Mininet bietet ein umfangreiches Python-<br />
API [11] an, über das der Admin das gesamte<br />
Verhalten jeder einzelnen Komponente<br />
steuert. Er kann darüber die Topologie<br />
des <strong>Netze</strong>s bestimmen, beliebige<br />
Prozesse auf Hosts starten, dynamisch<br />
die Parameter einer Netzwerkschnittstelle<br />
verändern und Ports von Switches während<br />
der Emulation ab- und wieder einschalten.<br />
Um das Verhalten eines Netzwerks<br />
in einem dynamischen Umfeld zu<br />
beobachten, ermöglicht es Mininet sogar,<br />
während einer laufenden Emulation zusätzliche<br />
Switches, Hosts und Netzwerkschnittstellen<br />
zu ergänzen.<br />
Eine Besonderheit von Mininet ist der<br />
erwähnte interaktive Kommandozeilenmodus<br />
(CLI-Modus). In ihm setzt der<br />
Benutzer während einer laufenden Emulation<br />
Befehle auf Hosts ab. Zusätzlich<br />
erlaubt er es, Python-Code einzutippen<br />
und auszuführen, der etwa die Topologie<br />
des <strong>Netze</strong>s interaktiv verändert.<br />
Um zu prüfen, ob der verwendete Open-<br />
Flow-Controller mit dynamisch auftauchenden<br />
Rechnern zurecht kommt, soll<br />
das folgende Beispiel ein bestehendes<br />
Netz um einen Host »H3« erweitern:<br />
# py net.addHost("H3")<br />
<br />
Im nächsten Schritt verkabelt der Betreiber<br />
den Host mit S1<br />
# py net.addLink(net.get("S1"), net.getU<br />
("H3"))<br />
<br />
und aktiviert die <strong>neu</strong>e Schnittstelle von<br />
S1. Dafür muss er zunächst den Namen<br />
der <strong>neu</strong>en Schnittstelle herausfinden.<br />
Dies geschieht mit:<br />
# py net.get("S1").intfList()<br />
[, , ,U<br />
]<br />
Mit dem Wissen, dass der Name »s1‐eth3«<br />
lautet, darf der Mininet-Betreiber die<br />
Schnittstelle nun aktivieren:<br />
# py net.get("S1").attach("s1‐eth3")<br />
Abschließend muss der Admin noch die<br />
IP-Adresse von H3 konfigurieren:<br />
# py net.get('H3').cmd("ifconfig h3‐eth0 U<br />
10.0.0.3")<br />
Ein Ping-Test prüft zum Schluss, ob der<br />
Host H1 den <strong>neu</strong>en Host H3 erreicht. Wie<br />
Abbildung 2 zeigt, ist der Test erfolgreich.<br />
Eine ausführliche Demonstration<br />
der Mininet-Fähigkeiten zeigt der Open-<br />
Flow-Artikel in diesem Schwerpunkt.<br />
Fazit<br />
Mininet eignet sich hervorragend, um automatische<br />
Netzwerkexperimente unter<br />
realitätsnahen Bedingungen umzusetzen.<br />
Der CLI-Modus macht es zu einem<br />
handlichen Werkzeug für Rapid-Prototyping-Entwicklungen<br />
von Controller-<br />
Erweiterungen, zudem gibt es mit Mini<br />
Edit (Abbildung 3) auch ein GUI zum<br />
Anlegen von Netzwerken [12].<br />
Weil Mininet aber auf nur einem Rechner<br />
läuft, ist seine Leistungsfähigkeit begrenzt.<br />
Auf einem i7-Prozessor mit 3,2<br />
GHz Taktrate schafft Mininet zum Beispiel<br />
einen Gesamtdatendurchsatz von<br />
höchstens 2,3 GBit pro Sekunde. Wer<br />
Abbildung 3: Wer will, kann sein Testnetz auch mit Hilfe einer grafischen Oberfläche<br />
entwerfen, die Software heißt Mini Edit.<br />
ein Netz mit höherem Datenaufkommen<br />
emulieren möchte, kann auf mein Projekt<br />
Maxinet [13] zurückgreifen, das Mininet<br />
auf mehrere physikalische Rechner verteilt.<br />
(kki)<br />
n<br />
Infos<br />
[1] Mininet-Webseite: [http:// mininet. org]<br />
[2] Heimat von Open Flow:<br />
[https:// www. opennetworking. org]<br />
[3] Network Namespaces:<br />
[http:// blog. scottlowe. org/ 2013/ 09/ 04/<br />
introducing‐linux‐network‐namespaces/]<br />
[4] Nox-Controller: [http:// www. noxrepo. org]<br />
[5] Open-Vswitch-Controller:<br />
[http:// openvswitch. org/ cgi‐bin/ ovsman.<br />
cgi? page=utilities%2Fovs‐controller. 8]<br />
[6] Open Flow 1.0, Release Notes:<br />
[http:// archive. openflow. org/ wk/ index.<br />
php/ OpenFlow_1. 0_release_notes]<br />
[7] Klaus Rechert, Patrick McHardy, „Vordrängler“:<br />
<strong>Linux</strong>-<strong>Magazin</strong> 02/2005, S. 28<br />
[8] Indigo Virtual Switch:<br />
[http:// www. projectfloodlight. org/<br />
indigo‐virtual‐switch/]<br />
[9] Open Vswitch: [http:// openvswitch. org]<br />
[10] Open-Flow-Specs: [https:// www.<br />
opennetworking. org/ sdn‐resources/<br />
onf‐specifications/ openflow]<br />
[11] Python-API von Mininet:<br />
[http:// mininet. org/ api/ annotated. html]<br />
[12] Mini Edit: [http://gregorygee.wordpress.<br />
com/category/miniedit/]<br />
[13] Maxinet: [http:// www. cs. uni‐paderborn.<br />
de/ ? maxinet]<br />
Der Autor<br />
Philip Wette ist Doktorand<br />
an der Universität<br />
Paderborn. Im Rahmen<br />
des Sonderforschungsbereiches<br />
901 untersucht er<br />
die Rekonfiguration von<br />
Netzwerk topologien durch Overlay-<strong>Netze</strong>.
In eigener Sache: DELUG-DVD<br />
Knoppix, Fosdem, Magnolia<br />
Einführung 04/2014 12/2010<br />
Software<br />
Auch diesen Monat bekommen die DELUG-Käufer wieder die doppelte Datenmenge zum einfachen Preis: Von<br />
der DVD bootet exklusiv Klaus Knoppers Medialinx Cebit Edition, dazu gibt’s Fosdem-Videos, ein E-Book, zwei<br />
VMs und jede Menge Software. Markus Feilner<br />
www.linux-magazin.de<br />
49<br />
Inhalt<br />
50 Knoppix 7.3<br />
Klaus Knoppers Live-Betriebssystem in<br />
der <strong>neu</strong>esten Exklusiv-Version.<br />
56 Magnolia CMS<br />
Das DELUG-Magnolia bietet attraktive<br />
Zugaben des Herstellers.<br />
58 Bitparade<br />
Software für die Durchführung und Auswertung<br />
von Online-Umfragen.<br />
66 KDE Frameworks 5<br />
Die KDE Frameworks 5 sollen Ordnung in<br />
den Bibliotheken-Wust bringen. Nebenbei<br />
profitieren mobile Geräte und der<br />
An wen der, er muss weniger installieren.<br />
72 Tooltipps<br />
Sechs Werkzeuge, die den Admin-Alltag<br />
erleichtern.<br />
Neben einem normalen <strong>Linux</strong>-<strong>Magazin</strong><br />
und dem Abonnement ohne Datenträger<br />
gibt es die DELUG-Ausgabe mit Monats-<br />
DVD, bei der die Redaktion den Datenträger<br />
nach einem speziellen Konzept<br />
zusammenstellt: In einer Art modularem<br />
System enthält er Programme<br />
und Tools,<br />
die in der jeweiligen<br />
<strong>Magazin</strong>-Ausgabe getestet<br />
und besprochen<br />
werden. Zudem gibt<br />
es nicht im Heft abgehandelte<br />
Software, die<br />
die Redaktion besonders<br />
empfiehlt, alles<br />
gebündelt unter einer<br />
HTML-Oberfläche.<br />
Knoppix<br />
Abbildung 2: Kostenlos auf der DELUG-DVD: Videos von der Fosdem. Varnish-<br />
und BSD-Entwickler Poul-Henning Kamp erläutert, wie er vorginge,<br />
hätte er die Mittel der NSA und wolle die OSS-Community untergraben.<br />
Wer die Silberscheibe<br />
bootet, landet bei der<br />
<strong>neu</strong>esten Ausgabe von Klaus Knoppers<br />
Knoppix, der Version 7.3 „Medialinx<br />
Cebit Edition“ (Abbildung 1). Das für<br />
den Betrieb ohne Festplatteninstallation<br />
konzipierte System basiert wie üblich<br />
auf Debian GNU/<strong>Linux</strong>, genauer: aus<br />
einem Mix von Debian Stable (Wheezy)<br />
sowie Grafiktreibern und Desktop-Programmen<br />
aus Jessie.<br />
Ein eigener Artikel in<br />
der Software-Rubrik<br />
dieses Heftes beschäftigt<br />
sich explizit mit<br />
den vielen Neuerungen<br />
dieser Knoppix-<br />
Ausgabe exklusiv fürs<br />
<strong>Linux</strong>-<strong>Magazin</strong>.<br />
Videos<br />
Abbildung 1: Exklusiv beim <strong>Linux</strong>-<strong>Magazin</strong>: Die Knoppix 7.3 Medialinx Cebit<br />
Edition bringt LXDE als Desktopmanager, optional aber auch KDE und Gnome.<br />
Wer die DELUG-DVD<br />
umdreht, findet in<br />
einem HTML-Menü<br />
zahlreiche weitere<br />
Inhalte. Neben jeder<br />
Menge Software zu<br />
den Heft-Artikeln, der<br />
Bitparade und den Tooltipps gibt es auch<br />
vier Videos mit knapp vier Stunden Laufzeit<br />
aus Brüssel. Da traf sich Anfang Februar<br />
die Open-Source-Welt zur Fosdem<br />
und hatte viel zu besprechen, vom Kernel<br />
bis zur NSA-Affäre (Abbildung 2), von<br />
BSD über Wikipedia-Strategien bis hin<br />
zu Android.<br />
VM, E-Book, Software<br />
Freunde leistungsstarker Contentmanagement-Systeme<br />
greifen zum Magnolia-CMS,<br />
das der Hersteller – erweitert<br />
um schicke Funktionen – als virtuelle<br />
Maschine zur Verfügung gestellt hat.<br />
Auch dazu erläutert ein eigener Artikel<br />
in diesem Heft, was die VM kann und wie<br />
sie in Betrieb gelangt.<br />
Damit nicht genug: Passend zum Titelthema<br />
gibt es auf der DVD ein kostenloses<br />
E-Book aus dem Verlag O’Reilly:<br />
Das „Praxishandbuch VMware Sphere 5“<br />
von Ralp Göpel, dazu noch eine virtuelle<br />
Maschine mit Mininet und Whitepapers<br />
zum Netzwerkvirtualisierungs-Standard<br />
Open Flow.<br />
n
Software<br />
www.linux-magazin.de Knoppix 7.3 04/2014<br />
50<br />
Exklusiv auf der Delug-DVD: Knoppix 7.3 Medialinx Edition<br />
Ein Stick anders<br />
Klaus Knopper, seit letztem Jahr mit Professorentitel, stellt zur Cebit 2014 seine Knoppix 7.3 Medialinx Edition<br />
vor. Im Artikel gibt er gleich selbst Einblicke in Distributions-Interna und rückt die blitzgescheite Updatefunktion<br />
für USB-Sticks sowie das UEFI-Booten ins rechte Licht. Klaus Knopper<br />
© Audrius Merfeldas, 123RF.com<br />
Seit über einem Jahrzehnt erscheinen<br />
auf meine Initiative hin unter dem Namen<br />
Knoppix („Knoppers Unix System“)<br />
jährlich etwa zwei Zusammenstellungen<br />
von <strong>Linux</strong>-Software. Knoppix bootet von<br />
DVD oder USB-Flashdisk und läuft sofort<br />
fertig konfiguriert los – ohne auf einer<br />
Festplatte installiert zu sein. Die enthaltene<br />
Software eignet sich zum Arbeiten,<br />
Surfen im Internet, Spielen, Unterrichten,<br />
Lernen, Programmieren und Retten von<br />
Daten defekter Betriebssysteme.<br />
Die pünktlich zur Cebit 2014 fertig gewordene<br />
Version 7.3.0 [1] basiert wie<br />
bei Knoppix üblich aus einem Mix von<br />
Debian Stable (Wheezy) und einigen<br />
Paketen (in erster Linie Grafiktreiber<br />
und Desktop-Programme) aus Testing<br />
und Unstable (Jessie). Um möglichst<br />
viel <strong>neu</strong>e Hardware zur Mitarbeit zu bewegen,<br />
verwende ich den <strong>Linux</strong>-Kernel<br />
3.13.0 mit Cloop und AU-FS sowie Xorg<br />
7.7 Core 1.15.0.<br />
Für Systeme mit mehr als 4 GByte RAM<br />
startet mit der Bootoption »knoppix64«<br />
alternativ ein 64-Bit-Kernel (Abbildung<br />
1). Möglich werden so auch Systemreparaturen<br />
in 64-Bit-Umgebungen per<br />
Chroot. Hier eine sehr kurz gefasste Liste<br />
mit Highlights der <strong>neu</strong>en Version:<br />
n Experimentell unterstützter UEFI-Boot<br />
(32 und 64 Bit) von USB-Sticks<br />
n LXDE, der schlanke Knoppix-Standarddesktop<br />
mit dem Dateimanager<br />
Pcmanfm 1.1.2<br />
n KDE 4.8.4 (Bootoption »knoppix<br />
desktop=kde«)<br />
Knoppix-Support<br />
<strong>Linux</strong>-<strong>Magazin</strong>-Käufer, die Probleme mit der<br />
DELUG-Knoppix-DVD haben, sind nicht auf sich<br />
allein gestellt: Hat der Datenträger offensichtlich<br />
einen Transport- oder Verpackungsschaden,<br />
was ab und an leider vorkommt, genügt<br />
eine Mail an [info@linux‐magazin. de] mit einer<br />
kurzen Schilderung des Problems und Nennung<br />
n Gnome 3.8.4 (Bootoption »knoppix<br />
desktop=gnome«)<br />
n Einfacher Desktop-Export via VNC<br />
und RDP für Remote Desktop Viewing<br />
unter <strong>Linux</strong> und Windows (Abbildung<br />
2)<br />
n Smbmount-knoppix, das Such- und<br />
Mount-Utility für Samba-Netzlaufwerke<br />
n Chromium 31.0.1650.63, Iceweasel<br />
26.0 mit Adblock Plus 2.4.1 und<br />
Noscript 2.6.8.14, aktualisierter Textbrowser<br />
Elinks<br />
n Libre Office 4.1.4 und Gimp 2.8.6<br />
n Wine 1.5<br />
n Virtualbox 4.3.2 und Qemu-kvm<br />
1.7.0<br />
n Mutt-Vorlagen zur Mailkonfiguration<br />
n automatische Blattlageerkennung im<br />
Scanprogramm Adriane-ocr und Tastaturlernprogramm<br />
Karl im Adriane<br />
Audio Desktop<br />
n Auf Wunsch der <strong>Linux</strong>-<strong>Magazin</strong>-<br />
Redaktion: Adobe Reader und Flashplayer-Plugin<br />
(Abbildung 3).<br />
Die meisten anderen Programme tragen<br />
<strong>neu</strong>e Versionsnummern, nur fallen die<br />
Änderungen nicht so spektakulär aus.<br />
Teils schwierig, ...<br />
Knoppix hält Schritt mit der fortlaufenden<br />
Entwicklung von GNU/<strong>Linux</strong>.<br />
Bibliotheken, Tools und Applikationen<br />
der Postanschrift. Wenige Tage später leistet<br />
der Verlag kostenlosen Ersatz.<br />
Bei technischen Problemen beantwortet Klaus<br />
Knopper netterweise Fragen zu Knoppix 7.3,<br />
entweder über das Kontaktformular [http://<br />
knopper. net/ kontakt/ ? kontakt=knoppix] oder<br />
per E-Mail an [knoppix@linux‐magazin. de].
Abbildung 1: Wer auf dem Bootprompt »knoppix64« [Enter] tippt, startet<br />
statt des 32-Bit- den 64-Bit-Kernel.<br />
synchron zu halten, erweist sich immer<br />
wieder als ziemliche Herausforderung.<br />
Einige Änderungen, bei Debians Bootsystem<br />
und der Hardwareunterstützung per<br />
Udev beispielsweise, haben mir umfangreiche<br />
Recherchen bereitet. Ich musste<br />
herausfinden, was ich alles zu ändern<br />
habe, um mein System nach dem großen<br />
Update überhaupt wieder in Gang zu bekommen.<br />
... und teils erstaunlich<br />
simpel<br />
Zum Glück für mich hat sich das Design<br />
des Startvorgangs unter Knoppix, das<br />
den normalen Bootvorgang von Debian<br />
auch mit den zukünftig anstehenden<br />
Änderungen (Systemd/Upstart) auf den<br />
Aufruf eines einzigen Skripts reduziert,<br />
als eine große Erleichterung erwiesen:<br />
»knoppix‐autoconfig« erledigt das Vorkonfigurieren<br />
des Systems in Gänze.<br />
Lediglich die Kernelunterstützung<br />
für<br />
Devtmpfs musste ich<br />
zusätzlich manuell<br />
aktivieren, um die aktualisierte<br />
Udev-Hardware-Erkennung<br />
und<br />
das Einbinden von<br />
Wechselmedien wieder<br />
zum Funktionieren<br />
zu bewegen. Der Rest<br />
des Übergangs vom<br />
alten Knoppix-Setup<br />
zum Debian-Testing-<br />
Zweig (Pre-„Jessie“)<br />
lief erstaunlich reibungsarm<br />
ab.<br />
Von Flashdisk läuft Knoppix<br />
besonders rund<br />
Heutzutage installieren die meisten Anwender<br />
Knoppix eher auf einem USB-<br />
Stick (8 GByte) als es regelmäßig von<br />
DVD zu starten, zumal viele moderne<br />
Net- und Notebooks gar kein DVD-Laufwerk<br />
mehr besitzen. Noch von DVD gestartet,<br />
zeigt Knoppix 7.3 nun ein Icon<br />
für »flash‐knoppix« (Abbildung 4), das<br />
Knoppix-nach-Flashdisk-Installationsprogramm,<br />
links oben auf dem Bildschirm<br />
an, da das Erzeugen eines bootbaren<br />
Knoppix-USB-Sticks wahrscheinlich in<br />
diesem Fall das erste ist, was man tun<br />
möchte (Abbildung 5).<br />
Obwohl die DVD-Version durch eine Sortlist<br />
schon lese-optimiert ist – sie reduziert<br />
das häufige und sehr langsame Positionieren<br />
des Laser-Lesekopfs – beschleunigt<br />
Flashmemory den Startvorgang und<br />
Abbildung 2: Im Support oder Lehrbetrieb hilfreich erweist sich Remote Desktop Viewing via VNC und RDP.
Software<br />
www.linux-magazin.de Knoppix 7.3 04/2014<br />
52<br />
Abbildung 3: Der proprietäre Adobe Reader (rechts) gehört normalerweise nicht in Knoppix, Libre Office<br />
(links) dagegen schon.<br />
das Arbeiten mit Knoppix um mindestens<br />
den Faktor fünf, sodass Startzeiten<br />
vom Laden des Kernels bis zum kompletten<br />
Desktop inklusive Compiz unter 15<br />
Sekunden möglich sind, einigermaßen<br />
moderne Computer-Hardware und ein<br />
schneller USB-Stick vorausgesetzt.<br />
Der USB-Stick ist<br />
<strong>neu</strong>erdings updatebar<br />
Eines der am häufigsten nachgefragten<br />
<strong>neu</strong>en Features war die Aktualisierbarkeit:<br />
Flash-knoppix untersucht nun das<br />
Zielmedium auf eine alte Knoppix-Installation<br />
hin und bietet an, nur das komprimierte<br />
Dateisystem und den Kernel<br />
auszutauschen, statt alles komplett <strong>neu</strong><br />
zu installieren.<br />
Da Softwarepakete, die der Anwender<br />
selbst installiert hat, mit dem <strong>neu</strong>en System<br />
inkompatibel sein könnten, gibt es<br />
eine Option, um nur die persönlichen<br />
Daten und Einstellungen in »/home/<br />
knoppix« zu behalten – oder doch alles<br />
nachträglich Installierte zu behalten (Abbildung<br />
6). Das ist was zwar meistens<br />
nicht empfehlenswert, spart aber manchmal<br />
Nacharbeit.<br />
Damit das Update auf dem USB-Stick<br />
funktioniert, muss der Benutzer bei der<br />
Knoppix-Installation für die erste Partition<br />
mehr Platz einkalkulieren, damit<br />
spätere Updates auch draufpassen – 4,5<br />
GByte sind ein guter Wert. Die beschreibbare<br />
Partition, die es seit Knoppix 7.1<br />
gibt, kann sich dann über den Rest des<br />
Sticks ziehen (Abbildung 7). Optional<br />
lassen sich auf der Datenpartition sen-<br />
sible Benutzerdaten wie Passwörter stark<br />
verschlüsseln (Abbildung 8).<br />
EFI-Besonderheiten und<br />
hybrides Booten<br />
Das Starten direkt von USB-Flashdisk<br />
ist schnell und komfortabel, da Knoppix<br />
getätigte Konfigurationsänderungen und<br />
angefallene Benutzerdateien automatisch<br />
auf die Datenpartition schreibt. Allerdings<br />
gibt es sehr alte und sehr <strong>neu</strong>e Computer,<br />
die nicht von USB booten: Bei den einen<br />
unterstützt dies das Bios nicht, bei den<br />
anderen erschwert oder verbietet EFI das<br />
Starten von externen Datenträgern.<br />
Grundsätzlich ist Knoppix auch im EFI-<br />
Modus von USB-Stick startfähig, da der<br />
Ordner »efi« auf der ersten Partition die<br />
dafür notwendigen Startdateien enthält.<br />
Ist auf dem Rechner jedoch die EFI-Firmware<br />
auf »Secure Boot« gesetzt, so ist<br />
der Start von anderen Betriebssystemen<br />
als den vom Hersteller signierten nicht<br />
erlaubt. In diesem Fall hilft die Bios-<br />
Einstellung »CSM«, die Abkürzung für<br />
„Compatibility Support Module“, sachgemäß<br />
ließe es sich eher als „Traditionell<br />
starten per Boot Record und Bootloader“<br />
übersetzen. Bei EFI-Computern sollte<br />
CSM stets vorhanden sein.<br />
Für alle Fälle, bei denen von USB-Flashdisk<br />
zu starten nicht möglich ist, enthält<br />
Knoppix 7.3 im Ordner »KNOPPIX« das<br />
ISO-Image einer gerade mal 12 MByte<br />
großen Boot-Only-CD, die der Benutzer<br />
auf einen leeren Rohling brennen und<br />
von der er den Computer in Kombination<br />
mit einem Knoppix-7.3-USB-Stick hochfahren<br />
kann. Der Bootprozess beginnt auf<br />
der CD und wechselt nach kurzer Zeit auf<br />
den USB-Stick. Der Workaround funktioniert<br />
bei den meisten Problem-PCs sehr<br />
gut, speziell bei Macs mit eingeschränkter<br />
Möglichkeit, von externen Datenträgern<br />
zu starten, selbst per EFI.<br />
Noscript sorgt für<br />
Browser-Sicherheit<br />
Nicht erst seit Ed Snowdens verdienstvollen<br />
Enthüllungen und der damit einhergehenden<br />
breiten Sensibilisierung im<br />
Jahr 2013 besitzen Sicherheit und Schutz<br />
der Privatsphäre Priorität in Knoppix’ Architektur.<br />
Firefox, der in Debian und deswegen<br />
auch in Knoppix Iceweasel heißt,<br />
ist mit dem scharfgeschalteten Noscript-<br />
Plugin [2] ausgestattet, das bis auf wenige<br />
Ausnahmen bei jeder Webseite mit<br />
Abbildung 4: Die meisten Anwender betreiben Knoppix von USB-Stick. Darum präsentiert der Desktop gleich<br />
das passende Icon.
aktiven Inhalten oder<br />
die auf Plugins oder<br />
die Hardware zugreifen<br />
will, beim Anwender<br />
um Bestätigung<br />
oder Ablehnung nachsucht.<br />
Noscript vermutet bei<br />
Javascript- oder Flash-<br />
Inhalten oder beim<br />
Start von Plugins,<br />
welche die Kamera,<br />
das Mikrofon oder<br />
andere Komponenten<br />
aktivieren, negative Auswirkungen auf<br />
die Sicherheit und Stabilität des Browsers<br />
und blendet am unteren Rand des<br />
Browsers, oberhalb des Statusbalkens,<br />
gelbe Benachrichtigungen ein. Der Benutzer<br />
soll dann entscheiden, ob er die<br />
Webseite permanent, nur für die Session<br />
oder gar nicht für aktive Inhalte freischaltet.<br />
Noscript macht zudem Banking und<br />
Bezahltransaktionen beim Einkaufen im<br />
Internet viel sicherer, da es viele Cross-<br />
Site-Scripting-Attacken erkennt und davor<br />
warnt.<br />
Beliebt, aber eigentlich<br />
unnötig: Die Firewall<br />
Erstaunlich viele Anwender fragen mich<br />
nach einer Firewall für Knoppix. Ich vermute,<br />
weil bei anderen Betriebssystemen<br />
Dienste von außen zu- und angreifbar<br />
sind, was ein Portfilter natürlich zu reglementieren<br />
versteht. Ein Standard-Knoppix<br />
ist allerdings so konfiguriert, dass es<br />
gar keine Dienste startet, die Ports nach<br />
draußen öffnen oder von dort erreichbar<br />
sind. (Außer, jemand startet Samba<br />
oder VNC, den Remote Desktop Server,<br />
aus dem Menü). Ein Portscanner, den<br />
man auf ein laufendes Knoppix-System<br />
losläss, sollte daher auch ohne Firewall<br />
keinerlei offene, angreifbare Ports feststellen.<br />
Dennoch besitzt<br />
Knoppix einen einfach<br />
zu konfigurierenden<br />
Firewall, die aus dem<br />
»Knoppix«-Menü heraus<br />
startet und drei<br />
Komplexitätsstufen<br />
von »Easy« (Abbildung<br />
9) bis »Experte«<br />
anbietet (Experten<br />
Abbildung 5: Der Flash-Installer erlaubt es, einen großen<br />
USB-Stick so umzupartitionieren, dass er neben der FAT32-<br />
eine <strong>Linux</strong>-Partition anlegt.<br />
dürfen eigene IPtables-Regeln einstellen).<br />
Für die normale <strong>Linux</strong>-Nutzung<br />
als sicherer Internetclient ist die Firewall<br />
nicht erforderlich, ja kann sogar kontraproduktiv<br />
wirken, wenn es um die<br />
Nutzung von Streaming, beispielsweise<br />
Videokonferenzen, geht, abhängig von<br />
der dafür verwendeten Software.<br />
Ohne Hintertürchen, aber<br />
eine offene Vordertür<br />
Sämtliche Benutzerzugänge in Knoppix<br />
sind übrigens gesperrt – es gibt keine<br />
Hintertüren oder Standardpasswörter,<br />
nicht einmal für den unprivilegierten<br />
Benutzeraccount »knoppix«. Daher ist<br />
ein Login auch nicht möglich. Wer einen<br />
Screenlocker startet, sperrt sich praktisch<br />
aus, da es kein gültiges Passwort zum<br />
Entsperren gibt. Daher habe ich das bei<br />
vielen anderen Distributionen übliche<br />
Absperren des Bildschirms beim Schließen<br />
des Notebook-Displays oder bei Inaktivität<br />
abgeschaltet.<br />
Der einzigen Möglichkeiten für einen Angreifer,<br />
in ein Knoppix-Sytem einzubrechen,<br />
sind, dass er sich entweder selbst<br />
davor setzt – der Benutzer »knoppix«<br />
kann per »sudo« Programme als Administrator<br />
ohne Passworteingabe starten<br />
–, oder indem er einen Remotezugang<br />
Abbildung 7: Die beschreibbare Partition darf sich<br />
über den Rest des Sticks ziehen.<br />
Abbildung 6: Beim Update kann der Anwender nur die persönlichen<br />
Daten und Einstellungen in »/home/knoppix« behalten oder alles<br />
nachträglich Installierte.<br />
per SSH oder VNC-Server startet, sodass<br />
ihm ein Zugriff über das Netzwerk möglich<br />
wird.<br />
Privatsphäre<br />
Tor (The Onion Router, [3]) ist eine<br />
Privacy-Erweiterung, welche die Privatsphäre<br />
schützen soll. Benutzer werden<br />
oft unbemerkt durch manipulierte Webseiten<br />
oder Werbeanzeigen mit Tracing-<br />
Funktion ausspioniert. Der Betreiber erfährt<br />
durch die IP-Adresse des Besuchers<br />
nicht nur dessen Internetanbieter und<br />
den Standort, sondern kann durch Kombination<br />
mit anderen gesammelte Daten<br />
ein Profil über besuchte Webseiten, gekaufte<br />
Produkte, Tätigkeit in sozialen<br />
Netzwerken und so weiter anlegen. Berechtigterweise<br />
ist nicht jeder Internetnutzer<br />
mit dieser Art Transparenz seines<br />
Alltags im Netz einverstanden.<br />
Über ein komplexes Netz von Gateways<br />
erschwert Tor IP-Adress-gestützte Sammelaktivitäten.<br />
Webseiten-Betreiber sehen<br />
nämlich nur die Adresse des Rechners,<br />
der die direkte Verbindung zur Webseite<br />
aufbaut. Bei Teilnahme am Tor-Netzwerk<br />
ist dies eine der vielen, zufälligen Exit<br />
Nodes, aber nicht die IP-Adresse des eigenen<br />
PC. Aber Vorsicht: Tor ist nicht<br />
für den sicheren Zugriff auf Dienste aus-<br />
Abbildung 8: Optional kann der Anwender seine sensiblen Daten stark<br />
verschlüsselt speichern.<br />
Knoppix 7.3 04/2014<br />
Software<br />
www.linux-magazin.de<br />
53
Software<br />
www.linux-magazin.de Knoppix 7.3 04/2014<br />
54<br />
gelegt, die einen autorisierten und authentifizierenden<br />
Zugang erfordern, wie<br />
die Anmeldung bei Webdiensten, welche<br />
Passwörter oder andere persönliche Identifikationen<br />
abfragen. Durch die vielen<br />
Zwischenstationen in Tor-Netzwerk sind<br />
trotz der ausgefeilten Technik dahinter<br />
durchaus Manipulationen möglich. Fürs<br />
Onlinebanking würde ich empfehlen, den<br />
Tor-Proxy als Ausnahme zu deaktivieren,<br />
oder gar nicht erst einzustellen.<br />
Tor lässt sich durch ein Startprogramm<br />
im Knoppix-Menü in Gang setzen. Danach<br />
muss der Benutzer einen Proxy im<br />
Webbrowser sener Wahl einrichten. Eine<br />
Ein-Klick-Aktivierung des Tor-Proxys ist<br />
in Chromium und Firefox bereits voreingestellt<br />
(Abbildung 10).<br />
PXE-Bootserver<br />
Knoppix lässt sich als Bootserver für das<br />
LAN konfigurieren. Der eignet sich beispielsweise<br />
prima als Zentralrechner für<br />
den Lehrbetrieb. Andere PCs dürfen dann<br />
den Server zum Starten benutzen und lesend<br />
von der Ferne aus auf den Knoppix-<br />
Datenträger zugreifen. Programme führen<br />
die Clients hingegen normal lokal aus.<br />
Um den Server einzurichten sucht der<br />
User im Knoppix-Menü den Eintrag<br />
»knoppix‐terminalserver«. Die Konfiguration<br />
ist sehr einfach gehalten: Im Wesentlichen<br />
muss der Benutzer nur den<br />
gewünschten IP-Bereich für die Clients<br />
angeben und gegebenenfalls abweichende<br />
Bootoptionen bestätigen. So ist<br />
es möglich, ein ganzes Klassenzimmer<br />
mit nur einem einzigen USB-Stick oder<br />
der DVD mit Knoppix zu betreiben.<br />
Abbildung 10: Chromium und Firefox haben die Tor-Proxys schon passend eingebunden.<br />
In Version 7.3 habe ich den Terminalserver<br />
etwas modifiziert, damit unabhängig<br />
vom auf dem Server selbst gestarteten<br />
Kernel stets ein 32-Bit-System für die<br />
Clients gebaut wird. (64-Bit-Hardware<br />
läuft damit natürlich ebenfalls.) Sinn<br />
der Modifikation ist es, dass die Clients<br />
grundsätzlich ohne zusätzliche Bootoptionen<br />
zur Auswahl des Kernels starten.<br />
Bootoptionen als Notnagel<br />
Normalerweise benötigt Knoppix keinerlei<br />
Bootoptionen, um die vorgefundene<br />
Hardware inklusive Grafikkarte zu erkennen<br />
und das System optimal zu konfigurieren.<br />
Mit einer zunehmenden Anzahl<br />
verschiedener Chipsätze und Kombinationen<br />
derselben erweist es aber manchmal<br />
doch als notwendig, das eine oder andere<br />
Feature oder eine einzelne Komponenten<br />
(vorübergehend) abzuschalten, um zum<br />
regulären Desktop durchzustarten.<br />
Häufige Bootoptionen nennt die Boot-<br />
Hilfe, abrufbar mit [F2] und [F3], andere<br />
sind in der Textdatei »KNOPPIX/knoppix‐cheatcodes.txt«<br />
aufgelistet. Klemmt<br />
beispielsweise der Desktop dort fest,<br />
wo eigentlich der 3-D-Windowmanager<br />
Compiz starten muss, sollten die Bootoptionen<br />
»knoppix nocomposite« oder<br />
»knoppix no3d« weiterhelfen. Die eine<br />
schaltet die Composite-Erweiterung des<br />
Grafiksubsystems ab, die andere verhindert<br />
den Compiz-Start.<br />
Ich wünsche allen <strong>Magazin</strong>-Lesern mit<br />
der <strong>neu</strong>en Version viel Freude! (jk) n<br />
Infos<br />
[1] Knoppix 7.3: [http:// knopper. net/ knoppix/<br />
knoppix730. html]<br />
[2] Noscript: [https:// addons. mozilla. org/ de/<br />
firefox/ addon/ noscript/]<br />
[3] Tor: [https:// www. torproject. org]<br />
[4] Audio Desktop Reference Implementation<br />
and Networking Environment: [http:// www.<br />
knopper. net/ knoppix‐adriane/]<br />
Abbildung 9: In Knoppix gibt es eine Firewall, deren Konfiguration in Komplexitätsstufen eingeteilt ist.<br />
Der Autor<br />
Knoppix-Erfinder Klaus<br />
Knopper [knoppix@knopper.<br />
n et] , Jahrgang 1968 und<br />
Dipl.-Ing. der Elektrotechnik,<br />
arbeitet als selbstständiger<br />
IT-Berater und Entwickler,<br />
ist Professor an der FH Kaiserslautern (Softwaretechnik<br />
und Software-Engineering) und<br />
gibt Kurse zu freier Software. Angeregt durch<br />
Erfahrungen seiner blinden Ehefrau entwickelte<br />
Knopper die in Knoppix integrierte Lösung Adriane<br />
[4], die Blinden den Umgang mit <strong>Linux</strong>-PCs<br />
vereinfacht.
Software<br />
www.linux-magazin.de Magnolia CMS 04/2014<br />
56<br />
Auf DVD: Magnolia CMS Community Edition mit exklusiven Addons<br />
CMS mit Extras<br />
Leser, die dieses <strong>Magazin</strong> als DELUG-Ausgabe mit DVD in Händen halten, dürfen sich über Magnolia CMS<br />
freuen. Zur Community Edition 5.2.2 gibt es noch interessante Extras. Mathias Huber<br />
Abbildung 1: Das Shop-Modul ist bereits integriert.<br />
Das Contentmanagement-System (CMS)<br />
Magnolia [1] ist in Java umgesetzt und<br />
verwendet Open-Source-Komponenten.<br />
Sie machen die in ihrer Community-Version<br />
unter GPL lizenzierte Software flexibel<br />
und reich an Features, was Magnolia<br />
im CMS-Wettbewerb des <strong>Linux</strong>-<strong>Magazin</strong>s<br />
unter Beweis gestellt hat [2]. Für die<br />
DELUG-Ausgabe hat der Hersteller einige<br />
attraktive Erweiterungen mit eingebaut.<br />
Fünf Zugaben<br />
01 # <br />
02 <br />
Listing 1: »/etc/security/limits.<br />
conf« (Ausschnitt)<br />
03 * soft nofile 10000<br />
04 * hard nofile 50000<br />
Als exklusive Technology-Preview ist<br />
der Tag Manager an Bord. Er erlaubt es<br />
Autoren, ohne Hilfe durch technisches<br />
Personal, Tags und Tracking-Code einzufügen.<br />
Exklusiv sind ebenfalls die REST-<br />
API-Tools auf der DVD vertreten. Dazu<br />
kommen drei Extensions, die Magnolia<br />
noch nie in ein Bündel integriert hat:<br />
Das Shop-Modul (Abbildung 1), der Social<br />
Media Hub sowie die Deadlink-App,<br />
die die ganze Website nach toten Links<br />
durchsucht. Wer Magnolia CMS ausprobieren<br />
möchte, tut<br />
das am besten mit der<br />
virtuellen Maschine,<br />
die sich auf der DVD<br />
unter »delug/vm/« befindet.<br />
Die VM eignet<br />
sich für den Start in<br />
den VMware-Produkten<br />
Play er, Server und<br />
Workstation.<br />
Da eine DVD keinen<br />
Schreibzugriff erlaubt,<br />
startet der Anwender zunächst das Skript<br />
»vmprepare.sh«, welches das Zip-Archiv<br />
»magnolia‐demo.zip« in das Verzeichnis<br />
»/tmp/magnolia‐demo/« entpackt.<br />
Um die VM im Player einzubinden,<br />
klickt er auf »Open an existing Virtual<br />
Machine« und wählt die Datei »/tmp/<br />
magnolia‐demo/magnolia‐demo.vmx«.<br />
Erscheint der Dialog »This virtual machine<br />
may have been moved or copied«,<br />
wählt er »I copied it«.<br />
Zum Login am virtualisierten <strong>Linux</strong> dient<br />
»root« mit dem Passwort »magnolia1234«.<br />
Die Weboberfläche des CMS ist unter der<br />
IP-Adresse der VM zu erreichen. Nutzernamen<br />
und Passwort für die Magnolia-<br />
Instanz lauten »superuser«.<br />
Installation<br />
Wer Magnolia auf dem eigenen <strong>Linux</strong>-<br />
Rechner installieren und betreiben<br />
möchte, kopiert das Archiv »linux magdemo‐1.0‐tomcat‐bundle.tar.gz«.<br />
Es enthält<br />
alle benötigten Komponenten inklusive<br />
des Servlet-Containers Tomcat<br />
7. Erforderlich ist lediglich eine Java-<br />
Laufzeitumgebung ab Version 6, die<br />
Redaktion hat mit Open JDK 7u gute<br />
Erfahrungen gemacht. Nach dem Entpacken<br />
wechselt der Admin ins Verzeichnis<br />
»apache‐tomcat‐7.0.47/bin/«. Dort lässt<br />
sich der Server mit folgenden Kommandos<br />
als normaler User starten:<br />
./magnolia_control.sh start && tail ‐fU<br />
../logs/catalina.out<br />
Der Befehl gibt zudem das Log auf die<br />
Konsole aus. Der erste Start kann Minuten<br />
dauern, danach ist die Startseite der<br />
Installation unter »http://localhost:8080«<br />
erreichbar. Die publizierte Website ist unter<br />
»http://localhost:8080/magnoliaPublic/«<br />
zu finden. Ist das nicht so, gibt es ein<br />
Problem mit einigen <strong>Linux</strong>-Einstellungen.<br />
Vor dessen Lösung stoppt man das Logging<br />
mit [Strg]+[C] und den Server mit<br />
»./magnolia_control.sh stop«.<br />
Magnolia CMS legt sehr viele kleine Dateien<br />
an. Mit »ulimit ‐n« prüft der Admin<br />
daher die Anzahl der erlaubten Files<br />
pro Prozess. 1024 reicht nicht aus, zum<br />
Erhöhen bearbeitet er unter modernen<br />
<strong>Linux</strong>en die Datei »/etc/security/limits.<br />
conf« und erweitert sie um Listing 1. Zusätzlich<br />
trägt er in die Datei »/etc/pam.d/<br />
common‐session« diese Zeile ein:<br />
session required pam_limits.so<br />
Danach ist ein Reboot unumgänglich [3].<br />
Außerdem ist es empfehlenswert, die maximale<br />
Heap-Größe in Java zu erhöhen.<br />
Dazu ist im Tomcat-Skript »set env.sh« der<br />
Wert von »‐Xmx512M« auf »‐Xmx1024M«<br />
zu setzen, anschließend der Tomcat-Server<br />
<strong>neu</strong> zu starten.<br />
n<br />
Infos<br />
[1] Magnolia CMS: [http:// www. magnolia‐cms.<br />
com/ linux‐magazin]<br />
[2] Carsten Zerbst, „Blühender Content-<br />
Baum“: <strong>Linux</strong>-<strong>Magazin</strong> 11/13, S. 28<br />
[3] Magnolia Known Issues:<br />
[http:// documentation. magnolia‐cms. com/<br />
display/ DOCS/ Known+issues]
Software<br />
www.linux-magazin.de Bitparade 04/2014<br />
58<br />
Drei Tools für Online-Umfragen<br />
Meinung zählt<br />
Ob es um universitäre Studien, die Kundenzufriedenheit oder die politische Meinung geht – Umfragen finden<br />
zunehmend im Internet statt. Die Bitparade betreibt ebenfalls Trendforschung: Welche Tools eignen sich für<br />
Online-Umfragen und helfen bei der statistischen Auswertung am besten? Mela Eckenfels<br />
© Dusit Panyakhom, 123RF.com<br />
Umfragen sind das tägliche Brot der<br />
Marktforscher, auch Studenten, Firmen<br />
und Journalisten benötigen aktuelle Meinungsbilder.<br />
Sie befragen die Teilnehmer<br />
entweder persönlich, telefonisch, schriftlich<br />
oder online. Die Vorteile computergestützter<br />
Befragungen liegen auf der<br />
Hand: Die Software liefert nicht nur den<br />
Fragebogen per Browser aus, sondern<br />
speichert die Antworten direkt auf dem<br />
Server. Die meisten Umfragetools enthalten<br />
daher Funktionen, die bei der statistischen<br />
Auswertung helfen, Berichte und<br />
Diagramme generieren und die Daten in<br />
andere Formate exportieren.<br />
Plattformen, die Umfragesoftware hosten<br />
und ihre Tools gegen mehr oder weniger<br />
Geld zur Verfügung stellen, gibt es im<br />
Netz zuhauf. Einen Vertreter aus dieser<br />
Liga hat auch die Bitparade in den Test<br />
mit aufgenommen: Polldaddy [1]. Im Vergleich<br />
treten zwei Lösungen für den eigenen<br />
Server an, die beiden Open-Source-<br />
Programme Lime Survey [2] und Opina<br />
[3]. Hier schauten sich die Tester an,<br />
wie komfortabel Installation und Einrichtung<br />
auf einem typischen LAMP-System<br />
gelingen. Alle drei Kandidaten mussten<br />
zudem zeigen, wie sie mit den erfassten<br />
Antworten der Teilnehmer umgehen, ob<br />
es Anonymisierungsfunktionen gibt und<br />
ob die Kandidaten bei der Auswertung<br />
helfen und die Daten zur Weiterverarbeitung<br />
exportieren.<br />
E Lime Survey<br />
Der erste Testkandidat kommt aus dem<br />
Open-Source-Lager und ist kostenlos.<br />
Lime Survey [2] steht unter der GPL<br />
und fühlt sich in einer klassischen LAMP-<br />
Umgebung wohl. 2003 startete das Projekt<br />
unter dem Namen PHP Surveyor.<br />
2007 benannten die Entwickler es um<br />
und strichen das „PHP“ aus dem Namen,<br />
um Konflikte mit der PHP-Lizenz<br />
zu vermeiden.<br />
Lime Survey ist in PHP implementiert<br />
und arbeitet nicht nur mit MySQL, sondern<br />
auch mit PostgreSQL oder einer MS-<br />
SQL-Datenbank zusammen. Die deutsche<br />
Installationsanleitung [4] listet alle Sys-<br />
temvoraussetzungen auf und beschreibt<br />
neben der Einrichtung auf dem eigenen<br />
Server auch den lokalen Betrieb auf Windows-Rechnern.<br />
Zum Test diente Version<br />
2.05+ vom 4. Februar 2014.<br />
Vor dem Auspacken des Downloadpakets<br />
erzeugt der Admin eine <strong>neu</strong>e Datenbank<br />
für Lime Survey. Das »limesurvey«-Verzeichnis<br />
legt er unterhalb des Document<br />
Root vom Webserver ab. Danach passt er<br />
noch die Berechtigungen der Verzeichnisse<br />
»/limesurvey/tmp«, »/limesurvey/<br />
upload« und »/limesurvey/application/<br />
config« an und macht sie mindestens für<br />
den Besitzer und die Gruppe les-, schreibund<br />
ausführbar.<br />
Die Installation des Umfragetools stößt er<br />
danach im Browser an und ruft dazu die<br />
URL »http://example.com/limesurvey/<br />
admin« auf und folgt den Anweisungen.<br />
Im letzten Schritt legt er einen Admin-<br />
Account samt Passwort an, trägt den Seitennamen<br />
ein und entscheidet sich für<br />
eine der über 80 Sprachen.<br />
Jetzt kann sich der Administrator einloggen.<br />
Über die grünen Icons am oberen<br />
Rand konfiguriert er allgemeine Einstellungen,<br />
überprüft und sichert die Datenbank,<br />
bearbeitet die Beschriftungssets<br />
und startet den Plugin-Manager, der seit<br />
Version 2.05 dabei ist. Ein paar Erweiterungen<br />
liefern die Entwickler mit aus,<br />
solche von Drittanbietern stellt das Wiki<br />
[5] zusammen.<br />
Umfragetools<br />
Auf der DELUG-DVD dieses <strong>Magazin</strong>s<br />
befinden sich die in diesem Artikel<br />
DELUG-DVD<br />
getesteten Programme Lime Survey (Version<br />
2.05+ vom 4. Februar 2014) und Opina (Version<br />
2.7.0 vom November 2013). Die beiden<br />
Tools für Online-Umfragen laufen auf gängigen<br />
LAMP-Servern.
Hinter dem Symbol mit dem Pinsel befindet<br />
sich der Vorlageneditor, mit dem Nutzer<br />
ihren Umfragen ein schickes Design<br />
verpassen. Rund zehn fertige Looks sind<br />
dabei, die Anwender direkt im Webinterface<br />
mit einem eigenen Farbschema, Logo<br />
oder weiteren Texten versehen – HTMLund<br />
CSS-Kenntnisse vorausgesetzt. Die<br />
Lime-Survey-Webseite offeriert im Downloadbereich<br />
weitere Templates.<br />
Um eine Umfrage zu erstellen, klickt der<br />
Admin im Webinterface auf das grüne<br />
Pluszeichen rechts oben, vergibt einen<br />
Namen, trägt eine Beschreibung ein und<br />
sucht aus dem Dropdownmenü eine Sprache<br />
aus. Weitere Sprachen und Übersetzungen<br />
der Fragen arbeitet er auf Wunsch<br />
zu einem späteren Zeitpunkt ein.<br />
Lime Survey bietet Wysiwyg-Editoren,<br />
um eine Beschreibung, einen Willkommenstext<br />
oder eine Endnachricht für die<br />
Befragten zu hinterlassen. Außerdem gibt<br />
der Verwalter eine Mailadresse, eine Adresse<br />
für Rückläufer und gegebenenfalls<br />
eine Faxnummer an.<br />
Nach dem Speichern erscheint die noch<br />
leere Umfrage im Webinterface. Über<br />
das Pluszeichen neben dem Feld »Fragegruppen«<br />
erzeugt der Anwender nun<br />
mindestens eine solche Sammlung von<br />
Fragen, auf Wunsch auch mehrere. Längere<br />
Umfragen bleiben übersichtlicher,<br />
wenn sie mehrere Fragegruppen und damit<br />
Unterseiten enthalten. Lime Survey<br />
blendet am oberen Rand außerdem einen<br />
Abbildung 1: Mit einer kleinen <strong>Vorschau</strong> erleichtert Lime Survey die Auswahl des richtigen Fragetyps.<br />
Fortschrittsbalken ein, der den Teilnehmern<br />
zeigt, wie viel Prozent der Umfrage<br />
sie bereits erledigt haben.<br />
Gründlich<br />
Für jede Gruppe definiert der Verwalter<br />
als Nächstes die einzelnen Fragen, die er<br />
per Mausklick hinzufügt. Er weist ihnen<br />
dabei einen internen Code zu. Dieser ist<br />
frei wählbar, sollte aber einer gewissen<br />
Logik folgen. So bietet sich beispielsweise<br />
für die Fragen der ersten Erhebung<br />
»A001«, »A002«, »A003« an, für die der<br />
zweiten »B001«, »B002«, »B003« und so<br />
weiter. Ganz unten im Dialog befindet<br />
sich eine Schaltfläche, über die Nutzer<br />
vorhandene Fragen, Fragegruppen oder<br />
ganze Umfragen importieren.<br />
In einem Dropdownmenü sucht der Benutzer<br />
jetzt aus einem großen Sortiment<br />
einen Fragetyp aus. Gut gefällt, dass das<br />
Umfragetool eine <strong>Vorschau</strong> einblendet,<br />
sobald der Anwender mit der Maus über<br />
einem Eintrag schwebt (siehe Abbildung<br />
1). Ein Klick auf »Zeige erweiterte Einstellungen«<br />
führt für den gewählten Fragetyp<br />
zur Feinabstimmung. Der Administrator<br />
beeinflusst hierüber etwa die Anzeige,<br />
die Logik, ein Zeitlimit und die spätere<br />
statistische Auswertung. Die eigentliche<br />
Frage tippt er danach in ein Editorfenster<br />
ein, wo er sie mit multimedialen Inhalten<br />
wie Bildern oder Flash-Animationen anreichern<br />
kann.<br />
Nach dem Abspeichern der Frage geht<br />
es ans Feintuning. Icons über der Frage<br />
bearbeiten sie, blenden eine <strong>Vorschau</strong><br />
Bitparade 04/2014<br />
Software<br />
www.linux-magazin.de<br />
59
Software<br />
www.linux-magazin.de Bitparade 04/2014<br />
60<br />
ein, überprüfen die Umfragelogik, bearbeiten<br />
die Antwort-Optionen und eventuelle<br />
Vorgabewerte. Zusätzlich findet<br />
der Nutzer Buttons, um die Frage zu löschen,<br />
zu kopieren und zu exportieren.<br />
Für Letzteres benötigt Lime Survey die<br />
PHP-XML-Erweiterung. Das Symbol mit<br />
den abzweigenden Pfeilen führt zu einer<br />
Maske, in der Anwender die Bedingungen<br />
der Frage festlegen. Damit ist es möglich,<br />
Teilnehmer abhängig von den gegebenen<br />
Antworten durch die Umfrage zu leiten.<br />
In Aktion<br />
Hat der Admin alle Gruppen und Fragen<br />
eingerichtet, sollte er die Umfrage mit<br />
einem Klick auf das Zahnradsymbol links<br />
oben testen. Ist alles zur Zufriedenheit,<br />
aktiviert er sie über den kleinen grünen<br />
Pfeil neben dem roten Quadrat. Lime<br />
Survey meldet eventuell fehlende Antworten<br />
oder Optionen und weist darauf<br />
hin, dass der Admin nach dem Freigeben<br />
keine Gruppen, Fragen oder Teilfragen<br />
verändern darf. Als einziger Testkandidat<br />
schützt das Tool damit vor Datenmüll<br />
durch nachträgliche Modifikationen einer<br />
laufenden Umfrage.<br />
Im selben Dialog trifft der Verwalter Entscheidungen<br />
zum Datenschutz. Per Dropdownmenü<br />
anonymisiert er die Antworten,<br />
erlaubt oder verbietet das Aufzeichnen<br />
von Datumsstempeln, das Speichern<br />
von IP-Adressen, Referrer-URLs und der<br />
Abbildung 2: Lime Survey legt Wert auf Datenschutz und unterbindet auf<br />
Wunsch das Speichern von IPs, Timestamps und so weiter.<br />
benötigten Zeit (siehe<br />
Abbildung 2). Nach<br />
dem Sichern informiert<br />
Lime Survey darüber,<br />
dass die Umfrage nun<br />
aktiv und die Ergebnistabelle<br />
erzeugt ist.<br />
In der Voreinstellung<br />
sind alle Erhebungen<br />
öffentlich. Wer einen<br />
geschlossenen Teilnehmerkreis<br />
bevorzugt,<br />
klickt auf »Zum<br />
geschlossenen Modus<br />
umschalten« und erzeugt<br />
einen Zugangsschlüssel.<br />
Den Link zu öffentlichen<br />
Umfragen zeigt<br />
Lime Survey auf der Übersichtsseite an.<br />
Wer diesen nicht von Hand kopieren und<br />
weiterreichen möchte, der verteilt Einladungen<br />
per Mail. Eine zentral gepflegte<br />
Teilnehmerdatenbank mit einer Funktion,<br />
die automatisch Zugangsschlüssel erzeugt,<br />
sorgt für Komfort beim Versenden<br />
dieser Nachrichten. In der allgemeinen<br />
Konfiguration richtet der Admin ein, wie<br />
das Tool die elektronische Post verschickt.<br />
Neben dem internen PHP-Mailer stehen<br />
Sendmail, SMTP(-Relaying) und Qmail<br />
zur Wahl. Für SMTP gibt es optional SSL/<br />
TLS-Verschlüsselung.<br />
Lime Survey bietet zahlreiche Exportmöglichkeiten<br />
an. Bei den Umfragen selbst<br />
speichern Anwender<br />
wahlweise die Struktur<br />
oder auch die Ergebnisse.<br />
Für Letztere<br />
stehen die Formate<br />
CSV, Excel, PDF, Word,<br />
HTML und R (Syntaxdatei<br />
und Datendatei)<br />
zur Verfügung. Hinter<br />
eigenen Icons verstecken<br />
sich zudem Exportmöglichkeiten<br />
für<br />
SPSS/PASW.<br />
Die Umfragestruktur<br />
legt Lime Survey<br />
im eigenen LSS- und<br />
LSA-Format sowie als<br />
CSV- und Textdateien<br />
ab. Das Tool ergänzt<br />
das Ganze durch verschiedene<br />
Berichtstypen,<br />
die optional<br />
Abbildung 3: Lime Survey exportiert in viele Formate und zeichnet auch<br />
farbige Balkendiagramme, die übersichtlich die Ergebnisse präsentieren.<br />
Balkendiagramme einbinden. Während<br />
die Konkurrenz hier ziemlich einfarbig<br />
daherkommt, sorgt Lime Survey mit<br />
bunten Diagrammen für mehr Übersicht<br />
(siehe Abbildung 3).<br />
E Opina<br />
Der zweite Kandidat stammt aus der<br />
spanischen Softwareschmiede Klicap [6]<br />
und steht unter der GPLv2. Opina [3]<br />
ist kostenlos. Wer mag, der kann über<br />
die Webseite verschiedene Supportpakete<br />
zubuchen, die jährlich zwischen 500 und<br />
2500 Euro kosten. Das Umfragetool arbeitet<br />
ebenfalls mit typischen LAMP-Servern<br />
zusammen.<br />
Die Tester schauten sich Version 2.7.0<br />
(November 2013) an. Vor der Installation<br />
rüsten Benutzer zusätzlich Tomcat 6 nach<br />
und stellen sicher, dass Java 7 vorhanden<br />
ist. Außerdem erzeugen sie mit dem<br />
MySQL-Kommandozeilentool oder über<br />
ein Hilfsprogramm wie Phpmyadmin eine<br />
MySQL-Datenbank für den User »opina«<br />
und vergeben ein Passwort.<br />
Das heruntergeladene Zip-Archiv packt<br />
der Admin im Servlet-Container von Tomcat<br />
aus; auf dem Testrechner war das der<br />
Ordner »/usr/share/tomcat6/webapps«.<br />
Danach ändert er den Besitzer und die<br />
Gruppe für das Verzeichnis »opina« und<br />
die Unterverzeichnisse:<br />
chown ‐R tomcat:tomcat opina<br />
Als Nächstes greift er zum Texteditor und<br />
macht in zwei Dateien Angaben zur Datenbank<br />
und zum SMTP-Server, wie in
Abbildung 4: Per Klick auf »New« zeigt Opina alle<br />
<strong>neu</strong>n Fragetypen samt winzigen Thumbnails an.<br />
der Anleitung beschrieben [7]. Er muss<br />
mindestens den SMTP-Port eintragen.<br />
Zum Schluss startet er den Tomcat-Dienst<br />
mit diesem Aufruf:<br />
service tomcat6 start<br />
Opina ist nun über den Browser unter<br />
»http://example.com:8080/opina« erreichbar.<br />
Der voreingestellte Admin-Account<br />
hat den Benutzernamen »hello@<br />
opinahq.com« und das Passwort »opina«.<br />
Eine Möglichkeit, die Mailadresse und<br />
das Kennwort über das Webinterface<br />
zu ändern, sucht man vergeblich. Verwalter<br />
sollten daher unbedingt einen<br />
<strong>neu</strong>en Administratorzugang anlegen. Im<br />
Dashboard besuchen sie dazu den Reiter<br />
»Users« und fügen dem Nutzer in jedem<br />
Fall beide Standardrollen (»Administrator«<br />
und »User«) hinzu.<br />
Die Aktivierungsmail spricht Spanisch<br />
und der Link ist unvollständig. Anwender<br />
kopieren die mitgeschickte Zeichenkette,<br />
die mit »/s/register« beginnt, fügen sie<br />
hinter die Opina-URL (»http://example.<br />
com:8080/opina«) ein und setzen dann<br />
ein Passwort. Danach können sie den<br />
Standard-Admin-Account entfernen.<br />
Spanische Inquisition<br />
Über den Menüpunkt »Settings« legt der<br />
Administrator die Zeitzone und die Sprache<br />
fest. Derzeit stehen nur Spanisch und<br />
Englisch zur Auswahl, wobei die englische<br />
Übersetzung den Testern ebenfalls<br />
oft recht spanisch vorkam. Zwei weitere<br />
Optionen im Einrichtungsdialog verbinden<br />
das Programm auf Wunsch mit den<br />
Cloud-Adressverwaltungen Highrise und<br />
Zyncro. Opina wirkt auf den ersten Blick<br />
deutlich übersichtlicher als die Konkurrenz,<br />
erkauft sich dies aber mit einem<br />
geringeren Funktionsumfang. Über »New<br />
survey« im Dashboard geht’s mit der ersten<br />
Umfrage los.<br />
In einer Eingabemaske gibt der Verwalter<br />
den Namen und eine kurze Beschreibung<br />
für die Umfrage ein. Danach öffnet<br />
sich ein <strong>neu</strong>er Reiter, und in der unteren<br />
Hälfte erscheinen Tabs, auf denen der<br />
Benutzer die Feinabstimmung vornimmt.<br />
Unter »Questions« legt er die Fragen an,<br />
über »Design« sortiert er sie und reichert<br />
sie mit weiteren Elementen an. Auf dem<br />
Reiter »Publication« bereitet er die Umfrage<br />
auf die Veröffentlichung vor. Hinter<br />
den restlichen fünf Tabs verbergen sich<br />
die Zugriffskontrolle, die Einladungsfunktion<br />
sowie Auswertungs- und Exportmöglichkeiten.<br />
Neun Fragetypen stehen zur Auswahl,<br />
darunter Textfragen, Ja/Nein-Fragen,<br />
Matrix fragen oder »Gradient«, was der<br />
Fünf-Punkte-Auswahl bei Lime Survey<br />
entspricht. Opina zeigt genau wie Lime<br />
Survey eine <strong>Vorschau</strong> an, die allerdings<br />
winzig klein ist (Abbildung 4).<br />
Wer die Multiple-Choice-Option wählt,<br />
entscheidet sich zunächst für den Datentyp.<br />
Opina unterscheidet zwischen Text,<br />
numerischen Werten, dem Datum, der<br />
Zeit oder der Kombination von Datum<br />
und Zeit. Für die meisten Fragen stehen<br />
Zusatzoptionen zur Verfügung, die der<br />
Anwender im Dialog über ein Pluszeichen<br />
ausklappt. Über Checkboxen definiert<br />
er außerdem, dass die Teilnehmer<br />
auch keine Antwort geben oder mehrere<br />
Punkte auswählen dürfen.<br />
Eine Möglichkeit, den einzelnen Fragen<br />
Bedingungen zuzuweisen und damit Abzweigungen<br />
in die Umfrage einzubauen,<br />
gibt es nicht. Opina-Erfassungen laufen<br />
grundsätzlich in der vom Admin festgelegten<br />
Reihenfolge ab. Auch die anderen<br />
Konfigurationsoptionen für die Fragen<br />
sind eher bescheiden. Auf dem Reiter<br />
»Design« bringt der Verwalter noch nicht<br />
freigeschaltete Umfragen ohne Antworten<br />
rudimentär in Form. Über die Pfeiltasten<br />
legt er die Reihenfolge der Fragen<br />
fest (siehe Abbildung 5). Außerdem<br />
reichert er sie optional mit zusätzlichen<br />
Text blöcken an, um Teilnehmer durch die<br />
Datenerfassung zu leiten.<br />
Über das Menü »Add« legt der Umfrage-<br />
Chef <strong>neu</strong>e Fragen und auch Gruppen an,
Software<br />
www.linux-magazin.de Bitparade 04/2014<br />
62<br />
die allerdings nicht die gleiche Funktion<br />
haben wie bei Lime Survey, sondern die<br />
Umfrage lediglich optisch in Bereiche<br />
aufteilen. Multimediale Inhalte erlaubt<br />
Opina nicht und beschränkt sich auf reinen<br />
Text. Eine Möglichkeit, die Fragen<br />
auf mehrere Seiten zu verteilen, fanden<br />
die Tester ebenfalls nicht. Das führt dazu,<br />
dass bei langen Umfragen jede Menge<br />
Scrollarbeit für die Teilnehmer ansteht.<br />
Sprachreise<br />
Auf dem Reiter »Publication« legt der Anwender<br />
vor der Veröffentlichung der Umfrage<br />
letzte Hand an. Er gibt Nachrichten<br />
für die Begrüßung und Verabschiedung,<br />
einen Header und einen Footer ein. Außerdem<br />
setzt er hier einen Titel und konfiguriert<br />
die Adresse, über welche die<br />
Umfrage erreichbar ist. Wiederholt er<br />
eine Umfrage zu einem späteren Zeitpunkt,<br />
so gibt er ihr einen <strong>neu</strong>en Titel<br />
und eine <strong>neu</strong>e URL, anstatt von vorne<br />
zu beginnen. Über das Symbol mit dem<br />
Auge öffnet der Nutzer eine <strong>Vorschau</strong> für<br />
nicht veröffentlichte Erhebungen und per<br />
Klick auf das Vorhängeschloss öffnet und<br />
schließt er Umfragen von Hand.<br />
Ein Timer für Quizfragen und Tests fehlt.<br />
Ebenso ist ein eigenes Layout nur auf<br />
Umwegen möglich. Opina liefert von<br />
Haus aus nur das Default-Theme mit,<br />
und auch eine Suche im Web förderte<br />
keine alternativen Looks zutage. Auf der<br />
Projekthomepage schreibt der Hersteller,<br />
dass er auf Wunsch Themes für seine<br />
Kunden entwickelt. Alternativ bearbei-<br />
Abbildung 6: Den Verlauf einer Umfrage sowie detaillierte Angaben zu den Teilnehmern findet der Verwalter<br />
auf dem Reiter »Track«. Am oberen Rand konfiguriert er das Intervall zur Anzeige.<br />
ten Anwender mit CSS-Kenntnissen die<br />
Stylesheets im Verzeichnis »ui/css« auf<br />
dem Server.<br />
Das Programm bietet in der aktuellen Version<br />
keine Funktion, um echte anonyme<br />
Umfragen zu erstellen. Es protokolliert<br />
IP-Adressen und zeigt sie auf dem Reiter<br />
»Reports« an. Die Tester fanden keine<br />
Möglichkeit, dieses Verhalten zu deaktivieren.<br />
Auf dem Tab »Access Control«<br />
definieren Admins, ob eine Umfrage öffentlich<br />
oder geschlossen, mit Passwort<br />
oder Ticket zu erreichen ist. Im Feld daneben<br />
suchen sie aus den vorher angelegten<br />
Kontakten Benutzer aus, die eine<br />
Einladung per Mail erhalten.<br />
Die verschickten Nachrichten leiden an<br />
der gleichen Kinderkrankheit wie die<br />
zur Registrierung, und die URL in der<br />
E-Mail ist abgeschnitten. Auch hier hilft<br />
es, die Zeichenkette hinter die Opina-<br />
URL »http://example.com:8080/opina«<br />
zu hängen.<br />
Der zweite Kandidat bietet Datenexport<br />
nur für Ergebnisse und speichert diese<br />
als CSV- oder SPSS-Dateien. Eine Exportfunktion<br />
für die Umfrage selbst und auch<br />
Importfunktionen, mit denen Anwender<br />
fertige Erhebungen oder einzelne Fragen<br />
beziehungsweise Gruppen einlesen,<br />
suchten die Tester vergeblich.<br />
Grafische Auswertungen der Umfragen<br />
findet der Benutzer unter »Track« sowie<br />
unter »Reports«. Der erste Reiter zeichnet<br />
den Verlauf auf (siehe Abbildung 6), der<br />
zweite generiert eine Zusammenfassung<br />
mit Balkendiagrammen und erlaubt unter<br />
»Respondents« einen Einblick in die Antworten<br />
einzelner Teilnehmer.<br />
E Polldaddy<br />
Abbildung 5: Echtes Design findet auf dem gleichnamigen Reiter bei Opina nicht statt. Praktisch ist allerdings<br />
die Funktion, die Reihenfolge mit den Pfeilsymbolen anzupassen.<br />
Unter dem schönen Namen Polldaddy [1]<br />
firmiert ein kommerzieller Cloudservice<br />
des kalifornischen Unternehmens Automattic,<br />
Inc. [8], das auch Produkte wie<br />
Wordpress.com, Akismet und Gravatar<br />
entwickelt. Der dritte Kandidat bietet<br />
wie die anderen Automattic-Dienste den<br />
Zugang via Single Sign-on; die Tester<br />
nutzten ihren bestehenden Wordpress.<br />
com-Account und verknüpften diesen mit<br />
der Umfrageplattform.<br />
Ein Paket zur Installation auf dem eigenen<br />
Server gibt es nicht und alle Daten<br />
verbleiben in der Cloud. Für das eigene<br />
Wordpress-Blog empfiehlt sich zusätzlich
Abbildung 7: Polldaddy hat mehrere Umfragetypen im Angebot und versammelt nicht alles in einer einzigen<br />
Kategorie. So erstellen Anwender bequem Ratespielchen und Bewertungen.<br />
das Plugin Polldaddy Polls & Ratings [9],<br />
das mit wenigen Mausklicks einsatzbereit<br />
ist und den Polldaddy-Service über das<br />
Wordpress-Dashboard einbindet.<br />
Der Anwender hat die Wahl zwischen drei<br />
Preismodellen. Dem kostenlosen Account<br />
fehlt vor allem die Exportfunktion – ein<br />
K.-o.-Kriterium für alle, die ihre Ergebnisse<br />
statistisch auswerten möchten. Die<br />
Pro-Version kostet 200 US-Dollar pro Jahr<br />
(pro Monat rund 30 US-Dollar) und bietet<br />
neben dem Export auch bessere Filter<br />
für die Antworten, angepasste Links zur<br />
Umfrage und die Möglichkeit, den CSS-<br />
Code zu verändern. Mit dem Corporate-<br />
Account für knapp 900 US-Dollar jährlich<br />
(pro Monat rund 100 US-Dollar) dürfen<br />
bis zu zehn Mitarbeiter auf die Umfragen<br />
zugreifen, die auch unter dem eigenen<br />
Domainnamen erreichbar sind.<br />
Nach dem Login klicken Benutzer auf das<br />
Icon mit dem Zahnrad beziehungsweise<br />
auf den Avatar, um ihr Profil zu bearbeiten<br />
und die Sprache für das Webinterface<br />
zu setzen. Polldaddy bietet neben Umfragen<br />
auch Abstimmungen, Quiz und<br />
Bewertungen an (Abbildung 7). Bei Abstimmungen<br />
beantworten die Teilnehmer<br />
eine einzige Frage, ein Quiz fragt Wissen<br />
ab und wertet die Antworten aus, bei<br />
Bewertungen dürfen die Teilnehmer etwas<br />
einstufen und zwischen einem und<br />
fünf Sternchen beziehungsweise Daumen<br />
hoch oder runter vergeben.<br />
Entscheidet sich der Benutzer für die Umfrage,<br />
richtet er zunächst den Namen, den<br />
Permalink und eine Begrüßung für die<br />
Teilnehmer ein. Eine eigene Schlussmeldung<br />
gibt es nur bei den Bezahlvarianten.<br />
Weiter unten auf der Seite konfiguriert er,<br />
wann eine Umfrage als beendet gilt und<br />
ob es eine oder mehrere Rückmeldungen<br />
per Computer geben darf. Rechts daneben<br />
setzen Nutzer der kostenpflichtigen<br />
Zugänge einen Passwort- oder Captcha-<br />
Schutz und beschränken die Teilnahme<br />
auf IP- oder E-Mail-Adressen.<br />
Weiter geht es auf dem Reiter »Question<br />
Editor« mit den eigentlichen Fragen.<br />
Links stehen die unterschiedlichen Typen,<br />
die per Drag & Drop oder Klick in<br />
die Liste wandern. Hier bleiben keine<br />
Wünsche unerfüllt – lediglich an der<br />
deutschen Übersetzung einiger Schaltflächen<br />
und Feldbeschriftungen könnte ein<br />
Profi noch mal feilen (siehe Abbildung<br />
8). Polldaddy hat unter anderem Freitextantworten,<br />
Matrixfragen, Multiple-<br />
Choice- und Sortieraufgaben im Angebot.<br />
Ein Klick auf einen Eintrag öffnet<br />
die Einstellungen. Über diese wandelt<br />
der Nutzer auch eine Mehrfachauswahl<br />
in eine Einfachauswahl um, indem er<br />
die Antwortmöglichkeiten im Dropdownmenü<br />
rechts reduziert – das ist bei Lime<br />
Survey und Opina besser gelöst.<br />
Gut arrangiert<br />
Mehr Komfort als bei der Konkurrenz<br />
gibt es jedoch bei den Matrixfragen. Hier<br />
darf der Benutzer Fragen und Antworten<br />
direkt in einem Interface nebeneinander<br />
eintippen und muss nicht getrennte Eingabemasken<br />
bemühen. Polldaddy bietet<br />
ebenfalls an, die einzelnen Elemente der<br />
Matrixfragen bei jedem Durchlauf der<br />
Umfrage in zufälligen Kombinationen<br />
anzuzeigen. Dazu würfelt das Tool entweder<br />
nur die Fragen, nur die Antworten<br />
oder gleich beides durcheinander. Außerdem<br />
ist es möglich, Verzweigungen<br />
einzurichten. Diese führen wie die Bedingungen<br />
bei Lime Survey dazu, dass das<br />
Tool die Teilnehmer abhängig von ihren<br />
Antworten weiter- und umleitet.<br />
Multimediale Elemente sind mit Einschränkungen<br />
möglich. Videos binden<br />
Anwender per Link auf externe Quellen<br />
ein, Bilder (Jpeg, PNG und Gif) sowie<br />
MP3-Dateien dürfen sie direkt hochladen.<br />
Optional stehen die Medien auch in<br />
anderen Umfragen zur Verfügung, sofern<br />
Nutzer das entsprechende Häkchen beim<br />
Upload setzen. Über den Reiter »Mediathek«<br />
desselben Dialogs sind hochgeladene<br />
Bilder und MP3s erreichbar.<br />
Fragegruppen wie bei Lime Survey gibt es<br />
nicht. Polldaddy blendet am oberen Rand<br />
der Umfrage Buttons ein, über die Anwender<br />
Seiten hinzufügen, kopieren und<br />
löschen. Nicht so gut gelöst ist, dass der<br />
Anwender die Reihenfolge der Fragen nur<br />
auf den Seiten selbst umsortieren kann.<br />
Es ist nicht möglich, ein Element zu ver-<br />
Abbildung 8: Übersichtlich und vielfältig gibt sich Polldaddy. Allerdings sind die Übersetzungen teilweise<br />
nicht gelungen, so trägt der Nutzer ein Aluminium anstelle eines Minimums ein.<br />
Bitparade 04/2014<br />
Software<br />
www.linux-magazin.de<br />
63
Software<br />
www.linux-magazin.de Bitparade 04/2014<br />
64<br />
Abbildung 9: Polldaddy gewinnt den Designwettbewerb im Test. Bei den fertigen Themes dürfte für jeden<br />
Geschmack etwas dabei sein. Eingriffe in den CSS-Quellcode bieten aber nur die Bezahlvarianten.<br />
schieben. Wer nicht ganz aufmerksam<br />
arbeitet, braucht viel Geduld und etliche<br />
Mausklicks, bis alles passt.<br />
Der Reiter »Survey Style« verpasst der<br />
Polldaddy-Umfrage den richtigen Look.<br />
16 fertige Themes sind für alle Accounttypen<br />
vorhanden, eine <strong>Vorschau</strong> verrät,<br />
wie die fertige Präsentation aussieht<br />
(Abbildung 9). Dem Inhaber eines Bezahlkontos<br />
ist es zudem möglich, das<br />
Layout individuell zu gestalten und direkt<br />
in den CSS-Code einzugreifen. In<br />
der kostenfreien Version darf der Nutzer<br />
immerhin aus 18 verschiedenen Schriftarten<br />
aussuchen.<br />
Schaulustig<br />
Benutzer, die eine deutsche Umfrage<br />
mit Polldaddy gestalten, sollten sich<br />
unbedingt dem Reiter »Edit Language«<br />
widmen. Einige der Übersetzungen sind<br />
unvollständig oder falsch. In den Feldern<br />
auf der rechten Seite bringen Anwender<br />
ihre eigenen Formulierungen unter. Sie<br />
sollten abschließend nicht vergessen, die<br />
Modifikationen abzuspeichern, damit sie<br />
bei der nächsten Umfrage auf das eigene<br />
Sprachpaket zugreifen können.<br />
Oben rechts unter »Antworten sammeln«<br />
findet der Nutzer Funktionen, um die<br />
Umfrage zu verbreiten. Hier erfährt er<br />
den Link oder macht seine Erhebung<br />
per Facebook oder Twitter bekannt. Polldaddy<br />
generiert sogar QR-Codes in fünf<br />
verschiedenen Größen. Das Tool verwaltet<br />
E-Mail-Listen der Teilnehmer und verschickt<br />
Einladungen. Außerdem bietet die<br />
Software fertigen Quellcode an, um die<br />
Umfrage in eine Webseite inline oder per<br />
Popup einzubinden. Wordpress-Nutzer<br />
verwenden am besten den angegebenen<br />
Shortcode.<br />
Als Cloudservice, der auf Servern in den<br />
USA gehostet wird, eignet sich Polldaddy<br />
nicht für vertrauliche Umfragen. Anonymität<br />
ist nicht garantiert, der Anwender<br />
kann nicht prüfen, welche Daten der<br />
Anbieter sammelt. In den Ergebnissen<br />
tauchen zudem die IP-Adressen der Teilnehmer<br />
auf.<br />
Über den Reiter »Ergebnisse« erreichen<br />
Benutzer die grafische Auswertung und<br />
die Export-Optionen. Erstere kann er<br />
auch als PDF-Dokument herunterladen.<br />
Die Funktion versteckt sich wenig intuitiv<br />
hinter dem Menüpunkt »CSV exportieren«.<br />
Für Resultate von Multiple-Choice-<br />
Fragen zeichnet Polldaddy Balkendiagramme,<br />
für Matrixfragen farbige Tabellen,<br />
für die Textfragen blendet das Tool<br />
die vollständigen Antworten ein. Beim<br />
Datenexport wählen Nutzer zwischen<br />
CSV-, XML- oder Excel-Dateien. Alternativ<br />
schickt Polldaddy als einziger Testkandidat<br />
die Ergebnisse direkt zu Google<br />
Docs und erzeugt ein <strong>neu</strong>es Spreadsheet.<br />
Anders als Lime Survey und Opina generiert<br />
Polldaddy keine SPSS-Dateien.<br />
Ausgefragt<br />
Wenn es um die Geschwindigkeit beim<br />
Zusammenklicken von Umfragen geht,<br />
gewinnt Opina ganz knapp vor Polldaddy.<br />
Während die aufgeräumte Administrationsoberfläche<br />
des freien Programms<br />
gefällt, enttäuscht das Gesamtbild. Fehlende<br />
Konfigurationsmöglichkeiten, nicht<br />
vorhandene Dokumentation und schlecht<br />
bis gar nicht übersetzte Funktionen sorgen<br />
für administrativen Blindflug. Zudem<br />
ist es ärgerlich, dass die Aktivierungslinks<br />
in den vom System verschickten<br />
Mails nicht vollständig sind.<br />
Polldaddy bietet als einziger Kandidat<br />
keinen Schutz vor nachträglichen Änderungen,<br />
auf diese Weise gehen bereits<br />
eingegebene Antworten verloren, wenn<br />
der Admin laufende Umfragen ändert.<br />
Anwender, die mit Wordpress bloggen<br />
und ab und zu die Meinung ihrer Leser<br />
erforschen möchten, finden im Cloudservice<br />
aber ein handliches und übersichtliches<br />
Tool, das von Haus aus prima<br />
mit der Blogsoftware zusammenarbeitet.<br />
Eine wissenschaftliche Umfrage und sensible<br />
Themen sollten Nutzer jedoch mit<br />
einem der beiden anderen Kandidaten<br />
durchführen, weil Datenschutz nicht gewährleistet<br />
ist.<br />
Als klaren Sieger küren die Tester Lime<br />
Survey. Das Programm bietet den größten<br />
Funktionsumfang und die besten Sicherheits-<br />
und Anonymisierungsmaßnahmen.<br />
Obwohl sich Einsteiger in der Administrationsoberfläche<br />
verlaufen, kann sich<br />
die Benutzerfreundlichkeit immer noch<br />
sehen lassen. Nachbesserungsbedarf gibt<br />
es lediglich bei den Themes. Die mitgelieferten<br />
Layoutvorschläge wirken recht<br />
altbacken. Komplexere Umfragen erfordern<br />
etwas Einarbeitungszeit, wobei die<br />
umfangreiche Dokumentation hilft. Lime<br />
Survey ist zudem die einzige Software im<br />
Test, die es den Teilnehmern erlaubt, eine<br />
begonnene Umfrage zwischenzuspeichern<br />
und zu einem späteren Zeitpunkt<br />
zu beenden. (hej) <br />
n<br />
Infos<br />
[1] Polldaddy: [http:// polldaddy. com]<br />
[2] Lime Survey: [http:// www. limesurvey. org]<br />
[3] Opina: [http:// opinahq. com]<br />
[4] Lime Survey installieren: [http:// manual.<br />
limesurvey. org/ Installation/ de]<br />
[5] Lime-Survey-Plugins von Drittanbietern:<br />
[http:// manual. limesurvey. org/ Available_<br />
third_party_plugins]<br />
[6] Klicap: [http:// klicap. es]<br />
[7] Opina-Installation:<br />
[https:// opinahq. zendesk. com/ entries/<br />
28310706‐Installation‐Guide]<br />
[8] Automattic, Inc.: [http:// automattic. com]<br />
[9] Polldaddy Polls & Ratings:<br />
[http:// wordpress. org/ plugins/ polldaddy]
Software<br />
www.linux-magazin.de KDE Frameworks 04/2014<br />
66<br />
Die KDE Frameworks 5 stehen kurz vor der Fertigstellung<br />
Virtuos geschichtet<br />
Seit fast drei Jahren arbeiten bis zu 20 Entwickler an einer generalüberholten Fassung der KDE-Bibliotheken.<br />
Das Ergebnis erschien Anfang Februar in einer ersten Alphaversion mit vielen Neuerungen. Tim Schürmann<br />
© Jennifer Swann, 123RF.com<br />
noch um eine wohldefinierte Aufgabe.<br />
Programmierer sollten sich einzelne Bibliotheken<br />
herauspicken und nutzen<br />
können, ohne gleich die restlichen KDE-<br />
Bibliotheken einbinden und später an<br />
die Nutzer mitliefern zu müssten. Wer<br />
beispielsweise mit Zip-Archiven hantiert,<br />
bindet nur noch »KArchive« ein.<br />
Besonderen Wert haben die Entwickler<br />
auf die Plattformunabhängigkeit gelegt:<br />
Die Bibliotheken sollen nicht nur auf<br />
<strong>Linux</strong>-PCs laufen, sondern sich möglichst<br />
einfach auch auf anderen Geräten<br />
wiederverwenden lassen. Die KDE-<br />
Entwickler haben dabei natürlich primär<br />
Smartphones und Tablets im Auge, aber<br />
auch die Windows-Plattform.<br />
Geschenke von außen<br />
Die KDE-Bibliotheken fassen Funktionen<br />
und Aufgaben zusammen, die für<br />
verschiedene KDE-Anwendungen nötig<br />
sein können. So kümmert sich beispielsweise<br />
»KArchive« um das Packen und<br />
Entpacken von Archiven, während die<br />
»Solid«-Bibliothek Informationen über<br />
die Hardware liefert, etwa den Batterieund<br />
Netzwerkstatus. Diese Bibliotheken<br />
sind jedoch im Laufe der Zeit recht pragmatisch<br />
entstanden und gewachsen. In<br />
der Folge kamen daher viele Abhängigkeiten<br />
untereinander und von anderen<br />
Libraries hinzu.<br />
Das wiederum brachte gehörigen Overhead<br />
mit sich: Will ein Programmierer<br />
nur eine einzelne Funktion nutzen, muss<br />
er trotzdem gleich mehrere Bibliotheken<br />
einbinden. Obendrein stellen die KDE-<br />
Entwickler alle Bibliotheken gemeinsam<br />
als dickes Paket bereit, Anwender<br />
mussten diese »Kdelibs« immer komplett<br />
installieren. Außerdem sind die Bibliotheken<br />
auch noch auf klassische Desktop-Anwendungen<br />
zugeschnitten, was<br />
wiederum den Einsatz auf Mobilgeräten<br />
erschwert. Diese Situation hat sich bis<br />
heute nicht wesentlich geändert, alle Bibliotheken<br />
firmieren lediglich unter dem<br />
<strong>neu</strong>en Namen KDE Platform 4 [1].<br />
Abspeckkur<br />
Es musste sich also dringend etwas ändern.<br />
Auf dem Entwicklertreffen Platform<br />
11 in Randa (Abbildung 1) setzten sich<br />
daher einige KDE-Programmierer zusammen<br />
und arbeiteten einen Plan für die<br />
nächste Fassung der KDE-Bibliotheken<br />
aus. Das war gleichzeitig der Startschuss<br />
für die mittlerweile fast dreijährige Entwicklungszeit<br />
[2].<br />
Als Erstes haben die KDE-Entwickler alle<br />
Bibliotheken entschlackt und vor allem<br />
die Abhängigkeiten untereinander reduziert.<br />
Jede Bibliothek kümmert sich nur<br />
Ende 2011 führte Qt das Open Governance<br />
Model ein [3]. Dies ermöglichte<br />
es den KDE-Entwicklern, sowohl aktiv<br />
bei der Entwicklung von Qt mitzuhelfen<br />
als auch Code aus den KDE-Bibliotheken<br />
in das Qt-Projekt einfließen zu lassen.<br />
Letzteres hat gleich zwei Vorteile: Qt-Programmierer<br />
profitieren von den zusätzlichen<br />
Funktionen, während umgekehrt<br />
die KDE-Bibliotheken schrumpfen und<br />
sich ihre Abhängigkeiten untereinander<br />
verringern. Ein KDE-Programm kann<br />
jetzt viel häufiger direkt auf Qt aufbauen<br />
und muss nicht noch eine KDE-Bibliothek<br />
einbinden.<br />
Als Paradebeispiel nennt Jos Poortvliet<br />
(Abbildung 2), Leiter des KDE-Marketing-Teams,<br />
in einem seiner Blogbeiträge<br />
den Code für die Zeitzonen [4]: Nachdem<br />
dieser aus den KDE-Bibliotheken in<br />
die Klasse »QDateTime« gewandert ist,<br />
können insbesondere die Bibliotheken<br />
für das Personal Information Management<br />
direkt Qt nutzen. Das machte wie-
derum auf einen Schlag die Bibliotheken<br />
»KDateTime«, »KTimeZone« und »KLocale«<br />
überflüssig.<br />
Aufgrund dieser massiven Vorteile haben<br />
die KDE-Entwickler ihre Bibliotheken<br />
nach Quelltext untersucht, der sich für<br />
eine Integration in Qt eignen könnte. Den<br />
so identifizierten Code überarbeiteten sie<br />
vor der Übergabe gründlich und prüften<br />
ihn mit <strong>neu</strong>en Tests. Dass da viel Arbeit<br />
drinsteckt, zeigt eine lange Liste mit den<br />
Beiträgen der KDE-Macher zu Qt im KDE-<br />
Community-Wiki [5]. Der Austausch von<br />
Code zwischen KDE und Qt läuft weiter,<br />
die KDE-Entwickler dürften also auch in<br />
Zukunft maßgeblich bei der Weiterentwicklung<br />
von Qt mithelfen – und davon<br />
profitieren.<br />
Abbildung 2: Open Suses Community-Manager Jos Poortvliet – hier bei einem Vortrag in Thessaloniki – ist<br />
zugleich Mitglied des KDE-Marketing-Teams und bloggt gerne über die kommenden Frameworks.<br />
© Markus Feilner<br />
KDE Frameworks 04/2014<br />
Software<br />
www.linux-magazin.de<br />
67<br />
Zusammen mit Qt<br />
Wie die Zusammenarbeit abläuft, verriet<br />
KDE-Entwickler Aleix Pol im Gespräch<br />
mit dem <strong>Linux</strong>-<strong>Magazin</strong>: „Erst einmal<br />
werden wir die KDE-Anwendungen in<br />
eine Wayland-freundliche Umgebung<br />
bringen müssen." Auch wenn die Anstrengungen<br />
dazu bereits vor Jahren begannen,<br />
müsse man hier weiterhin auf<br />
gute Zusammenarbeit achten. „Darüber<br />
hinaus betrachten wir uns nicht mehr als<br />
auf Qt basierend, sondern denken, dass<br />
die Qt-Frameworks Teil unseres Stacks<br />
sind. Wenn uns also etwas an Qt stört,<br />
versuchen wir das Beste, um diese Situation<br />
zu verbessern. Das war erst durch<br />
das Open-Governance-Modell möglich.<br />
Das ist auch der Grund, warum es nicht<br />
schon früher passiert ist. In Zukunft<br />
erwarten wir sowohl Bugfixes als auch<br />
spürbare Performance-Verbesserungen.“<br />
Trotz des Code-Austausches gibt es nach<br />
wie vor einige KDE-Bibliotheken, die direkt<br />
auf Qt aufsetzen und ein paar dort<br />
vermisste Funktionen ergänzen. Bei solchen<br />
Bibliotheken sprechen die KDE-Entwickler<br />
auch von Qt-Addons (oder von<br />
„Drop-in Qt Addon Libraries“). Diesen<br />
Begriff haben sie jedoch selbst erfunden,<br />
es handelt sich nicht um Plugins im klassischen<br />
Sinn [6].<br />
Des Weiteren bleiben noch weit über<br />
50 KDE-Bibliotheken bestehen. Um hier<br />
zumindest die Übersicht etwas zu verbessern,<br />
fassen die KDE-Entwickler ihre<br />
Bibliotheken noch einmal zu Frameworks<br />
zusammen. Jedes Framework besteht aus<br />
einer oder mehreren Bibliotheken [2].<br />
Aufgrund dieser Neueinteilung haben<br />
sich die Verantwortlichen zudem dazu<br />
entschlossen, sämtliche Bibliotheken unter<br />
dem Namen KDE Frameworks 5 weiterzuentwickeln.<br />
Die KDE Frameworks<br />
5 ersetzen somit die alte KDE Platform<br />
4. Dabei ist unbedingt der Plural (also<br />
Frameworks) zu verwenden. Wer ihn vergisst,<br />
wird verbal geteert und gefedert, so<br />
wie der Autor dieses Artikels zu Beginn<br />
der Recherche.<br />
Drei Kategorien: Funktion,<br />
Integration und Solution<br />
Alle Frameworks sortieren die Macher<br />
in drei Kategorien [7]: Die so genannten<br />
Functional Frameworks (in einigen Dokumenten<br />
auch als Functional Elements<br />
bezeichnet) weisen keine weiteren Abhängigkeiten<br />
auf, sie sind also vollkommen<br />
unabhängig nutzbar. In diese Kategorie<br />
fällt beispielsweise »KArchive«,<br />
das sich exklusiv um das Komprimieren<br />
und Dekomprimieren von Archiven kümmert.<br />
Die Integration Frameworks (oder<br />
Integration Elements) können hingegen<br />
© KDE-Projekt<br />
Abbildung 1: Im Jahre 2011 trafen sich KDE-Entwickler im schweizerischen Randa, um die KDE-Libraries zu entwirren.
Software<br />
www.linux-magazin.de KDE Frameworks 04/2014<br />
68<br />
Abbildung 3: In den Einstellungsmenüs des Dateimanagers Dolphin finden<br />
sich viele KIO-Slaves, also Dienste, die Datei-Operationen vereinfachen.<br />
weitere Abhängigkeiten besitzen und<br />
insbesondere über weitere Bibliotheken<br />
auf die gerade verwendete Plattform beziehungsweise<br />
das Betriebssystem zugreifen.<br />
Beispielsweise liefert das Solid-<br />
Framework Informationen über die verwendete<br />
Hardware, wozu es auf einigen<br />
Betriebssystemen weitere Komponenten<br />
und Bibliotheken heranzieht.<br />
Die Solution Frameworks benötigen<br />
zwingend weitere Bibliotheken, um ihre<br />
jeweilige Aufgabe erfüllen<br />
zu können. Ein<br />
Beispiel ist KIO (KDE<br />
Input/Output, [8]),<br />
das den transparenten<br />
Zugriff auf Dateien in<br />
einem Netzwerk realisiert.<br />
Dazu greift KIO<br />
wiederum auf die Hilfe<br />
des Kioslave-Daemon<br />
zurück (Abbildung<br />
3). Das KDE-Wiki<br />
bezeichnet diese drei<br />
Kategorien als Typen,<br />
der offiziellen Sprechweise<br />
zufolge „hat das<br />
Framework Solid den<br />
Typ Integration“.<br />
Etagen<br />
Einige Frameworks lassen<br />
sich bei ihrer Arbeit<br />
von gleich mehreren Kollegen helfen.<br />
Damit Programmierer schnell abschätzen<br />
können, wie komplex die Abhängigkeiten<br />
sind, teilen die KDE-Entwickler die<br />
Frameworks zusätzlich noch in drei Tiers<br />
(Schichten) ein (Abbildung 4):<br />
n Ein Framework gehört zum Tier 1,<br />
wenn es kein anderes KDE-Framework<br />
nutzt, plattformunabhängig ist und<br />
sich lediglich auf System- sowie die<br />
offiziellen Qt-Bibliotheken stützt. Dies<br />
trifft beispielsweise auf das Framework<br />
»KArchive« oder die Rechtschreibkorrektur<br />
Sonnet zu.<br />
n Ein Tier-2-Framework hängt nur von<br />
Tier-1-Frameworks sowie System- und<br />
den offiziellen Qt-Bibliotheken ab. Ein<br />
Beispiel wäre das Framework »KDoctools«,<br />
das auf die Dienste von »KArchive«<br />
zurückgreift.<br />
n Tier-3-Frameworks wiederum dürfen<br />
beliebige andere Frameworks einspannen<br />
sowie natürlich System- und die<br />
offiziellen Qt-Bibliotheken nutzen.<br />
Zu den Tier-3-Frameworks zählt beispielsweise<br />
KIO, das die »KDoctools«<br />
benötigt.<br />
Interessiert sich ein Entwickler für ein<br />
KDE-Framework und gehört dieses zu<br />
Tier 1, so muss er sich folglich um die<br />
Abhängigkeiten keine großen Gedanken<br />
machen. Gehört das Framework jedoch<br />
zu Tier 3, muss der Programmierer noch<br />
weitere Frameworks zusätzlich einbinden,<br />
die auch noch in einem recht komplizierten<br />
Verhältnis zueinander stehen<br />
können.<br />
In aktuellen Präsentationen der KDE-<br />
Entwickler taucht sogar noch eine vierte<br />
Schicht (Tier 4) auf, deren Frameworks<br />
ebenfalls von Tier-1-, Tier-2- und Tier-<br />
3-Frameworks abhängen dürfen. Den<br />
Unterschied zu Tier 3 erläutert Aleix Pol:<br />
„In Tier 4 finden sich Dinge, die nichts<br />
außerhalb des KDE-Workspace benutzen<br />
© Aurélien Gâteau<br />
Abbildung 4: Die Frameworks 5 gruppieren die vielen KDE-Bibliotheken mit ihren unübersichtlichen Abhängigkeiten in vier Tiers. Ganz unten liegt Tier 1 mit Basis-<br />
Bibliotheken wie Kcodecs, darüber Tier 2 mit Kauth, Kcrash und anderen, links daneben findet sich Tier 3 mit beispielsweise Ktexteditorplugin oder Kdesignerplugin.<br />
Und über allem thront Tier 4 mit Kde4support, Frameworkintegration, Kfileaudiopreview und Khtml. Die Linien zeigen: Es gibt Unmengen an Abhängigkeiten.
oder interessieren sollten. Dort finden<br />
sich beispielsweise:<br />
n Die Integration mit dem KDE-Workspace,<br />
verschmilzt möglicherweise<br />
irgendwann mit den Workspaces.<br />
n Die Kde4support-Bibliotheken, die andere<br />
Anwendungen während ihrer Portierung<br />
nutzen – aber nicht länger.<br />
n Die Kcmutils, ein Modul, das verwendet<br />
wird, um unsere Systemsettings<br />
zu erstellen.<br />
n Khtml, das wohl durch »QtWebKit«<br />
ersetzt wird – es ist groß und kaum<br />
gewartet.“<br />
Insgesamt bietet sich so ein recht komplexes<br />
Bild, das die Entwickler durch die<br />
Zuordnung von vier Tiers zu entwirren<br />
versuchen.<br />
im Unterverzeichnis »tests« beiliegen.<br />
Abschließend haben alle Frameworks das<br />
Framework-Buildsystem zu verwenden,<br />
das unter anderem Cmake vorschreibt.<br />
Inqlude<br />
Auf der Website Inqlude [12] sammeln<br />
die KDE-Entwickler neben ihren KDE<br />
Frameworks auch weitere Bibliotheken,<br />
die auf Qt aufbauen. Sie wollen so ein<br />
Verzeichnis schaffen, in dem Qt-Programmierer<br />
nach fertigen Komponenten für<br />
ihre Anwendungen suchen können (Abbildung<br />
5). Inqlude befindet sich derzeit<br />
Anzeige<br />
noch im Aufbau. Ungewiss ist auch, ob<br />
die Qt-Gemeinde das Verzeichnis annehmen<br />
wird.<br />
Das KDE-Team hat die Releasezyklen der<br />
Plasma Workspaces (also des eigentlichen<br />
Desktops), der Frameworks und<br />
der An wendungen entkoppelt [13]. Die<br />
genannten Teile sollen sogar Releases<br />
überspringen dürfen, wenn die zuständigen<br />
Programmierer eine längere Entwicklungszeit<br />
benötigen. Das soll besonders<br />
beim Portieren von Anwendungen auf die<br />
KDE Frameworks 5 helfen.<br />
Die erste Betaversion der KDE Frameworks<br />
5 wird nach den derzeitigen Plä-<br />
KDE Frameworks 04/2014<br />
Software<br />
www.linux-magazin.de<br />
69<br />
Geschäftsbedingungen<br />
Die Überarbeitung der KDE-Bibliotheken<br />
dauert schon fast drei Jahre an. Beteiligt<br />
sind ungefähr 20 Programmierer,<br />
darunter sowohl bezahlte Vollzeit-Entwickler<br />
als auch freiwillige Helfer [6].<br />
Und die haben ganze Arbeit geleistet:<br />
Die Frameworks 5 bestanden zum Redaktionsschluss<br />
aus über 50 einzelnen<br />
Frameworks, darunter 19 Qt-Addons,<br />
die außer zu Qt keine weiteren Abhängigkeiten<br />
aufweisen, <strong>neu</strong>n die ihrerseits<br />
nur unabhängige Bibliotheken benötigen<br />
(Tier 2), und 31 mit komplexeren Abhängigkeiten<br />
(Tier 3 und 4).<br />
Ein aktuelles Abhängigkeitsdiagramm<br />
zeigt Abbildung 4 (siehe auch [9]), eine<br />
Liste mit allen Frameworks und den jeweiligen<br />
Maintainern bietet [10]. Die<br />
Entwicklung läuft strikt nach den vom<br />
KDE-Projekt selbst aufgestellten Frameworks<br />
Policies ab [7].<br />
Dabei folgen die Bibliotheken zunächst<br />
einem einheitlichen Code-Stil, der sich<br />
an den Gepflogenheiten des Qt-Projekts<br />
orientiert [11]. Das soll vor allem Qt-<br />
Programmierern den Einstieg und die<br />
Nutzung der Frameworks erleichtern.<br />
Zudem muss ein Framework eine ganz<br />
bestimmte Verzeichnisstruktur besitzen.<br />
Das Unterverzeichnis »docs« enthält etwa<br />
die Dokumentation, unter »examples«<br />
finden Programmierer Beispielcode.<br />
Um eine hohe Qualität zu garantieren,<br />
müssen Entwickler ihre Frameworks<br />
automatisierten Unit-Tests unterwerfen.<br />
Geeignete Tests müssen dem Framework
Software<br />
www.linux-magazin.de KDE Frameworks 04/2014<br />
70<br />
Abbildung 5: Die Seite Inqlude führt bereits jetzt zahlreiche interessante Bibliotheken für Qt-Programmierer<br />
auf, darunter nicht nur die des KDE-Teams.<br />
nen am 5. April 2014 erscheinen, die erste<br />
stabile Version am 1. Juni. Den aktuellen<br />
Stand aller Bibliotheken finden Interessierte<br />
im Git-Repository [14]. Die Archive<br />
auf dem KDE-Downloadserver enthielten<br />
bei Redaktionsschluss nur die bereits Anfang<br />
Januar veröffentlichte Tech-Preview<br />
[15], doch soll in den nächsten Tagen<br />
eine Alphaversion kommen. In der Preview<br />
tragen die Frameworks noch die<br />
Versionsnummer 4.95.0, die Bibliotheken<br />
basierten auf dem am 12. Dezember 2013<br />
veröffentlichten Qt 5.2.<br />
Später sollen alle überarbeiteten KDE-<br />
Bibliotheken die Versionsnummer 5 erhalten<br />
und sich neben der alten KDE<br />
Platform 4 installieren lassen [16]. Den<br />
aktuellen Entwicklungsstand verrät eine<br />
Seite im KDE-Wiki [17]. Die zu erledigenden<br />
Aufgaben bezeichnen die KDE-<br />
Entwickler darin als Epics. Eine Schrittfür-Schritt-Installationsanleitung<br />
für die<br />
Vorabversionen liefert ebenfalls das KDE-<br />
Wiki [18].<br />
Fertige Pakete von den Alphaversionen<br />
wird es laut Aleix Pol vom KDE-Projekt<br />
vorerst aber wohl nicht geben: „KDE<br />
Frameworks sind genau das, Frameworks.<br />
Ich weiß, es ist nicht aufregend,<br />
aber das geht etwas weiter als Tar-Files.<br />
Eine Alpha ist fast released und es ist zu<br />
erwarten, dass die verschiedenen Distributionen<br />
Pakete erstellen. Ich weiß, dass<br />
Kubuntu und Arch <strong>Linux</strong> bereits welche<br />
bereitstellen, bei den anderen bin ich<br />
nicht sicher. Unser Ziel ist es, die einzelnen<br />
auf Qt basierenden Projekte für die<br />
Frameworks zu interessieren, sodass sie<br />
diese nutzen können. Es ist nicht wirklich<br />
eine Enduser-Geschichte. Ich glaube,<br />
die erste Software, die die KDE Frameworks<br />
5 nutzen wird, ist die erste Alpha<br />
der Plasma Workspaces.“<br />
Fazit<br />
Die Entwickler der KDE Frameworks 5<br />
scheinen auf einem guten Weg: Die Bibliotheken<br />
werden plattformunabhängig,<br />
schlanker und modularer. Programmierer<br />
können sich zudem gezielt die Frameworks<br />
herauspicken, die ihr Programm<br />
benötigt, und müssen keinen dicken<br />
Klumpen mit ungenutzten Bibliotheken<br />
mehr ausliefern. Von der Übereignung<br />
des Quellcodes an das Qt-Projekt profitieren<br />
alle Qt- und KDE-Entwickler. Denen<br />
helfen auch die einheitlichen, an Qt<br />
angelehnten Entwicklungsrichtlinien und<br />
Werkzeuge.<br />
Allerdings bestehen die KDE Frameworks<br />
5 noch immer aus über 50 einzelnen Teilen,<br />
in denen sich Entwickler erst einmal<br />
zurechtfinden müssen. Die Einteilung in<br />
Types und Tiers verwirrt eher, als dass<br />
sie hilft – eine einfache Liste mit allen<br />
vorhandenen Bibliotheken und ihren Abhängigkeiten<br />
wäre übersichtlicher und<br />
auch aussagekräftiger.<br />
Laut Aleix Pol sprechen für diese Einteilungen<br />
jedoch zwei Gründe: „Sie half uns<br />
bei der Kommunikation und gab uns ein<br />
Bild, wohin die Dinge liefen. Darüber hinaus<br />
möchte niemand die Abhängigkeiten<br />
von KIO auflisten“ [19] (siehe auch<br />
KIO in Abbildung 3). (mfe) n<br />
Infos<br />
[1] Stuart Jarvis, „Repositioning the KDE<br />
Brand“: [http:// dot. kde. org/ 2009/ 11/ 24/<br />
repositioning‐kde‐brand]<br />
[2] KDE-Community-Wiki – Frameworks/Terminology:<br />
[http:// community. kde. org/<br />
Frameworks/ Terminology]<br />
[3] Qt Governance Model: [http:// qt‐project.<br />
org/ wiki/ The_Qt_Governance_Model]<br />
[4] Jos Poortvliet, „Qt 5.2 – Foundation for<br />
KDE Frameworks 5“:<br />
[http:// dot. kde. org/ 2013/ 12/ 17/ qt‐52‐<br />
foundation‐kde‐frameworks‐5]<br />
[5] KDE-Community-Wiki – Contributing to<br />
Qt 5 epic: [http:// community. kde. org/<br />
Frameworks/ Epics/ Contributions_to_Qt5]<br />
[6] Jos Poortvliet, „Frameworks 5 Tech Preview“:<br />
[http:// dot. kde. org/ 2014/ 01/ 07/<br />
frameworks‐5‐tech‐preview]<br />
[7] KDE-Community-Wiki – Frameworks/<br />
Policies: [http:// community. kde. org/<br />
Frameworks/ Policies]<br />
[8] KIO-API: [http:// api. kde. org/ 4. x‐api/<br />
kdelibs‐apidocs/ kio/ html/ index. html]<br />
[9] Dependencies Graph der KDE Frameworks<br />
Version 5:<br />
[http:// agateau. com/ tmp/ kf5/ kf5. png]<br />
[10] KDE-Community-Wiki – Frameworks/List:<br />
[http:// community. kde. org/ Frameworks/<br />
List]<br />
[11] Jos Poortvliet, „KDE Frameworks 5: A Big<br />
Deal for Free Software“:<br />
[http:// www. linux. com/ news/ software/<br />
applications/ 755768‐kde‐frameworks‐5‐<br />
a‐big‐deal‐for‐free‐software]<br />
[12] Inqlude: [http:// inqlude. org]<br />
[13] Howard Chan, „KDE Release Structure<br />
Evolves“: [http:// dot. kde. org/ 2013/ 09/<br />
04/ kde‐release‐structure‐evolves]<br />
[14] Git-Repository: [https:// projects. kde. org/<br />
projects/ frameworks]<br />
[15] Quellcode der Tech-Preview:<br />
[http:// download. kde. org/ unstable/<br />
frameworks/ 4. 95. 0/]<br />
[16] KDE-Community-Wiki – Frameworks/Coinstallability:<br />
[http:// community. kde. org/<br />
Frameworks/ Coinstallability]<br />
[17] KDE-Community-Wiki – Frameworks/Epics:<br />
[http:// community. kde. org/ Frameworks/<br />
Epics]<br />
[18] KDE-Community-Wiki – Frameworks/<br />
Building: [http:// community. kde. org/<br />
Frameworks/ Building]<br />
[19] Die Abhängigkeiten von KIO:<br />
[http:// agateau. com/ tmp/ kf5/<br />
tier3‐kio‐simplified. png]
Software<br />
www.linux-magazin.de Tooltipps 04/2014<br />
72<br />
Werkzeuge im Kurztest<br />
Tooltipps<br />
Ajenti 1.2.17<br />
Web-basiertes Adminpanel<br />
Quelle: [http:// ajenti. org]<br />
Lizenz: LGPLv3<br />
Alternativen: Webmin<br />
Uncsv 0.9.1<br />
CSV-Dateien konvertieren<br />
Quelle: [http:// tamentis. com/ projects/ uncsv]<br />
Lizenz: ISC<br />
Alternativen: keine<br />
Haveged 1.8<br />
Entropie-Daemon<br />
Quelle: [http:// www. issihosts. com/ haveged]<br />
Lizenz: GPLv3<br />
Alternativen: Timer-entropyd, Audio-Entropyd<br />
Die meisten Admins nutzen zur Fernwartung<br />
ihrer <strong>Linux</strong>-Server SSH auf der<br />
Kommandozeile. Wer eine grafische<br />
Schnittstelle bevorzugt, der sollte sich<br />
Ajenti anschauen. Das Python-Programm<br />
stellt ein komfortables Adminpanel per<br />
Webbrowser zur Verfügung. Auf der Projekt-Homepage<br />
gibt es Pakete für aktuelle<br />
Distributionen.<br />
In der Voreinstellung gelangen Nutzer<br />
über Port 8000 zum Ajenti-Dashboard.<br />
Optional läuft das Ganze über HTTPS.<br />
Das Panel zeigt den aktuellen Status an<br />
und blendet die Uptime, CPU- und RAM-<br />
Auslastung sowie die Swap-Nutzung ein.<br />
Über den linken Rand erreichen Admins<br />
allgemeine Systemeinstellungen und die<br />
installierten Dienste. Ajenti unterstützt<br />
Bind, Samba, Cron, DHCP, NFS, IPtables,<br />
MySQL, Apache und mehr.<br />
In der Abteilung »System« fragen die Benutzer<br />
den Festplattenplatz ab, inspizieren<br />
die installierten Pakete, definieren<br />
<strong>neu</strong>e Firewallregeln oder bearbeiten die<br />
Hosts-Datei. Unter »Werkzeuge« finden<br />
sie Dateimanager, einen Texteditor, einen<br />
Scheduler und einen Logviewer.<br />
Über einen eigenen Terminal-Emulator<br />
öffnet das Adminpanel sogar eine Shell<br />
auf dem Server.<br />
★★★★★ Ajenti ist eine komfortable<br />
Oberfläche für die Remote-Administration<br />
von <strong>Linux</strong>-Servern, die selbst Kommandozeilenprofis<br />
gefallen dürfte. n<br />
CSV-Dateien haben sich als gängiges<br />
Austauschformat zwischen Datenbanken<br />
und Tabellenkalkulationen etabliert.<br />
Anführungszeichen begrenzen die Felder<br />
und als Trennzeichen kommt meist das<br />
Komma zum Einsatz.<br />
Um CSV-Dateien mit anderen Programmen<br />
weiterzuverarbeiten, ist oft Handarbeit<br />
nötig. Uncsv übernimmt den Job,<br />
entfernt Escape-Sequenzen sowie Anführungszeichen<br />
und ersetzt den Feldtrenner<br />
durch Pipes. Außerdem löscht das Tool<br />
Zeilenumbrüche und -vorschübe aus den<br />
Feldern oder tauscht sie durch andere,<br />
frei wählbare Symbole aus.<br />
Mit im Paket ist das Tool Csv, das sich für<br />
den Rückweg empfiehlt. Es wechselt das<br />
Pipezeichen wieder aus und fügt Kommata<br />
ein. Bei Bedarf baut es auch Anführungszeichen<br />
und Escape-Sequenzen<br />
ein. Im Gegensatz zu Uncsv kann Csv nur<br />
Zeilen mit maximal 65 536 Zeichen verarbeiten.<br />
Die Zeilenenden selbst tasten<br />
beide Programme nicht an.<br />
Das Ergebnis können Benutzer an Programme<br />
wie Awk oder Cut weiterreichen<br />
oder mit eigenen Skripten automatisiert<br />
verarbeiten, ohne auf die Sonderbehandlung<br />
von Quotas oder anderen Sonderzeichen<br />
Rücksicht nehmen zu müssen.<br />
★★★★★ Wer CSV-Dateien ohne Nachbearbeitung<br />
an weitere Programme aushändigt,<br />
der sollte mit Uncsv und Csv<br />
experimentieren.<br />
n<br />
Zufallszahlen sind die Basis für sichere<br />
Verschlüsselung. Der Daemon Haveged<br />
sorgt mit Hilfe des Havege-Algorithmus<br />
(Hardware Volatile Entropy Gathering<br />
and Expansion) dafür, dass der Entropie-<br />
Pool groß genug ist, und zapft dazu den<br />
Prozessorzustand an. Der Dienst erfordert<br />
Rootrechte, da er seine Daten nach<br />
»/dev/random« beziehungsweise »/dev/<br />
urandom« schreibt.<br />
Will der Anwender eine eigene Datei mit<br />
Zufallswerten erzeugen, so startet er das<br />
Programm mit dem Parameter »‐r« gefolgt<br />
von der Dateigröße in KByte. Hinter »‐f«<br />
gibt er außerdem die Zieldatei an; andernfalls<br />
schreibt Haveged seine Daten<br />
ins File »sample«. In der Voreinstellung<br />
hält das Tool einen Buffer von 512 KByte<br />
mit Zufallswerten vor. Hinter der Aufrufoption<br />
»‐b« beeinflussen Benutzer<br />
diese Buffergröße.<br />
Weitere Konfigurationsparameter und<br />
Anwendungsbeispiele, zum Beispiel zum<br />
Anfertigen von Luks-Schlüsseldateien,<br />
beschreibt die umfangreiche Manpage.<br />
Haveged erhält fortlaufend <strong>neu</strong>e Features.<br />
Neuere Versionen sind sogar auf<br />
Nicht-<strong>Linux</strong>-Systemen lauffähig, enthalten<br />
einen Onlinetest und ermöglichen<br />
es, die PID-Datei an einem anderen Ort<br />
abzulegen.<br />
★★★★★ Haveged eignet sich gut dazu,<br />
komplexe Zufallszahlen auf dem eigenen<br />
<strong>Linux</strong>-System zu erzeugen. n
Software<br />
www.linux-magazin.de Tooltipps 04/2014<br />
74<br />
EDB 0.9.20<br />
Debugger für Binärdateien<br />
Quelle: [http:// codef00. com/ projects#<br />
debugger]<br />
Lizenz: GPLv2<br />
Alternativen: GDB, Eclipse, Ccdebug<br />
Prun<br />
Jobverwaltung für Cluster<br />
Quelle: [https:// github. com/ abudnik/ prun]<br />
Lizenz: Apache<br />
Alternativen: Task Cruncher<br />
Tcpreplay 4.0.0<br />
Mitgeschnittenen TCP-Datenverkehr wiedergeben<br />
Quelle: [http:// tcpreplay. appneta. com]<br />
Lizenz: GPLv3<br />
Alternativen: Netsniff-ng, Preplay<br />
Funktioniert ein Programm nicht wie gewünscht,<br />
dann unterstützt ein Debugger<br />
bei der Fehlersuche. Kommandozeilenfans<br />
greifen unter <strong>Linux</strong> gerne zum GDB<br />
(GNU Debugger). Wer es lieber grafisch<br />
mag, der sollte Evan’s Debugger, kurz<br />
EDB, eine Chance geben. Das GUI benötigt<br />
Qt 4.6 oder <strong>neu</strong>er und geht vor allem<br />
bei der Diagnose solcher Anwendungen<br />
zur Hand, für die der Quellcode nicht zur<br />
Verfügung steht.<br />
Nachdem der Entwickler das Binärprogramm<br />
in EDB geladen hat, sieht er den<br />
Assembler-Code, eine Liste der CPU-<br />
Register und den aktuellen Inhalt des<br />
Stacks. Die Qt-Anwendung bietet zudem<br />
einen Bookmarks-Bereich, der Codezeilen<br />
präsentiert, die der Nutzer als Lesezeichen<br />
markiert hat. Zu den hier gelisteten<br />
Zeilennummern gelangt er mit einem<br />
Mausklick, um sie zu kommentieren. Im<br />
Assembler-Code setzt er Breakpoints,<br />
springt zu bestimmten Adressen oder<br />
zum Beginn einer Funktion, bearbeitet<br />
Bytes und analysiert zusammenhängende<br />
Bereiche.<br />
EDB ist modular aufgebaut, Plugins<br />
erweitern den Funktionsumfang. Der<br />
Programmierer Evan Teran hat seinem<br />
Debugger bereits zahlreiche Erweiterungen<br />
beigelegt, beispielsweise einen<br />
Breakpoint-Manager, eine Opcode-Suchfunktion<br />
und einen Heap-Analyser.<br />
Wer eigene Plugins beisteuern möchte,<br />
der sollte den Entwickler kontaktieren,<br />
da sich die Dokumentation zu diesem<br />
Thema ausschweigt.<br />
★★★★★ EDB besticht durch seine<br />
Funktionsvielfalt und die übersichtliche<br />
grafische Oberfläche. Der Debugger ist<br />
intuitiv zu bedienen.<br />
n<br />
Prun steuert als Cluster-Job-Scheduler<br />
das parallele Ausführen von Tasks auf<br />
<strong>Linux</strong>- und anderen Unix-Systemen. Das<br />
Python-Tool überwacht die Ressourcen,<br />
verteilt Prioritäten und verwaltet Warteschlangen.<br />
Es besteht aus zwei Komponenten,<br />
dem Worker und dem Master,<br />
die Hand in Hand arbeiten. Während<br />
»pworker« im Hintergrund sich um die<br />
eigentliche Ausführung des Jobs kümmert,<br />
übernimmt »pmaster« die Jobverwaltung<br />
und die Kommunikation mit<br />
dem Anwender. Letztgenanntes Tool behält<br />
den Job immer im Auge und startet<br />
ihn gegebenenfalls auf einem anderen<br />
Rechner <strong>neu</strong>, etwa wenn Hardwareprobleme<br />
auftreten.<br />
Um ein Programm als Job im Cluster zu<br />
behandeln, legt der Admin eine Steuerdatei<br />
mit der Endung ».job« an. Diese Files<br />
folgen der Json-Notation. Sie enthalten<br />
alle notwendigen Metadaten, beispielsweise<br />
den Pfad zur ausführbaren Programmdatei,<br />
die Priorität, eine Liste aller<br />
Clusterhosts sowie verschiedene Timeout-Einstellungen.<br />
Prun nimmt als Jobs<br />
nur Shellskripte, Python-, Java-, Rubyoder<br />
Javascript-Anwendungen entgegen.<br />
Um welchen Dateityp es sich handelt,<br />
definiert der Admin in der ».job«-Datei<br />
hinter dem Parameter »language«.<br />
Detaillierte Informationen zum Aufbau<br />
dieser Files und etliche Beispiele liefert<br />
die Datei »README«. Sie erklärt auch alle<br />
Parameter zur Steuerung der »pworker«-<br />
und »pmaster«-Prozesse.<br />
★★★★★ Prun erleichtert die Jobverwaltung<br />
in High-Availability-Cluster-Umgebungen.<br />
Vor dem ersten Aufruf sollten<br />
Anwender die mitgelieferte Dokumentation<br />
gründlich studieren.<br />
n<br />
Diese Toolsammlung enthält Werkzeuge,<br />
die aufgezeichneten Netzwerktraffic bearbeiten<br />
und abspielen. Als Datenquelle<br />
akzeptieren die Programme Dateien im<br />
Pacp-Format, das gängige Sniffer wie<br />
etwa Tcpdump oder Wireshark zum<br />
Speichern nutzen.<br />
Bei der Wiedergabe kann der Anwender<br />
das Tool Tcpreplay wahlweise im<br />
Client- oder im Servermodus betreiben.<br />
Als Client wiederholt es nur die im Pcap-<br />
Archiv enthaltenen Anfragen, im Servermodus<br />
sendet es auch die Antwortpakete<br />
er<strong>neu</strong>t. In der Voreinstellung läuft alles<br />
in der gleichen Geschwindigkeit wie die<br />
Aufzeichnung ab. Der Parameter »‐‐multiplier«<br />
beschleunigt oder verlangsamt das<br />
Abspielen, und mit »‐‐pps« oder »‐‐oneatatime«<br />
steuern Benutzer das Geschehen<br />
noch gezielter.<br />
Mit im Paket dabei sind die beiden Programme<br />
Tcprewrite, das Pcap-Dateien bearbeitet,<br />
und Tcpreplay-edit, das Datenpakete<br />
während des Einspielens modifiziert.<br />
Beide haben einen ähnlichen Funktionsumfang<br />
und ermöglichen Änderungen<br />
wie etwa das Port-Remapping oder die<br />
Anonymisierung von IP-Adressen.<br />
Der Präprozessor, den Tcpreplay und<br />
Tcprewrite für ihre Anpassungen nutzen,<br />
steht auch als eigenes Tool namens<br />
Tcpprep zur Verfügung. Damit integrieren<br />
Anwender Tcpreplay-Manipulationen in<br />
eigene Skripte. Das Diagnosewerkzeug<br />
Tcpcapinfo hilft dabei, defekte PCAP-<br />
Dateien aufzuspüren.<br />
★★★★★ Die Tcpreplay-Toolsammlung<br />
ist so umfassend, dass sich vor dem Einsatz<br />
ein Besuch im Wiki empfiehlt. Neben<br />
einer Anleitung finden Benutzer hier<br />
auch Beispiele. (U. Vollbracht/hej) n
Aus dem Alltag eines Sysadmin: Mod_bw für Apache<br />
Die mit den Rüsseln<br />
Einführung 04/2014<br />
Sysadmin<br />
Ein rechenstarker Webserver hilft wenig, wenn sich zu viele Benutzer um die Bandbreite seiner Netzanbindung<br />
balgen. Sysadmin-Kolumnist Charly hat sich entschieden: Große Sauger kriegen an seiner Tränke künftig die<br />
schlechteren Plätze. Charly Kühnast<br />
www.linux-magazin.de<br />
75<br />
Ich habe einen Webserver, der mit 100<br />
MBit/s angebunden ist und auf dem Dutzende<br />
virtuelle Hosts laufen. Einer davon<br />
bietet ISO-Images von <strong>Linux</strong>-Distributionen<br />
zum Download an, die teils mehrere<br />
GByte groß sind. Wenn genug Leute zeitgleich<br />
daran saugen, gibt es eine Rohrverstopfung<br />
– die Downloads drängen den<br />
rest lichen HTTP-Verkehr an die Wand, die<br />
Apache-Antwortzeiten gehen in die Knie<br />
und die User werden unleidig.<br />
Meine Rettung hört auf den Namen Libapache2-mod-bw<br />
[1] oder ähnlich, je nach<br />
Distribution. Das „bw“ steht für Bandwidth,<br />
und genau deren Verbrauch kann<br />
ich damit steuern. Abbildung 1 zeigt als<br />
Beispiel einen Ausschnitt aus einer Apache-Konfiguration,<br />
das demonstriert, was<br />
mit dem Modul alles machbar ist.<br />
Es kann kaum überraschen, dass »BandwidthModule<br />
On« die Bandbreitenregulierung<br />
für diesen virtuellen Host<br />
einschaltet. Dagegen sieht »ForceBandwidthModule<br />
On« ein wenig doppelt<br />
gemoppelt aus. Die Zeile ist trotzdem<br />
notwendig, denn nur sie zwingt alle Verbindungen<br />
durch Mod_bw und nicht nur<br />
ausgewählte Mime-Types.<br />
Abbildung 1: Apache-Beispielkonfiguration mit Mod_bw-Direktiven.<br />
Die beiden »Bandwidth«-<br />
Zeilen geben die maximale<br />
Geschwindigkeit an, in der<br />
Apache seine Daten an die<br />
definierten Clients sendet.<br />
Hier muss ich die Reihenfolge<br />
beachten, denn es gilt „first<br />
Match“: Die erste auf einen<br />
Client zutreffende Bandwidth-<br />
Regel gewinnt, ich muss also<br />
spezielle Regeln vor allgemeineren<br />
definieren.<br />
Schreibt der Admin als maximale<br />
Geschwindigkeit eine<br />
Null in die Konfiguration wie in der ersten<br />
Bandwidth-Zeile, gibt es keine Begrenzung<br />
– das Netz 10.50.0.0/16 hat<br />
al so freie Bahn. Für alle anderen Clients<br />
gilt das in der nächsten Zeile festgelegte<br />
Limit von 20 MBit/s. Achtung, hier liegt<br />
ein Stolperstein im Weg: Die Geschwindigkeit<br />
muss man in Bytes pro Sekunde<br />
einstellen, deshalb der Wert 2 621 440.<br />
Die Großen trifft’s hart<br />
»LargeFileLimit« gibt mir die Möglichkeit,<br />
die Geschwindigkeit beim Download<br />
großer Dateien<br />
zu drosseln, während<br />
der Host kleine mit der<br />
normalen ausliefert.<br />
Drei Parameter muss<br />
ich angeben: Zuerst<br />
kommt der Dateityp,<br />
im Beispiel ».iso«,<br />
Mod_bw würde hier<br />
auch ein Asterisk als<br />
Platzhalter akzeptieren.<br />
Danach kommt<br />
die Dateigröße in Byte,<br />
oberhalb der die Regel<br />
greift – die Angabe<br />
2 097 152 entspricht<br />
2 MByte. Zuletzt lege ich die Geschwindigkeit<br />
für die Schwergewichte fest. Ich<br />
entscheide mich für 5 MBit/s, in Bytes<br />
pro Sekunde bedeutet das 655 360.<br />
Auch die Zahl gleichzeitiger Verbindungen<br />
darf ich begrenzen. Die Null in der<br />
ersten »Max Connection«-Zeile setzt dem<br />
Netz 10.50.0.0/16 keine Limits, für alle<br />
anderen gelten 32 Parallelverbindungen<br />
als Obergrenze. Ist sie ausgeschöpft, antwortet<br />
der Apache normalerweise mit<br />
dem Fehlercode 503 (Service unavailable),<br />
was mir reichlich unspezifisch erscheint.<br />
Mod_bw bietet aber die Möglichkeit,<br />
einen anderen Code festzulegen, ich<br />
nehme 510 und lasse eine selbst gestaltete<br />
Fehlerseite zurückgeben. (jk) n<br />
Infos<br />
[1] Mod_bw: [http:// ivn. cl/ category/ apache/<br />
# bandwidth]<br />
Der Autor<br />
Charly Kühnast administriert<br />
Unix-Syste me im Rechenzentrum<br />
Niederrhein. Zu seinen<br />
Aufgaben gehören Sicherheit<br />
und Verfügbarkeit der<br />
Firewalls und der DMZ.
Sysadmin<br />
www.linux-magazin.de ATA over Ethernet 04/2014<br />
76<br />
Ein virtuelles Raid im Netz mit ATA over Ethernet – als Eigenbau<br />
Im Netz gelagert<br />
Wer vom „Speichern im Netz“ spricht, meint oft das Einbinden von Geräten via I-SCSI. Dieser Artikel stellt die<br />
einfache Alternative ATA over Ethernet vor, die sich schnell zu einem Software-Raid ausbauen lässt. Dennis Schreiber<br />
© Olena Bilion, 123RF.com<br />
Ganz ähnlich wie I-SCSI ist auch ATA<br />
over Ethernet (AOE, [1]) ein Protokoll<br />
für den Zugriff auf Datenträger übers<br />
Ethernet. Der Zugriff auf die Datenträger<br />
erfolgt mit ATA-Befehlen, die das Protokoll<br />
zur Übertragung über das Netzwerk<br />
in Datenpakete verpackt und auf der<br />
Gegenseite wieder zusammenbaut (Abbildung<br />
1). Diese Vorgehensweise ermöglicht<br />
einen vergleichsweise Hardware-nahen<br />
Zugriff auf Speichergeräte über das<br />
Netzwerk hinweg.<br />
Die genauen Spezifikationen des Protokolls<br />
lassen sich auf der Webseite [1]<br />
nachlesen: Ganz ähnlich wie bei I-SCSI<br />
bezeichnet die Literatur das System, das<br />
die physikalischen Datenträger bereitstellt,<br />
als Target. Initiator heißt das System,<br />
das die Datenträger einbindet.<br />
Benötigte Komponenten<br />
Für den Betrieb eines AOE-Setups ist nicht<br />
viel Software erforderlich. Auf dem Target<br />
muss der Administrator nur das Paket<br />
»vblade« installieren, auf Debian-Systemen<br />
geht das schnell mit »aptitude install<br />
vblade«. Nicht weniger einfach läuft die<br />
Prozedur auf dem Initiator, nur sind hier<br />
die AOE-Tools erforderlich (»aptitude install<br />
aoe‐tools«). Jetzt steht das Kernelmodul<br />
»aoe« bereit, »modprobe aoe« lädt es.<br />
Soll es beim Start standardmäßig geladen<br />
werden, ist ein entsprechender Eintrag in<br />
der Datei »/etc/modules« erforderlich.<br />
Bereitstellung von<br />
Datenträgern<br />
Das Bereitstellen von Datenträgern oder<br />
Partitionen übernimmt das Programm<br />
Vblade. Es erwartet als Parameter eine<br />
Shelf-Nummer (Shelf steht für Regal oder<br />
Ablage), eine Slot-Nummer (Einschub),<br />
die Netzwerkschnittstelle, über welche<br />
die Bereitstellung erfolgen soll, sowie<br />
die Angabe der Partition oder des Datenträgers.<br />
Auch eine Datei bereitzustellen,<br />
zum Beispiel Raw-Images, ist möglich.<br />
Die Shelf- und die Slot-Nummer oder de-<br />
ren Kombination müssen allerdings im<br />
Netzwerk eindeutig sein.<br />
Neben Optionen für die schreibgeschützte<br />
Bereitstellung und Einstellungen des Puffers<br />
oder der Zugriffsmodi ist auch die<br />
Angabe von MAC-Adressen als kommaseparierte<br />
Liste möglich. Das funktioniert<br />
als Whitelist: Nur Computer mit einer<br />
der angegebenen MAC-Adressen haben<br />
Zugriff auf die Daten.<br />
Zu Testzwecken bietet es sich an, Raw-<br />
Images zu verwenden. Der folgende Befehl<br />
erzeugt ein Abbild mit einer Größe<br />
von 10 GByte:<br />
dd if=/dev/zero of=/test/raw_image.rawU<br />
bs=1M count=10000<br />
Wer es lieber mit realen Datenträgern<br />
probieren möchte, setzt statt des Image<br />
»/test/raw_image.raw« einfach das gewünschte<br />
Device ein, etwa »/dev/sdc1«<br />
für die erste Partition der als »sdc« eingebundenen<br />
Festplatte.<br />
Shelfs und Slots<br />
Um das soeben erzeugte Raw-Image auf<br />
dem Target über Shelf 2 und Slot 1 freizugeben,<br />
reicht ein einfaches:<br />
vblade 2 1 eth0 /test/raw_image.raw<br />
Wenn auf dem Initiator-System alle Voraussetzungen<br />
erfüllt sind, dann wird der<br />
Datenträger sofort sichtbar sein. Ist das<br />
nicht der Fall, dann sollte der Administrator<br />
den Befehl »aoe‐discover« aufrufen.<br />
Welche Datenträger dem System zur<br />
Verfügung stehen, zeigt »ls /dev/etherd«,<br />
DELUG-DVD<br />
Auf der DELUG-DVD finden Leser<br />
jeweils ein Tar-Archiv der zum Redakti-<br />
DELUG-DVD<br />
onsschluss <strong>neu</strong>esten Ausgabe von Vblade und<br />
der AOE-Tools.
Client/Target 1<br />
Client/Target 2<br />
Client/Target 3<br />
detailliertere Angaben erhält der Administrator<br />
durch den Aufruf von »aoe‐stat«<br />
(Abbildung 2).<br />
Vblade zu verwenden reicht für Testzwecke,<br />
wobei der Admin das Programm<br />
im Vordergrund ausführt (Abbruch mit<br />
[Strg]+[C]) und jede Menge Debug-<br />
Informationen erhält. Als Hintergrunddienst<br />
steht »vbladed« zur Verfügung. In<br />
beiden Fällen sind bereitgestellte Daten<br />
nach einem Neustart jedoch erst mal wieder<br />
verschwunden.<br />
Wer das Einbinden von Initiatoren und<br />
Targets automatisieren will, greift auf<br />
»vblade‐persist« zurück. Das Programm<br />
ist jedoch in einem separaten Paket enthalten<br />
und will erst per »aptitude install<br />
vblade‐persist« installiert sein. Um das<br />
oben erzeugte Raw-Image permanent bereitzustellen,<br />
bedarf es im ersten Schritt<br />
eines persistenten Exports:<br />
vblade‐persist setup 2 1 eth0 /test/U<br />
Initiator<br />
Raid<br />
Freigabe:<br />
NFS, Samba, ...<br />
Abbildung 1: Raid-Devices im Netz mit ATA over Ethernet folgen einem ähnlichen<br />
Schema wie beispielsweise I-SCSI: Es gibt Initiatoren und Targets.<br />
ohne Neustart umgehend<br />
bereitzustellen,<br />
kann er es auch mit<br />
»vblade‐persist start<br />
2 1« sofort aktivieren.<br />
Einen Überblick über<br />
alle persistenten AOE-<br />
Exporte sowie deren<br />
Status gibt der Aufruf<br />
»vblade‐persist ls«.<br />
Netzwerk-Raid<br />
Wer im eigenen Netzwerk<br />
mehrere Computer<br />
vorhält, die ohnehin<br />
rund um die Uhr<br />
im Betrieb sind und<br />
außerdem über ungenutzte<br />
Speicherkapazitäten<br />
verfügen, mag<br />
sich wünschen, diese Ressourcen auch<br />
anderen PCs zur Verfügung zu stellen.<br />
Noch etwas weiter gedacht wird daraus<br />
schnell eine Art Raid-System, dessen<br />
Speicher der Admin zentral bereitstellt.<br />
Weil mehrere Computer involviert sind,<br />
bedarf es allerdings auch einiger Abwägungen<br />
hinsichtlich der Ausfallwahrscheinlichkeit,<br />
doch schon die Wahl eines<br />
geeigneten Raid-Levels nimmt der<br />
Thematik die Brisanz.<br />
Das folgende Beispiel erzeugt der Einfachheit<br />
halber einen Raid-5-Verbund.<br />
Im ersten Schritt hat der Admin auf drei<br />
Systemen jeweils ein Raw-Image erzeugt<br />
und zur Verfügung gestellt (vergleiche<br />
Abbildungen 1 und 2). Den Raid-Verbund<br />
erzeugt er einfach mit dem Kommando<br />
»mdadm« (Listing 1). Auf dem <strong>neu</strong> erzeugten<br />
Raid-Verbund lässt sich jetzt<br />
beispielsweise ein Ext-4-Dateisystem erzeugen:<br />
Damit der Administrator bei einem Ausfall<br />
des Initiators ohne großen Zeitverlust<br />
den Raid-Verbund auf einem anderen<br />
System reaktivieren kann, sollte er sich<br />
eine entsprechende Mdadm-Konfigurationsdatei<br />
»mdadm.conf« anlegen und<br />
sicher aufbewahren (Listing 2).<br />
Experimentierfreudige Administratoren<br />
greifen statt zu Mdadm zu Btr-FS, weil<br />
es in der Handhabung deutlich einfacher<br />
als Mdadm ist, dabei aber mehr Möglichkeiten<br />
mitbringt, zum Beispiel Inline-<br />
Komprimierung oder Snapshots. Listing<br />
3 zeigt, wie schnell das Einrichten eines<br />
Raid-Verbunds mit Btr-FS gelingt.<br />
Datensicherung und<br />
Virtualisierung<br />
Wer öfter Datenträger-Sicherungen übers<br />
Netzwerk anfertigen muss (wie das beispielsweise<br />
in der Datenforensik häufig<br />
der Fall ist), wird besonderen Gefallen<br />
an AOE finden: Das Bereitstellen eines<br />
Datenträgers über das Netzwerk ist verglichen<br />
mit I-SCSI deutlich schneller<br />
erledigt. Auch im Vergleich zu einer Sicherung<br />
über Netcat in Verbindung mit<br />
Dd oder Ewfacquire ist AOE wesentlich<br />
komfortabler. Und Forensiker freuen sich,<br />
weil das beliebte Sicherungsprogramm<br />
Guymager [2] AOE-Geräte auf Anhieb<br />
erkennt (Abbildung 3).<br />
Die Freude trübt jedoch ein wenig, dass<br />
Vblade bisher neben Debian lediglich<br />
auf der Grml-CD [3] sowie in Caine [4]<br />
in der Version 5 enthalten ist. Für andere<br />
Distributionen müssen Anwender<br />
bisher auf die Archive von Sourceforge<br />
[5] zurückgreifen. Auf Anfrage an die<br />
Listing 1: Mdadm erzeugt den Raid<br />
01 mdadm ‐‐create /dev/md0 ‐‐auto md ‐‐level=5<br />
‐‐raid‐devices=3 /dev/etherd/e1.1 /dev/etherd/e2.1<br />
/dev/etherd/e3.1<br />
02 <br />
03 mdadm: Defaulting to version 1.2 metadata<br />
04 mdadm: array /dev/md0 started.<br />
ATA over Ethernet 04/2014<br />
Sysadmin<br />
www.linux-magazin.de<br />
77<br />
raw_image.raw<br />
Hierbei muss der Admin absolute Pfade<br />
für den Datenträger oder die Datei verwenden.<br />
Danach markiert er das Device<br />
mit »vblade‐persist auto 2 1« für<br />
den automatischen Start. Um es auch<br />
mkfs.ext4 ‐L nwraid /dev/md0<br />
Listing 2: »mdadm.conf«<br />
01 DEVICE /dev/etherd/e*.*<br />
02 # auto‐create devices with Debian standard<br />
permissions<br />
03 CREATE owner=root group=disk mode=0660 auto=yes<br />
04 # automatically tag new arrays as belonging to the<br />
local system<br />
05 HOMEHOST <br />
06 # instruct the monitoring daemon where to send mail<br />
alerts<br />
07 MAILADDR root<br />
08 # definitions of existing MD arrays<br />
09 ARRAY /dev/md/0 devices=/dev/etherd/e1.1,/dev/etherd/<br />
Abbildung 2: »aoe-stat« zeigt, dass dem Initiator drei Datenträger zur Verfügung stehen.<br />
e2.1,/dev/etherd/e3.1
Sysadmin<br />
www.linux-magazin.de ATA over Ethernet 04/2014<br />
78<br />
einschlägigen Projekte hat bis zum Redaktionsschluss<br />
lediglich das Team von<br />
Deftlinux [6] mit einer Zusage für die<br />
nächste Version reagiert.<br />
Sichergestellte Systeme<br />
virtualisieren<br />
AOE ist auch für Virtualisierungszwecke<br />
ein hilfreiches Werkzeug. In Verbindung<br />
mit Xmount ([7], Listing 4) kann der<br />
Admin schnell ein gesichertes Image als<br />
virtuelle Festplatte ins Netzwerk stellen.<br />
Wie Xmount funktioniert, erklärt ein früherer<br />
Artikel des <strong>Linux</strong>-<strong>Magazin</strong>s [8].<br />
Forensiker, die ein Datenträgerabbild im<br />
Encase-Format mit Schreibsupport bereitstellen<br />
wollen, sollten dieses zunächst<br />
virtuell in ein Raw-Image umwandeln<br />
und das Raw-File anschließend als Datenträger<br />
einbinden.<br />
Auf einem entfernten Rechner kann die<br />
Virtualisierung des Systems beispielsweise<br />
über »qemu‐kvm« erfolgen. Im<br />
einfachsten Falle gelingt das mit<br />
qemu‐kvm ‐m 1024 ‐hda /dev/etherd/e2.3<br />
das bewusst auf mögliche Optimierungen<br />
verzichtet und keine Anpassungen des<br />
Gastsystems an die <strong>neu</strong>e Umgebung berücksichtigt,<br />
dafür aber deutlich klarere<br />
Fehlermeldungen ausgeben wird.<br />
Ausfall eines Targets oder<br />
des Initiators<br />
Fällt ein Target aus, ist dies im Prinzip<br />
nichts anderes als der Ausfall einer Festplatte<br />
in einem normalen Raid-Verbund.<br />
Der Admin braucht nur das defekte Gerät<br />
durch ein funktionstüchtiges auszutauschen,<br />
wobei er beispielsweise auch eine<br />
reale Festplatte durch ein Raw-Image auf<br />
einer anderen Maschine ersetzen kann.<br />
Der <strong>neu</strong>e Datenträger sollte nur der<br />
Größe des ursprünglichen entsprechen<br />
und ist schließlich über Vblade-persist<br />
freizugeben.<br />
Wer zum Beispiel das mit »e2.1« verbundene<br />
und ausgefallene Device lösen will,<br />
ruft den folgenden Befehl auf:<br />
mdadm /dev/md0 ‐‐remove /dev/etherd/e2.1<br />
Anschließend nimmt er das <strong>neu</strong>e Gerät,<br />
hier als »e4.1« dargestellt, in den Raid-<br />
Verbund auf:<br />
mdadm /dev/md0 ‐‐add /dev/etherd/e4.1<br />
Im Hintergrund startet die Software nun<br />
den Rebuild-Prozess, der je nach Größe<br />
des Systems einige Stunden in Anspruch<br />
nehmen kann.<br />
Fällt dagegen ein Initiator aus, dann<br />
lässt sich der Verbund einfach auf einem<br />
01 # mkfs.btrfs ‐d raid5 ‐m raid5 ‐L nwraid /dev/etherd/e1.1 /dev/etherd/e2.1 /dev/etherd/e3.1<br />
02 <br />
03 WARNING! ‐ Btrfs v0.20‐rc1 IS EXPERIMENTAL<br />
04 WARNING! ‐ see http://btrfs.wiki.kernel.org before using<br />
05 <br />
06 adding device /dev/etherd/e2.1 id 2<br />
07 adding device /dev/etherd/e3.1 id 3<br />
08 Setting RAID5/6 feature flag<br />
09 fs created label nwraid on /dev/etherd/e1.1<br />
10 nodesize 4096 leafsize 4096 sectorsize 4096 size 29.30GB<br />
11 Btrfs v0.20‐rc1<br />
Listing 3: Raid-Verbund mit Btr-FS<br />
Listing 4: Xmount<br />
01 # xmount ‐‐in ewf ‐‐out dd ‐‐cache daten.ovl Festplattenabbild.e?? /mnt/analyse<br />
02 # vblade 2 3 eth0 /mnt/analyse/Festplattenabbild.dd<br />
Abbildung 3: Auch das Forensik-Tool Guymager erkennt AOE-Laufwerke auf Anhieb und erlaubt ganze Datenträger<br />
schnell übers Netzwerk zu sichern.<br />
<strong>neu</strong>en System wieder aufbauen. Hierbei<br />
kann der Administrator auf die zuvor gesicherte<br />
Konfiguration zurückgreifen oder<br />
direkt Mdadm verwenden:<br />
mdadm ‐‐assemble /dev/md0 /dev/etherd/e1.1U<br />
/dev/etherd/e2.1 /dev/etherd/e3.1<br />
Im diesem Fall stellt der Befehl das Raid<br />
auf einem anderen System wieder her:<br />
Fazit<br />
ATA over Ethernet ist ein vielversprechendes<br />
Protokoll, das vieles vereinfacht<br />
und eigentlich mehr Beachtung verdient<br />
hat. Der richtige Einsatz kann Administratoren<br />
und Forensikern die Arbeit an<br />
einigen Stellen erleichtern – nicht selten<br />
lassen sich damit sogar Raid-Strukturen<br />
virtualisieren. (mfe)<br />
n<br />
Infos<br />
[1] AOE-Standard: [http:// support. coraid. com/<br />
documents/ aoer11. txt]<br />
[2] Guymager: [http:// guymager. sf. net]<br />
[3] Grml: [http:// www. grml. org]<br />
[4] Caine: [http:// www. caine‐live. net]<br />
[5] AOE-Tools bei Sourceforge:<br />
[http:// aoetools. sourceforge. net]<br />
[6] Deftlinux: [http:// www. deftlinux. net]<br />
[7] Xmount-Homepage:<br />
[http:// www. pinguin. lu]<br />
[8] Hans-Peter Merkel und Markus Feilner,<br />
„Kreuz und quer“: <strong>Linux</strong>-<strong>Magazin</strong> 10/09,<br />
S. 90<br />
Der Autor<br />
Dennis Schreiber ist Computer-Forensiker in der<br />
Thüringer Finanzverwaltung. Wenn er nicht gerade<br />
etwas mit Familie und Freunden unternimmt,<br />
beschäftigt er sich mit <strong>Linux</strong> und Computer-Forensik<br />
oder dreht eine Runde mit dem Motorrad.
Forum<br />
www.linux-magazin.de Winterrätsel 04/2014<br />
80<br />
Auflösung des Winterrätsels<br />
Nie sprachlos<br />
Nur wer sich in der Programmiersprachen-Historie auskennt, hatte eine Chance bei den Fragen des Winterrätsels<br />
aus Ausgabe 02/14. Diesmal gibt’s neben den kniffligen Fragen auch die Antworten – und den Namen des<br />
Rätselkönigs 2014, der neben dem Ruhm auch einen Videorecorder für den Raspberry Pi einstreicht. Nils Magnus<br />
Allein um eine zumindest größtenteils richtige Lösung für die 20 Aufgaben<br />
des Winterrätsels aus dem <strong>Linux</strong>-<strong>Magazin</strong> 02/2014 zustande<br />
zu bekommen, bedarf es weit überdurchschnittlicher Kenntnisse<br />
der Programmiersprachen-Geschichte. So gesehen darf sich jeder<br />
Teilnehmer als Siegertyp betrachten.<br />
Gewinner des Sachpreises – Videorecorder-Equipment für den<br />
Rasp berry Pi von DVB Link [1] – konnte jedoch nur einer der teilnehmenden<br />
Hobbyhistoriker werden, der Kasten „Lösung und Gewinner“<br />
lüftet das Geheimnis. Der Artikel selbst repetiert die Fragen und<br />
beantwortet sie korrekt – wie gewohnt ausführlich.<br />
1<br />
Akronyme sind für Programmiersprachen durchaus beliebt, rekursive<br />
allemal. Welche Sprache erfand ein Mann mit dänischem<br />
Pass fürs World Wide Web?<br />
Obwohl er heute in den Vereinigten Staaten lebt, ist Rasmus<br />
Lerdorf auf Grönland geboren und damit gebürtiger Däne. Den<br />
„PHP: Hypertext Preprocessor“ schrieb er anfangs als Ersatz<br />
für eine Reihe von Perl-Skripten.<br />
2 Ausnahmebehandlung. Sie gilt als Urahnin einer ganzen Reihe<br />
Ein britischer Turing-Award-Gewinner entwickelte eine der<br />
ersten Sprachen mit polymorpher Typinferenz und typsicherer<br />
Listing 1: Sortierfunktion in Ocaml<br />
01 let rec sort = function<br />
02 | [] ‐> []<br />
03 | x :: l ‐> insert x (sort l)<br />
04 <br />
05 and insert elem = function<br />
06 | [] ‐> [elem]<br />
07 | x :: l ‐><br />
08 if elem < x then elem :: x :: l else x :: insert elem l;;<br />
von Abkömmlingen. Wie heißt jener, der objektorientierte Ansätze<br />
einbrachte und so mehrere Programmierwettbewerbe gewann?<br />
Robin Milner hat ML geschaffen, was er als Abkürzung für<br />
Meta Language verwendete. Zur weiteren Verwandschaft der<br />
Sprachfamilie gehören beispielsweise SML, Miranda, Haskell<br />
und Ocaml, das in sehr kompakter Schreibweise hocheffizienten<br />
Code formulieren hilft. Die in Listing 1 per Ocaml kodierte<br />
Sortierfunktion, die auf beliebigen Typen funktioniert, ist ein<br />
schönes Beispiel dafür.<br />
Der Legende nach motivierte den ursprünglichen Autor zur<br />
Namenswahl seiner Skriptsprache ein Gleichnis aus dem Matt-<br />
3 häus-Evangelium. Darin sucht ein Händler nach Preziosen. Was<br />
durchschreitet im selben Bibeltext das Wappentier der Sprache?<br />
Der Urvater Abraham des Perl-Universums, Larry Wall, ist kalifornischer<br />
Programmierer und bekennender Christ. Er beruft<br />
sich bei der Namenswahl seiner Skriptsprache gerne auf Matthäus<br />
13, 46: „Als er eine besonders wertvolle Perle fand, verkaufte<br />
er al les, was er besaß, und kaufte sie.“ Inspiriert vom<br />
Umschlag ei nes frühen Perl-Buches reüssierte das Kamel zum<br />
Sinnbild für Perl. Der zitierte Evangelist wusste auch dazu einen<br />
Vers, nämlich 19, 24: „Nochmals sage ich euch: Eher geht ein<br />
Kamel durch ein Nadelöhr, als dass ein Reicher in das Reich<br />
Gottes gelangt.“<br />
4Das Einrücken von Code als syntaktisches Element ist bei Programmierern<br />
umstritten. Python-Fans beispielsweise preisen<br />
diese Form der Blockmarkierung, andere bleiben skeptisch.<br />
Die Entwickler welcher Sprache mussten zumindest in deren Urform<br />
manche Codefragmente auf bestimmte Spalten einrücken?<br />
Bis zur Version Fortran 77 schrieb die Sprache vor, dass normaler<br />
Code ab Spalte 8 zu beginnen habe. Kommentare hingegen<br />
bedurften in Spalte 1 eines »C«. Diese Richtlinien stammten<br />
noch aus der Zeit der Lochkarten – Programmierer konnten so<br />
Zeilen, die sich als fehlerhaft herausstellten, noch nachträglich<br />
das Muster für den Kommentar hinzustanzen.<br />
5 entworfene die größte Verbreitung gefunden hat. Später war<br />
Ein eidgenössischer Compiler-Erfinder schuf eine ganze<br />
Kaskade an Sprachen, wovon die erste und von ihm allein<br />
ihm eine Sprache nicht genug und er entwarf mit Kollegen an einer<br />
europäischen Hochschule noch ein dazu passendes Betriebssystem<br />
und einen zugehörigen Rechner. Wie lautet das germanische Äquivalent<br />
der Programmierumgebung?<br />
© Vichaya Kiatying-Angsulee, 123RF.com
Antworten<br />
1 P PHP<br />
2 O Ocaml<br />
3 N Nadelöhr<br />
4 F Fortran<br />
5 A Alberich<br />
6 O Oak<br />
7 Pike<br />
8 W<br />
9 B BCPL<br />
10 E Esperanto<br />
11 I Iverson<br />
12 M Mascitti<br />
13 M Mono<br />
14 R Ramey<br />
15 H Hopper<br />
16 L Logo<br />
17 S Snobol<br />
18 P Prolog<br />
19 O Object<br />
20 A Algol<br />
Niklaus Wirth entwarf neben seiner bekanntesten Kreation<br />
Pascal auch noch Modula, Modula-2 sowie Oberon. Die Sprache<br />
brachte eine Entwicklungs- und Laufzeitumgebung mit.<br />
An der ETH Zürich schuf Wirth mit seinem Team dafür die<br />
Systemplattform Ceres. Oberon ist ein anderer Name für den<br />
Hüter des Nibelungeschatzes, Alberich, einen Zwerg der nordischen<br />
Mythologie.<br />
Ein Entwickler benannte seine Sprache eines Tages nach<br />
der Geschmacksrichtung eines Löschwasser-Sudes um. Ur-<br />
6 sprünglich taufte der in seinem Heimatland mit einem Orden<br />
ausgezeichnete Entwickler die Sprache aber nach einem soliden<br />
Laubbaum. Welchem?<br />
James Gosling, Officer of the Order of Canada, hat sich zwar<br />
um den Emacs verdient gemacht, entwarf aber – wohl um das<br />
Gleichgewicht der Macht wiederherzustellen – ebenfalls Java.<br />
Ursprünglich jedoch sollte die Kaffee-Sprache Oak heißen, wie<br />
das englische Wort für Eiche.<br />
Viele Programmiersprachen haben eine wechselhafte Entwicklung<br />
hinter sich. Die hier gesuchte Sprache zeigt sich be-<br />
7 sonders vielgesichtig, denn sie startete als objektorientierte<br />
C-Variante, verlebte ihre Kindheit in einem vernetzten Rollenspiel,<br />
um schließlich als Implementierungssprache eines mittlerweile fast<br />
vergessenen Webservers zu reüssieren.<br />
Der schwedische Spiele-Entwickler Lars Pensjö entwickelte<br />
1989 eine virtuelle Maschine für ein textbasiertes Online-Rollenspiel.<br />
Da sich Pensjö die Spielewelt nicht komplett selbst<br />
ausdenken wollte, ermöglichte er erfahrenen Spielern, diese in<br />
der objektorientierten Sprache LPC zu erweitern. Auf diesem<br />
Sprachentwurf setzten die Entwickler des Roxen Challenger auf<br />
und nannten ihre Neufassung Pike.<br />
8 eine besondere Zeichenklasse, die zwar keine Bedeutung hat,<br />
Die meisten Compiler oder Interpreter zerlegen den Quellcode<br />
in Tokens – und akzeptieren an vielen Stellen rund um diese<br />
jedoch das Code-Studium vereinfacht. Die hier gesuchte Sprache<br />
bildet eine Ausnahme, weil sie diese Symbole zum einzigen Prinzip<br />
erhebt und praktisch unsichtbar bleibt. Wie heißt die Sprache?<br />
Die Programmiersprache Whitespace besteht nur aus – genau!<br />
– Whitespaces, also aus Leerzeichen, Tabulatoren und<br />
Zeilenumbrüchen. Das macht sie relativ schwer ausdruckbar.<br />
Dennoch ist die Sprache, die nach dem Stack-Prinzip arbeitet,<br />
in der Lage, beliebige Berechnungen auszuführen.<br />
P Whitespace<br />
Der US-Amerikaner Martin Richards entwickelte 1969 mit BCPL<br />
eine plattformunabhängige, aber sehr systemnahe Programmiersprache,<br />
die zwar relativ wenig Komfort und Sicherheitsmechanismen<br />
enthielt, aber zugleich die zentralen Sprachkonstrukte<br />
einer imperativen Sprache umsetzte. Die Idee von<br />
Objektcode stammt in Teilen aus diesem Sprachkonzept. Über<br />
den Umweg von B, das kaum produktiv zum Einsatz kam,<br />
entwickelte sich daraus C. Auch später blieb BCPL in Mode,<br />
beispielsweise in Teilen des Amiga OS.<br />
er sehr früh das Konzept der höheren Programmiersprache<br />
einführte, benötigte der Entwurf eines Hardware-Entwicklers<br />
geschlagene 29 Jahre bis zur ersten<br />
10Obwohl<br />
Implementierung. Welche Sprache hatte ihr Schöpfer ursprünglich<br />
ins Auge gefasst, um seine Rechner zu programmieren?<br />
Nach dem Ende des Zweiten Weltkriegs konnte der Computerpionier<br />
Konrad Zuse praktisch kaum an seinem damals<br />
aktuellen Hardware-Entwurf, der Z4, arbeiten. Der elektromechanische<br />
Rechner verwendete Relais und war zwar konzeptionell<br />
frei programmierbar, allerdings nur in einer mühsamen<br />
Maschinensprache.<br />
Zuse suchte daher nach Ideen, um Programme abstrakter formulieren<br />
zu können. Die Sprache Plankalkül avancierte dabei<br />
zwar zur ersten Hochsprache, kam jedoch mangels passender<br />
Hardware praktisch nicht zum Einsatz. Erst 1975 implementierte<br />
Joachim Hohmann in Darmstadt die Sprache im Zuge seiner<br />
Dissertation. Bevor Zuse sich Plankalkül zuwandte, spielte<br />
er mit dem Gedanken, seine Rechenmaschine in Esperanto zu<br />
programmieren, verwarf den Gedanken aber schnell.<br />
immer stellen krude Syntax oder besonders abstrakte<br />
Sprachkonstrukte die größten Hürden auf. Ein exotischer<br />
11Nicht<br />
Sprachentwurf erwartete ursprünglich entweder einen Fernschreiber<br />
mit einer Hardware-Backspace-Implementierung oder<br />
eine Latex-Klasse, um allein den Code anzuzeigen. Welcher Turing-<br />
Award-Gewinner entwickelte sie?<br />
Winterrätsel 04/2014<br />
Forum<br />
www.linux-magazin.de<br />
81<br />
9<br />
Die gesuchte Sprache trat als Verbindungsglied zwischen<br />
Hoch- und Maschinensprache auf, inspirierte den heutigen<br />
Quasi-Standard für die Systemprogrammierung und legte eine<br />
Grundlage für Objektcode.<br />
© Micro APL<br />
Abbildung 1: APL benutzt für seinen Quellcode Zeichen außerhalb der gewöhnlichen<br />
ISO-8859-15-Symbole. In den 1960er Jahren erreichte man das durch das<br />
Übereinanderdrucken von zwei Zeichen auf einem Fernschreiber.
Forum<br />
www.linux-magazin.de Winterrätsel 04/2014<br />
82<br />
APL (A Programming Language) ist recht einfach aufgebaut<br />
und kann gut mit Vektoren und Matrizen umgehen. Sie macht<br />
es leicht, schnell zu Ergebnissen zu kommen. Wäre da nicht<br />
die Syntax: Gerade die Operatoren bestehen oft aus mehrfach<br />
übereinandergedruckten Symbolen (Abbildung 1).<br />
Um etwa einen Kommentar einzuleiten, tippten Programmierer<br />
ein großes A ein, bewegte den Cursor ein Zeichen zurück und<br />
überdruckten es mit einem kleinen O. Als Eingabefolge würde<br />
man diese etwa mit »A\bo« umschreiben. Das klappt natürlich<br />
nur auf einem Fernschreiber. Um diese Limitierungen moderner<br />
Monitore zu umgehen, gibt es <strong>neu</strong>erdings Fonts [2] und<br />
sogar Unicode-Zeichen [3] für die wichtigsten APL-Operatoren.<br />
Kenneth Iverson hatte die Sprache erfunden.<br />
sein Sprachentwurf Klasse(n) haben würde, wollte<br />
der in Skandinavien geborener Entwickler eigentlich in<br />
12Dass<br />
ihrem Namen verankern. Wie hieß der Mitarbeiter des<br />
Erfinders, der für den tatsächlichen, schnöde auf die Vorgängerin<br />
verweisenden Namen verantwortlich zeichnet?<br />
Bjarne Stroustrup vermisste in C die Objektorientierung und<br />
insbesondere ein Klassensystem und nannte somit seine zunächst<br />
als Erweiterung gedachte Programmiersprache intern<br />
„C with Classes“. Der Legende nach wollte sein Mitarbeiter<br />
Rick Mascitti augenzwinkernd den <strong>neu</strong>en Evolutionsschritt der<br />
Sprache betonen und schuf so den Namen C++.<br />
ein populäres, spektakulärerweise nicht in Sonatenhauptsatz-Form<br />
verfasstes und nächtliche Lichteffekte<br />
13Ob<br />
thematisierendes Klavierstück eines deutschen Komponisten<br />
Inspiration für den Namen einer Programmierumgebung war, ist<br />
nicht überliefert. Die Tonart seines ersten Satzes weist aber auf die<br />
Sprache hin. Wie heißt deren Open-Source-Implementierung?<br />
Klaviersonaten sollen mit einem schnellen, schnittigen Satz<br />
beginnen, das war die unumstößliche Lehrmeinung zu Beethovens<br />
Zeit. Der Maestro setzte sich souverän über diese<br />
wie über manch andere Konvention hinweg und begann die<br />
„Mondscheinsonate“ kurzerhand mit langsamen, fast schon<br />
betörend-manischen Arpeggien in Cis-Moll (Abbildung 2).<br />
Im anglo-amerikanischen Sprachraum nennt man das Kreuz<br />
für die chromatische Erhöhung eines Tons „Sharp“, was C#-<br />
Erfinder Microsoft wohl für einen gelungenen Scherz und<br />
Seitenhieb auf C++ hielt. Wer bei Microsoft Beethoven hört, ist<br />
leider nicht überliefert. <strong>Linux</strong>-Entwickler greifen zu Mono, um<br />
in der objektorientierten Sprache zu programmieren.<br />
Steuersprache des Unix-Urvaters war einem Briten<br />
zu oll. Er entwickelte daraufhin seine eigene Fassung,<br />
14Eine<br />
die syntaktisch auf jedem aktuellen <strong>Linux</strong>-System große<br />
Bedeutung besitzt. Welcher Entwickler hat seit über 20 Jahren den<br />
Posten inne, sich um ihren interaktionsfreudigen Wiedergänger zu<br />
kümmern?<br />
Nicht die von Stephen Bourne 1977 programmierte Bourne<br />
Shell war Unix’ erster Kommandointerpreter, sondern die von<br />
Thompson selbst verfasste, später nur noch „Old Shell“ genannte<br />
Osh, die unter anderem die Pipes mitbrachte. Bourne<br />
fügte unter anderem die Steuerung von Hintergrundprozessen<br />
(»&«, [Strl]+[Z], »fg« und »bg«) hinzu und machte den Interpreter<br />
programmierfähig.<br />
Für den täglichen Einsatz fehlte es jedoch an einer Eingabehistorie<br />
und anderen nützlichen Hilfen, die erst die Bash ab<br />
etwa 1990 mitbrachte. Seit der Zeit betreut Chet Ramey den<br />
heutigen Quasi-Standard für <strong>Linux</strong>-Kommando-Eingaben.<br />
Pionierin wirkte maßgeblich an der Entwicklung<br />
einer frühen Hochsprache mit, die zu beherrschen heute<br />
15Welche<br />
fast einer Beschäftigungsgarantie gleichkommt? Die Mathematikerin<br />
war bei US-Präsidenten und -Showmastern zu Gast.<br />
Die US-Amerikanerin Grace Hopper hatte für die US-Marine<br />
und mehrere Computerhersteller gearbeitet und dabei an der<br />
Spezifikation für Cobol mitgewirkt. Gleichzeitig erfand sie<br />
praktisch das Debugging und dokumentierte 1947 in ihrem<br />
Logbuch den ersten Fix in Form einer aufgeklebten Motte<br />
(siehe Abbildung 3).<br />
© Public Domain<br />
Abbildung 2: Beethoven Klaviersonate Nr. 14 op. 27 Nr. 2 beginnt mit aufgebrochenen<br />
Akkorden in der Tonart des ersten Satzes Cis-Moll.<br />
Abbildung 3: Computerpionierin Grace Hopper erfand nicht nur Cobol, sondern<br />
auch das Debugging. Das Changelog von 1947 mit ihrem ersten gefunden Bug ist<br />
erhalten geblieben und steht heute im Archiv der US-Marine.
der Wappengestaltung mal abgesehen, spielen Tiere<br />
nur in wenigen Programmiersprachen eine nennenswerte<br />
16Von<br />
Rolle. Bei welcher Sprache, gerne auch in der Bildung<br />
eingesetzt, bleibt ein possierliches Reptil dagegen unabdingbar?<br />
Um Kindern den Zugang zum Programmieren zu erleichtern,<br />
erdachte der Südafrikaner Seymour Papert die Programmiersprache<br />
Logo, die dank Lisp-Anleihen und Rekursionen mächtige<br />
Programmierkonzepte einfach handhabbar machte. In<br />
Erinnerung geblieben ist jedoch eine stilisierte, steuerbare<br />
Schildkröte, die eine Farbspur hinter sich herzieht.<br />
verbreitetsten Datentypen bei Programmiersprachen<br />
sind Repräsentationen für Zahlen und Zeichenfolgen. Welche<br />
Sprache macht hier eine Ausnahme, da sie erstmals<br />
17Die<br />
Vorformen von regulären Ausdrücken in den Mittelpunkt rückte?<br />
Mit ihren normalen Funktionen vermochte Snobol nicht viele<br />
Entwickler hinter dem Ofen hervorzulocken. Die Möglichkeit<br />
hingegen, Texte zu zerlegen und nach Mustern zu suchen, bescherten<br />
der Sprache in den 1970er und 1980er Jahren eine gewisse<br />
Beliebtheit. Weil Snobol jedoch meist nach Rechnern der<br />
Mainframe-Kampfklasse verlangte, liefen ihr Unix-Werkzeuge<br />
wie Grep, Sed und später Perl den Rang ab.<br />
Vererbungspfaden von einer Superklasse erben. Dieses Problem<br />
gibt es bei Einfachvererbung nicht. Da in Smalltalk jede Instanz<br />
ein Objekt ist, heißt ihre Metaklasse folgerichtig Object.<br />
das Who’s who von Compilerbau-Experten liest sich<br />
die Liste der Entwickler einer frühen Sprache, die schon<br />
20Wie<br />
in den 1960er Jahren das strukturierte Programmieren<br />
ermöglichte. Da Entwickler sie gerade in ihren I/O-Operationen uneinheitlich<br />
implementierten, kam die gesuchte Sprachfamilie kaum<br />
zum Einsatz, beeinflusste aber ihre Nachfolger konzeptionell.<br />
Als Frucht internationaler Zusammenarbeit entstand in den<br />
1960er Jahren Algol: Der Amerikaner John W. Backus und<br />
der Däne Peter Naur hatten die Backus-Naur-Form zur Syntax-<br />
Beschreibung erdacht. Der Deutsche Friedrich L. Bauer begründete<br />
den Studiengang Informatik in Deutschland.<br />
Als KI-Experte und Lisp-Erfinder war der Amerikaner John<br />
McCarthy dabei. Auch Alan J. Perlis stammte aus den USA,<br />
Heinz Rutishauser aus der Schweiz und Klaus Samelson aus<br />
Deutschland. Gemeinsam legten sie den Grundstein der strukturierten<br />
Programmierung, die auf Algorithmen baut statt auf<br />
die Implementierung. Die Arbeit des multinationalen Teams<br />
beeinflusste nachfolgende Spachen stark. (jk) <br />
n<br />
Winterrätsel 04/2014<br />
Forum<br />
www.linux-magazin.de<br />
83<br />
alles, was nicht belegbar ist, keine Wahrheit darstellt,<br />
nennen Logiker die Closed-World-Assumption. Welche<br />
18Dass<br />
Sprache baut darauf auf? Der Entwickler beschreibt in ihr<br />
zwar das Problem, nicht aber den Lösungsweg.<br />
Anders als viele andere Programmiersprachen legt Prolog nicht<br />
fest, wie der ausführende Computer zu einem Ergebnis kommen<br />
oder wie er sich verhalten soll. Stattdessen notiert der<br />
Programmierer bekannte Fakten und Regeln im Sinne der Prädikatenlogik.<br />
Der Sprachinterpreter prüft dann, ob sich davon<br />
ausgehend eine Hypothese bestätigen lässt und ob und wie sie<br />
der Anwender parametrisieren muss.<br />
angehende Mathematikerin neigte in ihrer Jugend<br />
zu Schüchternheit. Nachdem sie in einem renommierten<br />
19Eine<br />
Forschungszentrum angeheuert hatte, benannte sie – der<br />
Überlieferung nach – die dort mit ihrem Team entwickelte Sprache<br />
selbstironisch nach unverbindlichen Partygesprächen. Von welcher<br />
Klasse erbt jede Instanz innerhalb dieser Sprache?<br />
An der Ideenschmiede Palo Alto Research Center entwickelte<br />
Adele Goldberg mit ihrem Team Smalltalk, die das objektorientierte<br />
Modell sehr konsequent umsetzte. Entwickler arbeiteten<br />
auf einem persistenten Desktop, der seinerseits ebenso wie<br />
Compiler und Editor weitgehend in Smalltalk geschrieben war<br />
und die sich alle zur Laufzeit modifizieren ließen.<br />
Klassen können und müssen in Smalltalk nur von einer Oberklasse<br />
erben. Auf diese Weise vermeiden sie das so genannte<br />
Diamond-Problem, bei dem ein Objekt auf zwei verschiedenen<br />
Infos<br />
[1] DVB Link für Raspberry PI:<br />
[http://dvblogic.com/en/software/raspberry-pi/]<br />
[2] Phil Chastney, „An APL Unicode Font“:<br />
[http:// archive. vector. org. uk/ art10002160]<br />
[3] APL Syntax and Symbols:<br />
[http:// en. wikipedia. org/ wiki/ APL_syntax_and_symbols]<br />
Lösung und Gewinner<br />
Die Abbildung auf der zweiten Seite oben verrät<br />
alle korrekten Einzelantworten. Wer sie in<br />
das im vorletzten Heft beschriebenen Schema<br />
einfütterte, kam auf den Lösungssatz „A Plea<br />
for lean Software“ und konnte diesen bis zum<br />
15. Februar an [winter@linux-magazin.de] schicken.<br />
Alle 100-prozentig richtigen Antworten,<br />
es waren 14, haben an der anschließenden Verlosung<br />
teilgenommen.<br />
Die ausgeklügelte Videorecorder- und TV-<br />
Soft ware von DVB Link für den<br />
Raspberry Pi [1] – inklusive<br />
eines kompatiblem USB-Empfängers<br />
– gewonnen hat der<br />
<strong>Linux</strong>-<strong>Magazin</strong>-Leser Valentin<br />
Puls.<br />
Herzlichen Glückwunsch!
Forum<br />
www.linux-magazin.de Recht 04/2014<br />
84<br />
Die Pro-Sieben-Sat1-Tochter Myvideo siegt vor Gericht gegen eine OSS-Firma<br />
Haftungsfragen<br />
Die Community eines Open-Source-Downloadprogramms hat ein Modul programmiert, das geltende Kopierschutzbestimmungen<br />
verletzt. Also geht die Pro-Sieben-Sat1-Tochter Myvideo vor Gericht – und gewinnt<br />
gegen die Firma hinter der OSS-Software. Ein Urteil mit Konsequenzen. Christopher De Nicolo, Markus Feilner<br />
© bellagee, photocase.com<br />
Im Open-Source-Umfeld sind Abmahnungen<br />
keine Seltenheit, auch hier sind<br />
typischerweise Urheberrechtsverletzungen<br />
oft Gegenstand des Streits. Wie die<br />
Geschichte des Projekts GPL-Violations<br />
[1] zeigt, stammen die Abmahnungen<br />
häufig aus der Open-Source-Community<br />
selbst. Allerdings gibt es auch welche von<br />
außen, die sich gegen freie Software richten<br />
und bisweilen drastische Konsequenzen<br />
haben können. Ein Fall, der kürzlich<br />
gegen die Open-Source-Gemeinschaft<br />
ausgetragen wurde, dreht sich um das in<br />
Java geschriebene Jdownloader 2 und die<br />
Firma Appwork [2].<br />
Jdownloader 2 als Beispiel<br />
Der beliebte Open-Source-Downloadmanager<br />
erleichtert das Herunterladen und<br />
dauerhafte Speichern von zum Beispiel<br />
gestreamten Inhalten aus dem Internet<br />
ungemein (Abbildungen 1 und 2). Dank<br />
Java läuft er auf allen gängigen Betriebssystemen<br />
und Plattformen, er bringt<br />
zahlreiche komfortable Funktionen mit,<br />
beispielsweise Remote-Steuerung via<br />
CLI, Android und Webinterface. Die<br />
abgemahnte Appwork GmbH hatte ihn<br />
unter der URL [3] zum Download angeboten<br />
(bei Redaktionsschluss hatte sich<br />
allerdings der Eintrag im Impressum der<br />
Webseite geändert).<br />
Eskaliert der Streit um eine Abmahnung<br />
und meinen es beide Seiten ernst, dann<br />
trifft man sich früher oder später vor<br />
Gericht. Dort wird dann mit schnell<br />
wachsenden Kosten und Risiken über<br />
Rechtsfragen gestritten, die für die OSS-<br />
Gemeinschaft allgemein von Interesse<br />
sind: Kopierschutz, die Bedeutung von<br />
„technisch wirksam“, Störer- und Geschäftsführerhaftung<br />
und wer überhaupt<br />
für ein OSS-Projekt haftet.<br />
Nachdem sich die Appwork GmbH als<br />
Betreiberin der Webseite Jdownloader.<br />
org auf eine Abmahnung mit der Aufforderung<br />
zur Abgabe einer Unterlassungserklärung<br />
nicht eingelassen hatte,<br />
erzwang der Abmahner, die Pro-Sieben-<br />
Sat1-Gruppe [4], gegen den Geschäftsführer<br />
und seine Firma Appwork eine<br />
einstweilige Verfügung [5] auf „Unterlassung<br />
der Herstellung, des Vertriebs und<br />
des Besitzes (zu gewerblichen Zwecken)<br />
der Software Jdownloader 2“.<br />
Als Begründung stand darin, die Software<br />
ermögliche es Anwendern illegalerweise,<br />
geschützte Videostreams herunterzuladen<br />
und zu speichern, selbst wenn diese<br />
durch „die technischen Maßnahmen Encrypted<br />
Real-Time Messaging Protocol<br />
(RTMPE, [6]) und durch Token-URLs<br />
geschützt waren“.<br />
Hinzu kommt sicherlich auch, dass den<br />
Klägern die komfortable Bedienung des<br />
Download-Helpers ein Dorn im Auge war,<br />
der die Zwischenablage des Anwenders<br />
überwacht und vorauseilend gehorsam<br />
HTTP- und FTP-Links nach herunterladbaren<br />
Inhalten wie Videodateien oder<br />
Flash-Videos scannt. Anwender können<br />
so mit wenigen Mausklicks Inhalte auf<br />
die Festplatte speichern, im vorliegenden<br />
Fall auch verbotenes, weil kopiergeschütztes<br />
Material aus der Mediathek<br />
der Klägerin.<br />
Um dies dem Gericht glaubhaft zu machen,<br />
hatte ein Rechtsanwalt des Musikverlages<br />
Myvideo vor dem Verfahren eine<br />
Version von Jdownloader 2 heruntergeladen<br />
und auf seinem Rechner installiert.<br />
Damit war es ihm ein Leichtes, von der<br />
Webseite der Pro-Sieben-Sat1-Tochter<br />
Myvideo.de ([7], Abbildung 3) ein geschütztes<br />
Video herunterzuladen und<br />
dauerhaft zu speichern. Danach konnte<br />
er das Video mit einem herkömmlichen<br />
Mediaplayer beliebig oft abspielen.<br />
Ausstiegsszenario<br />
In einem solchermaßen umstrittenen Abmahnfall<br />
gehen die Kosten schnell in die<br />
Höhe. Wie hoch, darüber entscheiden
Abbildung 1: Jdownloader 2 unterstützt viele Plugins und kann Videodateien aus Weblinks extrahieren, doch<br />
hier ist Vorsicht geboten: Nicht immer ist das legal.<br />
der gerichtliche Streitwert und der anwaltliche<br />
Gegenstandswert. Das Gericht<br />
hatte im Verfahren einen Streitwert von<br />
200 000 Euro festgesetzt – Streitwerte<br />
über 25 000 Euro sind in gewerblichen<br />
Urheberrechtsstreitigkeiten fast schon die<br />
Regel (Abbildung 4). Eine Deckelung des<br />
Gegenstandswerts auf 1000 Euro nach §<br />
97a Abs. 3 UrhG kommt nur bei nicht gewerblichen<br />
Rechtsverletzungen und auch<br />
nur bei Erst-Tätern in Betracht.<br />
Dass der vorliegende Streitwert möglicherweise<br />
doch zu hoch angesetzt war,<br />
mag die Gegenseite dazu bewogen haben,<br />
Beschwerde gegen den Streitwertbeschluss<br />
einzulegen. Legt man den Betrag<br />
von 200 000 Euro auch für das anwaltliche<br />
Abmahnschreiben zu Grunde, so belaufen<br />
sich die mittleren Anwaltsgebühren<br />
für dieses Schreiben allein auf mehr<br />
als 3000 Euro. Durch Unterzeichnung der<br />
Unterlassungserklärung wäre die abgemahnte<br />
GmbH und deren Geschäftsführer<br />
vermutlich noch mit diesem Betrag<br />
davongekommen.<br />
Gerichts- und<br />
Anwaltskosten<br />
legte die Beklagte Widerspruch ein, was<br />
weitere Gerichtsgebühren und Anwaltskosten<br />
hinzukommen ließ.<br />
Dass nur der Geschäftsführer Widerspruch<br />
einlegte und nur er sich anwaltlich<br />
vertreten ließ, begrenzte die Folgekosten<br />
einigermaßen. Hätten sowohl Antragstellerin<br />
als auch die beiden Antragsgegner –<br />
anwaltlich vertreten, vor dem Landgericht<br />
herrscht Anwaltszwang – gemeinsam Widerruf<br />
eingelegt, wäre das zu erwartende<br />
Prozesskostenrisko bei einem Streitwert<br />
von 200 000 Euro für das einstweilige<br />
Verfügungsverfahren auf nahezu 20 000<br />
Euro angewachsen.<br />
Ein etwaiges Berufungsverfahren würde<br />
das Kostenrisiko sogar mehr als verdoppeln.<br />
Derartige Summen können für<br />
kleine Gesellschaften, zum Beispiel eine<br />
haftungsbeschränkte Unternehmergesellschaft,<br />
ein hohes Risiko bedeuten, im<br />
schlimmsten Fall gar bis zur Insolvenz.<br />
Und dabei ist von Schadenersatzansprüchen<br />
noch gar nicht die Rede. Keine guten<br />
Aussichten für kleine Unternehmen,<br />
möchte man meinen.<br />
Aber hätte man den Unterlassungsanspruch<br />
und die Kosten früher abwehren<br />
können? Wenn die GmbH die Unterlassungserklärung<br />
unterzeichnet hätte, wären<br />
wohl nur die vorgerichtlichen Kosten<br />
angefallen und die Angelegenheit wäre<br />
zunächst erledigt gewesen. Abgesehen<br />
davon, dass man wegen der weitreichenden<br />
Folgen einer Unterlassungserklärung<br />
diese nicht ungeprüft unterschreiben<br />
sollte, gab es wohl aus Sicht der Abgemahnten<br />
rechtliche Zweifel an der Rechtmäßigkeit,<br />
sodass man sich entschied,<br />
die einstweilige Verfügung zumindest in<br />
Kauf zu nehmen.<br />
Was bedeutet eigentlich<br />
„technisch wirksam“?<br />
Einer der Knackpunkte im Verfahren war<br />
die Frage, ob es sich bei der verwendeten<br />
RTMPE-Verschlüsselung überhaupt<br />
um eine wirksame Schutzmaßnahme gemäß<br />
§ 95a UrhG handelt. Die Beklagte<br />
meinte, das technische Verfahren nutze<br />
eher eine Art Verschlüsselung der Daten<br />
dazu, Man-in-the-Middle-Attacken, also<br />
Recht 04/2014<br />
Forum<br />
www.linux-magazin.de<br />
85<br />
Da Appworks die Erklärung nicht abgab,<br />
erwirkte der Musikverlag im Frühjahr<br />
2013 eine einstweilige Verfügung vor Gericht.<br />
Hier fielen zunächst mehr als 2600<br />
Euro Gerichts- und weitere Anwaltsgebühren<br />
an. Bisher entstanden für den<br />
Erlass der einstweiligen Verfügung daher<br />
schon Kosten in Höhe von nahezu 7500<br />
Euro. Gegen die einstweilige Verfügung<br />
Abbildung 2: In einem Nightly Build von Jdownloader 2 war der umstrittene Videodecoder-Hack enthalten.
Forum<br />
www.linux-magazin.de Recht 04/2014<br />
86<br />
Abbildung 3: Videos aus dem Fundus von Pro Sieben Sat1 TV auf Myvideo sind nur scheinbar frei.<br />
ein Mitstreamen Dritter bei der Übertragung<br />
des Streams zu verhindern. RTMPE<br />
sei somit kein Kopierschutz.<br />
Das Urheberrechtsgesetz sagt dazu:<br />
„Gemäß § 95a UrhG sind technische<br />
Maßnahmen Technologien, Vorrichtungen<br />
und Bestandteile, die im normalen<br />
Betrieb dazu bestimmt sind, geschützte<br />
Werke oder andere nach diesem Gesetz<br />
geschützte Schutzgegenstände betreffende<br />
Handlungen, die vom Rechtsinhaber<br />
nicht genehmigt sind, zu verhindern<br />
oder einzuschränken. Technische<br />
Maßnahmen im Sinne des § 95a UrhG<br />
sind wirksam, soweit sie durch die Nutzung<br />
eines geschützten Werkes oder<br />
eines anderen nach diesem Gesetz geschützten<br />
Schutzgegenstandes von dem<br />
Rechtsinhaber durch eine Zugangskontrolle,<br />
einen Schutzmechanismus wie Verschlüsselung,<br />
Verzerrung oder sonstige<br />
Umwandlung oder einen Mechanismus<br />
zur Kontrolle der Vervielfältigung, die die<br />
Erreichung des Schutzziels sicherstellen,<br />
unter Kontrolle gehalten wird.“<br />
Wirksam ist, was umgangen<br />
werden muss<br />
Das Landgericht Hamburg bejahte die<br />
wirksame technische Schutzmaßnahme<br />
und bestätigte zugleich die Tendenz in<br />
der Rechtsprechung, keine allzu hohen<br />
Anforderungen an die Wirksamkeit des<br />
Schutzes zu stellen. Er müsse keinen absoluten<br />
Schutz bieten, sondern nur eine<br />
Hürde sein, die ein normaler Nutzer nicht<br />
ohne Weiteres überwinden könne. Keine<br />
Hürde würde vorliegen, wenn sich der<br />
Schutz mit allgemein verfügbaren legalen<br />
Programmwerkzeugen umgehen ließe.<br />
Letztlich verhindere RTMPE erfolgreich,<br />
so das Gericht, dass der Stream zu irgendeinem<br />
Zeitpunkt als vollständige Videodatei<br />
auf dem Computer vorliegt und<br />
so eine urheberrechtliche Vervielfältigung<br />
mittels Download eintritt. Das Argument<br />
der Gegenseite, dass es sich dabei lediglich<br />
um eine Verschlüsselung handle, die<br />
den Übertragungsweg betreffe, spielte für<br />
das Gericht keine Rolle, sondern nur das<br />
Ergebnis: die Erschwerung des vollständigen<br />
Downloads.<br />
Zu dieser Überzeugung des Gerichts trug<br />
auch die Produktbeschreibung der benutzten<br />
Streamingsoftware von Adobe<br />
bei. In ihr beschreibt und vermarktet der<br />
Hersteller selbst RTMPE als „Copy Protection<br />
Mechanism“ ([8], Abbildung 5).<br />
Aber das ist doch ein Open-<br />
Source-Projekt?<br />
Die gegnerische Partei brachte vor, dass<br />
die Software als Open-Source-Produkt<br />
entstanden sei, deren Entwicklung von<br />
einer Gemeinschaft<br />
unabhängiger Entwickler<br />
vorangetrieben<br />
werde. Diese Entwickler<br />
handeln nicht<br />
im Auftrag der GmbH,<br />
die Webseite Jdownloader.org<br />
stelle lediglich<br />
eine Plattform für<br />
die Entwicklung zur<br />
Verfügung.<br />
Außerdem sei in der<br />
offiziellen Programmversion<br />
der GmbH die<br />
RTMPE-Funktionalität<br />
nie implementiert ge-<br />
wesen. Nur eine Betaversion, kompiliert<br />
als Nightly Build, habe ein RTMPE-Plug in<br />
enthalten. Dies aber habe ein Open-<br />
Source-Entwickler implementiert, ohne<br />
dass die GmbH oder ihr Geschäftsführer<br />
davon Kenntnis erlangt hätten.<br />
Beide beriefen sich deshalb auf die Haftungserleichterung<br />
nach §§ 7 Abs. 2, 10<br />
TMG. Dementsprechend wären diejenigen<br />
haftungsrechtlich privilegiert, die nur<br />
fremde Informationen in einem Kommunikationsnetz<br />
übermitteln oder die den<br />
Zugang zur Nutzung dieser Informationen<br />
vermitteln.<br />
Das Landgericht Hamburg machte deutlich,<br />
dass die Haftungsprivilegierung<br />
grundsätzlich für eine Open-Source-<br />
Plattform gelten könne, lehnte jedoch<br />
eine Haftungserleichterung in diesem Fall<br />
ab, weil sich die GmbH die Entwicklung<br />
der Software zu eigen gemacht habe. Für<br />
das Gericht war entscheidend, dass die<br />
GmbH als Herausgeberin der Software<br />
auftrat und das Open-Source-Projekt nur<br />
am Rande erwähnte.<br />
Die Haftung des<br />
Geschäfts führers<br />
So war beispielsweise in einem Informationsfenster<br />
ein Copyright-Vermerk<br />
angebracht, der die GmbH als Rechte-<br />
Inhaberin auswies. Was das Gericht jedoch<br />
nicht diskutiert hat, ist die Frage, ob<br />
die Haftungsprivilegierung nicht eigentlich<br />
von vornherein ausscheidet, da sie<br />
bei Unterlassungsansprüchen nach der<br />
herrschenden Rechtsprechung nicht anwendbar<br />
ist. Ein Unterlassungsanspruch<br />
hätte damit trotz Haftungsprivilegierung<br />
weiterhin Bestand.<br />
Abbildung 4: Streitwerte jenseits von 25 000 Euro sind im gewerblichen<br />
Urheberrechtsstreit keine Seltenheit.<br />
© pakhnyushchyy, 123RF.com
© Simon Alvinge, 123RF.com<br />
Abbildung 5: Nach Fehlern oder Lücken bei der Implementierung eines<br />
Kopierschutzes fragt der Gesetzgeber nicht.<br />
Da der Geschäftsführer der GmbH die<br />
RTMPE-Funktionalität nicht selbst hinzugefügt<br />
hatte, prüfte das Gericht zunächst<br />
die Haftung des Geschäftsführers<br />
als Störer (also als der, der willentlich<br />
und adäquat kausal eine Rechtsverletzung<br />
herbeigeführt hat, ohne selbst Täter<br />
oder Teilnehmer zu sein – vergleichbar<br />
offenen WLAN-Hotspots) und führte aus,<br />
dass nach ständiger Rechtsprechung neben<br />
der Haftung der GmbH als Störer im<br />
Normalfall keine Haftung des Geschäftsführers<br />
besteht, soweit Letzterer nicht an<br />
der Rechtsverletzung teilgenommen und<br />
nicht von ihr gewusst hat.<br />
Sorgfalts pflicht ungeklärt<br />
Nicht diskutiert hat das Gericht die umstrittene<br />
Frage, ob die Grundsätze der<br />
Störerhaftung überhaupt auf § 95a UrhG<br />
anwendbar sind und möglicherweise ohnehin<br />
nur eine Haftung als Täter oder<br />
Teilnehmer in Betracht zu ziehen ist. Das<br />
Landgericht begründete schließlich in bemerkenswerter<br />
Weise eine Haftung des<br />
Geschäftsführers als Täter. Als Geschäftsführer<br />
habe er dafür gesorgt, dass die<br />
Entwicklerplattform entstehen und dass<br />
das Programm mit RTMPE-Funktionalität<br />
heruntergeladen werden konnte.<br />
Auf der anderen Seite habe er keine Vorkehrungen<br />
getroffen, die verhindern,<br />
dass das Programm einer breiten Masse<br />
zu Verfügung gestellt wird. Eine Kontrolle<br />
war nicht vorgesehen.<br />
Dass ein unabhängiger Entwickler den<br />
RTMPE-Hack früher oder später implementieren<br />
und als Nightly Build der<br />
ganzen Internetgemeinde zur Verfügung<br />
stellen würde, sei für den Geschäftsführer<br />
abzusehen gewesen, zumal dies auf den<br />
eigenen Foren bereits<br />
diskutiert wurde.<br />
Die Folgen<br />
Im Ergebnis läuft die<br />
Argumentation des<br />
Gerichts auf eine urheberrechtliche<br />
Verkehrssicherungspflicht<br />
hinaus: Jeder, der in<br />
seinem Verantwortungsbereich<br />
eine Gefahrenquelle<br />
schafft,<br />
muss die ihm zumutbaren<br />
Maßnahmen zur Abwendung von<br />
Gefahren treffen, die für Dritte entstehen<br />
könnten. Eine solche Verkehrssicherungspflicht<br />
hat der BGH bereits im Wettbewerbsrecht<br />
statuiert, bislang wurde aber<br />
davon ausgegangen, dass es im Urheberrecht<br />
eine solche Pflicht neben der<br />
Störerhaftung nicht gebe.<br />
Für die Open-Source-Welt bedeutet dies<br />
eine aktive Prüfpflicht, jedenfalls für Software,<br />
die sie in eigenen Produkten einsetzt.<br />
Die gilt umso mehr, wenn Rechtsverletzungen<br />
auf der Hand liegen, beispielsweise<br />
wenn auf eigenen Foren die<br />
Implementierung bereits diskutiert wird.<br />
Unklar ist, ob eine solche Prüfpflicht auch<br />
reine OSS-Plattformen wie Sourceforge,<br />
Github oder einzelne Entwickler betrifft.<br />
Hier hilft möglicherweise, dass die Software<br />
als Sourcecode normalerweise nicht<br />
lauffähig und für den normalen Benutzer<br />
ohne Zusatzkenntnisse nicht zu benutzen<br />
ist. Anders mag das bei Binärprogrammen<br />
aussehen.<br />
Fazit<br />
Auch wenn Hoster von OSS-Projekten<br />
sich hier möglicherweise auf eine Haftungsprivilegierung<br />
berufen können und<br />
Schadenersatzansprüche nicht bestehen,<br />
können dennoch (kostenintensive) Unterlassungsansprüche<br />
bleiben. Es bleibt abzuwarten,<br />
ob sich diese Rechtsprechung<br />
durchsetzt. Das Gericht ist auch nicht<br />
näher darauf eingegangen, welche Vorkehrungen<br />
und Kontrollen der Geschäftsführer<br />
hätte treffen müssen. Inwieweit<br />
bei größeren Projekten die verdachtsunabhängige<br />
und ständige (automatisierte)<br />
Analyse jeder Codezeile machbar und<br />
zumutbar sein kann, bleibt unklar.<br />
Das erst im Dezember veröffentlichte Urteil<br />
vom 7.11.2013 [9] lässt folgende fünf<br />
grundlegende Schlussfolgerungen zu:<br />
n Die Anforderungen an wirksame technische<br />
Schutzmaßnahmen sind nicht<br />
hoch, es reicht, wenn der normale Benutzer<br />
diese nicht umgehen kann.<br />
n Die urheberrechtliche Abmahnung<br />
mit anschließender einstweiliger Verfügung<br />
ist ein scharfes und kostenintensives<br />
Schwert, das den Rechte-<br />
Inhabern an die Hand gegeben wird.<br />
n Die Abwehr einer solchen gestaltet<br />
sich schwierig und ist meist mit einem<br />
hohen Kostenrisiko verbunden.<br />
n Durch die Störerhaftung kann eine<br />
Haftung für die Teilnehmer an einem<br />
OSS-Projekt entstehen, ohne dass eigenes<br />
Verschulden notwendig ist.<br />
n Es gibt Tendenzen in der Rechtsprechung,<br />
durch die eine urheberrechtliche<br />
Verkehrssicherungspflicht statuiert<br />
wird, die auch den Geschäftsführer<br />
treffen kann.<br />
Vor allem die beiden letzten Punkte<br />
können ein beträchtliches Risiko für die<br />
Open-Source-Branche darstellen. Die<br />
kann nur hoffen, dass weitere Instanzen<br />
dem Hamburger Urteil nicht folgen. n<br />
Infos<br />
[1] GPL-Violations: [http:// gpl‐violations. org]<br />
[2] Appwork: [http:// wemakeyourappwork. com]<br />
[3] Jdownloader: [http:// jdownloader. org]<br />
[4] Pro Sieben Sat1:<br />
[http:// www. Pro‐Sieben‐Sat1. com]<br />
[5] Einstweilige Verfügung (Az.: 310 O 144/13:<br />
[http:// raschlegal. de/ uploads/ media/ LG_<br />
HH__B. v. _25. 04. 13__Az. _310_O_144‐13. pdf]<br />
[6] RTMPE:<br />
[http:// blogs. adobe. com/ ams/ tag/ rtmpe]<br />
[7] Myvideo: [http:// www. myvideo. de]<br />
[8] Adobe zu RTMPE: [http:// blogs. adobe. com/<br />
digitalmedia/ 2009/ 07/ new_rtmpe_<br />
content_protection_w_1/]<br />
[9] Das Urteil (Az. 310 O 144/13): [http://<br />
raschlegal. de/ uploads/ media/ LG_Hamburg_<br />
Urt__v__29_11_2013__AZ__310_O_144‐13. pdf]<br />
Der Autor<br />
Rechtsanwalt Dr. Christopher<br />
De Nicolo ist Mitglied<br />
der Rechtsanwaltskammer<br />
Nürnberg und berät eine<br />
Vielzahl von Open-Source-<br />
Firmen.<br />
Recht 04/2014<br />
Forum<br />
www.linux-magazin.de<br />
87
Forum<br />
www.linux-magazin.de Bücher 04/2014<br />
88<br />
Ein Informatik-Buch sowie ein Programmier-Ratgeber<br />
Tux liest<br />
Die Bücherseite beschäftigt sich diesmal sowohl mit Theorie als auch mit Praxis: Der erste Titel macht deterministische<br />
Automaten und Turing-Maschinen anschaulich, der zweite verhilft ganz pragmatisch zu besserem<br />
Code beim alltäglichen Programmieren. Tim Schürmann<br />
Welche Probleme lassen sich mit Computern<br />
überhaupt in endlicher Zeit lösen?<br />
Dieser Frage geht nicht nur die theoretische<br />
Informatik nach, sondern auch Tom<br />
Stuart in seinem englischsprachigen Buch<br />
„Understanding Computation“.<br />
Verstehen ohne Mathe<br />
Dabei verzichtet der Autor auf mathematische<br />
Formeln und dröge Beweise.<br />
Stattdessen setzt er durchgehend auf<br />
anschauliche Beispiele und liefert dazu<br />
gleich passenden Ruby-Code. Nach einer<br />
Schnelleinführung in Ruby geht Stuart<br />
auf den Unterschied zwischen Syntax<br />
und Semantik ein. Anschließend baut er<br />
einfache endliche Automaten und zeigt,<br />
wie diese reguläre Ausdrücke auswerten.<br />
Es folgen Kellerautomaten, die als Parser<br />
Verwendung finden, sowie im fünften Kapitel<br />
die erstaunlich universellen Turing-<br />
Maschinen.<br />
Im zweiten Buchteil dreht sich zunächst<br />
alles um den Lambda-Kalkül und seine<br />
Implementierung. Danach stellt Stuart<br />
ein paar einfache Systeme vor, die überraschenderweise<br />
eine Turing-Maschine<br />
simulieren und somit beliebige Programme<br />
ausführen können – darunter<br />
sogar Conway’s Game of Life. Das achte<br />
Kapitel kümmert sich um unmögliche<br />
Info<br />
Tom Stuart:<br />
Understanding<br />
Computation<br />
O’Reilly, 2013<br />
330 Seiten<br />
29 Euro<br />
(E-Book 23 Euro)<br />
ISBN 978-1-4493-2927-3<br />
Programme. Dort stellt Stuart auch den<br />
Begriff der Entscheidbarkeit und das<br />
Halte problem vor. Im letzten Kapitel zeigt<br />
der Autor noch, wie sich Probleme durch<br />
Abstraktionen lösen lassen – zumindest<br />
annähernd – und geht auf die Vorzüge<br />
einer statischen Semantik ein.<br />
Tom Stuart schafft es, das komplexe und<br />
schwierige Thema leicht verdaulich aufzubereiten.<br />
Allerdings endet sein Buch<br />
genau dort, wo es spannend wird. Viele<br />
Bereiche der theoretischen Informatik<br />
streift er nur oder lässt sie sogar ganz<br />
aus, etwa die NP-Vollständigkeit oder<br />
Chomsky-Grammatiken. Dennoch eignet<br />
sich das Buch für Programmierer, die<br />
ein wenig in die Berechenbarkeit hineinschnuppern<br />
möchten, sowie für Informatikstudenten<br />
als Ergänzung zu einem<br />
umfassenderen Lehrbuch.<br />
Code-Besserung<br />
Das vor einem Monat geschriebene<br />
Pro gramm macht, was es will, und der<br />
damals eindeutige Quelltext scheint zu<br />
Spaghetticode mutiert: Solche Situationen<br />
wollen Kathrin Passig und Johannes<br />
Jander mit ihrem Buch „Weniger schlecht<br />
programmieren“ verhindern. Auf knapp<br />
430 Seiten erhalten Entwickler Ratschläge<br />
für besseren Programmcode mit weniger<br />
Fehlern. Die Tipps beruhen auf den<br />
Praxis erfahrungen zahlreicher professioneller<br />
Programmierer. Die wenigen enthaltenen<br />
Codezeilen sind in Java, C++,<br />
C und PHP geschrieben.<br />
Zu Beginn verraten die Autoren, warum<br />
Entwickler sich an Style Guides halten<br />
sollten, wie man Variablen benennt, was<br />
verständliche Kommentare ausmacht, wo<br />
und wie man um Hilfe bittet und wie der<br />
Einzelne im Team überlebt. Anschließend<br />
erfährt der Leser, wie er Fehler aufspürt,<br />
Diagnosewerkzeuge einsetzt, wann Refactoring<br />
nützlich ist und wie er sein Werk<br />
testet. Als Bonus liefern die Autoren eine<br />
Liste mit typischen Fehlerquellen.<br />
Im letzten Drittel geht es um die Wahl der<br />
richtigen Werkzeuge. Entwickler erfahren<br />
hier, warum sich der Griff zu Bibliotheken<br />
und der Einsatz einer Versionskontrolle<br />
lohnen. Zudem gibt es Ratschläge<br />
zur Arbeit auf der Kommandozeile, zur<br />
objektorientierten Programmierung und<br />
zur Sicherheit, darunter etwa Tipps zum<br />
richtigen Umgang mit Passwörtern.<br />
Kathrin Passig und Johannes Jander<br />
verwenden einen lockeren, witzigen<br />
Schreibstil. Tragikkomische Beispiele<br />
aus der Praxis verdeutlichen, wie wichtig<br />
die vorgestellten Ratschläge sind. Insbesondere<br />
im ersten Drittel arbeiten die<br />
Autoren jedoch immer wieder mit recht<br />
ausufernden bildhaften Vergleichen, bei<br />
denen man sich wünscht, sie mögen<br />
doch endlich zum Punkt kommen.<br />
Die Verfasser richten sich zwar primär an<br />
Anfänger, Hobby-Entwickler und „nicht<br />
so erfahrene Programmierer“, ihr Buch<br />
liefert aber auch professionellen Entwicklern<br />
noch wertvolle Tipps. „Weniger<br />
schlecht programmieren“ macht sich<br />
damit gut auf dem Tisch jedes Programmierers.<br />
(mhu)<br />
n<br />
Info<br />
Kathrin Passig,<br />
Johannes Jander:<br />
Weniger schlecht<br />
programmieren<br />
O’Reilly, 2013<br />
460 Seiten<br />
25 Euro<br />
(E-Book 20 Euro)<br />
ISBN 978-3-89721-567-2
Forum<br />
www.linux-magazin.de Leserbriefe 04/2014<br />
90<br />
Auf den Punkt gebracht<br />
Leserbriefe<br />
Haben Sie Anregungen, Statements oder Kommentare? Dann schreiben Sie an [redaktion@linux-magazin.de].<br />
Die Redaktion behält es sich vor, die Zuschriften und Leserbriefe zu kürzen. Sie veröffentlicht alle Beiträge mit<br />
Namen, sofern der Autor nicht ausdrücklich Anonymität wünscht.<br />
Makefiles im Bild<br />
02/14, S. 98: Zu Michael Schillis Auswahl<br />
von Perl-Modulen: Auch mein Modul,<br />
unter [http://makepp.sf.net] zu finden,<br />
verwandelt Makefiles in Graphen.<br />
Daniel Pfeiffer per E-Mail<br />
TÜV für IT<br />
03/14, S. 24: Im Beitrag „Beinharter Erfolg“<br />
habe ich einen kleinen Fehler entdeckt.<br />
Dort ist von einem „TÜV Deutschland“<br />
die Rede, den es aber gar nicht gibt.<br />
Es existieren mehrere TÜV-Konzerne, die<br />
Deutschland mehr oder weniger regional<br />
(Süd, Nord, Rheinland und so weiter)<br />
aufgeteilt haben. In der Quelle ist tatsächlich<br />
nur vom TÜV IT die Rede, der zum<br />
TÜV Nord gehört.<br />
Christian Seip, per E-Mail<br />
Big Memory<br />
03/14, S. 92: Der Artikel „Speicherfresser“<br />
hat mich angeregt, einem mir wohlbekannten<br />
Problem nachzugehen. Mein<br />
Anwendungsfall: Die von einem Backup-<br />
Programm gelesenen Daten landen im<br />
Cache, obwohl sie dort eigentlich nichts<br />
zu suchen haben. Die gelesenen Daten<br />
werden nicht in den nächsten Minuten<br />
er<strong>neu</strong>t benötigt.<br />
Während der (sehr gute) Artikel sich<br />
mit den Auswirkungen beschäftigt, kann<br />
man auch das Problem bei der Wurzel<br />
packen: Vom Backup-Programm gelesenen<br />
Daten gehören nicht in den Cache.<br />
Dafür gibt es »posix_fadvise()« und »PO-<br />
SIX_FADV_DONTNEED«. Für Rsync ist<br />
das – soweit ich weiß – mit der Option<br />
-»‐drop‐cache« möglich. Daneben gibt<br />
es ein Tool namens Nocache, das man<br />
anderen Kommandos voranstellen kann:<br />
[https://github.com/Feh/nocache]<br />
Thomas Güttler per E-Mail<br />
Bei aller Ähnlichkeit funktioniert »posix_<br />
fadvise()« in der Tat etwas anders als das<br />
erwähnte »O_DIRECT«. Allerdings sehen<br />
wir in vielerlei Hinsicht ähnliche Probleme:<br />
Man muss selbst programmieren<br />
und genau wissen, was man tut, sonst<br />
schießt man sich schnell ins eigene Bein.<br />
Eine Anwendung, die sich nicht daran<br />
hält, zerstört unter Umständen das gesamte<br />
System. (Willi Nüßer) n<br />
Errata<br />
03/14, S. 50: Im Kasten „So haben wir getestet“<br />
hatte sich ein Fehler eingeschlichen.<br />
Dort ist an drei Stellen die Gesamtgröße<br />
mit der Einheit Byte angeben, es muss aber<br />
KByte heißen.
Know-how<br />
www.linux-magazin.de Kern-Technik 04/2014<br />
92<br />
Kernel- und Treiberprogrammierung mit dem <strong>Linux</strong>-Kernel – Folge 73<br />
Kern-Technik<br />
Das Tracing-Werkzeug Ktap hilft Admins und Kernelentwicklern bei Tuning und Fehlersuche. Diese Kern-Technik<br />
zeigt die ersten Schritte mit dem Interpreter im Kernel. Jürgen Quade, Eva-Katharina Kunst<br />
© psdesign1, Fotolia<br />
73<br />
<strong>Linux</strong> bietet schon seit Kernel 2.6.9 vom<br />
Oktober 2004 Kernel-Tracing, also die<br />
Möglichkeit, Informationen über Kernelinterne<br />
Abläufe nachzuverfolgen. Bereits<br />
2005 stellte die „Kern-Technik“ die damals<br />
aktuellen Kernel-Interfaces Kprobe<br />
und Jprobe vor [1]. Da diese in der Handhabung<br />
jedoch kompliziert sind, haben<br />
sie nur eine sehr kleine Anwenderbasis<br />
für sich gewonnen.<br />
Mit Systemtap und Dtrace ist in den letzten<br />
Jahren ein Werkzeugkasten entstanden,<br />
mit dem sich das Tracing-Interface<br />
programmgesteuert nutzen lässt. Damit<br />
können Admins und Entwickler komplexe<br />
Fehlersuchen realisieren oder Performance-Bottlenecks<br />
aufspüren.<br />
Allerdings stehen diese Werkzeugkästen<br />
nicht allen offen. Das hängt zum einen<br />
mit lizenzrechtlichen Problemen, zum<br />
anderen mit den technischen Lösungen<br />
als solchen zusammen. Die Dtrace-Lizenz<br />
beispielsweise<br />
verhindert eine Aufnahme<br />
des Codes in<br />
den Standard-<strong>Linux</strong>-<br />
Kernel, auch erlauben<br />
die Komplexität<br />
und die Fixierung<br />
der Lösung auf eine<br />
einzelne Plattform<br />
keinen Einsatz in den<br />
kleineren eingebetteten<br />
Systemen. Außerdem<br />
kann Dtrace das<br />
System „einfrieren“<br />
lassen – bei produktiven<br />
Systemen lässt<br />
der Systemadministrator<br />
also lieber die<br />
Finger davon.<br />
Mit entsprechender<br />
Euphorie haben im<br />
Mai 2013 Admins und<br />
Kernelentwickler den <strong>neu</strong>en Ansatz Ktap<br />
[2] aufgenommen. Als schlanke Lösung<br />
erlaubt Ktap das Tracing auf Embedded-<br />
Systemen genauso wie auf Servern. Eine<br />
eingebaute Skriptsprache zur Definition<br />
der zu messenden Abläufe (Tracing), die<br />
in Bytecode übersetzt auf einer virtuellen<br />
Maschine (VM) im Kernel läuft,<br />
bietet nicht nur Flexibilität, sondern auch<br />
weitgehende Unabhängigkeit von der zugrunde<br />
liegenden Hardware.<br />
Ob auf einer x86-Plattform oder einem<br />
System mit ARM-Prozessor (Tablet,<br />
Smartphone): Der Code läuft gleichermaßen<br />
und vor allem auch in gemischten,<br />
verteilten Umgebungen.<br />
Vorbild Minecraft<br />
Beim Skripting hat sich der Ktap-Entwickler<br />
Jovi Zhangwei für Lua entschieden,<br />
eine Sprache, die speziell zur ein-<br />
fachen Funktionserweiterung von Programmen<br />
geschrieben wurde. Als eingebettete<br />
Skriptsprache findet Lua sich<br />
beispielsweise im Spiel Minecraft, im<br />
Netzwerkanalysator Wireshark, in Nmap<br />
und im Mediaplayer VLC. Der Interpreter<br />
beziehungsweise die zur Abarbeitung<br />
notwendige virtuelle Maschine umfasst<br />
nur wenige Hundert KByte, der Bytecode<br />
selbst besteht aus gerade mal 38 Befehlen.<br />
Die Sprache ist ein Mischmasch aus<br />
C und Pascal und nicht typisiert. Der Typ<br />
einer Variablen, ob Integer oder String,<br />
ergibt sich aus dem Kontext.<br />
Ende 2013 hat Linus Torvalds auf Vorschlag<br />
von Greg Kroah-Hartman den<br />
Ktap-Kerneltreiber in sein Standard-<strong>Linux</strong><br />
übernommen. Allerdings hagelte es<br />
stante pede kräftig Kritik, die Torvalds<br />
zwang den Commit wieder rückgängig zu<br />
machen. Die Kernelentwickler kritisierten<br />
allerdings nicht Ktap selbst, sondern die<br />
Geschwindigkeit, mit der ein so umfangreiches<br />
und auch sicherheitskritisches<br />
Subsystem ohne ausgiebige kritische<br />
Kontrolle übernommen werden sollte.<br />
Jetzt ist die Aufnahme des Subsystems<br />
für einen der nächsten Kernel, vielleicht<br />
3.15, vorgesehen. Dennoch lässt sich<br />
Ktap bereits heute sinnvoll einsetzen.<br />
Interpreter im Kernel<br />
Ktap besteht aus zwei Teilen: zum einen<br />
aus der zumeist als Modul realisierten<br />
Kernelerweiterung »ktapvm.ko« und zum<br />
anderen aus der Applikation »ktap«. Bei<br />
der Kernelerweiterung handelt es sich<br />
um den Interpreter, die VM und die Anbindung<br />
an die Kernelfunktionen, die so<br />
genannte Runtime-Library. Die Ktap-Applikation<br />
lädt Lua-Programme, übersetzt<br />
sie in Bytecode und übergibt diesen dem<br />
Kernel. Sie initiiert die Abarbeitung, holt
Applikation<br />
Bytecode<br />
Ktap<br />
Lua-Interpreter<br />
VM<br />
Output<br />
Ktap-Runtime-Library<br />
Ktap-Skript (Lua)<br />
Userland<br />
Kernel<br />
Kernelmodul<br />
»ktapvm.ko«<br />
»uprobe« »kprobe« »ftrace« »perf«<br />
Abbildung 1: Ktap besteht aus einem Kernelmodul<br />
und einer Applikation.<br />
die Ergebnisse ab und stellt sie auf dem<br />
Bildschirm dar (Abbildung 1).<br />
Die Installation von Ktap gestaltet sich<br />
unter Ubuntu 12.04 LTS erfreulich problemlos.<br />
Der mitgelieferte Betriebssystemkern<br />
ist bereits mit den benötigten<br />
Optionen »CONFIG_EVENT_TRACING«,<br />
»CONFIG_PERF_EVENTS«, »CONFIG_<br />
DEBUG_FS« und »CONFIG_FTRACE_SYS-<br />
CALLS« kom piliert. Damit braucht man<br />
nur noch den Ktap-Quellcode per Git auf<br />
den Rechner zu holen und per »make« zu<br />
übersetzen. Es empfiehlt sich, zuvor noch<br />
die Pakete »elfutils« und »libelf‐dev« zu<br />
installieren. Mit Hilfe dieser Werkzeuge<br />
beziehungsweise Bibliotheken verarbeitet<br />
Ktap ELF-Dateien (Executable and Linkable<br />
Format) sowie die in Programmdateien<br />
hinterlegten Meta-Informationen<br />
und löst Adressen auf. Damit ist es Ktap<br />
auch möglich, Applikationen zu überwachen.<br />
Listing 1 zeigt die Kommandos zum<br />
Installieren im Detail [3].<br />
Nach dem erfolgreichen »make load«<br />
aus dem Quellcode-Verzeichnis heraus<br />
ist Ktap einsatzbereit. Optional kann der<br />
Admin noch »sudo make install« sowie<br />
danach »depmod« aufrufen. Damit installiert<br />
er Kernelmodul und Applikation<br />
für den systemweiten Zugriff. Allerdings<br />
wird das Kernelmodul beim nächsten Update<br />
des <strong>Linux</strong>-Kernels nicht automatisch<br />
<strong>neu</strong> generiert. Für alle Freunde des Editors<br />
Vim installiert »make install« gleich<br />
Syntaxdateien mit, die die Schlüsselwörter<br />
im Editor farblich hervorheben.<br />
Einzeiler<br />
Ein erster Test mit Ktap ist schnell<br />
durchgeführt. Dazu gibt der Anwender<br />
im Ktap-Quellcodeverzeichnis (hier hat<br />
»make« den Applikationsteil abgelegt)<br />
auf der Kommandozeile den Einzeiler<br />
sudo ./ktap ‐e 'printf("Hello World\n")'<br />
ein. Verständlicherweise benötigt Ktap<br />
bei der Ausführung Rootrechte, sodass<br />
man es mit vorangestelltem »sudo« auf-<br />
Listing 1: Ktap installieren<br />
01 $ sudo apt‐get install elfutils libelf‐dev<br />
02 $ git clone http://github.com/ktap/ktap.git<br />
03 $ cd ktap<br />
04 $ make<br />
05 $ sudo make load<br />
Kern-Technik 04/2014<br />
Know-how<br />
www.linux-magazin.de<br />
93
Know-how<br />
www.linux-magazin.de Kern-Technik 04/2014<br />
94<br />
01 # ktap ‐e<br />
Ein weiteres Beispiel zeigt Listing 3. Hier<br />
listet Ktap fortlaufend jene Programme<br />
auf, die den Systemcall »open()« aufrufen.<br />
Dabei gibt es neben dem Programmnamen<br />
auch den Name der Dateien aus,<br />
auf die die Anwendungen zugreifen.<br />
Besonders interessant ist die Fähigkeit<br />
der Programmiersprache Lua, mit Tabellen<br />
in Kombination mit Histogrammen<br />
umzugehen. Tabellen dürfen in ihren Zeiruft.<br />
Auf die Eingabe des Passworts reagiert<br />
die Anwendung mit dem bekannten<br />
Erstlingswerk „Hello World“.<br />
Die Option »‐e« erlaubt es, ein Kommando<br />
direkt anzugeben, ohne sie erwartet Ktap<br />
eine Skriptdatei. Innerhalb der Hochkommata<br />
folgen die auszuführenden Befehle<br />
in der Programmiersprache Lua. Im obigen<br />
Fall ist das nur ein »printf()«. Das in<br />
der Programmiersprache C übliche Semikolon<br />
kann, muss aber nicht folgen. Eine<br />
»main()«-Funktion wie in C-Programmen<br />
gibt es nicht.<br />
Die so genannte Runtime-Library erweitert<br />
Lua unter anderem um Funktionen<br />
zum Kernel-Tracing. Wesentlich<br />
ist »trace«, gefolgt von der Angabe eines<br />
Funktionsbereichs und – durch Doppelpunkt<br />
getrennt – eines Funktionsnamens,<br />
durchaus auch in Form eines regulären<br />
'trace sched:sched_process_exec<br />
{ print("cpu pid name: ", cpu(), pid(),<br />
execname()); }'<br />
Listing 2: Aktive Rechenprozesse<br />
ausgeben<br />
02 Tracing... Hit Ctrl‐C to end.<br />
03 cpu pid name: 2 20990 sh<br />
04 cpu pid name: 1 20991 ps<br />
05 cpu pid name: 3 20992 grep<br />
06 cpu pid name: 3 20993 sh<br />
07 cpu pid name: 2 20994 sh<br />
08 cpu pid name: 3 20995 w<br />
09 cpu pid name: 1 20996 grep<br />
10 cpu pid name: 2 20998 grep<br />
Listing 3: Ktap überwacht das<br />
Öffnen von Dateien<br />
01 sudo ./ktap ‐e 'trace syscalls:sys_enter_open<br />
{ print( execname(), user_string(arg2)) }'<br />
02 <br />
03 Tracing... Hit Ctrl‐C to end.<br />
04 ktap /sys/kernel/debug/ktap/trace_pipe_6976<br />
05 sh /etc/ld.so.cache<br />
06 sh /lib/x86_64‐linux‐gnu/libc.so.6<br />
07 sh /tmp/numLogin.txt<br />
08 sh /etc/ld.so.cache<br />
09 sh /lib/x86_64‐linux‐gnu/libc.so.6<br />
10 w /etc/ld.so.cache<br />
11 w /lib/libproc‐3.2.8.so<br />
12 w /lib/x86_64‐linux‐gnu/libc.so.6<br />
13 grep /etc/ld.so.cache<br />
14 grep /lib/x86_64‐linux‐gnu/libdl.so.2<br />
15 grep /lib/x86_64‐linux‐gnu/libc.so.6<br />
16 w /proc/version<br />
17 w<br />
18 w /proc/1/stat<br />
19 [...]<br />
Ausdrucks. Außerdem folgt noch eine<br />
durch geschweifte Klammern eingefasste<br />
Codesequenz. Immer wenn die hinter<br />
»trace« definierte Kernelfunktion ausgeführt<br />
wird, arbeitet der Lua-Interpreter<br />
die Codesequenz ab (Abbildung 2).<br />
Prozesse beobachten<br />
Listing 2 zeigt einen Ktap-Befehl samt<br />
Ergebnis, der die gerade aktiven Rechenprozesse<br />
ausgibt, und zwar mit deren<br />
PID, Namen und der CPU, auf der der<br />
Job läuft. Die in der Befehlszeile verwendeten<br />
Funktionsaufrufe »cpu()«, »pid()«<br />
und »execname()« sind fest in Ktap eingebaut.<br />
Weitere Standardfunktionen listet<br />
Tabelle 1 auf.<br />
Auf das Kommando »./ktap ‐le« gibt Ktap<br />
die Namen der Funktionen aus, die man<br />
mit dem Befehl »trace« verwenden und<br />
überwachen kann. Bei Kernel 3.5.0 sind<br />
das immerhin 1254. Es gibt noch viele<br />
weitere Routinen, auf die Ktap über das<br />
Ftrace-Subsystem zugreift. Der Befehl<br />
»ktap ‐lf Programm« listet Funktionen<br />
auf, die man zusätzlich in der Anwendung<br />
»Programm« tracen kann.<br />
Wie sich damit ein in C geschriebenes<br />
„Hello World“-Programm überwachen<br />
lässt, zeigt Abbildung 3. Dort ist ebenfalls<br />
zu sehen, wie unter der Kontrolle<br />
Funktionsname<br />
print()<br />
printf(fmt, […])<br />
pairs(t)<br />
len(s)<br />
len(t)<br />
in_interrupt()<br />
exit()<br />
pid()<br />
tid()<br />
uid()<br />
execname()<br />
cpu()<br />
arch()<br />
kernel_v()<br />
user_string(addr)<br />
histogram(t)<br />
curr_task_info(offset,<br />
fetch_bytes)<br />
print_backtrace()<br />
Kernelsubsystem<br />
»trace fbereich:fname<br />
{<br />
Codesequenz<br />
} «<br />
»trace_end<br />
{<br />
Codesequenz<br />
} «<br />
von Ktap die mit »‐‐ Programm« angehängte<br />
zu tracende Applikation startet.<br />
Bereits laufende Programme lassen sich<br />
übrigens unter Angabe ihrer Prozess-ID<br />
mit »‐p PID« überwachen.<br />
Systemcalls<br />
Tabelle 1: Funktionen der Ktap-Runtime-Library [3]<br />
Funktionsname<br />
Wird mit jedem Auftreten<br />
der Funktion<br />
»fbereich:fname«<br />
abgearbeitet.<br />
Aufruf erfolgt nach<br />
[Strg] + [C]<br />
Abbildung 2: Per »trace« setzt der Anwender Überwachungspunkte.<br />
Bedeutung<br />
Schnelle, unformatierte Ausgabe von Daten<br />
Formatierte Ausgabe von Daten<br />
Funktion, um über alle Schlüssel-Wert-Paare einer Tabelle zu iterieren<br />
Falls das Argument ein String ist, wird die Länge des Strings zurückgegeben;<br />
ist das Argument eine Tabelle, ist das Ergebnis die Anzahl der<br />
Tabellenelemente<br />
Falls sich das System gerade im Interrupt-Kontext befindet, gibt die Funktion<br />
»true« zurück<br />
Beendet Ktap<br />
Gibt die PID des gerade aktiven Jobs zurück<br />
Gibt die Thread-ID (TID) des aktuell ausgeführten Jobs zurück<br />
Liefert die UID des aktuell ausgeführten Jobs<br />
Gibt den Namen des aktuell ausgeführten Jobs zurück<br />
Gibt die ID der CPU an, die für die Abarbeitung zuständig ist<br />
Gibt in Kurzform die Architektur der Maschine zurück (»x86«, »arm«, …)<br />
Liefert die Kernelversion<br />
Liefert den zu einer Adresse aus dem Userspace gehörenden String<br />
Stellt die als Parameter übergebene Tabelle als Histogramm dar<br />
Liefert einzelne 4 oder 8 Byte breite Werte aus dem Task-Control-Block<br />
des gerade aktiven Jobs zurück<br />
Gibt den Stack-Trace des aktuell ausgeführten Jobs aus
Abbildung 3: Ktap überwacht auch Applikationen.<br />
len beliebig viele Elemente enthalten, die<br />
sogar noch unterschiedlichen Datentyps<br />
sind. Sie lassen sich in Lua wie Felder<br />
über Indizes, aber auch in Form so genannter<br />
assoziativer Felder ansprechen.<br />
Ein solches Feld speichert einen Schlüssel-Wert-Verbund<br />
(Key-Value). Der Index<br />
des Feldes ist ein Name (String). Damit<br />
lässt sich etwa zählen, wie oft einzelne<br />
Systemcalls aufgerufen werden.<br />
Das Kommando »histogram()« stellt<br />
das Ergebnis übersichtlich dar. So zeigt<br />
Listing 4, wie Ktap die Häufigkeit von<br />
Systemcalls zählt, die an ihrem Namensvorsatz<br />
»sys_enter_« zu erkennen sind.<br />
Der Name des Systemcalls (»argname«)<br />
dient als Index (Schlüssel) für die Tabelle<br />
»s«. Mit jedem Auftreten zählt der zugehörige<br />
Tabelleneintrag hoch. Sobald der<br />
Anwender Ktap per [Strg]+[C] abbricht,<br />
ruft es die Funktion »trace_end()« auf<br />
(siehe Abbildung 2). Diese gibt die Tabelle<br />
»s« als Histogramm aus.<br />
Ausblick<br />
Auf seiner Homepage [4] nennt der<br />
Kernelentwickler Brendan D. Gregg weitere<br />
Beispiele, die belegen, welches Potenzial<br />
der Interpreter im Kernel hat. Der<br />
Overhead hält sich dabei nach Angaben<br />
Die Autoren<br />
Eva-Katharina Kunst, Journalistin, und Jürgen<br />
Quade, Professor an der Hochschule Niederrhein,<br />
sind seit den Anfängen von <strong>Linux</strong> Fans von Open<br />
Source. Mit „Embedded <strong>Linux</strong> lernen mit dem<br />
Raspberry Pi“ veröffentlicht Jürgen Quade demnächst<br />
sein drittes <strong>Linux</strong>-Buch.<br />
der Entwickler mit knapp 10 Prozent in<br />
Grenzen. Sie arbeiten derzeit daran, ihn<br />
weiter zu reduzieren.<br />
Allerdings sollte niemand vergessen, dass<br />
ein Interpreter im Kernel sicherheitstechnisch<br />
betrachtet ein Desaster darstellt,<br />
oder anders formuliert: ein Freudenfest<br />
für jeden ambitionierten Hacker. Ein Systemadministrator<br />
sollte das Ktap-Modul<br />
also nur vorübergehend bei Bedarf laden.<br />
Dann allerdings kann er selbst komplexe<br />
Fragestellungen tracen, zumindest dann,<br />
wenn er ausreichend Wissen über den<br />
Kernel, Lua und die Ktap-Runtime-Library<br />
besitzt.<br />
Weitere Informationen<br />
über die Programmiersprache<br />
Lua und die<br />
Ktap-Library vermittelt<br />
die nächste Folge<br />
der Kern-Technik. Daneben<br />
beschreibt sie<br />
das Foreign Function<br />
Interface (FFI) von<br />
Ktap. Mit ihm lassen<br />
sich direkt aus dem<br />
Lua-Skript Funktionen<br />
des <strong>Linux</strong>-Kernels aufrufen,<br />
beispielsweise<br />
»printk()«.<br />
Als Zugabe demonstriert<br />
die nächste Folge<br />
außerdem, wie man mit Ktap ein einfaches<br />
Tetris spielen kann (siehe Abbildung<br />
4). Alles im Betriebssystemkern,<br />
versteht sich. (mhu) n<br />
Infos<br />
[1] Quade, Kunst, „Kern-Technik, Folge<br />
22 – Debugging mit Kernel-Probes“:<br />
<strong>Linux</strong>-<strong>Magazin</strong> 08/05, S. 82<br />
[2] Ktap: [http:// www. ktap. org]<br />
[3] Ktap-Tutorial:<br />
[http:// www. ktap. org/ doc/ tutorial. html]<br />