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

Voici la fin du tutoriel entamé précédemment. Je remets la topologie pour plus de facilité ;-).

Topologie utilisée en support de l'article

Petit état des lieux avant de continuer. Nous avons un réseau quasi-opérationnel car à ce stade le réseau opérateur est configuré afin que les différents sites des clients puissent communiquer entre-eux. Il nous manque juste une partie : la connectivité à Internet.Lançons-nous :).

Interconnexion avec le routeur Peering

Pour faciliter la tâche j’ai configuré des loopback avec les adresses IP 8.8.8.8 et 8.8.4.4 sur le routeur Peering pour simuler Internet. Nous allons maintenant interconnecter notre réseau opérateur avec le routeur Peering en utilisant le protocole BGP.

Routeur Peering :

interface Loopback0
 ip address 8.8.4.4 255.255.255.255
!
interface Loopback1
 ip address 8.8.8.8 255.255.255.255
!
interface Ethernet0/0
 description *** VERS RESEAU OPERATEUR - 150.56.78.2 255.255.255.252 ***
 ip address 150.56.78.1 255.255.255.252
!
router bgp 1500
 no synchronization
 bgp log-neighbor-changes
 network 8.8.4.4 mask 255.255.255.255
 network 8.8.8.8 mask 255.255.255.255
 neighbor 150.56.78.2 remote-as 1200
 no auto-summary

Routeur P1 :

interface Ethernet0/0
 description *** VERS ZONE DE PEERING - 150.56.78.1 255.255.255.252 ***
 ip address 150.56.78.2 255.255.255.252
!
router bgp 1200
address-family ipv4
 network 150.56.78.0 mask 255.255.255.252
 neighbor 150.56.78.1 activate
 exit-address-family

A présent, le routeur P1 annoncera le réseau 150.56.78.0/30 aux autres routeurs du réseau opérateur. Il transmettra également les routes apprises par le biais du routeur Peering. De même, le routeur Peering apprendra également les routes transmises par le routeur P1 (mais pour le moment il n’en connait aucune).

Déclaration des clients

Alors pourquoi le routeur P1 ne connait aucune des routes des clients ? A cause des VRF. Elles sont très pratiques pour isoler les flux des clients mais comme cela est expliqué dans le principe les flux sont isolés donc comme notre routeur P1 ne travaille pas avec les VRF des clients il ne connait pas leurs routes…

Pour remédier à ce problème (qui n’en est pas un en définitive) nous allons déclarer nos routes au routeur P1 par le biais des route-map.

Routeur PE1 :

ip route 130.12.40.0 255.255.255.252 Ethernet0/1 tag 10 name CLIENT-001
ip route 140.12.40.0 255.255.255.252 Ethernet0/2 tag 20 name CLIENT-002
!
route-map PE1-PEERING-CLIENTS permit 10
 match tag 10 20
 set community no-export additive
!
router bgp 1200
address-family ipv4
 table-map PE1-PEERING-CLIENTS
 redistribute static route-map PE1-PEERING-CLIENTS

Routeur PE2 :

ip route 130.12.41.0 255.255.255.252 Ethernet0/1 tag 10 name CLIENT-001
ip route 140.12.41.0 255.255.255.252 Ethernet0/2 tag 20 name CLIENT-002
!
route-map PE2-PEERING-CLIENTS permit 10
 match tag 10 20
 set community no-export additive
!
router bgp 1200
address-family ipv4
 table-map PE2-PEERING-CLIENTS
 redistribute static route-map PE2-PEERING-CLIENTS

Routeur PE3 :

ip route 130.12.42.0 255.255.255.252 Ethernet0/1 tag 10 name CLIENT-001
ip route 140.12.42.0 255.255.255.252 Ethernet0/2 tag 20 name CLIENT-002
!
route-map PE3-PEERING-CLIENTS permit 10
 match tag 10 20
 set community no-export additive
!
router bgp 1200
address-family ipv4
 table-map PE3-PEERING-CLIENTS
 redistribute static route-map PE3-PEERING-CLIENTS

A présent notre routeur Peering peut apprendre les routes des clients par le biais du routeur P1 :

PEERING#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2
 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
 ia - IS-IS inter area, * - candidate default, U - per-user static route
 o - ODR, P - periodic downloaded static route, + - replicated route

Gateway of last resort is not set

