Vous êtes sur la page 1sur 23

Border Gateway Protocol (BGP)

Border Gateway Protocol (BGP4) • Rappels : bases du routage


• Briques élémentaires
• Exercices
• Bases du protocole BGP
• Exercices
• Attributs de routes BGP
AFNOG 2001, 2002, 2004, • Calcul du meilleur chemin
2005,2006 • Exercices
1 2

Border Gateway Protocol (BGP)...

• Topologies typiques avec BGP


• Politiques de routage Le routage :


Exercices
Redondance / Partage de charge
quelques bases
• Etat de l’art (BCP, Best Current
Practices)

3 4

Routage IP Routage IP
• Chaque routeur (ou machine) décide comment • Routage par préfixe (Classless routing)
acheminer un paquet – une route est composée de
• L’expéditeur n’a pas à connaître le chemin • la destination
jusqu’à la destination • l’adresse du prochain routeur (next-hop)
• le masque de réseau permet de déterminer la taille de
• L’expéditeur doit seulement déterminer le l’espace d’adressage concerné (-> préfixe)
prochain saut (next-hop).
• Choix du préfixe le plus long
– Ce processus est répété jusqu’à arriver à la
– pour une destination donnée, il faut prendre la
destination
route la plus spécifique (le préfixe le plus grand)
• La table de routage est consultée afin de – exemple: adresse destination 35.35.66.42
déterminer le prochain saut • la table de routage contient 35.0.0.0/8, 35.35.64.0/19
5
and 0.0.0.0/0 6

1
Routage IP Les routes spécifiques sont
utilisées en premier
• Route par défaut (default route)
R3
– indique où expédier un paquet si la table de Tout 10/8 sauf
Adresse IP de 10.1/16
routage ne contient pas une route spécifique destination : 10.1.1.1
– c’est une configuration courant : la plupart des
machines disposent d’une (et une seule) route
R1 R2 R4
par défaut
– autre nom : passerelle par défaut (default 10/8 -> R3
10.1/16
10.1/16 -> R4
gateway) 20/8 -> R5
30/8 -> R6
…..
Table de routage IP de R2
7 8

Les routes spécifiques sont Les routes spécifiques sont


utilisées en premier utilisées en premier
R3 R3
Tout 10/8 sauf Tout 10/8 sauf
Adresse IP de 10.1/16 Adresse IP de 10.1/16
destination : 10.1.1.1 destination : 10.1.1.1

R1 R2 R4 R1 R2 R4
10.1/16 10.1/16
10/8 -> R3 10.1.1.1 & FF.0.0.0 10/8 -> R3
10.1/16 -> R4 est égal à Bingo ! 10.1/16 -> R4 10.1.1.1 & FF.FF.0.0
20/8 -> R5 10.0.0.0 & FF.0.0.0 20/8 -> R5 est égal à Re-Bingo !
10.1.0.0 & FF.FF.0.0
….. …..
Table de routage IP de R2 Table de routage IP de R2
9 10

Les routes spécifiques sont Les routes spécifiques sont


utilisées en premier utilisées en premier
R3 R3
Tout 10/8 sauf Tout 10/8 sauf
Packet: Destination 10.1/16 Adresse IP de 10.1/16
IP address: 10.1.1.1 destination : 10.1.1.1

R1 R2 R4 R1 R2 R4
10.1/16 10.1/16
10/8 -> R3
10/8 -> R3
10.1/16 -> R4
10.1/16 -> R4 Meilleure correspondance,
20/8 -> R5 10.1.1.1 & FF.0.0.0
20/8 -> R5 masque réseau de 16 bits
….. est égal à
Pas de corres-
20.0.0.0 & FF.0.0.0
pondance …..
Table de routage IP de R2
Table de routage IP de R2
11 12

2
Les routes spécifiques sont Routage dynamique
utilisées en premier
• On utilise toujours la route la plus • Les routeurs déterminent leur table de
spécifique (celle qui correspond au plus routage automatiquement à partir des
petit volume d’adresses IP) informations reçues des autres routeurs
• La route par défaut est notée 0.0.0.0/0 • Les routeurs s’échangent les information de
– ce qui permet d’utiliser l’algorithme décrit ci- topologie en utilisant divers protocoles
dessus • Les routeurs calculent ensuite un ou
– Il y a toujours correspondance. C’est la route la plusieurs “next-hops” pour chaque
moins spécifique. destination en essayant d’emprunter le
meilleur chemin
13 14

Table d’acheminement
• En anglais : forwarding table
• Permet de déterminer comment acheminer un
paquet dans le routeur
• Construite à partir de la table de routage
– Les meilleurs routes sont choisies dans la table de
Briques élémentaires
routage
• Effectue une recherche pour déterminer le
prochain saut et l’interface de sortie
• Commute le paquet sur l’interface de sortie avec
l’encapsulation adéquate (ex : PPP, FR, POS)
15 16

Briques élémentaires Système autonome (AS)


• Système autonome - Autonomous System AS 100
(AS)
• Type de routes
• IGP/EGP
• DMZ (zone démilitarisée) • Ensemble de réseaux partageant la même politique de
routage
• Politique
• Utilisation d’un même protocole de routage
• Trafic sortant • Généralement sous une gestion administration unique
• Trafic entrant • Utilisation d’un IGP au sein d’un même AS
17 18

3
Système autonome (AS)... Flux de routes et de paquets
paquets
sortie

• Caractérisé par un numéro d’AS accepte


Routing flow
annonce
AS2
AS 1 annonce accepte
• Il existe des numéros d’AS privés et publics
entrée
• Exemples : paquets

