BGP Route Reflector

Introduction

Un haut-parleur BGP est un routeur compatible BGP. Par défaut, les locuteurs BGP n’annoncent pas les préfixes appris par iBGP aux homologues iBGP - ceci est fait pour maintenir la prévention de boucle. La RFC4456 introduit la fonctionnalité de réflexion d’itinéraire qui supprime le besoin d’un maillage complet entre les enceintes iBGP. Lorsque le réflecteur d’itinéraire reflète un préfixe, il crée / modifie un attribut facultatif non transitif appelé CLUSTER_LIST en lui ajoutant son propre ID de cluster. Cet attribut est utilisé pour la prévention des boucles: lorsque le routeur reçoit une mise à jour dont CLUSTER_LIST contient le propre ID de cluster, cette mise à jour est ignorée.

Par défaut, l’ID de cluster est défini sur la valeur de l’ID de routeur BGP, mais peut être défini sur une valeur 32 bits arbitraire. La fonction Plusieurs ID de cluster (MCID) permet d’attribuer des ID de cluster par voisin. Ainsi, il existe 3 types de scénarios de réflexion de route.

Entre client et non-client
Entre clients du même cluster (intra-cluster)
Entre clients dans différents clusters (inter-cluster) 
  • Un update eBgp reçu doit être propagé vers toutes les sessions iBgp disponibles sur le routeur.
  • Un update iBgp reçu ne doit jamais être propagé vers d’autres sessions iBgp disponibles sur le routeur.

Schéma d’infrastructure

Image alt text

Dans ce coeur de réseau, on utilise des protocoles dynamiques, OSPF et BGP. OSPF est utilisée pour transmettre les adresses de loopback des routeurs du coeur de réseau, ce qui permet de faire du routage dynamique avec Bgp et ainsi avoir une session iBgp entre les deux routeurs de bordure d’AS. Cette architecture nécessite d’être full mech, c’est à dire qu’on respecte la formule suivante : (N.router * N.router-1) / 2 donc les routeurs sont tous interconnectés via des liaisons iBgp.

Configuration OSPF

router ospf 10
Renseigner les réseaux existants pour OSPF
network 9.9.9.0 0.0.0.255 area 0
network 10.10.10.4 0.0.0.3 area 0
network 10.10.10.16 0.0.0.3 area 0

Confiuration BGP

Renseigner le protocole BGP
router bgp 65500
Renseigner le nom du groupe IBGP
neighbor IBGP peer-group
Renseigner AS BGP du groupe
neighbor IBGP remote-as 65500
Renseigner la MAJ de l’adresse local
neighbor IBGP update-source Loopback0
Renseigner les routes au saut suivant
neighbor IBGP next-hop-self
Renseigner une loopback de routeur dans le groupe IBGP pour les sessions TCP
neighbor 9.9.9.3 peer-group IBGP
Renseigner une IP de routeur de l’autre AS BGP pour faire une session eBgp
neighbor 192.168.0.13 remote-as 64000

R1

interface Loopback0
ip address 9.9.9.2 255.255.255.255
!
interface Serial1/0
ip address 10.10.10.17 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
interface Serial1/1
ip address 10.10.10.5 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
interface Serial1/2
ip address 192.168.0.14 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
router ospf 10
log-adjacency-changes
network 9.9.9.0 0.0.0.255 area 0
network 10.10.10.4 0.0.0.3 area 0
network 10.10.10.16 0.0.0.3 area 0
!
router bgp 65500
no synchronization
bgp log-neighbor-changes
neighbor IBGP peer-group
neighbor IBGP remote-as 65500
neighbor IBGP update-source Loopback0
neighbor IBGP next-hop-self
neighbor 9.9.9.3 peer-group IBGP
neighbor 9.9.9.4 peer-group IBGP
neighbor 9.9.9.5 peer-group IBGP
neighbor 192.168.0.13 remote-as 64000
no auto-summary
!

