In den ersten beiden Artikeln habe ich das Thema Automatisierung angesprochen und einen Rahmen skizziert, im zweiten Artikel habe ich einen Exkurs zur virtuellen Netzwerktechnik gemacht, die als erster Ansatz zur Automatisierung der Konfiguration von Diensten dient.
Jetzt ist es an der Zeit, das Schema des physischen Netzwerks zu zeichnen.
Wenn Sie nicht versiert im Umgang mit Einrichtungen von Rechenzentrumsnetzen sind, empfehle ich Ihnen dringend, mit der .
Alle Ausgaben:
Die in dieser Serie beschriebenen Praktiken sollten auf Netzwerke jeglicher Art, GröĂe und mit beliebiger Vielseitigkeit von Anbietern anwendbar sein (nicht). Allerdings lĂ€sst sich kein universelles Beispiel fĂŒr die Anwendung dieser AnsĂ€tze beschreiben. Daher konzentriere ich mich auf die moderne Architektur von Rechenzentrumsnetzwerken: .
Die DCI realisieren wir ĂŒber MPLS L3VPN.
Ăber dem physischen Netzwerk arbeitet ein Overlay-Netzwerk vom Host aus (das kann VXLAN von OpenStack oder Tungsten Fabric oder etwas anderes sein, das vom Netzwerk lediglich eine grundlegende IP-KonnektivitĂ€t erfordert).
In diesem Fall erhalten wir ein relativ einfaches Automatisierungsszenario, da wir viel Hardware haben, die auf die gleiche Weise konfiguriert ist.
Wir wÀhlen ein sphÀrisches Rechenzentrum im Vakuum:
- Eine Designversion ĂŒberall.
- Zwei Anbieter, die zwei Netzwerkebenen bilden.
- Ein Rechenzentrum Àhnelt dem anderen wie zwei Erbsen in einer Schote.
Inhalt
- Physikalische Topologie
- Routing
- IP-Plan
- Labor
- Fazit
- NĂŒtzliche Links
Lassen Sie unseren Serviceanbieter LAN_DC beispielsweise Schulungsvideos ĂŒber das Ăberleben in steckengebliebenen AufzĂŒgen hosten.
In GroĂstĂ€dten erfreut sich dies groĂer Beliebtheit, weshalb viele physische Maschinen benötigt werden.
Zuerst beschreibe ich das Netzwerk ungefĂ€hr so, wie ich es mir wĂŒnsche. Danach vereinfache ich es fĂŒr das Labor.
Physikalische Topologie
Standorte
LAN_DC wird 6 Rechenzentren haben:
- Russland (RU):
- Moskau (msk)
- Kazan (kzn)
- Spanien (SP):
- Barcelona (bcn)
- MĂĄlaga (mlg)
- China (CN):
- Shanghai (sha)
- Xi'an (sia)

Innerhalb des Rechenzentrums (Intra-DC)
In allen Rechenzentren identische interne Netzwerke basierend auf Clos-Topologie.
Was sind Clos-Netzwerke und warum genau diese â in einem separaten .
In jedem Rechenzentrum gibt es 10 Racks mit Maschinen, sie werden nummeriert als A, B, C Und so weiter.
In jedem Rack befinden sich 30 Maschinen. Diese werden uns nicht interessieren.
In jedem Rack befindet sich zudem ein Switch, der alle Maschinen verbindet â das ist der Top-of-Rack-Switch â ToR oder, in den Begriffen der Clos-Fabrik, werden wir ihn Leaf.

