Frame-Relay au travers d’un tunnel GRE

Ayant pour but d’améliorer un labo Cisco existant, je souhaitais pouvoir disposer d’une structure Frame-Relay pour 16 routeurs. Ce n’est pas chose aisée, puisqu’il faut pour chacun des routeurs qui y sera connecté une interface sérielle. Plusieurs solutions étaient possible:

  • Disposer d’un routeur muni de 16 interfaces sérielles (donc disposant de 8 slots WIC pour y mettre des interfaces WIC-2T).
  • Deux routeurs disposant chacun de 8 interfaces sérielles et les interconnecter par le port auxiliaire.
  • Deux routeurs munis de 8 interfaces sérielles et les interconnecter par un réseau IP en utilisant un tunnel GRE pour transporter les trames Frame-Relay d’un côté à l’autre. (Solution choisie ici)
  • Avoir deux routeurs ayant chacun 8 interfaces sérielles et en sacrifier une sur chacun pour les interconnecter par ces mêmes interfaces (techniquement mieux que la solution des ports auxiliaires, mais réduit le nombre d’interfaces frame-relay disponibles).

Pourquoi avoir choisi la solution du tunnel GRE ?

D’un part, les 8 interfaces sérielles des deux routeurs sont conservées pour y connecter les routeurs en frame-relay. D’autre part, l’utilisation d’un tunnel GRE est plus « fun » à mettre en place et surtout permet, le cas échéant, d’étendre le réseau frame-relay en ajoutant un nouveau routeur muni d’interfaces sérielles et en rajoutant de nouveaux tunnels GRE.

La topologie de test

FRoE

Frame1 et Frame2 représentent les deux routeurs munis de 8 interfaces sérielles et qui feront office de switch FRame-Relay. Ils sont interconnectés par leurs interfaces ethernet à l’aide d’un switch. R3, R4, R5 et R6 représentent des routeurs utilisant l’infrastructure frame-relay.

Le « challenge » est de faire en sorte que le réseau frame-relay permette d’interconnecter tous les routeurs entre-eux. Qu’ils soient physiquement connectés au même switch frame-relay ou pas.

Comprendre le jeu des DLCIs

Pour rappel, le DLCI est l’identifiant du circuit virtuel indiqué dans la trame frame-relay, ce qui permet aux switchs frame-relay de relayer l’information à l’endroit souhaité  comme s’il y avait une liaison direct entre les source et la destination.

Pour bien comprendre la mise en place, voici un schéma de principe des DLCIs qui seront utilisés:

FRoE-schema

Le schéma ci-dessous représente les différents circuits virtuels, chacun ayant une couleur spécifique. Sur chaque liaision j’ai indiqué l’identifiant du DLCI correspondant (le choix de la valeur a peu d’importance, c’est le passage d’un DLCI à l’autre qui est crucial).

Prenons par exemple une communication de R3 à R6:

  • A la sortie de R3, la trame est identifiée par le DLCI 306
  • FR1 quand il reçoit une trame sur l’interface S0/0 et sur le DLCI 306, il la transfère au tunnel GRE avec le DLCI 36.
  • Quand FR2 reçoit la tramme du tunnel GRE sur le DLCI 36, il la transmet sur son interface S0/1 avec le DLCI 603.

N’oubliez pas qu’un DLCI n’a qu’une portée locale, cela signifie qu’il n’a de sens que sur la liaision concernée. Notre objectif ici est de correctement configurer les deux switchs frame-relay afin qu’ils transfèrent correctement les trames d’un bout à l’autre.

Méthode de configuration

Afin d’y voir plus clair, voici la démarche que j’ai mis en place pour configurer les deux switches frame-relay.

  1. Configurer les interfaces ethernet de Frame1 et Frame 2 et tester la connectivité.
  2. Configurer le tunnel GRE sur Frame1 et Frame2 et tester la connectivité
  3. Activer le switching frame-relay
  4. Configurer les interfaces sérielles (encapsulation frame-relay, type d’interface DCE, clock rate, no shut)
  5. Configurer les routes frame-relays.

Configuration

Etape n°1

Sur Frame 1

Frame1(config)#interface FastEthernet0/0
Frame1(config-if)#ip address 10.0.0.1 255.255.255.0
Frame1(config-if)#no shutdown

Sur Frame 2

Frame2(config)#interface FastEthernet0/0
Frame2(config-if)#ip address 10.0.0.2 255.255.255.0
FRame2(config-if)#no shutdown

Etape n°2

Sur Frame1

Frame1(config)#interface Tunnel0
Frame1(config-if)#ip address 192.168.0.1 255.255.255.252
Frame1(config-if)#tunnel source FastEthernet0/0
Frame1(config-if)#tunnel destination 10.0.0.2

Sur Frame1

Frame2(config)#interface Tunnel0
Frame2(config-if)#ip address 192.168.0.2 255.255.255.252
Frame2(config-if)#tunnel source FastEthernet0/0
Frame2(config-if)#tunnel destination 10.0.0.1

Etape n°3

Sur Frame 1

Frame1(config)#frame-relay switching

Sur Frame 2

Frame2(config)#frame-relay switching

Etapes 4 et 5

Sur Frame 1

