Routage Inter-VRF: VRF Route Leaking

 

 

Introduction

Une Infra IP-MPLS sert à connecter à travers un nuage privé plusieurs sites distants sans avoir besoin d’implémenter dans un monde Internet « non stable » et « non securisé » les VPNs classiques (Site-to-site VPNs, Tunnels GREs …).

Le Nuage IP-MPLS est celui privé de l’opérateur ou même de l’organisme privé.

Chaque client (pour un opérateur) ou zone (pour un organisme privé) est mis dans une VRF. La VRF est tout simplement une table de routage indépendante et dédiée pour un Client/Zone spécifique.

Les VRFs ne communiquent pas entre eux par défaut. C’est comme les vlans (en analogie avec le Layer 2). Un paquet qui sort d’une VRF Client-A ne peut communiquer qu’avec les réseaux distants de la VRF Client-A (en utilisant les RTs).

Une VRF est caractérisée par un RD local est un RT en import/export distribué et propagé, voir article précédant sur les RTs/RDs.  

Le protocole LDP est utilisé pour acheminer les données d’un site à un autre, il est implémenté entre les Ps (Internal Provider Routers) et les PEs (Provider Edge Routers).

Les Ps n’apprennent pas les routes/réseaux des clients (OSPF ou IS-IS).

Les PEs sont interconnectés en utilisant les sessions internes MP-BGP en Full Mesh -généralement. Pour optimiser et ne pas surcharger le Backbone IP-MPLS, les RRs (routes reflectors) sont utilisés.

On note que sans IP-MPLS (que des sessions iBGP montées à travers OSPF), on doit effectuer un Design en FULL-MESH qui inclut tous les Ps-PEs et une config de "next-hop-self" obligatoire si on a un routage eBGP entre CE et PE (car par défaut la NextHop est inchangée et n'est pas visible en iBGP). Avec IP-MPLS, pas besoin de faire ça car les vpn4 sont créés en se basant sur les prefixes et les RDs, et les Loopbacks des PEs sont eux-mêmes les NextHops annoncés vers les autres PEs.

Le « eBGP » se base sur l’AS-PATH pour détecter les boucles. Exemple : un AS déjà existant sur le Path reçu sur un équipement ayant ce même AS : Block.
Le « iBGP » n’applique pas ce principe entre les PEs en interne car tous les PEs sont dans le même AS : il utilise plutôt l’OSPF pour monter en TCP ses sessions BGPs en End-to-End.

Chaque Interface (ou sous interface, SVI, …) d’un PE est affectée à une unique VRF.

Le « Route Leaking » est la communication/le routage entre deux VRFs différentes. Deux méthodes sont utilisées : soit on implémente un routage direct entre deux Réseaux appartenant à deux VRFs différentes, soit on utilise les RTs en import et export. La deuxième méthode est présentée dans cet article :)    

 

 

Lab : Architecture et Matrice des Flux

 

Les 4 VRFs des sites distants (Technique, Commercial, Serveurs et Internet) réparties comme suit :

 

 

Initialement chaque VRF est isolée ! Elle ne communique qu'avec elle-même ...

 

Les flux à autoriser dans ce Lab sont les suivants :

Technique vers tout le monde (Commercial, Serveurs et internet) :  OK

Commercial vers Technique + Internet : OK

Serveurs vers Technique : OK

Internet vers Technique + Commercial : OK

Les flux qui restent bloqués sont alors :
Commercial vers/depuis Serveurs :  KO
Serveurs vers/depuis Internet :  KO

 

 


Liste des VRFs avec les Imports/Exports à configurer

 

Technique

 

Commercial

 

Serveurs

 

Internet

 

 

 

Configuration 

 

------------------------------------------Conf R3---------------------------------------------------

ip vrf Commercial

 rd 65103:203

 route-target export 65103:2222

 route-target import 65103:2222

 route-target import 65103:1111

 route-target import 65103:4444

!

