apc usv nic trick

reinhard@finalmedia.de Sat 12 Feb 2022 10:00:21 AM CET

Wer eine APC Connected Smart UPS (USV) vom Typ SMT3000RMI2UC sein Eigen nennt (APC Smart UPS 3000VA LCD C RM 2U, USV (SMT3000RMI2UC), EAN: 0731304337348) und darin eine ältere Network Management Karte (NMC1) zusammen mit einem dhcp Server nutzen möchte, kennt vielleicht dieses Problem:

Sobald man eine ältere Network Management Karte (NMC1) zum ersten mal ans Netz hängt und dhcp client aktiviert, wird die NIC zwar mit ihrer MAC Adresse 28:29:86:... eine IP vom dhcpd aus dem eigenen Netz zugewiesen bekommen (Siehe im Menüpunkt "Info" am Display), die IP ist auch pingbar, aber ansonsten sind keine Dienste erreichbar.. Die USV wechselt schlicht nicht in den Modus, der Zugriff auf die Webgui oder snmp erlaubt, übernimmt also nicht die vom dhcp zugeteilte IP-Adresse. Das geht erst nach Initialisierung.

Damit dies geschieht, muss man in seinem dhcp server eine zusätzliche dhcp option 43 als Vendor Cookie mitsenden. Das ist die einfachste Variante. In eurem dhcpd ist also für diese MAC die option mit diesen Werten die dhcp Option 43 zu übergeben:


Option 43 = 0x01 0x04 0x31 0x41 0x50 0x43

Wenn diese Option im dhcp Server nicht aktiviert ist, wird die Netzwerk Management Firmware der USV sonst die über dhcp angebotene IP Adresse nicht final akzeptieren. Daher ist sie nur pingbar.

APC nennt dies APC Cookie. Das Schema ist TAG/LEN/DATA, also Tag 1, Len 4, Data “1APC”, wie oben in hexadezimaler Notation.

Das gilt alles nur für die NMC1. Bei der NMC2 gibt es diese Option auch, sie ist aber standardmäßig inaktiv gesetzt und daher kommt das dort nicht zum tragen.

Alternativ muss man die Wizard Software verwenden, die lokale Terminal Emulation via USB oder manuelle ARP requests, um IP und Gateway manuell zu setzen, oder die Vendor Cookie Abfrage einfach zu deaktivieren.

Alternativ arbeitet man so:

Variante a)

apc usv via arp confen:


arp -s 192.168.1.xxx 28-29-86-xx-xx-xx
ping -s 113 192.168.1.xxx
busybox telnet 192.168.1.xxx

Standard Benutzername ist "apc" und Standard-Kennwort ist "apc"

KONTEXT und Verständnis

Der Ping mit der packetsize/payloadsize von 113 bytes ist die entscheidende "Magic". Das sollte also auch funktionieren, wenn die NMC via dhcp schon einen lease bekommen hat und auch am Display unter Menüpunkt "Info" eine IP anzeigt, aber noch nicht aktiv hat. (also ohne die option 43).Es sollte dann genügen, einen


ping -s 113 IP-Adresse

auf die bereits im Display angezeigte IP durchzuführen. Damit die USV verfügbar wird. Allerdings wäre dies ja dann ja ggf. nach jedem Neustart so.

Daher ist es sinnvoller, entweder im dhcp für eine option 43 zu sorgen, oder generell die Problematik zu umgehen, indem man mit statischen IP Adressen arbeitet.

Variante b)

Setting über die serielle Konsole (Geht nur bei NMC2!! nicht bei der NMC1). Man muss das Tip-Ring-Sleeve (TRS, Klinke) auf DB9 Kabel verwenden und das an der 2,5mm Buchse der NMC2 anschließen, die mit Console beschriftet ist. WICHTIG: Nicht den USV Seriellen Port verwenden! Damit geht es nicht. Nur an diesem speziellen Konsolenport der NMC2 Karte selbst.

Vom DB9 (seriellen COM Port), dann z.B. mit einem USB Adapter. Die Konsole dann mit


9600 baud, 8 data bits, no parity, 1 stop bit, no flow control

parametrisieren. Verbindung aufbauen, dann 3-5 mal Enter drücken um einen Prompt zu erhalten. Sich dort mit den Credentials einloggen, default benutzername "apc" und Passwort "apc". Dann kann man auf der Konsole eine IP setzen


apc> tcpip -i IPAdresse -s SubnetzMaske -g IPDefaultGateway
apc> reboot

Der Befehl reboot startet nicht die ganze USV neu, sondern nur die NMC. Also keine Sorge.

Zudem gibt es noch in der apc Konsole das Kommando "boot". damit kann man auch auf dhcp umstellen und generell die Vendor Cookie Funktion ganz abschalten, indem man dies verwendet:


apc> boot -b dhcp -c disable

das c steht dabei für die die vendor cookie funktion

.

Nachtrag

Fri 01 Apr 2022 06:14:05 AM CEST

Nachtrag zum Cloud Bullshit: Der onboard Ethernet Port "SmartConnect" bindet die USV direkt in die APC Cloud und übers Internet an ein APC Kundenkonto an. TLS Traffic. Und man müsste dann seine USV Messwerte wieder über diesen Cloud Dienst auslesen. Das dies keine gute Idee ist, zeigen diese Schwachstellen, die um den 08.03.2022 bekannt wurden:

CVE-2022-22805  CVSS 9.0 Risiko kritisch
CVE-2022-22806  CVSS 9.0 Risiko kritisch
CVE-2022-0715   CVSS 8.9 Risiko hoch

Und generell ist es aus meiner Sicht auch nicht besonders "smart", wenn man dort eh schon Netzwerk-Hardware onboard verbaut hat, dann diese nicht einfach lokale SNMP readonly Möglichkeiten zum Auslesen der Messwerte zu geben. Smart eher im Sinne, dass man ja dann möglichst nochmal noch teurere Zusatzkarten NMC2/NMC3 kaufen soll, die nochmal träger und anfälliger sind?