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