Systemd PredictableNetworkInterfaceNames

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Namco2k14
Beiträge: 5
Registriert: 13.01.2014 11:32:51

Systemd PredictableNetworkInterfaceNames

Beitrag von Namco2k14 » 17.01.2014 15:06:06

Hallo zusammen,

ich habe ein Wheezy System mit dem Image debian-7.3.0-amd64-netinst.iso nur mit dem Standard Package ohne GUI aufgesetzt. An diesem sind 4 Netzwerkkarten angeschlossen. Eine OnBoard, eine Single Gigabit Intel Pro/1000 PT und zwei Dual Gigabit Intel Pro/1000 PT. Momentan arbeite ich allerdings noch auf einer Virtuellen Maschine, wo ich verschiedene Kartentypen simuliere.

Für die Verkabelung und die Konfiguration ist es wichtig, dass die Interface Bezeichnungen eindeutig der jeweiligen Karte zugeordnet werden. Soweit ich das verstanden habe, ist bisher nicht gewährleistet auch wenn wahrscheinlich, dass die z.B. die OnBoard Karte immer den Interfacenamen eth0 bekommt. Außer ich mache die Zuordnung fest über die MAC Adresse. Das finde ich aber eher unpraktikabel, z.B. wenn eine defekte Karte getauscht werden muss.

Also habe ich ein wenig weiter gelesen und gesehen, dass es bei systemd ab Version 197 http://www.freedesktop.org/wiki/Softwar ... faceNames/ gibt, die genau dieses Problem lösen sollen. Ich habe dann systemd v204 aus den testing repos installiert (stable ist v44) und die /etc/default/grub entsprechend geändert:

Code: Alles auswählen

sed -i 's,^GRUB_CMDLINE_LINUX=",GRUB_CMDLINE_LINUX="init=/bin/systemd ,g' /etc/default/grub
update-grub
Beim booten agiert systemd nun auch als init System. Die Ausgabe von lshw -class network ergibt allerdings immernoch

Code: Alles auswählen

 logical name: eth0
bis eth3 entsprechend und nicht nach dem systemd Schema. In der /etc/network/interface ist nur

Code: Alles auswählen

auto lo
eingetragen. In /etc/udev/rules.d/ existiert nur die Datei 70-persisten-cd.rules, die je einen Eintrag für CDROM und DVD enthält.

Liegt das nun da dran, dass die Interfacenamen vorher bereits so vergeben wurden? Daran, dass ich eine VM verwende? Muss ich noch etwas konfigurieren? Oder gibt es neben der MAC Adressen Option noch andere Möglichenkeiten konsistente Interfacenamen zu vergeben, sei es unter SysVinit oder systemd v44?

(In der VM ohne GUI bekomme ich die Gasterweiterungen leider gerade nicht installiert um Ausgaben in Dateien umzuleiten und die hier einzufügen :( )

Ein schönes Wochende
Namco

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: Systemd PredictableNetworkInterfaceNames

Beitrag von dufty2 » 17.01.2014 17:37:35

Aus eigener Erfahrung kann ich Dir leider nichts dazu sagen, aber Michael hat auf debian-devel dazu geschrieben:
Btw, we didn't remove support for the new predictable network interface
naming scheme.
It's explicitly opt-in atm and you can use it by setting the
net.ifnames=1 kernel command line parameter [1].

Existing NAMEs set via /etc/udev/rules.d/70-persistent-net.rules still
take precedence, so you will have to remove that file.

Just wanted to mention this in case anyone want's to test the new scheme
in Debian. You'll need udev 204-1 or later.

Michael

[1]
http://anonscm.debian.org/gitweb/?p=pkg ... 1de969d01b
"opt-in" heisst, dass Du explicit den Kernel-Parameter setzen muss, damit es klappt.

Namco2k14
Beiträge: 5
Registriert: 13.01.2014 11:32:51

Re: Systemd PredictableNetworkInterfaceNames

Beitrag von Namco2k14 » 22.01.2014 08:06:09

Hallo dufty2,

danke für die Informationen. Werde es bei Gelegenheit mal testen. Habe nun allerdings aufgetragen bekommen, keine Pakete außerhalb des stable Zweiges zu installieren und die udev liegt dort leider erst in der Version 175-7.2 vor. Deswegen werde ich nun erstmal eine MAC Adressenspezifische Lösung anvisieren.

Grüße
Namco

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Systemd PredictableNetworkInterfaceNames

Beitrag von rendegast » 22.01.2014 09:54:30

PredictableNetworkInterfaceNames halten sich ja an den PCI-Slot.
Die Verbindung ethX - PCI [- MAC] bekämst Du per
/sys/bus/pci[_express]/devices/X/net/ethY[/address]

Code: Alles auswählen

for i in /sys/bus/pci*/devices/*/net/*/address; do echo $i; done
Mit einem mapping-Skript ala get-mac-address.sh könntest Du ein mapping machen

Code: Alles auswählen

allow-hotplug eth0 eth1 eth2
mapping eth0 eth1 eth2
     script /etc/network/get-pci-address.sh
     map aaa:bbb:ccc lan0
     map aaa:bbb:ddd wan0
     map aaa:bbb:eee gast0

iface lan0 inet static
    address ....
    netmask ...

iface wan0 inet static
    address ....
    netmask ....
    gateway ....

iface gast0 inet static
    address ....
    netmask ....
Die dann beim Hochfahren auch konfiguriert werden.

Leider nicht mehr als Interfaces lan0/wan0/gast0, sondern als eth#
(war bis squeeze(?) anders, da bekam mensch zBsp. beim 'ifconfig' die gemappten Interfaces angezeigt).
Für den Zugriff anderer Anwendungen/Skripte (iptables) könnte vorher sowas laufen

Code: Alles auswählen

eval $(cat /run/network/ifstate | awk -F= '{print $2"="$1}')
um dann mit $lan0, $wan0, $gast0 das entsprechende Interface zu bekommen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Namco2k14
Beiträge: 5
Registriert: 13.01.2014 11:32:51

Re: Systemd PredictableNetworkInterfaceNames

Beitrag von Namco2k14 » 24.01.2014 12:48:04

Hi rendegast,

danke für die hilfreichen Infos. Genau so etwas in der Art schwebte mir auch vor. Leider wusste ich nicht so recht, wo ich die MAC-Adressen der einzelnen PCI Slots in Erfahrung bringe. Aber damit kann ich arbeiten.

Schönes Wochenende

Antworten