仮想化 IPTables ルール

仮想化 IPTables ルール

今のところ、解決策を見つけることができていません。私は IPTables の経験があまりないので、どのようなサポートでもいただければ幸いです。

いくつかの VM がインストールされているサーバーがあります。メイン ノードにはリモート IP とサブネットがあります。各 VM は Linux 仮想化とルーティングされたネットワークを使用して作成され、ローカル IP が割り当てられます。次に、IP テーブルを使用して、専用のリモート IP からローカル IP にすべてのトラフィックを転送することにより、リモート IP を割り当てています。これは大部分で機能しているようですが、各 VM から送信されるトラフィックは、VM に転送したリモート IP ではなく、ノードのプライマリ IP から送信されるようです。

私の IPTables ルールは次のとおりです。

iptables -t nat -A POSTROUTING -s 192.168.123.0/24 ! -d 192.168.123.0/24 -j MASQUERADE

iptables -A FORWARD -d 192.168.123.0/24 -o virbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 192.168.123.0/24 -i virbr1 -j ACCEPT iptables -A FORWARD -i virbr1 -o virbr1 -j ACCEPT

そして、各 VM に対して次の操作を実行します。

iptables -t nat -A PREROUTING -d {Their-remote-IP} -j DNAT --to-destination 192.168.123.3
iptables -A FORWARD -p tcp -d 192.168.123.3 -m state --state NEW,ESTABLISHED,RELATED -j   ACCEPT
iptables -A FORWARD -m udp -p udp -d 192.168.123.3 -j ACCEPT
iptables -A FORWARD -m icmp -p icmp -d 192.168.123.3 -j ACCEPT

設定例

Primary Node IP: X.X.X.172
Additional IP X.X.X.173 1 (NATed to VM 1) to local address 192.168.123.2
Additional IP X.X.X.174 1 (NATed to VM 2) to local address 192.168.123.3
Additional IP X.X.X.175 1 (NATed to VM 3) to local address 192.168.123.4

ただし、VMからのすべての送信トラフィックはXXX172経由で送信されます。

ご提案いただければ幸いです。

答え1

まさにそれがMASQUERADE行うことです。元の送信元アドレスを、パケットが送信されるインターフェースのアドレスで上書きします。元のアドレスを保持したい場合は、マスカレードを使用しないでください。

関連情報