Cisco France Blog

J'ai testĂ© pour vous : les EVC (ou comment bridger sur un ASR 1000 et bien plus encore…)

4 min read



J’ai mis la main sur un petit stock d’ASR 1000 et comme toujours je vais essayer de vous faire profiter de quelques instants de bonheur dans mon lab 🙂 Tout est venu de la demande d’un client qui me demandait si l’on pouvait bridger sur l’ASR 1000… On avait depuis presque le dĂ©but de la plateforme possibilitĂ© de faire un bridge simple entre 2 sous-interfaces ou 2 interfaces (sans gestion de table de forwarding L2) mais rien de transcendant. Ensuite est arrivĂ© le support des EVC (Ethernet Virtual Circuits) qui permettent de faire plus ou moins tout ce qu’on veut sur Ethernet, qui a Ă©tĂ© ensuite complĂ©tĂ© par l’arrivĂ©e de VPLS fin 2011. Donc en matière de bridging on sait faire pas mal de choses sur l’ASR 1000, mais ceux qui s’attendent Ă  le faire via un bĂŞte “switchport” vont ĂŞtre un peu dĂ©boussolĂ©s. Ce post aidera un peu j’espère!

Un peu de théorie

Les EVC c’est quoi? Ceux qui ont jouĂ© avec nos switchs ME ou nos cartes ES (sur 7600 ou 6500) connaissent dĂ©jĂ . Il s’agit selon la dĂ©finition du Metro-Ethernet forum (MEF) de l’association de plusieurs interfaces Ethernet qui va nous permettre de crĂ©er un service point-Ă -point ou multipoint-Ă -multipoint. Maintenant en pratique chez Cisco ca va se traduire par un ensemble de commandes qui vont permettre de manipuler Ethernet sur un Ă©quipement et qui vont un peu au delĂ  du simple “switchport”. Tout cela nous arrive des aficionados du Metro-Ethernet qui avaient les besoins les plus poussĂ©s en la matière. On va sur l’Ă©quipement crĂ©er des Ethernet Flow Points (EFP – toujours selon la dĂ©finition du MEF) qui vont ĂŞtre le point de dĂ©part de toute configuration de service. On va donc dĂ©finir:

  • ce qui va tomber dans cet EFP (par exemple un simple VLAN, un ensemble de VLAN, une chaĂ®ne de 2 VLANs pour du QinQ, un champ CoS…)
  • ce qu’on va offrir comme service sur cet EFP (bridger, manipulation de trames…)

On va crĂ©er ces EFP via la commande “service instance …” et c’est certainement la raison pour laquelle on utilisera peut-ĂŞtre plus volontiers le terme de “service instance” que d’EFP. C’est donc le terme de “service instance” que je vais utiliser dans le reste de ce post. Pour bridger il va donc falloir tout simplement dĂ©finir des “service instances” et les placer dans le mĂŞme bridge-domain.

Objectif du lab

Montrer simplement le fonctionnement d’EVC sur l’ASR 1000 et bridger entre 2 sous-interfaces.

Diagramme du lab

Matériel et IOS utilisé

2 ASR 1002 et un 1 ASR 1004 (RP1) en IOS-XE 3.7.0S (Advanced Enterprise Services) – asr1000rp1-adventerprisek9.03.07.00.S.152-4.S.bin

Configuration

Commençons par configurer simplement ASR1 et ASR3

! ASR1
interface GigabitEthernet0/0/0.10
 encapsulation dot1Q 10
 ip address 100.0.0.1 255.255.255.0
!ASR3
interface GigabitEthernet0/0/0.20
 encapsulation dot1Q 20
 ip address 100.0.0.3 255.255.255.0

LĂ , il n’y a rien de compliquĂ© 🙂 C’est maintenant qu’il faut ĂŞtre un peu attentif parce qu’on va attaquer la configuration d’ASR2. Je vais dĂ©finir sur Gi0/0/0 la “service instance” 1000 qui va matcher le VLAN 10. Sur Gi0/0/1 je vais configurer la “service instance” 1001 qui va matcher le VLAN 20. Je vais placer ces 2 “service instances” dans le mĂŞme bridge-domain sur lequel on peut configurer quelques paramètres: ici j’ai mis de l’IGMP snooping et changĂ© le temps de prĂ©sence par dĂ©faut dans la table de bridging. Il y a une dernière petite chose Ă  faire: manipuler les tags dot1q pour que ça ait une cohĂ©rence! Contrairement Ă  un bĂŞte “switchport access vlan …” le routeur ne vas supprimer le tag 802.1Q quand il est matchĂ© par la “service instance”. Donc si l’on ne fait rien on bridge bien mais ce qui arrive sur le VLAN 10 sur l’interface Gi0/0/0 repart sur le VLAN 10 sur Gi0/0/1 (au lieu du VLAN 20). Il va donc falloir supprimer les en-tĂŞtes 802.1Q quand les trames arrivent et les rĂ©-appliquer quand elles ressortent: c’est fait par les commandes “rewrite” ci-dessous. Ne pas oublier le “symmetric” Ă  la fin!