– Prestataire de services Internet Pour que AS1 et AS2 puissent communiquer :


– Clients raccordés à plusieurs prestataires AS1 annonce des routes à AS2
– Quiconque souhaite établir une politique de AS2 accepte des routes de AS1
routage spécifique AS2 annonce des routes à AS1
AS1 accepte des routes de AS2

19 20

Trafic en sortie Trafic entrant


• Paquets entrant dans votre réseau
• Paquets qui quittent le réseau
• Ce trafic dépend de :
– Choix de la route (ce que les autres vous
– Ce que vous annoncez à vos voisins
envoient)
– Votre adressage et plan d’AS
– Acceptation d’une route (ce que vous acceptez
des autres) – La politique mise en place par les voisins (ce
qu’ils acceptent comme annonces de votre réseau
– Politique et configuration (ce que vous faites des
et ce qu’ils en font)
annonces des autres)
– Accords de transit et d’échange de trafic

21 22

Types de routes Politique de routage


• Routes statiques
• Définition de ce que vous acceptez ou
– configurées manuellement
envoyez aux autes
• Routes “connectées
– connexion économique, partage de charge, etc...
– crées automatiquement quand une interface
réseau est “active” • Accepter des routes de certains FAI et pas
d’autres
• Routes dites “intérieures”
– routes au sein d’un AS
• Envoyer des routes à certains FAI et pas à
d’autres
– routes apprises par un IGP
• Préferrer les routes d’un FAI plutôt que d’un
• Routes dites “extérieures”
autre
– routes n’appartenant pas à l’AS local
– apprises par un EGP 23 24

4
Protocoles intérieurs vs.
Pourquoi a-t-on besoin d’un EGP ?
extérieurs

• Intérieurs (IGP) • Extérieurs (EGP)


• S’adapter à un réseau de grande taille – Découverte – Voisins explicitement
– hiérarchie automatique déclarézs
– limiter la portée des pannes – Confiance accordée aux – Connexion avec des
routeurs de l’IGP réseaux tiers
• Définir des limites administratives
– Les routes sont – Mettre des limites
• Routage politique diffusées sur l’ensemble administratives
– contrôler l’accessibilité des préfixes (routes) des routeurs de l’IGP

25 26

Hiérarchie dans les protocoles Zone démilitarisée (DMZ)

Autres FAI A C
Réseau
AS 100 DMZ
AS 101
BGP4
B D

BGP4 / OSPF E

BGP4 BGP4/Statique AS 102


NAP local
FDDI
Clients
Note: la technologie FDDI était à la mode voilà quelques temps, les points ’échange
utilisent plutôt des réseaux Ethernet, et en particulier des raccordements en GbE ou
10 GbE. • Le réseau démilitarisé est partagé entre plusieurs AS
27 28

Gestion de l’adressage (FAI) Bases de BGP

• Il faut réserver des adresses IP pour son


propre usage • Bases concernant le protocole
• Des adresses IP sont également allouées aux • Vocabulaire
clients • Messages
• Il faut prendre en considération la • Exploitation d’un routeur BGP
croissance de l’activité • Types de sessions BGP (eBGP/iBGP)
• Le prestataire “upstream” attribuera les • Comment annoncer les routes
adresses d’interconnexion dans ses blocs
29 30

5
Principes de base du protocole Principes de base (2)
Session

A C
• Les mises à jours sont incrémentielles
• BGP conserve le chemin d’AS pour atteindre un
AS 100 AS 101
réseau cible
B D • De nombreuses options permettent d’appliquer
• BGP est utilisé entre une politique de routage
E
AS
– si vous n’êtes raccordé qu’à un
seul AS vous n’avez pas besoin de AS 102
BGP
• BGP est transporté par le
protocole TCP
31 32

Vocabulaire Vocabulaire (2)


• Voisin (Neighbor)
• Transit - transport de vos données par un
– Routeur avec qui on a une session BGP
réseau tiers, en général moyennant paiement
• NLRI/Préfixe • Peering - accord bi-latéral d’échange de
– NLRI - network layer reachability information trafic
– Informations concernant l’accessibilité (ou pas) – chacun annonce uniquement ses propres réseaux
d’une route (réseau + masque) et ceux de ses clients à son voisin
• Router-ID (identifiant de routeur) • Default - route par défaut, où envoyer un
– Adresse IP la plus grande du routeur paquet si la table de routage de donne aucune
• Route/Path (chemin) information plus précise
– Préfixe (NLRI) annoncé par un voisin
33 34

Bases de BGP ... Sessions BGP


• Chaque AS est le point de départ d’un
ensemble de préfixes (NLRI) A C
• Les préfixes sont échangés dans les sessions AS 100 AS 101
BGP 220.220.8.0/24 220.220.16.0/24
B D
• Plusieurs chemins possibles pour un préfixe
• Choix du meilleur chemin pour le routage Routeurs BGP appelés E
• Les attributs et la configuration “politique” peers (voisins)
AS 102
permettent d’influencer ce choix du meilleur Session entre 2 AS
220.220.32.0/24
différents = External BGP
chemin
Connexion TCP/IP
eBG-
Note: les voisins eBGP doivent être directements raccordés.
35 36

6
Sessions BGP Sessions BGP

A C A C

AS 100 AS 101 AS 100 AS 101


220.220.8.0/24 220.220.16.0/24 220.220.8.0/24 220.220.16.0/24
B D B D

Les voisins d’un même Les voisins BGP s’éch-


