Vous êtes sur la page 1sur 88

Border Gateway Protocol

BGP
Naila Bouchemal

1
Border Gateway Protocol
• Un protocole de routage utilisé pour échanger des informations de routage entre
les différents réseaux
• Exterior gateway protocol
• Décrit dans RFC4271
• RFC4276 donne un rapport d'exécution sur BGP
• RFC4277 décrit les expériences opérationnelles en utilisant BGP
• Le système autonome est la base de BGP
• Il est utilisé pour identifier de façon unique les réseaux ayant une politique de routage
commune

2
BGP
• Path Vector Protocol
• Mises à jour incrémentales
• Beaucoup d'options pour l'application des stratégies
• Classless Inter Domain Routing (CIDR)
• Largement utilisé pour le backbone Internet
• Systèmes autonomes

3
Path Vector Protocol
• BGP est classé comme un protocole de routage path vector

• Un protocole path vector définit le trajet entre une destination et les


caractéristiques du chemin qui mène à cette destination.

12.6.126.0/24 207.126.96.43 1021 0 6461 7018 6337 11268 i

AS Path

4
Path Vector Protocol

AS11268
AS6337

AS7018

AS500

AS6461

AS600
5
6
7
8
Numéro de système autonome (ASN)
• Deux gammes
• 0-65535 (original 16-bit range)
• 65536-4294967295 (32-bit range – RFC4893)
• Usage:
• 0 and 65535 (réservé)
• 1-64495 (Internet public)
• 64496-64511 (documentation – RFC5398)
• 64512-65534 (usage privé uniquement)
• 23456 (represent 32-bit range in 16-bit
world)
• 65536-65551 (documentation – RFC5398)
• 65552-4294967295 (Internet public)
• Représentation de gamme 32 bits spécifiée dans RFC5396
• Définit “asplain” (format traditionnel) comme notation standard

9
Numéro de système autonome (ASN)
• Les ASN sont distribués par les Registres Internet Régionaux
• Ils sont également disponibles auprès de fournisseurs de services Internet en amont qui sont
membres de l'un des RIR
• Les allocations ASN actuelles de 16-bit jusqu'à 61439 ont été faites pour les RIR
• Environ 41200 sont visibles sur Internet
• Chaque RIR a également reçu un bloc d'ASN 32-bit
• Sur les 2800 affectations, autour de 2400 sont visibles sur Internet
• Voir www.iana.org/assignments/as-numbers

10
11
12
13
14
15
16
17
18
19
Zone de démarcation (DMZ)
A C
Réseau
AS 100 DMZ AS 101
B D

AS 102

• DMZ est le lien ou réseau partagé entre les AS


20
External BGP Peering (eBGP)

AS 100 AS 101
C

• Entre routeurs BGP dans différents AS


• Doivent être directement connectés
• Ne jamais exécuter un IGP entre pairs eBGP
21
Configurer un BGP externe

adresse IP sur
interface Ethernet
Routeur A dans AS100

interface Ethernet 5/0


adresse ip 102.102.10.2 255.255.255.240
! ASN locale
routeur bgp 100
réseau 100.100.8.0 masque 255.255.252.0
neighbor 102.102.10.1 remote-as 101 ASN distant
neighbor 102.102.10.1 prefix-list RouterC in
neighbor 102.102.10.1 prefix-list RouterC out
!
adresse ip de l’interface Filtres entrants
Ethernet du routeur C et sortants
22
BGP interne (iBGP)
• BGP peer dans le même AS
• Pas requis d'être directement connecté
– IGP prend soin de la connectivité de haut-parleurs inter-BGP
• Les routeurs iBGP doivent être entièrement maillés:
– Ils génèrent des réseaux connectés
– Ils transmettent des préfixes appris de l'extérieur de l'ASN
– Ils ne transmettent pas des préfixes appris d’autres routeurs iBGP

23
Peering BGP interne (iBGP)

AS 100
B
A
C

