Inbetriebnahme von Mellanox Nvidia ConnectX-4 40G NICs bei einem OPNsense Firewall Cluster

Ich bin aktuell dabei, ein OPNsense Firewall-Cluster in Betrieb zu nehmen. Das Cluster besteht aus zwei Dell R740 Server, die die folgende Netzwerk-Ausstattung besitzen:

2x 1 Gbps Kupfer (Onboard NICs)
2x 1 Gbps Glas (Onboard NICs)
2x 40 Gbps Glas (Mellanox Nvidia ConnectX-3 NIC)
2x 40 Gbps Glas (Mellanox Nvidia ConnectX-4 NIC)

Die ConnectX-3 NIC ist seitens NVIDIA / Mellanox abgekündigt und EOL, steckt aber noch im Server und verbleibt auch drin. Produktiv genutzt wird die ConnectX-4 NIC mit den beiden QSFP+ Ports.

Aktivierung der Treiber

Nach der Grundinstallation der OPNsense Software sind die Netzwerkkarten im System nicht nutzbar und können daher nicht direkt zugewiesen und verwendet werden. Damit dies möglich ist, fügen wir unter System Settings Tunables neue Einträge hinzu. Diese dienen dazu, dass die Treiber beim Systemstart geladen werden, und die Karten genutzt werden können.

Wichtig ist hierbei, dass die Zahl in dem Eintrag nicht die Generation der Karten darstellt. Für Mellanox gibt es hier zwei relevante Einträge:

EintragNetzwerkkarte und Generation
mlx4en_loadMellanox NVIDIA ConnectX-2 und ConnectX-3
mlx5en_loadMellanox NVIDIA ConnectX-4, ConnectX-5 und ConnectX-6

Weitere Infos und auch andere Karten-Typen befinden sich im sehr guten Wiki von Thomas Krenn: https://www.thomas-krenn.com/de/wiki/OPNsense_Chelsio_Mellanox_Broadcom_Netzwerkkarten-Treiber_aktivieren

Nachdem die Einträge angelegt sind, muss das System einmal neugestartet werden, damit die Treiber geladen werden.

Das Problem: Die Karten tauchen nicht zur Zuweisung auf

Nach dem Neustart waren die Karten zwar im Boot-Log (Befehl dazu auf der Shell ist dmesg) sichtbar, konnten aber nicht in der OPNsense-Zuordnung ausgewählt werden. Nachdem ich kurz nach einer Ursache dafür gesucht habe, kam mir meine Erfahrung mit den Karten aus den letzten Jahren zugute. Ich habe schon viele Male ConnectX-Karten verbaut, die ab Werk in der Infiniband-Identität ausgeliefert wurden. Um sie in einem Failover- bzw. HCI-Cluster dann ans Laufen zu bekommen, muss die Identität der Karten einmalig auf Ethernet umgestellt werden. Mit diesem Hintergrund habe ich dann nachgeschaut, wie ich unter OPNsense einen Status der Karten rausbekomme.

Installation der notwendigen MFT-Tools

Damit wir den Status einsehen und ggf. umstellen können, muss auf der Shell der OPNsense-Installation folgendes durchgeführt werden (Bitte vorher auf die aktuelle Version prüfen und ggf. durch die aktuelle Version ersetzen!):

# Wechsel in das tmp-Verzeichnis
cd /tmp/
# Download der aktuellen Tools (Stand 13.04.2023)
fetch https://www.mellanox.com/downloads/MFT/mft-4.23.0-104.tgz
# Entpacken des Archivs
tar xfzv mft-4.23.0-104.tgz
# Wechsel in neuen Ordner
cd mft-4.23.0-104
# Installation von Bash per Paket-Manager
pkg install bash
# Installation der Tools
bash install.sh
# Notwendige Verknüpfung erstellen
ln -s /usr/local/bin/python2.7 /usr/bin/python

Nachdem die Installation durchgeführt wurde, können wir uns die aktuellen Karten anschauen:

/usr/bin/mst status

Man kann hier gut die beiden NICs erkennen, die in meinem System verbaut sind. Um nun die aktuelle Einstellung rauszubekommen, kann der folgende Befehl genutzt werden:

/usr/bin/mlxconfig -d pci0:94:0:0 query

Der Screenshot zeigt, dass die Karte in diesem Fall auf ETH (2) steht, was korrekt ist. Die andere Karte mit der Adresse pci0:24:0:0 stand auf IB (1) und musste von mir angepasst werden, damit sie als Ethernet-Karte verwendet werden kann. Die Anpassung geht mit dem folgenden Befehl:

/usr/bin/mlxconfig -d pci0:24:0:0 set LINK_TYPE_P1=2 LINK_TYPE_P2=2

Jetzt muss der Server noch einmal neugestartet werden, danach ist die Karte sichtbar und kann in der Admin-Oberfläche unter Interfaces Assignments zugewiesen und konfiguriert werden.

Weitere Hilfen und Quellen

Bei der Durchführung der Installation und Anpassung haben mir die folgenden Seiten sehr geholfen, vielen Dank dafür:

routerperformance.net: Mellanox ConnecX management in OPNsense

forum.opnsense.org: Mellanox ConnectX-3 support


Sie benötigten persönliche Unterstützung oder haben nicht die richtige Lösung für Ihr Problem gefunden?

Dieser Blog wird von mir, Jan Kappen, in seiner Freizeit betrieben, hier beschreibe ich Lösungen für Probleme aller Art oder technische Anleitungen mit Lösungsansätzen.

Die berufliche Unabhängigkeit

Ich bin seit Januar 2020 vollständig selbstständig und habe meine eigene Firma gegründet, die Building Networks mit Sitz in Winterberg im schönen Sauerland. Hier stehe ich als Dienstleister gerne für Anfragen, Support oder Projekte zur Verfügung.

Die Firma Building Networks bietet Ihnen:

  • Hilfe und Support per Telefon, Fernwartung oder persönlich vor Ort
  • Projekt-Unterstützung
  • Ausgezeichnete Kompetenz zu den Themen
    • Microsoft Hyper-V
    • Microsoft Failover Clustering & HA
    • Storage Spaces Direct (S2D) & Azure Stack HCI
    • Veeam Backup & Recovery
    • Microsoft Exchange
    • Microsoft Exchange Hybrid Infrastruktur
    • Microsoft Active Directory
    • Microsoft Office 365
    • Ubiquiti
    • 3CX VoIP PBX
    • Fortinet Network Security
    • Baramundi Software
    • ...

Ich freue mich über Ihren Kontakt, weitere Informationen finden Sie auf der Webseite meiner Firma unter Building-Networks.de

Jan

Jan Kappen arbeitet seit 2005 in der IT. Er hat seine Ausbildung 2008 abgeschlossen und war bis 2018 als IT-Consultant im Bereich Hyper-V, Failover Clustering und Software Defined Storage unterwegs. Seit 2015 wurde er jährlich von Microsoft als Most Valuable Professional (MVP) im Bereich "Cloud & Datacenter Management" ausgezeichnet für seine Kenntnisse und die Weitergabe seines Wissens. Jan ist häufig auf Konferenzen als Sprecher zu finden, weiterhin bloggt er viel. Von September 2018 bis Dezember 2019 war Jan als Senior Network- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland angestellt. Im Januar 2020 hat er den Sprung in die Selbstständigkeit gewagt und ist seitdem Geschäftsführer der Firma Building Networks in Winterberg. In seiner Freizeit kümmert er sich um das Freifunk-Netzwerk in Winterberg und Umgebung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert