Comment fonctionne BGP

Aujourd'hui, nous allons examiner le protocole BGP. Nous ne parlerons pas longtemps de la raison pour laquelle il existe et pourquoi il est utilisé comme seul protocole. Il existe de nombreuses informations à ce sujet, par exemple ici.

Alors, qu’est-ce que le BGP ? BGP est un protocole de routage dynamique et est le seul protocole EGP (External Gateway Protocol). Ce protocole est utilisé pour construire le routage sur Internet. Voyons comment un quartier est construit entre deux routeurs BGP.

Comment fonctionne BGP
Considérez le voisinage entre Router1 et Router3. Configurons-les à l'aide des commandes suivantes :

router bgp 10
  network 192.168.12.0
  network 192.168.13.0
  neighbor 192.168.13.3 remote-as 10

router bgp 10
  network 192.168.13.0
  network 192.168.24.0
  neighbor 192.168.13.1 remote-as 10

Le voisinage au sein d'un seul système autonome est AS 10. Après avoir saisi des informations sur un routeur, tel que Router1, ce routeur tente d'établir une relation de contiguïté avec Router3. L’état initial dans lequel rien ne se passe est appelé Idle. Dès que BGP est configuré sur le routeur 1, il commencera à écouter le port TCP 179 - il passera à l'état NOUS CONTACTER, et lorsqu'il essaie d'ouvrir une session avec Router3, il passe à l'état Actif.

Une fois la session établie entre Router1 et Router3, des messages Open sont échangés. Lorsque ce message est envoyé par Router1, cet état sera appelé Ouvert Envoyé. Et lorsqu'il reçoit un message Open du Router3, il passe à l'état Ouvrir Confirmer. Examinons de plus près le message Open :

Comment fonctionne BGP
Ce message transmet des informations sur le protocole BGP lui-même, utilisé par le routeur. En échangeant des messages Open, Router1 et Router3 se communiquent des informations sur leurs paramètres. Les paramètres suivants sont passés :

  • Version: cela inclut la version BGP utilisée par le routeur. La version actuelle de BGP est la version 4 qui est décrite dans la RFC 4271. Deux routeurs BGP tenteront de négocier une version compatible. En cas de disparité, il n'y aura pas de session BGP.
  • Mon AS: cela inclut le numéro AS du routeur BGP, les routeurs devront se mettre d'accord sur le(s) numéro(s) AS et cela définit également s'ils exécuteront iBGP ou eBGP.
  • Temps de maintien: si BGP ne reçoit aucun message keepalive ou update de l'autre côté pendant la durée du temps d'attente, il déclarera l'autre côté « mort » et supprimera la session BGP. Par défaut, le temps d'attente est défini sur 180 secondes sur les routeurs Cisco IOS, le message keepalive est envoyé toutes les 60 secondes. Les deux routeurs doivent se mettre d'accord sur le temps d'attente, sinon il n'y aura pas de session BGP.
  • Identifiant BGP: il s'agit de l'ID du routeur BGP local qui est élu tout comme le fait OSPF :
    • Utilisez l'ID de routeur configuré manuellement avec la commande bgp router-id.
    • Utilisez l'adresse IP la plus élevée sur une interface de bouclage.
    • Utilisez l'adresse IP la plus élevée sur une interface physique.
  • Paramètres facultatifs: vous trouverez ici quelques fonctionnalités optionnelles du routeur BGP. Ce champ a été ajouté afin que de nouvelles fonctionnalités puissent être ajoutées à BGP sans avoir à créer une nouvelle version. Les éléments que vous pourriez trouver ici sont :
    • prise en charge de MP-BGP (Multi Protocol BGP).
    • prise en charge de l'actualisation de la route.
    • prise en charge des numéros AS de 4 octets.

Pour établir un quartier, les conditions suivantes doivent être remplies :

  • Numéro de version. La version actuelle est la 4.
  • Le numéro AS doit correspondre à ce que vous avez configuré voisin 192.168.13.3 distant-comme 10.
  • L'ID du routeur doit être différent de celui du voisin.

