Blog CCIE

« Ce qu'on obtient en atteignant nos objectifs n'est pas aussi important que ce que l'on devient en les atteignant. » - Zig Ziglar

Mirroring de port avec SPAN & RSPAN

with 8 comments

Aujourd’hui, un client que je suis depuis un moment m’a contacté pour exprimer un besoin assez spécifique: permettre à un IDS de détecter une potentielle tentative d’attaque en général en provenance d’Internet et/ou du routage inter-VLAN en utilisant une solution basée sur Snort.

L’entreprise ne voulant pas faire de frais supplémentaires en achetant des équipements ou extensions IDS/IPS, nous allons devoir respecter cette contrainte et faire avec ce que nous avons, des équipements réseaux Cisco.

Topologie

Voici la topologie type à laquelle nous avons à faire:

RSPAN topology

Le routeur que vous voyez ici a déjà des sous-interfaces de configurées pour assurer le routage inter-VLAN. Il permet également aux hôtes via du NAT de pouvoir accéder à Internet.

De façon assez logique, pour permettre le bon travail de cette solution, il faudra vous assurer que l’IDS recevra systématiquement une copie des trames qui émanent ou sont destinées au routeur(traffic Internet et routage inter-VLAN).

SPAN et RSPAN

Et c’est là où SPAN et RSPAN interviennent!

Ces deux technologies vont vous permettre de faire ce qu’on appelle du port-mirroring, c’est-à-dire vous permettre de pouvoir répliquer en temps réel des trames qui sont envoyées et reçues sur une source donnée(un port) et donc de les répliquer(au choix sur un VLAN ou sur un port directement selon le cas). En réalité, selon le cas de figure, nous allons faire un choix entre SPAN et RSPAN.

SPAN remplit sa tâche quand vous faites du port-mirroring d’un port à un autre sur le même switch(si vous vous limitez à l’utilisation de SPAN, vous ne pourrez répliquer l’information qu’uniquement sur un autre port local de votre switch).

RSPAN quant à lui nous permet d’envoyer nos données non pas sur un port local uniquement mais sur une VLAN dédiée au remote span, ce qui nous permettra ici de pouvoir faire suivre la réplication du traffic d’un switch à un autre.

Choix de la technologie

Si vous examinez avec attention le schéma de topologie que nous avons, vous vous apercevez que nous n’aurons en réalité pas d’autres choix que d’utiliser du RSPAN, tout simplement car l’IDS n’est pas connecté directement au switch qui est au plus près du routeur.

Nous devrons donc nécessairement faire « suivre » le traffic capturé de Switch1 à Switch2 par le biais d’une VLAN dédiée au remote-span. Cela sera la VLAN 99 qui sera choisie par exemple pour jouer le rôle de cette VLAN dédiée.

Enfin, si l’on veut avoir le traffic inter-VLAN et Internet nécessairement répliqué vers l’IDS, on s’appliquera à se rapprocher le plus du routeur, c’est-à-dire le port fa0/1 de Switch1.

Juste avant de passer à de la configuration pure et dure, résumons:

  • Switch 1
    • Capture du traffic source port fa0/1 en envoi et en réception(TX et RX)
    • Envoi de ce traffic vers la VLAN remote-span 99
  • Switch 2
    • Capture du traffic en provenance du VLAN remote-span 99
    • Envoi vers le port local du switch fa0/2

Configuration

Côté configuration, vous pouvez penser à tort que c’est compliqué.

Et bien, la réalité est qu’en l’espace d’une dizaine de commandes et si vous avez bien entendu tout planifié correctement, vous pouvez mettre en place ce mécanisme sans aucun problème.

Switch 1

! On crée la VLAN et on la désigne comme VLAN de remote-span
Switch1(config)# vlan 99
Switch1(config-vlan)# remote-span
Switch1(config-vlan)# exit
! On caractérise la source en TX et en RX
Switch1(config)# monitor session 1 source interface fa0/1 both
! Et la destination, ici la VLAN 99
! Le reflector-port nous permet de nous passer de limitations
! matérielles qui nous empêcheraient de répliquer le traffic
! vers le RSPAN VLAN. Ce port sera en le désignant comme
! reflector non disponible pour tout type de traffic. On désigne
! donc généralement donc un port non-utilisé.
Switch1(config)# monitor session 1 destination remote vlan 99 reflector-port fa0/24
! On filtre également la VLAN 20 pour éviter la transmission en
! double de trames à destination ou venant du serveur IDS.
Switch1(config)# monitor session 1 filter vlan 20

 

