[Bda] NQR : le successeur d'UBCR

skaya@enix.org skaya@enix.org
Fri, 06 Apr 2001 08:56:06 +0200 (CEST)


puisque UBCR (le répéteur de broadcast) ne donnait pas entièrement
satisfaction, j'ai écrit autre chose ... voici NQR, le NetQueue Repeater.

UBCR utilisait la libpcap et la libnet, et était donc très portable
(ce qui permettait d'utiliser une Sun, une Alpha ... comme gateway).
Par contre, UBCR était aussi assez cher en temps CPU (cet inconvénient
venait directement de la libpcap).

Voici donc le successeur d'UBCR : NQR. Pour intercepter les paquets,
il se base sur la technologie NetFilter de Linux, qui permet de placer
dans une règle ipchains ou iptables la règle "QUEUE", qui signifie
"envoyer ce paquet en userspace". En clair, il suffit de faire un petit
"iptables -A input -p icmp -j QUEUE" pour recevoir dans un programme
tout le traffic ICMP... 

Le programme que j'ai écrit permet de répéter le traffic reçu par la
NetLink Socket vers une ou plusieurs interfaces quelconque (en utilisant
l'interface link layer de la libnet). Son overhead devrait etre beaucoup
plus petit.

Il faudrait encore nettoyer un peu le code, en particulier au niveau
de la génération des paquets, il y a probablement du travail à faire
(récupération de l'adresse MAC pour générer des paquets avec une
adresse MAC correcte, par exemple).

S'il y a des volontaires pour décortiquer un peu ce que j'ai fait, je
mettrai le source en ligne.

a+
Skaya

--------------------------------------------
Un barbone ad un altro: "Ieri ho mangiato un tacchino!". "E dove l'hai
trovato?".  "In una scarpina!".
                -- Da it.hobby.umorismo