iptables POSTROUTING
다음 명령을 사용하여 Linux 서버가 보조 IP 주소를 갖도록 구성하고 SNAT(Source Network Address Translation)를 수행했습니다.
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
체인 규칙이 추가되지 않을 것으로 보입니다 .
소스 네트워크 주소 변환이 다시 작동하도록 하려면 어떻게 해야 합니까?