Inhaltsverzeichnis

ArchLinux - systemd-networkd - Bridge

Eine Ethernet Bridge (Brücke) ermöglicht es, z.B. via KVM erstellte Gast-Systemen, Verbindungen über die zugrundeliegenden Netzwerkkarten des Wirt-Systems herzustellen.

Als Beispiel sollen hier zwei Ethernet-Bridges konfiguriert werden:

  1. br0 - physische Netzwerkkarte eth0 - Weg in eine z.B. DMZ
  2. br1 - physische Netzwerkkarte eth1 - Weg ins Internet

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um der Benutzer root zu werden, geben Sie bitte nachfolgenden Befehl ein:

$ su -
Password: 

Nachfolgende Konfigurationsdatei sind zu erstellen um mittels systemd-networkd eine Netzwerk-Bridge (Brücke) zu erstellen und zu betreiben.

Konfiguration: br0

/etc/systemd/network/br0.netdev

Es soll zunächst eine virtuelle Bridge (Brücken)-schnittstelle in nachfolgender Konfigurationsdatei

mit nachfolgendem Inhalt konfiguriert werden.

[root@archlinux]# vim /etc/systemd/network/br0.netdev
[NetDev]
Name=br0
Kind=bridge

Anschließend wird systemd-networkd angewiesen, ein Device (Gerät) mit dem Namen br0 zu erstellen, das als Ethernet-Bridge (Netzwerk-Brücke) fungiert, was durch Neustart des Dienstes/Daemons systemd-networkd.service erfolgt.

[root@archlinux]# systemctl restart systemd-networkd.service 

Durch Ausführung des nachfolgenden Befehls kann überprüfe werden, ob die Ethernet-Bridge erstellt wurde und sollte eine Ausgabe in etwa wie die nachfolgende erzeugen:

[root@archlinux]# ip a | grep -A 1 br0
12: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff

/etc/systemd/network/br0-eth0.network

Als nächstes muss die Verbindung der Ethernet-Bridge zu der darunter liegenden physischen Netzwerkkarte in nachfolgender Konfigurationsdatei

mit nachfolgendem Inhalt konfiguriert werden.

[root@archlinux]# vim /etc/systemd/network/br0-eth0.network
[Match]
Name=eth0
 
[Network]
Bridge=br0

/etc/systemd/network/br0.network

Zum Abschluss der Konfiguration der Ethernet-Bridge muss diese selbst noch als Netzwerk-Interface in nachfolgender Konfigurationsdatei

mit nachfolgendem Inhalt konfiguriert werden.

[root@archlinux]# vim /etc/systemd/network/br0.network
[Match]
Name=br0
 
[Network]
Address=192.168.0.54/24

Konfiguration: br1

/etc/systemd/network/br1.netdev

Es soll zunächst auch hier eine virtuelle Bridge (Brücken)-schnittstelle in nachfolgender Konfigurationsdatei

mit nachfolgendem Inhalt konfiguriert werden.

[root@archlinux]# vim /etc/systemd/network/br1.netdev
[NetDev]
Name=br1
Kind=bridge

Anschließend wird systemd-networkd wieder angewiesen, ein Device (Gerät) mit dem Namen br1 zu erstellen, das als Ethernet-Bridge (Netzwerk-Brücke) fungiert, was durch erneuten Neustart des Dienstes/Daemons systemd-networkd.service erfolgt.

[root@archlinux]# systemctl restart systemd-networkd.service 

Durch Ausführung des nachfolgenden Befehls kann überprüfe werden, ob die Ethernet-Bridge erstellt wurde und sollte eine Ausgabe in etwa wie die nachfolgende erzeugen:

[root@archlinux]# ip a | grep -A 1 br1
14: br1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether cb:a9:87:65:43:21 brd ff:ff:ff:ff:ff:ff

/etc/systemd/network/br1-eth1.network

Als nächstes muss die Verbindung der Ethernet-Bridge zu der darunter liegenden physischen Netzwerkkarte in nachfolgender Konfigurationsdatei

mit nachfolgendem Inhalt konfiguriert werden.

[root@archlinux]# vim /etc/systemd/network/br1-eth1.network
[Match]
Name=eth1
 
[Network]
Bridge=br1

/etc/systemd/network/br1.network

Zum Abschluss der Konfiguration der Ethernet-Bridge muss diese selbst noch als Netzwerk-Interface in nachfolgender Konfigurationsdatei

mit nachfolgendem Inhalt konfiguriert werden.

[root@archlinux]# vim /etc/systemd/network/br1.network
[Match]
Name=br1
 
[Network]
Address=192.168.1.54/25
Gateway=192.168.1.1
DNS=212.18.0.5
DNS=212.18.3.5

Neustart: systemd-networkd

Nach erfolgreicher Konfiguration der beiden Ethernet-Bridges - br0 und br1, muss eine erneuter Neustart des Dienstes/Daemons systemd-networkd.service erfolgen.

[root@archlinux]# systemctl restart systemd-networkd.service 

Überprüfung

Nach Abschluss aller Konfigurationen und des Neustarts des Dienstes/Daemons systemd-networkd.service, kann mit nachfolgendem Befehl überprüft werden, ob beiden Ethernet-Bridges - br0 und br1 sich erfolgreich in Betrieb befinden:

[root@archlinux]# ip a | grep -A 5 -E ^*:.br.:.*$
2: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.54/24 brd 192.168.1.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::28dc:88ff:fe35:1f6c/64 scope link 
       valid_lft forever preferred_lft forever
3: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether cb:a9:87:65:43:21 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.54/25 brd 192.168.1.127 scope global br1
       valid_lft forever preferred_lft forever
    inet6 fe80::c4ab:deff:fe98:37f7/64 scope link 
       valid_lft forever preferred_lft forever

Ob die Routen ebenfalls korrekt gesetzt sind, kann mit nachfolgendem Befehl überprüft werden und sollte eine Ausgabe ähnlich wie diese zur Anzeige bringen:

[root@archlinux]# ip ro
default via 192.168.1.1 dev br1 proto static 
192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.54 
192.168.1.0/25 dev br1 proto kernel scope link src 192.168.1.54 

:!: WICHTIG - Es sollte nur eine default-Route vorhanden sein!