Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


fortgeschrittene:systemd-networkd-advanced

Dies ist eine alte Version des Dokuments!


Netzwerkkonfiguration mit systemd

Der große Vorteil ist: Distributions agnostisch

systemd-networkd

Einfaches Beispiel .network

mkdir /etc/systemd/network
/etc/systemd/network/10-ens3.network
[Match]
Name=ens3
 
[Network]
DHCP=yes
systemctl start systemd-networkd
systemctl enable systemd-networkd
reboot
  • herunterfahren
  • Netzwerkkarte hinzufügen br0 (erscheint in der vm als ens8)

MAC Adresse ändern

/etc/systemd/network/10-ens8.link
[Match]
#OriginalName=ens8
MACAddress=52:54:00:04:02:00 
 
[Link]
MACAddress=00:24:7e:15:a3:c9

Interface-Namen ändern

#NamePolicy=
#MACAddressPolicy=

[Link]
Name=intra0

Der muss dann natürlich auch in der network Datei so eingetragen werden.

Hier ein Beispiel für statische Konfiguration

/etc/systemd/network/10-intra0.network
[Match]
Name=intra0
 
[Network]
Address=172.21.1.100/24
Gateway=172.21.1.101
#Domains=lux
#DNS=172.21.1.101

(Die Namen der Files spielen keinerlei Rolle!)

systemctl restart systemd-networkd

Bridging, Bonding, VLAN

bridge

Device definieren

/etc/systemd/network/br0.netdev
[NetDev]
Name=br0
Kind=bridge
Description=routable LAN bridge
 
[Bridge]
HelloTimeSec=2
MaxAgeSec=12
ForwardDelaySec=0
STP=no

Interface(s) „versklaven“

/etc/systemd/network/enp0s25.network
[Match]
Name=enp0s25
 
[Network]
Bridge=br0

Netzwerkkonfiguration „Master“

/etc/systemd/network/br0.network
[Match]
Name=br0
 
[Network]
#DHCP=yes
 
Address=192.168.1.201/24
Address=fd0a:cafe::909:201/64
Gateway=192.168.1.5

bonding

Device definieren

/etc/systemd/network/bond0.netdev
[NetDev]
Name=bond0
Kind=bond
Description=bonding if rr
 
[Bond]
Mode=balance-rr

Interface(s) „versklaven“

/etc/systemd/network/bond0-slaves.netdev
[Match]
Name=vnet1 vnet2
 
[Network]
Bond=bond0

Netzwerkkonfiguration „Master“

/etc/systemd/network/bond0.network
[Match]
Name=bond0
 
[Network]
Address=172.20.20.20/24

VLAN

Das Device muss definiert werden

/etc/systemd/network/br0.815.netdev
[NetDev]
Name=br0.815
Kind=vlan
 
[VLAN]
Id=815

Das Device braucht eine Netzwerkkonfiguration

/etc/systemd/network/br0.815.network
[Match]
Name=br0.815
 
[Network]
Address=172.31.1.201/24

Dem phys. Device müssen die Tags mitgeteilt werden

/etc/systemd/network/br0.network
[Match]
Name=br0
 
[Network]
#DHCP=yes

Immer wieder ;-)

systemctl reload-or-try-restart systemd-networkd.service

Pattern

Auch in der systemd-networkd Konfiguration lassen sich pattern verwenden, wie z.B.

/etc/systemd/network/00-bridge-ethernet.network
[Match]
Name=en* eth*
 
[Network]
Bridge=br0

D.h. Alles, was nach ethernet aussieht (en* eth*) kommt als „slave“ in die Bridge br0

Koexistenz systemd-networkd und NetworkManager

Man kann beides parallel betreiben, sollte dann aber dem nm mitteilen, dass er die kabelgebundenen Interfaces in Ruhe lassen soll

/etc/NetworkManager/NetworkManager.conf
[main]
no-auto-default=enp0s25,enp0s20u2u4,br0,br1,br2
#unmanaged-devices=enp0s25,enp0s20u2u4,br0,br1,br2
  • unmanaged-devices: fass es nicht an!
  • no-auto-default: mach keine Auto-Konfig

Enterprise Linux 9.x

/etc/NetworkManager/NetworkManager.conf
[main]
plugins=keyfile,ifcfg-rh
 
[keyfile]
unmanaged-devices=interface-name:en*

systemd-resolved

systemctl start systemd-resolved
systemctl enable systemd-resolved

→ sich am Inhalt der Datei /run/systemd/resolve/resolv.conf erfreuen

schlechte Lösung

Zur Kompatibilität zu allen „alten“ Anwendungen, symlink setzen

rm /etc/resolv.conf; ln -s /run/systemd/resolve/resolv.conf /etc

nicht ganz so schlechte Lösung

Benutzt die eigene resolve, um Namensauflösungen zu cachen und durchzuschleifen

/etc/resolv.conf
nameserver 127.0.0.53

direkt in den Kernel Resolver

man nss-systemd
/etc/nsswitch.conf
hosts:          resolve [!UNAVAIL=return] files mdns4_minimal [NOTFOUND=return] dns myhostname mymachines

Stub-Resolver als Symlink

rm /etc/resolv.conf; ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Achtung: DNSSEC

/etc/systemd/resolved.conf
DNSSEC=allow-downgrade

danach bekommen wir auch das AD-Flag mit dig

fortgeschrittene/systemd-networkd-advanced.1714339681.txt.gz · Zuletzt geändert: 2024/04/28 21:28 von 127.0.0.1