À certains égards, BGP est agréable et simple. Par exemple, il n’y a qu’un seul BGP : BGP version 4. De nombreux professionnels du réseau ont posé la question de savoir si la version 4 du BGP sera bientôt remplacée par BGP 5. Cependant, il n’y a rien à craindre. Aujourd’hui, nous utilisons toujours BGP version 4 comme protocole de passerelle extérieure (EGP). Même si le BGP4 d’aujourd’hui fait toutes sortes de choses que le BGP4 d’il y a 20 ans ne pouvait pas faire, comme le routage IPv6, la multidiffusion et les VPN ou l’utilisation de communautés. BGP s’est montré très extensible, mais tout est toujours BGP — et un seul processus BGP à cela. Mais BGP ne gère que le côté extérieur du routage — il y a aussi le routage intérieur.

Protocoles de passerelle intérieure
Et il y a beaucoup plus de choix dans les protocoles de passerelle intérieure (IGP). Un ancien favori est RIP, le protocole d’information de routage. Même le RIPv2 amélioré est trop simple pour la plupart des réseaux de nos jours, tout comme le RIPng (prochaine génération) pour IPv6. En tant que tel, Cisco a créé son propre protocole de routage de passerelle intérieure (IGRP), puis une version améliorée bien nommée IGRP améliorée (EIGRP). Cependant, l’IGP le plus utilisé est OSPF: Ouvrir le chemin le plus court en premier. OSPF est une implémentation « ouverte » du Premier Chemin le plus court ou de l’algorithme de Dijkstra. (Le nom ne fait pas référence à l’ouverture possible du chemin le plus court.) La version 2 d’OSPF est utilisée pour IPv4 ; la version 3 d’OSPF pour IPv6. Les réseaux qui exécutent les deux versions IP et utilisent OSPF comme IGP doivent donc exécuter à la fois OSPFv2 et OSPFv3.

À la fin des années 1980, lorsque OSPF a été développé, la famille de protocoles réseau OSI (Open Systems Interconnect) était toujours en lice, et de nombreuses technologies ont été empruntées / volées par OSI à IP et par IP à OSI. En conséquence, OSI a le protocole de routage IS-IS pour le routage OSI CLNP, qui est très similaire à OSPF à bien des égards (ou l’inverse). IS-IS signifie Système Intermédiaire à système Intermédiaire, où « système intermédiaire » signifie « routeur ». IS-IS a ensuite été étendu pour prendre en charge d’abord IPv4 puis IPv6 et est principalement utilisé dans de très grands réseaux IP.

Avec cette introduction à l’écart, je veux me concentrer sur le cas le plus courant: un réseau exécutant BGP en tant qu’EGP et OSPF en tant qu’IGP et regarder comment les tâches de routage sont divisées sur les deux protocoles et comment les deux interagissent.

La redistribution
Avec OSPF étant un IGP et BGP étant un EGP suggère une division évidente du travail: OSPF gère le routage interne, BGP le routage vers des destinations externes. Cependant, ce n’est pas si simple. Oui, OSPF est en charge du routage interne. Ces routes s’affichent en tant que routes  » O  » dans la sortie de  » show ip route  » sur un routeur Cisco. Si le réseau est divisé en plusieurs zones OSPF — ce qui n’est pas vraiment nécessaire de nos jours à moins d’avoir des centaines de routeurs — vous pouvez également voir des routes « O IA » inter-zones.

Les routes O et O IA ne sont que les blocs d’adresse utilisés sur les interfaces de routeur qui exécutent réellement OSPF. Cela n’inclut pas les interfaces vers les serveurs ou les PC et autres appareils de l’utilisateur final, ou, dans le cas des FAI, les clients. Pour que ces adresses apparaissent dans OSPF, nous devons redistribuer les sous-réseaux connectés et / ou redistribuer les routes statiques :

!
routeur ospf 1
redistribuer les sous-réseaux connectés
redistribuer les sous-réseaux statiques
!

Le 1 dans « routeur ospf 1 » est le processus OSPF ou le numéro d’instance. Il est possible d’exécuter plusieurs instances OSPF sur le même routeur — ce qui nécessite bien sûr une planification minutieuse pour tout garder droit. Si la redistribution de toutes les routes connectées et / ou statiques dans OSPF est plus que nécessaire, vous pouvez ajouter « route-map<route-map-name> », puis utiliser la carte d’itinéraire indiquée pour filtrer les routes indésirables pour les empêcher d’être redistribuées.

Par défaut, les routes redistribuées sont de type externe 2 et apparaissent comme  » O E2″. Il est également possible de redistribuer en tant que type externe 1 (avec « type métrique 1 »). La différence est qu’avec les routes O E1, le coût OSPF de l’itinéraire comprend le coût des liaisons pour atteindre l’itinéraire externe, tandis qu’avec les routes O E2, le coût des liaisons internes est ignoré.

iBGP
De toute évidence, BGP gère les routes vers les réseaux externes compatibles BGP. Cependant, il serait un peu embarrassant que tous les routeurs BGP du réseau disent à leurs voisins externes des choses complètement différentes. Ainsi, tous les routeurs BGP du réseau doivent se parler afin de raconter une histoire cohérente aux réseaux externes. C’est à cela que sert le BGP interne (iBGP). Le BGP  » régulier  » est donc un BGP externe (eBGP). Quand je dis tous les routeurs BGP, je veux vraiment dire tous: si votre réseau a 100 routeurs BGP, chacun d’entre eux doit maintenir des sessions iBGP avec les 99 autres. Eh bien, à moins que vous n’utilisiez des réflecteurs de route, mais c’est une histoire pour un autre jour.