vergleichen. Hier ist das allgemeine Schema der Fabrik.
Wir werden sie benennen als XXX-leafY, wobei XXX â eine dreibuchstabige AbkĂŒrzung fĂŒr das Rechenzentrum, und Y â die Seriennummer. Zum Beispiel, kzn-leaf11.
In meinen Artikeln gestatte ich mir, die Begriffe Leaf und ToR recht flexibel als Synonyme zu verwenden. Dabei muss jedoch beachtet werden, dass das nicht korrekt ist.
ToR ist ein Switch, der in einem Rack installiert ist, an den Maschinen angeschlossen werden.
Leaf ist die Rolle eines GerÀts im physischen Netzwerk oder der Switch der ersten Ebene in Clos-Terminologie.
Das bedeutet, Leaf != ToR.
Ein Leaf kann beispielsweise ein EndofRow-Switch sein.
Dennoch werden wir in diesem Artikel weiterhin so tun, als wÀren sie Synonyme.
Jeder ToR-Switch ist seinerseits mit vier ĂŒbergeordneten Aggregations-Switches verbunden â Spine. FĂŒr Spine ist jeweils ein Rack im Rechenzentrum vorgesehen. Wir werden sie Ă€hnlich benennen: XXX-spineY.
In diesem Rack wird auch die NetzwerkausrĂŒstung stehen, die die Verbindung zwischen den Rechenzentren herstellt â zwei Router mit MPLS an Bord. Aber grundsĂ€tzlich sind das die gleichen ToR-GerĂ€te. Das heiĂt, aus der Sicht der Spine-Switches spielt es keine Rolle, ob es sich um einen normalen ToR mit angeschlossenen Maschinen oder um einen Router fĂŒr DCI handelt â beide leiten Daten weiter.
Solche speziellen ToR-GerÀte werden genannt Edge-leaf. Wir werden sie XXX-edgeY.
nennen. So wird es aussehen.

In dem obigen Diagramm habe ich tatsĂ€chlich Edge und Leaf auf derselben Ebene platziert. haben uns gelehrt, den Uplink (von hier stammt auch der Begriff) als Verbindungen nach oben zu betrachten. Hier verlĂ€uft jedoch der 'Uplink' DCI nach unten, was die gewohnte Logik etwas durcheinanderbringt. In groĂen Netzwerken, in denen die Rechenzentren weiter in kleinere Einheiten unterteilt werden â PODsâ(Point Of Delivery), werden separate Edge-PODsfĂŒr DCI und den Zugang zu externen Netzwerken ĐČŃĐŽĐ”Đ»Đ”ĐœŃ.
Zur besseren VerstĂ€ndlichkeit werde ich dennoch Edge ĂŒber Spine zeichnen, wobei wir im Hinterkopf behalten, dass es keinen intelligentes Verhalten auf Spine gibt und keine Unterschiede im Betrieb mit normalen Leaf- und Edge-leaf-GerĂ€ten (obwohl es hier Nuancen geben kann, aber im GroĂen und Ganzen ist das so).

Das Schema der Fabrik mit Edge-leafs.
Die Leaf-, Spine- und Edge-GerÀte bilden ein Underlay-Netzwerk oder eine Fabrik.
Die Aufgabe der Netzwerkfabrik (Underlay), wie wir bereits festgestellt haben, ist sehr einfach: IP-KonnektivitĂ€t zwischen den Maschinen sowohl innerhalb eines einzelnen Rechenzentrums als auch zwischen ihnen sicherzustellen. Das ist auch der Grund, warum das Netzwerk als Fabrik bezeichnet wird, Ă€hnlich wie die Fabrik der Switching-Technologie innerhalb modularer Netzwerkschalen, ĂŒber die man mehr in
SDM14 .
Die Fabrik ist vollstĂ€ndig L3. Keine VLANs, kein Broadcast â unsere hervorragenden Programmierer im LAN_DC können Anwendungen schreiben, die im L3-Paradigma leben, und virtuelle Maschinen benötigen keine Live-Migration mit der Beibehaltung der IP-Adresse.
Und noch einmal: Die Antwort auf die Frage, warum Fabrik und warum L3 â findet man in einem separaten
DCI â Data Center Interconnect (Inter-DC) .
Die DCI wird mithilfe von Edge-Leaf organisiert, also sind sie unser Ausgangspunkt fĂŒr die Anbindung an die Backbone-Strukturen.
Zur Vereinfachung nehmen wir an, dass die Rechenzentren durch direkte Verbindungen miteinander verbunden sind.
Lassen wir externe Verbindungen auĂer Acht.
Wir werden die externe Vernetzung ausschlieĂen.
Ich bin mir bewusst, dass ich jedes Mal, wenn ich ein Element entferne, das Netzwerk erheblich vereinfache. Und bei der Automatisierung unseres abstrahierten Netzwerks wird alles gut sein, aber in der realen Welt wird es EinschrÀnkungen geben.
Das ist richtig. Dennoch besteht das Ziel dieser Reihe darin, ĂŒber AnsĂ€tze nachzudenken und daran zu arbeiten, anstatt heldenhaft erfundene Probleme zu lösen.
Auf den Edge-Leafs wird das Underlay in ein VPN gelegt und ĂŒber den MPLS-Kern ĂŒbertragen (dieser direkte Link).
So sieht das High-Level-Diagramm aus.

