iptables POSTROUTING
次のコマンドを使用して、LinuxサーバーがセカンダリIPアドレスを持つように構成し、Source Network Address Translation(SNAT)を実行しました。
ip addr add 10.11.198.99/25 dev eno3
iptables -t nat -A POSTROUTING -p udp -o eno3 -s 10.11.198.45 -d 239.169.45.122 -j SNAT --to 10.11.198.99:60003
これらすべてが完璧に動作します。 tcpdumpはソースIPアドレス10.11.198.45
です10.11.198.99
。
次に、iptables NATテーブルを更新してチェーンルールをiptables POSTROUTING
削除し、セカンダリIPアドレスを削除し、次をconntrack -D --src-nat
使用してフローエントリを削除しました。
iptables -t nat -F
ip addr del 10.11.198.99/25 dev eno3
conntrack -D --src-nat
その後、新しいセカンダリIPアドレスを追加し、新しいiptables POSTROUTING
チェーンルールを追加しました。
ip addr add 10.11.198.79/25 dev eno3
iptables -t nat -A POSTROUTING -p udp -o eno3 -s 10.11.198.45 -d 239.169.45.122 -j SNAT --to 10.11.198.79:60003
この時点では、送信元ネットワークアドレス変換が適用されていることがわからず、tcpdump
送信元IPアドレスが10.11.198.45
置き換えられないことを示します10.11.198.79
。このconntrack -D --src-nat
コマンドは後続のiptables SNAT POSTROUTING
チェーンルールを追加しないようです。
ソースネットワークアドレス変換が再び機能するようにするにはどうすればよいですか?