🆔 Règle de sélection Critère #11 Lowest wins ORIGINATOR_ID si RR

Router-ID du peer

Critère #11 — Préférer le chemin dont le peer annonçant a le plus petit Router-ID. Si une Route Reflector a ajouté ORIGINATOR_ID (type 9), c'est cette valeur qui est utilisée à la place du Router-ID du peer.

Profil complet
Type code
— aucun (règle locale)
Catégorie
Règle de sélection
Critère
#11
Comparaison
Lowest wins
Source (sans RR)
Router-ID du peer BGP
Source (avec RR)
ORIGINATOR_ID (type 9)
ℹ️ Le Router-ID BGP est un identifiant 32 bits (format IPv4) qui identifie de façon unique un routeur dans le domaine BGP. Pour le critère #11, c'est le Router-ID du peer qui annonce le chemin qui est comparé — pas le Router-ID du routeur local. Si un Route Reflector a propagé la route, ORIGINATOR_ID (l'ID du routeur qui a originellement annoncé la route) remplace le Router-ID du peer.
Position dans l'algorithme
1Weight
2LOCAL_PREF
3NH=0.0.0.0
4AS-PATH
5Origin
6MED
7eBGP/iBGP
8IGP metric
9AIGP
10Oldest eBGP
11Router-ID ← ici
12Cluster-list
13Neighbor IP

→ Critère #11 atteint directement si bgp bestpath compare-routerid est configuré (critère #10 sauté).

Règle de comparaison
🔢

Lowest Router-ID wins

Le chemin dont le peer annonçant a le Router-ID le plus bas est préféré. La comparaison est numérique (32 bits), pas lexicographique. Ex: 1.1.1.1 (0x01010101) < 2.2.2.2 (0x02020202).

🔄

ORIGINATOR_ID en contexte RR

Quand une route est réfléchie par un Route Reflector, l'attribut ORIGINATOR_ID (type 9) contient le Router-ID de l'annonceur original. Pour le critère #11, c'est ORIGINATOR_ID qui est comparé, pas le Router-ID du RR ou du peer direct.

🎯

Déterministe par nature

Contrairement au critère #10 (Oldest eBGP), le Router-ID est stable — il ne change pas selon l'ordre d'arrivée des routes. C'est pourquoi bgp bestpath compare-routerid saute #10 pour arriver ici directement.

⚠️

Ne s'applique pas toujours

Si les deux chemins viennent du même peer (même Router-ID ou ORIGINATOR_ID), le critère #11 est une égalité et on passe au critère #12 (longueur Cluster-list). En pratique, deux chemins du même peer sont très rares.

Priorité de sélection du Router-ID sur IOS
1
Configuration manuelle
Valeur explicitement définie — priorité absolue, ne change jamais automatiquement
router bgp 65001 → bgp router-id 10.255.0.1
2
Interface Loopback la plus haute
Si pas de config manuelle, IOS choisit la loopback avec la plus grande adresse IP
Loopback0: 10.0.0.1 / Loopback1: 192.168.1.1 → Router-ID = 192.168.1.1
3
Interface physique active la plus haute
Si aucune loopback, IP la plus haute parmi les interfaces up/up
GigE0/0: 10.1.1.2 / GigE0/1: 172.16.0.1 → Router-ID = 172.16.0.1
⚠️ Si le Router-ID change (nouvelle loopback, interface up/down), toutes les sessions BGP sont réinitialisées (NOTIFICATION + session reset) pour que les voisins apprennent le nouveau Router-ID. En production, toujours configurer bgp router-id manuellement.
Configuration et vérification
! Configuration manuelle du Router-ID (bonne pratique absolue)
router bgp 65001
  bgp router-id 1.1.1.1          ! Utiliser l'IP de la loopback principale

! Vérification
R1# show ip bgp summary
BGP router identifier 1.1.1.1, local AS number 65001
...

R1# show bgp ipv4 unicast summary | include router identifier
BGP router identifier 1.1.1.1, local AS number 65001

! Voir le Router-ID des peers
R1# show ip bgp neighbors 10.0.0.2 | include router identifier
  BGP neighbor is 10.0.0.2, remote AS 65001, internal link
    BGP version 4, remote router ID 2.2.2.2