E E
AS sont appelés des angent des messages
voisins internes AS 102 contenant des préfixes AS 102
(internal peers) 220.220.32.0/24 (NLRI) 220.220.32.0/24

Connexion TCP/IP Message de mise


iBGP à jour BGP
Note: les voisins iBGP peuvent ne pas être directement connectés.
37 38

Configuration de sessions BGP Configuration de sessions BGP


AS 100 Connexion TCP eBGP AS 101 AS 100 AS 101
Session TCP iBGP
222.222.10.0/30 222.222.10.0/30
A .2 220.220.8.0/24 .1 B .2 .1 C .2 220.220.16.0/24 .1 D A .2 220.220.8.0/24 .1 B .2 .1 C .2 220.220.16.0/24 .1 D

interface Serial 1 interface Serial 1


ip address 220.220.16.2 255.255.255.252 ip address 222.220.16.1 255.255.255.252
interface Serial 0 interface Serial 0
ip address 222.222.10.2 255.255.255.252 ip address 222.222.10.1 255.255.255.252 router bgp 101 router bgp 101
network 220.220.16.0 mask 255.255.255.0 network 220.220.16.0 mask 255.255.255.0
router bgp 100 router bgp 101 neighbor 220.220.16.1 remote-
remote-as 101 neighbor 220.220.16.2 remote-
remote-as 101
network 220.220.8.0 mask 255.255.255.0 network 220.220.16.0 mask 255.255.255.0
neighbor 222.222.10.1 remote-
remote-as 101 neighbor 222.222.10.2 remote-
remote-as 100

• Les sessions BGP sont établies en utilisant la commande BGP • Les sessions BGP sont établies en utilisant la commande BGP
“neighbor” du routeur “neighbor” du routeur
– Lorsque les numéros d’AS sont différents il s’agit d’une – Numéros d’AS différents -> BGP Externe (eBGP)
session BGP Externe (eBGP) – Numéros d’AS identiques -> BGP Interne (iBGP)
39 40

Configuration de sessions BGP Configuration de sessions BGP


AS 100 AS 100 215.10.7.2
215.10.7.1

B B
A A

215.10.7.3

Connexion TCP/IP Connexion TCP/IP


iBGP iBGP
C C

• Chaque routeur iBGP doit établir une session avec tous les • Il est recommandé d’utiliser des interfaces Loopback sur les
autres routeurs iBGP du même AS routeurs comme extrêmités des sessions iBGP
41 42

7
Configuration des sessions BGP Configuration des sessions BGP
AS 100 215.10.7.2 AS 100 215.10.7.2
215.10.7.1 215.10.7.1

B B
A A

215.10.7.3 215.10.7.3

iBGP TCP/IP
interface loopback 0 Connexion TCP/IP interface loopback 0
ip
Peeraddress 215.10.7.1 255.255.255.255
Connection iBGP ip address 215.10.7.2 255.255.255.255

router bgp 100


C C
router bgp 100
network 220.220.1.0 network 220.220.5.0
neighbor 215.10.7.2 remote-as 100 neighbor 215.10.7.1 remote-as 100
neighbor 215.10.7.2 update-
update-source loopback0 neighbor 215.10.7.1 update-
update-source loopback0
neighbor 215.10.7.3 remote-as 100 neighbor 215.10.7.3 remote-as 100
neighbor 215.10.7.3 update-
update-source loopback0 neighbor 215.10.7.3 update-
update-source loopback0

43 44

Configuration des sessions BGP Messages de mise à jour BGP


Format du message Taille (I Octet)
AS 100 215.10.7.2
Préfixe (Variable)
215.10.7.1 Longueur du champ “routes inacessibles” (2 Octets)

Routes supprimées (Variable)


Type d’attribut
B
A Longueur des champs “Attributs” (2 Octets)
Taille de l’attribut

Attributs du chemin (Variable) Valeur de l’attribut

215.10.7.3
Préfixe/Network Layer Reachability Information (Variable)
Taille (I Octet)
Connexion TCP/IP Préfixe (Variable)
iBGP
C
interface loopback 0 • Une mise à jour BGP permet d’annoncer une route (et une seule) à
ip address 215.10.7.3 255.255.255.255
un voisin, ou bien de supprimer plusieurs routes qui ne sont plus
router bgp 100 accessibles [note : depuis quelques années, une mise à jour BGP
network 220.220.1.0
neighbor 215.10.7.1 remote-as 100 peut concerner plusieurs préfixes]
neighbor 215.10.7.1 update-
update-source loopback0 • Chaque message contient des attributs comme : origine, chemin
neighbor 215.10.7.2 remote-as 100
neighbor 215.10.7.2 update-
update-source loopback0 d’AS, Next-Hop, ...
45 46

Mises à jour BGP — Préfixes/NLRI Mise à jour BGP — Attributs


• NLRI = Network Layer Reachability • Permet de transporter des informations liées
Information = Préfixes au préfixe
• Permet d’annoncer l’accessibilité d’une route – Chemin d’AS
• Composé des informations suivantes : – Adresse IP du “next-hop”
– Préfixe réseau – Local preference (préférence locale)
– Longueur du masque – Multi-Exit Discriminator (MED)
– Community (communauté)
– Origin (origine de la route)
– Aggregator (IP d’origine si aggrégation)
47 48

8
Attribut “chemin d’AS” Attribut “Next-Hop”
AS 300
• Liste les AS traversés pour AS 200 AS 100 AS 200 192.10.1.0/30 140.10.0.0/16
arriver à destination 170.10.0.0/16 180.10.0.0/16 150.10.0.0/16 C .1 .2 D
E
• Détection de boucles Network Path B
180.10.0.0/16 300 200 100 .2

