Objectifs de certification
ENCOR 350-401
3.2 Layer 3 : 3.2.c Configure and verify eBGP between directly connected neighbors (best path selection algorithm and neighbor relationships)
BGP Single-Homed
1. Protocole BGP
1.1. Terminologie BGP
- Protocole de routage extérieur : routage entre systèmes autonomes
- Path Vector (Path Attributes) : vecteur (additions) de chemin (politiques de routage)
- ASN : Numéro identifiant un système autonome (un ensemble de routeurs appartenant à une organisation comme des FAI), Codés sur 16 bits, on trouve des ASNs publics (de 1 à 65511) et des ASNs privés (de 65512 à 65535)
- TCP 179 : Port de couche transport utilisé par BGP
- iBGP / eBGP : iBGP échange des routes au sein d’un AS et eBGP établit des connexions avec des AS tiers
- Peering : échange gratuit entre pairs
- Transit : échange commercial de connectivité (de routes) entre un FAI supérieur et un FAI local
1.2. Protocole BGP
Border Gateway Protocol (BGP) est un protocole de routage extérieur utilisé notamment sur le réseau Internet. Son objectif est d’échanger des informations de routage et d’accessibilité de réseaux (appelés préfixes) entre Autonomous Systems (AS), c’est-à-dire principalement entre des ensembles de réseaux appartenant à des opérateurs concurrents. BGP utilise le port TCP 179.
1.3. Métriques BGP
Contrairement aux protocoles de routage intérieurs, BGP n’utilise pas de métrique classique mais fonde les décisions de routage sur les chemins parcourus, les attributs des préfixes et un ensemble de règles de sélection définies par l’administrateur du système autonome (AS). On le qualifie de protocole à vecteur de chemins (path vector protocol). L’objectif principal de BGP n’est pas la performance (il converge lentement). Son objectif consiste plutôt à répondre à des besoins en évolutivité, en stabilité, en sécurité et à traduire les contraintes des conventions entre opérateurs sur le plan technique.
1.4. Version de BGP
BGP prend en charge le routage sans classe (classless) et utilise l’agrégation de routes afin de limiter la taille de la table de routage. Depuis 1994, la version 4 du protocole est utilisée sur Internet, les précédentes étant considérées comme obsolètes. Ses spécifications sont décrites dans la RFC 4271 A Border Gateway Protocol 4 (BGP-4).
1.5. Support multi-protocoles
Certaines extensions de BGP permettent l’échange de routes IPv6 (RFC 2545) et l’extension multi-protocole (MP-BGP, RFC 4760) qui permet d’utiliser BGP pour convoyer des informations de routage pour d’autres protocoles que IPv4 comme par exemple IPv6.
Source adaptée : https://fr.wikipedia.org/wiki/Border_Gateway_Protocol
1.6. Internet : appairage et transit
- Appairage (Peering) : connexion entre “pairs”, en général gratuite et informelle ; le “pair” n’envoie que ses routes.
- Transit : connexion à un opérateur plus gros contre paiement : le transitaire envoie toutes les routes.
- Tier 1 : un “Tier 1” est opérateur qui n’achète pas de transit du tout (Tata, Level 3,OpenTransit. . . )
Et c’est ainsi que l’Internet émerge grâce à ces appairages et transits.
Source : Cours BGP au CNAM de Stéphane Bortzmeyer p.11
Source de l’image : Wikimedia
Une page intéressante à lire : https://en.wikipedia.org/wiki/Tier_1_network.
1.7. Routes échangées : préfixes
$ whois 95.182.192.0/20
(...)
% Information related to '95.182.192.0/20AS12392'
route: 95.182.192.0/20
descr: VOO
origin: AS12392
mnt-by: TAC-BRUTELE
created: 2010-02-02T13:55:12Z
last-modified: 2010-02-02T13:55:12Z
source: RIPE
1.8. ASN (Autonomous System Number)
$ whois AS12392
(...)
aut-num: AS12392
org: ORG-BS1-RIPE
as-name: ASBRUTELE
descr: VOO
remarks: VOO
import: from AS9208 action pref=200; accept AS-WIN
import: from AS14381 action pref=200; accept AS14381
import: from AS60650 action pref=200; accept AS60650
import: from AS3304 action pref=100; accept ANY
import: from AS5511 action pref=100; accept ANY
import: from AS2611 action pref=200; accept AS-BELNET
(...)
1.9. iBGP / eBGP
Les connexions entre deux voisins BGP (“neighbors” ou “peers”) sont configurées explicitement entre deux routeurs. Ils communiquent alors entre eux via une session TCP sur le port 179 initiée par l’un des deux routeurs. BGP est le seul protocole de routage à utiliser TCP comme protocole de transport.
Il existe deux versions de BGP : Interior BGP (iBGP) et Exterior BGP (eBGP). iBGP est utilisé à l’intérieur d’un Autonomous System alors que eBGP est utilisé entre deux AS.
En général, les connexions eBGP sont établies sur des connexions point à point ou sur des réseaux locaux (un Internet Exchange Point par exemple), le TTL des paquets de la session BGP est alors fixé à 1. Si la liaison physique est rompue, la session eBGP l’est également, et tous les préfixes appris par celle-ci sont annoncés comme supprimés et retirés de la table de routage.
À l’inverse, les connexions iBGP sont généralement établies entre des adresses logiques, non associées à une interface physique particulière. Ceci permet, en cas de rupture d’un lien physique, de conserver la session iBGP active si un lien alternatif existe et si un protocole de routage interne dynamique (IGP) est employé (par exemple OSPF).
Une fois la connexion entre deux routeurs établie, ceux-ci s’échangent des informations sur les réseaux qu’ils connaissent et pour lesquels ils proposent du transit, ainsi qu’un certain nombre d’attributs associés à ces réseaux qui vont permettre d’éviter des boucles (comme AS Path) et de choisir avec finesse la meilleure route.
Source : https://fr.wikipedia.org/wiki/Border_Gateway_Protocol
1.10. Cas d’usage de BGP
Quand implémenter BGP ?
- BGP s’implémente principalement (mais pas seulement) dans les réseaux des fournisseurs d’accès Internet (FAI), des les centres de données (data centers) qui concluent des accords commerciaux de connectivité pour joindre certains réseaux.
- Quand une entreprise désire une connexion Internet redondante.
- Quand une entreprise veut annoncer elle-même les routes pour joindre son réseau public.
1.11. Processus de décision de BGP
- Le routeur refuse les annonces qui incluent son AS.
- Ensuite, s’il y a plusieurs possibilités pour un même préfixe.
- On prend celle ayant la meilleure préférence locale.
- Si égalité, on prend la route ayant le chemin d’AS le plus court.
- Si égalité, on prend celle émise par le routeur ayant le plus petit identificateur BGP …
(L’algorithme est ici simplifié car il y a d’autres critères.)
- Le routeur BGP propage ensuite l’annonce à ses voisins.
- Au bout de quelques minutes, tous les routeurs l’auront reçu (le test de la présence de son AS évite les boucles).
- Acceptation et propagation sont contrôlés par une politique locale.
BGP met en oeuvre du routage plus “politique” que technique.
Source : Cours BGP au CNAM de Stéphane Bortzmeyer p.20-21
1.12. Vecteur de chemin
- Contrairement aux protocoles à état de lien, les routeurs BGP ne connaissent pas toutes les liaisons pour joindre des réseaux.
- Aussi, chaque routeur BGP offre sa vision des réseaux accessibles à partir de lui-même.
1.13. Lecture du chemin
- Le chemin d’AS se lit de droite à gauche.
- Chaque routeur ajoute son AS avant de propager aux pairs.
- Le premier AS (tout à droite) est l’origine.
Source : Cours BGP au CNAM de Stéphane Bortzmeyer p.19/61
1.14. BGP Looking glasses
- En http : https://lg.he.net/
- En http : https://stat.ripe.net/
- En telnet : http://www.routeviews.org/
1.15. Looking Glass en telnet
$ telnet route-views.routeviews.org
Trying 2001:468:d01:33::80df:3367...
Connected to route-views.routeviews.org.
Escape character is '^]'.
**********************************************************************
Oregon Exchange BGP Route Viewer
route-views.oregon-ix.net / route-views.routeviews.org
route views data is archived on http://archive.routeviews.org
This hardware is part of a grant by the NSF.
Please contact help@routeviews.org if you have questions, or
if you wish to contribute your view.
This router has views of full routing tables from several ASes.
The list of peers is located at http://www.routeviews.org/peers
in route-views.oregon-ix.net.txt
NOTE: The hardware was upgraded in August 2014. If you are seeing
the error message, "no default Kerberos realm", you may want to
in Mac OS X add "default unset autologin" to your ~/.telnetrc
To login, use the username "rviews".
**********************************************************************
User Access Verification
Username:
route-views>sh ip bgp 95.182.192.0
BGP routing table entry for 95.182.192.0/20, version 838915
Paths: (42 available, best #28, table default)
Not advertised to any peer
Refresh Epoch 1
54728 6939 12392
140.192.8.16 from 140.192.8.16 (140.192.8.16)
Origin IGP, localpref 100, valid, external
rx pathid: 0, tx pathid: 0
Refresh Epoch 2
24441 3491 3491 1299 12392
202.93.8.242 from 202.93.8.242 (202.93.8.242)
Origin IGP, localpref 100, valid, external
rx pathid: 0, tx pathid: 0
Refresh Epoch 1
200130 1299 12392
95.85.0.2 from 95.85.0.2 (95.85.0.2)
1.16. Utilisation du serveur whois de Cymru
Trouver le numéro d’AS à partir d’une adresse IP :
whois -h whois.cymru.com 90.90.90.90
AS | IP | AS Name
3215 | 90.90.90.90 | AS3215, FR
Source : Cours BGP au CNAM de Stéphane Bortzmeyer p.44/61
1.17. Concepts avancés
- Communautés (étiquettes attachées aux annonces, format
ASN:XXX
) - Filtrage
- Annonces (ANNOUNCE et WITHDRAW)
- Surveillance BGP : https://bgpmon.net/, https://twitter.com/bgpstream
- Etude sur les données publiques BGP : https://bgp.potaroo.net/, https://labs.ripe.net/
- Fuites BGP : Un routeur (ré-)annonce des routes qu’il n’aurait pas dû annoncer. Exemple : un client de deux transitaires annonce à un des transitaires. Les routes reçues de l’autre, attirant ainsi tout le trafic.
- Détournement BGP : attaque ou erreur ?
- Filtrage IRR (Internet Routing Registry), RPKI
Voir : Cours BGP au CNAM de Stéphane Bortzmeyer
2. Configuration BGP Hello World
2.1. Annonce d’un préfixe public en eBGP
2.2. Annonce d’une route par défaut en eBGP
2.3. Configuration eBGP ISP
hostname R1
!
interface Lo 0
ip address 8.8.8.8 255.0.0.0
!
interface F0/0
ip address 11.1.2.1 255.255.255.0
no shutdown
!
router bgp 1
network 0.0.0.0
neighbor 11.1.2.100 remote-as 1001
!
ip route 0.0.0.0 0.0.0.0 Null0
!
end
wr
2.4. Peering eBGP CPE
Etablir le “peering” :
R2(config)#router bgp 1001
R2(config-router)#neighbor 11.1.2.1 remote-as 1
Vérification :
R2#show tcp brief
TCB Local Address Foreign Address (state)
124E5488 11.1.2.100.45952 11.1.2.1.179 ESTAB
2.5. Annoncer un réseau CPE
Simulation d’un réseau :
R2(config)#interface lo1
R2(config-if)#ip address 2.2.2.1 255.255.255.0
Mais ce réseau pourrait être en DMZ et être appris via un protocole de routage dynamique.
Filtrage de l’annonce en eBGP :
R2(config)#router bgp 1001
R2(config-router)#network 2.2.2.0 mask 255.255.255.0
2.6. Vérification sur le routeur CPE
R2#show ip bgp
BGP table version is 3, local router ID is 192.168.33.1
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
*> 0.0.0.0 11.1.2.1 0 0 1 i
*> 2.2.2.0/24 0.0.0.0 0 32768 i
R2#show ip route bgp | begin Gateway
Gateway of last resort is 11.1.2.1 to network 0.0.0.0
B* 0.0.0.0/0 [20/0] via 11.1.2.1, 00:02:00
2.7. Vérification routeur ISP
R1#show ip bgp
BGP table version is 3, local router ID is 8.8.8.8
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
*> 0.0.0.0 0.0.0.0 0 32768 i
*> 2.2.2.0/24 11.1.2.100 0 0 1001 i
Notes
- Load Sharing with BGP in Single and Multihomed Environments
- ANSSI, Bonnes pratiques de configuration de BGP