Si l'un des paramètres ne satisfait pas à ces conditions, le routeur enverra Notification message indiquant l'erreur. Après avoir envoyé et reçu des messages Open, la relation de voisinage entre dans l'état ÉTABLI. Après cela, les routeurs peuvent échanger des informations sur les itinéraires et le faire en utilisant Mises à jour messages. Voici le message de mise à jour envoyé par le routeur 1 au routeur 3 :

Comment fonctionne BGP

Ici, vous pouvez voir les réseaux signalés par les attributs Router1 et Path, qui sont analogues aux métriques. Nous parlerons des attributs Path plus en détail. Les messages Keepalive sont également envoyés au sein d'une session TCP. Ils sont transmis, par défaut, toutes les 60 secondes. Il s'agit d'une minuterie Keepalive. Si un message Keepalive n'est pas reçu pendant la minuterie de maintien, cela entraînera une perte de communication avec le voisin. Par défaut, elle est égale à 180 secondes.

Signe utile :

Comment fonctionne BGP

Il semble que nous ayons compris comment les routeurs se transmettent des informations, essayons maintenant de comprendre la logique du protocole BGP.

Pour annoncer une route vers la table BGP, comme dans les protocoles IGP, la commande network est utilisée, mais la logique de fonctionnement est différente. Si dans IGP, après avoir spécifié la route dans la commande network, l'IGP regarde quelles interfaces appartiennent à ce sous-réseau et les inclut dans sa table, alors la commande network dans BGP regarde la table de routage et recherche précis correspond à l'itinéraire dans la commande réseau. Si de telles routes sont trouvées, ces routes apparaîtront dans la table BGP.

Recherchez une route dans la table de routage IP actuelle du routeur qui correspond exactement aux paramètres de la commande réseau ; si la route IP existe, placez le NLRI équivalent dans la table BGP locale.

Élevons maintenant BGP à tous les autres et voyons comment la route est sélectionnée dans un AS. Une fois que le routeur BGP a reçu les routes de son voisin, il commence à sélectionner la route optimale. Ici, vous devez comprendre quel type de voisins il peut y avoir - internes et externes. Le routeur comprend-il par configuration si le voisin configuré est interne ou externe ? Si vous êtes en équipe :

neighbor 192.168.13.3 remote-as 10 

le paramètre distant-as spécifie l'AS, qui est configuré sur le routeur lui-même dans la commande router bgp 10. Les routes provenant de l'AS interne sont considérées comme internes et les routes provenant de l'AS externe sont considérées comme externes. Et pour chacun, une logique différente de réception et d’envoi des œuvres. Considérez cette topologie :

Comment fonctionne BGP

Chaque routeur dispose d'une interface de bouclage configurée avec ip : xxxx 255.255.255.0 - où x est le numéro du routeur. Sur Router9, nous avons une interface de bouclage avec l'adresse - 9.9.9.9 255.255.255.0. Nous l'annoncerons via BGP et verrons comment il se propage. Cette route sera transmise au Router8 et au Router12. Depuis le routeur8, cette route ira vers le routeur6, mais vers le routeur5, elle ne figurera pas dans la table de routage. Également sur le routeur 12, cette route apparaîtra dans le tableau, mais sur le routeur 11, elle n'y sera pas non plus. Essayons de comprendre cela. Considérons quelles données et paramètres Router9 transmet à ses voisins, signalant cette route. Le paquet ci-dessous sera envoyé du routeur 9 au routeur 8.

Comment fonctionne BGP
Les informations d'itinéraire sont constituées d'attributs de chemin.

Les attributs de chemin sont divisés en 4 catégories :

  1. Obligatoire bien connu - Tous les routeurs exécutant BGP doivent reconnaître ces attributs. Doit être présent dans toutes les mises à jour.
  2. Discrétionnaire bien connu - Tous les routeurs exécutant BGP doivent reconnaître ces attributs. Ils peuvent être présents dans les mises à jour, mais leur présence n'est pas obligatoire.
  3. Transitif facultatif - peut ne pas être reconnu par toutes les implémentations de BGP. Si le routeur ne reconnaît pas l'attribut, il marque la mise à jour comme partielle et la transmet à ses voisins, stockant ainsi l'attribut non reconnu.
  4. Facultatif non transitif - peut ne pas être reconnu par toutes les implémentations de BGP. Si le routeur ne reconnaît pas l'attribut, celui-ci est ignoré et rejeté lorsqu'il est transmis aux voisins.

