Forum Linux.général Pare-feu Linux - test de charge

Posté par (page perso) .
Tags : aucun
5
13
nov.
2009
Bonjour,

par pur plaisir de gâcher mon temps, je vais tester un routeur-maison sous Linux, avec de belles règles de pare-feu. Le but est de voir ce que peu encaisser une machine en fonction de sa "puissance". Des tests comme ça existent déjà. Ceux que j'ai trouvé son anciens, j'ai peut-être mal cherché.

Suggestions bienvenues.

Schéma prévu:

PC1 ----------+
PC2 ----------+ (réseau 10.1.1.0/24)
PC3 ----------+
............ROUTEUR
PC4 ----------+
PC5 ----------+ (réseau 10.2.2.0/24)
PC6 ----------+

Le + symbolise les switchs (un pour chaque sous-réseau).

Tout est en gigabit: cartes, switches, câbles.

Le routeur sera une machine avec une carte-mère très ordinaire et un AMD Sempron 2600+. Si ça ne suffit pas, ce sera un AMD Atlhon 5000+. Et si ça ne suffit toujours pas nous monterons avec du AMD X2 245 ou même Phenom II. Il semble en effet qu'on arrive tout de même rapidement aux limites des capacités du processeur et de la carte-mère.
Une carte réseau intégrée, et une carte PCI Express Intel de base (je n'ai pas trouvé moins cher). Du bas de gamme, c'est le but. Nous ferons peut-être le test également avec une carte PCI, mais ça risque de coincer car c'est limité a 133 Mo/s je crois.

Les PC1 à PC6 sont chargés de s'échanger des paquets de part et d'autre du routeur en saturant les liaisons gigabit. 3 machines de chaque côté, les cartes du routeur seront forcément saturées, ainsi que le switch.

Test 1: pas de pare-feu. Est-ce que le routeur encaisse ou pas, ajustements, etc.

Test 2: règles simples de pare-feu.

Test 3: on complique.

etc, etc, jusqu'à obtenir du routeur qu'il ne puisse pas traiter les paquets à la vitesse maximum.

Ca interesse quelqu'un de participer ?
Il y a peut-être des modifications à faire dans le noyau pour accélérer les choses (pas sûr). Il y a les scripts des clients à inventer (créer de nombreuses interfaces virtuelles, envoyer/recevoir des paquets, vérifier que tout soit bien arrivé). Des choses comme ça quoi.

Si quelqu'un est partant pour que je teste avec du BSD, il suffit de me donner les instructions pas à pas, je fais.
Le test portera sur IPv4. Si vous voulez mieux, proposez.
  • # tiens nous au courant :)

    Posté par (page perso) . Évalué à 3.

    hoy :)

    j'aimerais bien suivre les premiers résultats...

    ça pourrait peut être être intéressant de tester du *BSD aussi, je verrais selon les premiers résultats et si je trouve le temps

    le problême est que le routeur n'est pas forcément le SPOF, ton switch peut pêter avant, ou alors inventer des règles de firewalling et générer du traffic juste pour que ça pète

    je suis pas sur de ce que ça va bencher là...
  • # Comparaison avec un vrai routeur

    Posté par . Évalué à 1.

    Je me suis toujours demandé ce que valait un PC en guise de routeur, même puissant, à la place d'un vrai routeur (un appareil grand public à 50€, ou un appareil ''pro'' à 500€).

    Si à l'occasion, tu peux également tester avec de tels appareils, ça peut être intéressant.
    • [^] # Re: Comparaison avec un vrai routeur

      Posté par . Évalué à 3.

      Là on parle de gros débits quand même.
      Pour faire du routeur de connexion à Internet, en général, un simple PC suffit largement.
    • [^] # Re: Comparaison avec un vrai routeur

      Posté par (page perso) . Évalué à 2.

      En gros, un routeur à 400 € HT a une bande passante maximum de 50 Mb/s et 200 Mb/s suivant l'âge (pas de pare-feu, rien). Suivant l'âge car le débit théorique maximum double environ tous les 2 ans.

      Pour 150 € HT on a à peut-près les mêmes performances. La différence vient principalement des fonctionnalités.

      Par contre, dès qu'on active des règles "sérieuses" de pare-feu, c'est une autre histoire.
  • # BP bus pci

    Posté par (page perso) . Évalué à 1.

    La bande passante du bus pci risque d'être saturée assez rapidement.

    Système - Réseau - Sécurité Open Source

    • [^] # Re: BP bus pci

      Posté par (page perso) . Évalué à 2.

      En principe, dans un monde idéal, la bande passante du PCI Express est de 2,5 Gb/s dans chaque sens. Ca devrait passer pour deux cartes (une intégrée, une sur PCI Express 1x).
      Mais pas sûr que le reste suive :-)
  • # Mon expérience à moi

    Posté par . Évalué à 6.

    La carte et le driver comptent énormément.

    On aura pas du tout les même résultats avec une carte Marvell et une carte Intel, par exemple, tout simplement parce que la carte Intel fait énormément de boulot elle-même (et que le driver est bien écrit, pas trop d'interruptions, etc).

    C'est donc à prendre en compte dans les tests.

    En fonction de la quantité de règles, et de la mémoire disponible, il y a des paramètres iptables à ajuster. Notamment, par défaut, les tables de conntrack sont stockées dans une table de hash dont chaque élément contient 8 entrée de conntrack. On peut beaucoup accélérer les choses en n'en stockant qu'une par hash, et en augmentant le nombre de hash utilisables (qui est calculé en fonction de la mémoire mais qui plafonne assez vite). Tout se fait à coup de sysctl et d'options de modules, voir http://www.wallfire.org/misc/netfilter_conntrack_perf.txt

    Enfin, il faut prendre garde à évaluer non seulement la bande passante, mais aussi et surtout le nombre de paquets par seconde : c'est comme ça qu'on évalue les performances d'un routeur.

    Dans les tests, je te suggère de prévoir plusieurs jeux de paquets (a rejouer avec tcpreplay, plusieurs fois, pour lisser les résultats et éviter les gags du genre cron qui tourne, phases de la lune, rafale de neutrinos, etc). Parmi eux, prévoir du NAT, plusieurs IP internes si possible, et plusieurs "profils" (petits paquets, gros paquets, avec ou sans fragmentation, grand nombre de connexions genre p2p...).


    Mais ce genre de bench est toujours intéressant.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.