systemd? Auf jedenfall!

Veröffentlicht von

Ja, ich gestehe. Ich bin ein befürworter von systemd. Es mag in der Linux Entwicklerszene sehr kontrovers sein aber als Sysadmin finde ich die Vereinheitlichung der Tools sehr angenehm. Es wird auf jedem System einfach immer gleich bedient. Zudem liefert es schon viele Tools mit.

Die meisten werden systemd wahrscheinlich vor allem durch die Ablöse des SysV Init Systems kennen. Es ist und kann aber noch viel mehr. Hervorheben möchte hier vor allem folgende Services, die meiner Meinung nach noch zu wenig Beachtung erhalten:

timesyncd, networkd und resolved

systemd-timesyncd

Zeitzone setzen: timedatectl set-timezone Europe/Berlin

Mit timesyncd lässt sich die Uhrzeit per ntp syncen. Es wird kein vollwertiger ntp(d) Server mehr benötigt nur um die Zeit synchron zu halten. Konfiguriert wird timesyncd in der folgenden Datei:

nano /etc/systemd/timesyncd.conf<br />
[Time]<br />
NTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org

Danach aktivieren und starten:
systemctl enable systemd-timesyncd<br />
systemctl start systemd-timesyncd

Mit timedatectl lässt sich die Konfiguration überprüfen:
root@vps06:/etc/systemd# timedatectl<br />
      Local time: Fr 2018-01-05 14:36:49 CET<br />
  Universal time: Fr 2018-01-05 13:36:49 UTC<br />
        RTC time: Fr 2018-01-05 13:36:49<br />
       Time zone: Europe/Berlin (CET, +0100)<br />
 Network time on: yes<br />
NTP synchronized: yes<br />
 RTC in local TZ: no

systemd-resolved

systemd-resolved hat fast den selben Zweck wie das resolveconf package. Es aktualisiert dynamisch die Datei /etc/resolv.conf. Der Unterschied allerdings ist, dass es nicht gnadenlos die resolv.conf überschreibt, wie es das resolveconf package macht. Es arbeitet hingegen mit systemd-networkd zusammen.
Denn alle in systemd-resolved konfigurierten DNS-Server werden erst NACH dem in systemd-networkd konfigurierten DNS Server eingetragen.

Die Konfiguration von resolved liegt wieder unter /etc/systemd

nano /etc/systemd/resolved.conf<br />
[Resolve]<br />
DNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844

Ist in networkd zusätzlich der DNS Server 192.168.1.1 eingetragen, wird folgende /etc/resolve.conf erstellt:
192.168.1.1<br />
8.8.8.8<br />
8.8.4.4<br />
2001:4860:4860::8888<br />
2001:4860:4860::8844

Jetzt den Service starten
systemctl enable systemd-resolved.service<br />
systemctl start systemd-resolved.service

und einen Symlink nach /etc/resolve.conf erstellen
ln -sf /run/systemd/resolve/resolv.conf /etc/resolve.conf

systemd-networkd

Die Konfiguration von networkd wird in den /etc/systemd/network/*.network Dateien gepflegt.
Beispielkonfiguration für eth0:

[Match]<br />
# Wildcards möglich für z.B. DHCP (Name=eth*)<br />
Name=eth0</p>
<p>[Network]<br />
#DHCP=v4<br />
Address=192.168.1.50/24<br />
Gateway=192.168.1.1<br />
DNS=192.168.1.1

Unter Debian kann das natürlich nicht einfach so genutzt werden. Wir haben vorher wahrscheinlich alles in /etc/network/interfaces konfiguriert.
ACHTUNG! Aufpassen, dass man sich hier nicht aussperrt!
ifdown eth0<br />
cp /etc/network/{interfaces,interfaces.bak}<br />
cat /dev/null &gt; /etc/network/interfaces<br />
update-rc.d networking remove

Und jetzt noch networkd aktivieren.
systemctl enable systemd-networkd<br />
systemctl start systemd-networkd

Neben .network Dateien können unter /etc/systemd/network/ noch .netdev und .link Dateien erstellt werden. *.netdev erstellt virtuelle Interfaces, wie bridges oder vlans. *.link Dateien ändern Konfigurationen bestehender Interfaces, wie MAC Adresse oder Interface Namen.

.netdev bridge Beispiel

[NetDev]<br />
Name=bridge0<br />
Kind=bridge

In der .network Datei unter [Network] dann noch Bridge=bridge0 eintragen damit der Bridge auch Interfaces zugeordnet werden.

.netdev vlan Beispiel für VLAN ID 99

[NetDev]<br />
Name=vlan99<br />
Kind=vlan</p>
<p>[VLAN]<br />
Id=99

Auch hier muss die passende .network Datei unter [Network] angepasst werden:
VLAN=vlan99

.link Beispiel

[Match]<br />
MACAddress=12:34:56:78:9a:bc<br />
Type=wlan</p>
<p>[Link]<br />
Name=wireless0<br />
MTUBytes=1450<br />
MACAddress=cb:a9:87:65:43:21

Das WLAN Interface mit der MAC 12:34:56:78:9a:bc bekommt den Interface Namen wireless0 und die MAC Adresse cb:a9:87:65:43:21.

systemd hat eine umfangreiche man Page Sammlung unter https://www.freedesktop.org/software/systemd/man/. Da es ständig weiter entwickelt wird, kann es sein, dass eure favorisierte Distro noch nicht alle Funktionen hat. Gerade Debian ist da ja gern mal ein bisschen langsamer.

2 Kommentare

    1. Zu eigenen Unit Files hatte ich bisher nichts geschrieben weil es dafür Anleitungen wie Sand am Meer gibt. Was aber viele vergessen, System kann noch viel mehr. Der Beitrag soll drauf hinweisen, dass System noch mehr coole Features hat und wie man sie benutzen kann

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.