Betriebssystem: Ubuntu 20.04.3, alle neuesten Updates installiert.
Ich versuche eine Brückenschnittstelle zu erstellen, um Strom zu versklaven (eno1)
Netplan-Konfiguration:
# This is the network config written by 'subiquity'
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: false
dhcp6: false
bridges:
br0:
interfaces: [eno1]
addresses: [10.20.0.21/24]
gateway4: 10.20.0.1
nameservers:
search: [example.com]
addresses: [10.20.0.1,10.20.0.10]
dhcp4: false
dhcp6: false
Wenn ich „netplan try“ ausführe, sehe ich:
** (generate:2332): WARNING **: 12:54:41.673: Problem encountered while validatingdefault route consistency.Please set up multiple routing tables and use `routing-policy` instead.
Error: Conflicting default route declarations for IPv4 (table: main, metric: default), first declared in br0 but also in eno1
Wenn ich das System neu starte, sind die Ergebnisse wie folgt:
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.20.0.1 0.0.0.0 UG 0 0 0 br0
default 10.20.0.1 0.0.0.0 UG 0 0 0 eno1
10.20.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
10.20.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1
Das System ist zwar weiterhin nutzbar, die Konfiguration weist jedoch offensichtlich eine Anomalie auf.
$ networkctl
networkctl
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 eno1 ether routable configured
3 br0 bridge routable configured
$ ip addr show
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
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
link/ether 18:c0:4d:63:da:da brd ff:ff:ff:ff:ff:ff
inet 10.20.0.21/24 brd 10.1.0.255 scope global eno1
valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 18:c0:4d:63:da:da brd ff:ff:ff:ff:ff:ff
inet 10.20.0.21/24 brd 10.1.0.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::700e:94ff:fea6:fc98/64 scope link
valid_lft forever preferred_lft forever
Wie mache ich eno1 zum Sklaven und verhindere, dass es Duplikate von Routing-Einträgen/IP-Adressen erstellt?
Update vom 21. Januar: Es gibt keine weiteren Konfigurationsdateien unter/etc/netplan
Antwort1
Workaround vom 22. Januar 2022:
Es sieht so aus, als ob Netplan und/oder Networkd derzeit zu fehlerhaft sind, um die genannte Konfiguration ohne Duplizieren von IPs/Routen zu unterstützen.
Die Lösung bestand darin, wieder zu NetworkManager zu wechseln.
Stellen Sie sicher, dass Sie in Netplans .yaml die Renderer-Zeile durch ersetzen
renderer: NetworkManager
Stellen Sie sicher, dass Sie Netzwerkverwaltungsschnittstellen in /etc/NetworkManager/NetworkManager.conf aktivieren (der betroffene Abschnitt ist unten aufgeführt).
[ifupdown] managed=true
Definieren Sie, welche Schnittstellentypen in etc/NetworkManager/conf.d/10-globally-managed-devices.conf gefiltert werden:
[keyfile] unmanaged-devices=*,except:type:wifi,except:type:wwan,except:type:ethernet
Hinweis: Stellen Sie sicher, dass die Datei /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf leer ist (Größe Null).
Starten Sie NetworkManager neu, oder besser noch, starten Sie das System neu:
sudo systemctl restart network-manager
Hinweis: Wenn der GUI-Modus verwendet wird, muss möglicherweise der automatische Start für kabelgebundene Verbindungen unter „Einstellungen > Netzwerk“ deaktiviert werden, um zu verhindern, dass NetworkManager ständig beschwert, dass die entsprechende Verbindung nicht aktiviert werden kann.
Antwort2
@KonstantinBoyandin - Es gibt einfach nicht genug Informationen über Ihr System hier zur Verfügung gestellt, um zu kommenbeliebigFazit. Hier ist eine fundierte Vermutung darüber, was Sie erlebt haben:
Wenn ich mich richtig erinnere, wird bereits eine Standardinstallation von 20.04 verwendet NetworkManager
. Das bedeutet, dass die von Ihnen beobachtete Standardroute NetworkManager
höchstwahrscheinlich bereits konfiguriert und erstellt wurde:eno1
default 10.20.0.1 0.0.0.0 UG 0 0 0 eno1
Es steht Ihnen frei, beides auszuprobieren.NetworkManager
Und systemd-networkd
- Mir fällt keinGrunddas zu tun, aber es gibt nichts, was es aufhält. Ich habe dies genutzt, um zu vermeiden, dass ich mich damit befassen muss, NetworkManager
wenn ich Wireguard-Schnittstellen auf Systemen einrichte, die bereits laufen NetworkManager
. Dabei müssen SiemussBeachten Sie, dass diese Tools miteinander interagieren können. Was passiert beispielsweise, wenn der von verwaltete physische Ethernet-Adapter NetworkManager
ausfällt? Eine virtuelle Schnittstelle, die auf diese physische Schnittstelle angewiesen ist, kann ausfallen, muss aber nicht... hängt von der Konfiguration des virtuellen Adapters ab.externZu NetworkManager
.
Wenn Sie den Renderer auf umgestellt haben NetworkManager
, funktionierte an diesem Punkt alles, da Sie jetzt netplan
zur Konfiguration verwendet habenNetworkManager
als einziger Dienst zur Netzwerkkonfiguration, wodurch jegliche „Cross-Configuration“ verhindert wird.
Für alle anderen, die dieses Problem haben, gibt es ein paar Möglichkeiten, es zu lösen. Sie können entweder aufhören, NetworkManager
die Schnittstellen, die Sie konfigurieren möchten, mit einem anderen Renderer zu konfigurieren, oder sie einfach ganz deaktivieren . Ich bevorzuge es, auf Servern auf „mit“ NetworkManager
umzuschalten und zu deaktivieren , während ich auf dem Desktop-Linux andere Netzwerkdienste nur bei Bedarf lasse und nutze.netplan
systemd-networkd
NetworkManager
NetworkManager
So verwenden Sie Netplan auf einem typischen Ubuntu 20.04-Server und vermeiden den Konflikt im OP:
- Server bereitstellen (Ubuntu installieren usw.)
- Erstellen Sie die gewünschte Netplan-Konfiguration
- Bearbeiten
/etc/network/interfaces
und kommentieren Sie alle Abschnitte aus, die für die von Ihnen in konfigurierte Schnittstelle geltennetplan
:
# The primary network interface
# auto eno1
# iface eno1 inet dhcp
- Neustart (oder Stopp)
NetworkManager
:sudo systemctl <restart|stop> NetworkManager.service
- Testen Sie Ihre
netplan
Konfiguration:sudo netplan try
- Wenn alles richtig aussieht und funktioniert, klicken Sie
Enter
auf
(Optional)
- Deaktivieren
NetworkManager
:sudo systemctl disable NetworkManager.service
(Notiz)
- Obwohl es offensichtlich sein sollte, wird im obigen Text davon ausgegangen, dass Sie entweder über lokalen Konsolenzugriff verfügen oder dass Ihre SSH-Verbindung nicht von der Schnittstelle abhängig ist, die Sie konfigurieren, da Ihre Verbindung möglicherweise getrennt wird und Sie die Konfiguration daher nicht abschließen können.