Monter un réseau VPN MPLS Opérateur – Part. 1

En parallèle de ce site, je suis en train de monter un Lab IPv6 qui sera actif à partir de fin Septembre 2013 (plus d’infos). Et pour pouvoir travailler tranquillement j’ai mis en place une maquette avec un réseau VPN MPLS type Opérateur Télécom. La tâche étant assez fastidieuse, je vais capitaliser, ici, ce que j’ai pu faire sur cette maquette pour quelle soit fonctionnelle. Pour celles et ceux qui souhaitent en apprendre plus sur la technologie MPLS, je vous conseille vivement ce site : lien.

Tout d’abord voici la topologie de la maquette :

Topologie utilisée en support de l'article

Nous avons donc les éléments suivants :

  • 2 routeurs cœur de réseau opérateur (P1 et P2)
  • 3 routeur en périphérie du réseau opérateur (PE1, PE2 et PE3)
  • 1 routeur PEERING interconnecté au réseau opérateur (pour les interconnexions vers Internet)
  • 2 clients possédant chacun 3 sites différents
    • Le Client 1 possède 3 routeurs fournis par l’opérateur (C1-S0, C1-S1 et C1-S2)
    • Le Client 2 possède 3 routeurs fournis par l’opérateur (C2-S0, C2-S1, C2-S2)

Configuration du réseau interne de l’opérateur

Avant d’avoir des clients, il faut bien configurer le réseau de l’opérateur Télécom. Voici donc comment j’ai procédé :

  • Routage interne par le biais du protocole OSPF : N° de processus 1, zone primaire area 0
  • Chaque routeur du réseau opérateur possède une Loopback avec une adresse type 10.100.0.x/32
  • Les interconnexions entre les routeurs du réseau opérateur se feront avec des adresses type 10.0.100.x/30

Pour commencer il faut configurer les différentes interfaces de chaque routeur puis configurer le protocole OSPF.

Routeur P1 :

interface Loopback0
 description *** LOOPBACK MGNT - OSPF ***
 ip address 10.100.0.254 255.255.255.255
!
interface Ethernet0/1
 description *** VERS P2 - 10.0.100.2/30 ***
 ip address 10.0.100.1 255.255.255.252
!
interface Ethernet0/2
 description *** VERS PE1 - 10.0.100.6/30 ***
 ip address 10.0.100.5 255.255.255.252
!
interface Ethernet0/3
 description *** VERS PE3 - 10.0.100.14/30 ***
 ip address 10.0.100.13 255.255.255.252
!
router ospf 1
 router-id 10.100.0.254
 log-adjacency-changes
 network 10.0.100.0 0.0.0.3 area 0
 network 10.0.100.4 0.0.0.3 area 0
 network 10.0.100.12 0.0.0.3 area 0
 network 10.100.0.254 0.0.0.0 area 0

Routeur P2 :

interface Loopback0
 description *** LOOPBACK MGNT - OSPF ***
 ip address 10.100.0.253 255.255.255.255
!
interface Ethernet0/0
 description *** VERS P1 - 10.0.100.1/30 ***
 ip address 10.0.100.2 255.255.255.252
!
interface Ethernet0/1
 description *** VERS PE2 - 10.0.100.10/30 ***
 ip address 10.0.100.9 255.255.255.252
!
router ospf 1
 router-id 10.100.0.253
 log-adjacency-changes
 network 10.0.100.0 0.0.0.3 area 0
 network 10.0.100.8 0.0.0.3 area 0
 network 10.100.0.253 0.0.0.0 area 0

Routeur PE1 :

interface Loopback0
 description *** LOOPBACK MGNT - OSPF ***
 ip address 10.100.0.1 255.255.255.255
!
interface Ethernet0/0
 description *** VERS P1 - 10.0.100.5/30 ***
 ip address 10.0.100.6 255.255.255.252
!
router ospf 1
 router-id 10.100.0.1
 log-adjacency-changes
 network 10.0.100.4 0.0.0.3 area 0
 network 10.100.0.1 0.0.0.0 area 0

Routeur PE2 :

interface Loopback0
 description *** LOOPBACK MGNT - OSPF ***
 ip address 10.100.0.2 255.255.255.255
!
interface Ethernet0/0
 description *** VERS P2 - 10.0.100.9/30 ***
 ip address 10.0.100.10 255.255.255.252
!
router ospf 1
router-id 10.100.0.2
log-adjacency-changes
network 10.0.100.8 0.0.0.3 area 0
network 10.100.0.2 0.0.0.0 area 0

Routeur PE3 :

interface Loopback0
 description *** LOOPBACK MGNT - OSPF ***
 ip address 10.100.0.3 255.255.255.255
!
interface Ethernet0/0
 description *** VERS P1 - 10.0.100.13/30 ***
 ip address 10.0.100.14 255.255.255.252
!
router ospf 1
 router-id 10.100.0.3
 log-adjacency-changes
 network 10.0.100.12 0.0.0.3 area 0
 network 10.100.0.3 0.0.0.0 area 0