Si vous êtes habitué à eBGP, iBGP nécessite de vous y habituer. Contrairement à eBGP, iBGP fonctionne très bien sur de nombreux houblons. Cependant, cela ajoute une complication. Considérez le réseau suivant :
interfaces de bouclage

Supposons que la session iBGP du routeur A au routeur D soit configurée vers l’adresse du routeur D sur le lien entre B et D. Ensuite, lorsque le lien entre les routeurs B et D tombe en panne, l’adresse de D sur l’interface qui se connecte à ce lien tombe en panne, et avec elle, la session iBGP configurée vers l’adresse de cette interface. Donc, plutôt que de configurer des sessions iBGP vers des adresses d’interface, nous configurons des interfaces de bouclage pour cela. Contrairement à l’interface de bouclage sur un serveur ou un autre hôte, qui utilise toujours l’adresse 127.0.0.1, les routeurs utilisent des adresses « réelles » sur leurs interfaces de bouclage, ce qui fonctionne comme ceci :

!
interface loopback0
adresse IP 192.0.2.65 255.255.255.255
!
routeur bgp 9000
voisin 192.0.2.67 distant – as 9000
voisin 192.0.2.67 mise à jour -source loopback0
!

Contrairement aux autres interfaces, les interfaces de bouclage peuvent avoir une longueur de préfixe /32, elles n’utilisent donc qu’une seule adresse. L’AS distant pour le voisin 192.0.2.67 est identique à l’AS local (9000), ce qui fait de cette session BGP une session iBGP. La ligne de  » mise à jour-source loopback0  » s’assure que l’adresse source dans les paquets BGP sortants est l’adresse IP configurée sur l’interface loopback0, ainsi elle assortit l’adresse que le routeur distant recherche. Si maintenant un chemin entre les deux routeurs iBGP descend, les paquets iBGP peuvent être redirigés sur un autre chemin et il n’y a aucun impact sur BGP. Notez que pour que cela fonctionne, les adresses d’interface de bouclage doivent être présentes dans l’IGP – généralement, les routes connectées seront redistribuées pour que cela se produise.
Livre électronique BGP dans les grands réseaux
Contrairement à eBGP, iBGP ne met pas à jour le chemin d’accès AS ou l’adresse de saut suivante. Cela signifie que l’adresse de saut suivante dans les mises à jour iBGP pointe toujours vers l’adresse IP du routeur du réseau voisin à partir duquel la route a été apprise. Cette adresse résidera dans un sous-réseau point à point entre votre routeur eBGP et le routeur BGP du réseau voisin. Votre routeur eBGP connaîtra cette adresse car elle est présente sur une interface directement connectée, mais sans autre action, le reste de vos routeurs ne connaîtra pas cette adresse, donc l’adresse de saut suivante pour les routes iBGP ne se résoudra pas et les routes iBGP ne pourront pas être utilisées. Encore une fois, la redistribution des réseaux connectés dans OSPF (ou votre IGP de choix) résout ce problème. Alternativement, vous pouvez configurer « next-hop-self » sur vos sessions iBGP et le routeur remplacera l’adresse de saut suivante dans les mises à jour iBGP par sa propre adresse.

Redistribution BGP
Il est également possible de redistribuer des routes en BGP. Par exemple, dans un grand réseau ISP, vous pouvez redistribuer les routes connectées et statiques dans BGP plutôt que dans IS-IS, car cela gardera IS-IS lean et mean. Les routes BGP supplémentaires sont relativement sans conséquence, et un avantage intéressant est que si elles sont redirigées en interne, cela ne déclenche aucune mise à jour BGP. Au contraire, les adresses de saut suivantes sont résolues différemment après un changement IS-IS, ce que chaque routeur peut faire indépendamment. Bien sûr, cela nécessite de bons filtres qui s’assurent que le grand nombre de petits préfixes utilisés par les clients ne fuient pas dans la table BGP globale. Un bon moyen d’accomplir un tel filtrage consiste à ajouter une communauté aux routes qui peuvent être propagées dans eBGP, puis à filtrer en fonction de cette communauté.

À l’époque, il n’était pas rare de redistribuer toutes les routes BGP dans OSPF. Avec un demi-million de préfixes dans BGP, cette pratique est devenue moins courante. Si vous voulez vraiment vivre sur le bord, vous pouvez redistribuer BGP en OSPF et OSPF en BGP. Ensuite, si vos filtres ne sont pas parfaits, les itinéraires peuvent aller-retour entre BGP et OSPF, avec pour résultat que le chemin AS est supprimé. Alors maintenant, vous faites de la publicité sur BGP pour tout un tas de routes qui ne sont pas les vôtres, mais avec un chemin à un saut, de sorte que beaucoup de vos voisins commenceront à vous envoyer du trafic pour ces routes.

Distance administrative
Enfin et surtout, que se passe-t-il lorsque la même route est présente à la fois dans BGP et OSPF ? Il est évidemment difficile de comparer une préférence locale BGP à une métrique OSPF. Donc, ce qu’un routeur (Cisco) fait, c’est attribuer une « distance administrative » à chaque protocole de routage. L’itinéraire avec la distance la plus basse gagne alors. OSPF a une distance de 110. Les routes BGP ont une distance de 20 (meilleure que l’OSPF et les autres IGP) lorsqu’elles sont apprises sur eBGP et de 200 (pire que l’OSPF et les autres IGP) lorsqu’elles sont apprises sur iBGP. Les routes statiques ont une distance de 1 par défaut, mais vous pouvez changer cela en incluant une valeur de distance à la fin de la commande « route ip … ». Une valeur de distance de 250 les tiendra à l’écart des protocoles de routage. La distance administrative est le premier nombre entre crochets dans la sortie « show ip route ».