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
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:
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.
- Configurer les interfaces ethernet de Frame1 et Frame 2 et tester la connectivité.
- Configurer le tunnel GRE sur Frame1 et Frame2 et tester la connectivité
- Activer le switching frame-relay
- Configurer les interfaces sérielles (encapsulation frame-relay, type d’interface DCE, clock rate, no shut)
- 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.
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…).
Article excellent !
Très intéressant.
Merci pour cet article très bien expliqué.