Le 2 oct. 07 à 01:08, MADdanny a écrit :

Je vais peut-être (certainement) dire une connerie, mais est ce qu'il
serait possible d'utiliser un GPU de malade (au pif, une 8800 Ultra)
pour ce genre de traitement ? :) Comme ils ont déjà sorti une version
dédiée au calcul, peut être qu'en lui greffant quelque ports gigabit (ou
plus) on pourrait en faire un firewall matériel, non ?

Même avec un GPU puissant, le circuit de gestion reste (ça n'est pas garanti à 100%, je ne suis pas un expert en architecture matérielle) :
- transfert DMA de la carte réseau vers la RAM, sous contrôle du CPU
- transformation par le CPU des paquets réseau dans un format adapté aux calculs via le GPU - transfert DMA vers la VRAM de la carte graphique (similaire à un chargement de texture)
- calcul d'une décision (de routage ou de filtrage) par le GPU
- récupération du résultat par le CPU pour réaliser l'opération effective de filtrage, routage...
- en cas de paquet non dropé,

Le GPU n'est qu'un coprocesseur, ça ne fait pas tous : le CPU restera très chargé, surtout s'il y a besoin de gérer des tables dynamiques de connexions pour faire du "stateful". Pour que l'utilisation d'un GPU soit un plus, il faut que ce soit lui qui s'occupe de la majorité des traitements à effectuer.

Cela ne tiens pas compte :
- du fait qu'il faille trouver un moyen de dédié une partie des calculs sur le GPU, sachant que ça n'est pas toujours possible. - du fait que les GPU actuels font régulièrement des petites erreurs de calcul (l'électronique des GPU est vraiment poussées dans ses recoins). Pour du traitement d'images/vidéos temps réel, de la simulation sur des éléments finis ou des masses de données à analyser, cela n'a pas un grand impact, des erreurs étant tolérables. Pour un firewall, c'est beaucoup plus gênant.

Pour faire des firewalls matériels, je pense qu'il faut plutôt voir du côté des ASIC (puces dédiées à un traitement applicatif donné), voir des FPGA (circuits programmables permettant de créer la puce que l'on veut).

Les constructeurs de routeurs utilisent déjà des ASIC dédiées aux différents traitements de paquets réseau, en particulier toutes les décisions de routage (L2 ou L3), ou de buffering/régulation : pas de passage par le CPU dans ces cas. Cependant dès qu'un traitement un tant soit peu complexe est nécessaire, il est réalisé par le CPU du routeur (ACL, NAT, réponses ICMP, routage IPv6, protocoles haut niveau comme OSPF ou BGP...). Lorsque du filtrage est directement effectué par l'ASIC, le nombre de règles possibles est très limité.

Les FPGA ne sont à ma connaissance pas encore utilisés (ils restent cher). FT s'intéresse à l'analyse temps réelle de trafic via des FPGA pour contrer les DDoS (j'ai vu une offre de stage sur ce sujet), mais je ne sais pas trop ce que cela a donné.

--
Damien alias Schmurtz

---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Reply via email to