Ich suche nach einer Anleitung, wie ich dieses Netzwerk richtig einrichte. Ich habe eine Instanz von Ubuntu Server 22.04.2, die auf Proxmox läuft. Zwei Schnittstellen sind an die VM angeschlossen und die VLAN-Kennzeichnung wird von Proxmox übernommen.
Ich verwende zwei VLANs. Ens18 liegt auf 100 und ens19 auf 300. Bei meinen ersten Versuchen habe ich Netplan mit der folgenden Konfiguration verwendet.
network: version: 2
renderer: networkd
ethernets:
ens18:
dhcp4: true
dhcp4-overrides:
route-metric: 100
ens19:
dhcp4: true
dhcp4-overrides:
route-metric: 200
Route -n
Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.86.1 0.0.0.0 UG 100 0 0 ens18
0.0.0.0 192.168.254.1 0.0.0.0 UG 200 0 0 ens19
192.168.86.0 0.0.0.0 255.255.255.0 U 100 0 0 ens18
192.168.86.1 0.0.0.0 255.255.255.255 UH 100 0 0 ens18
192.168.86.16 0.0.0.0 255.255.255.255 UH 100 0 0 ens18
192.168.254.0 0.0.0.0 255.255.255.0 U 200 0 0 ens19
192.168.254.1 0.0.0.0 255.255.255.255 UH 200 0 0 ens19
ifconfig
ens18: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.86.28 netmask 255.255.255.0 broadcast 192.168.86.255
inet6 fe80::ecc6:d9ff:fe43:6711 prefixlen 64 scopeid 0x20<link>
ether ee:c6:d9:43:67:11 txqueuelen 1000 (Ethernet)
RX packets 930 bytes 149307 (149.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 427 bytes 62104 (62.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens19: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.254.35 netmask 255.255.255.0 broadcast 192.168.254.255
inet6 fe80::443a:61ff:fedc:4864 prefixlen 64 scopeid 0x20<link>
ether 46:3a:61:dc:48:64 txqueuelen 1000 (Ethernet)
RX packets 295 bytes 32942 (32.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 1736 (1.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 84 bytes 6368 (6.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 84 bytes 6368 (6.3 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Obwohl dies funktioniert und die IP-Adressen vom Router zugewiesen werden, gibt es ein Problem mit dem, was asymmetrisches Routing zu sein scheint. Wenn ich von meinem Computer auf VLAN 100 aus eine SSH-Sitzung zur IP-Adresse auf VLAN 300 starte, wird diese nach etwa einer Minute abgebrochen. Basierend auf dem, was ich beim Googeln herausgefunden habe, ist es mein (begrenztes) Verständnis, dass der Server den kürzesten Weg zurück zu meinem Computer nimmt, da er eine Schnittstelle im VLAN 100-Subnetz hat.
Durch weiteres Lesen kam ich dazu, statische Routen über Netplan einzurichten. Ich folgte der Anleitung auf netplan.io und verwendete diese Konfiguration.
network: version: 2
renderer: networkd
ethernets:
ens18:
addresses:
- 192.168.86.28/24
nameservers:
addresses: [8.8.8.8]
dhcp4: no
routes:
- to: default
via: 192.168.86.1
- to: 192.168.86.0/24
via: 192.168.86.1
table: 101
routing-policy:
- from: 192.168.86.0/24
table: 101
ens19:
addresses:
- 192.168.254.35/24
nameservers:
addresses: [8.8.8.8]
dhcp4: no
routes:
- to: 192.168.254.0/24
via: 192.168.254.1
table: 102
routing-policy:
- from: 192.168.254.0/24
table: 102
Route -n
Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.86.1 0.0.0.0 UG 0 0 0 ens18
192.168.86.0 0.0.0.0 255.255.255.0 U 0 0 0 ens18
192.168.254.0 0.0.0.0 255.255.255.0 U 0 0 0 ens19
ifconfig
ens18: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.86.28 netmask 255.255.255.0 broadcast 192.168.86.255
inet6 fe80::ecc6:d9ff:fe43:6711 prefixlen 64 scopeid 0x20<link>
ether ee:c6:d9:43:67:11 txqueuelen 1000 (Ethernet)
RX packets 566 bytes 98730 (98.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 101 bytes 12613 (12.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens19: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.254.35 netmask 255.255.255.0 broadcast 192.168.254.255
inet6 fe80::443a:61ff:fedc:4864 prefixlen 64 scopeid 0x20<link>
ether 46:3a:61:dc:48:64 txqueuelen 1000 (Ethernet)
RX packets 40 bytes 4812 (4.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14 bytes 964 (964.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 86 bytes 6566 (6.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 86 bytes 6566 (6.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Ich habe immer noch das gleiche Verhalten, bei dem SSH-Sitzungen nach ein oder zwei Minuten fehlschlagen. Ich habe dies auch mit einer Instanz von Node-Red auf der VM getestet und sehe nach etwa einer Minute das gleiche Verhalten. Es scheint ein ähnliches Problem mit TCP-Verkehr zu sein. Hier ist ein Ausschnitt aus einer Wireshark-Ablaufverfolgung. Ich kann bei Bedarf weitere Details aus diesem Protokoll bereitstellen.
https://i.stack.imgur.com/GYgjq.jpg
Bearbeitung 27.03.23: Ich habe ein ähnliches Experiment mit einem physischen Laptop mit zwei physischen Schnittstellen versucht, um zu sehen, ob das Problem etwas mit der Virtualisierung des Servers zu tun hat. Mit demselben Netplan kam ich zu denselben Ergebnissen. An diesem Punkt scheint das Problem nicht mit der VM-Seite der Dinge zusammenzuhängen.
Meine Fragen sind:
Ist meine Netplan-Konfiguration korrekt? Ich bin nicht sicher, ob dies das erwartete Ergebnis der Konfiguration ist und ob das Routing korrekt aussieht. Wenn es nicht korrekt ist, wo muss ich Anpassungen vornehmen?
Wenn das stimmt, wo könnte ich dieses Problem als Nächstes untersuchen? Ich habe versucht, auf eine einzelne Schnittstelle der virtuellen Maschine umzusteigen, die nur auf VLAN 300 zugreift, und es gibt keine Probleme. Nur beim Durchlaufen über VLAN und wenn beide Schnittstellen aktiv sind, wird es zu einem Problem. Wenn ich noch weitere nützliche Informationen bereitstellen kann, lassen Sie es mich bitte wissen.
Vielen Dank im Voraus.