Routing
FĂŒr die Routing innerhalb des Rechenzentrums werden wir BGP verwenden.
Im MPLS-Kern OSPF+LDP.
FĂŒr DCI, also die Organisation der KonnektivitĂ€t im Underlay â BGP L3VPN ĂŒber MPLS.

Allgemeines Routingdiagramm
Im Fabriknetzwerk wird es keine OSPF und ISIS (das in der Russischen Föderation verbotene Routing-Protokoll) geben.
Das bedeutet, dass es keine Auto-Discovery und Berechnung der kĂŒrzesten Wege geben wird â lediglich eine manuelle (in Wirklichkeit automatisierte â schlieĂlich reden wir hier ĂŒber Automatisierung) Konfiguration des Protokolls, der Nachbarschaften und der Richtlinien.

BGP-Routing-Diagramm innerhalb des Rechenzentrums
Warum BGP?
Zu diesem Thema gibt es von Facebook und Arista, in dem erlĂ€utert wird, wie man sehr groĂe Rechenzentren ĂŒber BGP. Das klingt fast wie ein Kunstwerk, ich kann es fĂŒr einen entspannten Abend sehr empfehlen.
Ein ganzer Abschnitt in meinem Artikel widmet sich diesem Thema. Wohin ich Sie auch .
Kurz gesagt, keinen IGP eignen sich fĂŒr die Netzwerke groĂer Rechenzentren, wo die Anzahl der NetzwerkgerĂ€te in die Tausende geht.
AuĂerdem ermöglicht der Einsatz von BGP ĂŒberall, sich nicht auf die UnterstĂŒtzung mehrerer verschiedener Protokolle und die Synchronisation zwischen ihnen zu konzentrieren.
Ehrlich gesagt, auf unserer Fabrik, die mit groĂer Wahrscheinlichkeit nicht schnell wachsen wird, wĂ€re OSPF mehr als ausreichend. Das sind tatsĂ€chlich die Probleme von Megaskalierern und Cloud-Titanen. Aber lassen Sie uns nur fĂŒr ein paar Ausgaben trĂ€umen, dass wir das brauchen, und BGP verwenden, wie es Peter Lapuchov vorschlug.
Routing-Politiken
Auf den Leaf-Switches importieren wir die PrÀfixe aus den Underlay-Schnittstellen mit den Netzwerken in BGP.
Wir werden eine BGP-Session zwischen jedem Leaf-Spine-Paar haben, in dem diese Underlay-PrĂ€fixe im Netzwerk angekĂŒndigt werden.

Innerhalb eines Rechenzentrums werden wir die spezifischen Daten, die wir in das Netzwerk importiert haben, verbreiten. Auf den Edge-Leafs werden wir sie aggregieren und in entfernte Rechenzentren ankĂŒndigen sowie bis zu den Toren hinunterleiten. Das bedeutet, dass jedes Tor genau wissen wird, wie es zu einem anderen Tor im selben Rechenzentrum gelangt und wo der Zugangspunkt zu einem Tor in einem anderen Rechenzentrum ist.
In DCI werden die Routen als VPNv4 ĂŒbermittelt. Dazu wird die Edge-Leaf-Schnittstelle zur Fabrik in eine VRF eingefĂŒgt, die wir UNDERLAY nennen, und die Nachbarschaft zum Spine auf dem Edge-Leaf wird innerhalb der VRF hergestellt, wĂ€hrend zwischen den Edge-Leafs in der VPNv4-Familie gearbeitet wird.

AuĂerdem werden wir es verbieten, Routen, die von Spines erhalten wurden, zurĂŒck zu diesen zu reanonsieren.

