Académique Documents
Professionnel Documents
Culture Documents
Sommaire
Introduction aux protocoles de routage Classification . 3 Introduction BGP .. 4-5 Intrts/Objectifs de BGP 6-7 Fonctionnement de BGP 8-10 Illustration de BGP : iBGP & eBGP .. 11 Processus (trs) simplifi de dcision BGP . 12-14 Activation de BGP sur un routeur 15-19 Activation de BGP4+ sur un routeur . 20 Activation de BGP Multicast sur un routeur 21 Annoncer des rseaux avec BGP . 22-30 Route-map ..31-33 Interface de Loopback . 34-36 eBGP multihop .. 37-38 Processus dtaill de dcision BGP Principaux critres .. 39 Processus de dcision BGP Paramtre AS-path . 40-42 Processus de dcision BGP Paramtre Origin . 41 Processus de dcision BGP Paramtre next-hop .. 43-44 Processus de dcision BGP Paramtre weight 46-50 Processus de dcision BGP Paramtre local-preference ... 52-53 Processus de dcision BGP Paramtre metric . 54-56 Processus de dcision BGP Paramtre community .. 57-58 Processus de dcision BGP Paramtre distance . 59-60 Processus dtaill de dcision BGP Algorithme .. 61-62 Filtrage BGP 63 Filtrage BGP bas sur les rseaux . 64-65 Filtrage BGP bas sur les AS-paths .. 66-70 Filtrage BGP bas sur les communauts 71 Peer-group 72-75 Confdration BGP . 76-78 Route reflector . 79-82 Glossaire ..83-84
Introduction BGP
Le protocole BGP permet dtablir un routage inter-domaine entre deux systmes autonomes, sans boucle de routage. Un systme autonome est dfini par un numro dAS (Autonomous System). Un AS peut dsigner un ou plusieurs routeurs dpendants dune mme entit administrative/technique. Un numro dAS est compris entre 1 et 65535: Numros publics/officiels : 164511 Numros privs : 6451265535 Une session BGP tablie entre deux routeurs dun mme AS est une session iBGP (Interior BGP) tandis quune session tablie entre deux routeurs dAS diffrents est une session eBGP (Exterior BGP).
Introduction BGP
BGP est LE PROTOCOLE officiel pour linterconnexion des rseaux doprateurs : BGP4 pour IPv4 BGP4+ pour IPv6 MBGP pour le Multicast Note: lorigine, MBGP signifie Multiprotocol BGP, et non pas Multicast BGP. Mais, lusage a fait que MBGP est maintenant utilis pour dsigner les extensions Multicast de BGP, tandis que MP-BGP est utilis pour MultiProtocol BGP (MP-BGP tant en outre dsormais un terme couramment utilis pour dsigner les extensions MPLS de BGP).
Intrts/Objectifs de BGP
Indpendance vis--vis des protocoles IGP : les routeurs dun mme AS peuvent utiliser plusieurs IGP diffrents pour changer entre eux des informations de routage, et un EGP pour router les paquets lextrieur de lAS. Pouvoir changer du trafic entre entits indpendantes : oprateurs, rseaux de collectes, gros sites mono ou multiconnects (multi-homing) souhaitant matriser leur politique de routage vis--vis de lextrieur. Avoir un protocole de routage minimisant le trafic induit sur les liaisons : seul le diffrentiel est transmis lors des changes BGP entre deux routeurs.
Intrts/Objectifs de BGP
Avoir un protocole de routage minimisant la taille des tables de routage manipuler : possibilit dagrger les tables de routage via le protocole CIDR (Classless Inter-Domain Routing). Donner une bonne stabilit au routage : viter les boucles de routage possibilit dliminer temporairement de la table de routage des rseaux considrs comme instables (route flap) en terme daccessibilit en y associant un compteur de pnalits (via une politique de dampening). Note: le dampening est dsactivable sur un routeur BGP via la commande : no bgp dampening Remarque : lutilisation de dampening est nanmoins de plus en plus conteste cause des effets de bords associs. Avoir un protocole fonctionnant lchelle de lInternet (scalableprotocol).
7
Fonctionnement de BGP
Les routeurs BGP changent des informations quant la manire de joindre des rseaux (liste de lensemble des chemins, ou ASpaths, pouvant tre emprunts dans le but datteindre une destination donne). Il est bien sr possible de laisser le protocole BGP choisir systmatiquement les chemins considrs comme les meilleurs, mais il est galement possible dintervenir sur la politique de routage, de filtrer des rseaux ou des AS-paths, dappliquer des priorits sur certains AS-paths
Fonctionnement de BGP
BGP utilise TCP (Transfer Control Protocol) comme protocole de transport (port 179). Deux routeurs BGP tablissent une connexion TCP entre eux et changent des messages pour ouvrir et confirmer la connexion. Ces routeurs sont alors appels routeurs de peering (peers) ou voisins (neighbors). Les messages transmis lors de louverture de la session sont, entre autres, le numro dAS, la version de BGP, le routeur ID, la valeur de keepalive Ds acceptation par le voisin BGP de ces donnes, la session BGP est tablie.
Fonctionnement de BGP
Le routeur BGP conserve en mmoire un numro de version de la table BGP, numro identique pour tous les voisins BGP. Le numro de version change chaque modification de la table de routage. Des paquets keepalive sont envoys pour vrifier que la connexion est toujours bien tablie entre les voisins BGP. Des paquets de notification sont envoys en rponse des erreurs ou conditions spciales (ou lors des changements dans les tables de routage).
10
AS 2
R2
R3
iBGP eBGP
AS 3
R4
eBGP
R5
11
12
13
14
15
AS 2
195.98.10.1 193.49.1.2
R3
195.98.40.1
R1
eBGP
R2
iBGP
R4
Note : les routeurs iBGP nont pas besoin dtre directement interconnects partir du moment o il y a un IGP les autorisant satteindre mutuellement, alors quil est trs frquent que deux routeurs eBGP soient directement interconnects.
Configuration routeur R1 router bgp 1 neighbor 193.49.1.2 remote-as 2 Configuration routeur R2 router bgp 2 neighbor 193.49.1.1 remote-as 1 neighbor 195.98.40.1 remote-as 2 Configuration routeur R4 router bgp 2 neighbor 195.98.10.1 remote-as 2
Session eBGP
Session iBGP
16
19
22
AS 2
eBGP
R1
R2
193.49.1.1
Configuration routeur R1 router bgp 1
193.49.1.2
network 193.1.0.0 mask 255.255.255.0 network 193.1.1.0 mask 255.255.255.0 neighbor 193.49.1.2 remote-as 2 Configuration routeur R2 router bgp 2 network 193.2.0.0 mask 255.255.255.0 network 193.2.1.0 mask 255.255.255.0 neighbor 193.49.1.1 remote-as 1
23
24
25
26
27
AS 2
eBGP
R1
R2
193.49.1.1
Configuration routeur R1 router bgp 1
193.49.1.2
SAN S AGREGATION Configuration routeur R1 router bgp 1 AVEC AGREGATION
network 193.1.0.0 mask 255.255.255.0 network 193.1.1.0 mask 255.255.255.0 neighbor 193.49.1.2 remote-as 2 Configuration routeur R2 router bgp 2 network 193.2.0.0 mask 255.255.255.0 network 193.2.1.0 mask 255.255.255.0 neighbor 193.49.1.1 remote-as 1
network 193.1.0.0 mask 255.255.255.0 network 193.1.1.0 mask 255.255.255.0 neighbor 193.49.1.2 remote-as 2 aggregate-address 193.1.0.0 255.255.254.0 Configuration routeur R2 router bgp 2 network 193.2.0.0 mask 255.255.255.0 network 193.2.1.0 mask 255.255.255.0 neighbor 193.49.1.1 remote-as 1 aggregate-address 193.2.0.0 255.255.254.0 summary-only
29
30
Route-map Principes
Une route-map permet essentiellement de contrler et modifier des informations de routage, deffectuer des filtrages et dintervenir sur la politique de routage globale. Une route-map peut sappliquer sur des informations de routage aussi bien en entre (modifications des informations de routage reues dun voisin BGP) quen sortie (modifications des informations de routage avant transmission un voisin BGP). Au niveau eBGP, mettre en place une politique de routage spcifique prend surtout un sens quand le routeur sur lequel on cherche appliquer cette politique est connect de manire multiple dautres voisins, et que donc plusieurs chemins (AS-paths) sont possibles pour atteindre une destination.
31
Route-map Syntaxe
Syntaxe : route-map [nom de la route-map] [ [ permit | deny ] | [numro dinstance de la route-map] ] Plusieurs instances, portant alors des numros diffrents, peuvent tre associes une mme route-map. Le routeur excutera les diffrentes instances de la route-map du plus petit numro dinstance vers le plus grand. Exemple : 1er groupe de conditions, et actions route-map XXX permit 10 si conditions remplies route-map XXX permit 20 2eme groupe de conditions, si 1ere
conditions non remplies, et actions si nouvelles conditions remplies (note : les rseaux ne rpondant aucune condition ne sont pas redistribus)
32
Route-map Syntaxe
Une route-map est base sur le principe suivant : si CONDITION remplie (match) alors ACTION (set) Exemples de conditions possibles : match as-path match community match ip address match metric Exemple dactions possibles : set as-path set community set local-preference set metric
33
35
R3
195.98.40.1
R2
loopback 2 195.98.10.10
Configuration routeur R2 interface loopback 2 ip address 195.98.10.10 255.255.255.0 router bgp 2 neighbor 195.98.40.10 remote-as 2 neighbor 195.98.40.10 update-source loopback 2 Configuration routeur R4 router bgp 2 neighbor 195.98.10.1 remote-as 2
iBGP
R4
loopback 4 195.98.40.10
Configuration routeur R2 [idem] Configuration routeur R4
OU interface loopback 4
ip address 195.98.40.10 255.255.255.0 router bgp 2 neighbor 195.98.10.10 remote-as 2 neighbor 195.98.10.10 update-source loopback 4
36
eBGP
193.49.1.1
AS 2
R2
195.98.10.2
R3
195.98.10.1 193.49.1.2
Attention : le multihop nest utilis que pour eBGP, pas pour iBGP !
R4
Note : il faut aussi configurer un routage statique pour autoriser les voisins non directement connects se joindre mutuellement.
Configuration routeur R1 router bgp 1 neighbor 195.98.10.2 remote-as 2 neighbor 195.98.10.2 ebgp-multihop Configuration routeur R3 router bgp 2 neighbor 193.49.1.1 remote-as 1 neighbor 193.49.1.1 ebgp-multihop
37
eBGP
AS 2
R2
R3
loopback 2 195.98.10.10
Attention : le multihop nest utilis que pour eBGP, pas pour iBGP ! Note : il faut aussi configurer un routage statique ou un IGP pour autoriser les voisins non directement connects se joindre mutuellement.
R4
38
Lalgorithme de dcision BGP utilise, entre autres, les critres suivants : AS-path, origin, next-hop, local-preference, metric, community
39
40
41
AS 2
eBGP
R1
AS 3
eBGP
R2
R3
eBGP
Note : afin dviter les boucles, un routeur eBGP nacceptera pas dun autre routeur les informations de routage qui ont pour origine son propre AS.
Dans lexemple ci-dessus, R1 a tabli un peering eBGP avec R2, R2 a tabli un peering eBGP avec R3, R1 a aussi tabli un peering eBGP avec R3, et on prend comme hypothse que R2 autorise le transit. Le routeur R1 connatra alors les AS-paths suivants : AS-path {3} pour joindre 193.3.0.0/24 et 193.3.1.0/24 (car peering direct entre R1 et R3) mais aussi AS-path {2 3} pour ces rseaux car R2 autorise le transit et les annonce R1. AS-path {2} pour joindre 193.2.0.0/24 et 193.2.1.0/24
42
44
AS 2
eBGP
R1
R2
193.49.1.2
iBGP
R3
193.49.1.1
195.98.10.1
195.98.10.2
Dans lexemple ci-dessus : R1 va considrer que pour joindre les rseaux 193.2.0.0/24 et 193.2.1.0/24, son next-hop est 193.49.1.2 R2 va considrer que pour joindre les rseaux 193.1.0.0/24 et 193.1.1.0/24, son next-hop est 193.49.1.1 R3 va considrer que pour joindre les rseaux 193.1.0.0/24 et 193.1.1.0/24, son next-hop est 193.49.1.1 (et non pas 195.98.10.1).
45
AS 2
eBGP
AS 3
R2
eBGP
R3
195.98.10.2
193.49.1.2
195.98.10.1
Il est possible de marquer tous les rseaux reus dun voisin BGP avec une valeur weight particulire : neighbor [adresse IP du voisin] weight [valeur weight] Dans lexemple ci-dessus, si R2 prfre systmatiquement R3 R1, voici la configuration possible de R2 :
Configuration routeur R2 router bgp 2 neighbor 193.49.1.1 remote-as 1 neighbor 193.49.1.1 weight 100 neighbor 195.98.10.2 remote-as 3 neighbor 195.98.10.2 weight 200
47
48
AS 2
eBGP eBGP
AS 3
193.50.1.2
AS 4
R3
eBGP
R1
193.49.1.1
R2
193.49.1.2
R4
eBGP
Objectif : R1 prfre les rseaux annoncs par R2, plutt que ceux annoncs par R3, et R1 ne veut des rseaux clients de R4 que via R3 et pas via R2. Do la configuration de R1 base sur une filter-list :
Configuration routeur R1 router bgp 1 neighbor 193.49.1.2 remote-as 2 neighbor 193.49.1.2 filter-list 11 weight 200 neighbor 193.50.1.2 remote-as 3 neighbor 193.50.1.2 filter-list 22 weight 100 ip as-path access-list 11 permit ^2$ ip as-path access-list 22 permit ^3$ ip as-path access-list 22 permit ^3_4$
50
AS 2
eBGP eBGP
AS 3
193.50.1.2
AS 4
R3
eBGP
R1
193.49.1.1
R2
193.49.1.2
R4
eBGP
Objectif : R1 prfre les rseaux annoncs par R2, plutt que ceux annonces par R3, et R1 ne veut des rseaux clients de R4 que via R3 et pas via R2. Do la configuration de R1 base sur une route-map :
Configuration routeur R1 router bgp 1 neighbor 193.49.1.2 remote-as 2 neighbor 193.49.1.2 route-map rm in neighbor 193.50.1.2 remote-as 3 neighbor 193.50.1.2 route-map rm in ip as-path access-list 11 permit ^2$ ip as-path access-list 22 permit ^3$ ip as-path access-list 22 permit ^3_4$ ip as-path access-list 33 permit .* route-map rm permit 10 match as-path 11 set weight 200 route-map rm permit 20 match as-path 22 set weight 100 route-map rm permit 30 match as-path 33
51
AS 2
R21
R22
R23 R24
iBGP
local-pref 200
AS 3
eBGP
R3
local-pref 150
Rseau / destination X
Dans lexemple ci-dessus, les routeurs de lAS 2 peuvent joindre le rseau ou la destination X de plusieurs manires (via lAS 1 ou via lAS 3). Une local-preference est donc applique sur les rseaux appris de AS 1 et de AS 3 pour prioriser par exemple la porte de sortie via AS 3 quand lAS 2 veut joindre la destination X.
53
54
55
AS 2
eBGP
m etric 1 50
R21 R22
R23 R24
eBGP
metric 200
Dans lexemple ci-dessus, lAS2 est doublement interconnect lAS 1. LAS 2 peut donc dcider de forcer lAS 1 passer en priorit par lun des deux chemins (ici, en loccurrence par le chemin R1-R21 plutt que le chemin R1-R22). Remarque : si au lieu de dfinir un chemin principal et un chemin secondaire, on dcidait par exemple dopter pour un partage de charge on peut faire appel la fonctionnalit bgp multi-path qui consiste tablir autant de peering quil y a dinterconnexion et ajouter la commande maximum-paths [nombre de chemins] dans la section router bgp [numro dAS du voisin] (un partage est alors effectu en fonction des destinations).
56
57
58
59
62
Filtrage BGP
Il existe plusieurs types de filtrage BGP : filtrage bas sur les rseaux filtrage bas sur les AS-paths filtrage bas sur les communauts
63
64
AS 2
AS 3
R1
193.49.1.1
eBGP
R2
193.49.1.2
eBGP
R3
195.98.10.2
195.98.10.1
Dans lexemple ci-dessus, si aucun filtrage nest effectu, R2 va retransmettre tous les rseaux clients de R1 R3. On souhaite par exemple que R2 ne retransmette R3 que le rseau 193.1.0.0/24 issu de R1 et pas le rseau 193.1.1.0/24. Do la configuration possible de R2, en utilisant une distribute-list :
Configuration routeur R2 router bgp 2 network 193.2.0.0 network 193.2.1.0 neighbor 193.49.1.1 remote-as 1 neighbor 195.98.10.2 remote-as 3 neighbor 195.98.10.2 distribute-list 10 out access-list 10 deny 193.1.1.0 0.0.0.255 access-list 10 permit 0.0.0.0 255.255.255.255 Note : une solution plus propre consisterait configurer une routemap en out sur le peering BGP et appliquer dans cette route-map une prefix-list acceptant seulement le prfixe 193.1.0.0/24 ou liminant le prfixe 193.1.1.0/24.
65
66
67
68
69
AS 2
AS 3
R1
193.49.1.1
eBGP
R2
193.49.1.2
eBGP
R3
195.98.10.2
195.98.10.1
Dans lexemple ci-dessus, si aucun filtrage nest effectu, R2 va retransmettre tous les rseaux clients de R1 R3. On souhaite par exemple que R2 ne retransmette R3 aucun des rseaux de R1. Do la configuration possible de R2, en appliquant une filterlist au niveau du peering avec R3 :
Configuration routeur R2 router bgp 2 network 193.2.0.0 network 193.2.1.0 neighbor 193.49.1.1 remote-as 1 neighbor 195.98.10.2 remote-as 3 neighbor 195.98.10.2 filter-list 10 out ip as-path access-list 10 deny _1$ ip as-path access-list 10 permit .* -
70
AS 2
AS 3
R1
193.49.1.1
eBGP
R2
193.49.1.2
eBGP
R3
195.98.10.2
195.98.10.1
Dans lexemple ci-dessus, si aucun filtrage nest effectu, R2 va retransmettre tous les rseaux clients de R1 R3. On souhaite par exemple que R2 ne retransmette R3 aucun des rseaux de R1. Do la configuration possible de R1, en utilisant une communaut prdfinie no-export :
Configuration routeur R1 router bgp 1 network 193.1.0.0 network 193.1.1.0 neighbor 193.49.1.2 remote-as 2 neighbor 193.49.1.2 send-community neighbor 193.49.1.2 route-map rm out route-map rm permit 10 set community no-export
71
Peer-group Principe
Un peer-group est un groupe de voisins BGP utilisant des rgles communes. Donc, plutt que dappliquer n fois ces rgles sur chacun des voisins BGP configurs sur un routeur, il suffit de dclarer lensemble de ces voisins BGP comme faisant partie dun mme peer-group et dappliquer les rgles directement sur ce groupe. Un peer-group peut tre utilis entre voisins iBGP mais aussi entre voisins eBGP. Les techniques classiques de filtrage peuvent tre appliques sur un peer-group (filter-list, route-map).
72
Peer-group Syntaxe
Pour dclarer un peer-group, la syntaxe est similaire celle utilise pour dclarer un voisin BGP : rappel dclaration dun voisin BGP : neighbor [adresse IP du voisin] remote-as [numro dAS du voisin] dclaration dun peer-group : neighbor [nom du peer-group] peer-group dclaration dun voisin dans le peer-group : neighbor [adresse IP du voisin] peer-group [nom du peer-group]
73
AS 2
R2
195.98.10.2
R3
195.98.30.2 195.98.30.1
195.98.10.1
R4
195.98.20. 2
193.49.1.1
193.49.1.2 195.98.20.1
Dans lexemple ci-dessus, on va considrer que R2 applique une politique de filtrage commune (avec filter-list et routemap) en entre/sortie vis--vis de R3 et R4. Do la configuration possible de R2 :
Configuration routeur R2 router bgp 2 neighbor 193.49.1.1 remote-as 1 neighbor pg peer-group neighbor pg remote-as 2 neighbor pg filter-list 11 in neighbor pg filter-list 22 out neighbor pg route-map rm1 in neighbor pg route-map rm2 out neighbor 195.98.10.2 peer-group pg neighbor 195.98.20.2 peer-group pg
74
AS 2
eBGP
195.220.1.1
AS 3
eBGP
eBGP
AS 4
195.220.1.2
R2
193.49.1.2
R3
195.98.10.2
R4
195.98.10.1
Dans lexemple ci-dessus, on va considrer que R2 applique une politique de filtrage commune (avec filter-list et routemap) en entre/sortie vis--vis de R1 et R3, mais pas avec R4. Do la configuration possible de R2 :
Configuration routeur R2 router bgp 2 neighbor 195.220.1.2 remote-as 4 neighbor pg peer-group neighbor pg filter-list 11 in neighbor pg filter-list 22 out neighbor pg route-map rm1 in neighbor pg route-map rm2 out neighbor 193.49.1.1 remote-as 1 neighbor 193.49.1.1 peer-group pg neighbor 195.98.10.2 remote-as 3 neighbor 195.98.10.2 peer-group pg
75
77
AS 2
eBGP
eBGP
AS 21
R2
eBGP
AS 22
R3
eBGP
AS 23
R4
193.49.1.2
195.98.10.1
195.98.10.2 195.220.1.1
195.220.1.2
Dans lexemple ci-dessus, on a dcoup lAS 2 entre 3 AS (AS 21, AS 22 et AS 23), do la configuration possible des routeurs:
Configuration routeur R1 router bgp 1 neighbor 193.49.1.2 remote-as 2 Configuration routeur R2 router bgp 21 bgp confederation identifier 2 bgp confederations peers 22 23 neighbor xxx.xxx.xxx.xxx remote-as 21 neighbor xxx.xxx.xxx.xxx remote-as 21 neighbor 195.98.10.2 remote-as 22 neighbor 195.220.1.2 remote-as 23 neighbor 193.49.1.1 remote-as 1 Configuration routeur R3 router bgp 22 bgp confederation identifier 2 bgp confederations peers 21 23 neighbor xxx.xxx.xxx.xxx remote-as 22 neighbor xxx.xxx.xxx.xxx remote-as 22 neighbor 195.98.10.1 remote-as 21 neighbor 195.220.1.2 remote-as 23
78
AS 1
R1
iBGP iBGP
AS 1
iBGP
iBGP
R1
iBGP iBGP
R2
iBGP
R4
iBGP
R2
R4
R3
R3
81
82
Glossaire
ACL AS BGP CIDR CPU EBGP EGP EIGRP IBGP ICMP IGP IGRP IS-IS Access-List Autonomous System Border Gateway Protocol Classless Inter-Domain Routing Central Processor Unit External Border Gateway Protocol Exterior Gateway Protocol Enhanced Interior Gateway Routing Protocol Internal Border Gateway Protocol Internet Control Message Protocol Interior Gateway Protocol Interior Gateway Routing Protocol Intermediate System to Intermediate System
83
Glossaire
MBGP MED MP-BGP MPLS MSDP NLRI OSPF PIM-SM RIP RP SAP SDR TCP Multiprotocol (Multicast) Border Gateway Protocol Multi Exit Discriminator MultiProtocol Border Gateway Protocol MultiProtocol Label Switching Multicast Source Discovery Protocol Network Layer Reachability Information Open Shortest Path First Protocol Independent Multicast - Sparse Mode Routing Information Protocol Rendez-vous Point Session Announcement Protocol Session Directory Transfer Control Protocol
84