8.0.0.0/32 is subnetted, 2 subnets
C 8.8.4.4 is directly connected, Loopback0
C 8.8.8.8 is directly connected, Loopback1
 130.12.0.0/30 is subnetted, 3 subnets
B 130.12.40.0 [20/0] via 150.56.78.2, 03:10:12
B 130.12.41.0 [20/0] via 150.56.78.2, 03:07:42
B 130.12.42.0 [20/0] via 150.56.78.2, 03:03:45
 140.12.0.0/30 is subnetted, 3 subnets
B 140.12.40.0 [20/0] via 150.56.78.2, 03:10:12
B 140.12.41.0 [20/0] via 150.56.78.2, 03:20:09
B 140.12.42.0 [20/0] via 150.56.78.2, 03:20:09
 150.56.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 150.56.78.0/30 is directly connected, Ethernet0/0
L 150.56.78.1/32 is directly connected, Ethernet0/0

Internet est donc capable de contacter les clients. Le problème est que les clients ne sont pas capable de communiquer avec Internet…

Configuration vers Internet pour les clients

Alors pourquoi les clients ne peuvent pas communiquer avec Internet ? Je n’ai qu’une seule réponse : les VRF (décidément !). Et oui les VRF isoles les flux donc si, par exemple, notre routeur PE1 prend connaissance des routes vers Internet grâce à l’interconnexion faite avec le routeur Peering, ses VRF ne reçoivent pas l’information.

Nous allons donc configurer une route par défaut globale dans chacune des VRF des clients afin de leur annoncer le chemin à suivre.

Pour rappel, les routeurs clients (C1-S0, C2-S0, etc.) possèdent une route par défaut vers le routeur PE auquel ils sont interconnectés.

Routeur PE1 :

ip route vrf CLIENT-001 0.0.0.0 0.0.0.0 150.56.78.1 global
ip route vrf CLIENT-002 0.0.0.0 0.0.0.0 150.56.78.1 global

Routeur PE2 :

ip route vrf CLIENT-001 0.0.0.0 0.0.0.0 150.56.78.1 global
ip route vrf CLIENT-002 0.0.0.0 0.0.0.0 150.56.78.1 global

Routeur PE3 :

ip route vrf CLIENT-001 0.0.0.0 0.0.0.0 150.56.78.1 global
ip route vrf CLIENT-002 0.0.0.0 0.0.0.0 150.56.78.1 global

A présent si l’on vérifie la table de routage d’une VRF :

PE1#sh ip route vrf CLIENT-001

Routing Table: CLIENT-001

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2
 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
 ia - IS-IS inter area, * - candidate default, U - per-user static route
 o - ODR, P - periodic downloaded static route, + - replicated route

Gateway of last resort is 150.56.78.1 to network 0.0.0.0

S* 0.0.0.0/0 [1/0] via 150.56.78.1
 130.12.0.0/16 is variably subnetted, 4 subnets, 2 masks
C 130.12.40.0/30 is directly connected, Ethernet0/1
L 130.12.40.2/32 is directly connected, Ethernet0/1
B 130.12.41.0/30 [200/0] via 10.100.0.2, 03:40:48
B 130.12.42.0/30 [200/0] via 10.100.0.3, 03:41:03
O 192.168.0.0/24 [110/20] via 130.12.40.1, 01:54:45, Ethernet0/1
B 192.168.1.0/24 [200/1] via 10.100.0.2, 01:53:30
B 192.168.2.0/24 [200/1] via 10.100.0.3, 01:51:39

Ce qui nous permet à un client d’avoir une connectivité vers ses autres sites mais aussi vers Internet :

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

C1-S0#traceroute 192.168.2.254
Type escape sequence to abort.
Tracing the route to 192.168.2.254
1 130.12.40.2 0 msec 0 msec 4 msec
 2 130.12.42.1 [MPLS: Labels 18/16 Exp 0] 0 msec 0 msec 0 msec
 3 130.12.42.2 [MPLS: Label 16 Exp 0] 0 msec 4 msec 0 msec
 4 130.12.42.1 0 msec 0 msec * 

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

C1-S0#traceroute 8.8.8.8
Type escape sequence to abort.
Tracing the route to 8.8.8.8
1 130.12.40.2 0 msec 0 msec 0 msec
 2 10.0.100.5 0 msec 0 msec 0 msec
 3 150.56.78.1 0 msec 0 msec *

Félicitation vous venez de monter un réseau VPN MPLS type Opérateur Télécom ! J’espère que ce long tutoriel vous aura aidé :).