Table of Contents

réseau protocole routage

BGP

BGP (Border Gateway Protocol) est le protocole de routage standard inter-domaine (EGP, Exterior Gateway Protocol) qui utilise le port tcp/179 pour établir des communications entre routeurs voisins.

Le BGP permet un routage administratif basé sur la méfiance de ses voisins, ce qui signifie qu'à la différence des protocoles de routage IGP (Interior Gateway Protocol) comme l'OSPF, RIP ou EIGRP qui font confiance à leurs voisins et cherchent le chemin le plus court, le BGP permet de contrôler la façon de router les paquets entrant et sortant.

Les attributs

Les attributs BGP ont différentes caractéristiques :

Ils peuvent être annoncés dans les routing update sauf le weight.

La priorité pour choisir un chemin est : weight > local pref > originate route > AS-Path > MED

Machine d'état BGP

6 états différents :

IBGP

Déclarer le processus de routage avec le numéro d'AS 65001 :

router bgp 65001

Déclarer la Loopback0 comme IP source :

(config-router)#neighbor 10.10.10.2 update-source loopback0

Déclarer le réseau 10.10.10.0/24 (le masque doit matcher pour que le réseau soit effectivement annoncé) :

network 10.10.10.0 mask 255.255.255.0

Détermination du meilleur chemin

cf : BGP Best Path Selection Algorithm

Configuration avancée

Peer group

Local à chaque routeur, permet de factoriser la configuration de peers.

Annoncer un préfixe

Annoncer les réseaux de 207.0.0.0/10 à 207.0.0.0/18 :

ip prefix-list 207.0.0.0/8 ge 10 le 18

(ge = Greater or Equal != le pour Less or Equal)

Agréger des routes

On utilise la commande aggregate-address.

router bgp 300
 network 200.52.1.192 mask 255.255.255.224
 aggregate-address 200.52.1.0 255.255.255.0

Dans le cas ci-dessus le routeur annoncera les 2 réseaux 200.52.1.192/27 ET 200.52.1.0/24. Si on ne veux annoncer que les agrégats de route on doit utiliser la commande summary-only :

aggregate-address 200.52.1.0 255.255.255.0 summary-only

route-reflector

Sur le router “route-reflector, on doit déclarer le voisin, puis déclarer que c'est un client-reflector :

router bgp 64000
 neighbor 165.50.12.2 remote-as 64000
 neighbor 165.50.12.2 route reflector-client

Communauté

Pour partager une communauté avec le voisin 10.0.0.1

neighbor 10.0.0.1 send-community

Load Sharing

Le load sharing permet d'utiliser plusieurs liaisons WAN de façon statique (sans répartition de charge à la différence du load-balancing), ainsi que du fail-over en cas de panne d'une liaison.

Double raccordement au même ISP

On considère un router WAN relié en eBGP à 2 routeurs d'un même ISP. Il faut monter les adjacences eBGP et ajouter la commande maximum-paths 2 pour installer jusqu'à 2 paths dans la table de routage.

Exemple : notre AS=100 et l'AS de notre ISP=200. Configuration de notre routeur :

                     R1
                   /
AS=100  Router_WAN         AS=200
                   \
                     R2
interface Loopback0
 ip address 10.0.0.1 255.255.255.0
!
interface FastEthernet0/1
 description vers ISP_R1
 ip address 100.0.1.1 255.255.255.0
!
interface FastEthernet0/2
 description vers ISP_R2
 ip address 100.0.2.1 255.255.255.0
!
router bgp 100
 neighbor 100.0.1.2 remote-as 200
 neighbor 100.0.2.2 remote-as 200
 network 10.0.0.0
 ! détermine le nombre de path différents à installer dans la table de routage
 maximum-paths 2

as-path prepend

L'AS-path prepend permet à un routeur BGP d'alourdir l'AS-path de certaines routes afin de déterminer quel routeur sera privilégier pour tel ou tel réseau.

Dans ce cas on a cette architecture : 2 routeurs WAN locaux vers 2 routeurs d'un même ISP ; avec des adjacences BGP “en carré” :

               R1--------------R3
AS10 (local)   |               |     AS11 (ISP)
               R2--------------R4

J'ai 2 réseaux locaux 10.0.1.0/24 et 10.0.2.0/24 ; mon n° d'AS est 10. Je veux que le premier réseau soit routé par mon ISP (AS=11) vers R1, et le second vers R2.

Sur R1 :

router bgp 1
 network 10.0.1.0 mask 255.255.255.0
 network 10.0.2.0 mask 255.255.255.0
 neighbor 192.168.0.1 remote-as 10
 neighbor 192.168.0.1 route-map rm_R1 out
!
access-list 1 permit 10.0.1.0
access-list 2 permit 10.0.2.0
!
route-map rm_R1 permit 10
 match ip address 1
!         
route-map R101-103-MAP permit 20
 match ip address 2
 ! on "alourdi" l'AS-path vers le réseau qui doit passer par R2
 set as-path prepend 11 11

On “alourdi” l'AS-path (on ajoute dans l'entête 2 numéros d'AS = 2 “sauts”) des routes annoncées en BGP au routeur de l'ISP, afin que celui-ci préfère R2. R2 aura la conf inverse, c'est-à-dire qu'il va alourdir l'AS-path du réseau 10.0.1.0/24 afin que le routeur de l'ISP envoie la trafic vers R1.

Liens

Vérifications

Lister les annonces BGP sur un routeur

show bgp ipv4 unicast

Lister les voisins

show ip bgp neighbors

Pour redémarrer toutes les sessions BGP

clear bgp all
clear ip bgp *

ou

clear ip bgp 192.168.0.0

Voir la liste de préfixes :

show ip prefix-list

Liens utiles