{"id":35972,"date":"2019-10-31T22:08:54","date_gmt":"2019-10-31T19:08:54","guid":{"rendered":"https:\/\/prohoster.info\/blog\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie\/"},"modified":"2019-10-31T22:08:54","modified_gmt":"2019-10-31T19:08:54","slug":"avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie","title":{"rendered":"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Die CDSM-Phase ist vorbei, aber das unkontrollierbare Verlangen zu schreiben, bleibt bestehen. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/0\/kdpv.jpg\"><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/2da9a566e92a782cf1205a6da716d4c4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>\u00dcber viele Jahre hinweg litt unser Kollege unter der Erledigung routinem\u00e4\u00dfiger Arbeiten, dr\u00fcckte vor Commits die Daumen und bekam zu wenig Schlaf wegen n\u00e4chtlicher Rollbacks.<br \/>\nDoch dunkle Zeiten finden ein Ende.<\/p>\n<p>Mit diesem Artikel beginne ich eine Reihe \u00fcber <i>Ich<\/i> die Sicht auf Automatisierung. <br \/>\nDabei werden wir die Phasen der Automatisierung, die Speicherung von Variablen, die Formalisierung des Designs, sowie RestAPI, NETCONF, YANG, YDK besprechen und viel programmieren. <br \/>\n<i>Mir<\/i> bedeutet, dass a) dies keine objektive Wahrheit ist, b) nicht unbedingt der beste Ansatz ist, c) meine Meinung sich sogar im Verlauf von der ersten bis zur letzten Ver\u00f6ffentlichung \u00e4ndern kann \u2013 ehrlich gesagt habe ich vom Entwurf bis zur Ver\u00f6ffentlichung alles zweimal komplett umgeschrieben. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>Inhalt<\/h1>\n<p><\/p>\n<ol>\n<li> <b>Ziele<\/b>\n<ol>\n<li>Das Netzwerk \u2013 wie ein einheitlicher Organismus<\/li>\n<li>Konfigurationstest<\/li>\n<li>Versionsverwaltung<\/li>\n<li>\u00dcberwachung und Selbstheilung der Dienste<\/li>\n<\/ol>\n<p>\n <\/li>\n<li> <b>Werkzeuge<\/b>\n<ol>\n<li>Inventarsystem<\/li>\n<li>IP-Adressverwaltungssystem<\/li>\n<li>System zur Beschreibung der Netzwerkdienste<\/li>\n<li>Ger\u00e4teinitialisierungsmechanismus<\/li>\n<li>Vendor-unabh\u00e4ngiges Konfigurationsmodell<\/li>\n<li>Vendor-spezifischer Treiber f\u00fcr Schnittstellen<\/li>\n<li>Mechanismus zur Konfigurationserstellung auf Ger\u00e4ten<\/li>\n<li>CI\/CD<\/li>\n<li>Backup- und Abweichungserkennungssystem<\/li>\n<li>\u00dcberwachungssystem<\/li>\n<\/ol>\n<p>\n <\/li>\n<li> <b>Fazit<\/b>\n <\/li>\n<\/ol>\n<p>\nIch werde das ADSM in einem etwas anderen Format als SDSM f\u00fchren. Gro\u00dfe, ausf\u00fchrliche nummerierte Artikel werden weiterhin erscheinen, und zwischen diesen werde ich kleine Notizen aus meinem Alltag ver\u00f6ffentlichen. Ich werde versuchen, hier den Perfektionismus zu bek\u00e4mpfen und nicht jeden Einzelnen zu polieren. <\/p>\n<blockquote><p> Wie lustig, dass ich den gleichen Weg ein zweites Mal gehen muss.<\/p>\n<p> Zun\u00e4chst musste ich selbst Artikel \u00fcber Netzwerke schreiben, da es im russischen Internet keine gab.<\/p>\n<p> Jetzt konnte ich kein umfassendes Dokument finden, das die Ans\u00e4tze zur Automatisierung systematisiert und die oben genannten Technologien anhand einfacher praktischer Beispiele behandelt.<\/p>\n<p> Vielleicht bin ich im Irrtum, also schickt mir Links zu guten Ressourcen. Doch das wird meine Entschlossenheit nicht \u00e4ndern, zu schreiben, denn das Hauptziel ist es, selbst etwas zu lernen, und das Leben der anderen zu erleichtern ist ein sch\u00f6ner Bonus, der zur Verbreitung von Wissens beitr\u00e4gt.\n<\/p><\/blockquote>\n<p>Wir werden versuchen, ein mittelgro\u00dfes Rechenzentrum LAN DC zu nehmen und das gesamte Automatisierungsschema zu entwickeln. <br \/>\nEinige Dinge werde ich praktisch zum ersten Mal gemeinsam mit Ihnen tun. <\/p>\n<blockquote><p> In den hier beschriebenen Ideen und Werkzeugen werde ich nicht originell sein. Dmitri Figol hat einen hervorragenden <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=MLeiShwb7Qo&amp;list=PLSwGHYY8t8JiGI9powOXDHTAXDSs7FZqt\">Kanal mit Streams zu diesem Thema.<\/a><\/noindex>. <br \/>\n Die Artikel werden in vielen Aspekten mit ihm \u00fcberschneiden. \n<\/p><\/blockquote>\n<p>Im LAN DC gibt es 4 Rechenzentren, etwa 250 Switches, ein halbes Dutzend Router und ein paar Firewalls. <br \/>\nNicht Facebook, aber ausreichend, um ernsthaft \u00fcber Automatisierung nachzudenken. <br \/>\nEs besteht jedoch die Meinung, dass, wenn Sie mehr als ein Ger\u00e4t haben, Automatisierung n\u00f6tig ist. <br \/>\nEs ist schwer vorzustellen, dass jemand heutzutage ohne mindestens ein paar Skripte leben kann. <br \/>\nObwohl ich geh\u00f6rt habe, dass es Firmen gibt, in denen die IP-Adressen in Excel verwaltet werden und jedes der Tausenden von Netzwerkger\u00e4ten manuell konfiguriert wird und eine einzigartige Konfiguration hat. Das kann man nat\u00fcrlich als moderne Kunst verkaufen, aber die Gef\u00fchle eines Ingenieurs w\u00fcrden sicher verletzt werden. <\/p>\n<h1>Ziele<\/h1>\n<p>\nJetzt setzen wir uns maximal abstrakte Ziele:<\/p>\n<ul>\n<li>Das Netzwerk \u2013 wie ein einheitlicher Organismus<\/li>\n<li>Konfigurationstest<\/li>\n<li>Versionierung des Netzwerkzustands.<\/li>\n<li>\u00dcberwachung und Selbstheilung der Dienste<\/li>\n<\/ul>\n<p>\nSp\u00e4ter in diesem Artikel werden wir die verwendeten Mittel n\u00e4her erl\u00e4utern, und in den folgenden Artikeln die Ziele und Mittel im Detail.<\/p>\n<h2>Das Netzwerk \u2013 wie ein einheitlicher Organismus<\/h2>\n<p>\nEin zentraler Begriff in diesem Zusammenhang, auch wenn er auf den ersten Blick nicht so bedeutend erscheint: <b>Wir werden das Netzwerk konfigurieren, nicht die einzelnen Ger\u00e4te.<\/b>. <br \/>\nIn den letzten Jahren beobachten wir einen Trend, das Netzwerk als eine zusammenh\u00e4ngende Einheit zu betrachten, was zur Einf\u00fchrung von <i>Software-Defined Networking<\/i>, <i>Intent Driven Networks<\/i> und <i>Autonomen Netzwerken<\/i>. <br \/>\nDenn was ben\u00f6tigen Anwendungen global von einem Netzwerk: Verbindungen zwischen Punkt A und B (und manchmal auch von B nach A) sowie Isolation von anderen Anwendungen und Nutzern. <\/p>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/f8b43928ccc6d487722ce7724f5c4829.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUnd so besteht unsere Aufgabe in dieser Serie darin, <b>ein System aufzubauen<\/b>, das die aktuelle Konfiguration <b>des gesamten Netzwerks<\/b>, die bereits auf die aktuelle Konfiguration jedes Ger\u00e4ts gem\u00e4\u00df seiner Rolle und Position heruntergebrochen wird. <br \/>\n<b>System<\/b> Netzwerkmanagement bedeutet, dass wir, um \u00c4nderungen vorzunehmen, auf das Netzwerk zugreifen, und es wiederum den erforderlichen Zustand f\u00fcr jedes Ger\u00e4t berechnet und es konfiguriert. <br \/>\nSo minimieren wir nahezu auf null das manuelle Arbeiten im CLI \u2013 alle \u00c4nderungen an den Ger\u00e4teeinstellungen oder dem Netzwerkdesign m\u00fcssen formalisiert und dokumentiert werden \u2013 und werden erst danach auf die erforderlichen Netzwerkkomponenten umgesetzt. <\/p>\n<blockquote><p> Das hei\u00dft, wenn wir entschieden haben, dass die Switches in Kazan ab sofort zwei Netzwerke anstelle von einem ank\u00fcndigen sollen, dann<\/p>\n<ol>\n<li>Dokumentieren wir zun\u00e4chst die \u00c4nderungen in den Systemen.<\/li>\n<li>Wir generieren die Zielkonfiguration aller Netzwerkger\u00e4te.<\/li>\n<li>Wir starten das Programm zur Aktualisierung der Netzwerkkonfiguration, das berechnet, was auf jedem Knoten entfernt werden muss, was hinzugef\u00fcgt werden soll und bringt die Knoten in den gew\u00fcnschten Zustand.<\/li>\n<\/ol>\n<p>\n Dabei nehmen wir die \u00c4nderungen nur im ersten Schritt manuell vor.\n<\/p><\/blockquote>\n<h2>Konfigurationstest<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.wikisummaries.org\/wiki\/Visible_Ops\">Bekanntlich<\/a><\/noindex>, treten 80% der Probleme w\u00e4hrend der Konfigurations\u00e4nderungen auf \u2014 ein indirekter Beweis daf\u00fcr ist, dass w\u00e4hrend der Neujahrsferien normalerweise alles ruhig verl\u00e4uft. <br \/>\nIch habe pers\u00f6nlich Dutzende von globalen Ausf\u00e4llen aufgrund menschlicher Fehler miterlebt: falscher Befehl, im falschen Konfigurationszweig ausgef\u00fchrt, Community vergessen, MPLS global auf dem Router gel\u00f6scht, f\u00fcnf Ger\u00e4te konfiguriert, und beim sechsten die Fehlermeldung nicht bemerkt, alte \u00c4nderungen von jemand anderem committet. Es gibt unz\u00e4hlige Szenarien. <\/p>\n<p>Automatisierung wird uns helfen, weniger Fehler zu machen, jedoch in gr\u00f6\u00dferem Ma\u00dfstab. So k\u00f6nnte man nicht nur ein Ger\u00e4t, sondern das gesamte Netzwerk auf einmal lahmlegen. <\/p>\n<p>Seit jeher haben unsere Vorfahren die Richtigkeit von \u00c4nderungen mit scharfem Blick, st\u00e4hlernen Eiern und der Leistungsf\u00e4higkeit des Netzwerks nach deren Umsetzung \u00fcberpr\u00fcft. <br \/>\nDie Vorfahren, deren Arbeiten zu Ausf\u00e4llen und katastrophalen Verlusten f\u00fchrten, hinterlie\u00dfen weniger Nachkommen und sollten im Laufe der Zeit aussterben. Aber die Evolution ist ein langsamer Prozess, und deshalb pr\u00fcfen bis heute nicht alle \u00c4nderungen vorher im Labor. <br \/>\nAn der Spitze des Fortschritts stehen diejenigen, die den Testprozess der Konfiguration automatisiert haben und deren weitere Anwendung im Netzwerk. Mit anderen Worten \u2014 sie haben das CI\/CD-Verfahren (<noindex><a rel=\"nofollow\" href=\"https:\/\/img.devrant.com\/devrant\/rant\/r_1535091_ErSUL.jpg\">Continuous Integration, Continuous Deployment<\/a><\/noindex>) von Entwicklern \u00fcbernommen.<br \/>\nIn einem der Abschnitte werden wir besprechen, wie dies mit einem Versionskontrollsystem, wahrscheinlich GitHub, umgesetzt werden kann. <\/p>\n<blockquote><p> Sobald Sie sich mit dem Gedanken des Netzwerk-CI\/CD angefreundet haben, wird Ihnen die Methode zur \u00dcberpr\u00fcfung der Konfiguration durch deren Anwendung im Live-Netzwerk wie ein fr\u00fchmittelalterlicher Unfug vorkommen. Etwa so, als w\u00fcrde man mit einem Hammer auf einen Sprengkopf h\u00e4mmern.\n<\/p><\/blockquote>\n<p>Eine organische Fortsetzung der Ideen \u00fcber <b>das System<\/b> des Netzwerkmanagements und CI\/CD wird ein vollst\u00e4ndiges Versioning der Konfiguration. <\/p>\n<h2>Versionsverwaltung<\/h2>\n<p>\nWir gehen davon aus, dass bei jeglichen \u00c4nderungen, selbst den kleinsten, auch an einem unsichtbaren Ger\u00e4t, das gesamte Netzwerk von einem Zustand in einen anderen \u00fcbergeht.<br \/>\nUnd wir f\u00fchren immer den Befehl nicht auf dem Ger\u00e4t aus, sondern \u00e4ndern den Zustand des Netzwerks. <br \/>\nLass uns diese Zust\u00e4nde Versionen nennen?<\/p>\n<p>Nehmen wir an, die aktuelle Version ist 1.0.0.<br \/>\nHat sich die IP-Adresse des Loopback-Interfaces auf einem der ToR ge\u00e4ndert? Dies ist eine Minor-Version \u2013 sie erh\u00e4lt die Nummer 1.0.1.<br \/>\nWenn wir die Importrichtlinien f\u00fcr Routen im BGP \u00fcberarbeiten \u2013 das ist schon etwas ernster \u2013 dann ist es 1.1.0.<br \/>\nWenn wir uns entscheiden, das IGP abzulehnen und ausschlie\u00dflich auf BGP umzusteigen \u2013 das ist eine radikale Design\u00e4nderung \u2013 dann wird es 2.0.0.<\/p>\n<p>Dabei k\u00f6nnen verschiedene Rechenzentren unterschiedliche Versionen haben \u2013 das Netzwerk entwickelt sich weiter, neue Ger\u00e4te werden eingesetzt, an manchen Stellen werden neue Spine-Ebenen hinzugef\u00fcgt, an anderen nicht, usw.<\/p>\n<p>\u00dcber <noindex><a rel=\"nofollow\" href=\"https:\/\/semver.org\">semantische Versionierung<\/a><\/noindex> dar\u00fcber werden wir in einem separaten Artikel sprechen.<\/p>\n<p>Ich wiederhole \u2013 jede \u00c4nderung (au\u00dfer Debugging-Befehlen) ist ein Versionsupdate. Die Administratoren m\u00fcssen \u00fcber alle Abweichungen von der aktuellen Version informiert werden.<\/p>\n<p>Das Gleiche gilt f\u00fcr das Zur\u00fccksetzen von \u00c4nderungen \u2013 es handelt sich nicht um das r\u00fcckg\u00e4ngigmachen der letzten Befehle, auch nicht um einen Rollback durch das Betriebssystem des Ger\u00e4ts \u2013 es geht um die R\u00fcckf\u00fchrung des gesamten Netzwerks auf eine neue (alte) Version. <\/p>\n<h2>\u00dcberwachung und Selbstheilung der Dienste<\/h2>\n<p>\nDies ist eine selbstverst\u00e4ndliche Aufgabe, die in modernen Netzwerken auf ein neues Niveau gelangt.<br \/>\nOft praktizieren gro\u00dfe Dienstanbieter den Ansatz, dass ein ausgefallener Dienst sehr schnell niedergeschlagen und ein neuer hochgefahren werden muss, anstatt zu kl\u00e4ren, was passiert ist.<br \/>\n\u201eSehr\u201c bedeutet, dass man sich von allen Seiten intensiv mit Monitorings eindecken muss, die innerhalb von Sekunden kleinste Abweichungen von der Norm erkennen.<br \/>\nUnd hier sind die gewohnten Metriken, wie die Auslastung der Schnittstelle oder die Verf\u00fcgbarkeit des Knotens, nicht ausreichend. Auch die manuelle \u00dcberwachung durch den Bereitschaftsdienst reicht nicht aus.<br \/>\nF\u00fcr viele Dinge sollte es \u00fcberhaupt <noindex><a rel=\"nofollow\" href=\"https:\/\/www.irisns.com\/self-healing-network-tomorrow-look-like\/\">Self-Healing<\/a><\/noindex> geben \u2013 die Monitorings leuchten rot und helfen sich selbst, wo es wehtut.<\/p>\n<p>Hier \u00fcberwachen wir nicht nur einzelne Ger\u00e4te, sondern auch die Gesundheit des gesamten Netzwerks, und zwar sowohl im Wei\u00dfbox- als auch im Schwarzbox-Stil, was bereits komplizierter ist.<\/p>\n<p>\nWas ben\u00f6tigen wir f\u00fcr die Umsetzung solcher ehrgeizigen Pl\u00e4ne?<\/p>\n<ul>\n<li>Eine \u00dcbersicht aller Ger\u00e4te im Netzwerk, deren Standort, Rollen, Modelle und Softwareversionen haben. <br \/>\n <i>kazan-leaf-1.lmu.net, Kazan, leaf, Juniper QFX 5120, R18.3.<\/i>\n <\/li>\n<li>Ein System zur Beschreibung von Netzwerkdiensten haben. <br \/>\n <i>IGP, BGP, L2\/3VPN, Policy, ACL, NTP, SSH.<\/i><\/li>\n<li>In der Lage sein, ein Ger\u00e4t zu initialisieren. <br \/>\n <i>Hostname, Mgmt IP, Mgmt Route, Benutzer, RSA-Schl\u00fcssel, LLDP, NETCONF.<\/i><\/li>\n<li>Das Ger\u00e4t konfigurieren und die Konfiguration auf die gew\u00fcnschte (einschlie\u00dflich der alten) Version zur\u00fccksetzen.<\/li>\n<li>Die Konfiguration testen.<\/li>\n<li>Regelm\u00e4\u00dfig den Zustand aller Ger\u00e4te auf Abweichungen vom aktuellen Status \u00fcberpr\u00fcfen und die zust\u00e4ndigen Personen informieren.<br \/>\n <i>Nachts hat jemand heimlich eine Regel in die ACL hinzugef\u00fcgt.<\/i>.<\/li>\n<li>Die Funktionsf\u00e4higkeit \u00fcberwachen.<\/li>\n<\/ul>\n<p><\/p>\n<h1>Werkzeuge<\/h1>\n<p>\nDas klingt ziemlich kompliziert, um das Projekt in Komponenten zu zerlegen.<\/p>\n<p>Und es werden zehn sein:<\/p>\n<ol>\n<li>Inventarsystem<\/li>\n<li>IP-Adressverwaltungssystem<\/li>\n<li>System zur Beschreibung der Netzwerkdienste<\/li>\n<li>Ger\u00e4teinitialisierungsmechanismus<\/li>\n<li>Vendor-unabh\u00e4ngiges Konfigurationsmodell<\/li>\n<li>Vendor-spezifischer Treiber f\u00fcr Schnittstellen<\/li>\n<li>Mechanismus zur Konfigurationserstellung auf Ger\u00e4ten<\/li>\n<li>CI\/CD<\/li>\n<li>Backup- und Abweichungserkennungssystem<\/li>\n<li>\u00dcberwachungssystem<\/li>\n<\/ol>\n<blockquote><p> Das ist \u00fcbrigens ein Beispiel daf\u00fcr, wie sich die Sichtweise auf die Ziele des Zyklus wandelte \u2013 im Entwurf der Komponenten waren es 4.\n<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/91132e29d359a4042b213529511f6d7d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn der Abbildung habe ich alle Komponenten und das entsprechende Ger\u00e4t dargestellt. <br \/>\n\u00dcberschneidende Komponenten interagieren miteinander. <br \/>\nJe gr\u00f6\u00dfer der Block, desto mehr Aufmerksamkeit muss diesem Bestandteil gewidmet werden. <\/p>\n<p><\/p>\n<h2>Komponente 1. Inventarisierungssystem.<\/h2>\n<p>\nOffensichtlich m\u00f6chten wir wissen, welche Hardware wo steht und an was sie angeschlossen ist. <br \/>\nDas Inventarsystem ist ein wesentlicher Bestandteil jedes Unternehmens. <br \/>\nIn der Regel verf\u00fcgt das Unternehmen f\u00fcr Netzwerkger\u00e4te \u00fcber ein separates Inventarsystem, das spezifischere Aufgaben erf\u00fcllt. <br \/>\nIm Rahmen dieser Artikelreihe werden wir dies als DCIM \u2013 Data Center Infrastructure Management bezeichnen. Obwohl der Begriff DCIM streng genommen viel mehr umfasst.<\/p>\n<p>F\u00fcr unsere Zwecke werden wir die folgenden Informationen \u00fcber das Ger\u00e4t speichern:<\/p>\n<ul>\n<li>Inventarnummer<\/li>\n<li>Bezeichnung\/Beschreibung <\/li>\n<li>Modell (<i>Huawei CE12800, Juniper QFX5120 usw.<\/i>)<\/li>\n<li>Merkmale (<i>Module, Schnittstellen usw.<\/i>)<\/li>\n<li>Rolle (<i>Leaf, Spine, Border Router usw.<\/i>)<\/li>\n<li>Standort (<i>Region, Stadt, Rechenzentrum, Rack, Einheit<\/i>)<\/li>\n<li>Interkonnektivit\u00e4ten zwischen Ger\u00e4ten<\/li>\n<li>Netzwerktopologie<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/fac708b1bf3640a943f90247bff8216e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs ist uns allen klar, dass wir alles dar\u00fcber wissen m\u00f6chten. <br \/>\nAber hilft das bei den Automatisierungszielen? <br \/>\nAuf jeden Fall. <br \/>\nZum Beispiel wissen wir, dass in diesem Rechenzentrum auf Leaf-Switches, wenn es sich um Huawei handelt, ACL zur Filterung bestimmter Datenstr\u00f6me auf VLAN angewendet werden m\u00fcssen, und wenn es sich um Juniper handelt, dann auf Unit 0 des physischen Interfaces. <br \/>\nOder wir m\u00fcssen einen neuen Syslog-Server auf alle Border-Router in der Region verteilen.<\/p>\n<p>In dieser werden wir virtuelle Netzwerkger\u00e4te speichern, wie zum Beispiel virtuelle Router oder Route-Reflectoren. Wir k\u00f6nnen DNS-Server, NTP, Syslog und alles hinzuf\u00fcgen, was in irgendeiner Weise mit dem Netzwerk zu tun hat. <\/p>\n<h2>Komponente 2. IP-Adressmanagement-System<\/h2>\n<p>\nJa, es gibt nach wie vor Gruppen von Menschen, die Pr\u00e4fixe und IP-Adressen in einer Excel-Datei erfassen. Aber der moderne Ansatz ist eine Datenbank mit einer Frontend-L\u00f6sung auf nginx\/apache, API und umfangreichen Funktionen zur Verwaltung von IP-Adressen und Netzwerken mit VRF-Unterteilung.<br \/>\nIPAM - IP Address Management. <\/p>\n<p>F\u00fcr unsere Zwecke werden wir darin folgende Informationen speichern:<\/p>\n<ul>\n<li>VLAN<\/li>\n<li>VRF<\/li>\n<li>Netze\/Subnetze<\/li>\n<li>IP-Adressen<\/li>\n<li>Zuweisung von Adressen zu Ger\u00e4ten, Netzen zu Standorten und VLAN-Nummern<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/6d476d48f95ed663d84cae052a86d129.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs ist verst\u00e4ndlich, dass wir sicherstellen m\u00f6chten, dass wir beim Zuweisen einer neuen IP-Adresse f\u00fcr das Loopback des ToR nicht auf das Problem sto\u00dfen, dass sie bereits jemandem zugewiesen wurde. Oder dass wir das gleiche Pr\u00e4fix an verschiedenen Enden des Netzwerks zweimal verwendet haben. <br \/>\nAber wie hilft das bei der Automatisierung? <br \/>\nEinfach. <br \/>\nWir fordern im System ein Pr\u00e4fix mit der Rolle Loopbacks an, in dem verf\u00fcgbare IP-Adressen zur Verf\u00fcgung stehen \u2013 falls vorhanden, weisen wir die Adresse zu, wenn nicht, beantragen wir die Erstellung eines neuen Pr\u00e4fixes. <br \/>\nOder beim Erstellen der Ger\u00e4te-Konfiguration k\u00f6nnen wir aus demselben System erfahren, in welchem VRF sich das Interface befinden sollte. <br \/>\nBeim Start eines neuen Servers \u00fcberpr\u00fcft das Skript das System, um herauszufinden, welcher Switch, welcher Port und welches Subnetz dem Interface zugewiesen ist \u2014 daraus wird die Serveradresse zugewiesen. <\/p>\n<p>\nEs liegt nahe, DCIM und IPAM in einem System zu vereinen, um Funktionen nicht zu duplizieren und zwei \u00e4hnliche Entit\u00e4ten zu verwalten. <br \/>\nDas werden wir tun. <\/p>\n<h2>Komponente 3. System zur Beschreibung von Netzwerkdiensten<\/h2>\n<p>\nWenn die ersten beiden Systeme Variablen speichern, die weiterhin verwendet werden m\u00fcssen, beschreibt das dritte, wie jedes Ger\u00e4t f\u00fcr seine Rolle konfiguriert werden sollte. <br \/>\nEs gibt zwei verschiedene Arten von Netzwerkdiensten: <\/p>\n<ul>\n<li>Infrastrukturelle<\/li>\n<li>Kundenspezifische.<\/li>\n<\/ul>\n<p>Die ersten sind darauf ausgelegt, grundlegende Konnektivit\u00e4t und Ger\u00e4temanagement zu gew\u00e4hrleisten. Dazu geh\u00f6ren VTY, SNMP, NTP, Syslog, AAA, Routing-Protokolle, CoPP usw. <br \/>\nDie zweiten bieten Dienstleistungen f\u00fcr den Kunden an: MPLS L2\/L3VPN, GRE, VXLAN, VLAN, L2TP usw. <br \/>\nNat\u00fcrlich gibt es auch Grenzf\u00e4lle \u2013 wo ordnet man MPLS LDP, BGP ein? Und Routing-Protokolle k\u00f6nnen auch f\u00fcr Kunden verwendet werden. Aber das ist nicht entscheidend. <\/p>\n<p>Beide Arten von Diensten werden in Konfigurationsprimitive unterteilt:<\/p>\n<ul>\n<li>physikalische und logische Schnittstellen (Tag\/Antag, mtu)<\/li>\n<li>IP-Adressen und VRF (IP, IPv6, VRF)<\/li>\n<li>ACLs und Verkehrsverarbeitungsrichtlinien<\/li>\n<li>Protokolle (IGP, BGP, MPLS)<\/li>\n<li>Routingrichtlinien (Pr\u00e4fixlisten, Communities, ASN-Filter).<\/li>\n<li>Dienste (SSH, NTP, LLDP, Syslog\u2026)<\/li>\n<li>usw.<\/li>\n<\/ul>\n<p>\nWie genau wir das machen werden, kann ich im Moment nicht sagen. Wir werden das in einem separaten Artikel kl\u00e4ren.<\/p>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/092bc3a4b875f4a6422ee13fb580ba4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWenn man es etwas praktischer betrachtet, k\u00f6nnten wir beschreiben, dass<br \/>\nder Leaf-Switch BGP-Sitzungen mit allen angeschlossenen Spine-Switches haben sollte, die angeschlossenen Netzwerke importieren und nur Netzwerke aus einem bestimmten Pr\u00e4fix von den Spine-Switches akzeptieren sollte. CoPP IPv6 ND auf 10 pps begrenzen usw. <br \/>\nIm Gegenzug halten die Spines Sitzungen mit allen angeschlossenen Leaves, fungieren als Root-Reflektoren und akzeptieren von diesen nur Routen einer bestimmten L\u00e4nge und mit einer bestimmten Community.<\/p>\n<h2>Komponente 4. Mechanismus zur Initialisierung des Ger\u00e4ts<\/h2>\n<p>\nUnter diesem Titel vereine ich zahlreiche Aktionen, die erforderlich sind, damit das Ger\u00e4t auf den Radarschirmen erscheint und remote erreichbar ist.<\/p>\n<ol>\n<li>Das Ger\u00e4t im Inventarsystem anlegen.<\/li>\n<li>Eine dedizierte IP-Adresse f\u00fcr die Verwaltung bereitstellen.<\/li>\n<li>Basiszugang darauf einrichten: <br \/>\nHostname, IP-Adresse der Verwaltung, Routing zur Verwaltungsnetzwerk, Benutzer, SSH-Schl\u00fcssel, Protokolle \u2013 telnet\/SSH\/NETCONF<\/li>\n<\/ol>\n<p>Es gibt drei Ans\u00e4tze:<\/p>\n<ul>\n<li>Alles vollst\u00e4ndig manuell. Die Ger\u00e4te werden zur Testumgebung gebracht, wo ein herk\u00f6mmlicher Mensch sie in die Systeme einpflegt, sich \u00fcber die Konsole verbindet und sie konfiguriert. Dies kann bei kleinen, statischen Netzwerken funktionieren.<\/li>\n<li>ZTP \u2013 Zero Touch Provisioning. Die Hardware kommt an, stellt sich auf, erh\u00e4lt \u00fcber DHCP eine Adresse und konfiguriert sich selbst \u00fcber einen speziellen Server. <\/li>\n<li>Infrastruktur von Konsolenservern, bei der die Erstkonfiguration \u00fcber den Konsolenport automatisch erfolgt.<\/li>\n<\/ul>\n<p>\u00dcber alle drei Ans\u00e4tze werden wir in einem separaten Artikel sprechen.<\/p>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/6d8d061e53b508edbbcbd98fe496ca91.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponente 5. Anbieterunabh\u00e4ngiges Konfigurationsmodell<\/h2>\n<p>\nBis jetzt waren alle Systeme isolierte Puzzlest\u00fccke, die variable und deklarative Beschreibungen dessen lieferten, was wir im Netzwerk sehen m\u00f6chten. Doch irgendwann m\u00fcssen wir uns mit konkreten Details auseinandersetzen. <br \/>\nIn diesem Schritt werden f\u00fcr jedes spezifische Ger\u00e4t die Primitiven, Dienste und Variablen zu einem Konfigurationsmodell kombiniert, das die vollst\u00e4ndige Konfiguration des jeweiligen Ger\u00e4ts in einem herstellerunabh\u00e4ngigen Format beschreibt. <br \/>\nWas bringt dieser Schritt? Warum nicht gleich die Konfiguration des Ger\u00e4ts erstellen, die einfach hochgeladen werden kann? <br \/>\nTats\u00e4chlich erm\u00f6glicht dies die L\u00f6sung von drei Aufgaben:<\/p>\n<ol>\n<li> Sich nicht an eine spezifische Schnittstelle zur Interaktion mit dem Ger\u00e4t anzupassen. Unabh\u00e4ngig davon, ob CLI, NETCONF, RESTCONF oder SNMP verwendet wird, bleibt das Modell gleich.<\/li>\n<li> Die Anzahl der Templates\/Skripte nicht an die Anzahl der Hersteller im Netzwerk anzupassen, und bei \u00c4nderungen im Design nur an einer Stelle anpassen zu m\u00fcssen.<\/li>\n<li> Die Konfiguration vom Ger\u00e4t (Backup) zu laden, sie in genau dasselbe Modell zu \u00fcberf\u00fchren und direkt die Zielkonfiguration mit der vorhandenen zu vergleichen, um die Differenz zu berechnen und ein Konfigurationspatch vorzubereiten, das nur die Teile \u00e4ndert, die erforderlich sind oder um Abweichungen zu identifizieren.<\/li>\n<\/ol>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/a154c42ebe7978fcc5b2ce4f235516c9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nInfolge dieses Schrittes erhalten wir eine herstellerunabh\u00e4ngige Konfiguration.<\/p>\n<h2>Komponente 6. Hersteller-spezifischer Treiber<\/h2>\n<p>\nMachen Sie sich keine Hoffnungen, dass man Cisco irgendwann so konfigurieren kann wie Juniper, indem man ihnen v\u00f6llig identische Befehle sendet. Trotz der wachsenden Beliebtheit von Whitebox-L\u00f6sungen und der Einf\u00fchrung von Unterst\u00fctzung f\u00fcr NETCONF, RESTCONF und OpenConfig unterscheidet sich der spezifische Inhalt, der durch diese Protokolle bereitgestellt wird, von Anbieter zu Anbieter, und dies ist eines ihrer Wettbewerbsvorteile, das sie nicht leicht aufgeben werden. <br \/>\n\u00c4hnlich verh\u00e4lt es sich mit OpenContrail und OpenStack, die zwar eine RestAPI als ihre NorthBound-Schnittstelle haben, jedoch ganz unterschiedliche Aufrufe erwarten. <\/p>\n<p>Im f\u00fcnften Schritt muss das anbieterunabh\u00e4ngige Modell die Form annehmen, in der es auf die Hardware \u00fcbertragen wird. <br \/>\nUnd hier sind alle Mittel recht (nicht wirklich): CLI, NETCONF, RESTCONF, SNMP \u2013 einfach erschreckend.<\/p>\n<p>Deshalb ben\u00f6tigen wir einen Treiber, der das Ergebnis des vorherigen Schrittes in das ben\u00f6tigte Format eines bestimmten Anbieters umwandelt: eine Reihe von CLI-Befehlen oder eine XML-Struktur.<\/p>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/6ed8e935183075fda60a209477f84937.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponente 7. Mechanismus zur Bereitstellung der Konfiguration an das Ger\u00e4t<\/h2>\n<p>\nDie Konfiguration haben wir erstellt, aber sie muss noch an die Ger\u00e4te geliefert werden \u2013 und zwar offensichtlich nicht manuell. <br \/>\n<b>Erstens<\/b>, vor uns stellt sich die Frage, welches Transportmittel wir verwenden werden? Die Auswahl ist heute bereits gro\u00df:<\/p>\n<ul>\n<li>CLI (telnet, ssh)<\/li>\n<li>SNMP<\/li>\n<li>NETCONF<\/li>\n<li>RESTCONF<\/li>\n<li>REST API<\/li>\n<li>OpenFlow (obwohl es aus der Liste herausf\u00e4llt, da es ein Weg ist, FIB zu liefern und nicht f\u00fcr die Konfiguration)<\/li>\n<\/ul>\n<p>Lassen Sie uns hier Klarheit schaffen. CLI \u2013 das ist Legacy. SNMP\u2026 \u00e4hem.<br \/>\nRESTCONF \u2013 ist bisher noch ein unbekanntes Wesen, REST API wird von fast niemandem unterst\u00fctzt. Daher konzentrieren wir uns in dieser Runde auf NETCONF.<\/p>\n<p>Tats\u00e4chlich, wie der Leser bereits verstanden hat, haben wir uns zu diesem Zeitpunkt bereits auf das Interface festgelegt \u2013 das Ergebnis des vorherigen Schrittes liegt bereits im Format des gew\u00e4hlten Interfaces vor.<\/p>\n<p><b>, versucht der MLFQ<\/b>, und welche Tools werden wir daf\u00fcr verwenden?<br \/>\nHier ist die Auswahl ebenfalls gro\u00df:<\/p>\n<ul>\n<li>Ein selbstgeschriebenes Skript oder eine Plattform. R\u00fcsten wir uns mit ncclient und asyncIO aus und machen alles selbst. Was hindert uns daran, ein Deployment-System von Grund auf zu erstellen?<\/li>\n<li>Ansible mit seiner umfangreichen Sammlung an Netzwerkmodulen.<\/li>\n<li>Salt mit seiner begrenzten Netzwerkunterst\u00fctzung und der Integration mit Napalm.<\/li>\n<li>Eigentlich Napalm, das nur ein paar Anbieter kennt und das war's, auf Wiedersehen.<\/li>\n<li>Nornir \u2013 ein weiteres Tierchen, das wir in Zukunft n\u00e4her betrachten werden.<\/li>\n<\/ul>\n<p>Hier ist noch kein Favorit ausgew\u00e4hlt \u2013 wir werden uns umsehen.<\/p>\n<p>Was ist hier noch wichtig? Die Auswirkungen der Konfigurationsanwendung. <br \/>\nErfolgreich oder nicht. Ist der Zugriff auf die Hardware noch m\u00f6glich? <br \/>\nEs scheint, dass hier ein Commit mit Best\u00e4tigung und Validierung dessen, was ins Ger\u00e4t geladen wurde, hilfreich sein k\u00f6nnte. <br \/>\nIn Kombination mit einer korrekten Implementierung von NETCONF reduziert dies die Anzahl geeigneter Ger\u00e4te erheblich \u2013 g\u00e4ngige Commits werden nicht von vielen Herstellern unterst\u00fctzt. Aber das ist nur eine der Voraussetzungen im <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81_%D0%BF%D1%80%D0%B5%D0%B4%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F\">RFP<\/a><\/noindex>. Letztendlich macht sich niemand Sorgen, dass kein russischer Anbieter die Bedingung f\u00fcr das 32*100GE-Interface erf\u00fcllen wird. Oder doch?<\/p>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/59d8ad3b55b9c107642550bb06fc759a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Komponente 8. CI\/CD<\/h2>\n<p>\nBis zu diesem Zeitpunkt haben wir bereits die Konfiguration f\u00fcr alle Ger\u00e4te im Netzwerk vorbereitet.<br \/>\nIch schreibe \"f\u00fcr alle\", weil wir \u00fcber die Versionierung des Netzwerkstatus sprechen. Und selbst wenn die Einstellungen eines einzelnen Switches ge\u00e4ndert werden m\u00fcssen, werden die \u00c4nderungen f\u00fcr das gesamte Netzwerk berechnet. Offensichtlich k\u00f6nnen sie dabei f\u00fcr die meisten Knoten null sein.<\/p>\n<p>Aber wie bereits erw\u00e4hnt, sind wir keine Barbaren, die alles sofort in Produktion bringen wollen. <br \/>\nDie generierte Konfiguration muss zuerst durch die Pipeline CI\/CD laufen.<\/p>\n<blockquote><p>CI\/CD steht f\u00fcr Continuous Integration und Continuous Deployment. Dies ist ein Ansatz, bei dem das Team nicht alle sechs Monate eine neue Hauptversion ver\u00f6ffentlicht, die die alte vollst\u00e4ndig ersetzt, sondern regelm\u00e4\u00dfig inkrementelle Neuerungen (Deployment) in kleinen, ausf\u00fchrlich getesteten Charge bereitstellt, die auf Kompatibilit\u00e4t, Sicherheit und Funktionalit\u00e4t (Integration) gepr\u00fcft werden.\n<\/p><\/blockquote>\n<p>Daf\u00fcr haben wir ein Versionskontrollsystem, das die Konfigurations\u00e4nderungen \u00fcberwacht, eine Testumgebung, die sicherstellt, dass der Kundenservice nicht beeintr\u00e4chtigt wird, ein \u00dcberwachungssystem, das dies \u00fcberpr\u00fcft, und der letzte Schritt ist die Bereitstellung der \u00c4nderungen im Produktionsnetzwerk.<\/p>\n<p>Ausgenommen von Debugging-Befehlen m\u00fcssen alle Netzwerk\u00e4nderungen durch den CI\/CD-Pipeline gehen \u2013 das ist unser Garant f\u00fcr ein sorgenfreies Leben und eine lange, gl\u00fcckliche Karriere.<\/p>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/101a5ff87c7a9c7b6776aca9daf762a4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponente 9. Backup-System und Abweichungserkennung<\/h2>\n<p>\n\u00dcber Backups muss man nicht mehr viele Worte verlieren. <br \/>\nWir werden sie einfach nach einem Zeitplan oder bei \u00c4nderungen in der Konfiguration in Git abspeichern.<\/p>\n<p>Der zweite Teil ist interessanter \u2013 jemand muss sich um diese Backups k\u00fcmmern. In einigen F\u00e4llen muss dieser jemand alles wiederherstellen, wie es war, w\u00e4hrend in anderen F\u00e4llen jemand dar\u00fcber informiert werden muss, dass etwas nicht in Ordnung ist. <br \/>\nWenn beispielsweise ein neuer Benutzer aufgetaucht ist, der nicht in den Variablen aufgef\u00fchrt ist, sollte man ihn besser von der Hacking-Aktion fernhalten. Bei einer neuen Firewall-Regel ist es besser, die Finger davon zu lassen; m\u00f6glicherweise hat jemand einfach das Debugging aktiviert oder ein neuer Dienst wurde vorschnell ohne Beachtung der Vorschriften eingetragen, w\u00e4hrend bereits Nutzer darauf zugreifen.<\/p>\n<p>Eine gewisse kleine Abweichung im gesamten Netzwerk l\u00e4sst sich ohnehin nicht vermeiden, trotz aller Automatisierungssysteme und disziplinierter Leitung. F\u00fcr die Fehlersuche wird dennoch niemand die Konfiguration in die Systeme einpflegen. Zumal das Modell der Konfiguration m\u00f6glicherweise nicht einmal darauf ausgelegt ist. <\/p>\n<blockquote><p>Ein Beispiel w\u00e4re eine Firewall-Regel zur Z\u00e4hlung der Pakete f\u00fcr eine bestimmte IP, um das Problem zu lokalisieren \u2013 eine durchaus g\u00e4ngige tempor\u00e4re Konfiguration.\n<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/390f78139d336f1fc2c60573bccfe76c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Komponente 10. \u00dcberwachungssystem<\/h2>\n<p>\nZun\u00e4chst war ich nicht gewillt, das Thema Monitoring anzusprechen \u2013 es ist schlie\u00dflich ein umfangreiches, umstrittenes und komplexes Thema. Doch im Verlauf stellte sich heraus, dass es ein untrennbarer Teil der Automatisierung ist. Man kann sie nicht ignorieren, selbst wenn man keine praktische Erfahrung hat. <\/p>\n<p>Diese \u00dcberlegung ist ein organischer Bestandteil des CI\/CD-Prozesses. Nach dem Rollout der Konfiguration ins Netzwerk m\u00fcssen wir in der Lage sein festzustellen, ob alles in Ordnung ist. <br \/>\nDabei geht es nicht nur um Diagramme zur Nutzung von Schnittstellen oder die Verf\u00fcgbarkeit von Knoten, sondern auch um subtilere Aspekte \u2013 das Vorhandensein der erforderlichen Routen, deren Attribute, die Anzahl der BGP-Sitzungen, OSPF-Nachbarn und die End-to-End-Funktionalit\u00e4t der \u00fcbergeordneten Dienste.<br \/>\nHaben die Syslogs auf den externen Servern aufgeh\u00f6rt zu erscheinen? Ist der SFlow-Agent nicht ausgefallen? Haben die Drop-Raten in den Warteschlangen zugenommen? Ist die Konnektivit\u00e4t zwischen bestimmten Pr\u00e4fix-Paaren beeintr\u00e4chtigt worden?<\/p>\n<p>In einem separaten Artikel werden wir auch dar\u00fcber nachdenken.<\/p>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/08aeee4939081abb21e61abadd0ce5de.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><img decoding=\"async\" alt=\"Automatisierung f\u00fcr die Allerkleinsten. Teil Null. Planung.\" src=\"\/wp-content\/uploads\/2019\/07\/13c186070c85fd00f7b6923df154f1b6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h1>Fazit<\/h1>\n<p>\nAls Grundlage habe ich einen der modernen Designs f\u00fcr Rechenzentrumsnetze gew\u00e4hlt \u2013 L3 Clos Fabric mit BGP als Routing-Protokoll.<br \/>\nWir werden dieses Mal das Netzwerk auf Juniper aufbauen, denn die JunOs-Oberfl\u00e4che ist jetzt benutzerfreundlich.<\/p>\n<p>Wir machen es uns nicht einfach, indem wir nur Open Source-Tools und ein Multi-Vendor-Netzwerk verwenden \u2013 daher werde ich neben Juniper auch einen weiteren Gl\u00fccklichen ausw\u00e4hlen.<\/p>\n<p>Der Plan f\u00fcr die n\u00e4chsten Ver\u00f6ffentlichungen sieht ungef\u00e4hr so aus:<br \/>\nZuerst werde ich \u00fcber virtuelle Netzwerke sprechen. Vor allem, weil ich Lust darauf habe, und zweitens, weil das Design der Infrastruktur ohne diese Information nicht ganz nachvollziehbar ist.<br \/>\nDann geht es um das Netzwerkdesign: Topologie, Routing, Richtlinien.<br \/>\nWir werden eine Laboraufstellung zusammenstellen.<br \/>\nLass uns nachdenken und vielleicht ein bisschen \u00fcben, wie man ein Ger\u00e4t im Netzwerk initialisiert.<br \/>\nUnd dann werden wir jeden Bestandteil im Detail betrachten.<\/p>\n<p>Und ja, ich verspreche nicht, diesen Zyklus elegant mit einer fertigen L\u00f6sung abzuschlie\u00dfen. \ud83d\ude42<\/p>\n<h5>N\u00fctzliche Links<\/h5>\n<p><\/p>\n<ul>\n<li>Bevor wir in die Serie eintauchen, ist es ratsam, das Buch von Nataliya Samoylenko zu lesen, <noindex><a rel=\"nofollow\" href=\"https:\/\/natenka.gitbook.io\/pyneng\/\">Python f\u00fcr Netzwerkingenieure<\/a><\/noindex>. Vielleicht auch einen <noindex><a rel=\"nofollow\" href=\"https:\/\/natenka.github.io\/pyneng-online\/\">Kurs<\/a><\/noindex>.<\/li>\n<li>Es w\u00e4re auch empfehlenswert, \u00fcber das Design von Rechenzentrumfabriken von Facebook zu lesen, verfasst von Peter Lapukhov. <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc7938\">RFC<\/a><\/noindex> Wie Overlay-SDN funktioniert, kann Ihnen die Dokumentation zur Architektur<\/li>\n<li>Dokumentation zur Architektur gibt Ihnen einen Einblick, wie Overlay-basiertes SDN funktioniert. <noindex><a rel=\"nofollow\" href=\"https:\/\/tungstenfabric.github.io\/website\/Tungsten-Fabric-Architecture.html\">Tungsten Fabric<\/a><\/noindex> Roman Gorge. F\u00fcr Kommentare und Korrekturen.<\/li>\n<\/ul>\n<h5>Vielen Dank<\/h5>\n<p>\nArtem Tschernobaj. F\u00fcr KDPV.<br \/>\nArtem Tschernobai. F\u00fcr KDPW.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/453516\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0414\u0421\u041c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f, \u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u2014 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c. \u0414\u043e\u043b\u0433\u0438\u0435 \u0433\u043e\u0434\u044b \u043d\u0430\u0448 \u0431\u0440\u0430\u0442 \u0441\u0442\u0440\u0430\u0434\u0430\u043b \u043e\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0443\u0442\u0438\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0441\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043b \u043f\u0430\u043b\u044c\u0446\u044b \u043f\u0435\u0440\u0435\u0434 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u0438 \u043d\u0435\u0434\u043e\u0441\u044b\u043f\u0430\u043b \u0438\u0437-\u0437\u0430 \u043d\u043e\u0447\u043d\u044b\u0445 \u0440\u043e\u043b\u0431\u044d\u043a\u043e\u0432. \u041d\u043e \u0442\u0451\u043c\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u043d\u0435\u0446. \u042d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 \u044f \u043d\u0430\u0447\u043d\u0443 \u0441\u0435\u0440\u0438\u044e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043d\u0435 \u0432\u0438\u0434\u0438\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f. \u041f\u043e \u0445\u043e\u0434\u0443 \u0434\u0435\u043b\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u044d\u0442\u0430\u043f\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0444\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0441 RestAPI, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26891,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35972","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0414\u0421\u041c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f, \u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u2014 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c. \u0414\u043e\u043b\u0433\u0438\u0435 \u0433\u043e\u0434\u044b \u043d\u0430\u0448 \u0431\u0440\u0430\u0442 \u0441\u0442\u0440\u0430\u0434\u0430\u043b \u043e\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0443\u0442\u0438\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0441\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043b \u043f\u0430\u043b\u044c\u0446\u044b \u043f\u0435\u0440\u0435\u0434 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u0438 \u043d\u0435\u0434\u043e\u0441\u044b\u043f\u0430\u043b \u0438\u0437-\u0437\u0430 \u043d\u043e\u0447\u043d\u044b\u0445 \u0440\u043e\u043b\u0431\u044d\u043a\u043e\u0432. \u041d\u043e \u0442\u0451\u043c\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u043d\u0435\u0446. \u042d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 \u044f \u043d\u0430\u0447\u043d\u0443 \u0441\u0435\u0440\u0438\u044e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043d\u0435 \u0432\u0438\u0434\u0438\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f. \u041f\u043e \u0445\u043e\u0434\u0443 \u0434\u0435\u043b\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u044d\u0442\u0430\u043f\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0444\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0441 RestAPI,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u0441\u0430\u043c\u044b\u0445 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445. \u0427\u0430\u0441\u0442\u044c \u043d\u0443\u043b\u0435\u0432\u0430\u044f. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0414\u0421\u041c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f, \u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u2014 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c. \u0414\u043e\u043b\u0433\u0438\u0435 \u0433\u043e\u0434\u044b \u043d\u0430\u0448 \u0431\u0440\u0430\u0442 \u0441\u0442\u0440\u0430\u0434\u0430\u043b \u043e\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0443\u0442\u0438\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0441\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043b \u043f\u0430\u043b\u044c\u0446\u044b \u043f\u0435\u0440\u0435\u0434 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u0438 \u043d\u0435\u0434\u043e\u0441\u044b\u043f\u0430\u043b \u0438\u0437-\u0437\u0430 \u043d\u043e\u0447\u043d\u044b\u0445 \u0440\u043e\u043b\u0431\u044d\u043a\u043e\u0432. \u041d\u043e \u0442\u0451\u043c\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u043d\u0435\u0446. \u042d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 \u044f \u043d\u0430\u0447\u043d\u0443 \u0441\u0435\u0440\u0438\u044e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043d\u0435 \u0432\u0438\u0434\u0438\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f. \u041f\u043e \u0445\u043e\u0434\u0443 \u0434\u0435\u043b\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u044d\u0442\u0430\u043f\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0444\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0441 RestAPI,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:08:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:08:54+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Automatisierung f\u00fcr die Kleinsten. Nullteilig. Planung | ProHoster","description":"Die CDSM-Zeit ist vorbei, doch das unkontrollierte Verlangen nach Schreiben bleibt. Jahrelang hat unser Bruder unter der Erf\u00fcllung seiner Routine gelitten, die Daumen gedr\u00fcckt vor dem Commit und wenig Schlaf wegen n\u00e4chtlicher Rollbacks. Aber dunkle Zeiten haben ein Ende. Mit diesem Artikel starte ich eine Serie \u00fcber meine Sichtweise zur Automatisierung. Wir werden die Schritte zur Automatisierung untersuchen, den Umgang mit Variablen, die Formalisierung des Designs sowie mit RestAPI.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u0441\u0430\u043c\u044b\u0445 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445. \u0427\u0430\u0441\u0442\u044c \u043d\u0443\u043b\u0435\u0432\u0430\u044f. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 | ProHoster","og:description":"\u0421\u0414\u0421\u041c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f, \u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u2014 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c. \u0414\u043e\u043b\u0433\u0438\u0435 \u0433\u043e\u0434\u044b \u043d\u0430\u0448 \u0431\u0440\u0430\u0442 \u0441\u0442\u0440\u0430\u0434\u0430\u043b \u043e\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0443\u0442\u0438\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0441\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043b \u043f\u0430\u043b\u044c\u0446\u044b \u043f\u0435\u0440\u0435\u0434 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u0438 \u043d\u0435\u0434\u043e\u0441\u044b\u043f\u0430\u043b \u0438\u0437-\u0437\u0430 \u043d\u043e\u0447\u043d\u044b\u0445 \u0440\u043e\u043b\u0431\u044d\u043a\u043e\u0432. \u041d\u043e \u0442\u0451\u043c\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u043d\u0435\u0446. \u042d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 \u044f \u043d\u0430\u0447\u043d\u0443 \u0441\u0435\u0440\u0438\u044e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043d\u0435 \u0432\u0438\u0434\u0438\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f. \u041f\u043e \u0445\u043e\u0434\u0443 \u0434\u0435\u043b\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u044d\u0442\u0430\u043f\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0444\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0434\u0438\u0437\u0430\u0439\u043d\u0430, \u0441 RestAPI,","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-nulevaya-planirovanie","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:08:54+00:00","article:modified_time":"2019-10-31T19:08:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35972","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 01:28:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 09:58:22","updated":"2026-01-22 01:28:20"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/35972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=35972"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/35972\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/26891"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=35972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=35972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=35972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}