ip vrf Serveurs

 rd 65103:303

 route-target export 65103:3333

 route-target import 65103:3333

 route-target import 65103:1111

!

ip vrf Technique

 rd 65103:103

 route-target export 65103:1111

 route-target import 65103:1111

 route-target import 65103:2222

 route-target import 65103:3333

 route-target import 65103:4444

!

interface Loopback0

 description -Vers Backbone MPLS-

 ip address 3.3.3.3 255.255.255.255

 ip ospf 1 area 0

!

interface Loopback10

 ip vrf forwarding Technique

 ip address 10.10.10.1 255.255.255.255

 ip ospf 10 area 0

!

interface Loopback20

 ip vrf forwarding Commercial

 ip address 10.10.20.1 255.255.255.255

 ip ospf 20 area 0

!

interface Loopback30

 ip vrf forwarding Serveurs

 ip address 10.10.30.1 255.255.255.255

 ip ospf 30 area 0

!

interface GigabitEthernet0/0

 description -Vers Backbone IP-MPLS -

 ip address 192.168.13.3 255.255.255.0

 ip ospf network point-to-point

 ip ospf 1 area 0

 mpls ip

!

router ospf 1

 router-id 33.33.33.33

 log-adjacency-changes

!

router ospf 10 vrf Technique

 log-adjacency-changes

 redistribute bgp 65103 metric 100 subnets

 passive-interface Loopback10

!

router ospf 20 vrf Commercial

 log-adjacency-changes

 redistribute bgp 65103 metric 102 subnets

 passive-interface Loopback20

!

router ospf 30 vrf Serveurs

 log-adjacency-changes

 redistribute bgp 65103 metric 103 subnets

 passive-interface Loopback30

!

router bgp 65103

 no synchronization

 bgp log-neighbor-changes

 neighbor 2.2.2.2 remote-as 65103

 neighbor 2.2.2.2 update-source Loopback0

 neighbor 4.4.4.4 remote-as 65103

 neighbor 4.4.4.4 update-source Loopback0

 no auto-summary

 !

 address-family vpnv4

  neighbor 2.2.2.2 activate

  neighbor 2.2.2.2 send-community extended

  neighbor 4.4.4.4 activate

  neighbor 4.4.4.4 send-community extended

 exit-address-family

 !

 address-family ipv4 vrf Technique

  redistribute ospf 10 vrf Technique metric 11 match internal

  no synchronization

 exit-address-family

 !

 address-family ipv4 vrf Serveurs

  redistribute ospf 30 vrf Serveurs metric 13 match internal

  no synchronization

 exit-address-family

 !

 address-family ipv4 vrf Commercial

  redistribute ospf 20 vrf Commercial metric 12 match internal

  no synchronization

 exit-address-family

 

------------------------------------------Conf R4---------------------------------------------------

ip vrf Commercial

 rd 65103:204

 route-target export 65103:2222

 route-target import 65103:2222

 route-target import 65103:1111

 route-target import 65103:4444

!

ip vrf Serveurs

 rd 65103:304

 route-target export 65103:3333

 route-target import 65103:3333

 route-target import 65103:1111

!

ip vrf Technique

 rd 65103:104

 route-target export 65103:1111

 route-target import 65103:1111

 route-target import 65103:2222

 route-target import 65103:3333

 route-target import 65103:4444

!

interface Loopback0

 description -Vers Backbone MPLS-

 ip address 4.4.4.4 255.255.255.255

 ip ospf 1 area 0

!

interface Loopback10

 ip vrf forwarding Technique

 ip address 10.10.10.254 255.255.255.255

 ip ospf 10 area 0

!

interface Loopback20

 ip vrf forwarding Commercial

 ip address 10.10.20.254 255.255.255.255

 ip ospf 20 area 0

!

interface Loopback30

 ip vrf forwarding Serveurs

 ip address 10.10.30.254 255.255.255.255

 ip ospf 30 area 0

!

