Netplan (erneutes) Verschieben der Route aus der Hauptroutingtabelle in eine andere Routingrichtlinie

Netplan (erneutes) Verschieben der Route aus der Hauptroutingtabelle in eine andere Routingrichtlinie

Die allgemeine Übersicht ist folgende: Ich habe einen Impish Ubuntu-Server mit zwei Schnittstellen, den Adressen 172.16.2.103/24und 10.1.2.10/24. Ich möchte, dass der Standardverkehr über das Gateway läuft 172.16.2.254. Wenn ich jedoch eine Quelladresse von angebe, 10.1.2.10möchte ich, dass diese ein Gateway von hat 10.1.2.254. Das Folgende funktioniert in 99 % der Fälle, aber ich möchte, dass der Kernel die Quell-IP 172.16.2.103 auch dann auswählt, wenn er Kontakt mit aufnimmt 10.1.2.0/24. Dies war in möglich, /etc/networks/interfaces aber ich konnte es mit Netplan nicht herausfinden.

Folgendes habe ich in meiner Netplan-Konfiguration:

network:
  ethernets:
    ens160:
      addresses:
      - 172.16.2.103/24
      routes:
      - to: 0.0.0.0/0
        via: 172.16.2.254
      nameservers:
        addresses:
        - 10.1.2.1
        search:
        - localdomain
      optional: yes
    ens192:
      addresses:
      - 10.1.2.10/24
      routing-policy:
      - from: 10.1.2.10
        table: 10
      routes:
      - to: 0.0.0.0/0
        via: 10.1.2.254
        table: 10
      optional: yes
  version: 2

Wie gesagt, das funktioniert meistens gut. Ich habe eine Routing-Richtlinie (auch bekannt als IP-Regel), die bedeutet, dass ich die 10 Routing-Tabelle nachschlage, wenn ich die Quelladresse von Paketen ändere. Es gibt jedoch eine zusätzliche Route, die ich aus der Hauptroute entfernen möchte.

Das ist, was ich erhalte, wenn ich die Routing-Tabellen auschecke:

IN1:  me@host:~$ ip route
OUT1: default via 172.16.2.254 dev ens160 proto static
OUT2: 172.16.2.0/24 dev ens160 proto kernel scope link src 172.16.2.103
OUT3: 10.1.2.0/24 dev ens192 proto kernel scope link src 10.1.2.10

IN2:  me@host:~$ ip route list table 10
OUT5: default via 10.1.2.254 dev ens192 proto static

Ich möchte OUT3 entfernen oder genauer gesagt in die 10-Routingtabelle verschieben, sodass in der Haupt-Routingtabelle keine Layer2-Verbindung zu 10.1.2.0/24 vorhanden ist. Ich kann das manuell folgendermaßen machen:

me@host:~$ sudo ip route del 10.1.2.0/24 dev ens192

Aber ich weiß nicht, wie ich das in Netplan einbetten kann. Früher hätte ich eine Up-Anweisung hinzugefügt, /etc/network/interfacesaber das ist keine Option mehr.

Dank im Voraus.

Antwort1

Ich würde das nicht als Lösung bezeichnen, sondern eher als Workaround. Mein Problem war, dass ich eine unerwünschte Route entfernen wollte: Der Workaround besteht darin,ein andererRoute mit höherer Priorität!

network:
  ethernets:
    ens160:
      addresses:
      - 172.16.2.103/24
      routes:
      - to: 0.0.0.0/0
        via: 172.16.2.254
      # ** ADDITIONAL ROUTE **
      - to: 0.0.0.0/0
        via: 172.16.2.254
        table: 172
      # **********************
      nameservers:
        addresses:
        - 10.1.2.1
        search:
        - localdomain
      optional: yes
    ens192:
      addresses:
      - 10.1.2.10/24
      routing-policy:
      - from: 10.1.2.10
        table: 10
      # ** ADDITIONAL ROUTING POLICY **
      - to: 172.16.2.0/24
        table: 172
      # *******************************
      routes:
      - to: 0.0.0.0/0
        via: 10.1.2.254
        table: 10
      optional: yes
  version: 2

Beachten Sie die zusätzliche Routing-Richtlinie und Route für die Schnittstelle ens160. Dadurch wird eine weitere Routing-Tabelle mit dem Namen 172 erstellt, und diese hat eine Standardroute, die mit der Standardroute der Haupttabelle identisch ist (172.16.2.254). Wenn ich jetzt routeZu172.16.2.0/24, anstatt über die Haupttabelle mit der falschen Route zu gehen, geht es stattdessen über die Routing-Tabelle 172.

Ich würde mich trotzdem über eine Nachricht freuen, ob es eine Möglichkeit gibt, die Route in der Haupttabelle zu löschen, aber da ich jetzt ein funktionierendes System habe, werde ich dies in zwei Wochen als akzeptierte Lösung markieren.

verwandte Informationen