Impact du Router-ID sur la sélection BGP
ScénarioRouter-ID R1Router-ID R2Résultat critère #11
R1 loopback 1.1.1.1, R2 loopback 2.2.2.21.1.1.12.2.2.2R1 gagne (1.1.1.1 < 2.2.2.2)
R1 loopback 10.0.0.1, R2 loopback 10.0.0.210.0.0.110.0.0.2R1 gagne (10.0.0.1 < 10.0.0.2)
R1 loopback 192.168.1.1, R2 loopback 10.0.0.1192.168.1.110.0.0.1R2 gagne (10.0.0.1 < 192.168.1.1)
Même Router-ID (mauvaise config)1.1.1.11.1.1.1Égalité → critère #12
💡 La comparaison est purement numérique sur la valeur 32 bits. 10.0.0.1 = 0x0A000001 = 167772161, 192.168.1.1 = 0xC0A80101 = 3232235777. Donc 10.0.0.1 < 192.168.1.1 — la plage d'adresse n'a aucune importance.
ORIGINATOR_ID — attribut type 9
Type code
9
Catégorie
Optional Non-Transitive
Ajouté par
Route Reflector (RR)
Contenu
Router-ID de l'annonceur original
Rôle #11
Remplace Router-ID du peer
Rôle anti-boucle
Route rejetée si ORIG_ID = propre RID
ℹ️ Quand un Route Reflector (RR) reflète une route iBGP vers un client, il ajoute ORIGINATOR_ID = Router-ID du PE client qui a originellement annoncé la route. Pour le critère #11, le routeur recevant la route réfléchie compare l'ORIGINATOR_ID, pas le Router-ID du RR.
Topologie RR et flux ORIGINATOR_ID
AS 65001 ┌──────────────────────────────────────────────────────────────┐ │ │ │ PE1 (RID=1.1.1.1) ──iBGP──► RR ──iBGP──► PE3 (RID=3.3.3.3) │ │ annonce 172.16.0.0/16 │ │ │ │ │ │ PE2 (RID=2.2.2.2) ──iBGP──► RR ──iBGP──► PE3 │ │ annonce 172.16.0.0/16 │ │ │ │ RR reflète vers PE3 : │ │ - Route de PE1 → ORIGINATOR_ID = 1.1.1.1 (RID de PE1) │ │ - Route de PE2 → ORIGINATOR_ID = 2.2.2.2 (RID de PE2) │ │ │ │ PE3 reçoit les deux routes du même peer (RR) : │ │ Critère #11 : ORIGINATOR_ID 1.1.1.1 < 2.2.2.2 │ │ → Route de PE1 sélectionnée ✅ │ └──────────────────────────────────────────────────────────────┘
ORIGINATOR_ID — comportement détaillé
SituationValeur utilisée pour critère #11
Route eBGP directe (pas de RR)Router-ID du peer eBGP (champ "from" dans show ip bgp)
Route iBGP directe (pas de RR)Router-ID du peer iBGP
Route réfléchie par RR (ORIGINATOR_ID présent)ORIGINATOR_ID (type 9) — Router-ID de l'annonceur original
ORIGINATOR_ID = propre Router-ID du routeurRoute REJETÉE (mécanisme anti-boucle iBGP)
Deux routes avec même ORIGINATOR_IDÉgalité → critère #12 (Cluster-list length)
Vérification ORIGINATOR_ID dans show ip bgp
PE3# show ip bgp 172.16.0.0/16
BGP routing table entry for 172.16.0.0/16, version 20
Paths: (2 available, best #1)
  Advertised to update-groups: 1
  65100
    10.1.1.1 from 10.0.0.100 (10.0.0.100)   ← from RR (10.0.0.100)
      Origin IGP, localpref 100, valid, internal, best
      Originator: 1.1.1.1, Cluster list: 10.0.0.100
      ↑ ORIGINATOR_ID = 1.1.1.1 (Router-ID de PE1) → utilisé pour critère #11
  65100
    10.1.1.2 from 10.0.0.100 (10.0.0.100)   ← from RR (même peer!)
      Origin IGP, localpref 100, valid, internal
      Originator: 2.2.2.2, Cluster list: 10.0.0.100
      ↑ ORIGINATOR_ID = 2.2.2.2 (Router-ID de PE2) → critère #11 : 1.1.1.1 < 2.2.2.2 → PE1 gagne
Topologie — dual border router, même préfixe
AS 65001 ┌──────────────────────────────────────────────────────────────┐ │ │ │ R1 (RID=1.1.1.1) ──eBGP──► ISP-A (65100) ─── 172.16.0.0/16│ │ Lo: 1.1.1.1 │ │ │ │ R2 (RID=2.2.2.2) ──eBGP──► ISP-A (65100) ─── 172.16.0.0/16│ │ Lo: 2.2.2.2 │ │ │ │ R3 reçoit les deux routes via iBGP depuis R1 et R2 │ │ Critères 1–10 tous identiques → critère #11 : │ │ ORIGINATOR_ID 1.1.1.1 (R1) < 2.2.2.2 (R2) → R1 gagne │ └──────────────────────────────────────────────────────────────┘
show ip bgp sur R3 — critère #11 en action
R3# show ip bgp 172.16.0.0/16
BGP routing table entry for 172.16.0.0/16, version 22
Paths: (2 available, best #1, table Default-IP-Routing-Table)
  Advertised to update-groups:
     1
  65100
    203.0.113.1 (metric 10) from 1.1.1.1 (1.1.1.1)    ← Router-ID 1.1.1.1
      Origin IGP, metric 0, localpref 100, valid, internal, best
      ↑ critère #11 : 1.1.1.1 < 2.2.2.2 → BEST ✅

  65100
    203.0.113.2 (metric 10) from 2.2.2.2 (2.2.2.2)    ← Router-ID 2.2.2.2
      Origin IGP, metric 0, localpref 100, valid, internal
      ↑ critère #11 : 2.2.2.2 > 1.1.1.1 → perd ❌
🔍 Dans show ip bgp, la syntaxe est : from <peer-IP> (<Router-ID>). Le champ entre parenthèses est le Router-ID du peer — c'est cette valeur qui est comparée au critère #11 (ou ORIGINATOR_ID si présent).
Analyse critère par critère sur R3
CritèreVia R1Via R2Résultat
#1–#9Identiques sur tous les critèresÉgal — suivant
#10 Oldest eBGPiBGP paths → critère #10 sautéSauté → #11
#11 Router-ID1.1.1.12.2.2.2✅ R1 gagne (1.1.1.1 < 2.2.2.2)
Rappel — critère #10 vs critère #11
⏱️ Critère #10 — Oldest eBGP
(défaut, sans compare-routerid)
S'applique àChemins eBGP uniquement
CritèreÂge du chemin (oldest gagne)
Déterministe ?Non — dépend ordre d'arrivée
Après flapBest path peut changer
Multi-routeur cohérent ?Non garanti
🆔 Critère #11 — Router-ID
(avec bgp bestpath compare-routerid)
S'applique àeBGP et iBGP
CritèreRouter-ID du peer (lowest gagne)
Déterministe ?Oui — Router-ID est stable
Après flapBest path inchangé (si RID stable)
Multi-routeur cohérent ?Oui (même vue = même choix)
Configuration et vérification
! Sauter le critère #10 pour aller directement au critère #11
router bgp 65001
  bgp bestpath compare-routerid

! IMPORTANT : configurer sur TOUS les routeurs BGP du même AS
! Un mix (certains avec, d'autres sans) crée des incohérences

! Vérification
R1# show running-config | section router bgp
router bgp 65001
 bgp router-id 1.1.1.1
 bgp bestpath compare-routerid    ← confirme que #10 est sauté
 ...

! Si les Router-IDs sont bien configurés (manuellement, bas et stables)
! le critère #11 donnera toujours le même résultat sur tous les routeurs
Bonnes pratiques combinées
! Configuration recommandée en production (dual border router)
router bgp 65001
  bgp router-id 1.1.1.1              ! Router-ID manuel stable et bas
  bgp bestpath compare-routerid      ! Sauter #10, aller à #11
  bgp log-neighbor-changes           ! Tracer les changements de session
  neighbor 2.2.2.2 remote-as 65001
  neighbor 2.2.2.2 update-source Loopback0

! Sur R2 (border router #2) :
router bgp 65001
  bgp router-id 2.2.2.2              ! Router-ID différent de R1 !
  bgp bestpath compare-routerid      ! Même commande que R1

⚡ Changement de Router-ID = reset de toutes les sessions BGP

Si le Router-ID change (nouvelle loopback, interface up/down), IOS envoie une notification CEASE à tous les peers et réinitialise les sessions. Cela provoque une reconvergence BGP complète et une interruption de trafic. Toujours configurer bgp router-id manuellement pour éviter ce risque.

⚡ Router-ID dupliqué dans le même AS

Si deux routeurs du même AS ont le même Router-ID (ex: copier-coller de config), les sessions iBGP entre eux échouent avec une erreur OPEN message. Symptôme : show ip bgp neighbors montre Idle/Active en boucle. Vérifier avec show ip bgp summary → champ "BGP router identifier".

⚡ ORIGINATOR_ID ignoré si routeur ne comprend pas les RR

Un vieux routeur ne supportant pas les attributs Route Reflector (ORIGINATOR_ID type 9, CLUSTER_LIST type 10) peut les ignorer. Pour le critère #11, il utilisera alors le Router-ID du peer direct (le RR) au lieu de l'ORIGINATOR_ID — résultat différent de ce qu'on attend.

⚡ Confondre Router-ID BGP et Router-ID OSPF

BGP et OSPF ont chacun leur propre Router-ID, sélectionné indépendamment avec les mêmes règles (loopback, interface). Ils peuvent être différents. Le critère #11 de BGP utilise uniquement le Router-ID BGP, pas celui d'OSPF. Toujours vérifier avec show ip bgp summary, pas show ip ospf.

⚡ Anti-boucle RR : route rejetée si ORIGINATOR_ID = propre RID

Un client RR rejette silencieusement toute route réfléchie dont l'ORIGINATOR_ID correspond à son propre Router-ID — c'est le mécanisme anti-boucle iBGP. Si un routeur ne voit pas une route attendue dans un environnement RR, vérifier si ORIGINATOR_ID = propre RID avec show ip bgp X detail.

⚡ compare-routerid non appliqué uniformément

Si bgp bestpath compare-routerid est configuré sur R1 mais pas R2, R1 va au critère #11 directement tandis que R2 passe par le critère #10. Les deux routeurs peuvent sélectionner des best paths différents — exactement le problème qu'on cherchait à éviter.

✅ Bonne pratique — Router-ID bas = priorité de sélection

Utiliser des Router-IDs bas (ex: 1.1.1.1, 2.2.2.2) pour les border routers principaux garantit qu'ils seront préférés au critère #11. Cela permet de contrôler explicitement quel border router est préféré pour le trafic entrant, sans toucher aux critères 1–10.

✅ Bonne pratique — toujours bgp router-id manuel en production

Configurer bgp router-id X.X.X.X sur chaque routeur BGP, idéalement égal à l'IP de la loopback principale. Cela garantit que le Router-ID ne changera jamais automatiquement, évite les resets de sessions inattendus, et rend le critère #11 prévisible.

Cliquez sur une carte pour révéler la réponse.

Que compare le critère #11 de la sélection BGP ?
Le Router-ID du peer qui annonce le chemin. Le plus petit Router-ID gagne. Si ORIGINATOR_ID (type 9) est présent dans la route (ajouté par un Route Reflector), c'est ORIGINATOR_ID qui est utilisé à la place du Router-ID du peer direct.
→ Lowest wins — numérique sur 32 bits
Quelle est la priorité de sélection du Router-ID sur IOS ?
bgp router-id X.X.X.X (manuel — priorité absolue) → ② Loopback avec la plus haute IP → ③ Interface physique active avec la plus haute IP. En production, toujours configurer manuellement pour éviter les resets de sessions.
→ Manuel > Loopback > Interface
Que se passe-t-il si le Router-ID BGP change ?
Toutes les sessions BGP sont réinitialisées (NOTIFICATION CEASE envoyée à tous les peers). Cela provoque une reconvergence BGP complète avec interruption de trafic. C'est pourquoi bgp router-id doit toujours être configuré manuellement.
→ Router-ID change = reset toutes sessions
Quel est le rôle de ORIGINATOR_ID (type 9) pour le critère #11 ?
Ajouté par un Route Reflector lors de la réflexion d'une route iBGP, ORIGINATOR_ID contient le Router-ID de l'annonceur original. Pour le critère #11, le routeur compare l'ORIGINATOR_ID au lieu du Router-ID du peer (RR) qui lui a transmis la route.
→ Aussi utilisé pour l'anti-boucle : si ORIG_ID = propre RID → route rejetée
Comment lire le Router-ID d'un peer dans show ip bgp ?
Dans show ip bgp X.X.X.X/Y, chaque chemin affiche : from <peer-IP> (<Router-ID>). La valeur entre parenthèses est le Router-ID du peer — c'est elle qui est comparée au critère #11. Si ORIGINATOR_ID est présent, la ligne Originator: X.X.X.X indique la valeur utilisée.
→ from 10.0.0.1 (1.1.1.1) : Router-ID = 1.1.1.1
Pourquoi utiliser bgp bestpath compare-routerid rend la sélection plus prévisible ?
Sans cette commande, le critère #10 (Oldest eBGP) peut donner des résultats différents selon l'ordre d'arrivée des routes. Avec compare-routerid, on saute #10 et on va directement au critère #11 (Router-ID), qui est stable et identique sur tous les routeurs ayant la même vue BGP.
→ Fortement recommandé en multi-border-router
Deux routeurs ont le même Router-ID BGP dans le même AS. Quel est le symptôme ?
Les sessions iBGP entre eux échouent : lors de l'échange OPEN, chaque routeur détecte que le Router-ID reçu est identique au sien → NOTIFICATION + session fermée. Dans show ip bgp summary, le peer reste en état Idle ou Active. Corriger avec bgp router-id unique sur chaque routeur.
→ Symptôme : session BGP flapping avec OPEN error
Si deux chemins ont le même Router-ID (ou ORIGINATOR_ID), quel critère s'applique ensuite ?
Le critère #12 — longueur de la CLUSTER_LIST. Le chemin avec la Cluster-list la plus courte (moins de Route Reflectors traversés) est préféré. Si égalité, on passe au critère #13 — adresse IP du neighbor (lowest wins).
→ #11 égal → #12 Cluster-list → #13 Neighbor IP