Frame1(config)#interface Serial0/0
Frame1(config-if)#encapsulation frame-relay
Frame1(config-if)#clock rate 2000000
Frame1(config-if)#frame-relay intf-type dce
Frame1(config-if)#frame-relay route 304 interface Serial0/1 403
Frame1(config-if)#frame-relay route 305 interface Tunnel0 35
Frame1(config-if)#frame-relay route 306 interface Tunnel0 36
Frame1(config-if)#no shutdown
Frame1(config-if)#exit
Frame1(config)#interface Serial0/1
Frame1(config-if)#encapsulation frame-relay
Frame1(config-if)#clock rate 2000000
Frame1(config-if)#frame-relay intf-type dce
Frame1(config-if)#frame-relay route 403 interface Serial0/0 304
Frame1(config-if)#frame-relay route 405 interface Tunnel0 45
Frame1(config-if)#frame-relay route 406 interface Tunnel0 46
Frame1(config-if)#no shutdown
Frame1(config-if)#exit

Sur Frame 2

Frame2(config)#interface Serial0/0
Frame2(config-if)#encapsulation frame-relay
Frame2(config-if)#clock rate 2000000
Frame2(config-if)#frame-relay intf-type dce
Frame2(config-if)#frame-relay route 506 interface Serial0/1 605
Frame2(config-if)#frame-relay route 503 interface Tunnel0 35
Frame2(config-if)#frame-relay route 504 interface Tunnel0 45
Frame2(config-if)#no shutdown
Frame2(config-if)#exit
Frame2(config)#interface Serial0/1
Frame2(config-if)#encapsulation frame-relay
Frame2(config-if)#clock rate 2000000
Frame2(config-if)#frame-relay intf-type dce
Frame2(config-if)#frame-relay route 605 interface Serial0/0 506
Frame2(config-if)#frame-relay route 603 interface Tunnel0 36
Frame2(config-if)#frame-relay route 604 interface Tunnel0 46
Frame2(config-if)#no shutdown
Frame2(config-if)#exit

Toute la difficulté réside dans la commande « frame-relay route ». De manière générale sa syntaxe est la suivante:

...(config-if)# frame-relay route <DLCI entrée> interface <Interface sortie> <DLCI sortie>

Ensuite il suffit de se dire que pour chaque interconnexion il faut un canal dédié (un circui virtuel). Si A->B utilise le DLCI 100, sur la même liaison, B->A doit aussi utiliser le DLCI 100.

Vérification

La commande « show frame-relay route » permet d’afficher le résultat de notre configuration:

Sur Frame 1

Frame1#show frame-relay route
Input Intf Input Dlci Output Intf Output Dlci Status
Serial0/0   304        Serial0/1   403      active
Serial0/0   305        Tunnel0      35      active
Serial0/0   306        Tunnel0      36      active
Serial0/1   405        Tunnel0      45      active
Serial0/1   406        Tunnel0      46      active
Serial0/1   403        Serial0/0   304      active
Tunnel0      35        Serial0/0   305      active
Tunnel0      36        Serial0/0   306      active
Tunnel0      45        Serial0/0   405      active
Tunnel0      46        Serial0/0   406      active
Frame1#

Sure Frame 2

Frame2#show frame-relay route
Input Intf Input Dlci Output Intf Output Dlci Status
Serial0/0   503        Tunnel0      35     active
Serial0/0   504        Tunnel0      45     active
Serial0/0   506        Serial0/1   605     active
Serial0/1   603        Tunnel0      36     active
Serial0/1   604        Tunnel0      46     active
Serial0/1   605        Serial0/0   506     active
Tunnel0      35        Serial0/0   503     active
Tunnel0      36        Serial0/1   603     active
Tunnel0      45        Serial0/0   504     active
Tunnel0      46        Serial0/1   604     active
Frame2#

Comment lire ces tables ? C’est simple. Si une trame entre sur l’interface <Input Intf> avec le DLCI <Input DLCI> elle sera envoyée par l’interface <Output Intf> avec le DLCI <Output DLCI>.

Si une route est indiquée comme inactive, c’est qu’il y a probablement une erreur dans la configuration de celle-ci.

4 Comments on “Frame-Relay au travers d’un tunnel GRE

  1. Merci pour ces tutos.
    Petites remarques :
    – N’y aurait il pas une erreur sur l’affichage du « show frame-relay route » pour Frame1 (Nbre de Serial0/1 en Input) ?
    – Ne faudrait il pas préciser qu’il faut aussi configurer les serials de R3,R4,R5 et R6 en « encapsulation frame-relay » pour que cela fonctionne ?

    • En effet il y avait une erreur dans le show frame-relay route. Voilà ce qui arrive quand on écrit tout au lieu de faire un copier coller de la sortie réelle du routeur. C’est corrigé, merci!

      Sinon pour R3, R4, R5 et R6, je n’ai pas parlé de leur configuration parce que ce n’est pas le sujet ici. C’est vrai que quoi qu’il arrive, au minimum on devra définir l’encapsulation frame-relay sur les interfaces connectées à FRAME1 ou FRAME2. Mais en dehors de ça, tout le reste dépend de la topologie que l’on veut utiliser dessus (full-mesh, partial-mesh, hub&spoke, point-to-point…).

  2. Très intéressant.

    Merci pour cet article très bien expliqué.