/30
• Mise en œuvre de 170.10.0.0/16 300 200
Network Next-Hop Path

.2.0
160.10.0.0/16 192.20.2.1 100
AS 300

.20
politiques

192
.1
AS 400 • Prochain routeur pour joindre un réseau
150.10.0.0/16 A
• Dans une session eBGP c’est en général
Network Path
AS 100 une adresse locale
AS 500 180.10.0.0/16 300 200 100
160.10.0.0/16
170.10.0.0/16 300 200
150.10.0.0/16 300 400
Message
BGP
49 50

Attribut “Next-Hop” Attribut “Next-Hop”


AS 300 AS 300
AS 200 192.10.1.0/30 140.10.0.0/16 AS 200 192.10.1.0/30 140.10.0.0/16
150.10.0.0/16 C .1 .2 D 150.10.0.0/16 C .1 .2 D
E E
B B
.2 Network Next-Hop Path .2
/30

/30

Network Next-Hop Path


150.10.0.0/16 192.10.1.1 200
.2.0

.2.0

150.10.0.0/16 192.10.1.1 200


160.10.0.0/16 192.10.1.1 200 100
.20

.20

160.10.0.0/16 192.10.1.1 200 100


192

192

.1 .1

A • Prochain routeur pour joindre un réseau A • Le “next-hop” n’est pas modifié dans
• Dans une session eBGP c’est en général les sessions iBGP
AS 100 AS 100
160.10.0.0/16
une adresse locale 160.10.0.0/16
• Le “next-hop” est mis à jour dans les
Message
sessions eBGP Message
BGP BGP
51 52

Attribut “Next-Hop” (suite) Mises à jour BGP — Suppression


de routes
• Les adresses des “next-hops” doivent • Permet de retirer un réseau de la liste des
circuler dans l’IGP réseaux accessibles
• Recherche récursive des routes • Chaque route supprimée est composée de :
• Permet de concevoir la topologie BGP – son Préfixe
indépendemment de la topologie physique du – la longueur du masque
réseau
• En interne les bonnes décisions de routage
sont faites par l’IGP

53 54

9
Mises à jour BGP - Suppression de
routes Table du routeur BGP
BGP RIB
RIB = Routing Information Base
Network Next-Hop Path
*>i160.10.1.0/24 192.20.2.2 i
AS 321 *>i160.10.3.0/24 192.20.2.2 i
AS 123
.1 192.168.10.0/24 .2
Message
BGP

Withdraw Routes router bgp 100


192.192.25.0/24 network 160.10.0.0 255.255.0.0
no auto-summary

x
D 10.1.2.0/24
Rupture de connexion 192.192.25.0/24 D 160.10.1.0/24
D 160.10.3.0/24
R 153.22.0.0/16
S 192.1.1.0/24
La commande BGP ‘network’ peut être
utilisée pour remplir la table BGP à
Network Next-Hop Path Table de routage
150.10.0.0/16 192.168.10.2 321 200 partir de la table de routage
192.192.25.0/24 192.168.10.2 321

55 56

Table du routeur BGP Table du routeur BGP


BGP RIB BGP RIB
Network Next-Hop Path Network Next-Hop Path
*> 160.10.0.0/16 0.0.0.0 i *> 160.10.0.0/16 0.0.0.0 i
* i 192.20.2.2 i * i 192.20.2.2 i
s> 160.10.1.0/24 192.20.2.2 i s> 160.10.1.0/24 192.20.2.2 i
s> 160.10.3.0/24 192.20.2.2 i s> 160.10.3.0/24 192.20.2.2 i
*> 192.1.1.0/24 192.20.2.2 ?

router bgp 100 router bgp 100


network 160.10.0.0 255.255.0.0 network 160.10.0.0 255.255.0.0
aggregate-address 160.10.0.0 255.255.0.0 summary-only redistribute static route-map foo
no auto-summary no auto-summary

D 10.1.2.0/24 D 10.1.2.0/24 access-list 1 permit 192.1.0.0 0.0.255.255


D 160.10.1.0/24 D 160.10.1.0/24
D 160.10.3.0/24 D 160.10.3.0/24 route-map foo permit 10
R 153.22.0.0/16 R 153.22.0.0/16 match ip address 1
S 192.1.1.0/24 La commande BGP ‘aggregate- S 192.1.1.0/24
address’ permet d’installer dans la La commande BGP ‘redistribute’
table BGP une route aggrégée dès que permet de remplir la table BGP à partir
Route Table au-moins un sous-réseau est présent Route Table de la table de routage en appliquant
des règles spécifiques

57 58

Table du routeur BGP Table du routeur BGP


Processus “IN” Processus “Out’” Processus “IN” Processus “OUT”
BGP RIB BGP RIB
Network Next-Hop Path Network Next-Hop Path
*>i160.10.1.0/24 192.20.2.2 i *>i160.10.1.0/24 192.20.2.2 i
*>i160.10.3.0/24 192.20.2.2 i *>i160.10.3.0/24 192.20.2.2 i
Message Message * > 173.21.0.0/16 192.20.2.1 100 *> 173.21.0.0/16 192.20.2.1 100 Message Message

Network Next-Hop Path Network Next-Hop Path


173.21.0.0/16 192.20.2.1 100 160.10.1.0/24 192.20.2.2 200
160.10.3.0/24 192.20.2.2 200
173.21.0.0/16 192.20.2.1
192.20.2.2 200 100

• Le processus BGP “in” (entrée) • Le processus BGP “out” (sortie)


