Linuxシステムには3つのネットワークインタフェースがあり、次のようになります。
| CentOS 6 Server
| ---------> eth0 (DHCP (192.168.1.x) Default Gateway, connects to a wired internet,
|----------> eth1 (IP : (10.165.11.139) GW to be used : (10.165.11.137), connects to a network A
|----------> eth2 (IP : (10.150.114.190) GW to be used: (10.150.114.191), connects to a network B
ここでの問題は、ネットワークAとネットワークBの両方が同じIPを持つノードを持っていることです。たとえば、次のようになります。
10.232.130.171
10.232.130.172
10.232.131.100
Route-eth1ファイルは次のとおりです。
10.232.130.0/24 via 10.165.11.137
10.232.131.0/24 via 10.165.11.137
Route-eth2ファイルは次のとおりです。
10.232.130.0/24 via 10.150.114.189
10.232.131.0/24 via 10.150.114.189
したがって、ping 10.232.130.171 は常に eth2 ではなく eth1 にルーティングされます。インターフェイス(Asterix PBX)にバインドされたアプリケーションを使用しようとすると、上記のIPからの着信接続は正常に機能しますが、それに対するすべての応答はeth1を介して送信されるため拒否されます。
この問題を解決する方法についてのアドバイスはありますか?
答え1
着信接続、特に間違った方向で応答すると述べたため、10.150.114.191を介したパスを使用して送信元アドレス10.150.114.190(eth2)に送信されたパケットであれば十分で、eth1にも当てはまります。ポリシー(ソース)ベースのルーティングがこれを実行できる必要があります。
デフォルトでは、次のように要約する必要があります。
echo "201 net1" >> /etc/iproute2/rt_tables
echo "202 net2" >> /etc/iproute2/rt_tables
ip rule add from 10.165.11.139 lookup net1
ip route add 10.232.130.0/23 via 10.165.11.143 dev eth1 table net1
ip rule add from 10.150.114.190 lookup net2
ip route add 10.232.130.0/23 via 10.150.114.189 dev eth2 table net2
しかし、ここでいくつかの問題を逃したかもしれません。
たとえば、参照してください。
- https://blog.scottlowe.org/2013/05/29/a-quick-introduction-to-linux-policy-routing/
- https://superuser.com/questions/376667/how-to-route-only-special-subnet-source-ip-to-a-pspecial-interface
- 受信と同じインターフェースで応答しますか?
これにより、「冗長」ネットワークの1つへの接続を開始したい中央ホストのすべてのプロセスが適切なインターフェイス/ IPアドレスに具体的にバインドされ、両方の10.232から130.0/23をルーティングするときにブロックされます。外の世界ならそれだけでは十分ではありません。
上記は、私が知っている限り、ほとんどテストされていません。警告事項私はこれを反対投票できるように答えとして投稿しています。
正直なところ、選択肢がある場合は、両方のネットワークの管理者に賄賂を与えて、両方の番号を変更することを検討します。