iptables продолжает использовать старые правила nat

iptables продолжает использовать старые правила nat

Я использую iptables snat на своем шлюзе для изменения локальных исходных IP-адресов на внешние. Проблема в том, что после изменения правил (или даже если я очищаю таблицу iptables nat) шлюз продолжает использовать старое правило до тех пор, пока я не перезагружу шлюз. Я использую Ubuntu 14.04 Server в качестве работающей операционной системы. Так, например, после того, как я ввожу

iptables -t nat -A POSTROUTING -s 10.0.0.129 -j SNAT --to-source 1.2.3.4

Внешний адрес для 10.0.0.129 — 1.2.3.4, и на внешнем интерфейсе шлюза я увидел что-то вроде этого

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:48:07.920936 IP 1.2.3.4 > 8.8.8.8: ICMP echo request, id 2425, seq 1, length 64
09:48:08.920066 IP 1.2.3.4 > 8.8.8.8: ICMP echo request, id 2425, seq 2, length 64
09:48:09.920422 IP 1.2.3.4 > 8.8.8.8: ICMP echo request, id 2425, seq 3, length 64

и даже после того, как

iptables -F 
iptables -t nat -F 
iptables -t nat -A POSTROUTING -s 10.0.0.129 -j SNAT --to-source 4.3.2.1

результат будет тот же

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:54:20.674671 IP 1.2.3.4 > 8.8.8.8: ICMP echo request, id 2666, seq 1, length 64
09:54:21.674997 IP 1.2.3.4 > 8.8.8.8: ICMP echo request, id 2666, seq 2, length 64
09:54:22.676283 IP 1.2.3.4 > 8.8.8.8: ICMP echo request, id 2666, seq 3, length 64

новые правила вступают в силу только после перезагрузки системы. Раньше это случалось иногда, но недавно выяснилось, что я не могу изменить эти правила без перезагрузки.

Связанный контент