Hallo Miachaa7,
michaa7 hat geschrieben: 01.03.2023 23:45:49
Ende für heute und wifi!
Durchschnaufen ist manchmal die beste Option. Zum Teil alte Anleitungen manchen das Leben auch nicht leichter. Zum Glück hat KP97 seine Anleitung immer wieder aktualisiert. Siehe
pastebin/?mode=view&s=41862
Dort ist beschrieben, wie man mit systemd-networkd ein WLAN konfiguriert und einen Ethernet Anschluss vorbereitet. Bitte kontrolliere, ob Du auf diesem Stand bist, allerdings ohne wlp3s0 zu wlan0 umzubenennen. Wichtig ist auch, dass mache Dateien aus alten Konfig Optionen *nicht* existieren. Beispiel:
Code: Alles auswählen
/> ls /etc/network
if-down.d/ if-post-down.d/ if-pre-up.d/ if-up.d/
interfaces.d/ interfaces.org
Dort darf keine Datei "interfaces" sein.
Nun sollte WLAN als wlp3s0 funktionieren. Bei mir habe ich die Ethernet Schnittstelle umbenannt. Das kommt weiter unten.
Nun werden folgende Dateien erzeugt oder geändert.
Code: Alles auswählen
> ls /etc/systemd/network/
10-bond0.link 10-bond0.netdev 10-bond0.network
20-eth0.link 20-eth0.network 30-wlp4s0.network
Bei Dir muss überall wlp4s0 durch wlp3s0 ersetzt werden, je nachdem wie das WLAN Interface heißt. Die Nummern am Anfang der Dateinamen haben es eine Bedeutung. Irgendwo im System gibt es 99- Datei(en) mit Default Einstellungen. Nun werden aber die Dateien erst einmal sortiert. Die Konfiguration mit der niedrigsten Nummer wird genommen und die Voreinstellung aus der 99- Datei verworfen. Der Text hinter dem "-" Zeichen ist wohl egal, es ist aber praktisch, wenn dort der Name vom Interface steht. Nun werden quasi die logischen Leitungen vom WLAN und Ethernet Interface zum Kernel abgetrennt. Stattdessen wird das Bond Modul zwischen dem WLAN und Ethernet auf einer Seite und dem internen Linux Netzwerk eingefügt. Das sieht dann so aus:
Hier ist erst einmal die Umbenennung vom komplizierten Ethernet Namen.
Code: Alles auswählen
> cat /etc/systemd/network/20-eth0.link
[Match]
OriginalName=enp0s31f6
[Link]
Name=eth0
Nun werden die Interfaces vom WLAN und Ethernet mit dem Bond Interface verbunden. Sie bekommen *keine* IP Adresse usw mehr. Das bekommt später das Bonding Interface. Ethernet wird als bevorzugtes Interface konfiguriert.
Code: Alles auswählen
> cat /etc/systemd/network/20-eth0.network
[Match]
Name=eth0
[Network]
Bond=bond0
PrimarySlave=true
Code: Alles auswählen
> cat /etc/systemd/network/30-wlp4s0.network
[Match]
Name=wlp4s0
[Network]
Bond=bond0
Nun wird das Device bond0 erzeugt. Einige Einstellungen für das bond Device kann man hier vornehmen wie zum Beispiel den Modus.
Code: Alles auswählen
> cat /etc/systemd/network/10-bond0.netdev
[NetDev]
Name=bond0
Kind=bond
[Bond]
Mode=active-backup
PrimaryReselectPolicy=always
MIIMonitorSec=1s
Einige Konfigurationen waren bis zu einer bestimmten systemd Version oben nicht konfigurierbar. Die mussten in einer anderen Datei angegeben werden.
Code: Alles auswählen
> cat /etc/modprobe.d/bonding.conf
options bonding mode=active-backup miimon=1000 primary=eth0 max_bonds=0
Ich habe noch nicht probiert, diese Konfiguration in der netdev Datei abzulegen. Nun muss man noch das Bond Interface konfigurieren. Hier ist eine feste Konfiguration vorgesehen. Für DNS lauscht bei mir unbound am localhost. Man kann aber auch DHCP verwenden.
Code: Alles auswählen
> cat /etc/systemd/network/10-bond0.network
[Match]
Name=bond0
[Network]
Address=192.168.0.62/24
Gateway=192.168.0.32
DNS=127.0.0.1
Nun kommt noch eine nicht notwendige Kleinigkeit. Dem Bond Interface wird die MAC Adresse vom WLAN vergeben. Da ich am Plastik Router nach MAC Adressen filtere brauche ich dort nichts umstellen. So sieht ip a nun aus. Hier ist das Ethernet nicht angeschlossen. Man sieht auch die MAC Adressen.
Code: Alles auswählen
> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc pfifo_fast master bond0 state DOWN group default qlen 1000
link/ether 00:e1:8c:eb:ce:bd brd ff:ff:ff:ff:ff:ff permaddr 54:e1:ad:ec:9c:63
altname enp0s31f6
3: wlp4s0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc noqueue master bond0 state UP group default qlen 1000
link/ether 00:e1:8c:eb:ce:bd brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:e1:8c:eb:ce:bd brd ff:ff:ff:ff:ff:ff
inet 192.168.0.62/24 brd 192.168.0.255 scope global bond0
valid_lft forever preferred_lft forever
Da sind doch einige Zeilen zusammengekommen
. Ich hoffe das hilft Dir weiter. Vielen Dank auch nochmal an KP97 für seine Anleitung!
Viele Grüße,
Christoph