Netplan はルートをメインルーティングテーブルから別のルーティングポリシーに (再) 移動します

Netplan はルートをメインルーティングテーブルから別のルーティングポリシーに (再) 移動します

概要は次のとおりです。172.16.2.103/24との 2 つのインターフェイスを持つ Impish Ubuntu サーバーがあります10.1.2.10/24。デフォルトのトラフィックがゲートウェイ を経由するようにします172.16.2.254。ただし、 の送信元アドレスを指定する場合、10.1.2.10ゲートウェイを にする必要があります。次の内容は 99% の確率で機能しますが、 に接続する場合でも10.1.2.254カーネルが送信元 IP を選択するようにしたいと思います。これは では可能でした が、netplan を使用しても解決できませんでした。172.16.2.10310.1.2.0/24/etc/networks/interfaces

私のネットプラン構成は次のとおりです:

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

すでに述べたように、これはほとんどの場合問題なく動作します。ルーティング ポリシー (別名 IP ルール) があり、パケットの送信元アドレスを変更すると、10 ルーティング テーブルが検索されます。ただし、メインから削除したい追加のルートがあります。

ルーティング テーブルを確認すると次のようになります。

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

メイン ルーティング テーブルに 10.1.2.0/24 へのレイヤー 2 リンクがないように、OUT3 を削除するか、より正確には 10 ルーティング テーブルに移動したいと思います。これは手動で行うことができます。

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

しかし、それをネットプランに埋め込む方法がわかりません。以前は up ステートメントを追加していましたが/etc/network/interfaces、もうそのオプションはありません。

前もって感謝します。

答え1

これは解決策ではなく、回避策です。私の問題は、不要なルートを削除したいということでした。回避策は、別の優先度の高いルートです!

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

ens160インターフェースの追加のルーティングポリシーとルートに注意してください。これにより、172という別のルーティングテーブルが作成され、メインテーブルのデフォルトルート(172.16.2.254)と同じデフォルトルートが1つあります。172.16.2.0/24 の場合、間違ったルートでメイン テーブルを経由するのではなく、172 ルーティング テーブルを経由することになります。

メイン テーブルでルートを削除する方法があるかどうかは引き続き知りたいのですが、現在はシステムが機能しているので、2 週間以内にこれを承認済みの解決策としてマークします。

関連情報