Vom Nichts zum Rechenzentrum mit VXLAN / EVPN oder wie man Cumulus Linux kocht. Teil 1

In den letzten sechs Monaten haben wir es geschafft, an einem großen und interessanten Projekt zu arbeiten, das alles umfasste: von der Installation der Geräte bis zur Erstellung einer einzelnen VXLAN / EVPN-Domäne in 4 Rechenzentren. weil Ich hatte viel Erfahrung und viele Probleme dabei und entschied, dass das Schreiben einiger Artikel zu diesem Thema die beste Lösung wäre. Ich beschloss, den ersten Teil allgemeiner und einführender zu gestalten. Das Zieldesign der Fabrik wird im nächsten Abschnitt bekannt gegeben.







Einführung in Cumulus Linux. Hardwareinstallation und Ersteinrichtung



Die Einführung in den Beginn der Arbeit war wie folgt:



  1. Ausrüstung gekauft
  2. Gestelle gemietet
  3. Leitungen zu alten Rechenzentren verlegt


Die erste Hardware, die geliefert werden musste, war 4 x Mellanox SN2410 mit vorinstalliertem Cumulus Linux. Anfangs gab es noch kein Verständnis dafür, wie alles aussehen würde (es wird sich erst in der Phase der VXLAN / EVPN-Implementierung entwickeln), daher haben wir beschlossen, sie als einfache L3-Switches mit CLAG (Analog von MLAG von Cumulus) zu erhöhen. Bisher hatten weder ich noch meine Kollegen viel Erfahrung mit Cumulus, also war alles bis zu einem gewissen Grad neu, dann genau das.



Keine Lizenz - keine Ports



Wenn Sie das Gerät einschalten, stehen Ihnen standardmäßig nur zwei Ports zur Verfügung - Konsole und eth0 (auch als Management-Port bezeichnet). Um 25G / 100G-Ports zu entsperren, müssen Sie eine Lizenz hinzufügen. Und es wird sofort klar, dass Linux im Namen der Software nicht umsonst ist, da Nach der Installation der Lizenz müssen Sie den switchd-Daemon über "systemctl restart switchd.service" neu starten (das Fehlen einer Lizenz verhindert lediglich den Start dieses Daemons).



Das nächste, was Sie sofort daran erinnert, dass dies immer noch Linux ist, ist die Aktualisierung des Geräts mithilfe des apt-get-Upgrades, wie in regulärem Ubuntu, aber es ist nicht immer möglich, auf diese Weise zu aktualisieren. Wenn Sie beispielsweise zwischen den Versionen 3.1.1 und 4.1.1 wechseln, müssen Sie ein neues Image installieren, wodurch die Konfigurationen auf die Standardeinstellungen zurückgesetzt werden. Es wird jedoch gespeichert, dass DHCP in der Standardkonfiguration auf der Verwaltungsoberfläche aktiviert ist, sodass Sie die Steuerung zurückgeben können.



Lizenzinstallation
cumulus@Switch1:~$ sudo cl-license -i

balagan@telecom.ru|123456789qwerty

^+d


cumulus@Switch1:~$ sudo systemctl restart switchd.service




P.S. eth0(mgmt) :

cumulus@Switch1:~$ net show configuration commands | grep eth

net add interface eth0 ip address dhcp

net add interface eth0 vrf mgmt




System festschreiben



Als eine Person, die viel mit Juniper gearbeitet hat, für mich Dinge wie Rollbacks, Commit Confirm, etc. waren nicht neu, schafften es aber auf ein paar Rechen zu treten.



Das erste, was mir begegnete, war die Rollback-Nummerierung von Cumulus aufgrund der Gewohnheit von Rollback 1 == der letzten Arbeitskonfiguration. Ich fahre diesen Befehl mit großer Zuversicht, um die neuesten Änderungen rückgängig zu machen. Aber was war meine Überraschung, als die Hardware einfach die Kontrolle verlor und ich einige Zeit nicht verstand, was passiert war. Nachdem ich das Dock von cumulus gelesen hatte, wurde klar, was passiert war: Indem ich den Befehl „net rollback 1“ ausführte, anstatt zur letzten Konfiguration zurückzukehren, kehrte ich zur ERSTEN Gerätekonfiguration zurück. (Und wieder wurde DHCP in der Standardkonfiguration vom Fiasko gespeichert.)



Geschichte begehen
cumulus@Switch1:mgmt:~$ net show commit history

# Date Description

— — — 2 2020-06-30 13:08:02 nclu «net commit» (user cumulus)

208 2020-10-17 00:42:11 nclu «net commit» (user cumulus)

210 2020-10-17 01:13:45 nclu «net commit» (user cumulus)

212 2020-10-17 01:16:35 nclu «net commit» (user cumulus)

214 2020-10-17 01:17:24 nclu «net commit» (user cumulus)

216 2020-10-17 01:24:44 nclu «net commit» (user cumulus)

218 2020-10-17 12:12:05 nclu «net commit» (user cumulus)


cumulus@Switch1:mgmt:~$




