web-dev-qa-db-ja.com

IPルールとルートが尊重されない

私は彼らのpacketssourceに基づいてaddressをルーティングしようとしています、そして以下を追加しました:

# ip rule add from 10.10.10.0/16 dev eth0 table foobar
# ip route add default via 100.100.100.1 dev eth0 table foobar

ただし、ルーティングをテストすると、間違ったviaアドレスが表示されます。

# ip route get 4.3.2.1 from 10.10.10.1
4.3.2.1 from 10.10.10.1 via 100.0.0.1 dev eth0

なぜこれが尊重されないのですか?

これは私の通常のroutesです

# ip route list
default via 100.0.0.1 dev eth0

そして

# ip route show table foobar
default via 100.100.100.1 dev eth0

そして

# ip rule list
0:  from all lookup local
32765:  from 10.10.10.0/16 iif eth0 lookup foobar
32766:  from all lookup main
32767:  from all lookup default
6
Alfred Balle

あなたの問題は問題ではありません。ルールでは、送信元アドレスだけでなく、入力インターフェイスの照合も使用します。したがって、「問題」を解決するには2つの方法があります。

  1. ルールでdev eth0を使用しないでください
  2. iif eth0コマンドにip route get...を追加します。 iifオプションを使用すると、ip route getコマンドでローカル以外のアドレスを使用できるため、次のようなものを使用できます:ip route get 4.3.2.1 from 10.10.20.253 iif eth0
5
Anton Danilov