Le réseau de l’opérateur est maintenant interconnecté en interne et l’ensemble des routeurs peuvent communiquer entre-eux. Cette étape est cruciale pour la suite des opérations.

Configuration du MPLS

Nous allons maintenant préparer les routeurs opérateur pour qu’ils supportent l’utilisation du protocole MPLS. Pour bien configurer l’ensemble, il faut uniquement déclarer les interfaces qui seront interconnectées vers le réseau MPLS.

Routeur P1 :

ip cef
mpls ldp advertise-labels
mpls ldp router-id Loopback0 force
!
interface Ethernet0/1
 mpls ip
!
interface Ethernet0/2
 mpls ip
!
interface Ethernet0/3
 mpls ip

Routeur P2 :

ip cef
mpls ldp advertise-labels
mpls ldp router-id Loopback0 force
!
interface Ethernet0/0
 mpls ip
!
interface Ethernet0/1
 mpls ip

Routeur PE1 :

ip cef
mpls ldp advertise-labels
mpls ldp router-id Loopback0 force
!
interface Ethernet0/0
 mpls ip

Routeur PE2 :

ip cef
mpls ldp advertise-labels
mpls ldp router-id Loopback0 force
!
interface Ethernet0/0
 mpls ip

Routeur PE3 :

ip cef
mpls ldp advertise-labels
mpls ldp router-id Loopback0 force
!
interface Ethernet0/0
 mpls ip

Nos routeurs sont maintenant prêts à assurer de la commutation de labels.

Configuration des VRF

Illustration du fonctionnement des VRF

L’utilisation des VRF permet de créer une interconnexion directe logique entre les sites distants d’un même client (ce qui isole son trafic par rapport aux autres clients). Cela permet aussi de séparer les tables de routage sur un même routeur évitant ainsi les erreurs lorsque plusieurs clients sont connectés sur un même équipement. Pour configurer les VRF, nous allons déclarer des route-target permettant de gérer, entre-autre, les annonces de routes entre différents équipements exécutant des VRF.

Les VRF sont à déclarer que sur les routeurs directement connectés aux clients (les PE donc). Nous allons également profiter de cette étape pour configurer la connectivité IP sur ces interfaces.

Routeur PE1 :

ip vrf CLIENT-001
 rd 10:0
 route-target export 10:0
 route-target import 10:0
 route-target import 10:1
 route-target import 10:2
!
ip vrf CLIENT-002
 rd 20:0
 route-target export 20:0
 route-target import 20:0
 route-target import 20:1
 route-target import 20:2
!
interface Ethernet0/1
 description *** VERS S0-CLIENT-001 - 130.12.40.1/30 ***
 ip vrf forwarding CLIENT-001
 ip address 130.12.40.2 255.255.255.252
!
interface Ethernet0/2
 description *** VERS S0-CLIENT-002 - 140.12.40.1/30 ***
 ip vrf forwarding CLIENT-002
 ip address 140.12.40.2 255.255.255.252

Routeur PE2 :

ip vrf CLIENT-001
 rd 10:1
 route-target export 10:1
 route-target import 10:1
 route-target import 10:0
 route-target import 10:2
!
ip vrf CLIENT-002
 rd 20:1
 route-target export 20:1
 route-target import 20:1
 route-target import 20:0
 route-target import 20:2
!
interface Ethernet0/1
 description *** VERS S1-CLIENT001 - 130.12.41.1/30 ***
 ip vrf forwarding CLIENT-001
 ip address 130.12.41.2 255.255.255.252
!
interface Ethernet0/2
 description *** VERS S1-CLIENT-002 - 140.12.41.1/230 ***
 ip vrf forwarding CLIENT-002
 ip address 140.12.41.2 255.255.255.252

Routeur PE3 :

ip vrf CLIENT-001
 rd 10:2
 route-target export 10:2
 route-target import 10:2
 route-target import 10:0
 route-target import 10:1
!
ip vrf CLIENT-002
 rd 20:2
 route-target export 20:2
 route-target import 20:2
 route-target import 20:0
 route-target import 20:1
!
interface Ethernet0/1
 description *** VERS S2-CLIENT-001 - 130.12.42.1/30 ***
 ip vrf forwarding CLIENT-001
 ip address 130.12.42.2 255.255.255.252
!
interface Ethernet0/2
 description *** VERS S2-CLIENT-002 - 140.12.42.1/30 ***
 ip vrf forwarding CLIENT-002
 ip address 140.12.42.2 255.255.255.252

Voici un récapitulatif concernant les 2 clients du réseau opérateur :

ID Routeur VRF route-target Adresse IP
Client 1 C1-S0 CLIENT-001 10:0 130.12.40.1
C1-S1 CLIENT-001 10:1 130.12.41.1
C1-S2 CLIENT-001 10:2 130.12.42.1
Client 2 C2-S0 CLIENT-002 20:0 140.12.40.1
C2-S1 CLIENT-002 20:1 140.12.41.1
C2-S2 CLIENT-002 20:2 140.12.42.1

C’est tout pour cette première partie. La deuxième arrivera très bientôt ;-).