Mit diesem magischen Teil des Cisco ACI-Skripts können Sie Ihr Netzwerk schnell konfigurieren.Die Netzwerkfabrik für das Cisco ACI-Rechenzentrum besteht seit fünf Jahren, aber bei Habr wurde nichts darüber gesagt, daher habe ich beschlossen, das Problem ein wenig zu beheben. Ich werde Ihnen aus eigener Erfahrung sagen, was es ist, was es nützt und wo es einen Rechen hat.
Was ist das und woher kommt es?
Zum Zeitpunkt der Ankündigung von ACI (Application Centric Infrastructure) im Jahr 2013 griffen Wettbewerber traditionelle Ansätze für Rechenzentrumsnetzwerke auf drei Seiten gleichzeitig an.
Einerseits versprachen die auf OpenFlow basierenden SDN-Lösungen der ersten Generation, Netzwerke flexibler und gleichzeitig billiger zu machen. Die Idee war, Entscheidungen zu treffen, die traditionell von der proprietären Software der Switches auf der zentralen Steuerung durchgeführt werden.
Dieser Controller hätte eine einzige Vision von allem, was geschah, und würde auf dieser Grundlage die Hardware aller Switches auf der Ebene der Regeln für die Verarbeitung bestimmter Flows programmieren.
Auf der anderen Seite ermöglichten Overlay-Netzwerklösungen die Implementierung der erforderlichen Konnektivitäts- und Sicherheitsrichtlinien ohne Änderungen am physischen Netzwerk, wodurch Softwaretunnel zwischen virtualisierten Hosts erstellt wurden. Das bekannteste Beispiel für diesen Ansatz war die Entscheidung von Nicira, die zu diesem Zeitpunkt bereits von VMWare für 1,26 Milliarden US-Dollar übernommen worden war und die aktuelle VMWare NSX hervorbrachte. Nicira wurde von denselben Leuten mitbegründet, die zuvor an den Ursprüngen von OpenFlow standen, und sagte nun,
OpenFlow sei nicht für den Bau einer Rechenzentrumsfabrik
geeignet .
Und schließlich haben die auf dem freien Markt erhältlichen Switching-Chips (sogenanntes Merchant-Silizium) einen Reifegrad erreicht, bei dem sie zu einer echten Bedrohung für traditionelle Switch-Hersteller geworden sind. Früher hat jeder Anbieter selbst Chips für seine Switches entwickelt, aber im Laufe der Zeit haben Chips von Drittherstellern, hauptsächlich von Bradcom, begonnen, den Abstand zu den Anbieterchips in Bezug auf Funktionen und Preis-Leistungs-Verhältnis zu verringern. Daher glaubten viele, dass die Tage der Schalter auf Chips ihres eigenen Designs gezählt sind.
ACI war die „asymmetrische Antwort“ von Cisco (oder besser gesagt Insieme, das von seinen ehemaligen Mitarbeitern gegründet wurde) auf all das oben Genannte.
Was ist der Unterschied zu OpenFlow?
In Bezug auf die Verteilung der Funktionen ist ACI das Gegenteil von OpenFlow.
In der OpenFlow-Architektur ist der Controller für die Vorgabe detaillierter Regeln (Flows) verantwortlich.
In der Hardware aller Switches, dh in einem großen Netzwerk, kann es für die Wartung und vor allem das Ändern von mehreren zehn Millionen Datensätzen an Hunderten von Punkten im Netzwerk verantwortlich sein. Daher wird seine Leistung und Zuverlässigkeit bei der Implementierung in großem Maßstab zu einem Engpass.
ACI verwendet den umgekehrten Ansatz: Der Controller ist natürlich auch vorhanden, aber die Switches erhalten deklarative Richtlinien auf hoher Ebene, und der Switch selbst rendert sie in die Details bestimmter Einstellungen in der Hardware. Der Controller kann neu gestartet oder ganz ausgeschaltet werden, und dem Netzwerk passiert nichts Schlimmes, außer natürlich dem Mangel an Kontrolle in diesem Moment. Interessanterweise gibt es Situationen in ACI, in denen OpenFlow weiterhin verwendet wird, jedoch lokal innerhalb des Hosts zum Programmieren von Open vSwitch.
ACI basiert vollständig auf Overlay-Transporten auf Basis von VXLAN, umfasst jedoch gleichzeitig den zugrunde liegenden IP-Transport als Teil einer einzigen Lösung. Cisco nannte dies den Begriff "integriertes Overlay". Als Endpunkt für Überlagerungen in ACI werden in den meisten Fällen Werksschalter verwendet (dies geschieht mit der Kanalgeschwindigkeit). Hosts müssen nichts über die Factory, Kapselungen usw. wissen. In einigen Fällen (z. B. zum Verbinden von OpenStack-Hosts) kann jedoch auch VXLAN-Datenverkehr zu ihnen geleitet werden.
Overlays werden in ACI nicht nur verwendet, um eine flexible Konnektivität über das Transportnetzwerk bereitzustellen, sondern auch um Metainformationen zu übertragen (sie werden beispielsweise zum Anwenden von Sicherheitsrichtlinien verwendet).
Die Chips von Broadcom wurden zuvor von Cisco in der Switches der Nexus 3000-Serie verwendet. Die Nexus 9000-Familie, die speziell zur Unterstützung von ACI veröffentlicht wurde, implementierte zunächst ein Hybridmodell namens Merchant +. Der Switch verwendete gleichzeitig den neuen Broadcom Trident 2-Chip und den Cisco-Entwicklungschip, der ihn ergänzt und die Magie von ACI verwirklicht. Dies ermöglichte es offenbar, die Produktion des Produkts zu beschleunigen und den Preis des Schalters auf ein Niveau zu senken, das nur für Trident 2 nahe an den Modellen liegt. Dieser Ansatz reichte für die ersten zwei bis drei Jahre der ACI-Versorgung aus. In dieser Zeit entwickelte und brachte Cisco das Nexus 9000 der nächsten Generation auf eigenen Chips mit mehr Leistung und Funktionen bei gleichem Preisniveau auf den Markt. Externe Spezifikationen für die Interaktion im Werk bleiben vollständig erhalten. Gleichzeitig hat sich die Innenfüllung komplett verändert: so etwas wie Refactoring, aber für Eisen.
Funktionsweise der Cisco ACI-Architektur
Im einfachsten Fall basiert ACI auf der Topologie des Clos-Netzwerks oder, wie oft gesagt wird, auf Spine-Leaf. Wirbelsäulenschalter können von zwei (oder eins, wenn uns die Fehlertoleranz nicht wichtig ist) bis sechs sein. Je mehr vorhanden sind, desto höher ist dementsprechend die Fehlertoleranz (weniger Reduzierung der Bandbreite und Zuverlässigkeit bei einem Unfall oder der Wartung eines Wirbels) und die Gesamtleistung. Alle externen Verbindungen gehen zu Switches auf Blattebene: Dies sind die Server, die über L2 oder L3 eine Verbindung zu externen Netzwerken herstellen und APIC-Controller verbinden. Im Allgemeinen erfolgt bei ACI nicht nur die Konfiguration, sondern auch die Erfassung von Statistiken, die Fehlerüberwachung usw. über die Schnittstelle von Controllern, bei denen es sich um drei Implementierungen in Standardgröße handelt.
Sie müssen nie mit der Konsole eine Verbindung zu den Switches herstellen, auch nicht, um das Netzwerk zu starten: Der Controller selbst erkennt die Switches und sammelt die Werkseinstellungen, einschließlich der Einstellungen aller Serviceprotokolle. Daher ist es übrigens sehr wichtig, die Seriennummern der installierten Geräte während der Installation aufzuzeichnen, damit Sie nicht erraten müssen, welche Switches eingeschaltet sind welches Rack befindet sich. Zur Fehlerbehebung können Sie bei Bedarf eine Verbindung zu den Switches über SSH herstellen: Sie verwenden die üblichen Cisco-Show-Befehle ziemlich sorgfältig.
In der Fabrik wird IP-Transport verwendet, sodass es keinen Spanning Tree und andere Schrecken der Vergangenheit gibt: Alle Verbindungen sind beteiligt, und die Konvergenz bei Fehlern ist sehr schnell. Der Werksverkehr wird über VXLAN-Tunnel übertragen. Genauer gesagt nennt Cisco selbst das Kapselungs-iVXLAN und unterscheidet sich vom üblichen VXLAN darin, dass die reservierten Felder im Netzwerkheader zur Übertragung von Overhead-Informationen verwendet werden, hauptsächlich über das Verhältnis des Datenverkehrs zur EPG-Gruppe. Auf diese Weise können Sie die Interaktionsregeln zwischen Gruppen in den Geräten implementieren und deren Nummern auf dieselbe Weise verwenden, wie Adressen in normalen Zugriffslisten verwendet werden.
Mit Tunneln können Sie sich durch die internen IP-Transport- und L2-Segmente sowie durch L3 (d. H. VRF) erstrecken. In diesem Fall wird das Standard-Gateway verteilt. Dies bedeutet, dass jeder Switch an der Weiterleitung des in die Fabrik eintretenden Datenverkehrs beteiligt ist. In Bezug auf die Verkehrsübertragungslogik ähnelt ACI einer auf VXLAN / EVPN basierenden Factory.
Wenn ja, was sind die Unterschiede? Für den Rest!
Der größte Unterschied bei ACI besteht darin, wie die Server mit dem Netzwerk verbunden sind. In herkömmlichen Netzwerken werden sowohl physische Server als auch virtuelle Maschinen in VLANs integriert, und alles andere wird von diesen getanzt: Konnektivität, Sicherheit usw. Die ACI verwendet ein Design, das Cisco EPG (End-Point Group) nennt, von dem es keinen Ort gibt wegkommen. Ist es möglich, es mit einem VLAN gleichzusetzen? Ja, aber in diesem Fall besteht die Möglichkeit, dass Sie das meiste verlieren, was ACI bietet.
In Bezug auf den EPG werden alle Zugriffsregeln formuliert, und das Prinzip der „Whitelist“ wird in der ACI standardmäßig verwendet, dh es ist nur Datenverkehr zulässig, dessen Übertragung ausdrücklich zulässig ist. Das heißt, wir können die EPG-Gruppen "Web" und "MySQL" erstellen und eine Regel definieren, die die Interaktion zwischen ihnen nur auf Port 3306 erlaubt. Dies funktioniert ohne Bezugnahme auf Netzwerkadressen und sogar innerhalb desselben Subnetzes!
Wir haben Kunden, die sich genau wegen dieser Funktion für ACI entschieden haben, da Sie damit den Zugriff zwischen Servern (virtuell oder physisch - es spielt keine Rolle) einschränken können, ohne sie zwischen Subnetzen zu ziehen und daher die Adressierung nicht zu berühren. Ja, ja, wir wissen, dass niemand IP-Adressen in Anwendungskonfigurationen mit den Händen vorschreibt, oder?
ACI-Verkehrsregeln werden als Verträge bezeichnet. In einem solchen Vertrag werden eine oder mehrere Gruppen oder Ebenen in einer mehrschichtigen Anwendung zu einem Dienstanbieter (z. B. einem Datenbankdienst), andere zu Verbrauchern. Ein Vertrag kann einfach den Datenverkehr überspringen oder etwas Schwierigeres tun, z. B. ihn an eine Firewall oder einen Balancer weiterleiten und auch den QoS-Wert ändern.
Wie kommen Server in diese Gruppen? Wenn es sich um physische Server oder um etwas handelt, das mit dem vorhandenen Netzwerk verbunden ist, in dem wir den VLAN-Trunk erstellt haben, müssen Sie zum Platzieren im EPG auf den Switch-Port und das darauf verwendete VLAN verweisen. Wie Sie sehen, werden VLANs dort angezeigt, wo Sie nicht ohne sie auskommen können.
Wenn es sich bei den Servern um virtuelle Maschinen handelt, reicht es aus, auf die verbundene Virtualisierungsumgebung zu verweisen, und dann geschieht alles von selbst: Eine Portgruppe (in Bezug auf VMWare) wird erstellt, um die VM zu verbinden, die erforderlichen VLANs oder VXLANs werden zugewiesen, sie werden an den erforderlichen Switch-Ports registriert usw. Obwohl ACI auf einem physischen Netzwerk basiert, sehen Verbindungen für virtuelle Server viel einfacher aus als für physische. ACI verfügt bereits über ein Bundle mit VMWare und MS Hyper-V sowie Unterstützung für OpenStack und RedHat Virtualization. Irgendwann gab es auch eine integrierte Unterstützung für Containerplattformen: Kubernetes, OpenShift, Cloud Foundry, und dies gilt auch für Richtlinien und Überwachung, dh der Netzwerkadministrator kann sofort sehen, welche Hosts funktionieren und zu welchen Gruppen sie gehören.
Virtuelle Server sind nicht nur in einer bestimmten Portgruppe enthalten, sondern verfügen auch über zusätzliche Eigenschaften: Name, Attribute usw., die als Kriterien für die Übertragung an eine andere Gruppe verwendet werden können, z. B. beim Umbenennen einer VM oder wenn sie über ein zusätzliches Tag verfügt. Cisco nennt diese Mikrosegmentierungsgruppen, obwohl im Großen und Ganzen das Design selbst mit der Fähigkeit, viele Sicherheitssegmente in Form von EPG im selben Subnetz zu erstellen, auch Mikrosegmentierung ist. Nun, der Verkäufer weiß es besser.
EPGs selbst sind rein logische Konstruktionen, die nicht an bestimmte Switches, Server usw. gebunden sind, sodass Sie mit ihnen und darauf basierenden Konstruktionen (Anwendungen und Mandanten) Dinge tun können, die in normalen Netzwerken schwierig sind, z. B. Klonen. Nehmen wir an, es ist sehr einfach, einen Klon einer produktiven Umgebung zu erstellen, um eine Testumgebung zu erhalten, die garantiert mit der produktiven identisch ist. Dies kann manuell erfolgen, ist jedoch besser (und einfacher) - über die API.
Im Allgemeinen unterscheidet sich die Steuerlogik in ACI grundlegend von der, auf die Sie normalerweise stoßen
In herkömmlichen Netzwerken von demselben Cisco: Die Softwareschnittstelle ist primär und die GUI oder CLI sind sekundär, da sie über dieselbe API arbeiten. Daher beginnt fast jeder, der sich mit ACI befasst, nach einer Weile, das für die Verwaltung verwendete Objektmodell zu navigieren und etwas für seine Bedürfnisse zu automatisieren. Der einfachste Weg, dies zu tun, ist von Python: Es gibt praktische vorgefertigte Werkzeuge dafür.
Versprochener Rechen
Das Hauptproblem ist, dass viele Dinge in ACI anders gemacht werden. Um normal mit ihr arbeiten zu können, müssen Sie neu lernen. Dies gilt insbesondere für Netzwerkbetriebsteams bei Großkunden, bei denen Ingenieure seit Jahren VLANs für Anwendungen vorschreiben. Die Tatsache, dass VLANs jetzt keine VLANs mehr sind und Sie neue Netzwerke in virtualisierte Hosts einbinden müssen, müssen Sie VLANs überhaupt nicht mehr mit Ihren Händen erstellen. Dadurch werden die traditionellen Netzwerker vollständig „umgehauen“ und müssen sich an vertraute Ansätze halten. Es ist zu beachten, dass Cisco versucht hat, die Pille leicht zu versüßen, und dem Controller eine „NXOS-ähnliche“ CLI hinzugefügt hat, mit der Sie über eine Schnittstelle konfigurieren können, die herkömmlichen Switches ähnelt. Um ACI normal verwenden zu können, müssen Sie jedoch verstehen, wie es funktioniert.
Unter dem Gesichtspunkt des Preises in großen und mittleren ACI-Netzwerken unterscheidet es sich praktisch nicht von herkömmlichen Netzwerken in Cisco-Geräten, da dieselben Switches zum Erstellen verwendet werden (das Nexus 9000 kann sowohl im ACI- als auch im herkömmlichen Modus und jetzt arbeiten das Haupt "Arbeitstier" für neue Rechenzentrumsprojekte). Bei Rechenzentren mit zwei Switches machen sich natürlich die Verfügbarkeit von Controllern und die Spine-Leaf-Architektur bemerkbar. Kürzlich ist eine Mini-ACI-Fabrik erschienen, in der zwei der drei Controller durch virtuelle Maschinen ersetzt werden. Auf diese Weise können Sie den Kostenunterschied verringern, der jedoch weiterhin besteht. Für den Kunden hängt die Wahl davon ab, wie sehr er an Sicherheitsfunktionen, der Integration in die Virtualisierung, einem einzigen Verwaltungspunkt und vielem mehr interessiert ist.