• reçoit les messages des voisins • message construit à partir des informations
• place le ou les chemins sélectionnés dans la table BGP de la table BGP Modification du “next-hop”

• le meilleur chemin (best path) est indiqué avec le signe “>” • modification du message selon configuration
• envoi du message aux voisins

59 60

10
35.0.0.0/8

Table du routeur BGP Un exemple…


A AS3561

BGP RIB
Network Next-Hop Path
*>i160.10.1.0/24 192.20.2.2 i AS200
*>i160.10.3.0/24 192.20.2.2 i
F
*> 173.21.0.0/16 192.20.2.1 100
B AS21
C

D 10.1.2.0/24 • Le meilleur chemin est installé dans la


D 160.10.1.0/24
D 160.10.3.0/24 table de routage du routeur si : D
R 153.22.0.0/16
S 192.1.1.0/24 • Le préfixe et sa taille sont uniques AS101 AS675
B 173.21.0.0/16 • la valeur “distance” du protocole est E
la plus faible
Table de routage
Reçoit 35.0.0.0/8 de F & D
61 62

Commandes BGP de base

Configuration
router bgp <AS-number>
Configuration de BGP neighbor <ip address> remote-as <as-number>
no auto-summary
Consultation d’informations
show ip bgp summary
show ip bgp neighbors

63 64

Ajout de préfixes dans la table BGP Pour insérer une route...

• Commande network ou redistribution


• Cela peut se faire de deux grandes manières network <ipaddress> mask <netmask>
– “redistribute static” (redistribuer les routes
redistribute <protocol name>
statiques)
– utiliser la commande BGP “network” • Il faut que la route soit présente dans la
table de routage du routeur pour qu’elle soit
insérée dans la table BGP

65 66

11
Utilisation de “redistribute static” Utilisation de “redistribute”
• Attention avec les redistributions
• Exemple de configuration – redistribute <protocole> signifie que toutes les
router bgp 109 routes du <protocole> seront transférées dans le
redistribute static
ip route 198.10.4.0 255.255.254.0 serial0
protocole courant
• La route statique doit exister avant que la – cette solution doit être controllée (volumétrie)
redistribution ne fonctionne – à éviter dans la mesure du possible
• L’origine de la route sera “incomplete”, mais il est – préférer l’utilisation de “route-maps” et avec un
possible de le changer avec une “route-map” contrôle administratif très strict
• A utiliser avec prudence !
67 68

Utilisation de la commande “network” Aggrégats et routes vers Null0


• Rappel : la route doit exister dans la table de
routage pour être annoncée via BGP
• Exemple de configuration router bgp 1
network 198.10.4.0 mask 255.255.254.0 network 198.10.0.0 mask 255.255.0.0
ip route 198.10.0.0 255.255.254.0 serial 0 ip route 198.10.0.0 255.255.0.0 null0 250

• La route doit être présente dans la table de • Une route vers “null0” est souvent utilisée pour
routage pour qu’il y ait une annonce BGP faire de l’aggrégation
• Origine de la route : IGP – destination en dernier ressort pour le préfixe
– distance de 250 pour être sûr d’être le dernier choix
• Très pratique pour la stabilité de la route
– il ne peut y avoir de “flap” !
69 70

Choix pour les sessions iBGP


• Les sessions iBGP ne doivent pas être liées à
la topologie du réseau
• L’IGP transporte les adresses de Loopback
router ospf <ID>
network <loopback-address> 0.0.0.0 Exercice 1 - Configuration de BGP
• Utiliser les adresses Loopback pour les
sessions iBGP
router bgp <AS1>
neighbor <x.x.x.x> remote-as <AS1>
neighbor <x.x.x.x> update-source loopback0

71 72

12
Liste des sessions et numéros d’AS

AS 1 A B AS 2

AS 3 C D AS 4
Exercice 2 - Configuration de
AS 5 E F AS 6 eBGP et iBGP
AS 7 G H AS 8

AS 9 I J AS 10

Session eBGP
73 74

Liste des sessions et numéros d’AS

AS 1 A B

Votre AS
AS 3 C D
HUB HUB
OSPF et IBGP
PC Router Router PC
Ethernet Ethernet
AS 5 E F
Serial Serial

EBGP EBGP AS 7 G H

vers les autres AS Vers les autres AS


AS 9 I J

Sessions eBGP
75 76
OSPF et IBGP

A B
213.172.133.96/28 213.172.133.112/28

C D
213.172.133.128/28 213.172.133.144/28 BGP 4, suite...
E F
213.172.133.160/28 213.172.133.176/28

G H
213.172.133.192/28 213.172.133.208/28

I J
213.172.133.224/28 213.172.133.240/28

77 78

13
Attributs de chemin BGP Liste des attributs de chemins BGP

• Encodés sous la forme d’un triplet Type,


• Origine
Longueur & Valeur (TLV)
• AS-path (chemin d’AS)
• Attributs Transitifs ou non transitif
• Next-hop (prochain routeur)
• Certains attributs sont obligatoires
• Multi-Exit Discriminator (MED)
• Ils sont utilisés pour choisir le meilleur
• Local preference (préférence locale)
chemin
• BGP Community (communauté BGP)
• Ils permettent d’appliquer des règles
d’ingéniérie du trafic (routage politique) • Autres...

79 80

AS-PATH (chemin d’AS) AS-Path (chemin d’AS)


