Table of Contents
Cumulus Linux
Unsere Doku wurde erstellt unter Cumulus 3.7 & 4.1
ONIE
Ist ein kleines Busy Box OS das sich um die Installation von Cumulus kümmert.
Installieren
Fresh Install
Wir haben die Switches mit ONIE Vorinstalliert bekommen. Das Cumulus Linux ist jedoch noch nicht installiert.
Um einen Switch zu Installieren gibt es mehrere Möglichkeiten. Dazu verlinke ich die offizielle Doku.
https://docs.cumulusnetworks.com/cumulus-linux-42/Installation-Management/Installing-a-New-Cumulus-Linux-Image/#install-using-a-usb-drive
Wir haben unsere Switches via USB Stick installiert. Zu beachten ist auch noch ob man einen Switch mit ARM oder AMD64 CPU hat.
In der Regel kann man sagen
- 1G Switches haben meistens ein ARM CPU
- 10G oder schneller haben meistens eine AMD64 CPU (Intel Atom)
System Infos
Hardware Infos
net show system decode-syseeprom
Software Infos
net show version cat /etc/lsb-release
Erstellen eines Support Files
sudo cl-support
Lizenz
Anzeigen der Lizenz
cl-license
Einspielen einer Lizenz
cl-license –i <key file>
Danach muss der Switch entweder rebootet oder der switchd Daemon neugestartet werden.
ACHTUNG
Ein Neustart vom switchd unterbricht die Switch Funktion für ca. eine Minute
sudo systemctl restart switchd
Löschen einer Lizenz
cl-license –d <key file>
User anlegen
Der Root User ist per default (wie oft unter Linux) so eingestellt das man diesen nur Lokal direkt am Gerät (Seriel) verwenden kann.
Daher legen wir uns einen eigenen User an der via sudo alle Rechte hat
groupadd -g 3001 ontec useradd -g 3001 -u 3001 -G 1000,27 -m -s /bin/bash ontec passwd ontec visudo ontec ALL=(ALL:ALL) ALL
Restlichen User absichern
passwd root passwd cumulus
OOB Management
Das OOB Interface ist immer das eth0. Default ist dieses auf DHCP gestellt.
Konfigurieren von eth0
net add interface eth0 ip address <address/prefix> net add interface eth0 ip gateway <default gw> net add dns nameserver <dns> net pending net commit
eth0 wieder auf DHCP zurück stellen
net add interface eth0 ip address dhcp net commit
Das ganze kann natürlich auch einfach via Linux Shell bzw. den normalen Config Files unter Linux gemacht werden.
NTP
Setzten der richtigen Zeitzone
dpkg-reconfigure tzdata
Die NTP Server selbst sind so wie unter Linux unter ntp.conf zu setzten.
Neustart NTP Server
systemctl restart ntp
Kontrolle der NTP Verbindung
ntpq -p
Hostname
Ist wie unter Linux zu setzten
vim /etc/hostname
Config
Übersicht der Config
net show configuration
Übersicht der net Befehle
net show configuration command
Linux Level Configs
net show configuration files
Anzeigen spezifischer Dinge. Beispiele:
net show configuration interface swp<num> net show configuration dot1x net show configuration ospf
Interfaces
Typen von Ports
- Physical Port: swp<num>
- Bond: bond<num>
- VLAN: vlan<num>
- Brdige: bridge<num>
Anzeigen der Interfaces
net show interfaces
Enable a Port
net add interface swp<n> link up
Disable a Port
net del interface swp<n> link down
Port Speed ändern.
ACHTUNG! Port Speed von 25G auf 10G kann man nicht so einfach umstellen.
net add interface swp<n> link speed 1000
Port Speed ändern 25G oder größer.
Dies muss über ein Config File erledigt werden. Danach muss auch noch der Service switchd neu gestartet werden. Dies bedeutet einen kurzen komplett Ausfall vom Switch
vim /etc/cumulus/ports.conf systemctl restart switchd.service
Ein Neustart hat bei uns im Test 46 Sekunden gedauert.
Interface Status anzeigen
ethtool swpX
Interface Stats anzeigen
ethtool -S swpX
Interface Transceiver (SFP) Stats anzeigen
ethtool -m swpX
Interface Monitoring
net show interface net show interface swp<n> net show interface swp<n> detail
Reset Counter
net clear counters
Bond (ohne CLAG)
Erstellen eines Bond auf dem selben Switch (kein CLAG)
net add bond <bond-interface> bond slaves <interfaces> Beispiel: net add bond bond1 bond slaves swp9-10
Setzten von LACP
net add bond <bond-interface> bond mode 802.3ad net add bond <bond-interface> bond miimon 100 Beispiel: net add bond bond1 bond mode 802.3ad net add bond bond1 bond miimon 100
Anzeigen der Bond Interfaces
net show int <bond> net show int <bond> detail
Löschen eines Bond Interfaces
net del bond <bond>
VLAN Brdige
Es gibt zwei Arten von VLAN Bridge bei Cumulus.
- Traditional Bridge
- VLAN-Aware Bridge
Wir verwenden den “VLAN-Aware Bridge”. Genauer möchte ich darauf nicht eingehen.
Es kann immer nur einen “VLAN-Aware Bridge” pro Switch geben.
Anzeigen einer Bridge
net show interface bridge net show bridge vlan
Anlegen eines VLAN-Aware Bridge inkl. Ports und VLANs
net add bridge <bridge-name> ports swp<n> net add bridge <bridge-name> vids <vlans> net add bridge <bridge-name> pvid <vlan> net pending net commit Beispiel: net add bridge bridge0 ports swp1-2 net add bridge bridge0 vids 100,200 net add bridge bridge0 pvid 1 net pending net commit
WICHTIG! Die Bridge bekommt VLANs und Ports zugewiesen. Alle Ports die in dieser Bridge sind sprechen automatisch diese VLANs.
Man muss erst den Ports die richtigen VLANs zuweisen damit diese nur die nötigen VLANs sprechen.
VLAN (Tagged) einem Port zuweisen
net add interface swp<n> bridge vids 100,200 net add interface swp<n> bridge pvid 1 net pending net commit Beispiel: net add interface swp33 bridge vids 100 net add interface swp33 bridge pvid 1 net pending net commit
VLAN (Access) einem Port zuweisen
net add interface swp<n> bridge access 200 net pending net commit Beispiel: net add interface swp34 bridge access 200 net pending net commit
Drop untagged Traffic
net add interface swp<n> bridge allow-untagged no Beispiel: net add interface swp46 bridge allow-untagged no
VLANs
CLAG (MLAG)
Um ein MLAG mit zwei Switches zu bauen muss es eine direkte verbindung (peerlink) zwischen den beiden Switches geben(This is typically a bond for increased reliability and bandwidth)
Zu erst muss der Peelink konfiguriert werden:
net commands ============ switch1# net add clag peer sys-mac <mac-address> interface <swp3-4 oder swp49,swp52> primary backup-ip <ip-address>
Welche MAC Adresse? Cumulus Linx gibt hier folgenden Range for:
switch1# net add clag peer sys-mac <mac-address> interface swp3-4 primary backup-ip <ip-address>
<code>
root@cumulus:~# net add clag peer sys-mac
<mac-clag> : A MAC address from the 44:38:39:FF:00:00 to 44:38:39:FF:FF:FF range
Interface: alle Interfaces der “Stack-Verbindung” angeben Primary: hier kann festgelegt werden welche Rolle der Switch haben soll Backup IP ist frei wählbar (sollte aber glaub ich nicht routebar sein)! Jeder Member benötigt seine eigene IP
Die Konfiguration muss auf beiden Switches durchgeführt werden!!!
Beispiel:
Switch1# net add clag peer sys-mac 44:38:39:FF:00:01 interface swp49,swp52 primary backup-ip 192.0.2.1 Switch1# net pening Switch1# net commit Switch2# net add clag peer sys-mac 44:38:39:FF:00:01 interface swp49,swp52 primary backup-ip 192.0.2.2 Switch2# net pening Switch2# net commit
Das CLAG/MLAG kann dann wie folgt überprüft werden:
root@cumulus:~# net show clag
The peer is alive
Our Priority, ID, and Role: 1000 b8:6a:97:29:5d:06 secondary
Peer Priority, ID, and Role: 1000 8c:ea:1b:86:04:b8 primary
Peer Interface and IP: peerlink.4094 fe80::8eea:1bff:fe86:4b8 (linklocal)
Backup IP: 192.0.2.1 (inactive)
System MAC: 44:38:39:ff:00:01
Server Anbindung mit Bond:
net add clag port bond <bond-name> interface <interface> clag-id <zahl> net add bond <bond-name> bridge access <vlan-id>
Bond: Bond name definieren z.B.: ESX01-Bond Interface: alle Switchports angeben (achtung nur von dem Switch der gerade konfiguriert wird) Clag-id: ist sowas wie die Portchannel ID unter Cisco
Die Konfiguration muss auf beiden Switches durchgeführt werden!!!
Beispiel:
Switch1# net add clag port bond server-bond interface swp1 clag-id 1 Switch1# net add bond server-bond bridge access 106 Switch1# net pending Switch1# net commit Switch2# net add clag port bond server-bond interface swp1 clag-id 1 Switch2# net add bond server-bond bridge access 106 Switch2# net pending Switch2# net commit
Anmerkungen:
- Ports, Peerlink und Bonds dürfen vorab nicht der Bridge zugewiesen sein
Offene Fragen:
- woher weiß er das er in dem Clag Bond LACP spricht ? vielleicht default
User Management
Der Default User ist “comulus” mit dem Passwort “CumulusLinux!”. Dieser User hat Admin Rechte und kann via sudo alles machen.
Der Root User ist per default in der sshd Config deaktiviert.
Es können ganz normal via Linux Shell hinzugefügt werden (adduser oder useradd).
Es gibt zwei default Gruppen von Cumulus
- netedit –> Changes möglich
- netshow –> ReadOnly
Ein User kann zu diesen Gruppen via Linux Shell hinzugefügt werden.
POE
POE unterstützen nicht alle EdgeCore Switches. Hier sollte an das Datenblatt genau lesen.
POE ist per default auf allen 1G Interfaces mit der Priorität “low” aktiv.
Diese Priorität gibt es:
- Low
- High
- Critical
Man kann einem Port eine Klasse geben. Geht dem Switch der Strom für POE aus werden zuerst die Ports in der Low Klasse deaktiviert. Danach wird High deaktiviert. Critical bleibt immer online (wenn dies möglich ist).
POE Enable / Disable
sudo poectl -e swp<n> sudo poectl -d swp<n> Beispiel: sudo poectl -e swp1 sudo poectl- e swp1-30
Ändern der Priorität
sudo poectl -p swp<n> <low|high|critical> Beispiel: sudo poectl -p swp1 ciritical sudo poectl -p swp2-5,10 low
Switch Status
sudo poectl -s
Port Information
sudo poectl -i
Passwort Reset via ONI
Boot in Recover Mode
GNU GRUB version 2.02-cl3u3
+----------------------------------------------------------------------------+
| Cumulus Linux GNU/Linux |
|*Advanced options for Cumulus Linux GNU/Linux |
| ONIE |
| |
+----------------------------------------------------------------------------+
GNU GRUB version 2.02-cl3u3
+----------------------------------------------------------------------------+
| Cumulus Linux GNU/Linux, with Linux 4.1.0-cl-7-amd64 |
|*Cumulus Linux GNU/Linux, with Linux 4.1.0-cl-7-amd64 (recovery mode) |
| |
+----------------------------------------------------------------------------+
root@switch:~# passwd Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully reboot
Update Cumulus
Es gibt diese Update Möglichkeiten:
- Minor Update via apt-get
- Minor Update via Disk Install (Oni)
- Major Update via Disk Install (Oni)
Aufpassen muss man auch noch ob man Switches via MLAG verbunden hat oder ob dies Single Switches sind.
Minor Update via apt-get Single Switch
Es kann ein Minor Update auf einem Single Switch einfach via apt-get durchgeführt werden. Hier gibt es auch recht wenig zu beachten. Beim Update werden vom OS Services neugestartet. Daher kann es zu Unterbrechungen kommen. Es kann auch sein das ein Reboot benötigt wird. Dies zeigt das OS nach dem Update an.
Achtung das Update kann auf Geräte die nicht so stark sind (zB. nur ein Gbit Switch) recht lange dauern. Eine Stunde vergeht hier recht schnell.
apt-get update apt-get upgrade
Minor Update via apt-get MLAG Switches
Hier wird ein Switch nach dem anderen gepatcht. Der Switch der die Updates einspielt ist im Verbund offline.
Kontrolle Master Slave Rolle Der Switch den wir Updaten wollen muss die Slave Rolle haben.
root@cumulus:~# clagctl status
The peer is alive
Our Priority, ID, and Role: 1000 b8:6a:97:29:5d:06 secondary
Peer Priority, ID, and Role: 1000 8c:ea:1b:86:04:b8 primary
Peer Interface and IP: peerlink.4094 fe80::8eea:1bff:fe86:4b8 (linklocal)
Backup IP: 192.0.2.1 (inactive)
System MAC: 44:38:39:ff:00:01
CLAG Interfaces
Our Interface Peer Interface CLAG Id Conflicts Proto-Down Reason
---------------- ---------------- ------- -------------------- -----------------
server-bond server-bond 1 - -
Shutdown Core Uplink Port
Man sollte wenn es einen Hauptuplink zum Switch gibt diesen abdrehen damit es nicht zu Routingproblemen kommen kann.
ip link set swpX down
Shutdown Peer Link
Abdrehen vom MLAG Peer Link
ip link set peerlink down
Update via apt-get
apt-get update apt-get upgrade
Reboot
reboot
Kontrolle STP
Auf beiden Switches muss kurz STP kontrolliert werden
mstpctl showall
Kontrolle Links
Kontrolle ob Core Uplink und Peer Links wieder up sind
net show interface
Kontrolle MLAG
Kontrolle vom MLAG Status
clagctl status
Ist wieder alles ok können wir alles vorbereiten damit wir den 2. Member machen können.
Slave Switch zum Master machen
Den Switch den wir gerade gepatcht haben der der Slave ist machen wir jetzt zum Master
clagctl priority 999
Kontrolle ob der Switch der gepatcht werden soll auch wirklich der Secondary ist.
clagctl status
Wenn dies der Fall ist kann mit diesen Schritten weiter machen:
- Shutdown Core Uplink Port
- Shutdown Peer Link
- Update via apt-get
- Reboot
- Kontrolle STP
- Kontrolle Links
- Kontrolle MLAG
MLAG Priority richtig setzten
Wenn beide Switches ihre Updates gemacht haben und wieder online sind muss man noch die MLAG Priorität richtig setzten.
Optimal wäre es wenn man noch die alten wissen würde. Wenn nicht setzte man einfach den Wert “32768” auf den Switch der aktuell der primäre ist.
In meinem Fall wir dies 1000. Daher setzte ich die Prio jetzt auf 1000.
clagctl priority 1000