Exemples d'attributs BGP :

  • Obligatoire bien connu:
    • Chemin du système autonome
    • Saut suivant
    • Origine

  • Discrétionnaire bien connu:
    • Préférence locale
    • Agrégat atomique
  • Transitif facultatif:
    • Aggregator
    • Communautés
  • Facultatif non transitif:
    • Discriminateur multi-sorties (MED)
    • Identifiant de l'expéditeur
    • Liste des clusters

Dans ce cas, pour l’instant nous nous intéresserons à Origin, Next-hop, AS Path. Puisque la route transmet entre le routeur8 et le routeur9, c'est-à-dire au sein d'un AS, elle est considérée comme interne et nous ferons attention à l'origine.

Attribut d'origine - indique comment l'itinéraire dans la mise à jour a été obtenu. Valeurs d'attribut possibles :

  • 0 - IGP : NLRI reçu dans le système autonome d'origine ;
  • 1 - EGP : NLRI est appris à l'aide de l'Exterior Gateway Protocol (EGP). Prédécesseur de BGP, non utilisé
  • 2 - Incomplet : le NLRI a été appris d'une autre manière

Dans notre cas, comme le montre le paquet, il est égal à 0. Lorsque cette route sera transmise au routeur 12, ce code aura le code 1.

Ensuite, prochain saut. Attribut du saut suivant

  • Il s'agit de l'adresse IP du routeur eBGP par lequel passe le chemin vers le réseau de destination.
  • L'attribut change lorsque le préfixe est envoyé à un autre AS.

Dans le cas d'iBGP, c'est-à-dire au sein d'un AS, le prochain saut sera indiqué par celui qui a appris ou informé de cette route. Dans notre cas, ce sera le 192.168.89.9. Mais lorsque cette route est transmise du Router8 au Router6, le Router8 la modifiera et la remplacera par la sienne. Le prochain saut sera 192.168.68.8. Cela nous amène à deux règles :

  1. Si un routeur transmet une route à son voisin interne, il ne modifie pas le paramètre Next-hop.
  2. Si un routeur transmet une route à son voisin externe, il remplace Next-hop par l'adresse IP de l'interface à partir de laquelle ce routeur transmet.

Cela nous amène à comprendre le premier problème : pourquoi il n'y aura pas de route dans la table de routage sur Router5 et Router11. Regardons de plus près. Ainsi, Router6 a reçu des informations sur la route 9.9.9.0/24 et les a ajoutées avec succès à la table de routage :

Router6#show ip route bgp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      9.0.0.0/24 is subnetted, 1 subnets
B        9.9.9.0 [20/0] via 192.168.68.8, 00:38:25<source>
Теперь Router6 передал маршрут Router5 и первому правилу Next-hop не изменил. То есть, Router5 должен добавить  <b>9.9.9.0 [20/0] via 192.168.68.8</b> , но у него нет маршрута до 192.168.68.8 и поэтому данный маршрут добавлен не будет, хотя информация о данном маршруте будет храниться в таблице BGP:

<source><b>Router5#show ip bgp
BGP table version is 1, local router ID is 5.5.5.5
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 9.9.9.0/24       192.168.68.8             0    100      0 45 i</b>

La même situation se produira entre le routeur 11 et le routeur 12. Pour éviter cette situation, vous devez configurer le routeur 6 ou le routeur 12, lors du passage de la route à leurs voisins internes, pour remplacer leur adresse IP par Next-hop. Cela se fait à l'aide de la commande :

neighbor 192.168.56.5 next-hop-self

Après cette commande, Router6 enverra un message Update, où l'adresse IP de l'interface Gi0/0 Router6 sera spécifiée comme Next-hop for routes - 192.168.56.6, après quoi cette route sera déjà incluse dans la table de routage.

