iptables
3つの別々のUbuntu VPSサーバー(A、B、C)があります。以前は、着信パケットを11.22.33.44
ポート443のIPアドレス(サーバーB)に転送し、55.66.77.88
サーバーAをゲートウェイとして使用するサーバーAに関連付けられたIPアドレスが1つしかありませんでした。クライアント領域でブロックをバイパスするための私のTCP接続
PREROUTIN
以下を使用してルールを追加してこれを実行しました。
$ iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 55.66.77.88:443
そしてルールを追加してくださいPOSTROUTING
。
$ iptables -t nat -A POSTROUTING -j MASQUERADE
99.10.11.12
サーバーA()のVPSプロバイダーからeth1
そのアドレスに接続し、サーバーC(13.14.15.16
)にパケットを転送する別のIPアドレスを購入したいと思います。
ただし、2番目のIPを購入して有効にすると、すべてが機能しなくなり、着信パケットも11.22.33.44
サーバーBに到達できません。
私が望むものを得るためにルールをどのように整理する必要があるのかわかりませんiptables
。
ベストアンサー1
サーバーに複数のネットワークインターフェースがある場合、非対称ルーティングが問題になります。たとえば、パケットはを介してeth0
転送server A
できますserver B
。リターンパケットserver B
がからに戻ると、インターネットにserver A
エスケープしようとすることができます。eth1
インターネットがデフォルトゲートウェイを指すからです(またはその逆)。
この例では、server A
4つのインターフェースが構成されています。
eth0 - 1.0.0.1 (WAN-1 facing)
eth1 - 1.1.1.1 (WAN-2 facing)
eth2 - 10.2.2.1/24 (LAN-B facing)
eth3 - 10.3.3.1/24 (LAN-C facing)
Server B
10.2.2.2/24
サーバーAのeth2インターフェース(10.2.2.1)を指すデフォルトゲートウェイを持つIPアドレスがあります。
Server C
10.3.3.2/24
サーバーAのeth3インターフェース(10.3.3.1)を指すデフォルトゲートウェイを持つIPがあります。
IPアドレスはserver A
4つで、デフォルトゲートウェイは一度に1つしかないため、非対称ルーティングの問題が発生する可能性があります。
ではserver A
、次のコマンドを実行してトラフィックを制御できます。
eth2(LAN-Bに向かう)を介したトラフィックは、eth0(1.0.0.1)のパブリックIPに変換する必要があります。
$ sudo iptables -t nat -A POSTROUTING -o eth2 -s 10.2.2.0/24 -j SNAT --to-source 1.0.0.1
eth3(LAN-Cに向かう)を通るトラフィックは、インターネットへの途中でeth1のパブリックIP(1.1.1.1)に変換する必要があります。
$ sudo iptables -t nat -A POSTROUTING -o eth3 -s 10.3.3.0/24 -j SNAT --to-source 1.1.1.1