Protocol-discovery et filtrage du traffic Peer-to-Peer
Si il y a bien une nuisance courante dans un réseau et qui plus est qui est difficile à endiguer, c’est le traffic généré par les applications basées sur le principe du Peer-to-Peer (Bittorrent, Gnutella, eDonkey, …). Hormis le fait que certaines applications sont souvent utilisées pour du téléchargement illégal, le principe même de leur fonctionnement perturbe aisément une structure, et tout particulièrement en ce qui concerne le point de vue de la connexion Internet.
Pourquoi ? Simplement par ce que dans la plupart des cas, la connexion « Internet » du réseau est de type asymétrique, donc que la bande passante pour le trafic descendant (entrant) est largement supérieure à celle pour le traffic ascendant (sortant) et qu’une application Peer-2-Peer ne se content pas de récupérer des données … mais elle en émet également beaucoup.
Si l’on veut empêcher le traffic Peer-to-peer, on butte généralement rapidement sur le fait que le panel des ports utilisés par ces applications est énorme, et qu’il est difficilement envisageable de les bloquer tous, sous peine d’empêcher d’autres applications de fonctionner correctement.
Cisco apporte un outil efficace sur ses routeurs (pour autant que l’IOS le permette bien entendu). Il s’agit de NBAR « Network-Based Application Recognition », une fonctionnalité qui va analyser les données au delà de la couche réseau ou de la couche de transport afin d’identifier un flux et de pouvoir le catégoriser.
Lorsqu’on utilise NBAR conjointement avec des « class-map » et « policy-map », on peut alors filtrer le traffic identifié.
Voici un configuration simple mais fonctionnelle (basée sur un routeur Cisco 2801 IOS IPBase 15.0M)…
1 – Activer la découverte de protocol sur l’interface où l’on veut appliquer le filtrage
Si on ne l’active pas, le filtrage n’aura pas lieu, simplement parce que le routeur n’ira pas inspecter les flux de données.
Router> enable Router# configure terminal Router(config)# interface fastethernet 0/1 Router(config-if)# ip nbar protocol-discovery Router(config-if)# exit Router(config)#
2 – Créer une « class-map » de sorte à identifier le traffic généré par les applications P2P
On va ici faire en sorte que le traffic identifié comme provenant d’applications utilisant les protocoles Bittorrent, eDonkey, Gnutella ou encore Fasttrack soient catégorisés.
Router(config)# class-map match-any P2P Router(config-cmap)# match protocol bittorrent Router(config-cmap)# match protocol edonkey Router(config-cmap)# match protocol gnutella Router(config-cmap)# match protocol fasttrack Router(config-cmap)# exit Router(config)#
Attention à bien créer une class-map « match-any » … celà signifie que dès qu’une des conditions (ici un des protocoles) est remplie, le traffic est mis dans la classe « P2P ». Par défaut la commande class-map crée une classe « match-all » qui demande que tous les « match » soient vérifiés pour que le traffic soit associé à la classe.
3 – Définition de la police à appliquer sur l’interface
Avant de configurer, ayez bien en tête qu’une police s’applique sur une interface, soit en entrée, soit en sortie ou les deux. Mais qu’une interface ne peut avoir qu’une seule police applique par interface et par sens du traffic.
On va ici créer une police qui filtrera tous les traffic de la classe P2P. Le traffic reconnu par la classe « P2P » sera purement et simplement jeté.
Router(config)# policy-map DROP-P2P Router(config-pmap)# class P2P Router(config-pmap-c)# drop Router(config-pmap-c)# exit Router(config-pmap)# exit Router(config)#
4 – Appliquer la police à l’interface
L’interface utilisée ici est l’interface côté LAN, on va donc filtrer le traffic qui entre sur cette interface
Router(config)# interface fastethernet 0/1 Router(config-if)# service-policy input DROP-P2P Router(config-if)# ^Z Router#
5 – Remarques
- La commande « show policy-map interface fastethernet 0/1 » afficher les stats de la police active sur l’interface.
- Tout le traffic P2P ne sera pas droppé, après quelques tests certains torrents passent, mais à un taux de transfert proche 0 et généralement il s’agissait de torrents « légaux », par exemple pour un téléchargement d’une ISO Ubuntu alors que des tests de téléchargements de torrents « douteux » quant à eux ne démarraient jamais. Toujours est-il que c’est un grand pas vers la suppression de cette nuisance.
- La commande « show ip nbar protocol-discovery » vous en apprendra beaucoup sur les protocoles utilisés et identifiés sur l’interface ou nbar est activé. (traffic HTTP, Skype, ftp …).
je suis en guinée(conakry)
j’appreci vos aides