24
Peering entre interfaces de Loopback

AS 100

C
A

• Peer with loop-back interface


• L'interface de loop-back ne faillit pas - jamais!
• Ne laissez pas une session IBGP dépendre de l'état d'une interface
unique ou de la topologie physique
25
Types de messages et
Attributs BGP
Les "outils" disponibles pour la tâche

26
27
28
29
30
31
32
Présentation des métriques
Quand un routeur reçoit une route, il regarde tous ces tags (attributs), et en déduit la meilleure route.

33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Algorithme de sélection de
chemin BGP
Pourquoi est-ce le meilleur chemin?

51
52
Algorithme de sélection de chemin BGP

La route doit être synchronisée


C’est à dire être dans la table de routage
Le “Next-hop” doit être joignable
Il se trouve dans la table de routage
Prendre la valeur la plus élevée pour le poids (weight)
Critère spécifique Cisco et local au routeur
Choisir la préférence locale la plus élevée
Appliqué pour l’ensemble des routeurs de l’AS
La route est d’origine locale
Via une commande BGP “redistribute” ou “network”

53
Algorithme de sélection de chemin BGP
Choisir le plus court chemin d’AS
en comptant le nombre d’AS dans l’attribut AS-Path
Prendre l’origine de valeur la plus faible
IGP < EGP < INCOMPLETE
Choisir le plus petit MED
pour des chemins en provenance d’un même AS
Préférer une route Externe sur une route Interne
prendre la sortie la plus proche
Choisir le “next-hop” le plus proche
Plus faible métrique IGP, donc plus proche de la sortie de l’AS
Plus petit “Router-ID”
Adresse IP du voisin la plus petite
Algorithme de sélection de chemin BGP
Configuration de base BGP

57
58
59
60
61
62
63
64
65
66
• TP configuration de base BGP

67
BGP politique de contrôle
Filtres BGP
Prefix List and Route Maps with BGP
À Faire dans un autre cours

68
Politique de routage
• Pourquoi ?
• – Pour envoyer le trafic vers des routes choisies
• – Filtrage de préfixes en entrée et sortie
• – Pour forcer le respect des accords Client-ISP
• Comment ?
• Filtrage basé sur les AS - filter list, basé sur les préfixes - distribute list, Filtrage
avec des expression régulières, avec ACL
• Modification d’attributs BGP - route maps
Filtrage basé sur les préfixes - distribute list
• Préfix list comme Access list (ACL)
• Pour minimiser le nombre de mises à jour BGP envoyées entre les
homologues BGP.
• Réduire la quantité de ressources système requises pour générer et
traiter les mises à jour de routage en filtrant les mises à jour de
routage indésirables à la source. Par exemple, cette fonction peut être
utilisée pour réduire la quantité de traitement requise sur un routeur
qui n'accepte pas les routes complètes d'un réseau de fournisseur de
services.
Politique - Liste de préfixes
• Filtrage par voisin
• c’est une configuration incrémentielle
• Access-list utilisées très performantes
• Fonctionne en entrée comme en sortie
• Basé sur les numéros de réseaux (adressage IPv4 réseau/maque)
• Un “deny” est implicite à la fin de la liste
Distribute list - avec des ACL IP
Filtrage avec des expression régulières
• L’expression régulière décrit la forme que doit avoir l’argument
• Est utilisé pour comparer l’attribut AS-Path
• Exemple : ^3561.*100.*1$
• Grande fléxibilité qui permet de générer des expression complexes
Filtrage avec Route Maps
• Utiliser les route-maps pour définir ou modifier des attributs BGP
• • neighbor route-map
Insérer des préfixes dans BGP
• Deux façons d'insérer des préfixes dans BGP
• redistribuer statique (redistribute static)
• commande réseau (network command)

La commande BGP ‘redistribute’ permet de remplir la table BGP à partir de la table de routage en appliquant
des règles spécifiques.

