 Hallo und willkommen zu noch einen Beitritt Vortrag hier in der Kraustone, im Kraustone TV live aus unserem Patsdamer Studio. Dieser Vortrag geht über reproduzierbare Gebäudeinfrastruktur von Astro. Wir sind hier die Übersetzer und zwar sind wir Kalluera und ich Franzte. Vor drei Jahren hat der C3D2 in ein neues renoviertes Gebäude eingezogen und haben dort die Netzwerkinfrastruktur übernommen und haben quasi die Internet Service Provider in diesem Gebäude für die ganz umgebende Organisationen geworden. Hier wird Astro erzählen, wie er dieses ganze Netzwerkinfrastruktur strukturiert hat und basierend auf nix so ist sie umstrukturiert hat. Viele neue Informationen und viel Spaß bei diesem Vortrag hier produzierbare Netzwerke. Hallo und willkommen zurück. Ja, wir haben die Probleme gelöst. Lass uns auch mal von vorne anfangen. Ich bin ein Softwareentwickler, aber ich bin ein Computeradministrator und ich habe ein großes Interesse an benutzbarer Netzwerkinfrastruktur, weil ich das brauche, wenn ich Software schreibe und derzeit habe ich eine Meinung dazu aufgebaut, wie Computernetzwerke aufgebaut sein sollen, dass sie ihren Benutzern wirklich helfen und nicht nur weitere Antwortungen stellen. Ich habe mich immer gefragt, wie können das gemacht werden? Aber vor fünf Jahren hatte ich die Möglichkeit, das auszuprobieren, bei einem größeren Räumen und habe dabei viel gelernt und nachher war ich diesen Vortrag, weil ich meine ganzen Erfahrungen teilen möchte und vielleicht euch dabei helfen möchte, eine ähnliche Sache für eure Europäer zu realisieren in unserer Gesellschaft. Zuerst ein bisschen über die Location. Unser Hackspace war vorher in einem Bürokomplex und da wäre das Ganze nicht möglich gewesen. Aber dann sind wir das Zentralwerk, und wir haben diese kreativen, offenen Menschen gefunden, die diese alten Fabrik aufarbeiteten und wir haben sofort geführt, dass wir zusammenarbeiten können und es gibt die Umgebung, das ist super. Das heißt, die alte Fabrik hat Türme, wo wir freifunknenden Netzwerken konfigurieren können und wo wir Antennen installieren können und Radio Sachen machen. Es hat viele Möglichkeiten gegeben, Sachen mit Technologie zu machen. Es gibt sogar einen großen Raum, einen Ballraum, der wunderschönes Eventmöglichkeiten ist, wo wir unsere jährliche Konferenz die Datenspuren abhalten und das ist eine wunderschöne Atmosphäre. Und in diesem Gebäuden gibt es viele Internetkabel, die überall hinlaufen, aber keine technischen Leute vor uns da waren, haben wir sie realisiert oder haben wir sie laufen gezogen und ich hatte Angst, dass ein wachsendes Chaos aufbaut, wenn wir das nicht tun und darum habe ich alle interessierten technischen Leute eingeladen und haben einen Plan gebaut und das machen wir seitdem. Und unsere Ziele waren natürlich, wie sie Facebook machen wollen, Facebook schauen, viele, die meisten Leute wollten auf Facebook benutzen können, aber die meisten Leute wären sehr glücklich, wenn sie einfach über einen Netz, also Network Address Tensation ins Internet kommen und das Wertteil des Netzwerkes wächst mit den Geräten, die mit ihm verbunden sind und die Benutzer dieses Netzwerks und darum wollte er nicht. Warum möchte man mit dem Netzwerk verbunden sein? Vielleicht möchte man mit noch schnelleren Netzkabel verbunden sein, um die Lüste zu verbinden. Wir haben viele Organisationen, die Netzwerksamteilen um einen hochqualitativen Ablink zu haben. Das heißt, für weniger Geld gibt es mehr Spitzenbandbreite für alle und es gibt wieder Audioprobleme und Internetzugang notwendiger Anforderungen ist im 11. Jahrhundert. Müssen brauchen wir offenes WLAN und es ist schade, dass es so wenig offenes WLAN in Deutschland gibt. Wenn ich das Netzwerk laufe oder realisiere, dann muss es offenes WLAN geben und weil wir offenes und verschlüsseltes WLAN parallel haben, müssten wir die WLAN-Exitpoints modifizieren, was eine signifikante Änderung ist zu einem normalen Internet-Service-Provider und dann wollten wir es nutzbar machen, doch über das Internet hinaus, wir wollten Zusammenarbeit ermöglichen. Darum haben wir dieses End-to-End-Konfiguration des Netzwerks in unser Internet gemacht. Wir haben keine Netzwerkadress-Translations zwischen den Netzen, das heißt, Teilen von Druckern funktionieren sogar und auch und wir haben sogar ein paar Services, die dort laufen für die Hausinterna Services, aber das ist nicht worüber dieser Vortrag ist. Dieser Vortrag ist haptächtig über die Unterliegen, die Infrastruktur. Und weil ich jetzt da nicht der einzige Person ist, sein möchte, die dafür verantwortlich ist für diese ganzen Sachen, habe ich versucht zusammenarbeitende Administrationen von Anfang an zu implementieren und ja, ich möchte den Busfaktor natürlich erhöhen, das heißt, wenn irgendwas zu mir passiert, mit mir passiert, dann können andere Leute sich weiter darum kümmern, aber ich wollte auch Benutzer dazu führen und zu bringen, dass es selber ein Teil der Infrastruktur zu behüten, die außerhalb ihrer eigenen Bereich ist. Das wäre sehr attraktiv, also ich würde das auch gerne machen wollen, das heißt, ich mache meine eigenen Gefühle weiter zu anderen. Es gibt ein paar vertrauenswürdige Nachbarn, außerhalb des Internets, die auch Zugang zu den Servern haben, aber im Endeffekt interessiert sich keiner wirklich dafür, so lange alles funktioniert. Aber wie können wir coer die Zusammenarbeit und Transparenz ermöglichen? Wir haben alle Konfigurationen gibt, Repositories, vor fünf Jahren haben wir angefangen mit einem Salt Stack und das wurde mir damals empfohlen, das mochte ich nie besonders, und darum bin ich dann zu NextOS umgestiegen dieses Jahr und das bedeutet, der ganze Setup ist vollständig reproduzierbar, einfach nur mit Code. Das ist super für Konsistenz, das heißt, was man in Repositories sieht, ist die Dokumentationen, das gibt keine Dateien, die in irgendwelchen ETCs liegen, die dann von irgendjemandem verändert wurde. Glücklicherweise ist das für NextOS, dass es alles erzogen wird, aber es könnte man auch mit anderen Deployment-Werkzeichen realisieren. Und wenn man die Dateien in der ETC anfasst, dann vergisst man, dass man das gemacht hat nach ein paar Tagen und welche Dateien wurden verändert und wenn man das mit anderen zusammenarbeitet, dann wird das doch schlimmer. Also ein zentrales Repository, wo die ganzen Informationen vorhanden sind, in einem Platz ist sehr wichtig für Transparenz. Ich bin ein Fan von NextOS, ein Fanboy und wenn es gerade kein Dokdown ist, dann tauschen wir die Codes aus und haben Bullpatter-Cast-Reviews in dem Space. Das heißt, es gibt Leute, die sagen, dass wir darum reden, wenn ich zu viel über NextOS und wenn ihr die deklarativen Administrationen haben wollt, die mit denen nicht zusammenarbeitet, dann ist es ein Blocker für Leute, die das nicht gewohnt sind, die das nicht machen, die das einfach Dateien ändern. Das ist meine Erfahrung. Du musst die Leute ignorieren, die Leute reden immer mit mir über Dokumentation. Und Leute, die sich nicht Code angucken, gucken sich auch keine Dokumentation an und die Dokumentation geht, ist auch sehr oft outdated und deshalb haben wir das alles im Repository und wir haben solche Schilder aufgehangen, sodass jeder Nachbar sich das angucken kann, aber eigentlich scannt niemand diese QR-Codes und selbst das Admin-Team liest nicht gerne Dokumentationen. Also mache ich kleine Skripte für so reguläre Anfeindedinge, die kleinen Skripte müssen nur angewandt werden und die sind dokumentiert. Und wie haben wir unser Network-Design, bevor wir Leute damit verbinden müssen, wir unser Netzwerk aufteilen, sodass die ihrer lokalen Netzwerke nicht kaputt machen können, mit irgendwelchen lokalen DHCP-Servern oder irgendwie Traffic umleiten können oder so was. Deshalb wollen wir was Isoliertes haben zwischen den Nachbarn und dem Server und dann uns auf dem IP-Level verbinden mit wohldefinierten Rooting und vielleicht sogar Firewalls. Deshalb brauchen wir da für Virtualization und eine Off-Verwendete Technologie für das Virtual Alarm. Und da gibst du einem Netzwerk einfach eine Nummer in einem Switch und da kannst du dann mehrere Netzwerke über ein Kabel senden. Da gibt es das VLAN Packet Format. Das könnt ihr hier sehen. Oben könnt ihr das normale Ethernet-Frame sehen mit einer Ziel- und Zoos-Adresse und unten. Und da ist ein Speziarpaket Typ vor VLAN, wo auch das Gefolge mit einer Netzwerknummer mit dem dann am Ende kommt das Rest von dem originalen Paket. Wenn ein Netzwerkgerät also ein Paket bekommt und was das erkennt und versteht, kann das dann die Nummer auslesen und das dann zum richtigen Netzwerk weiterverlecken. Und viele konfigurierbare Switches und Linux und OpenWRT-Geräte erkennen das und das ist was wir nutzen. Hier könnt ihr billige WLAN-Router sehen, welche OpenWRT unterstützen und wir haben die für unsere Nutzer, welche dann nicht nur ihre privaten WLAN-Netzwerke, aber auch die Öffentlichen da drauf laufen haben. Und wir wollen halt dieses OpenWRT, weil es auch auf vielen billigen Geräten läuft und wir bekommen Update und Net und Leute sagen mir auch, dass man von den richtigen Verkäufern einfach die Geräte kaufen soll, aber das ist nicht, was wir hier tun. Und das nicht, die Switches, die du normalerweise für kaufst, aber das sind Manager, also stark konfigurierbare Switches, wo die Pots und so was können. Und unten ist das wichtigste ein Linux-Server und sobald wir Linux haben, haben wir Freiheit und können alles tun, was wir wollen. So wie konfigurieren wir diese Device? Die Geräte jetzt, die Konfigurationen kommen von unserem Repository und von deren Daten generieren wir dann Expect-Skripte. Expect ist eine Domain-Specific-Sprache und das sendet Ausgaben aus und erwartet das Eingaben. Und so können wir Tenet und andere Verbindungen kontrollieren bei diesen Geräten. Und ja, es ist archäisch, aber es funktioniert mit jedem Gerät, was man über die Command-Line konfigurieren kann und wir brauchen keine super speziellen Tools, um unsere Geräte zu nutzen. Und alle unsere Geräte kriegen wir umsonst. Da gibt es keine aktuelle Software für manche Netflix-Bitches brauchen. Konfiguration über ein Web-Interface, was nur ein Net Explorer 6 unterstützt und wenn du dann so ein verstecktes Command-Line-Tool über Tenet erkennst, dann ist es super, wenn du es reproduzierbar machen kannst. Aber eigentlich ist es wirklich scheiße, dass diese Technologie kein, nicht mehr unterstützt wird mit Updates, ist das Netzwerk Infrastruktur, aber ich habe lieber ein Linux-Gerät mit 48 Netwerks. Wie teilen wir unser Netzwerk auf? Wir haben die folgende Netzwerktypen, wir haben Management-Network, das ist nur dafür da, um die Geräte anzusprechen und um sie zu rekonfigurieren mit unseren Rippen. Wir haben das Kernnetzwerk für die Router im Zentrum und da haben wir ein Router-Protokoll und ein konsistente Ansicht auf die Router sind miteinander verbunden und für jedes Netzwerk wie Clients haben, haben wir ein Gatereader zwischen den Router und den Client-Networks, der ist eins für Services, eins für den Hackers-Days, eins für das Offener und viele für die Nachbarn und es gibt auch isolierte Netzwerke, weil manchmal Leute Angst davon haben mit CCC-Leuten sich zu verbinden, also können wir denen dann trotzdem isolierte Ethernet-Links anbieten. Das war auch super praktisch für Konferenzen wie Datenspuren, wo das VOC-Volta-Audio-Videobritches haben und das dann in einem anderen Raum haben wollte. Da haben wir eine Menge Flexibilität, die von dem Manageable Switches kommt, wenn du die überhin tust. Das hier ist die Konfiguration, eine Grafik über unsere Konfigurationstaten und Rechtecke sind die Switches und sechsläglich sind die Access Points und billige Access Points sind sehr oft konfiguröbare Switches und die haben oft Tipps in Zeit über die man die Switches konfigurieren können und die werden jetzt verbunden mit IPv6 und IPv4. Das ist das falsche Bild. Das ist immer noch die physische Struktur. Da haben wir eine Sternentropologie mit dem Kern im Zentrum. Das ist wo die Router sind und da läuft ein Router-Protokoll, wodurch wir Router einfach hinzufügen kann, ohne alles neu zu konfigurieren. Also haben wir volle Flexibilität und keine Beschränkungen bei embedded hardware und ich weiß, es gibt hardware, die IPv4 und v6 Routing machen kann, aber da ist viel mehr Potenzial. So für die Router haben wir Granulativität beim Router-Level, die dann in Linux Containern sind und das ist nicht wie Docker, aber es ist vollständig NixOS in Alexia und da haben wir für den Routable Network Interface in jedem Container und damit können wir dann das Kernnetzwerk und eines der Access-Netzwerke in einen Container bringen. So was machen die Router-Container jetzt? Sie machen Routing und Routing für die Internet-Uplinks und auch für die Routers zwischen den Access-Networks und wir haben die ACP-Service der und für die IPv6-Adressen haben wir Router-Adjustment und Nachbarn können auch eine Firewall haben, wenn sie auch bestimmte Einkommensverbindungen nicht haben wollen. Wenn ihr geteilte Infrastruktur habt, haben Leute Angst vor Leechern und dafür brauchen wir Paket und Scheduling auf den Sendenden-Infofaces und dafür haben wir für eine Zeit lang halt ein kontrolliertes Delay genutzt und das ist auch der Default für OpenWRT und das führt dazu, dass auch Warteschlangen im Wi-Fi kurz bleiben. Inzwischen gibt es Cake, das erweitert auf Co-Dependence und es bringt viele weitere Features mit, die der zu fühlen, dass man trotzdem immer einen gestellten Internetzugang hat. So, jetzt, wo unsere Netzwerke funktioniert und Internet zu vielen Leuten zur Verfügung stellt, habe ich viel darüber nachgedacht, wie man die Qualität aufrechterhalten kann. Also wir haben unser Netzwerk auf relativ günstigen Geräten, da gibt es keine Ersatzgeräte, es gibt keine Rettun-Danz, weil es keine ähnlichen Geräte mehr gibt und das bedeutet, wir haben das beste Monitoring. Die Leute rufen mich an, wenn das Internet nicht mehr funktioniert und ich möchte die Leute glücklich machen und weil wir WLAN-Geräte auf der Firma haben, wo wir nicht hingehen können und Kabel überprüfen können, hatte ich Angst, dass Kabel ausgesteckt werden und dann würde da WLAN-Netzte nicht funktionieren und warum habe ich einen kleinen Cronenjob, der alle paar Minuten nachschaut, ob wir immer noch mit dem Server verbinden können und wenn es nicht mehr ist, dann wird das WLAN ausgeschaltet. Das führt dazu, dass es keine kaputten WLAN-Netzte mehr gibt. Inzwischen haben wir mehrere Internetverbindungen, ursprünglich hatte ich mit geplant, das unterschiedliche Nachbarn in eine Netzwerkverbindung zu verbringen, aber im Endeffekt ist eine große Internetverbindung ausreichend für alle. Das heißt, Leute, kümmern sich nicht darum, darüber welche Technologie sie benutzen, um im Internet zu kommen, sie wollen einfach nur, dass das Internet funktioniert und ich möchte ihnen die schnellste Erfahrung geben, die möglich ist und alle sind über die schnellste Internetverbindung geroutet, nur das öffentliche Internet, weil wir in Deutschland sind, geht jetzt nicht direkt, sondern wir sind ein VPN-Provider und es gibt noch mehr Internetverbindungen, die wir inzwischen haben und ich benutze sie als Fallback, weil wir jetzt schon ein echtes Routing-Protokoll laufen lassen zwischen den Routern. Wir haben ein paar dynamische Teilen des Routing-Status und USPF hat aber auch einen konsistenten Zugang zum Netzwerk und wenn wir mehrere Routen zum Internet haben, dann entscheidet das Netzwerk, welche Router alle benutzen sollen und darum habe ich versucht, eine Lösung zu finden und dann habe ich herausgefunden, dass USPF auf einem Netzwerk mehrere Instanzen proexistieren kann und das heißt, man kann das über die Routing-Protokoll-Implimentation anfigurieren, sodass dann Routing-Protokoll für den Instanzen ausgewählt werden kann. Das heißt, wir haben die Entscheidungsprozesse nicht mehr auf dem Protokoll, sondern in der Routing Suite und können da Präferenzen angeben, dazu welcher Internet ein Router genutzt werden soll, wenn das Internet nicht mehr funktioniert. Und das funktioniert gut, weil wir NAT haben, wir haben leider keine öffentlichen IP-Adressen, keine öffentlichen IPv4-Adressen, wir haben öffentliche IPv6-Adressen in dem Netzwerk, aber das funktioniert auch immer noch, weil das Internet, wenn das nicht passt, dann benutzen wir NAT 6.6, also wenn wir einen anderen Netzwerk verbunden haben. Im hackerspace, weil wir mehrere Internet-Connection-Verbindungen haben, gibt es mehrere Default-Routen für die Leute, die sich darum kümmern wollen. Die meisten Leute können eine andere Default-Route benutzen, um Spaß zu haben, wenn sie anders ins Internet wollen. Weil wir mehrere Server haben, inzwischen haben wir Services, darum schaue ich mir auch Redundanz an, für das Netzwerk, Redundanz wird. Und ich habe jetzt einen zweiten Server, der cool stand by ist, ich update ihn regelmäßig und mitsele den echten Status drauf und fahre ich ihn wieder runter, weil Server brauchen Energie und Energie, kurz zu drehen. Aber ich habe jetzt auch mir angeschaut, ob man PaceMaker benutzen könnte, weil diese Container, die können ziemlich unabhängig für in ihrem Host und die können einfach freier in einem Server laufen, das heißt es wäre wirklich brauchbar, wenn wir um Hochverfügbarkeit zu implementieren, um sie automatisch auf einem anderen Server zu starten, wenn der erste Server ausgeschätzt wird oder kaputt geht. Um ein bisschen kurz zu zeigen, so sieht unsere Nix-Konfigurationen aus. Wir haben Nix-Konfigurationen für alle Container, für alle Services, die laufen und wir bauen daraus Pakete. Pakete beinhalten immer ein Endnachsystem, das jetzt dafür schnell konfigurieren können und wir können auch schnell zurückrollen und auf einen alten Stand zurückgehen und wir haben hier auch die Gerätekonfigurationsskripte, die Pakete sind, die wir ausführen können und damit die Pakete deployen können, ausrollen können und damit kriegen wir perfekte Reproduzierbarkeit, weil alle Versionen in der Codebasis sind oder in der Konfigurationsbasis sind und Nix-S ermöglicht uns, uns auch das System lokal in einer virtuellen Maschine schnell zu starten, das heißt, ich kann das Ganze auf meiner normalen Computer starten und wenn es funktioniert, kann ich es in Produktionen schieben und dann funktioniert das ziemlich gut in die meiste Zeit. Oder funktioniert das immer sehr ziemlich gut. So, inzwischen haben wir drei isolierte Netzwerke, ein Hackerspace-Netzwerk, 42 Nachbar-Netzwerke, wir haben 41 WLAN-Exes-Punkte, WLAN-Zulangspunkte mit einem offenen WLAN und dem WLAN, der uns war, Nachbarn und wenn man Zahlen sich anschaut, dann sind es weniger WLAN-Exes-Punkte als Nachbarn. Heute können einen Plastikrouter sogar teilen. Wir haben sieben Konfigurier bei HotSwitches, wir haben einen Server und einen Code-Standby-Server, wir haben eine Reihe von Services und das ganze Haus ist global überall BV6 erreichbar und es ist über DNS 42 erreichbar und wir haben DNS-Infrastruktur und ein paar Internetverbindungen und ich muss sagen, wenn alles ordentlich läuft, dann ist das Betreiben, dass wir einfach nur Updates haben und neue Teilnehmer ins Fügen und das Projekt macht mir viel Spaß, weil ich einen wichtigen Service anbiete für Leute, die ich kenne und ihr könnt das auch machen. Wenn ihr auch Infrastruktur automatisiert, dann könnt ihr das sehr einfach für andere machen. Ich möchte Ent-zu-Ent-Verreichbarkeit machen, benutzt IPv6 und damit könnt ihr das Internet so benutzen, wie es funktionieren soll. Ende zu Ende, so dass alles so funktioniert, wie es einmal gedacht war. Danke für den Vortrag, reproduzierbare Gebäude-Infrastruktur. Hier werden wir weiter gehen, wir haben einfach Fragen gesammelt und die erste Frage ist, hast du irgendwelche nicht technischen Probleme mit öffentlichen WLAN? Ihr hast schon darüber geredet, aber ihr benutzt VPNs und was sind eure Erfahrungen damit mit ihr nicht technischen Level? Wir waren uns den legalen Problem in Deutschland sehr bewusst, deshalb haben wir immer einen VPN-Provider von Anfang an genutzt und das Problem ist, dass Leute meine QR-Codes nicht scannen, die lesen das nicht, die sehen einfach, da ist ein öffentliches WLAN, das kann man nutzen. Und dann kommen sie später zu mir, hey, ich kann ein privates kriegen und ich habe das genutzt und Leute haben auf meinem Drucker gedruckt und ich weiß nicht, wer das war. Das ist also auch eine positive Erfahrung, dass man damit legal das Netzwerk laufen lassen kann. Eine andere Frage, du hast ein bisschen Werbung für NixOS gemacht, warum hast du nicht G-U-X genutzt, GNU-G-U-X-Linux, zu viele Nebensitz, zu viele Klammern und hier gibt es eine große NixOS-Community und ich mag die Sprache sehr gerne, also es wäre eine Alternative gewesen, aber du bist ein NixOS-Fan. Ja, ich bin ein NixOS-Fanboy, da es gibt Ansible noch viele andere, aber ich finde NixOS ist das Beste. Eine andere Frage, wir haben, die wir gesammelt haben, du hast oder lässt eine Pipeline laufen, die irgendwie verbunden ist zu NixOS. Ich habe keine Ahnung wie NixOS wirklich funktioniert, fragt die Person, hast du also, es läuft also quasi wie eine Pipeline oder ist es implizit in NixOS drin? Es ist irgendwie explizit in NixOS und es war wirklich, es ist alles selbst gescriptet und war super einfach in NixOS. Also lässt du einfach die Updates laufen und jeder bekommt die Infrastruktur und noch ein Danke an dich Astro, nach Dresden, also können wir diesen Talk beenden. Danke zum Zugucken, bei Chaoszone zum Zugucken, live aus Potsdam, bis zum nächsten Stock. Vielen Dank für eure Aufmerksamkeit auch von den Übersetzern, das war der Talk reproduzierbare Gebäude, Netzwerkinfrastruktur von Astro und wurde übersetzt von Franz T. und Kaluera. Für Feedback bitte den Hashtag C3Lingo auf Mastodon oder Twitter verwenden.