これは私のネットワーク トポロジです。
へのすべてのデータ プロキシ受信要求をeth0
経由で応答しeth0
、 がeth1
に入ってくるデータにeth1
も応答するようにします...
アクティブルート:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.110.1 0.0.0.0 UG 15 0 0 eth2
192.168.110.96 * 255.255.255.248 U 0 0 0 eth2
192.168.200.0 * 255.255.255.248 U 0 0 0 eth0
192.168.200.96 * 255.255.255.248 U 0 0 0 eth1
これらのコマンドを試してみましたが、機能しません... :(
ip route flush table 2002
ip route flush table 2001
ip route add 10.10.8.0/22 dev eth0 src 192.168.200.2 table 2002
ip route add 192.168.100.0/24 dev eth0 src 192.168.200.2 table 2002
ip route add default via 192.168.200.1 table 2002
ip route add 10.10.8.0/22 dev eth1 src 192.168.200.101 table 2001
ip route add 192.168.100.0/24 dev eth1 src 192.168.200.101 table 2001
ip route add default via 192.168.200.100 table 2001
ip rule add from 192.168.200.2 table 2002
ip rule add from 192.168.200.101 table 2001
どうすればいいでしょうか?
答え1
なぜ理解できなかったのかが分かりました... ルーティングはポート レベルではなくネットワーク レベルで行われます。ネットワークを 3 つの個別のネットワークにサブセグメント化し、各ネットワークを各ネットワーク カードにバインドしてから、ルーターでパケットを正しいイーサネット ポートにルーティングする必要があります。
各ネットワーク カードには独自のネットワーク アドレスがあるため、特定のアドレスで入ってくるパケットもそのネットワークに戻されます。
例えば:
- eth0: 192.168.100.0/24 LAN
- eth1: 192.168.101.0/24 アクセスポイント
- Eth3: デフォルトゲートウェイ/24: ADSLモデム
すると、192.168.0.0/16 宛てではないすべてのトラフィックはインターネットに送信され、すべてのローカル トラフィックはローカルに留まります。
ポート転送を行うには、次の 2 つのオプションがあります。
ハードウェアを追加するとビッグIPのようにルータとサーバーの間で、パケットを検査し、ポートに応じて IP アドレスをオンザフライで変更して Eth0 と Eth1 に送信し、サーバーが正しいインターフェイスで再度送信し、BigIP がそれを元の状態に戻します...
ルーターを完全に削除してサーバーをルーターとして使用する同じことを実現するには、
iptables
パケットを検査してルーティングするだけです。
しかし、ポート レベルには「HTTP/FTP」という概念がないため、あなたがしようとしていることは不可能です (ハードウェア ルーターとサーバー内のソフトウェア ルーティングのみを使用する)。 :-(