VLAN Access-List (VACL)

cisco-catalyst-2950-switchLes ACLs (Access Control Lists) traditionnelles, aussi parfois appelées RACL (Router-based ACL) nous permettent de filtrer du trafic qui passe d’un réseau à un autre, donc dans le cas de VLANs, … le trafic qui est routé d’un VLAN à l’autre. En aucun cas celles-ci ne permettent de filtrer le trafic qui circule au sein d’un VLAN. Pourtant … c’est faisable…

Pour cela on fait appel aux VACLs (Vlan Access Control List), celles-ci, une fois appliquées à un VLAN vont nous permettre d’autoriser ou non la propagation d’une trame et même éventuellement de contrecarrer la logique de commutation du switch en redirigeant celle-ci vers une interface spécifique.

Voici comment configurer ces VACLs…

La topologie

vacl

Nous avons ici trois routeurs, qui serviront ici de simples hôtes dans un VLAN.

  • R1 : 192.168.0.1/24
  • R2 : 192.168.0.2/24
  • R3 : 192.168.0.3/24

Le switch (c3750-1) est ici l’unique élément intéressant. Afin de concentrer le config sur les VACLs, tous les ports de celui-ci sont placées dans le VLAN10, en mode accès.

Configuration initiale du switch

3750-1(config)#vlan 10
3750-1(config-vlan)#exit
3750-1(config)#interface range fastEthernet1/0/1-24
3750-1(config-if-range)#switchport mode access
3750-1(config-if-range)#switchport access vlan 10
3750-1(config-if-range)#spanning-tree portfast
3750-1(config-if-range)#exit

Petits tests de routine, R1,R2 et R3 doivent pouvoir communiquer sans problème…

R1#ping 192.168.0.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
R1#
R1#ping 192.168.0.3

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
R1#
R2#ping 192.168.0.3

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/4 ms
R2#

Passons maintenant aux VACLs…

Objectif de la configuration

Alors que sans VACLs, les trois routeurs peuvent communiquer entre eux sans problème, nous allons faire en sorte que R1 puisse communiquer avec R2 et R3 … mais que R2 et R3 ne puissent pas communiquer entre eux.

Configuration de la VACL

De manière générale, une VACL fonctionne sur un principe similaire à celui des route-maps. Il s’agit d’une liste ordonnée de règles, chacune ayant un numéro de séquence. Pour chacune de ces règles nous devons identifier le trafic correspondant à laide d’une clause « match », à laquelle nous ferons correspondre une « action » qui peut être l’une des trois suivantes:

  • forward: le trafic est traité normalement en suivant la logique de commutation du switch.
  • drop: le trafic est rejeté.
  • redirect: le trafic est redirigé vers une interface spécifique, indépendamment de la logique de commutation du switch.

Les clauses « match » utilisent des ACL (soit IP, soit MAC). C’est donc par là que nous devrons commencer.

Chose importante… A l’instar d’une ACL classique, les VACL rejettent tout ce qui n’est pas permis. Une VACL sans règle « forward » bloquera tout simplement tout le trafic dans le vlan donné.

Etape n°1 : Créer une ACL (classique) pour identifier le trafic à traiter

Attention à la confusion, l’ACL sert ici à identifier un trafic spécifique. Il faut donc qu’une règle « permit » corresponde à ce que l’ont souhaite rejeter ou autoriser, indépendamment de l’action. Ici, ce que nous voulons identifier, c’est le trafic entre R2 et R3, parce que nous voulons le bloquer. Donc il faut une règle permit qui y corresponde.

3750-1(config)#ip access-list extended VLAN10
3750-1(config-ext-nacl)#permit ip host 192.168.0.2 host 192.168.0.3
3750-1(config-ext-nacl)#permit ip host 192.168.0.3 host 192.168.0.2
3750-1(config-ext-nacl)#exit

Etape n°2 : Créer la VACL pour associer des « match » à des « action »

Nous allons donc créer ici une Vlan Access Map (l’élément qui combine les matches avec les actions), munie de deux règles.

  1. Le trafic correspondant à l’ACL VLAN10 doit être « droppé » (n° de séquence 10)
  2. Le reste du trafic doit être « forwardé » (n° de séquence 20)
3750-1(config)#vlan access-map VMAP-VLAN10 10
3750-1(config-access-map)#match ip address VLAN10
3750-1(config-access-map)#action drop
3750-1(config-access-map)#exit
3750-1(config)#vlan access-map VMAP-VLAN10 20
3750-1(config-access-map)#action forward
3750-1(config-access-map)#exit

Etape n°3 : Appliquer la VACL au(x) VLAN(s) désiré(s)

Il ne reste plus qu’à appliquer ces règles au Vlan 10.

3750-1(config)#vlan filter VMAP-VLAN10 vlan-list 10

Test de la configuration

Si tout se passe comme prévu, un ping entre R1 et R2, ou entre R1 et R3 devrait fonctionner, tandis que entre R2 et R3, le trafic devrait être bloqué…

R1#ping 192.168.0.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
R1#
R1#
R1#ping 192.168.0.3

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/4 ms
R1#
R2#ping 192.168.0.3

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.3, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
R2#

Tout fonctionne comme prévu! Nous arrivons donc bien ici à filtrer du trafic au sein du VLAN10, chose impossible avec les ACLs classiques.

VN:F [1.9.22_1171]
Rating: 9.9/10 (14 votes cast)
VLAN Access-List (VACL), 9.9 out of 10 based on 14 ratings
Posted in CCNP R&S, CCNP Switch, Certifications, Cisco, La pratique, Switching
Tags: , , , , ,
10 commentaires sur “VLAN Access-List (VACL)
  1. Silky dit :

    Au top ! comme toujours ! merci !

  2. Juan dit :

    Super, je ne connaissais pas du tout

  3. Jul dit :

    « Le trafic correspondant à l’ACL VLAN10 doit être « droppé » (n° de séquence 10) »

    Ce serait le trafic correspondant au VLAN10, pas à l’ACL, non?

  4. Miyondre dit :

    C’est une merveille !! Vraiment, encore une fois de plus merci merci merci pour tout.

  5. Yvain leymard dit :

    Alors là je suis vraiment bleuflé dommage qu’on ne puisse pas le tester avec packet tracer. Pouvez vous nous donner le nom du simulateur que vous utilisez. Encore merci

    • A ma connaissance aucun simulateur ne prend ces fonctionnalités en charge. Seuls de vrais IOS le permettent, ce qui laisse peu de choix si ce n’est du vrai matériel.

  6. Cyril MEMVOUTA dit :

    super tres cool

  7. Joachim Joel dit :

    Merci, Pour le tuto, mais pourquoi faire des permits et ne pouvais-t-on pas dire

    Merci beaucoup pour le transfert de connaissance.

  8. RHAITI_AZZ dit :

    Bravo et merci..

Laisser un commentaire

Visit Us On FacebookVisit Us On GooglePlusVisit Us On TwitterVisit Us On LinkedinVisit Us On YoutubeCheck Our Feed

Archives

Connexion à WordPress protégée par Clef
%d blogueurs aiment cette page :