Hallo zusammen,
hier das angekündigte zweite HowTo zur Umstellung der Netzwerkkonfiguration von ifupdown bzw. dem Netzwerk-Manager auf systemd-networkd.
Ich beschreibe erst einmal die kabelgebundene Config (LAN), da ich das wireless Szenario für meinen stationären Desktop-PC nicht benötige. Ich nehme dies aber gerne in mein HowTo auf, sollten sich User finden die dazu schon erfolgreich eine WLAN Konfiguration erstellt haben.
Ausgangssituation:
* Desktop mit fester IP-Adresse im lokalen Netzwerk (hier im Beispiel das Netzwerk 192.168.10.0)
* LAN Netzwerkkarte (wired eth0 IP: 192.168.10.50 und Gateway IP: 192.168.10.1)
Wie bin ich vorgegangen:
Netzwerk stoppen (ifupdown bzw. NM)
# systemctl stop networking.service
oder
# systemctl stop NetworkManager.service
interfaces umbennen oder verschieben bzw. leeren (nur bei ifupdown)
# mv /etc/network/interfaces /etc/network/interfaces.ORIG
# touch /etc/network/interfaces
Network Service dauerhaft deaktivieren
# systemctl disable networking.service
bzw.
# systemctl disable NetworkManager.service
Die Links des "networking" in /etc/rc* entfernen (nur bei ifupdown)
# update-rc.d networking remove
im Verzeichnis /etc/systemd/network die Config anlegen
eth.network anlegen
[Match]
Name=eth0
[Network]
DNS=8.8.8.8
[Address]
Address=192.168.10.50/24
[Route]
Gateway=192.168.10.1
networkd und resolved Service starten
# systemctl start systemd-networkd.service
# systemctl start systemd-resolved.service
Überprüfen
# systemctl status systemd-networkd.service
# systemctl status systemd-resolved.service
networkd und resolved Service dauerhaft aktivieren
# systemctl enable systemd-networkd.service
# systemctl enable systemd-resolved.service
Link zur resolv.conf löschen und neu anlegen
# rm /etc/resolv.conf
# ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
Zustand der Netzwerkinfaces überprüfen
# networkctl status eth0
Ob ein Service "enabled" bzw. "disabled" ist kann man, wie nachfolgend gezeigt, überprüfen. networking.service muss deaktiviert und die anderen beiden aktiviert sein.
# systemctl is-enabled networking.service
# systemctl is-enabled systemd-networkd
# systemctl is-enabled systemd-resolved
Zum Schluß ein Reboot - fertig!
EDIT:
Falls nachfolgender Fehler zum DHCPv6 im Journal auftauschen sollten die *.network Dateien ergänzt werden.
Apr 07 19:04:27 snowcat systemd-networkd[953]: eth0: Starting DHCPv6 client on NDisc request failed: Invalid argument
In der Network-Section folgendes ergänzen.
[Network]
IPv6AcceptRouterAdvertisements=0
Funktionieren bei systemd-networkd eigentlich alias-devices? Und wenn ja, wie? Vor allen Dingen wie schalte ich sie einzeln an und aus? Über ip-Befehl? Irgendwie konnte ich im Wiki bei arch nichts entsprechendes finden, evtl. auch nur nicht intensiv genug geguckt...
Hi Geier0815,
meinst du mehrere IP-Adressen auf einer Netzwerkkarte?
zB. drei IP's auf einer Netzwerkkarte geht so:
# einrichten
# ip addr add 192.168.1.10/24 dev eth0 label eth0:NAME1
# ip addr add 192.168.1.20/24 dev eth0 label eth0:NAME2
# ip addr add 192.168.1.30/24 dev eth0 label eth0:NAME3
#
# löschen
# ip addr del 192.168.1.10/24 dev eth0:NAME1
# ip addr del 192.168.1.20/24 dev eth0:NAME2
# ip addr del 192.168.1.30/24 dev eth0:NAME3
Moin bluelupo,
ganz genau, mehrere Adressen auf einer Netzwerkkarte. Da in der interfaces diese statisch hinterlegt werden konnten, hatte ich die Hoffnung das dies in der/etc/systemd/network auch gehen würde. Beim ip-Befehl sind diese nach einem reboot ja wieder weg. Müßte ich mir wohl Notizzettel machen statt wie in der interfaces einfach immer nur ein- und aus-kommentieren.
Danke soweit.
Aus "man systemd.network":
Quote from: man systemd.network...[Network] Section Options...
Address=
A static IPv4 or IPv6 address and its prefix length, separated by a "/" character. Specify this key more than once to configure several addresses. The format of the address must be as described in inet_pton(3). This is a short-hand for an [Address] section only containing an Address key (see below). This option may be specified more than once...
...
...[Address] Section Options
An "[Address]" section accepts the following keys. Specify several "[Address]" sections to configure several addresses.
Address=
As in the "[Network]" section. This key is mandatory.
Würde ich so verstehen dass man das entweder mit 'Address=IP1 IP2 IP3...' in der Network Sektion oder mit mehreren Address-Sektionen untereinander erreichen könnte.
Beispiel vom ArchWiki https://wiki.archlinux.de/title/Systemd/systemd-networkd (2 IPs auf einer Karte mit unterschiedlichen Routen)
[Match]
Name=enp0s25
[Address]
Address=10.10.0.10/24
[Address]
Address=192.168.2.50/24
[Route]
Gateway=10.10.0.1
Destination=10.10.0.0/24
[Route]
Gateway=192.168.2.255
Destination=192.168.2.0/24
Hallo bluelupo
Ich habe nach der Anleitung die Netzwerkkonfiguration umgestellt - es klappt prima - keine Probleme.
Danke für die Mühe.
Eine Frage habe ich in Bezug auf den DNS-Eintrag.
Ich habe zwei Einträge eingetragen, getrennt durch ein Komma. Eine Fehlermeldung konnte ich nicht feststellen da ich nicht den nötigen Befehl kenne.
Groetjes
WalloAC
Hi walloc,
zwei DNS Einträge gehen auch.
[...]
[Network]
DNS=8.8.8.8
DNS=8.8.4.4
[...]
@Bluelupo:
ich habe da irgendwas nicht mitbekommen, so wie es scheint... :-[
Oder kann ich Networkmanager am Lappi und einen direkten Eintrag in /etc/networking/interfaces noch nutzen?
Hast Du mal nen Link zum Hintergrund oder zur Erklärung?
@Lanzi, hier ist nicht vom NetworkManager die Rede sondern vom systemd-networkd.
Du kannst für die Netzwerk-Konfiguration einen von beiden nutzen ;-)
Lanzi, keine Sorge, Du kannst wohl wieder alles nutzen ;). Vor ein paar Tagen kam ziemlich plötzlich systemd 220 rein (http://forum.siduction.org/index.php?topic=5557.0), was u.a. neu funktionierendes systemd-networkd mitbrachte (das wäre sozusagen "die Zukunft", es lohnt sich damit mal zu beschäftigen). Gleichzeitig gab es in der Zeit Probleme mit ceni, das einige devices aus /etc/network/interfaces nicht mehr erkannt wurden (inzwischen gefixt) und auch noch die Meldung das ifupdown verwaist weil der Maintainer aufgibt (http://forum.siduction.org/index.php?topic=5563.0) (inzwischen auch erledigt, neuer Maintainer).
Daher haben in letzter Zeit einige die Chance genutzt und entweder auf systemd-networkd umgestellt oder auf die ebenfalls empfehlenswerte Kombi connman/cmst, und posten das Vorgehen dazu hier. Aber zurzeit sollte alles wieder gefixt sein und wie gewohnt laufen.
Dank Euch beiden, und auch Danke für das Howto... Momentan ist meine Baustelle EasyVDR und mein alter Diseqc-MOtor... keine Zeit für Systemd ;D ;D ;D
Bringt es denn irgendwelche Vorteile auf systemd-networkd umzustellen? Außer dass man damit ganz up to date ist. :)
Hi Peter,
dazu kann ich mit entschiedenen "Jein" antworten ;-)
Ja, bei einen Desktop-PC der faktisch nicht anderen LANs bzw. WLANs beweget wird. Bei Notebooks sieht die Sache (für mich) schon wieder ganz anders aus. Auf einem NB möchte ich schnell mal ein WLAN-Hotspot oder ein WLAN-Gastzugang einrichten ohne in Configfiles rumfrickeln zu müssen. Geht zwar auch mit systemd-networkd aber umständlicher auf der Kommandozeile. Solange es dazu keine GUI gibt bleibe ich persönlich bei meinen NBs beim Network-Manager.
Vorteile bietet systemd-networkd schon, zB einfache und übersichtliche Configfiles (auch für Nicht-Standard Netzwerkconfigs). Du legst DNS, IP, Interfacename usw. alles in einem File ab und nicht in mehreren Dateien wie bei ifupdown an. Durch die Integration in den systemd ist natürlich das Netzwerk zu einem frühen Zeitpunkt beim Booten "Up" und verkürzt auch noch die Bootzeit gegenüber ifupdown.
Umstellung ist einfach und in 20 Minuten erledigt.
Hi Michael,
danke für die Info dann werde ich meinen Desktop doch mal umstellen.
Hier mal kurz und schmerzlos für die, die es mit dhcp wollen
/etc/systemd/network/<interface>.network
[Match]
NAME=<INTERFACE>
[Network]
DHCP=yes
## oder ##
# DHCP=ipv4
# DHCP=ipv6
# DHCP=both
Quote from: der_bud on 2015/06/09, 15:34:57
...Gleichzeitig gab es in der Zeit Probleme mit ceni, das einige devices aus /etc/network/interfaces nicht mehr erkannt wurden (inzwischen gefixt) ...
Ich habe die neueste ceni version 2014.10.12 installiert, aber es werden keine netzwerkdevices mehr erkannt, insbesondere habe ich kein funktionierendes wlan mehr. Was meinst du mit "gefixt"?
Quote...Bei Notebooks sieht die Sache (für mich) schon wieder ganz anders aus. Auf einem NB möchte ich schnell mal ein WLAN-Hotspot oder ein WLAN-Gastzugang einrichten ohne in Configfiles rumfrickeln zu müssen. ...
Funktioniert NM mit systemd 220-7?
Und mit welcher GUI arbeite ich am besten unter fluxbox, gibt ja keine gtk oder qt gui, nut GNome oder KDE (womit ich von mehr abhängigkeiten ausgehe als unter toolkit varianten üblich wäre)
Quote from: michaa7 on 2015/07/01, 17:54:44...Was meinst du mit "gefixt"?
Da ich da ganze nur am Rande mitverfolgte weil hier interfaces funktioniert: es gab in diesem Thread zu systemd-220 (http://forum.siduction.org/index.php?topic=5557.msg45407#msg45407) u.a. zuerst den Kommentar
Quote from: musca on 2015/05/31, 13:40:29...udev (part of systemd) has an issue which breaks network for "allow-hotplug" devices configured in /etc/network/interfaces.
see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=787263
This will affect users of our former tool ceni which uses allow-hotplug for wired interfaces.
Users should switch to either systemd-networkd or connman or network-manager...
Später dann
Quote from: musca on 2015/06/01, 14:30:40... and it will bring the fixed version of udev 220-3, see changelog:
* sd-device: fix device_get_properties_strv(). Fixes environment for
processes spawned by udev, in particular "allow-hoplug" ifupdown
interfaces via ifup@.service. (Closes: #787263)
so just wait 3 or 4 hours more before you dist-upgrade
...
durch einen Bug in udev funktioniert die klassische Netzwerkkonfiguration momentan nicht, so dass Anwender von Ceni betroffen sind.
Mit dem nächsten Repo-Sync in etwa 3-4 Stunden kommt der Fix....
Ich hab jetzt weitergelesen dass es für einige funktioniert, für andere nicht, letztere kriegen den Tipp auf systemd-networkd umzustellen. Als Alternative (oder ist's ein Frontend?) sollte connman + cmst gehen, eventuell auch für Fluxbox(?).
Es funktioniert jetzt mit wicd.
Dazu habe ich den gtk klienten (wicd-gtk) genutzt. Da es neben einem CLI-Klienten auch einen ncurses Klienten (noch nicht getestet) gibt, die nutzung des gtk klienten selbsterklären ist frage ich mich, was andere genannte programme wicd voraus haben sollen, ausser dass sie gegenwärtig nicht funktionieren.
BTW: bei der installation habe ich den (offenbar nicht benötigten) wpa_supplicant versucht mit zu installieren. Ich bekam die befremdliche fehlermeldung die architektur (amd64) passe nicht zum paket /amd64). Soweit nur für diejenigen, die wicd ausprobieren wollen.
Hallo Michaa7,
QuoteDa es neben einem CLI-Klienten auch einen ncurses Klienten (noch nicht getestet) gibt, die nutzung des gtk klienten selbsterklären ist frage ich mich, was andere genannte programme wicd voraus haben sollen, ausser dass sie gegenwärtig nicht funktionieren.
Ich benötige beim Start von siduction mit aktuellen Kerneln noch den
NetworkManager-wait-online.service
Sonst hängt das System beim Versuch, meine nfs-shares einzubinden. Nach anderthalb Minuten läuft der Start dann weiter und ich habe dann ein aktives Netzwerk und sogar gemountete nfs-shares. Aber diese anderthalb Minuten mag ich nicht bei jedem Start warten.
Mit dem NetworkManager-wait-online.service dauert der Start wenige Sekunden.
Viele Grüße,
Holger
Beschreibung im Original-Post oben ergänzt.
Artikel dazu im siduction Wiki erstellt:
Umstellung des kabelgebundenen Netzwerkes auf systemd-networkd (http://wiki.siduction.de/index.php?title=Umstellung_des_kabelgebundenen_Netzwerkes_auf_systemd-networkd)