概要は次のとおりです。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.103
10.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 週間以内にこれを承認済みの解決策としてマークします。