Feste Namensvergabe bei Netzwerkgeräten, Altlasten entfernen (SuSE 10.x/Ubuntu)

Status
Für weitere Antworten geschlossen.

Rain_Maker

Administrator
Teammitglied
Hallo,

Hier eine kleine Anleitung zur Lösung eines Problems, welches mich selbst vor ein paar Tagen beschäftigt hatte.

0. Die Ausgangslage:

Mein Schlepptop war hinüber, es wurde (glücklicherweise auf Kulanz) repariert, wobei das Motherboard ausgetauscht wurde und somit auch eine neue Onboard-Netzwerkkarte vorhanden war.

Beim ersten Start meiner SuSE 10.0 kam es dazu (wie ja eigentlich zu erwarten), daß beim Setup der Netzwerkinterfaces mir ein dickes, rotes "failed" entgegengeschleudert wurde.

Naja, nicht weiter schlimm, die WLAN-Karte, welche ich ja für meinen Internetzugang benutze, funktionierte ja noch.

1. Erster Gedanke:

"Mal in Yast nachsehen, was da so angezeigt wird".

Siehe da, meine LAN-Karte war doppelt vorhanden ?!?

MAC-Adressen nachgeprüft und es zeigte sich, daß es sich um 2 identische Modelle aber verschiedene MAC-Adressen handelte. Da dämmerte es mir dann, wie das wohl passiert sein könnte (siehe oben) und ich löschte beherzt die "alte" Karte und richtete die neue mit den selben Daten ein (ist ja kein Hexenwerk).

Code:
rcnetwork restart
Alles wunderbar, kein "Failed" mehr, aber ich hatte nun nicht mehr eine eth0 (LAN) und eine eth1 (WLAN, ipw2200-Karten werden als ethX erkannt) sondern eine eth1 (WLAN) und eine eth2 (neue LAN).

Das gefiel mir nicht nur aus optischen Gründen gar nicht, denn die Firewall-Einstellungen sind bei für die jeweiligen ethX-Interfaces einzeln definiert und ich hätte da alles ändern müssen.

2. Ansatzpunkt:

"Irgendwo in /etc/ muß das doch stehen?"

Aber wo? ==> Wofür gibts denn grep? (Sicherheitshalber als root, denn es könnte ja sein, daß die besagte Einstellung für einen User nicht lesbar ist)

Code:
sudo grep -r eth0 /etc/*
Nach einem Weilchen warten, wurde mir unter anderem folgendes Ergebnis ausgespuckt:

Code:
/etc/udev/rules.d/30-net_persistent_names.rules:SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="00:c0:9f:5e:9f:30", IMPORT="/sbin/rename_netiface %k eth0"
Das war die MAC-Adresse der alten Karte. Ein Blick in die Datei /etc/udev/rules.d/30-net_persistent_names.rules zeigte mir, daß dort auch eth2 aufgeführt wurde.

Code:
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="00:c0:9f:5e:9f:30", IMPORT="/sbin/rename_netiface %k eth0"
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="00:0e:35:8a:ad:ba", IMPORT="/sbin/rename_netiface %k eth1"
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="00:c0:9f:6b:be:01", IMPORT="/sbin/rename_netiface %k eth2"
3. Der Rest war einfach:

1) Sicherungskopie anlegen (man weiß ja nie)
Code:
cp /etc/udev/rules.d/30-net_persistent_names.rules /etc/udev/rules.d/30-net_persistent_names.rules.bak
2) Netzwerkgeräte runtergefahren.
Code:
rcnetwork stop
3) Datei mit einem Texteditor geöffnet und den Eintrag der alten Karte entfernt, sowie den der neuen Karte auf "eth0" gesetzt und abgespeichert.
Code:
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="00:0e:35:8a:ad:ba", IMPORT="/sbin/rename_netiface %k eth1"
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="00:c0:9f:6b:be:01", IMPORT="/sbin/rename_netiface %k eth0"
4) udev neu gestartet und Netzwerkgeräte neu gestartet.
Code:
udevstart

rcnetwork start
Natürlich alles als root.

Et voilà.

Code:
Laptop:~ # ifconfig
eth0      Protokoll:Ethernet  Hardware Adresse 00:C0:9F:6B:BE:01
          inet6 Adresse: fe80::2c0:9fff:fe6b:be01/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 Sendewarteschlangenlänge:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:6

eth1      Protokoll:Ethernet  Hardware Adresse 00:0E:35:8A:AD:BA
          inet Adresse:192.168.0.4  Bcast:192.168.0.255  Maske:255.255.255.0
          inet6 Adresse: fe80::20e:35ff:fe8a:adba/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1
          RX packets:68089 errors:2 dropped:2 overruns:0 frame:0
          TX packets:56166 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 Sendewarteschlangenlänge:1000
          RX bytes:171179117 (163.2 Mb)  TX bytes:44285897 (42.2 Mb)
          Interrupt:10 Basisadresse:0xe000 Speicher:d0208000-d0208fff
4. Und nun das Ganze unter (K)Ubuntu (Debian wird dann wohl analog sein):

Danach packte mich der Ehrgeiz, weil auf meinem (K)Ubuntu-Desktoprechner ebenfalls noch eine "Leiche" herumlag (schon seit Monaten, nach Wechsel der Netzwerkkarte), welche meine LAN Karte zu eth1 gemacht hatte (ohne, daß es eben noch die eth0 gab).

Prinzipiell ist das Vorgehen das selbe, allerdings sollte man sich dort die Dateien /etc/network/interfaces sowie /etc/iftab vorknöpfen.

(Auch hier habe ich durch grep die beiden "Verdächtigen" gefunden.)

Hier musste ich dann (da ich ja schon umgestellt hatte) die Firewalleinstellungen wieder auf eth0 "ummodeln", aber das wars mir wert.

Und hier für User, die dieses Problem nicht haben die allgemeingültige Quintessenz:

grep ist Dein Freund!

;)

Greetz,

RM
 

boff

New Member
AW: Feste Namensvergabe bei Netzwerkgeräten, Altlasten entfernen (SuSE 10.x/Ubuntu)

Hi.
Danke für Deine Anleitung. Funtioniert prima. udevstart wurde in SUSE 10.1 durch udevtrigger ersetzt.

MfG,
-Stefan
 

Rain_Maker

Administrator
Teammitglied
AW: Feste Namensvergabe bei Netzwerkgeräten, Altlasten entfernen (SuSE 10.x/Ubuntu)

Unter openSUSE 10.3 heisst die entsprechende Datei:

/etc/udev/rules.d/70-persistent-net.rules

Greetz,

RM
 
Status
Für weitere Antworten geschlossen.
Oben