2つの異なるネットワークセットが構成された複数のイーサネットカードがあります。
route -n
の出力は次のとおりです::
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.3.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1
192.168.3.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
発信接続は問題ありません。問題は着信接続にあります:192.168.1.Xを通過するように着信トラフィックをルーティングするにはどうすればよいですか?
追加したいもう1つのことは、192.168.3.1を経由する発信接続が必要なことです。
私はこれに対する解決策を自分で見つけました: 複数のアップリンク/プロバイダーのルーティング
一般的な構成は次のとおりです。ローカルネットワーク(または1台のマシン)を大規模なインターネットに接続するプロバイダーが2つあります。
________
+------------+ /
| | |
+-------------+ Provider 1 +-------
__ | | | /
___/ \_ +------+-------+ +------------+ |
_/ \__ | if1 | /
/ \ | | |
| Local network -----+ Linux router | | Internet
\_ __/ | | |
\__ __/ | if2 | \
\___/ +------+-------+ +------------+ |
| | | \
+-------------+ Provider 2 +-------
| | |
+------------+ \________
特定のプロバイダー、たとえばプロバイダー1を介して着信するパケットへの応答をルーティングする方法は、同じプロバイダーを介して再度バックアウトします。
まず、いくつかの象徴的な名前を設定しましょう。 $ IF1を最初のインターフェースの名前(上の図のif1)とし、$ IF2を2番目のインターフェースの名前とします。次に、$ IP1を$ IF1に関連付けられたIPアドレスとし、$ IP2を$ IF2に関連付けられたIPアドレスとします。次に、$ P1をプロバイダー1のゲートウェイのIPアドレス、$ P2をプロバイダー2のゲートウェイのIPアドレスとします。最後に、$ P1_NETを$ P1が存在するIPネットワークとし、$ P2_NETをIPネットワーク$とします。 P2はにあります。
1つは、T1とT2などの2つの追加ルーティングテーブルを作成します。これらは/ etc/iproute2/rt_tablesに追加されます。次に、これらのテーブルで次のようにルーティングを設定します。
ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add default via $P2 table T2
目を見張るようなことは何もありません。単一のアップストリームプロバイダーの場合と同じように、ゲートウェイへのルートを作成し、そのゲートウェイを介してデフォルトルートを作成しますが、プロバイダーごとに別々のテーブルにルートを配置します。上記で指定したように、ゲートウェイを含むそのネットワーク内のホストを見つける方法が示されているため、ネットワークルートで十分であることに注意してください。次に、メインルーティングテーブルを設定します。その隣人に接続されたインターフェースを介して直接隣人に物事をルーティングすることは良い考えです。 `src '引数に注意してください。これらは、正しい送信IPアドレスが選択されていることを確認します。
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
次に、デフォルトルートの設定:ip route add default via $ P1
次に、ルーティングルールを設定します。これらは実際にルーティングするルーティングテーブルを選択します。対応する送信元アドレスがすでにある場合は、特定のインターフェイスを確実にルーティングする必要があります。iprule add from $ IP1 table T1 ip rule add from $ IP2 table T2
着信を特定にルーティングするのではなく、発信をルーティングします...
ターゲットとするラストホップ(ルーターなど)によって、接続先のインターフェイスが決まります...例: 192.168.1.xから接続が確立された場合、192.168.3.xに接続されたNICにはルーティングされません。
ここで何かが足りないかもしれません...これが聞きたいものでない場合は、ネットワークトポロジを描画するか、さらに情報を提供する必要があると思います。