Switch 2

! Même chose, on crée la VLAN de remote-span
Switch2(config)# vlan 99
Switch2(config-vlan)# remote-span
Switch2(config-vlan)# exit
! On capture les trames venant de la VLAN de remote-span
Switch2(config)# monitor session 1 source remote vlan 99
! On envoie sur le port où est connecté le serveur IDS
Switch2(config)# monitor session 1 destination interface fa0/2

Et voilà, nous avons déjà terminé cette implémentation!

Pour vérifier que tout cela fonctionne bien, vous pouvez taper la commande en mode privilégié d’exécution sur les deux switchs:

Switch1# show monitor session 1
Session 1
---------
Source Ports:
    RX Only:       None
    TX Only:       None
    Both:          Fa0/1
Dest RSPAN VLAN:   99
Switch2# show monitor session 1
Session 1
---------
Source Ports:
    RX Only:       None
    TX Only:       None
    Both:          None
Source RSPAN VLAN: 99
Destination Ports : fa0/2

La force de ce type de technologie est qu’elle est totalement native pour les switchs Cisco(selon les modèles et l’IOS utilisés bien entendu).

Sans rien toucher à la topologie physique et en n’engageant aucun frais supplémentaires, nous avons répondu au besoin du client.

– Julien

Written by Julien BERTON

octobre 2nd, 2011 at 9:57 pm

Posted in Projets

Tagged with , , ,

8 Responses to 'Mirroring de port avec SPAN & RSPAN'

Subscribe to comments with RSS or TrackBack to 'Mirroring de port avec SPAN & RSPAN'.

  1. Bonjour monsieur Berton,

    Savez-vous si d’autres fabricants de switch (autre que Cisco) supportent le RSPAN ? Si oui, pouvez-vous me donner des exemples ? Autre question, est-ce que le RSPAN est une fonction impliquant le Layer 3 ?

    Merci,

    Michel

    Michel

    23 Août 12 at 22 h 46 min

  2. Bonjour Michel,

    Les fonctionnalités SPAN, RSPAN et ERSPAN opèrent purement au niveau de la couche 2.
    D’après mes recherches, les concurrents proposent des alternatives comme
    * Juniper http://www.juniper.net/techpubs/en_US/junos10.4/topics/concept/layer-2-services-port-mirroring-overview.html
    * Brocade http://www.brocade.com/support/Product_Manuals/ServerIron_SwitchRouterGuide/Global_Features.2.8.html#24933

    Les features de Port Mirroring étant très propriétaires, les modes de fonctionnement et d’implémentations peuvent bien entendu varier d’un constructeur à un autre.

    Julien BERTON

    24 Août 12 at 11 h 04 min

  3. Hello !
    Tout d’abord merci pour cet article, clair et concis :o)

    Je me pose toutefois une question: je ne comprends pas trop l’utilisation ici d’un « reflector-port » (fa0/24).
    Cela veut-il dire que le port est désormais inutilisable ?

    Armand

    4 Nov 13 at 15 h 54 min

  4. Bonjour Julien .

    Quel est l’intéret du reflector-port ?

    Sinon le reste est clair . Je suis en route pour le ccie également.

    Thanks

    alassane

    12 Mar 15 at 17 h 12 min

  5. Bonjour,
    « monitor session 1 filter vlan 20 »
    si vous faites cela, c’est pour indiquer que de tous les VLANs transitant sur un port en trunk, vous ne voulez que le 20. C’est bien ce que vous cherchez ?
    Merci
    Gad

    gad

    25 Oct 15 at 21 h 57 min

  6. Bonjour,

    J’ai une question, peut on utiliser comme port source une interface VLAN à la place d’une interface physique ?
    En effet, on me demande de faire du remote span sur un VLAN spécifique et je ne suis pas sûr que ce soit la bonne démarche.

    Marc

    27 Jan 16 at 15 h 19 min

  7. Svp j ai besoin de la ios d switch que vous avez utilise

    Imy

    1 Fév 17 at 13 h 24 min

  8. Bonjour

    pour ma part,

    monitor session 1 filter vlan 20
    monitor session 1 filter vlan 10
    monitor session 1 filter vlan 30

    signifirait que les trames de ces Vlans ne seront pas mélangées avec celle du vlan 99 qui est ici utilisée pour le monitoring.

    C’est pour une question de clarter et de précision.
    Je ne suis qu’un CCNA. Excusez moi.

    Momo

    28 Fév 18 at 12 h 03 min

Leave a Reply