Wie man (ethernet-) device namen festlegt

Wenn man Linux Systeme administriert, begenet einem immer ein lästiges Phenomen:
Je nachdem, welcher Kernel geladen wird, ob die Treiber fest im Kernel eingebunden sind, in welcher Reihenfolge sie beim booten geladen werden, in welchem PCI-Steckplatz die Karten stecken, kurz: von der aktuellen Mondphase abhängig:
die Interfacenamen der Netzwerkkarten ändern sich ständig.

Aber es muss doch eine Möglichkeit geben, für gleiche Interfaces auch immer die gleichen Interfacenamen zu bekommen!

Und so funktionierts:

Das gesuchte Programm heißt: nameif

Im Grunde reicht es, eine /etc/mactab anzulegen:

--- /etc/mactab ---

# pci Karte
eth0 00:02:B3:D6:5C:CF

# dlink 4-Port Karte
eth1 00:80:C8:C9:8D:28
eth2 00:80:C8:C9:8D:29
eth3 00:80:C8:C9:8D:2A
eth4 00:80:C8:C9:8D:2B

# onboard interface
eth5 00:E0:18:7A:3A:A2
--- /etc/mactab ---

und dann irgendwo in den init-scripten einfach 'nameif" aufzurufen.

Sollten die Treiber allerdings fest in den kernel eingebunden sein, stehen die interface namen bei Ausfürung von 'nameif' schon fest. Die Folge sind Fehlermeldungen, dass das entsprechende Interface schon existiert, man kann also zB 'eth0' nicht in 'eth5' umbennenne, wenn dieses schon existiert.

In diesem Fall muss man 2 "mactabs" anlegen:

--- /etc/mactab.1 ---

# pci Karte
e0 00:02:B3:D6:5C:CF

# dlink 4-Port Karte
e1 00:80:C8:C9:8D:28
e2 00:80:C8:C9:8D:29
e3 00:80:C8:C9:8D:2A
e4 00:80:C8:C9:8D:2B

# onboard interface
e5 00:E0:18:7A:3A:A2
--- /etc/mactab.1 ---

und

--- /etc/mactab.2 ---

# pci Karte
eth0 00:02:B3:D6:5C:CF

# dlink 4-Port Karte
eth1 00:80:C8:C9:8D:28
eth2 00:80:C8:C9:8D:29
eth3 00:80:C8:C9:8D:2A
eth4 00:80:C8:C9:8D:2B

# onboard interface
eth5 00:E0:18:7A:3A:A2
--- /etc/mactab.2 ---

und anschliessen 'nameif' zweimal in den initscripten aufrufen:

/sbin/nameif -c /etc/mactab.1
/sbin/nameif -c /etc/mactab.2






copyright © 1997-2018  Oliver Schroeder (remove XYZ)