Fehlerbehebung bei Netplan-Routen auf Server 22.04.2

Fehlerbehebung bei Netplan-Routen auf Server 22.04.2

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.

verwandte Informationen