名前空間を作成せずに、ローカルルーティングテーブルからカスタムルーティングテーブルにブロードキャストとローカルパスを移動できますか?

名前空間を作成せずに、ローカルルーティングテーブルからカスタムルーティングテーブルにブロードキャストとローカルパスを移動できますか?

インターフェイスが2つあるホストがあります。 ens4 は mgmnt、ens3 は別のネットワークです。

# ip -br a | sort
ens1             DOWN
ens2             DOWN
ens3 UP          172.16.10.1
ens4 UP          192.168.1.100

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.100   0.0.0.0         UG    0      0        0 ens4
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ens4
172.16.10.1     0.0.0.0         255.255.255.0   U     0      0        0 ens3

ens3へのすべてのトラフィックを独自のルーティングテーブルに配置し、そのインターフェイスに到着するトラフィックがローカルルーティングテーブルに到達しないようにしたいと思います。

私は以下を試しました:

  • 新しいテーブルを作成しました。
echo "100   custom" > /etc/iproute2/rt_table
  • トラフィックと一致するようにルートとルールを追加します。
# ip route add 172.16.10.0/24 dev ens3 table custom
# ip rule add from 172.16.10.0/24 table custom

# ip route show table custom
172.16.10.0/24 dev ens3 scope link

# ip rule list
0:      from all lookup local
32765:  from 172.16.10.0/24 lookup custom
32766:  from all lookup main
32767:  from all lookup default

しかし、ブロードキャストとローカルトラフィックがまだメインテーブルにあることを確認しました。

# ip route show table all | grep 172.16.10
172.16.10.0/24 dev ens3 scope link
broadcast 172.16.10.0 dev ens3 table local proto kernel scope link src 172.16.10.1
local 172.16.10.1 dev ens3 table local proto kernel scope host src 172.16.10.1
broadcast 172.16.10.255 dev ens3 table local proto kernel scope link src 172.16.10.1

したがって、直接接続されたルートをルーティングすることはできません。解決策は、インターフェイスとルーティングテーブルを名前空間に配置することです。ブロードキャストとローカルパスを別のルーティングテーブルに移動できますか?問題は、ip addressドアを追加する方法だと思いますip ruleが、わかりません。

やりたいことができるかどうかを知っている人はいますか?

ベストアンサー1

調べました。追加されたルーティングルールを削除し、ルーティングを介して再度追加する必要があります。

#ip route del 172.16.10.0/24 dev ens3 table custom
#ip route add 172.16.10.0/24 dev ens3 table custom via 172.16.10.1

# ip route show table custom
172.16.10.0/24 dev ens3 scope link
172.16.10.0/24 via 172.16.1 dev ens3

おすすめ記事