10.21. Combien d'overhead, IPFW implique-t-il ?

La réponse à ceci dépend pour la plupart à votre ensemble de règle et à votre vitesse de processeur. Pour la plupart des applications utilisant ethernet et de petits ensembles de règles, la réponse est : négligeable. Pour tous ceux d'entre vous qui veulent des mesures actuelles pour satisfaire leur curiosité, continuez à lire :

Les mesures suivantes ont été réalisées en utilisant 2.2.5-STABLE sur un 486-66. IPFW a été modifié pour mesurer le temps écoulé par l'intermédiaire de la routine ip_fw_chk en affichant les résultats sur la console tous les 1000 paquets.

2 ensembles de règles, chacun avec 1000 règles ont été testés. Le premier ensemble a été conçu pour démontrer le scénario du pire des cas en répétant la règle :

ipfw add deny tcp from any to any 55555
      

Cela démontre le pire des cas en faisant que chaque paquet IPFW entraine l'exécution de la routine de vérification qui finallement décide que le paquet ne correspond pas aux règles (en vertu du numéro de port)? Apès la 999eme itération de cette règle, il y avait un allow ip from any to any.

Le second ensemble de règles a été conçu pour annuler la vérification de règle très rapidement :

ipfw add deny ip from 1.2.3.4 to 1.2.3.4
      

Les adresses IP des sources non correspondantes aux règles énoncées ci-dessus font que ces règles sont sautées très rapidement. Comme auparavant, la 1000eme règle était un allow ip from any to any.

L'étude par paquet dans le premier cas a été approximativement de 2.703ms/paquet, soit en gros 2.7 microseconds par règle . Ainsi, la limite théorique d'étude de paquet avec ces règles est de 370 paquets par secondes. En supposant un éthernet 10Mbps et des paquets d'environ 1500 bytes, nous ne pourrons être capable que d'obtenir une utilisation de la bande passante de 55.5%

Pour le dernier cas, chaque paquet a été étudié en approximativement 1.172ms, soit en gros 1.2 microseconds par règle. La limite théorique de l'étude des paquets ici, serait d'environ de 853 paquets par secondes, ce qui pourrait consommer une bande passante d'un éthernet 10Mbps.

Le nombre excessif de règle testés, et la nature de ces règles ne fournissent pas un scénario du monde réel -- ils ont été utilisés que pour générer les informations de temps présentés ici.Voici certaines choses à garder à l'esprit pour construire un ensemble de règles efficaces :

Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.

Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.