• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

eth1 und eth2 bei jedem Neustart vertauscht

Hallo,

Ich hab einen Rechner (opensuse 10.2) mit 2 LAN-Karten auf dem ein squid server läuft.
Alle http-Anfragen die auf Port 80 ankommen, werden zu Port 3124 umgeleitet. Dies erledigt ein Startscript.
sieht so aus: "iptables -A PREROUTING -t nat -i eth2 -p tcp ---dport 80 -j REDIRECT --to-port 3124".

Soweit so gut. Funktioniert eigentlich auch, wenn Suse nicht bei jedem Neustart des Rechners die Bezeichnungen der beiden LAN-Karten vertauschen würde. Also was vor dem Neustart eth1 war ist nun eth2 und umgekehrt. Dann kann natürlich das Script nicht mehr funktionieren, und der ganze Traffic geht an squid vorbei :(

Meine Frage:

1. Warum tut er das?

2. Wie kann man ihm dieses hin- und hergetausche der Bezeichungen ausreden?

Ich hoffe ihr könnt mir helfen.

Danke, erstmal!
 
http://de.susewiki.org/index.php?title=FAQs schrieb:
Hilfe, meine Netzwerkschnittstellen eth0 und eth1 werden bei jedem Booten in anderer Reihenfolge belegt!

Q: Wie kann ich erreichen, daß die Netzwerkschnittstellen bei jedem Start des Rechners denselben Namen haben?

A: Ganz einfach: in /etc/sysconfig/network/ifcfg-* bei jedem Interface den Parameter

PERSISTENT_NAME='blubb'

hinzufügen. Natürlich muß für jedes device ein eigener Name vergeben werden. Dabei können auch gleich "sinnvolle" Namen vergeben werden wie z.B. "intern", "extern" auf einem Router oder "wire" und "air" für Ethernet und WLAN auf einem Notebook.

Achtung: die "original"-Interfacenamen wie "eth0", "eth1" oder auch "wlan0" können nicht verwendet werden - wenn es unbedingt "eth?" sein muß, dann sollte "eth10", "eth11" etc. verwendet werden, auf jeden Fall "größer" als die Anzahl der vorhandenen Karten. Andernfalls kann es funktionieren, muß aber nicht und das ganze wird zum Glücksspiel ;-)

Eine alternative Möglichkeit ist, in /etc/sysconfig/hotplug den Parameter

HOTPLUG_PCI_QUEUE_NIC_EVENTS=wait

zu setzen (den Kommentar darüber zu lesen kann nichts schaden ;-) -- seife

Dieser Parameter funktioniert nicht (SLES 9 Patchlevel 2)! Per Default ist er schon auf yes, wait ist nicht dokumentiert und wohl auch nicht zulässig. Als Lösung bleibt PERSISTENT_NAME. Nur schade, dass dann die Netzwerkschnittstellen nicht mehr unter dem gewohnten Namen angesprochen werden können. Update: PERSISTENT_NAME funktioniert mit dem Netzwerkkartentreiber tg3, nicht aber mit bcm5700. Die Lösung mit /etc/iftab und ifrename in /etc/init.d/boot.local klappt auch mit dem bcm5700, siehe http://blog.ptch.de/index.php?/archives/7-Namen-der-Netzwerk-Geraete-aendern.html -- Benutzer:Rolf

Wenn man die Interfacenamen tatsächlich vertauschen will bietet sich ifrename -t an. In /etc/init.d/network im start) Abschnitt einfügen und /etc/iftab erstellen. Dies ist jedoch nach jedem onlineupdate zu überprüfen und ggf. wieder erneut einzubauen, da /etc/init.d/network bei einem entsprechenden Update überschrieben worden sein könnte.
 
Oben