• Attribut mis à jour par le routeur envoyant un AS 200 AS 100
• Liste des AS traversés par une 170.10.0.0/16 180.10.0.0/16
message BGP, en y ajoutant son propre numéro route
d’AS • Détection de boucles 180.10.0.0/16
ignorée
AS 300
• Contient la liste des AS traversés par le
AS 400
message 150.10.0.0/16

• Permet de détecter des boucles de routage


180.10.0.0/16 300 200 100
AS 500
– Une mise à jour reçue est ignorée si elle contient 170.10.0.0/16 300 200
150.10.0.0/16 300 400
son propre numéro d’AS
81 82

Next-Hop (prochain routeur) Next-Hop sur un réseau tiers


150.10.1.1 150.10.1.2

AS 200
AS 200 192.68.1.0/24 150.1.1.3
150.10.0.0/16 AS 300
A B
C
150.1.1.1
session
150.10.0.0/16 150.10.1.1
160.10.0.0/16 150.10.1.1 150.1.1.3
150.1.1.2

A B
AS 100
160.10.0.0/16
• Prochain routeur pour arriver à 192.68.1.0/24

destination AS 201
• Adresse de routeur ou de voisin en eBGP
• Non modifié en iBGP
• Serait plus efficace, mais c’est une mauvaise idée !
83 84

14
Next-Hop suite... Local Preference (préfence locale)
• Obligatoire pour iBGP, non utilisé dans
• Les routes vers l’ensemble des adresses de eBGP
next-hop sont à transporter dans l’IGP
• Recherche de route récursive dans les tables • Valeur par défaut chez Cisco : 100
• BGP n’est plus lié à la topologie du réseau • Paramètre local à un AS
• Les bonnes décisions de routage sont prises • Permet de préférer une sortie à une autre
par le protocole IGP
• Le chemin avec la préférence locale la
plus élevée est sélectionné
85 86

Local Preference (préférence locale) Multi-Exit Discriminator

AS 100
160.10.0.0/16
• Attribut non transitif
• Valeur numérique (0-0xffffffff)
• Permet de transporter des préférences relatives entre points
AS 200 AS 300 de sortie
D 500 800 E • Si les chemins viennent du même AS le MED peut être
utilisé pour comparer les routes
A B
AS 400 • Le chemin avec le plus petit MED est sélectionné
160.10.0.0/16 500
> 160.10.0.0/16 800 • Le métrique IGP peut être choisi comme MED
C

87 88

Multi-Exit Discriminator (MED) Origin (Origine de la route)

AS 200 • Indique l’origine du préfixe


• Trois valeurs
C – IGP - préfixe obtenu avec une clause “network”
Chemin choisi
192.68.1.0/24 2000 192.68.1.0/24 1000 • exemple : network 35.0.0.0
– EGP - Redistribué par un EGP
A B – Incomplete - Redistribué par un IGP
192.68.1.0/24 • exemple : redistribute ospf
AS 201 • IGP < EGP < INCOMPLETE

89 90

15
Communautés BGP Communautés BGP

Communauté Local Preference


• Transitives, attribut facultatif FAI AS 200
201:110
201:120
110
120
• Valeur numérique (0-0xffffffff)
C D
• Permettent de créer des groupes de destinations
• Chaque destination peut appartenir à plusieurs
communautés Communauté:201:110 Communauté:201:120

• Attribut très flexible, car il permet de faire des A B


choix avec des critères inter ou intra-AS 192.68.1.0/24
Client AS 201

91 92

Poids (Weight) Distance administrative


• Les routes peuvent être apprises par plusieurs
• Attribut spécifique Cisco utilisé lorsqu’il y a protocoles de routage
plus d’une route vers la même destination
– il faut les classifier pour faire un choix
• Attribut local à un routeur (non propagé • La route issue du protocole avec la plus faible
ailleurs) distance est installée dans la table de routage
• Valeur par défaut 32768 pour les chemins dont • Distances par défaut en BGP:
l’origine est le routeur et 0 pour les autres – local (routes provenant du routeur) : 200
– eBGP : 20, iBGP : 200
• Lorsqu’il y a plusieurs choix, on préferra la
route dont le poids est le plus élevé. • Cela n’a pas d’impact dans l’algorithme de choix
des chemins BGP, mais il y a un impact quand à
installer ou pas une route BGP dans la table de
93 routage IP 94

Synchronization (synchronisation) Synchronization (synchronisation)


1880

C • Spécifique IOS Cisco : BGP n’annoncera pas


A
D OSPF une route avant que l’ensemble des routeurs de
690 35/8 l’AS ne l’ait apprise par un IGP
209
B • Désactiver la synchronisation si :
• C ne tourne pas BGP (non-pervasive BGP) – Votre AS ne sert pas d’AS de transit, ou
• A n’annoncera pas 35/8 à D tant qu’il ne l’aura pas appris – Tous les routeurs de transit tournent BGP, or
par l’IGP
• Il faut désactiver la synchronisation pour éviter ce – iBGP est utilisé sur le cœur de réseau (backbone)
problème
router bgp 1880
no sync

95 96

16
Sélection d’une route BGP (bestpath) Sélection d’une route BGP ...
Il ne peut y avoir qu’un seul meilleur chemin ! (sauf multipath)
• Choisir le plus court chemin d’AS
en comptant le nombre d’AS dans l’attribut AS-Path
• La route doit être synchronisée
• Prendre l’origine de valeur la plus faible
C’est à dire être dans la table de routage IGP < EGP < INCOMPLETE
• Le “Next-hop” doit être joignable • Choisir le plus petit MED
Il se trouve dans la table de routage pour des chemins en provenance d’un même AS

