iptables sigue usando reglas nat antiguas

iptables sigue usando reglas nat antiguas

Utilizo iptables snat en mi puerta de enlace para cambiar las direcciones IP de origen local a externas. El problema es que después de cambiar las reglas (o incluso si elimino la tabla nat de iptables), la puerta de enlace sigue usando la regla anterior hasta que reinicio la puerta de enlace. Utilizo Ubuntu 14.04 Server como sistema operativo en ejecución. Así, por ejemplo, después de que entro

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

La dirección externa para 10.0.0.129 es 1.2.3.4 y en la interfaz de la puerta de enlace externa pude ver algo así

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

e incluso después

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

El resultado será el mismo

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

las nuevas reglas entran en vigor solo después de que reinicio el sistema. Esto solía suceder ocasionalmente, pero recientemente resultó que no puedo cambiar estas reglas sin reiniciar.

información relacionada