Introduction à BGP
AFNOG 2018, Dakar
1
Border Gateway Protocol
• Un protocol de routage utilisé pour l’
échange d'information de routage entre
plusieurs réseaux
• Protocol de routage externe (EGP)
• Décrit dans le RFC4271
■ RFC4276 donne un rapport d’implementation BGP
■ RFC4277 decrit les experiences operationelles BGP
• Le système autonome est fondamental dans
le fonctionnement de BGP
■ Il est utilisé pour identifier de façon unique les
réseaux ayant la même politique de routage.
2
BGP
• Path Vector Protocol
• Des mises à jour incrémentales
• Plusieurs options pour appliquer une
politique de routage
• Classless Inter Domain Routing
(CIDR)
• Largement utilisé sur les Backbones
Internet.
• Système Autonome
3
Path Vector Protocol
• BGP est un protocole de routage basé
sur les vecteurs de chemin (path
vector) (voir RFC 1322)
■ Un vecteur de chemin défini une route
comme une association entre une
destination et les attributs du chemin vers
cette destination.
[Link]/24 [Link] 1021 0 6461 7018 6337 11268 i
AS Path
4
Path Vector Protocol
AS1126
AS6337 8
AS7018
AS500
AS6461
AS600
5
Definitions
• Transit – Transporter du traffic à
travers le réseau d’un opérateur.
• Peering – échange d’information de
routage et de trafic.
• Default – Destination par défaut
lorsqu’il n’y a pas de routes spécifiques
dans la table de routage
6
Default Free Zone
Zone de routage constituée de
routeurs ayant des routes explicites
des réseaux d’Internet et donc n’ont
pas besoin de route par défaut
NB: Différent pour les IPS liés à un
upstream
7
Exemple de Peering et
Transit
transit
FAI A Backbone FAI E
FAI C
peering IXP-We peering peering IXP-Ea
st st
Backbone
FAI B FAI D
FAI F
transit
A et B ont un accord de peering gratuit,
mais requièrent un transit avec C et D
pour communiquer avec E et F 8
Autonomous System (AS)
AS 100
• Ensemble de réseaux ayant la même
politique de routage
• Un seul protocole de routage
• En général sous la responsabilité d’une
seule autorité d’administration
9
• Identifié par un ASN unique de 32-bit
Autonomous System Number (ASN)
• Deux plages
0-65535 (original 16-bit range)
65536-4294967295 (32-bit range – RFC6793)
• Usage:
0 and 65535 (reserved)
1-64495 (public Internet)
64496-64511 (documentation – RFC5398)
64512-65534 (private use only)
23456 (represent 32-bit range in 16-bit world)
65536-65551 (documentation – RFC5398)
65552-4199999999 (public Internet)
4200000000-4294967295 (private use only)
• La représentation 32-bit décrite dans le RFC5396
■Explique “asplain” (traditional format) comme notation
standard 10
Autonomous System Number
(ASN)
• Les ASNs sont attribués par les registres
regionaux ( RIR)
• Ils sont aussi utilisés par les FAI affiliés à des
RIR.
• Actuellement plus de 63487 16-bit ASN assignés
par les RIRs
■ Environ 44500 visibles sur Internet
■ Environ 1500 restent pas attribués
• Chaque RIR a aussi recu un bloque de 32-bit
ASNs
■ Sur 4800 ASN assignés, environ 3700 sont
visibles sur Internet
• Voir [Link]/assignments/as-numbers 11
Configuration de BGP ( Cisco IOS )
• Cette commande active BGP in Cisco IOS:
router bgp 100
• Pour ASNs > 65535, l’ASN peut être
configuré soit en format décimal simple ou
avec des points:
router bgp 131076
ou
router bgp 2.4
• L’IOS affiche l’ASN en format décimal par
défaut
■ Le format décimal avec des points est optionnel :
router bgp 2.4
bgp asnotation dot 12
Les bases de BGP
Peerin
g
A C
AS AS
100 101
B D
E
• TCP – port 179
• Path vector protocol AS 102
• Mise à jour incrémentale
• “Internal” et “External”
BGP 13
Zone de Demarcation (DMZ)
A C
AS DMZ AS
100 Network 101
B D
AS
102
• Une DMZ est un lien ou un réseau partagé par
plusieurs AS 14
Fonctionnement général
• BGP apprend plusieurs chemins via
les routeurs “peers” qui
communiquent via internal et external
BGP.
• Le meilleur chemin est installé dans la
table de routage (RIB)
• Les meilleurs chemins sont exportés
vers les routeurs voisins supportant
“external BGP”
• La politique de routage est appliquées
en influençant la sélection du meilleur
15
Création de la table de Forwarding
• BGP “in” fonctionnement
■ Recois les informations chemin du “peers”
■ Résultat de la sélection des chemins est inséré
dans la table BGP.
■ “best path” est taggué
• BGP “out” fonctionnement
■ announce les informations des “meilleurs routes”
aux peers
• Les meilleures routes sont installées dans la
table de routage (RIB)
• Les meilleurs routes sont installées dans la
table de forwarding (FIB):
■ Les préfixes et longueur de préfixe sont uniques 16
■ Plus petite “Distance administrative”
Création de la table de
Forwarding
discarded
BGP in
in
process accepted
everything
bgp
BGP routing
peer table table
best
paths
BGP out forwarding
out
table
process
17
eBGP & iBGP
• BGP utilise en interne (iBGP) en
externe (eBGP)
• iBGP pour le transport
■ Quelques/Tous les préfixes Internet à
travers le backbone de l’ISP
■ Préfixe des clients des ISP
• eBGP utilisé
■ Exchanger les préfixes avec les autres AS
■ Implémente la politique de routage
18
BGP/IGP modèle d’utilisée par
les FAI
• representation
eBGP eBGP eBGP
iBGP iBGP iBGP iBGP
IGP IGP IGP IGP
AS1 AS2 AS3 AS4
19
BGP Externe Peering (eBGP)
AS 100 AS 101
C
• Entre des homologues BGP dans
différents AS
• Les homologues doivent directement
connectés
• Ne Jamais utiliser un IGP entre deux
peers eBGP 20
Configurer BGP Externe
ip address on
ethernet
Router A dans AS100 interface
interface ethernet 5/0
ip address [Link] [Link]
! Local ASN
router bgp 100
network [Link] mask [Link]
neighbor [Link] remote-as 101 Remote ASN
neighbor [Link] prefix-list RouterC in
neighbor [Link] prefix-list RouterC out
!
ip address of Inbound and
Router C ethernet outbound21
interface filters
Configurer BGP Externe
ip address on
ethernet
Router C in AS101 interface
interface ethernet 1/0/0
ip address [Link] [Link]
! Local ASN
router bgp 101
network [Link] mask [Link]
neighbor [Link] remote-as 100 Remote ASN
neighbor [Link] prefix-list RouterA in
neighbor [Link] prefix-list RouterA out
!
ip address of Inbound and
Router A ethernet outbound22
interface filters
Multi-Protocol BGP pour IPv6 –
RFC2545
• Extensions spécifiques IPv6
■ Adresses “Scoped”: Next-hop contient une
adresse globale IPv6 et/ou dans certain
cas une adresse “link-local”
■ Le NEXT_HOP et NLRI sont définis comme
les adresses et préfixe IPv6
■ Address Family Information (AFI) = 2
(IPv6)
• Sub-AFI = 1 (NLRI est utilisé pour l’unicast)
• Sub-AFI = 2 (NLRI est utilisé pour vérifier
l’adresse multicast )
• Sub-AFI = 3 (NLRI est utilisé pour vérifier
l’adresse unicast et multicast ) 23
Session MP-BGP
Router1 Router2
AS 65001 AS 65002
[Link] [Link]
Router1#
interface Ethernet0
ipv6 address [Link]/64
!
router bgp 65001
bgp router-id [Link]
no bgp default ipv4-unicast
neighbor [Link] remote-as 65002
address-family ipv6
neighbor [Link] activate
neighbor [Link] prefix-list bgp65002in in
neighbor [Link] prefix-list bgp65002out out
exit-address-family 24
Internal BGP (iBGP)
• Homologues BGP dans le même AS
• Ne requièrent pas une connectivité
directe
■ IGP utilisé pour faire communiquer les
homologues BGP
• Homologues iBGP doivent être en “full
meshed” :
■ Les routes apparaissent comme étant
connectés
■ Diffuse les préfixes appris de l’extérieur
d’autres AS
■ Ne diffuse pas les préfixes appris des 25
BGP interne Peering (iBGP)
AS
100 B
A
C
• Topologie indépendante
• Tous les homologues IBGP dans un AS
doivent communiquer entre eux. 26
Interfaces Loopback et “peering”
AS 100
C
A
• Communique avec l’interface loop-back
■ interface Loop-back est toujours UP – ever!
• Pour eviter que la session iBGP depende
de l’état d’une seule interface 27
Configuration de BGP interne
adresse ip sur
loopback
Router A dans AS100 interface
interface loopback 0
ip address [Link] [Link]
!
router bgp 100 ASN Local
network [Link] ASN Local
neighbor [Link] remote-as 100
neighbor [Link] update-source loopback0
neighbor [Link] remote-as 100
neighbor [Link] update-source loopback0
!
Adresse IP du Routeur
B loopback interface 28
Configuring Internal BGP
Adresse IP sur
l’interface
Router B dans AS100 loopback
interface loopback 0
ip address [Link] [Link]
!
router bgp 100 ASN Local
network [Link]
neighbor [Link] remote-as 100
ASN
Local
neighbor [Link] update-source loopback0
neighbor [Link] remote-as 100
neighbor [Link] update-source loopback0
!
ip address of
Router A loopback 29
interface
Insertion de prefixes dans BGP
• Deux méthodes pour insérer un
préfixe dans BGPs
■ redistribute static
• network command
30
Inserting prefixes into BGP –
redistribute static
• Exemple de configuration:
router bgp 100
redistribute static
ip route [Link] [Link] serial0
• La route statique doit exister pour
que la commande fonctionne
• Force la valeur “origin” à
“incomplete”
• Utiliser avec prudence!
31
Insertion de prefixes dans BGP –
redistribute static
• Utiliser avec beaucoup de prudence !
■ redistribute <routing-protocol> indique
que toutes les routes du
<routing-protocol> sera transfer
■ Pas evolutif Will not scale if uncontrolled
■ A eviter si possible
■ redistribute doit être utilisé
conjointement avec des “route-maps”
avec beaucoup de contrôle
32
Insertion des prefixes dans BGP –
network command
• Exemple de configuration
router bgp 100
network [Link] mask [Link]
ip route [Link] [Link] serial0
• Une route correspondante dans la
table de route est nécessaire pour que
le préfixe soit annoncé par BGP.
• Force l’attribute origin à “IGP”
33
Configuration Aggregation
• Trois méthodes pour configurer les
aggregation de route :
■ redistribute static
■ aggregate-address
■ network command
34
Configuration d’Aggregation
• Exemple de configuration :
router bgp 100
redistribute static
ip route [Link] [Link] null0 250
• Route statique vers “null0” is called a
pull up route
■ Packets only sent here if there is no more
specific match in the routing table
■ Distance of 250 ensures this is last resort
static
■ Care required – see previously!
35
Configuration Aggregation–
Commande “Network”
• Exemple de configuration
router bgp 100
network [Link] mask [Link]
ip route [Link] [Link] null0 250
• Une route correspondante doit exister
dans la table de routage pour que le
réseau soit annoncé
• Méthode recommandée pour générer
des route agrégée
36
Configuration Aggregation–
Commande “aggregate-address”
• Exemple de configuration:
router bgp 100
network [Link] mask [Link]
aggregate-address [Link] [Link] [summary-only]
• L’existence d’un préfixe plus spécifique dans la
table BGP est nécessaire pour que la route
aggrégée soit annoncée
• L’option “summary-only”
■ Assure que seule la route aggrégée est annoncée si
un préfixe plus spécifique existe dans la table de
routage
Resumé
BGP neighbour status
Router6>sh ip bgp sum
BGP router identifier [Link], 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
[Link] 4 10 9 8 16 0 0 [Link] 2
[Link] 4 10 6 5 16 0 0 [Link] 2
[Link] 4 10 9 8 16 0 0 [Link] 2
...
BGP Updates Updates 38
Version sent and waiting
Resumé
Table BGP
Router6>sh ip bgp
BGP table version is 16, local router ID is [Link]
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*>i [Link]/26 [Link] 0 100 0 i
*>i [Link]/26 [Link] 0 100 0 i
*>i [Link]/26 [Link] 0 100 0 i
*>i [Link]/26 [Link] 0 100 0 i
*>i [Link]/26 [Link] 0 100 0 i
*> [Link]/26 [Link] 0 32768 i
*>i [Link]/26 [Link] 0 100 0 i
*>i [Link]/26 [Link] 0 100 0 i
*>i [Link]/26 [Link] 0 100 0 i
*>i [Link]/26 [Link] 0 100 0 i
... 39
Resumé
• BGP4 – path vector protocol
• iBGP versus eBGP
• Design iBGP stable – peer with
loopbacks
• Announce des prefixes & aggregates
40
Introduction à BGP
AFNOG 2018, Dakar
41