Supprimer les entrées spécifiques de connripck?

Dans une configuration multi-ISP, je roulage et NATing trafic spécifique, par exemple VoIP, via une interface spécifique – à un fournisseur distinct. Lorsqu'une des interfaces (ou des itinéraires) devient indisponible, toutes les connexions qui l'utilisent doivent être abandonnées et le trafic ultérieur doit être acheminé via la connexion en cours de fonctionnement. Lors de la modification du statut, je réinitialise et charge les entrées iptables et de routage appropriées (c'est "redirection de shorewall" – j'utilise shorewall).

Le problème est – les entrées de conntrack encore présentes provoquent que l'ancienne (et maintenant incorrecte) adresse externe est toujours utilisée pour NAT pour ces connexions! Après 'conntrack -D', le NAT fonctionne comme prévu à nouveau.

Je voudrais supprimer uniquement les entrées conntrack appartenant à l'ancienne adresse externe ou pour résoudre le problème de manière à ne pas affecter les connexions via d'autres interfaces.

Par exemple: j'aimerais supprimer toutes les entrées de conntrack ayant une destination de connexion inverse dst=old.ext.ip.adr , comme

udp 17 164 src=192.168.158.3 dst=213.208.5.40 sport=5060 dport=5060 packets=178 bytes=104509 src=213.208.5.40 dst=old.ext.ip.adr sport=5060 dport=5060 packets=234 bytes=127268 [ASSURED] mark=256 secmark=0 use=2

Ce que j'ai déjà essayé:

 # conntrack -D -r 212.108.43.143 ^C (nothing happens, it just hangs) # conntrack -D -r 213.208.5.40 -d 212.108.43.143 Operation failed: such conntrack doesn't exist 

Merci d'avance! Cordialement, Zrin

La solution est donnée ici .

J'ai une tâche similaire: supprimer des entrées spécifiques de conntrack liées aux connexions UDP allant à un hôte Internet spécifique et être SNAT'ed, alors j'ai créé le script suivant:

 #!/bin/sh set -e -u HUB=AAA.BBB.CCC.DDD # target host's IP address value() { echo ${1#*=} } /usr/sbin/conntrack -L conntrack -p udp -d $HUB | while read proto _ _ src dst sport dport _; do /usr/sbin/conntrack -D conntrack \ --proto `value $proto` \ --orig-src `value $src` \ --orig-dst `value $dst` \ --sport `value $sport` \ --dport `value $dport` done 

Essayer,

 conntrack -D --src-nat --reply-dst old.ext.ip.adr