J'ai essayé de faire une recherche mais je n'ai pas réussi, dans ce cas je suis désolé et j'apprécierai la redirection.
J'avais ce problème en tête : un ordinateur avec une adresse mac M envoie des paquets à travers un routeur openwrt (ou un système basé sur linux) et je voudrais, juste pour essayer la possibilité, laisser passer un paquet provenant de M mais le paquet qui suit immédiatement doit être abandonné, puis accepté à nouveau, puis abandonné et ainsi de suite.
Donc si l'ordinateur avec mac M envoie 20 paquets, seuls 10 passeront, les 10 autres seront abandonnés. De manière verbeuse, le résultat souhaité est : accept, drop, accept, drop, accept, drop, accept, drop, accept, drop, etc...
Une explication en pseudo-code
condition=ACCEPT
for each packet {
if ( packet_is_sent_from_adapter_with_mac_M ) {
if (condition == ACCEPT) {
accept_packet
condition=DROP
}
else {
drop_packet
condition=ACCEPT
}
}
}
Est-ce possible ? Après avoir cherché un peu sur Google, il semble qu'iptables ne supporte pas les déclarations conditionnelles ou les scripts.
Et si c'est possible, qu'en est-il d'une condition générale "abandonner X paquets consécutifs après Y acceptations consécutives" ?
ajout1 : La question en général est le "contrôle de flux" n'est pas autorisé dans iptables ? ou mieux, puisque les décisions conditionnelles sont basées sur un état ( condition dans le pseudocode), comment pouvons-nous sauvegarder l'état lié à une certaine condition dans iptables et faire quelque chose en vérifiant cet état ?
addition2 : Dans les commentaires, des outils supplémentaires (tc) sont suggérés pour réaliser le contrôle de flux (je veux dire des instructions if, des boucles, etc.), n'hésitez pas à suggérer une combinaison (peut-être avec un peu d'explication). Merci !
0 votes
Comme le dit Janne,
iptables
est un bon outil UNIX et peut probablement être torturé pour faire du contrôle de flux. Maistc
est l'outil de création de trafic et est probablement bien meilleur pour cela ! Les deux outils combiné (ex,iptables
pour marquer les paquets en fonction de critères de type iptables, alorstc
à la forme basée sur le balisage) peut être encore plus puissant.0 votes
Ah oui, j'ai fait du contrôle Qos avec tc et filtrage. En les combinant, je peux donc obtenir un contrôle de flux ?
0 votes
Cela dépend de ce que vous voulez obtenir. Même la description que vous avez donnée ci-dessus est imprécise : sur ces 20 paquets, un paquet sur deux doit être abandonné. Mais qu'advient-il du 21ème ? Si vous voulez des conseils précis, vous devez formuler votre question avec précision.
0 votes
Bien sûr, mais, puisque je connais la question, j'ai besoin du feedback des autres pour vérifier si j'ai été clair (de plus, je ne suis pas de langue maternelle anglaise) et pour améliorer la question. Laissez-moi l'éditer à nouveau.
0 votes
@MadHatter question éditée, j'espère que maintenant c'est plus clair.