Questions Fréquemment Posées sur FreeBSD 2.X, 3.X et 4.X
Précédent | Chapitre 10. Réseaux. **Mise à jour en cours** | Suivant

# 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 :

- Placer une règle d'`établissement' très tôt afin de pouvoir gérer la majorité du trafic TCP. Ne mettre aucun allow tcp avant cette règle.

- Placer les règles souvent sollicitées le plus au début de l'ensemble des règles plutôt que celles rarement utilisées (sans changer la permissivité du firewall , bien sûr). Vous pourrez voir quels sont les règles les plus souvent utilisées en examinant les statistiques des comptages des paquets avec ipfw -a l.

Précédent | Sommaire | Suivant
``Permission denied'' pour toutes les opérations réseaux. | Niveau supérieur | Comment puis-je rediriger les requêtes de services d'une machine vers une autre ?

Ce document, ainsi que d'autres peut être téléchargé sur 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>.