[Eisfair] [e1] Netzwerk Interface-Name

Marcus Roeckrath marcus.roeckrath at gmx.de
Mo Jan 23 20:40:45 CET 2017


Hallo Detlef,

Detlef Paschke wrote:

>> ... Diese vorhersehbaren
>> sind keine ethX Namen, sondern enp (von der BusID abgeleitet), enx (von
>> der Macadresse abgeleitet.
> 
> Ich war der Annahme, dass der bei mir aufgetauchte Devicename der
> Netzwerkkarte bereits die MAC mit benutzt hat. Der Devicename der hier
> auftauchte war enp4s2f0 und die MAC ist 00:30:48:2e:7b:f0 aber gut, f0
> kommt im Hexadezimalen recht häufig vor.

Nein, enp-Namen sind von der BusID abgeleitet; ülicherweise bei Karten mit
einer Schnittstelle nur enp4s2.

Daher vermute ch auch, dass es eine "Karte" mit zwei Schnittstellen ist, da
kommt nämlich als Zusatz noch f<nummer der Schnittstelle> dran.

>> Vor udev hattest Du in der Base-Konfiguration auch nur einen Treiber
>> stehen, der beim Laden beide Karten initialisiert hat. Die vom Treiber
>> zuerst initialisiert bekam eth0, ... Dann hast Du überlegt, welches Netz
>> welcher ethX-Karte behandeln soll und die Kabel passend gesteckt. Das die
>> f0-Karte zu eth0 und die f1-Karte zu eth1 wurde ist IMHO Zufall, oder ist
>> das eine Netzwerkkarte/chip mit eideutiger Reihenfolge.
> 
> Das Board hat einmal LAN1 mit der MAC 00:30:48:2e:7b:f0 und einmal LAN2
> mit der MAC 00:30:48:2e:7b:f1. Das IPMI-BMC Modul will aber zwingend auf
> LAN1. Ich wollte das ein wenig getrennt und habe LAN1 unter Eisfair
> daher gar nicht konfiguriert. Ich habe mal in die alten Configs geschaut
> weil mir auch eigentlich gar nicht bewusst ist, dass ich LAN1 bzw. eth0
> dort überhaupt eingetragen habe. In den alten Configs steht dort auch:
> 
> IP_ETH_N='1'
> IP_ETH_1_NAME='eth1'
> IP_ETH_1_IPADDR='192.168.0.100'
> IP_ETH_1_NETWORK='192.168.0.0'
> IP_ETH_1_NETMASK='255.255.255.0'
> 
> und in einer späteren Version dann:
> 
> IP_ETH_N='1'
> IP_ETH_1_NAME=''
> IP_ETH_1_IPADDR='192.168.0.100'
> IP_ETH_1_NETWORK='192.168.0.0'
> IP_ETH_1_NETMASK='255.255.255.0'
> 
> IP_ETH_2_NAME=''
> IP_ETH_2_IPADDR='192.168.0.101'
> IP_ETH_2_NETWORK='192.168.0.0'
> IP_ETH_2_NETMASK='255.255.255.0'
> 
> Kann die zweite Schnittelle irgend ein Baseupdate eingefügt haben oder
> war ich das doch selbst?

Kann ich Dir so nicht sagen; jedenfalls ist wegen IP_ETH_N='1' nur der erste
Eintrag aktiv.

> und zu guter Letzt als die MAC wichtig wurde:
> 
> IP_ETH_N='1'
> IP_ETH_1_NAME='eth1'
> IP_ETH_1_IPADDR='192.168.0.100'
> IP_ETH_1_NETWORK='192.168.0.0'
> IP_ETH_1_NETMASK='255.255.255.0'
> IP_ETH_1_MACADDR='00:30:48:2e:7b:f1'
> 
> IP_ETH_2_NAME='eth0'
> IP_ETH_2_IPADDR='192.168.0.101'
> IP_ETH_2_NETWORK='192.168.0.0'
> IP_ETH_2_NETMASK='255.255.255.0'
> IP_ETH_2_MACADDR='00:30:48:2e:7b:f0'
> 
> Und ich glaube, daran lag es auch, dass eth0 bei mir als enp4s2f0
> aufgetaucht ist.
> Weil IP_ETH_N='1' angegeben war wurde - so nehme ich an - unter
> /etc/udev/rules.d/70-persistent-net.rules für die Karte
> 00:30:48:2e:7b:f0 der Name eth0 gar nicht vergeben. Oder?

Bei einer Race Condition versagen die
Regeln /etc/udev/rules.d/70-persistent-net.rules, weil die dort angegebenen
Devicenamen für die Umbennung nicht zur Verfügung stehen.

> Ok, der Ordnung halber sollte ich dringend mal IP_ETH_1 und IP_ETH_2
> untereinander tauschen. Soll schon alles seine Ordnung haben. ;-)

"Wer Ordnung hält, ist nur zu faul zum suchen." ;-)

> Da noch einmal zum Verständnis.
> Ich will mir mal die Arbeit machen, und hier beobachten ob
> 00:30:48:2e:7b:f0 immer als erstes und 00:30:48:2e:7b:f1 immer als
> zweites geladen wird. Dann wäre zumindest untereinander ein Konflikt bei
> der Namensvergabe ausgeschlossen.

Ich vermute, das wird der Treiber immer so einbinden, da es sich um einen
Chip mit zwei Schnittstellen handelt, deren Reihenfolge im Chip festliegen
sollte. Aber garantieren tue ich nichts.

> Wie ist es nun, wenn das Device eth0 -> enp4s2f0 -> eth0 umbenannt wird.
> Können da auch Timingprobleme auftauchen weil eth0 so schnell nicht
> wieder frei war?

Eine solche Benennung kann genauso zum Problem werden.

Die erste Karte ist umbenannt also enp4s2f0, womit eth0 wieder frei ist.

Wenn nun die zweite Schnittstelle initialisiert wird, bevor für die erste
wieder eth0 belegt wurde, wird die zweite initial zu eth0 und blockiert
gegebenenfalls die Umbenennung der ersten nach eth0, wenn eben für die
zweite die Umbenennung (und Freigabe von eth0) nach enp4s2f1 noch nicht
erledigt ist.

Je nachdem, wie diese Umbenennungsprozesse timingmäßig ineinandergreifen,
wirst Du möglicherweise Proleme haben.

> Ok, ich gebe mich geschlagen. Mein Bruder musste sich noch mit dem
> Rechenschieber begnügen und wir waren das erste Jahr, welches den SR1
> benutzen durften. Mit Veränderungen tue ich mich trotzdem schwer.

Deshalb habe ich schon immer auf Linux und nie auf Windows gesetzt; also von
DOS direkt zu Linux.

-- 
Gruss Marcus


Mehr Informationen über die Mailingliste Eisfair