Auf Leaf und Spine werden wir keine Loopbacks importieren. Diese benötigen wir nur zur Bestimmung der Router-ID.
Auf den Edge-Leafs hingegen importieren wir sie in das globale BGP. Zwischen den Loopback-Adressen werden die Edge-Leafs BGP-Sitzungen in der IPv4 VPN-Familie miteinander aufbauen.
Zwischen den EDGE-GerĂ€ten werden wir ein weitreichendes Backbone ĂŒber OSPF+LDP haben. Alles in einer Zone. Eine extrem einfache Konfiguration.
Das ist das Bild der Routing-Architektur.
BGP ASN
Edge-Leaf ASN
Es wird eine ASN fĂŒr alle Edge-Leafs in den Rechenzentren geben. Das ist wichtig, damit zwischen den Edge-Leafs ein iBGP besteht und wir nicht auf die Feinheiten von eBGP stoĂen. Lassen Sie uns 65535 verwenden. In der RealitĂ€t könnte dies eine öffentliche AS-Nummer sein.
Spine ASN
Bei Spine haben wir eine ASN fĂŒr jedes Rechenzentrum. Wir beginnen hier mit der ersten Nummer aus dem Bereich der privaten AS â 64512, 64513 und so weiter.
Warum ASN in den Rechenzentren?
Lassen Sie uns diese Frage in zwei Teile zerlegen:
- Warum dieselbe ASN fĂŒr alle Spines eines Rechenzentrums?
- Warum variiert sie in verschiedenen Rechenzentren?
Warum dieselbe ASN fĂŒr alle Spines eines Rechenzentrums
So wird der AS-Path des Underlay-Routes auf Edge-Leaf aussehen:
[leafX_ASN, spine_ASN, edge_ASN]
Wenn wir versuchen, ihn zurĂŒck an das Spine anzukĂŒndigen, wird es ihn abweisen, weil dessen AS (Spine_AS) bereits in der Liste vorhanden ist.
Innerhalb des Rechenzentrums ist es fĂŒr uns absolut akzeptabel, dass die Underlay-Routen, die zu Edge gelangen, nicht nach unten zurĂŒckfallen. Alle Kommunikationen zwischen den Hosts innerhalb des Rechenzentrums mĂŒssen innerhalb der Spine-Ebene stattfinden.

Die aggregierten Routen anderer Rechenzentren werden jedoch ungehindert zu den ToRs gelangen â in ihrem AS-Path wird nur die ASN 65535 vorhanden sein â die Nummer des AS der Edge-Leafs, weil sie genau dort erstellt wurden.
Warum variiert sie in verschiedenen Rechenzentren
Theoretisch könnte es notwendig sein, Loopbacks von bestimmten Service-VMs zwischen den Rechenzentren zu ziehen.
Zum Beispiel wird auf dem Host ein Route Reflector oder (Virtual Network Gateway) laufen, das sich ĂŒber BGP mit dem ToR verknĂŒpft und sein Loopback ankĂŒndigt, das aus allen Rechenzentren erreichbar sein sollte.
So könnte sein AS-Pfad aussehen:
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]
Hierbei sollten keine sich wiederholenden ASN vorkommen.

Das bedeutet, dass Spine_DC1 und Spine_DC2 unterschiedlich sein mĂŒssen, ebenso wie leafX_DC1 und leafY_DC2, was wir genau anstreben.
Wie Sie wahrscheinlich wissen, gibt es Hacks, die es erlauben, Routen mit sich wiederholenden ASN entgegen dem Mechanismus zur Vermeidung von Schleifen (allowas-in auf Cisco) zu akzeptieren. Und es gibt sogar legitime Anwendungen dafĂŒr. Aber das stellt ein potenzielles Risiko fĂŒr die NetzwerkstabilitĂ€t dar. Ich bin persönlich ein paar Mal damit konfrontiert worden.
Und wenn wir die Möglichkeit haben, gefÀhrliche Dinge zu vermeiden, werden wir sie nutzen.
Leaf ASN
Jeder Leaf-Switch wird ĂŒber einen individuellen ASN im gesamten Netzwerk verfĂŒgen.
Wir handeln so aus den oben genannten GrĂŒnden: AS-Pfad ohne Schleifen, BGP-Konfiguration ohne HintertĂŒren.
Damit Routen zwischen den Leaf-Switches ungehindert durchkommen, sollte der AS-Pfad folgendermaĂen aussehen:
[leafX_ASN, spine_ASN, leafY_ASN]
Es wĂ€re wĂŒnschenswert, dass leafX_ASN und leafY_ASN unterschiedlich sind.
Dies ist auch fĂŒr die Situation mit der AnkĂŒndigung des VNF-Loopbacks zwischen den Rechenzentren erforderlich:
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]
Wir werden eine 4-Byte-ASN verwenden und sie basierend auf der ASN des Spine und der Nummer des Leaf-Switches generieren, nÀmlich so: Spine_ASN.0000X.
So sieht es mit der ASN aus.