Si votre réseau fonctionne avec plusieurs protocoles de routage, il est essentiel de maitriser la redistribution.

Le but étant que les routes se propagent à travers tout le réseau, même si celui-ci utilise plusieurs protocoles de routage

81
Insérer des préfixes dans BGP –
redistribuer statique
• Exemple de configuration:
routeur bgp 100
redistribuer statique (redistribute static)
route ip 102.10.32.0 255.255.254.0 serial0
• Une route statique doit exister avant que la commande « redistribuer »
fonctionne
• L’origine de la route sera “incomplete”, mais il est possible de le changer
avec une “route-map”
• À utiliser avec prudence!

82
Insérer des préfixes dans BGP –
commande réseau
Exemple de configuration
• network 198.10.4.0 mask 255.255.254.0
• ip route 198.10.0.0 255.255.254.0 serial 0
La route doit être présente dans la table de routage pour qu’il y ait une
annonce BGP
Origine de la route : IGP”

83
Configurer une agrégation
• Trois façons de configurer l'agrégation d’itinéraires
• redistribuer statique (redistribute static)
• adresse-agrégats
• commande réseau (network command)

84
Configurer une agrégation
• Exemple de configuration:
routeur bgp 100
redistribuer statique (redistribute static)
route ip 102.10.0.0 255.255.0.0 null0 250
• une route statique vers “null0” est appelée une route « pull up »
• Paquets envoyés ici uniquement s'il n'y a plus de correspondance spécifique dans la
table de routage
• distance de 250 assure que ceci est le dernier recours statique
• soins requis - voir plus haut!

85
Configurer une agrégation –
Commande réseau
• Exemple de configuration
routeur bgp 100
network 102.10.0.0 mask 255.255.0.0
route ip 102.10.0.0 255.255.0.0 null0 250
• Un itinéraire correspondant doit exister dans la table de routage
avant que le réseau soit annoncé
• Moyen le plus simple et le meilleur de générer un agrégat

86
Configurer une agrégation –
commande d’adresse agrégats
• Exemple de configuration:
routeur bgp 100
network 102.10.32.0 mask 255.255.252.0
aggregate-address 102.10.0.0 255.255.0.0 [summary-only]
• Nécessite un préfixe plus spécifique dans le tableau BGP avant que l’agrégat soit
annoncé
• Mot-clé uniquement de résumé (summary-only keyword)
• Mot-clé facultatif qui garantit que seul le résumé est annoncé si un préfixe plus spécifique
existe dans la table de routage
Résumé
BGP neighbour status
Router6>sh ip bgp sum
BGP router identifier 10.0.15.246, local AS number 10
BGP table version is 16, main routing table version 16
7 network entries using 819 bytes of memory
14 path entries using 728 bytes of memory
2/1 BGP path/bestpath attribute entries using 248 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1795 total bytes of memory
BGP activity 7/0 prefixes, 14/0 paths, scan interval 60 secs

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd


10.0.15.241 4 10 9 8 16 0 0 00:04:47 2
10.0.15.242 4 10 6 5 16 0 0 00:01:43 2
10.0.15.243 4 10 9 8 16 0 0 00:04:49 2
...

Version BGP Mises à jour Mises à jour en attente


envoyées et 88
reçues
Résumé
Table BGP
Router6>sh ip bgp
BGP table version is 30, local router ID is 10.0.15.246
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path


*>i10.0.0.0/26 10.0.15.241 0 100 0 i
*>i10.0.0.64/26 10.0.15.242 0 100 0 i
*>i10.0.0.128/26 10.0.15.243 0 100 0 i
*>i10.0.0.192/26 10.0.15.244 0 100 0 i
*>i10.0.1.0/26 10.0.15.245 0 100 0 i
*> 10.0.1.64/26 0.0.0.0 0 32768 i
*>i10.0.1.128/26 10.0.15.247 0 100 0 i
*>i10.0.1.192/26 10.0.15.248 0 100 0 i
...

89