Je teste une application sur laquelle je travaille et je dois être capable de supprimer silencieusement les paquets UDP sortants pendant une courte période pour répliquer un mode d'échec possible.
Y a-t-il un moyen de faire ça?
Remarque: iptables
DROP
n'est pas silencieux pour les messages sortants! Lorsqu'un send()
appel ou un appel similaire est interrompu iptables
, il revient EPERM
pour une raison étrange (voir ici . Malheureusement, je ne peux pas utiliser cette réponse car ma destination est à un seul bond).
xtables-addons
utilisé pour avoir un STEAL
verbe , mais il a été supprimé il y a quelques années sans aucune raison que je puisse trouver.
J'ai maintenant essayé d'utiliser de fausses routes dans la table de routage, et malheureusement, cela semble casser les deux directions du trafic de communication.
Pour le test que je dois faire, je dois autoriser le trafic UDP entrant , et dès que j'installe la fausse route, les paquets entrants en streaming s'arrêtent immédiatement, bien que la source les envoie toujours.
la source
Réponses:
Que diriez-vous d'ajouter une interface factice et de définir l'itinéraire vers cette interface?
Il envoie toujours des paquets pour toutes les adresses (voisines ou distantes) activées
dummy0
.la source
L'ajout d'un itinéraire interrompt le trafic entrant en raison du filtrage de chemin inverse. Solution simple: désactivez le filtrage de chemin inverse sur l'interface:
(utilisez votre interface entrante à la place de
eth0
ci - dessus).Vous pouvez également utiliser la
REDIRECT
cible (envoyer le paquet à, par exemple, un netcat qui l'écoute -nc -l -u -p 1234 > /dev/null
). Une version plus compliquée serait NFQUEUE.la source