Guide BGP : Routage et Politiques
Guide BGP : Routage et Politiques
BGP4 et MP-BGP4
Section 1
AfNOG 2008
Rabat, 26-30 Mai 2008
aalain@[Link]
1
Border Gateway Protocol (BGP)
• Rappels : bases du routage
• Briques élémentaires
• Exercices
• Bases du protocole BGP
• Exercices
• Attributs de routes BGP
• Calcul du meilleur chemin
• Exercices
2
Border Gateway Protocol (BGP)...
3
Le routage : quelques
bases
4
Routage IP
• Chaque routeur (ou machine) décide comment
acheminer un paquet
• L’expéditeur n’a pas à connaître le chemin jusqu’à
la destination
• L’expéditeur doit seulement déterminer le prochain
saut (next-hop).
– Ce processus est répété jusqu’à arriver à la destination
• La table de routage est consultée afin de déterminer
le prochain saut
5
Routage IP
• Routage par préfixe (Classless routing)
– une route est composée de
• la destination
• l’adresse du prochain routeur (next-hop)
• le masque de réseau permet de déterminer la taille de l’espace
d’adressage concerné (-> préfixe)
• Choix du préfixe le plus long
– pour une destination donnée, il faut prendre la route la
plus spécifique (le préfixe le plus grand)
– exemple: adresse destination [Link]
• la table de routage contient [Link]/8, [Link]/19 and
[Link]/0
6
Routage IP
• Route par défaut (default route)
– indique où expédier un paquet si la table de routage ne
contient pas une route spécifique
– c’est une configuration courant : la plupart des
machines disposent d’une (et une seule) route par
défaut
– autre nom : passerelle par défaut (default gateway)
7
Les routes spécifiques sont utilisées
en premier
R3
Tout 10/8 sauf
Adresse IP de 10.1/16
destination : [Link]
R1 R2 R4
10/8 -> R3
10.1/16 -> R4 10.1/16
20/8 -> R5
30/8 -> R6
…..
Table de routage IP de R2
8
Les routes spécifiques sont utilisées
en premier
R3
Tout 10/8 sauf
Adresse IP de 10.1/16
destination : [Link]
R1 R2 R4
10.1/16
…..
Table de routage IP de R2
9
Les routes spécifiques sont utilisées
en premier
R3
Tout 10/8 sauf
Adresse IP de 10.1/16
destination : [Link]
R1 R2 R4
10.1/16
10/8 -> R3
10.1/16 -> R4 [Link] & [Link].0.0
20/8 -> R5 est égal à Re-Bingo !
[Link] & [Link].0.0
…..
Table de routage IP de R2
10
Les routes spécifiques sont utilisées
en premier
R3
Tout 10/8 sauf
Packet: Destination 10.1/16
IP address: [Link]
R1 R2 R4
10.1/16
10/8 -> R3
10.1/16 -> R4
20/8 -> R5 [Link] & FF.0.0.0
….. est égal à
[Link] & FF.0.0.0 Pas de corres-
pondance
Table de routage IP de R2
11
Les routes spécifiques sont utilisées
en premier
R3
Tout 10/8 sauf
Adresse IP de 10.1/16
destination : [Link]
R1 R2 R4
10.1/16
10/8 -> R3
10.1/16 -> R4 Meilleure correspondance,
20/8 -> R5 masque réseau de 16 bits
…..
Table de routage IP de R2
12
Les routes spécifiques sont utilisées
en premier
• On utilise toujours la route la plus spécifique
(celle qui correspond au plus petit volume
d’adresses IP)
• La route par défaut est notée [Link]/0
– ce qui permet d’utiliser l’algorithme décrit ci-dessus
– Il y a toujours correspondance. C’est la route la
moins spécifique.
13
Routage dynamique
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 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
Briques élémentaires
16
Briques élémentaires
17
Système autonome (AS)
AS 100
18
Système autonome (AS)...
19
Flux de routes et de paquets
paquets
sortie
accepte annonce
AS 1 annonce
Routing flow
accepte
AS2
entrée
paquets
20
Trafic en sortie
21
Trafic entrant
• Paquets entrant dans votre réseau
• Ce trafic dépend de :
– Ce que vous annoncez à vos voisins
– Votre adressage et plan d’AS
– La politique mise en place par les voisins (ce qu’ils
acceptent comme annonces de votre réseau et ce qu’ils
en font)
22
Types de routes
• Routes statiques
– configurées manuellement
• Routes “connectées
– crées automatiquement quand une interface réseau est
“active”
• Routes dites “intérieures”
– routes au sein d’un AS
– routes apprises par un IGP
• Routes dites “extérieures”
– routes n’appartenant pas à l’AS local
– apprises par un EGP
23
Politique de routage
• Définition de ce que vous acceptez ou envoyez aux
autes
– connexion économique, partage de charge, etc...
• Accepter des routes de certains FAI et pas d’autres
• Envoyer des routes à certains FAI et pas à d’autres
• Préferrer les routes d’un FAI plutôt que d’un autre
24
Pourquoi a-t-on besoin d’un EGP ?
25
Protocoles intérieurs vs. extérieurs
26
Hiérarchie dans les protocoles
Autres FAI
BGP4
BGP4 / OSPF
BGP4 BGP4/Statique
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.
27
Zone démilitarisée (DMZ)
A C
Réseau
AS 100 DMZ AS 101
B D
AS 102
29
Bases de BGP
30
Principes de base du protocole
Session
A C
AS 100 AS 101
B D
E
• BGP est utilisé entre AS
– si vous n’êtes raccordé qu’à un seul
AS vous n’avez pas besoin de BGP AS 102
• BGP est transporté par le
protocole TCP
31
Principes de base (2)
• Les mises à jours sont incrémentielles
• BGP conserve le chemin d’AS pour atteindre un
réseau cible
• De nombreuses options permettent d’appliquer une
politique de routage
32
Vocabulaire
• Voisin (Neighbor)
– Routeur avec qui on a une session BGP
• NLRI/Préfixe
– NLRI - network layer reachability information
– Informations concernant l’accessibilité (ou pas) d’une
route (réseau + masque)
• Router-ID (identifiant de routeur)
– Adresse IP la plus grande du routeur
• Route/Path (chemin)
– Préfixe (NLRI) annoncé par un voisin
33
Vocabulaire (2)
• Transit - transport de vos données par un réseau
tiers, en général moyennant paiement
• Peering - accord bi-latéral d’échange de trafic
– chacun annonce uniquement ses propres réseaux et
ceux de ses clients à son voisin
• Default - route par défaut, où envoyer un paquet
si la table de routage de donne aucune
information plus précise
34
Bases de BGP ...
• Chaque AS est le point de départ d’un
ensemble de préfixes (NLRI)
• Les préfixes sont échangés dans les
sessions BGP
•
Plusieurs chemins possibles pour un préfixe
•
Choix du meilleur chemin pour le routage
•
Les attributs et la configuration “politique”
permettent d’influencer ce choix du meilleur
chemin
35
Sessions BGP
A C
AS 100 AS 101
[Link]/24 [Link]/24
B D
Connexion TCP/IP
eBG-
Note: les voisins eBGP doivent être directements raccordés.
36
Sessions BGP
A C
AS 100 AS 101
[Link]/24 [Link]/24
B D
Connexion TCP/IP
iBGP
Note: les voisins iBGP peuvent ne pas être directement connectés.
37
Sessions BGP
A C
AS 100 AS 101
[Link]/24 [Link]/24
B D
Message de mise
à jour BGP
38
Configuration de sessions BGP
AS 100 Connexion TCP eBGP AS 101
[Link]/30
A .2 [Link]/24 .1 B .2 .1 C .2 [Link]/24 .1 D
•
Les sessions BGP sont établies en utilisant la commande BGP
“neighbor” du routeur
– Lorsque les numéros d’AS sont différents il s’agit d’une session BGP
Externe (eBGP)
39
Configuration de sessions BGP
AS 100 AS 101
Session TCP iBGP
[Link]/30
A .2 [Link]/24 .1 B .2 .1 C .2 [Link]/24 .1 D
•
Les sessions BGP sont établies en utilisant la commande BGP
“neighbor” du routeur
– Numéros d’AS différents -> BGP Externe (eBGP)
– Numéros d’AS identiques -> BGP Interne (iBGP)
40
Configuration de sessions BGP
AS 100
B
A
Connexion TCP/IP
iBGP
C
•
Chaque routeur iBGP doit établir une session avec tous les
autres routeurs iBGP du même AS
41
Configuration de sessions BGP
AS 100 [Link]
[Link]
B
A
[Link]
Connexion TCP/IP
iBGP
C
•
Il est recommandé d’utiliser des interfaces Loopback sur les
routeurs comme extrêmités des sessions iBGP
42
Configuration des sessions BGP
AS 100 [Link]
[Link]
B
A
[Link]
iBGP TCP/IP
interface loopback 0
Peer Connection
ip address [Link] [Link]
43
Configuration des sessions BGP
AS 100 [Link]
[Link]
B
A
[Link]
C
router bgp 100
network [Link]
neighbor [Link] remote-as 100
neighbor [Link] update-source loopback0
neighbor [Link] remote-as 100
neighbor [Link] update-source loopback0
44
Configuration des sessions BGP
AS 100 [Link]
[Link]
B
A
[Link]
Connexion TCP/IP
iBGP
C
interface loopback 0
ip address [Link] [Link]
45
Messages de mise à jour BGP
Format du message Taille (I Octet)
Préfixe (Variable)
Longueur du champ “routes inacessibles” (2 Octets)
Préfixe (Variable)
•
Une mise à jour BGP permet d’annoncer une route (et une seule) à
un voisin, ou bien de supprimer plusieurs routes qui ne sont plus
accessibles [note : depuis quelques années, une mise à jour BGP
peut concerner plusieurs préfixes]
•
Chaque message contient des attributs comme : origine, chemin
d’AS, Next-Hop, ...
46
Mises à jour BGP — Préfixes/NLRI
47
Mise à jour BGP — Attributs
48
Attribut “chemin d’AS”
•
Liste les AS traversés pour AS 200 AS 100
arriver à destination [Link]/16 [Link]/16
•
Détection de boucles Network Path
[Link]/16 300 200 100
•
Mise en œuvre de [Link]/16 300 200
politiques AS 300
AS 400
[Link]/16
Network Path
[Link]/16 300 200 100
AS 500
[Link]/16 300 200
[Link]/16 300 400
49
Attribut “Next-Hop”
AS 300
AS 200 [Link]/30
[Link]/16
[Link]/16 C .1 .2 D
E
B
.2
Network Next-Hop Path
/30
.1
•
Prochain routeur pour joindre un réseau
A
•
Dans une session eBGP c’est en général
AS 100 une adresse locale
[Link]/16
Message
BGP
50
Attribut “Next-Hop”
AS 300
AS 200 [Link]/30
[Link]/16
[Link]/16 C .1 .2 D
E
B
.2 Network Next-Hop Path
/30
.1 •
Prochain routeur pour joindre un réseau
A •
Dans une session eBGP c’est en
général
AS 100
[Link]/16
une adresse locale
•
Le “next-hop” est mis à jour dans les
sessions eBGP
Message
BGP
51
Attribut “Next-Hop”
AS 300
AS 200 [Link]/30
[Link]/16
[Link]/16 C .1 .2 D
E
B
.2
Network Next-Hop Path
/30
.1
Message
BGP
52
Attribut “Next-Hop” (suite)
53
Mises à jour BGP — Suppression de
routes
• Permet de retirer un réseau de la liste des réseaux
accessibles
• Chaque route supprimée est composée de :
– son Préfixe
– la longueur du masque
54
Mises à jour BGP - Suppression de routes
AS 321
AS 123
.1 [Link]/24 .2
Message
BGP
Withdraw Routes
[Link]/24
x
Rupture de connexion [Link]/24
55
Table du routeur BGP
BGP RIB
RIB = Routing Information Base
Network Next-Hop Path
*>i160.10.1.0/24 [Link] i
*>i160.10.3.0/24 [Link] i
D [Link]/24
D [Link]/24
D [Link]/24
R [Link]/16
S [Link]/24
56
Table du routeur BGP
BGP RIB
Network Next-Hop Path
*> [Link]/16 [Link] i
* i [Link] i
s> [Link]/24 [Link] i
s> [Link]/24 [Link] i
D [Link]/24
D [Link]/24
D [Link]/24
R [Link]/16
S [Link]/24 La commande BGP ‘aggregate-address’
permet d’installer dans la table BGP une
route aggrégée dès que au-moins un sous-
Route Table réseau est présent
57
Table du routeur BGP
BGP RIB
Network Next-Hop Path
*> [Link]/16 [Link] i
* i [Link] i
s> [Link]/24 [Link] i
s> [Link]/24 [Link] i
*> [Link]/24 [Link] ?
58
Table du routeur BGP
Processus “IN” Processus “Out’”
BGP RIB
Network Next-Hop Path
*>i160.10.1.0/24 [Link] i
*>i160.10.3.0/24 [Link] i
Message Message >* [Link]/16 [Link] 100
59
Table du routeur BGP
Processus “IN” Processus “OUT”
BGP RIB
Network Next-Hop Path
*>i160.10.1.0/24 [Link] i
*>i160.10.3.0/24 [Link] i
* > [Link]/16 [Link] 100 Message Message
60
Table du routeur BGP
BGP RIB
Network Next-Hop Path
*>i160.10.1.0/24 [Link] i
*>i160.10.3.0/24 [Link] i
*> [Link]/16 [Link] 100
D [Link]/24
• Le meilleur chemin est installé dans la
D
D
[Link]/24
[Link]/24
table de routage du routeur si :
R [Link]/16
S [Link]/24 • Le préfixe et sa taille sont uniques
B [Link]/16
• la valeur “distance” du protocole est
la plus faible
Table de routage
61
[Link]/8
Un exemple…
A AS3561
AS200
F
B AS21
C
D
AS101 AS675
E
63
MP-BGP:MultiProtocol BGP(1)
• Pour rendre BGP-4 disponible pour d'autres protocoles
réseaux, RFC 4760(Obsoletes: 2858) a défini les
extensions multiprotocoles pour BGP-4
• Permet à BGP-4 de transporter des informations
d'autres protocoles comme, MPLS, IPv6
• Utilise une combination de «Address Family Identifier
(AFI)» et « Subsequent Address Family(SAFI) »
– [Link]
• IPv4, IPv6, etc.....
– [Link]
• Unicast forwarding, multicast forwarding etc....
64
MP-BGP:MultiProtocol BGP(2)
65
Configuration de BGP
66
Commandes BGP de base(1)
Configuration
router bgp <AS-number>
no bgp default ipv4-unicast
address-family ipv6
neighbor <ipv6 address> remote-as <as-number>
neighbor <ipv6 address> activate
exit-address-family
address-family ipv4
neighbor <ipv4 address> remote-as <as-number>
neighbor <ipv4 address> activate
exit-address-family
67
Commandes BGP de base(2)
Consultation d’information
68
Ajout de préfixes dans la table BGP
69
Pour insérer une route...
70
Utilisation de “redistribute static”
• Exemple de configuration
router bgp 109
redistribute static
ip route [Link] [Link] serial0
71
Utilisation de “redistribute”
• Attention avec les redistributions
– redistribute <protocole> signifie que toutes les routes
du <protocole> seront transférées dans le protocole
courant
– cette solution doit être contrôlée (volumétrie)
– à éviter dans la mesure du possible
– préférer l’utilisation de “route-maps” et avec un
contrôle administratif très strict
72
Utilisation de la commande “network”
• Exemple de configuration
network [Link] mask [Link]
ip route [Link] [Link] 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
73
Aggrégats et routes vers Null0
• Rappel : la route doit exister dans la table de routage
pour être annoncée via BGP
router bgp 1
network [Link] mask [Link]
ip route [Link] [Link] null0 250
• Une route vers “null0” est souvent utilisée pour faire
de l’aggrégation
– 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” !
74
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> [Link] area 0
• 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
75