次の2つのiptablesルールがあります。
# vmbr0 - WAN bridge, vmbr1 - LAN bridge
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 3306 -j DNAT --to-destination 10.5.0.250
iptables -t nat -A POSTROUTING -o vmbr1 -p tcp --dport 3306 -d 10.5.0.250 -j SNAT --to-source 10.5.0.1
同じネットワーク上のあるコンピュータ(例:10.5.0.10)が別のコンピュータ(例:10.5.0.11)に接続されると、これらの規則に従ってアドレスは10.5.0.1に変換されます。これは本当ですか?
これを防ぎ、ローカルトラフィックをそのまま維持するにはどうすればよいですか?
仮想化(Proxmox)を使用しています。仮想化ホストには、vmbr0 ブリッジに接続された物理ネットワーク eth0 があります。仮想マシンとコンテナは vmbr1 にのみ接続されます。単一のパブリックIP(ブリッジvmbr0)があるため、「LAN」からパブリックネットワークにサービスを公開するには、vmbr0とvmbr1の間にNATを作成する必要があります。
答え1
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 3306 -j DNAT --to-destination 10.5.0.250
TCPポート3306に送信されるすべての着信トラフィックの宛先vmbr0
アドレスは10.5.0.250に変更されます。
iptables -t nat -A POSTROUTING -o vmbr1 -p tcp --dport 3306 -d 10.5.0.250 -j SNAT --to-source 10.5.0.1
宛先IPが10.5.0.250で、宛先TCPポートが3306のすべての発信トラフィックの送信元vmbr1
IPアドレスは10.5.0.1に変更されます。
あなたの「地域交通」はどの橋につながりますか?
いずれにしても、これらの規則に基づいて、宛先ポートが3306 / TCPのトラフィックのみがNAT処理され、他の宛先ポートは変更されません。
vmbr1
10.5.0.* ネットワークが構成どおりにブリッジに接続されている場合、これらの規則は次のようになります。まったく効果なし10.5.0.10と10.5.0.11の間のすべてのトラフィック。