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

2 Solutions collect form web for “Supprimer les entrées spécifiques de connripck?”

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 
  • IP Routing - Comment fonctionne-t-il à nouveau? [fermé]
  • Le client VPN peut faire un ping aux machines LAN mais aucun autre service TCP / UDP ne fonctionne
  • Itinéraires statiques sur Windows - Ordinateur avec deux NIC connectés à deux réseaux routés
  • Décision de routage lorsqu'il existe deux passerelles par défaut sur Windows
  • Est-il possible (comment?) D'acheminer les paquets UDP entrants avec une cible IP vers une adresse IP de destination qui est résolue via une requête DNS pour une URL statique?
  • Les nouveaux invités KVM ne peuvent pas accéder à l'extérieur du LAN
  • Deux interfaces réseau et deux adresses IP sur le même sous-réseau sous Linux
  • Le client du réseau Force Juniper utilise le routage partagé
  • Iptables - Cible pour acheminer le paquet vers une interface spécifique?
  • IPv6: différences entre "préfixe routé" et "préfixe de lien"?
  • Acceptez et transférez la gamme IPv6 entrante vers une autre interface
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.