interface GigabitEthernet0/0/0
 description TEST-EVC
 no ip address
 negotiation auto
 cdp enable
 service instance 1000 ethernet
  encapsulation dot1q 10
  rewrite ingress tag pop 1 symmetric
  bridge-domain 50
 !
!
interface GigabitEthernet0/0/1
 description TEST-EVC
 no ip address
 negotiation auto
 cdp enable
 service instance 1001 ethernet
  encapsulation dot1q 20
  rewrite ingress tag pop 1 symmetric
  bridge-domain 50
!
bridge-domain 50
 mac aging-time 600
 ip igmp snooping

Notez bien que j’aurais pu utiliser le mĂŞme numĂ©ro de “service instance” pour les 2 interfaces. La notion de “service instance” est purement locale Ă  l’interface en question. En revanche le numĂ©ro de bridge-domain est global puisqu’il permet de faire correspondre entre elles les diffĂ©rentes “service instances” crĂ©Ă©es.

Pour voir les “service instances” crĂ©Ă©s:

ASR2#sh ethernet service instance
Identifier Type Interface State CE-Vlans
1000 static GigabitEthernet0/0/0 Up
1001 static GigabitEthernet0/0/1 Up

Je peux aussi regarder le dĂ©tail d’une “service instance”:

ASR2#sh ethernet service instance id 1000 interface gi0/0/0 detail
Service Instance ID: 1000
Service Instance Type: static
Associated Interface: GigabitEthernet0/0/0
Associated EVC:
L2protocol drop
CE-Vlans:
Encapsulation: dot1q 10 vlan protocol type 0x8100
Rewrite: ingress tag pop 1 symmetric
Interface Dot1q Tunnel Ethertype: 0x8100
State: Up
EFP Statistics:
 Pkts In Bytes In Pkts Out Bytes Out
 43 3226 18 1658
EFP Microblocks:
****************
Microblock type: Bridge-domain
Bridge-domain: 50
Microblock type: L2Mcast
L2 Multicast GID: 1

Microblock type: dhcp_snoop
L2 Multicast GID: 1

RĂ©sultats

Je me place simplement sur ASR1 et je fais un ping vers ASR3 (adresse sur le mĂŞme lien-local) et on voit bien que l’Ă©quipement est joignable:

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

Et un petit traceroute pour bien se rendre compte que personne ne route au milieu:

ASR1#traceroute 100.0.0.3
Type escape sequence to abort.
Tracing the route to 100.0.0.3
VRF info: (vrf in name/id, vrf out name/id)
 1 100.0.0.3 2 msec * 1 msec

Et je peux voir les “service instances” configurĂ©es dans le bridge domain 50 et les MAC apprises:

ASR2#sh bridge-domain 50
Bridge-domain 50 (2 ports in all)
State: UP Mac learning: Enabled
Aging-Timer: 600 second(s)
 GigabitEthernet0/0/0 service instance 1000
 GigabitEthernet0/0/1 service instance 1001
 MAC address Policy Tag Age Pseudoport
 F866.F25E.7400 forward dynamic 208 GigabitEthernet0/0/1.EFP1001
 B414.8901.AB00 forward dynamic 109 GigabitEthernet0/0/0.EFP1000

Conclusion

Certes ceux qui voulaient faire un simple switchport devront changer un peu leurs habitudes mais il faut bien se rendre compte de la puissance qui est disponible grâce au support des EVC. Au delĂ  de la commutation on peut manipuler largement les en-tĂŞtes 802.1Q et s’adapter quasiment Ă  tous les cas de figure. Tout cela est rendu possible grâce aux “service instances” qui sont une couche d’abstraction permettant de ne plus associer obligatoirement le bridging Ă  un numĂ©ro de VLAN.

Références

Guide de configuration des EVC sur ASR 1000

Page de l’ASR 1000

Authors

Jerome Durand

Technical Solutions Architect

Laisser un commentaire


3 commentaires

  1. Bonjour et merci pour cet article.
    J'imagine que la méthode est généralisable ? J'entends par là utiliser par ex. 3 interfaces physiques sur l'ASR2. De même peut-on configurer une IP à l'ASR2 (par ex. 100.0.0.2) qui soit pingable par les 2 autres ASR ?
    Merci !

    • Bonjour Florent,
      Oui bien sûr tu mets autant d'interfaces que tu veux dans ton bridge domain. Après si tu autorises la communication Ethernet en bridgeant, et que tu veux filtrer au niveau IP, il te faudra rajouter des ACL (IP ou group based), ou du stateful firewalling par exemple.
      A bientot!

  2. Merci encore JĂ©rĂ´me, voivi un document bien fait aussi sur le site “Cisco Support” avec des exemples un petit peu plus poussĂ©s : https://supportforums.cisco.com/docs/DOC-21299