Das heimische Netzwerk wächst unweigerlich, nachdem ein 24-Port-Switch für alle Netzwerksteckdosen, Server und deren Ports nicht mehr ausreichte, musste ein weiterer bzw. neuer her. Wobei „neu“ relativ ist, denn auf dem Gebrauchtmarkt finden sich Geräte, die sich durchaus als Schnäppchen bezeichnen lassen. Zwar haben diese u.U. bereits ein paar Jahre Betrieb hinter sich, aber das vornehmlich in relativ staubarmen Rechenzentren unter guter Klimatisierung. Davon abgesehen sind die einzigen beweglichen Teile die Lüfter, die sich ggf. leicht austauschen lassen.
Meine Wahl fiel auf Switches der Serie HP (bzw. jetzt HPE) 2810, so dass sich nun ein HP ProCurve 2810-48G sowie ein HP ProCurve 2810-24G im Serverschrank befinden. Diese Reihe wird von HP nach wie vor gewartet, die letzte Firmware-Aktualisierung stammt vom Februar 2017. Darüber hinaus gibt HP eine „lebenslange“ Garantie, bei der ich mich ausnahmsweise freuen würde, das Garantie-Ende zu erleben, denn laut HPE Warranty Check läuft die Garantie erst im Jahr 2109 (!) aus…
HPE 2810 in Kurzform
Die Switches besitzen gleich mehrere Management-Interfaces. Einerseits lassen sie sich per Web-UI steuern, andererseits bieten sie Zugang per Telnet, woraufhin man die Wahl zwischen einer Kommandozeile (CLI) und einer Steuerung per Menü-Oberfläche hat. Leider hat die Web-UI einige Nachteile, einerseits basiert sie auf Java-Applets, andererseits bildet sie nicht alle Möglichkeiten der CLI ab. Da Java-Applets inzwischen von modernen Browsern nicht mehr oder nur unter Umgehung etlicher Sicherheitsmerkmale und selbst dann nur sehr holprig unterstützt werden, bietet sich die Verwendung einer virtuellen Maschine (VM) an, in der z.B. ein älterer Internet Explorer zum Einsatz kommt. Diese VM sollte insofern auch ausschließlich für den Zugriff auf die Switches eingesetzt werden. Falls man diesen Aufwand scheut oder nicht unbedingt eine grafische Übersicht benötigt, bietet sich der Zugang per Telnet an. Auch das sollte nur im geschützten, internen Netz passieren, da die Datenübertragung bekanntlich unverschlüsselt erfolgt. Zu guter Letzt bieten die Switches noch einen direkten Zugang per serieller Verbindung. SSH lässt sich ebenfalls nutzen, ist per Default jedoch nicht aktiviert. Die sehr umfangreichen Manuals – allein der „Management and Configuration Guide“ umfasst über 400 Seiten – geben weitere Hinweise zur Konfiguration. Die Manuals liegen auf dem FTP-Server von HPE, und wie immer helfen Suchmaschinen.
Die Switches lassen sich einfach verbinden, d.h. mit einem normalen Netzwerkkabel, es muss kein Crossover-Kabel sein, dank Auto-MDI-X wird die Verbindung erkannt. Nebenbei erwähnt können die Switches per Stacking gemeinsam bzw. mit einem Zugang verwaltet werden. Sobald zwei oder mehr kompatible Switches im Netzwerk vorhanden sind, werden sie erkannt und lassen sich als Stack einrichten. Anschließend genügt der Zugang auf den Management-Switch, genannt „Commander“, von dort lassen sich die anderen Switches („Member“) erreichen.
Link Aggregation – Theorie
Die Verbindung mittels eines Netzwerkkabels funktioniert, warum nun eine erweiterte Konfiguration per Link Aggregation? Genaugenommen war dies ein Nebenschauplatz. Einer der Server besitzt vier Netzwerk-Ports, die anderen jeweils zwei. Da lag die Idee des Zusammenschlusses nahe, um dem Traffic zwischen den Servern etwas mehr Bandbreite zur Verfügung zu stellen als die maximalen 1 Gbit/s. Bevor ich mich jedoch an die Konfiguration des Netzwerk-Bonding (auch Bündelung oder Trunking) unter Linux heran gewagt habe, wollte ich dies mit den Switches ausprobieren.
Dazu sollten beim 24-Port-Switch die Ports 23 und 24 genutzt werden, auf dem 48-Port-Switch die Ports 47 und 48. Somit habe ich mich zunächst auf die Suche nach weiteren Informationen begeben, denn für den Begriff Link-Aggregation oder Bündelung von Ethernet-Schnittstellen gibt es bemerkenswert viele Bezeichnungen. Grundlagen dazu finden sich etwa in der Wikipedia, aber auch im Thomas-Krenn-Wiki. Ein Blick in die Feature-Übersicht der HPE 2810-Serie verrät, dass die Switches das jetzt IEEE 802.1AX (früher IEEE 802.3ad) genannte Link Aggregation Control Protocol (LACP) sowie ein HP-ProCurve-eigenes „Trunking“ Protokoll unterstützen.
Um die Begriffsvielfalt noch einmal zu erhöhen, unterscheidet HPE noch einmal zwischen „Dynamic LACP“ und „Static LACP“. Kurzum – bei „Dynamic LACP“ erfolgt die Aushandlung der Verbindungsparameter durch die beteiligten Partner, im Beispiel durch die beiden Switches. Für den genannten Fall war die Konfiguration von „Dynamic LACP“ genau das, was ich gesucht hatte, nicht zuletzt gibt es dazu auch Fragen und Antworten in HPE-Foren (z.B. „Procurve 2810-24g trunking/lacp setup for newbie“ oder „How to enable LACP on two ports on a 2810-48G„).
Link Aggregation – Praxis
Glücklicherweise ist die eigentliche Konfiguration einfacher als die Grundlagen es erscheinen lassen. Da die Link Aggregation sich nur per CLI oder Menu einstellen lässt, muss man sich zunächst per Telnet auf einem der Switches einloggen:
$ telnet <switch-IP>
Danach erscheint die Einstiegsmeldung, z.B.:
ProCurve J9021A Switch 2810-24G Software revision N.11.76 Copyright (C) 1991-2017 Hewlett-Packard Co. All Rights Reserved. RESTRICTED RIGHTS LEGEND Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subdivision (b) (3) (ii) of the Rights in Technical Data and Computer Software clause at 52.227-7013. HEWLETT-PACKARD COMPANY, 3000 Hanover St., Palo Alto, CA 94303 We'd like to keep you up to date about: * Software feature updates * New product announcements * Special events Please register your products now at: www.ProCurve.com Press any key to continue
Anschließend wird im Falle, dass die Switches „gestackt“ sind, die Auswahl gegeben, auf welchen der Switches die Verbindung erfolgen soll:
Enter switch number to connect to or <CR>: SN MAC Address System Name Device Type Status -- ------------- ---------------- --------------------- ------------------------- 0 082e5f-bf17a0 HP Switch 24 ... ProCurve 2810-24G Commander Up 1 f06281-114c00 HP Switch 48 ... ProCurve 2810-48G Member Up
Einmal „0“ gedrückt und schon befindet man sich auf der Kommandozeile:
HP Switch 24 Port#
Falls die Menüsteuerung aktiv ist, kann aus dem Hauptmenü auf die Kommandozeile „Command Line (CLI)“ gewechselt werden. Zwar lässt sich die Konfiguration auch per Menüsteuerung ändern, aber für die folgende Beschreibung verwende ich die Kommandozeile, nicht zuletzt weil etwa „hoch, hoch, hoch bis zum Menüpunkt XYZ, dann Return drücken“ dann doch umständlicher ist als die kurze und prägnante Eingabe von Kommandos.
Danach per Eingabe von „config“ in den Konfigurationsbereich wechseln. Der entsprechende Bereich wird daraufhin im Prompt angezeigt.
Hinweis: Mit „exit“ kommt man zurück in den vorherigen Bereich, alternativ kann „Ctrl-Z“ gedrückt werden. Mit „help“ steht jeweils eine kontextbezogene Hilfe zur Verfügung.
HP Switch 24 Port# config HP Switch 24 Port(config)#
Es schadet nicht, sich ein wenig umzusehen, und zwar per „show“-Kommando.
HP Switch 24 Port(config)# show interfaces Status and Counters - Port Counters Flow Bcast Port Total Bytes Total Frames Errors Rx Drops Rx Ctrl Limit ------- ------------ ------------ ------------ ------------ ----- ------ 1 0 0 0 0 off 0 [...] 23 0 0 0 0 off 0 24 2,225,787... 411,001,633 2 0 off 0
Relevant hierbei ist, dass die Interfaces, d.h. Ports einfach durchnummeriert sind. Zwar lassen sich auch Namen vergeben (siehe „show name“), aber dies wäre hier nicht unbedingt notwendig.
Um nun die Interfaces, d.h. Ports 23 und 24 zu konfigurieren, können sie gemeinsam ausgewählt werden, anschließend erfolgt das Setzen des Parameters für LACP, und zum Schluss muss diese Konfigurationsänderung noch gespeichert werden:
HP Switch 24 Port(config)# interface 23-24 HP Switch 24 Port(eth-23-24)# lacp active HP Switch 24 Port(eth-23-24)# exit HP Switch 24 Port(config)# write memory
Das war es bereits! Anstatt einer gemeinsamen Auswahl können die Ports auch einzeln eingerichtet werden, dazu wird zunächst das Interface ausgewählt („interface 23
„), anschließend erfolgt das Kommando zur Parameteränderung, z.B. „lacp active
„. Zu beachten ist, dass sich die gemeinsame Auswahl auf einen Interface-Bereich bezieht, d.h. „interface 1-4
“ würde sich auf die Ports 1,2,3 und 4 auswirken. Auch dabei gilt – Schreiben in das Flash-Memory nicht vergessen!
Dasselbe muss nun auf der Gegenstelle, d.h. dem zweiten Switch wiederholt werden, natürlich mit den entsprechenden Ports, die verbunden werden sollen.
Erst danach sollte das zweite Kabel platziert werden (der nicht ganz ernst gemeinte Versuch, die Switches mittels zweier Kabel ohne jegliche Konfigurationsänderung zu verbinden, endete in Paketkollisionen, entsprechenden Log-Einträgen und dauerhaft leuchtenden anstatt blinkenden LEDs).
Der Status lässt sich natürlich auch prüfen:
HP Switch 24 Port(config)# show lacp LACP PORT LACP TRUNK PORT LACP LACP NUMB ENABLED GROUP STATUS PARTNER STATUS ---- ------- ------- ------- ------- ------- 23 Active Dyn1 Up Yes Success 24 Active Dyn1 Up Yes Success
HP Switch 24 Port(config)# show trunks Load Balancing Port | Name Type | Group Type ---- + -------------------------------- --------- + ----- ----- 23 | 100/1000T | Dyn1 LACP 24 | 100/1000T | Dyn1 LACP
Fazit
Bleibt die Frage, ob die Verbindung nun wirklich etwa doppelt so viel Datendurchsatz erreicht – das sollte mittels Benchmarks ermittelt werden. Als ich ein wenig später LACP für die Server konfiguriert hatte, ließ sich die Verbesserung des Durchsatzes bestätigen, insofern hatte sich die Änderung durchaus gelohnt. Dazu jedoch später mehr…
Zum Schluss: Die Anfänge haben wie folgt ausgesehen – noch etwas chaotisch und nur mit einem HP 2810-24G:
Hallo, danke f. diese Anleitung.
Allerdings glaube ich dass hier etwas fehlt, denn wie komme ich dazu dass die als „lacp active“ gesetzten Ports als gemeinsame Gruppe (in diesem Fall ‚Dyn1‘) agieren? Bei Ausführung der hier beschriebenen Vorgehensweise sind die Ports erstmal weiterhin für sich und nicht automatisch in einer Dyn-Gruppe, was dann zu Paketkollissionen usw. führt). Leider findet sich für mich aktuell nirgends eine adäquate Beschreibung wie sich diese Gruppe setzen lässt.
Funktional nutzbar ist hier aktuell das Setzen einer TrunkGruppe mit fixem LACP oder dem HP-eigenen Trunking-Protokoll. Beides lässt sich aber nicht in Kombination mit dem Befehl „lacp active“ nutzen, das gibt immer Gemeckere dass das so nicht möglich sei. 🤷♂️
Hey Jens,
sobald der Port auf der „Gegenseite“ auch einen entsprechenden Link mit LACP active gefunden hat, wechselt die Gruppe automatisch von GrpX auf DynX.