Allons plus loin et voyons si cette route apparaît sur Router7 et Router10. Il ne sera pas dans la table de routage et on pourrait penser que le problème est le même que dans le premier avec le paramètre Next-hop, mais si nous regardons le résultat de la commande show ip bgp, nous verrons que le la route n'y a pas été reçue même avec le mauvais prochain saut, ce qui signifie que la route n'a même pas été transmise. Et cela nous amènera à l’existence d’une autre règle :

Les routes reçues des voisins internes ne sont pas propagées aux autres voisins internes.

Puisque le routeur 5 a reçu la route du routeur 6, elle ne sera pas transmise à son autre voisin interne. Pour que le transfert ait lieu, vous devez configurer la fonction Réflecteur d'itinéraire, ou configurez des relations de voisinage entièrement connectées (Full Mesh), c'est-à-dire que tout le monde sur le routeur 5-7 sera le voisin de tout le monde. Dans ce cas, nous utiliserons Route Reflector. Sur Router5, vous devez utiliser cette commande :

neighbor 192.168.57.7 route-reflector-client

Route-Reflector modifie le comportement de BGP lors du passage d'une route vers un voisin interne. Si le voisin interne est spécifié comme client-réflecteur d'itinéraire, les itinéraires internes seront alors annoncés à ces clients.

L'itinéraire n'apparaît pas sur Router7 ? N'oubliez pas non plus Next-hop. Après ces manipulations, la route devrait également aller vers Router7, mais cela ne se produit pas. Cela nous amène à une autre règle :

La règle du prochain saut ne fonctionne que pour les routes externes. Pour les routes internes, l’attribut next-hop n’est pas remplacé.

Et nous obtenons une situation dans laquelle il est nécessaire de créer un environnement utilisant des protocoles de routage statique ou IGP pour informer les routeurs sur toutes les routes au sein de l'AS. Enregistrons les routes statiques sur Router6 et Router7 et nous obtiendrons ensuite la route souhaitée dans la table des routeurs. Dans AS 678, nous procéderons un peu différemment : nous enregistrerons les routes statiques pour 192.168.112.0/24 sur le routeur 10 et 192.168.110.0/24 sur le routeur 12. Ensuite, nous établirons la relation de voisinage entre le routeur 10 et le routeur 12. Nous allons également configurer le routeur 12 pour envoyer son prochain saut au routeur 10 :

neighbor 192.168.110.10 next-hop-self

Le résultat sera que le routeur 10 recevra la route 9.9.9.0/24, elle sera reçue à la fois du routeur 7 et du routeur 12. Voyons quel choix fait Router10 :

Router10#show ip bgp
BGP table version is 3, local router ID is 6.6.6.6
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 9.9.9.0/24       192.168.112.12           0    100       0      45 i

                               192.168.107.7                                0     123 45 i  