Das zweite, was ich zu bewältigen hatte, war der Commit-Bestätigungsalgorithmus: Im Gegensatz zum üblichen "Commit Confirm 10", bei dem Sie innerhalb von 10 Minuten erneut "Commit" schreiben müssen, hatte Cumulus eine eigene Vision dieser Funktion. Ihre "Commit-Bestätigung" drückt einfach die Eingabetaste, nachdem Sie einen Befehl eingegeben haben. Dies kann einen grausamen Witz auf Sie auslösen, wenn die Verbindung nicht sofort nach dem Commit unterbrochen wird.



Netto-Commit bestätigen 10
cumulus@Switch1:mgmt:~$ net commit confirm 10

— /etc/network/interfaces 2020-10-17 12:12:08.603955710 +0300

+++ /run/nclu/ifupdown2/interfaces.tmp 2020-10-29 19:02:33.296628366 +0300

@@ -204,20 +204,21 @@



auto swp49

iface swp49

+ alias Test

link-autoneg on



net add/del commands since the last «net commit»

================================================



User Timestamp Command

— — — cumulus 2020-10-29 19:02:01.649905 net add interface swp49 alias Test



Press ENTER to confirm connectivity.




Erste Topologie



Der nächste Schritt bestand darin, die Logik der Switches untereinander zu erarbeiten. Zu diesem Zeitpunkt wurde die Hardware nur installiert und getestet. Von Zielschemata war noch keine Rede. Eine der Bedingungen war jedoch, dass sich Server, die mit verschiedenen MLAG-Paaren verbunden sind, in derselben L2-Domäne befinden müssen. Ich wollte eines der Paare nicht einfach L2 machen, und deshalb wurde beschlossen, die L3-Konnektivität über SVI zu erhöhen. OSPF wurde für das Routing ausgewählt, da Es wurde bereits in älteren Rechenzentren verwendet, um die Verbindung der Infrastruktur im nächsten Schritt zu vereinfachen.







Dieses Diagramm zeigt das Physikdiagramm + die Aufteilung der Geräte in Paare. Alle Verknüpfungen im Diagramm funktionieren im Trunk-Modus.







Wie bereits erwähnt, erfolgt die gesamte L3-Konnektivität über SVI. Daher haben nur 2 von 4 Geräten eine IP-Adresse in jedem Vlan, sodass Sie eine Art L3-P2P-Bundle erstellen können.



Grundlegende Befehle für Interessierte



Bond (Port-Kanal) + CLAG (MLAG)
# vrf mgmt best-practice

net add interface peerlink.4094 clag backup-ip ... vrf mgmt

# ( linklocal IP )

net add interface peerlink.4094 clag peer-ip linklocal

# 44:38:39:ff:00:00-44:38:39:ff:ff:ff

net add interface peerlink.4094 clag sys-mac .X.X.X.X

#C Bond#

net add bond bond-to-sc bond slaves swp1,swp2

# LACP

net add bond bond-to-sc bond mode 802.3ad

# VLAN Bond

net add bond bond-to-sc bridge vids 42-43

# ID

net add bond bond-to-sc clag id 12

P.S. /etc/network/interfaces







cumulus@Switch1:mgmt:~$ net show clag

The peer is alive

Our Priority, ID, and Role: 32768 1c:34:da:a5:6a:10 secondary

Peer Priority, ID, and Role: 100 b8:59:9f:70:0e:50 primary

Peer Interface and IP: peerlink.4094 fe80::ba59:9fff:fe70:e50 (linklocal)

VxLAN Anycast IP: 10.223.250.9

Backup IP: 10.1.254.91 vrf mgmt (active)

System MAC: 44:39:39:aa:40:97




Trunk / Access-Port-Modus
# Vlan

net add vlan 21 ip address 100.64.232.9/30

# ID

net add vlan 21 vlan-id 21

# L2 Bridge

net add vlan 21 vlan-raw-device bridge

P.S. VLAN Bridge

#Trunk ( bridge vlan)

net add bridge bridge ports swp49

#Trunk ( VLAN)

net add interface swp51-52 bridge vids 510-511

#Access

net add interface swp1 bridge access 21

P.S. /etc/network/interfaces



OSPF + Statisch
#Static route mgmt

net add routing route 0.0.0.0/0 10.1.255.1 vrf mgmt

#OSPF Network

net add ospf network 0.0.0.0 area 0.0.0.0

#OSPF

net add interface lo ospf area 0.0.0.0

P.S. Cumulus Loopback

#OSPF

net add ospf redistribute connected

P.S. vtysh(c Cisco like ), .. Cumulus FRR



Fazit



Ich hoffe, jemand findet diesen Artikel interessant. Ich würde gerne Feedback sehen: Was soll hinzugefügt werden und was ist völlig unnötig. Im nächsten Artikel werden wir bereits auf das Interessanteste eingehen - auf das Design des Zielnetzwerks und die VXLAN / EVPN-Konfiguration. In Zukunft ist ein Artikel zur VXLAN / EVPN-Automatisierung mit Python möglich.



All Articles