• Prendre la valeur la plus élevée pour le poids (weight) • Préférer une route Externe sur une route Interne
prendre la sortie la plus proche
Critère spécifique Cisco et local au routeur
• Choisir le “next-hop” le plus proche
• Choisir la préférence locale la plus élevée Plus faible métrique IGP, donc plus proche de la sortie de l’AS
Appliqué pour l’ensemble des routeurs de l’AS
• Plus petit “Router-ID”
• La route est d’origine locale • Adresse IP du voisin la plus petite
Via une commande BGP “redistribute” ou “network”

97 98

Sélection d’une route BGP...


AS 100

Politique de routage - Liste de


AS 200 AS 300
préfixes, Route Maps et Listes de
D distribution (distribute lists)
Augmenter la taille de
l’attribut AS-Path au-moins
A B de 1 élément
AS 400
Politique AS 400 pour joindre AS100
AS 200 est préférré
AS 300 en secours
99 100

Politique de routage Politique - Liste de préfixes


• Pourquoi ? • Filtrage par voisin
– Pour envoyer le trafic vers des routes choisies – c’est une configuration incrémentielle
– Filtrage de préfixes en entrée et sortie • Access-list utilisées très performantes
– Pour forcer le respect des accords Client-ISP • Fonctionne en entrée comme en sortie
• Comment ? • Basé sur les numéros de réseaux (adressage
– Filtrage basé sur les AS - filter list IPv4 réseau/maque)
– Filtrage basé sur les préfixes - distribute list • Un “deny” est implicite à la fin de la liste
– Modification d’attributs BGP - route maps

101 102

17
Liste de préfixes - Exemples Listes de préfixes - Exemples 2
• Ne pas accepter la route par défaut • Dans 192/8 interdire /25 et au-delà
– ip prefix-list Exemple deny 0.0.0.0/0
– ip prefix-list Exemple deny 192.0.0.0/8 ge 25
• Autoriser le préfixe 35.0.0.0/8 – Ceci interdit les préfixes de taille /25, /26, /27, /28, /29,
– ip prefix-list Exemple permit 35.0.0.0/8
/30, /31 and /32 dans le bloc 192.0.0.0/8
• Interdire le préfixe 172.16.0.0/12 – Très ressemblant au précédent exemple
– ip prefix-list Exemple deny 172.16.0.0/12
• Dans 192/8 autoriser les préfixes entre /12 et /20
• Dans 192/8 autoriser jusqu’au /24 – ip prefix-list Exemple permit 192.0.0.0/8 ge 12 le 20
– ip prefix-list Exemple permit 192.0.0.0/8 le 24
– Ceci interdit les préfixes de taille /8, /9, /10, /11, /21, /22
– Ceci autorisera toute route dans 192.0.0.0/8, sauf les et au-delà dans le bloc 192.0.0.0/8
/25, /26, /27, /28, /29, /30, /31 and /32
• Autoriser tous les préfixes
– ip prefix-list Exemple 0.0.0.0/0 le 32
103 104

Utilisation des listes de préfixes Distribute list - avec des ACL IP

• Exemple de configuration
access-list 1 deny 10.0.0.0
router bgp 200
access-list 1 permit any
network 215.7.0.0
access-list 2 permit 20.0.0.0
neighbor 220.200.1.1 remote-as 210
neighbor 220.200.1.1 prefix-list PEER-IN in … il faut créer des ACL avec l’ajout de nouveaux préfixes ...
neighbor 220.200.1.1 prefix-list PEER-OUT out
! router bgp 100
ip prefix-list PEER-IN deny 218.10.0.0/16 neighbor 171.69.233.33 remote-as 33
ip prefix-list PEER-IN permit 0.0.0.0/0 le 32
neighbor 171.69.233.33 distribute-list 1 in
ip prefix-list PEER-OUT permit 215.7.0.0/16
neighbor 171.69.233.33 distribute-list 2 out
ip prefix-list PEER-OUT deny 0.0.0.0/0 le 32

Tout accepter du voisin, sauf nos réseaux


Envoyer uniquement nos réseaux au voisin 105 106

Filtrage avec des expressions régulières


Filtrage avec des expression régulières
ip as-path access-list 1 permit 3561
ip as-path access-list 2 deny 35
• L’expression régulière décrit la forme que doit ip as-path access-list 2 permit .*
avoir l’argument
router bgp 100
• Est utilisé pour comparer l’attribut AS-Path neighbor 171.69.233.33 remote-as 33
neighbor 171.69.233.33 filter-list 1 in
• Exemple : ^3561.*100.*1$ neighbor 171.69.233.33 filter-list 2 out

• Grande fléxibilité qui permet de générer des


Accepter les routes d’origine AS 3561. Tout le reste est
expression complexes rejeté en entrée (“deny” implicite).
Ne pas annoncer les routes de l’AS 35, mais tout le reste est
envoyé (en sortie).
107 108

18
Route-map : clauses match & set
Route Maps
Match Clauses Set Clauses
router bgp 300
neighbor 2.2.2.2 remote-as 100 • AS-path • AS-path prepend
neighbor 2.2.2.2 route-map SETCOMMUNITY out
!
• Community • Community
route-map SETCOMMUNITY permit 10 • IP address • Local-Preference
match ip address 1
match community 1 • MED
set community 300:100
!
• Origin
access-list 1 permit 35.0.0.0 • Weight
ip community-list 1 permit 100:200
• Autres...

109 110

Exemple de configuration avecRoute-map

neighbor <y.y.y.y> route-map AS200_IN in


ISP2 !
route-map AS200_IN permit 10
match community 1