R2

interface Loopback0
ip address 9.9.9.3 255.255.255.255
!
interface Serial1/0
ip address 10.10.10.18 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
interface Serial1/2
ip address 10.10.10.14 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
router ospf 10
log-adjacency-changes
network 9.9.9.0 0.0.0.255 area 0
network 10.10.10.12 0.0.0.3 area 0
network 10.10.10.16 0.0.0.3 area 0
!
router bgp 65500
no synchronization
bgp log-neighbor-changes
neighbor IBGP peer-group
neighbor IBGP remote-as 65500
neighbor IBGP update-source Loopback0
neighbor 9.9.9.2 peer-group IBGP
neighbor 9.9.9.5 peer-group IBGP
no auto-summary
!

R3

interface Loopback0
ip address 9.9.9.4 255.255.255.255
!
interface Serial1/0
ip address 10.10.10.9 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
interface Serial1/1
ip address 10.10.10.6 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
router ospf 10
log-adjacency-changes
network 9.9.9.0 0.0.0.255 area 0
network 10.10.10.4 0.0.0.3 area 0
network 10.10.10.8 0.0.0.3 area 0
!
router bgp 65500
no synchronization
bgp log-neighbor-changes
neighbor IBGP peer-group
neighbor IBGP remote-as 65500
neighbor IBGP update-source Loopback0
neighbor 9.9.9.2 peer-group IBGP
neighbor 9.9.9.5 peer-group IBGP
no auto-summary
!

R4

interface Loopback0
ip address 9.9.9.5 255.255.255.255
!
interface Serial1/3
ip address 10.10.10.10 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
interface Serial1/0
ip address 192.168.0.5 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
interface Serial1/2
ip address 10.10.10.13 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
interface Serial1/1
ip address 192.168.0.9 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
router ospf 10
log-adjacency-changes
network 9.9.9.0 0.0.0.255 area 0
network 10.10.10.8 0.0.0.3 area 0
network 10.10.10.12 0.0.0.3 area 0
!
router bgp 65500
no synchronization
bgp log-neighbor-changes
neighbor IBGP peer-group
neighbor IBGP remote-as 65500
neighbor IBGP update-source Loopback0
neighbor IBGP next-hop-self
neighbor 8.8.8.8 remote-as 65000
neighbor 8.8.8.8 ebgp-multihop 2
neighbor 8.8.8.8 update-source Loopback0
neighbor 9.9.9.2 peer-group IBGP
neighbor 9.9.9.3 peer-group IBGP
neighbor 9.9.9.4 peer-group IBGP
no auto-summary
!
ip route 8.8.8.8 255.255.255.255 192.168.0.6
ip route 8.8.8.8 255.255.255.255 192.168.0.10
!

R5

interface FastEthernet0/0
ip address 1.1.1.254 255.255.255.0
duplex auto
speed auto
!
interface Serial1/0
ip address 192.168.0.13 255.255.255.0
encapsulation ppp
serial restart-delay 0
!
router bgp 64000
no synchronization
bgp log-neighbor-changes
network 1.1.1.0 mask 255.255.255.0
neighbor 192.168.0.14 remote-as 65500
no auto-summary
!

R6

Loopback0
ip address 8.8.8.8 255.255.255.255
!
interface Serial1/1
ip address 192.168.0.6 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
interface Serial1/3
ip address 192.168.0.10 255.255.255.252
encapsulation ppp
serial restart-delay 0
!
router bgp 65000
no synchronization
bgp log-neighbor-changes
network 2.2.2.0 mask 255.255.255.0
neighbor 9.9.9.5 remote-as 65500
neighbor 9.9.9.5 ebgp-multihop 2
neighbor 9.9.9.5 update-source Loopback0
no auto-summary
!
ip forward-protocol nd
ip route 9.9.9.5 255.255.255.255 192.168.0.5
ip route 9.9.9.5 255.255.255.255 192.168.0.9
!