interface GigabitEthernet0/0

 description -Vers Backbone MPLS-

 ip address 192.168.14.4 255.255.255.0

 ip ospf network point-to-point

 ip ospf 1 area 0

 mpls ip

!

router ospf 10 vrf Technique

 redistribute bgp 65103 metric 100 subnets

 passive-interface Loopback10

!

router ospf 20 vrf Commercial

 redistribute bgp 65103 metric 102 subnets

 passive-interface Loopback20

!

router ospf 30 vrf Serveurs

 redistribute bgp 65103 metric 103 subnets

 passive-interface Loopback30

!

router ospf 1

 router-id 44.44.44.44

!

router bgp 65103

 no synchronization

 bgp log-neighbor-changes

 neighbor 2.2.2.2 remote-as 65103

 neighbor 2.2.2.2 update-source Loopback0

 neighbor 3.3.3.3 remote-as 65103

 neighbor 3.3.3.3 update-source Loopback0

 no auto-summary

 !

 address-family vpnv4

  neighbor 2.2.2.2 activate

  neighbor 2.2.2.2 send-community extended

  neighbor 3.3.3.3 activate

  neighbor 3.3.3.3 send-community extended

 exit-address-family

 !

 address-family ipv4 vrf Technique

  redistribute ospf 10 vrf Technique metric 14 match internal

  no synchronization

 exit-address-family

 !

 address-family ipv4 vrf Serveurs

  redistribute ospf 30 vrf Serveurs metric 16 match internal

  no synchronization

 exit-address-family

 !

 address-family ipv4 vrf Commercial

  redistribute ospf 20 vrf Commercial metric 15 match internal

  no synchronization

 exit-address-family

 

------------------------------------------Conf R2---------------------------------------------------

ip vrf Internet

 rd 65103:402

 route-target export 65103:4444

 route-target import 65103:4444

 route-target import 65103:2222

 route-target import 65103:1111

!

ip vrf Serveurs

 rd 65103:302

 route-target export 65103:3333

 route-target import 65103:3333

 route-target import 65103:1111

!

interface Loopback0

 description -Vers MPLS Backbone-

 ip address 2.2.2.2 255.255.255.255

 ip ospf 1 area 0

!        

interface Loopback30

 description PC-Test-Vlan-Serveurs-R2

 ip vrf forwarding Serveurs

 ip address 10.10.30.133 255.255.255.0

!

interface GigabitEthernet0/0

 description -Vers MPLS Backbone-

 ip address 192.168.12.2 255.255.255.0

 ip ospf network point-to-point

 ip ospf 1 area 0

 mpls ip

!

interface GigabitEthernet1/0

 ip vrf forwarding Internet

 ip address 172.33.33.1 255.255.255.252

 negotiation auto

!

router ospf 1

 router-id 22.22.22.22

 log-adjacency-changes

!

router bgp 65103

 no synchronization

 bgp log-neighbor-changes

 neighbor 3.3.3.3 remote-as 65103

 neighbor 3.3.3.3 update-source Loopback0

 neighbor 4.4.4.4 remote-as 65103

 neighbor 4.4.4.4 update-source Loopback0

 no auto-summary

 !

 address-family vpnv4

  neighbor 3.3.3.3 activate

  neighbor 3.3.3.3 send-community extended

  neighbor 4.4.4.4 activate

  neighbor 4.4.4.4 send-community extended

 exit-address-family

 !

 address-family ipv4 vrf Serveurs

  redistribute connected metric 30

  no synchronization

 exit-address-family

 !

 address-family ipv4 vrf Internet

  redistribute static metric 33

  default-information originate

  no synchronization

 exit-address-family

!

ip route vrf Internet 0.0.0.0 0.0.0.0 172.33.33.2

 

 

Résultats

R3

 

R4

 

R2

 

 

Quelques Tests de Vérification

Ajouter un commentaire

Commentaires

Il n'y a pas encore de commentaire.