IP-Plan
GrundsĂ€tzlich mĂŒssen wir Adressen fĂŒr die folgenden Verbindungen bereitstellen:
- Die Underlay-Netzwerkadressen zwischen dem ToR und der Maschine. Diese mĂŒssen innerhalb des gesamten Netzwerks einzigartig sein, damit jede Maschine mit jeder anderen kommunizieren kann. Das eignet sich hervorragend. 10/8. Pro Rack werden wir /26 mit Puffer bereitstellen. Wir werden /19 fĂŒr die Rechenzentren und /17 fĂŒr die Region bereitstellen.
- Verbindungsadressen zwischen Leaf/Tor und Spine.
Diese wĂŒrden wir gerne algorithmisch zuweisen, also basierend auf den Namen der GerĂ€te, die verbunden werden sollen.
Lassen Sie es 169.254.0.0/16 sein.
Und zwar 169.254.00X.Y/31, wobei X â Nummer des Spine, Y â P2P-Netzwerk /31.
Dies ermöglicht den Betrieb von bis zu 128 Racks und bis zu 10 Spine im Rechenzentrum. Die Verbindungsadressen können (und werden) zwischen den Rechenzentren wiederholt werden. - Die Verbindung zwischen Spine und Edge-Leaf wird auf Subnetzen organisiert 169.254.10X.Y/31, wo es genauso sein wird. X â Nummer des Spine, Y â P2P-Netzwerk /31.
- Link-Adressen von Edge-Leaf zur MPLS-Hauptleitung. Hier ist die Situation etwas anders â der Anschluss aller Teile zu einem ganzen System, daher können wir nicht die gleichen Adressen wiederverwenden â wir mĂŒssen das nĂ€chstverfĂŒgbare Subnetz wĂ€hlen. Deshalb nehmen wir als Grundlage 192.168.0.0/16 und werden daraus verfĂŒgbare Adressen extrahieren.
- Loopback-Adressen. Wir werden den gesamten Bereich dafĂŒr nutzen 172.16.0.0/12.
- Leaf â pro /25 fĂŒr die Rechenzentren â dasselbe gilt fĂŒr 128 Racks. Wir reservieren /23 fĂŒr die Region.
- Spine â pro /28 fĂŒr die Rechenzentren â bis zu 16 Spine. Wir reservieren /26 fĂŒr die Region.
- Edge-Leaf â pro /29 fĂŒr die Rechenzentren â bis zu 8 GerĂ€te. Wir reservieren /27 fĂŒr die Region.
Wenn uns die zugewiesenen Bereiche in den Rechenzentren nicht ausreichen (was sie nicht tun werden â wir streben schlieĂlich hyperscale Wachstum an), reservieren wir einfach den nĂ€chsten Block.
Das ist das Bild zur IP-Adressierung.