!
set local-preference 200
BGP et architecture de réseaux
ethH eth H ip community-list 1 permit 100:200
H H
C21 C22

ISP3
neighbor <x.x.x.x> route-map AS100_IN in
!
Inbound route-map route-map AS100_IN permit 10
to set community set community 100:200

eth eth
H H H H
C31 C32
111 112

AS feuille
AS “feuille” (stub AS)
• Situation ne nécessitant pas de BGP AS 101
B
• Route par défaut chez le FAI ISP
A
• Le FAI annonce vos réseaux dans on
AS
AS 100
• La politique de routage de votre FAI Client

est également la vôtre

113 114

19
AS multi-homé
AS multi-raccordé (multi-homed)
AS 100 AS 300
• Les routeurs d’extrêmité font du BGP ISP
A D ISP

• Sessions IBGP entre ces routeurs B C

• Il faut redistribuer les routes apprises AS 200


client
avec prudence dans l’IGP, ou bien
utiliser une route par défaut
• Plus d’informations plus loin...

115 116

Réseau typique d’un FAI


Réseau d’un FAI
• IBGP permet de transporter les routes AS 100 A H AS 200

extérieures à l’AS B C

AS 300
• Un IGP permet de gérer la topologie du FAI
D F
réseau E

• Un maillage complet iBGP est requis


G

AS 400

117 118

Partage de charge - 1 chemin Partage de charge - Plusieurs chemins


Routeur A:
interface loopback 0
disponibles
ip address 20.200.0.1 255.255.255.255
! Routeur A:
router bgp 100 router bgp 100
neighbor 10.200.0.2 remote-as 200
neighbor 10.200.0.2 update-source loopback0
neighbor 10.200.0.1 remote-as 200
neighbor 10.200.0.2 ebgp-multi-hop 2 neighbor 10.300.0.1 remote-as 200
! maximum-paths 2
ip route 10.200.0.2 255.255.255.255 <DMZ-link1, link2>
Loopback 0
A 10.200.0.2 A
AS100 AS200 100 200
Loopback 0
20.200.0.1

Note : A n’annoncera que 1 seul “bestpath” à ses voisins iBGP

119 120

20
Route par défaut des FAI
Redondance - Multi-homing
• Permet d’économiser la mémoire et la
• Etre connecté de manière fiable à l’Internet puissance de calcul
• 3 situations courantes en multi-homing • Le FAI envoie une route par défaut BGP
– accepter la route par défaut des prestataires – le métrique IGP permet de choisir le FAI
– clients + route par défaut chez les prestataires • La politique des FAI détermine votre
– recevoir toutes les routes de tous les voisins
politique de trafic entrant
• Adressage IP – Il est cependant possible d’influencer cela en
– fourni par les prestataires “upstream”, ou utilisant une politique de sortie, par exemple: AS-
– obtenu directement auprès d’un registre IP path prepend

121 122

Route par défaut des FAI Clients + route par défaut des FAI
• Consommation modérée de mémoire et CPU
• Gestion individuelle des routes des clients et route
FAI FAI
AS 200 AS 300 par défaut pour le reste
D E
Route par défaut reçue du FAI Route par défaut reçue du FAI
– il est nécessaire de connaître les routes du client !
A B • Politique de routage entrant laissée aux FAI
AS 400

C
choisis
– mais il est possible d’influencer ces choix (exemple : as-path prepend)

123 124

Les ISP annoncent les routes de


leurs clients Gérer toutes les routes “full routing”
Client • Plus de consommation mémoire et CPU
AS 100
160.10.0.0/16 • Contrôle plus poussé sur la politique de
routage
FAI FAI
AS 200 AS 300 • Les AS de transit gèrent généralement toutes
D E les routes
A B • BGP est généralement le principal protocole
C choisira le plus
AS 400
court chemin d’AS de routage
C
125 126

21
Tous les prestataires envoient Etat de l’art
toutes les routes Choix de l’IGP dans le Backbone
AS 100 AS 500
• L’IGP assure la gestion de la topologie de
votre infrastructure - pas des réseaux de vos
clients
AS 200 AS 300 • L’IGP doit converger rapidement
D E • L’IGP doit transporter les routes et masques -
OSPF, IS-IS, EIGRP
A B
C choisi le plus court
chemin d’AS
AS 400

127 128

Etat de l’art... Etat de l’art...


Raccorder un client Se raccorder à d’autres FAI

• Routes statiques
– Vous les contrôlez directement • Annoncez uniquement vos réseaux
– pas de “flaps” • Acceptez le minimum nécessaire
• Protocole de routage dynamique • Prendre le plus court chemin vers la sortie
– Vous devez filtrer ce que votre client annonce • Agrégez les routes !!!
– Risque de “flaps” • FILTREZ ! FILTREZ! FILTEZ!
• Utiliser BGP pour les clients “multi-homés”

129 130

Etat de l’art...
Les points d’échange

Exercice 3 - Se connecter à un
• Les raccordements longue distance sont
FAI
chers
• Ils permettent de profiter d’un point unique
pour se raccorder à plusieurs partenaires

131 132

22
BIG GIANT TIER 1 ISP
80.248.71.0/24
ISP 4 AS 4

80.248.71.64/26
Exercice 4 - Changement de
80.248.71.128/25
peer politique de routage BGP
ISP 2 AS 2 ISP 3 AS 3

MEDIUM
MEDIUM TIER 2
TIER 2 ISP ISP

ISP 1 80.248.71.192/26
AS 1
SMALL
TIER 3 ISP
133 134

Questions & réponses

135

23

Vous aimerez peut-être aussi