Weiß jemand, ob es eine Möglichkeit gibt, den Namen einer Netzwerkschnittstelle in NetBSD zu ermitteln, wenn man vorher weiß, welche Netzwerkkarte/welchen Treiber man verwenden wird?
Ich versuche, Teile einer NetBSD-Konfiguration für verschiedene Maschinen zu automatisieren und möchte eine Datei /etc/ifconfig.xx schreiben, weiß aber nicht, was der Teil „xx“ sein wird. Ich weiß beispielsweise, dass meine Intel-Netzwerkkarte „wm“ als Suffix verwendet, aber woher bekommt NetBSD diese Informationen?
Antwort1
Nein, Sie können nicht im Voraus wissen, welcher Treiber für eine mysteriöse Hardwarekonfiguration angeschlossen wird. Wenn Sie natürlich mit einem Hardwareinventar bekannter Konfigurationen arbeiten und im Voraus bestimmt haben, welcher Treiber für jeden Schnittstellentyp in Ihren bekannten Systemen verwendet wird, ist dies ziemlich deterministisch.
Andererseits wird beim Booten des Systems oder nach dem ersten Booten die Liste der bekannten Schnittstellen durch den Befehl ausgegeben ifconfig -l
.
Natürlich erfahren Sie dadurch noch immer nicht, an welche Schnittstelle ein Ethernet-Kabel angeschlossen ist, z. B. wenn Ihr System über mehrere Schnittstellen auf der Hauptplatine verfügt oder mehrere Ethernet-Karten installiert sind oder eine Multiport-Karte usw. Einige Schnittstellen werden jedoch automatisch angezeigt, wenn sie eine Verbindung mit dem Switch/Hub/was auch immer aushandeln. In diesem Fall ifconfig -a
werden Ihnen alle Informationen zu allen bekannten Schnittstellen angezeigt, einschließlich der Frage, welche Schnittstelle(n) aktiv ist (sind) und welche Medien sie verwenden (die status:
bzw. media:
die Leitungen).
Jedoch, wenn Ihre Zielumgebung DHCP zur Adressvergabe verwendet, dann können Sienormalerweisekommen Sie damit davon, indem Sie einfach die folgende Zeile verwenden in/etc/rc.conf
dhclient=YES
da standardmäßig versucht wird, auf jeder verfügbaren (broadcast-fähigen) Schnittstelle eine Adresse anzufordern.
Antwort2
Ich denke, Sie könnten entweder dhcpd.conf oder ein Post-Boot-Skript von ifconfig(8) verwenden, um die Schnittstellen neu zuzuweisen, indem Sie auf ihre Hardware-MAC-Adressen verweisen, die eindeutig sind, selbst wenn Sie mehrere identische Netzwerkkarten verwenden. Es wäre schön, wenn man auf die MAC-Adressen verweisen könntestattdessender XXn Schnittstellennamen, aber ifconfig(8) scheint diese Option nicht zu haben.
Antwort3
Ich dachte, NetBSD prüft dies anhand der Vendor- und PCI-ID. Vielleicht sind pcidevs.h und pcidevs_data.h hilfreich für Sie.