27 Dec, 2007
Setzen eines statischen Netzwerk Device Namen unter Gentoo. (eth0,eth1,…)
Posted by: Fritz Thomas In: Linux
Wird durch den Kernel eine neue Mac Adresse erkannt, wird angenommen das es sich dabei um ein neues Netzwerk Interface handelt. Dieses neue Device muss anschließend auch neu konfiguriert werden.
Soweit so gut. Möchte man aber seine Netzwerkkarte gegen eine neue tauschen, aber denselben Device Namen behalten, um so die evtl. bereits erstellte und wahrscheinlich auch funktionierende Konfiguration (Netzwerkkonfiguration, iptables,…) zu verwenden, kann mittels udev Regeln der neuen Mac Adresse einen statischen Namen zuweisen.
Das ist auch dann hilfreich wenn man eine Linux VMware Appliance kopiert, und eine neue UUID generieren lässt, um zum Beispiel mehrere “identische” Appliances im selben Netzwerk zu betreiben. Das neu generieren ändert auch die Mac Adresse der virtuellen Netzwerkkarte und somit wird auch ein neues Interface angelegt. Was vorher eth0 war wird dann zu eth1 und muss auch wieder neu konfiguriert werden.
Will man einfach manuell die Mac Adresse einer Appliance ändern oder zuweisen, um immer dieselbe MAC Adresse zu haben auch wenn die Appliance kopiert wird seht hier.
Um sich das neu Konfigurieren zu ersparen kann man mit einer einfachen udev Regel den Namen des Devices setzen.
Mac Adresse rausfinden
Zuerst müssen wir die neue Mac Adresse rausfinden.
Entweder die Ausgabe von ifconfig verrät uns schon die Mac Adresse (HWaddr XX:XX:XX:XX:XX:XX):
ifconfig -a eth1 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe06:528/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:14656 errors:0 dropped:0 overruns:0 frame:0 TX packets:13877 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5958558 (5.6 Mb) TX bytes:2020530 (1.9 Mb) Interrupt:16 Base address:0x1400
oder aber udevinfo:
udevinfo -a -p /sys/class/net/eth1 | grep address ATTR{address}=="XX:XX:XX:XX:XX:XX"
Wenn man die Mac Adresse einer vmware Appliance herausfinden will, ist es ganz einfach. Die “.vmx” Datei der Appliance mit einem Texteditor offnen. Die Mac Adresse wird nach “ethernet0.generatedAddress” gespeichert. In derselben Datei findet man auch auch die UUID. Die wird in “uuid.location” und “uuid.bios” gespeichert.
Namen für das Device setzen / ändern
Mit der Mac Adresse die wir jetzt wissen, können wir eine neue Udev Regel erstellen und einen beliebigen Namen setzen. Also können wir aus eth1 ein eth0 machen.
Unter Gentoo werden die Regeln in /etc/udev/rules.d gespeichert.
Unsere neue Regel speichern wir in ein neues File.
/etc/udev/rules.d/10-rules.local:
SUBSYSTEM=="net", ATTR{address}=="XX:XX:XX:XX:XX:XX", NAME="eth0"
Die Mac Adresse (”XX:XX:XX:XX:XX:XX”) und den Namen (”eth0″) muesst ihr natürlich mit eurer Mac Adresse und euren Wunschnamen ersetzen.
Das obige Beispiel wird also das Device mit der Mac Adresse XX:XX:XX:XX:XX:XX mit dem Namen eth0 erstellen und nicht eth1 wie in unserem Beispiel.
Man kann auch sprechendere Namen verwenden, wenn man mehrere Devices für verschiedene Dienste verwendet und man sich keine Zahlen merken will (oder kann)
Zum Beispiel: eth_www und eth_db oder eth_lan und eth_wan. Alles ist möglich.
Ändert sich die Mac Adresse erneut, zum Beispiel beim erneuten generieren der UUID unter VMware, muss natürlich in /etc/udev/rules.d/10-local.rules die neue Mac Adresse nachgetragen werden.
Wie man den Namen unter Ubuntu ändert findet man HIER









