Suse 11.3: DHCP-Client per xTerm starten

Hi,

ich habe mir nen USB-Stick mit OpenSuse 11.3 gemacht, quasi als Hosentaschen-OS. Fürs Netzwerk habe ich DHCP zum Adressenholen gesetzt. Wenn ich den in einen anderen Rechner einstecke, dann bekommt die Netzwerkkarte einen neuen Namen, etwa eth2. Hierfür ist dann aber kein DHCP eingeschaltet. Im YAST steht die „neue“ Netzwerkkarte als „not configured“. Wenn ich für die Karte dann den Wizard durchlaufe, klappt das auch. Aber das ist nervig.

Jetzt meine Frage. Gibt es eine Möglichkeit, DHCP für alle jetzigen und alle zukünftigen Netzwerkkarten zu aktivieren?

Oder gibt es eine Möglichkeit, per Kommandozeile (für ein Startscript) DHCP für einzelne Adapter einzuschalten?

Das hier habe ich ineinschlägigen Foren gefunden, löst aber das Problem nicht, da es eben nur den Adapter aus/einschaltet, aber nicht für DHCP konfiguriert:

sudo ip link set eth2 down
sudo ip link set eth2 up

Und dann habe ich noch solche Hinweise gefunden wie dhclient usw. Aber das Kommando gibt es bei mir nicht und auch kein entsprechendes Package.

Ich bin etwas ratlos und dankbar für Hilfe.

Günther

Hallo Günther,

ich habe mir nen USB-Stick mit OpenSuse 11.3 gemacht
Wenn ich den in einen anderen Rechner
einstecke, dann bekommt die Netzwerkkarte einen neuen Namen,
etwa eth2.

Die Zuordnung der Netzwerkkarte (eigentlich der MAC-Adresse) zu den Namen „eth0“, "eth1! usw. geschieht über udev und wird in der Datei

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

(wobei XY eine Zahl sein sollte, z.B. 30 oder 70 oder …) gespeichert.
Neue Netzwerkkarte -> andere MAC-Adresse -> neue Bezeichnung (z.B. eth1).
Wenn Du also nur mit einer begrenzten Anzahl von Netzwerkkarten auf deiner Wanderung mit dem USB-Stick in Berührung kommst, kannst Du jede Karte mit einem eigenen Namen versehen:
http://www.debianhelp.co.uk/udev.htm
http://www.bwurst.org/archives/40-Benannte-Netzwerk-…

Wenn das zu umständlich ist, weil Du z.B. wirklich an jeder existierenden Maschine andocken willst, kann ich mir vorstellen, daß es hilft, jedes Mal die entsprechende Zeile aus der

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

per Skript beim runterfahren zu löschen. Beim Booten sollte dann udev folgendes tun: ah, eine neue Netzwerkkarte -> der muss ich einen Namen zuteilen, welchen haben wir denn schon? -> Noch keinen (weil die Rolle gelöscht wurde) also fange ich bei eth0 an!
Effekt: Welche Netzwerkarte auch immer drin ist, sie wird stets eth0 sein…
Das hoffe ich zumindest mal, denn ausprobiert habe ich das nicht, also ist wie immer ein Backup vor dem Testen anzuraten.

Viele Grüße
Marvin

Lieber Marvin,

vielen Dank für deine Antwort. Gibt es denn keine Möglichkeit, DHCP einfach global anzuschalten? Irgendwelche Dateien immer beim shutdown zu löschen finde ich eher so friemig.

Herzlichst,

Günther

Hallo Günther,

Irgendwelche Dateien immer
beim shutdown zu löschen finde ich eher so friemig.

Naja, das ist eigentlich kein Problem, das machst Du ja nicht von Hand. In /etc/network gibt es weitere Verzeichnisse mit sprechenden Namen (if-down.d, if-post-down.d,if-pre-up.d if-up.d und run) in die man das Miniskript (besteht ja bloss aus rm) legen kann, das dann beim entsprechenden Zustand ausgeführt wird. Bei dir also passenderweise im Verzeichnis /etc/network/if-down.d/ bzw. /etc/network/if-post-down.d/

Gibt es denn keine Möglichkeit,
DHCP einfach global anzuschalten?

Nicht daß ich wüsste. Aber ist das nicht die falsche Herangehensweise? Du musst ja deine Netzwerkkarte auch nicht von Hand einstellen, sondern hast die Datei /etc/network/interfaces, die im einfachsten Fall so aussieht:

# The primary network interface
allow-hotplug eth0
iface eth0 inet **dhcp**

und durch dhcp wird dafür gesorgt, daß eth0 immer dhcp benutzt. Und da Du jetzt immer nur noch das Interface eth0 hast (und nicht mehr eth1, eth2 usw.) ist doch nichts weiter notwendig.

Viele Grüße
Marvin