Changement lent des règles netfilter

J'ai un script qui soutient les tunnels gre et règles de pare-feu à l'aide d'outils «ip» et «iptables». La mise en place de centaines de tunnels et d'adresses à l'interface fonctionne normalement. Occupe moins 0,1 Quelques secondes sur l'interface, cependant, lorsque j'essaie d'exécuter des règles de pare-feu, tout ralentit les coûts> 0,5 Insérer.

Pourquoi fonctionne-t-il si lentement? Que puis-je faire pour augmenter la vitesse?

On dirait que je pouvais essayer à la place ipset, Mais je sens vraiment que quelque chose ne va pas avec le noyau ou autre chose. Fait intéressant, le premier 10 Les règles fonctionnent rapidement, puis ralentissent ..

mybox(root) foo# iptables -V
iptables v1.3.5
mybox(root) foo# uname -a
Linux foo 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
mybox(root) foo# cat test.sh
#!/bin/sh

for n in {1..100}
do
/sbin/iptables -A OUTPUT -s ${n} -j ACCEPT
/sbin/iptables -D OUTPUT -s ${n} -j ACCEPT
done
mybox(root) foo# time ./test.sh

real 1m38.839s
user 0m0.100s
sys 1m38.724s

Salutations toute aide. Hourra!
Invité:

Blanche

Confirmation de:

Numéro un:

Ton noyau

très

dépassé. Et le vôtre aussi

iptables

.

Numéro deux:

"Problème" est que pour

chaque

Appeler

iptables

, Qu'est-il arrivé:


iptables

tire la table entière du noyau dans l'espace utilisateur


iptables

Change le tableau dans l'espace utilisateur


iptables

déplace la table dans l'espace du noyau

Plutôt, ajustez votre propre

iptables

L'ensemble de règles que vous le souhaitez, puis enregistrez-le en utilisant

iptables-save > some_file_name

. DANS

tout

Un ensemble de règles sera restauré dans une peur avec l'aide de la commande.

iptables-restore < some_file_name

.

(Bien sûr, remplacé

some_file_name

Là avec le nom de fichier dans lequel vous souhaitez enregistrer l'ensemble des règles.)

Pour répondre aux questions, connectez-vous ou registre