Am 18.04. Ich versuche meinen Server mit 2 vlan-Schnittstellen zu konfigurieren. Jede vlan-Schnittstelle verfügt über eine separate IP-Adresse in einem separaten Subnetz, und beide werden mit derselben physischen Schnittstelle verbunden. Wenn ich die vlan-Schnittstellen konfiguriere, habe ich über die vlans eine Verbindung zu jedem einzelnen Subnetz, kann jedoch keine zusätzlichen Routen hinzufügen. Ich muss eine Standardroute mit einem nächsten Hop in einem der Subnetze (vlan2000) und dann eine statische Route zu einem einzelnen, nicht verbundenen Subnetz über das andere vlan (vlan1000) hinzufügen. Hier ist meine Netplan-Konfigurationsdatei:
network:
renderer: NetworkManager
version: 2
ethernets:
enp0s31f6:
routes:
- to: 0.0.0.0/0
via: 192.168.100.2
metric: 100
- to: 192.168.1.0/24
via: 172.16.100.1
metric: 10
vlans:
vlan1000:
id: 1000
link: enp0s31f6
addresses: [ "172.16.100.2/30" ]
vlan2000:
id: 2000
link: enp0s31f6
addresses: [ "192.168.100.2/24" ]
Ich habe auch versucht, die entsprechenden Routen unter jeder VLAN-Hierarchie ohne Glück hinzuzufügen - zum Beispiel:
vlans:
vlan1000:
id: 1000
link: enp0s31f6
addresses: [ "172.16.100.2/30" ]
routes:
- to: 0.0.0.0/0
via: 192.168.100.2
metric: 100
Bei beiden wird nach dem Anwenden der Konfiguration der folgende Fehler angezeigt:
Traceback (most recent call last):
File "/usr/sbin/netplan", line 23, in <module>
netplan.main()
File "/usr/share/netplan/netplan/cli/core.py", line 50, in main
self.run_command()
File "/usr/share/netplan/netplan/cli/utils.py", line 130, in run_command
self.func()
File "/usr/share/netplan/netplan/cli/commands/apply.py", line 43, in run
self.run_command()
File "/usr/share/netplan/netplan/cli/utils.py", line 130, in run_command
self.func()
File "/usr/share/netplan/netplan/cli/commands/apply.py", line 93, in command_apply
stderr=subprocess.DEVNULL)
File "/usr/lib/python3.6/subprocess.py", line 291, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['udevadm', 'test-builtin', 'net_setup_link', '/sys/class/net/vlan1000']' returned non-zero exit status 4.
Wenn ich es dann erneut anwende, wird es durchlaufen, aber keine der Routen wird zur Routing-Tabelle hinzugefügt. Wenn ich die route-Anweisungen vollständig entferne, gilt dies ohne Fehler. Ich weiß nicht viel über Netplan, aber das scheint das Problem zu sein. Ich gehe also davon aus, dass ich etwas in der Konfiguration falsch mache. Wo soll ich Statis-Routen für VLAN-Schnittstellen hinzufügen?
FTR, wenn ich die statischen Routen manuell hinzufüge:
Sudo ip route add 192.168.1.0/24 via 172.16.100.1 dev vlan1000
alles funktioniert so, wie ich es erwartet habe. Ich mache mir Sorgen, dass ich nicht glaube, dass diese manuell hinzugefügten Routen nach einem Neustart bestehen bleiben. Wenn es einfacher ist, diese Routen zu umgehen, bin ich dafür offen.
Vielen Dank,
vlans:
vlan1000:
id: 1000
link: enp0s31f6
addresses: [ "172.16.100.2/30" ]
routes:
- to: 0.0.0.0/0
via: 192.168.100.2
metric: 100
Abgesehen von der Einrückung wäre diese Konfiguration falsch, da Sie hier versuchen, einer Schnittstelle eine Route hinzuzufügen, die nicht die Schnittstelle ist, die die Route zu ihrem Gateway enthält. Die Route 0.0.0.0/0 muss unter der vlan2000-Schnittstelle aufgeführt werden, da dies das Netzwerk ist, in dem sich Ihre Route zum Gateway befindet (192.168.100.2).
Gemäß Ihrer Konfiguration ist 192.168.100.2 jedoch auch eine lokale Adresse, was bedeutet, dass es falsch ist, sie als Gateway zu verwenden. Sie haben nicht das gesamte Internet (0.0.0.0/0) direkt mit Ihrer Host-Adresse auf diesem VLAN verbunden. Ihre Route muss mit der IP-Adresse Ihres Routers als via
-Wert eingerichtet werden, nicht mit Ihrer lokalen Adresse.