Comme nous pouvons le constater, deux itinéraires et une flèche (>) signifient que l'itinéraire via 192.168.112.12 est sélectionné.
Voyons comment fonctionne le processus de sélection d'itinéraire :

  1. La première étape lors de la réception d’un itinéraire est de vérifier la disponibilité de son Next-hop. C'est pourquoi, lorsque nous avons reçu une route sur Router5 sans définir Next-hop-self, cette route n'a pas été traitée davantage.
  2. Vient ensuite le paramètre Poids. Ce paramètre n'est pas un attribut de chemin (PA) et n'est pas envoyé dans les messages BGP. Il est configuré localement sur chaque routeur et n'est utilisé que pour manipuler la sélection de route sur le routeur lui-même. Regardons un exemple. Juste au-dessus, vous pouvez voir que le routeur 10 a choisi une route pour 9.9.9.0/24 via le routeur 12 (192.168.112.12). Pour modifier le paramètre Wieght, vous pouvez utiliser route-map pour définir des itinéraires spécifiques, ou attribuer un poids à son voisin à l'aide de la commande :
     neighbor 192.168.107.7 weight 200       

    Désormais, tous les itinéraires provenant de ce voisin auront ce poids. Voyons comment le choix de l'itinéraire évolue après cette manipulation :

    Router10#show bgp
    *Mar  2 11:58:13.956: %SYS-5-CONFIG_I: Configured from console by console
    BGP table version is 2, local router ID is 6.6.6.6
    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
     *>  9.9.9.0/24       192.168.107.7                        200      123 45 i
     * i                          192.168.112.12           0          100      0 45 i

    Comme vous pouvez le constater, la route passant par le routeur 7 est désormais sélectionnée, mais cela n'aura aucun effet sur les autres routeurs.

  3. En troisième position, nous avons la préférence locale. Ce paramètre est un attribut discrétionnaire bien connu, ce qui signifie que sa présence est facultative. Ce paramètre n'est valable qu'au sein d'un AS et affecte le choix du chemin uniquement pour les voisins internes. C'est pourquoi il n'est transmis que dans les messages Update destinés au voisin interne. Il n'est pas présent dans les messages de mise à jour pour les voisins externes. Par conséquent, il a été classé comme discrétionnaire notoire. Essayons de l'appliquer sur Router5. Sur le routeur 5, nous devrions avoir deux routes pour 9.9.9.0/24 : une via le routeur 6 et la seconde via le routeur 7.

    Nous regardons:

    Router5#show bgp
    BGP table version is 2, local router ID is 5.5.5.5
    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 9.9.9.0/24       192.168.56.6             0    100      0 45 i

    Mais comme nous le voyons, une route passe par Router6. Où est l’itinéraire passant par Router7 ? Peut-être que Router7 ne l'a pas non plus ? Regardons:

    Router#show bgp
    BGP table version is 10, local router ID is 7.7.7.7
    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 9.9.9.0/24       192.168.56.6             0     100           0      45 i
    
                                  192.168.107.10                                  0     678 45 i 

    Bizarre, tout semble aller bien. Pourquoi n'est-il pas transmis au Router5 ? Le fait est que BGP a une règle :

    Le routeur transmet uniquement les routes qu'il utilise.

    Le routeur 7 utilise une route via le routeur 5, donc la route via le routeur 10 ne sera pas transmise. Revenons aux préférences locales. Définissons les préférences locales sur le routeur 7 et voyons comment le routeur 5 réagit à cela :

    route-map BGP permit 10
     match ip address 10
     set local-preference 250
    access-list 10 permit any
    router bgp 123
     neighbor 192.168.107.10 route-map BGP in</b>

    Nous avons donc créé une feuille de route qui contient toutes les routes et avons demandé à Router7 de modifier le paramètre Local Preference à 250 une fois reçu, la valeur par défaut est 100. Voyons ce qui s'est passé sur Router5 :

    Router5#show bgp
    BGP table version is 8, local router ID is 5.5.5.5
    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 9.9.9.0/24       192.168.57.7             0          250      0 678 45 i

    Comme nous pouvons le voir maintenant, le routeur 5 préfère l'itinéraire via le routeur 7. La même image sera sur le routeur6, bien qu'il soit plus rentable pour lui de choisir un itinéraire via le routeur8. Nous ajoutons également que la modification de ce paramètre nécessite un redémarrage du quartier pour que la modification prenne effet. Lire ici. Nous avons réglé les préférences locales. Passons au paramètre suivant.

  4. Préférez la route avec le paramètre Next-hop 0.0.0.0, c'est-à-dire les routes locales ou agrégées. Ces itinéraires se voient automatiquement attribuer un paramètre de poids égal au maximum (32678 XNUMX) après avoir entré la commande réseau :
    Router#show bgp
    BGP table version is 2, local router ID is 9.9.9.9
    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
     *>  9.9.9.0/24       0.0.0.0                  0            32768    i
  5. Chemin le plus court via AS. Le paramètre AS_Path le plus court est sélectionné. Moins une route passe par d’AS, mieux c’est. Considérez la route vers 9.9.9.0/24 sur le routeur 10 :
    Router10#show bgp
    BGP table version is 2, local router ID is 6.6.6.6
    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
     *   9.9.9.0/24     192.168.107.7                           0           123 45 i
     *>i                     192.168.112.12           0    100       0       45 i

    Comme vous pouvez le constater, Router10 a choisi la route via 192.168.112.12 car pour cette route le paramètre AS_Path n'en contient que 45, et dans un autre cas 123 et 45. Intuitivement clair.

  6. Le paramètre suivant est Origine. IGP (route obtenue à l'aide de BGP) est meilleure que EGP (route obtenue à l'aide du prédécesseur de BGP, qui n'est plus utilisée), et EGP est meilleure qu'Incomplete ? (obtenu par une autre méthode, par exemple par redistribution).
  7. Le paramètre suivant est MED. Nous avions Wieght qui ne fonctionnait que localement sur le routeur. Il y avait la préférence locale, qui ne fonctionnait qu'au sein d'un système autonome. Comme vous pouvez le deviner, MED est un paramètre qui sera transmis entre systèmes autonomes. Très bien article à propos de ce paramètre.

Aucun autre attribut ne sera utilisé, mais si deux itinéraires ont les mêmes attributs, alors les règles suivantes sont utilisées :

  1. Sélectionnez le chemin passant par le voisin IGP le plus proche.
  2. Sélectionnez la route la plus ancienne pour le chemin eBGP.
  3. Sélectionnez le chemin passant par le voisin avec le plus petit ID de routeur BGP.
  4. Choisissez un chemin via le voisin avec l’adresse IP la plus basse.

Examinons maintenant la question de la convergence BGP.

Voyons ce qui se passe si le routeur 6 perd la route 9.9.9.0/24 via le routeur 9. Désactivons l'interface Gi0/1 du Router6, qui comprendra immédiatement que la session BGP avec le Router8 est terminée et que le voisin a disparu, ce qui signifie que la route reçue de celui-ci n'est pas valide. Le routeur 6 envoie immédiatement des messages de mise à jour, où il indique le réseau 9.9.9.0/24 dans le champ Routes retirées. Dès que le routeur 5 reçoit un tel message, il l'envoie au routeur 7. Mais comme le routeur 7 a une route via le routeur 10, il répondra immédiatement par une mise à jour avec une nouvelle route. S'il n'est pas possible de détecter la chute d'un voisin en fonction de l'état de l'interface, vous devrez alors attendre que le Hold Timer se déclenche.

Confédération.

Si vous vous en souvenez, nous avons évoqué le fait qu'il faut souvent utiliser une topologie entièrement connectée. Avec un grand nombre de routeurs dans un AS, cela peut poser de gros problèmes. Pour éviter cela, vous devez utiliser des confédérations. Un AS est divisé en plusieurs sous-AS, ce qui leur permet de fonctionner sans nécessiter une topologie entièrement connectée.

Comment fonctionne BGP

Voici un lien vers ceci labouEt ici configuration pour GNS3.

Par exemple, avec cette topologie, nous devrions connecter tous les routeurs de l'AS 2345 entre eux, mais en utilisant la Confédération, nous pouvons établir des relations de contiguïté uniquement entre les routeurs directement connectés les uns aux autres. Parlons de cela en détail. Si nous avions seulement AS 2345, alors laForge ayant reçu une marche de Picard je le dirais aux routeurs Données и Worf, mais ils n'en ont pas parlé au routeur Broyeur . Également des routes distribuées par le routeur lui-même laForge, n'aurait pas été transféré Broyeur ni Worf-oh non Données.

Vous devrez configurer un Route-Reflector ou une relation de voisinage entièrement connectée. En divisant un AS 2345 en 4 sous-AS (2,3,4,5) pour chaque routeur, on se retrouve avec une logique de fonctionnement différente. Tout est parfaitement décrit ici.

Sources:

  1. Guide de certification officiel CCIE Routing and Switching v5.0, volume 2, cinquième édition, Narbik Kocharians, Terry Vinson.
  2. site Web xgu.ru
  3. site Web GNS3Vault.

Source: habr.com

Ajouter un commentaire