複数のインタフェースを持つLinuxホストでマイクロセグメンテーションが有効である場合、トラフィックはソケットに到達できません

Prev Next

問題

Linux基盤のシステムでは、マイクロセグメンテーションを有効にしても、既存の2つのルーターに接続されている場合、デフォルトゲートウェイのルートエントリーが作成されません(1つはローカルトラフィック用、もう1つはインターネットトラフィック用)

トラブルシューティング 

ルーティングテーブルの確認

コマンドroute -nを実行してルーティングテーブルを確認します

宛先 ゲートウェイ ゲンマスク フラグ メトリック リファレンス 使用 インターフェース
0.0.0.0 10.40.0.254 0.0.0.0 UG 202 0 0 eth0
0.0.0.0 192.168.2.1 0.0.0.0 UG 1024 0 0 eth1
10.10.0.0 10.40.0.254 255.255.0.0 UG 0 0 0 eth0
10.30.0.0 10.40.0.254 255.255.0.0 UG 0 0 0 eth0
10.40.0.0 0.0.0.0 255.255.0.0 U 202 0 0 eth0
10.52.0.0 10.40.0.254 255.255.0.0 UG 0 0 0 eth0
10.53.0.0 10.40.0.254 255.255.0.0 UG 0 0 0 eth0
52.214.167.240 10.40.0.254 255.255.255.255 UGH 0 0 0 eth0
172.17.10.41 10.40.0.254 255.255.255.255 UGH 0 0 0 eth0
192.168.2.1 0.0.0.0 255.255.255.255 UH 1024 0 0 eth1

上記の例では、192.168.2.1へのゲートウェイが0.0.0.0であるため、eth1を介したデフォルトルートがそのIPに対して存在していることを示しています。 しかし、ゲートウェイが同じサブネット内にないため、正確なルートではなく、最初のデフォルトルートが選ばれ、メトリックが低いためeth0を介してトラフィックが送信されます。

解決策

次のコマンドを実行して欠落しているサブネットを使用して手動ルートを追加します

ip route add <IP/CIDR> dev <interface>

例えば: ip route add 192.168.2.0/24 dev eth1

完了したら、ルートが追加されたことを確認するためにルーティングテーブルをチェックしてください。

宛先 ゲートウェイ ゲンマスク フラグ メトリック リファレンス 使用 インターフェース
0.0.0.0 10.40.0.254 0.0.0.0 UG 202 0 0 eth0
0.0.0.0 192.168.2.1 0.0.0.0 UG 1024 0 0 eth1
10.10.0.0 10.40.0.254 255.255.0.0 UG 0 0 0 eth0
10.30.0.0 10.40.0.254 255.255.0.0 UG 0 0 0 eth0
10.40.0.0 0.0.0.0 255.255.0.0 U 202 0 0 eth0
10.52.0.0 10.40.0.254 255.255.0.0 UG 0 0 0 eth0
10.53.0.0 10.40.0.254 255.255.0.0 UG 0 0 0 eth0
52.214.167.240 10.40.0.254 255.255.255.255 UGH 0 0 0 eth0
172.17.10.41 10.40.0.254 255.255.255.255 UGH 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.2.1 0.0.0.0 255.255.255.255 UH 1024 0 0 eth1