Loopbacks:
PrÀfix
GerÀterechnung
Region
Rechenzentrum
172.16.0.0/23
edge
Â
Â
172.16.0.0/27
ru
Â
172.16.0.0/29
msk
172.16.0.8/29
kzn
172.16.0.32/27
sp
Â
172.16.0.32/29
bcn
172.16.0.40/29
mlg
172.16.0.64/27
cn
Â
172.16.0.64/29
sha
172.16.0.72/29
sia
172.16.2.0/23
spine
Â
Â
172.16.2.0/26
ru
Â
172.16.2.0/28
msk
172.16.2.16/28
kzn
172.16.2.64/26
sp
Â
172.16.2.64/28
bcn
172.16.2.80/28
mlg
172.16.2.128/26
cn
Â
172.16.2.128/28
sha
172.16.2.144/28
sia
172.16.8.0/21
leaf
Â
Â
172.16.8.0/23
ru
Â
172.16.8.0/25
msk
172.16.8.128/25
kzn
172.16.10.0/23
sp
Â
172.16.10.0/25
bcn
172.16.10.128/25
mlg
172.16.12.0/23
cn
Â
172.16.12.0/25
sha
172.16.12.128/25
sia
Underlay:
PrÀfix
Region
Rechenzentrum
10.0.0.0/17
ru
Â
10.0.0.0/19
msk
10.0.32.0/19
kzn
10.0.128.0/17
sp
Â
10.0.128.0/19
bcn
10.0.160.0/19
mlg
10.1.0.0/17
cn
Â
10.1.0.0/19
sha
10.1.32.0/19
sia
Labor
Zwei Anbieter. Ein Netzwerk. ADSM.
Juniper + Arista. Ubuntu. Die alte gute Eva.
Die Anzahl der Ressourcen auf unserer virtuellen Maschine in Mirana ist jedoch begrenzt, daher verwenden wir fĂŒr die Praxis ein stark vereinfachtes Netzwerk.

Zwei Rechenzentren: Kasan und Barcelona.
- Je zwei Spine in jedem: Juniper und Arista.
- In jedem Leaf gibt es einen Juniper und einen Arista, mit einem verbundenen Host (wir nehmen hier einen leichten Cisco IOL).
- Eine Edge-Leaf-Node (vorerst nur Juniper).
- Ein Cisco-Switch, der alle vereint.
- Neben den NetzwerkgerÀten lÀuft eine Verwaltungs-VM. Betrieben unter Ubuntu.
Sie hat Zugang zu allen GerÀten und wird IPAM/DCIM-Systeme, eine Sammlung von Python-Skripten, Ansible und alles andere, was wir benötigen, betreiben.
aller NetzwerkgerÀte, die wir mit Automatisierung nachbilden möchten.
Fazit
Ist das ĂŒblich? Unter jedem Artikel einen kurzen Ăberblick zu geben?
Also haben wir ausgewÀhlt Clos-Netzwerk innerhalb des Rechenzentrums, da wir viel East-West-Traffic erwarten und ECMP nutzen möchten.
Das Netzwerk wurde in physische (Underlay) und virtuelle (Overlay) Segmente unterteilt. Dabei beginnt das Overlay mit dem Host, was die Anforderungen an das Underlay vereinfacht.
Wir haben BGP als Routing-Protokoll fĂŒr das Underlay-Netzwerk gewĂ€hlt, aufgrund seiner Skalierbarkeit und FlexibilitĂ€t der Richtlinien.
Es wird separate Knoten zur Organisation von DCI geben â Edge-Leaf.
Auf der Backbone wird OSPF+LDP implementiert.
DCI wird auf Basis von MPLS L3VPN realisiert.
FĂŒr P2P-Links berechnen wir die IP-Adressen algorithmisch basierend auf den GerĂ€tnamen.
Loopbacks werden entsprechend der Rolle der GerÀte und ihrer Position nacheinander zugewiesen.
Unterliegende PrÀfixe nur auf Leaf-Switches sequential basierend auf ihrer Position.
Angenommen, wir haben aktuell noch keine AusrĂŒstung installiert.
Deshalb werden unsere nÀchsten Schritte darin bestehen, diese in den Systemen (IPAM, Inventar) anzulegen, den Zugang zu organisieren, die Konfiguration zu generieren und sie zu deployen.
Im nĂ€chsten Artikel werden wir uns mit Netbox beschĂ€ftigen â einem System zur Inventarisierung und Verwaltung von IP-Ressourcen im Rechenzentrum.
Vielen Dank
- Danke an Andrej Glazkov aka @glazgoo fĂŒr das Korrekturlesen und die Anpassungen.
- Danke an Alexander Klimenko aka @v00lk fĂŒr das Korrekturlesen und die Anpassungen.
- Danke an Artem Tschernobai fĂŒr das KDPV.
Quelle: habr.com

