BGP Weight

CCIE / ENARSI

⚠️ Ce que le Weight N'EST PAS

Le Weight n'est PAS un BGP Path Attribute. Il n'apparaît jamais dans un BGP UPDATE. Il n'a pas de type code IANA. Il n'est jamais propagé à d'autres routeurs.

❌ Pas un Path Attribute ❌ Pas de Type Code ❌ Non propagé ❌ Absent des BGP UPDATEs

✅ Ce que le Weight EST

Le Weight est un paramètre local Cisco propriétaire, stocké uniquement dans la BGP table du routeur local. Il sert exclusivement à choisir le meilleur chemin sur ce routeur.

🏠 Local uniquement Cisco propriétaire ✅ Priorité #1 Best Path 16 bits → 0 à 65535

Valeurs par défaut

Règle fondamentale : une route originée localement naît avec un weight de 32768. Une route reçue d'un voisin a un weight de 0.

Origine de la routeCommande IOSWeight par défaut
Réseau annoncénetwork32768
Redistributionredistribute connected/static/ospf…32768
Agrégation localeaggregate-address32768
Route reçue d'un voisinneighbor … (BGP UPDATE)0
Stockage16 bits non signés
Plage0 → 65535
DécisionHIGHER is preferred
PortéeRouteur local uniquement

Trois méthodes permettent de modifier le Weight. La route-map a priorité sur la commande neighbor en cas de conflit.

1
neighbor … weight

Toutes les routes reçues de ce voisin reçoivent le même Weight. Simple mais peu granulaire.

router bgp 65000
 neighbor 10.1.1.1 weight 200  ! ISP1
 neighbor 10.2.2.2 weight 100  ! ISP2
Internet
Weight 200 ★
Weight 100
ISP1
10.1.1.1
ISP2
10.2.2.2
R1 — AS 65000
2
route-map set weight FLEXIBLE

Méthode la plus fine : applique un Weight différent selon des conditions précises.

ip prefix-list NET1 permit 192.168.0.0/16
!
route-map SET_WEIGHT permit 10
 match ip address prefix-list NET1
 set weight 300
route-map SET_WEIGHT permit 20
 ! autres → weight 0
!
router bgp 65000
 neighbor 10.1.1.1 route-map SET_WEIGHT in

Conditions match possibles :

prefix-list as-path community tag metric
3
Redistribution / Routes locales

Les routes injectées localement héritent automatiquement du Weight 32768 — aucune config nécessaire.

router bgp 65000
 redistribute connected
 ! → weight implicite : 32768

 network 10.0.0.0 mask 255.0.0.0
 ! → weight implicite : 32768
Weight 32768 automatique

Ces routes sont toujours préférées aux routes reçues des voisins (weight 0) — comportement by design.

Algorithme BGP Best Path Selection — 13 critères

Le Weight est examiné en premier. L'AIGP intervient au critère #9, après la métrique IGP vers le next-hop.

💡 Mnémotechnique (13 critères)

We Love Oranges As Our Meal — Every Interface Always Offers Routes Consistently Now

Weight · Local_Pref · Originated · AS_path · Origin · Med · Ebgp · Igp · Aigp · Oldest · Router-id · Cluster · Neighbor-ip

BGP → RIB → FIB

Comprendre où intervient le Weight dans le pipeline de forwarding Cisco.

BGP Table
Apprend les chemins
Applique le Weight
Sélectionne le best path
RIB
Routing Info Base
ip route show
Compare AD entre protocoles
FIB
Forwarding Info Base
CEF table
Forwarde les paquets
ÉtapeRôleImpact du Weight
BGP TableStocke tous les chemins reçus + locaux✅ Weight appliqué ici — best path sélectionné
RIBReçoit le best path BGP (si AD meilleure)Transparent — Weight non visible
FIB (CEF)Forwarde selon la RIBTransparent — Weight non visible

📌 Règle à retenir

📥
BGP
Apprend les chemins
🧠
RIB
Décide la meilleure route
🚀
FIB
Forward les paquets

Weight vs LOCAL_PREF

Ces deux attributs sont souvent confondus en exam.

CritèreWEIGHTLOCAL_PREF
TypeParamètre local CiscoWell-known discretionary
Propagation❌ Non propagé✅ Propagé aux iBGP peers
PortéeUn seul routeurTout l'AS local
Valeur par défaut32768 (local) / 0 (reçu)100
PréférencePlus haut = préféréPlus haut = préféré
Priorité Best PathCritère #1Critère #2
Cisco propriétaire⚠️ Oui✅ Non — RFC standard
Type Code IANA❌ Aucun✅ Type code 5
BGP UPDATE❌ Jamais envoyé✅ Envoyé aux iBGP peers

🎯 Quand utiliser lequel ?

Weight → Un seul routeur préfère ISP1. Local, rapide, simple.

LOCAL_PREF → Tous les routeurs de l'AS sortent par ISP1. Policy AS-wide, interopérable.

Weight vs AIGP

Souvent testé à l'ENARSI — deux mécanismes très différents.

CritèreWEIGHTAIGP
TypeParamètre local CiscoOptional non-transitive attribute
RFC❌ Cisco propriétaire✅ RFC 7311
Type Code IANA❌ Aucun✅ Type code 26
Propagation❌ Jamais propagé✅ Propagé entre peers configurés
PortéeRouteur local uniquementMulti-AS (accumulation)
ValeurFixe (0–65535)Accumulée (somme IGP)
PréférencePlus HAUT = préféréPlus BAS = préféré ⚠️
Position Best PathCritère #1Critère #9
BGP UPDATE❌ Absent✅ Présent si activé

Règle de mémorisation :
Weight → plus haut gagne · local · Cisco only · critère #1
AIGP   → plus bas gagne  · propagé · RFC 7311  · critère #9

AIGP — Accumulated IGP Metric

L'AIGP permet à BGP de transporter et accumuler les métriques IGP à travers plusieurs AS, comme si c'était un IGP end-to-end.

RFC 7311 Type Code 26 Optional Non-Transitive Critère #9 Best Path ✅ Propagé Plus bas = préféré
Type Code26
CategoryOptional Non-Transitive
PréférenceLOWER is preferred
PositionCritère #9 Best Path

🔍 Comment fonctionne AIGP ?

L'AIGP accumule la métrique IGP à chaque hop BGP. Quand un routeur reçoit une route avec un AIGP, il ajoute sa propre métrique IGP vers le next-hop à la valeur existante.

AS 100
10
IGP metric
eBGP +
AS 200
20
IGP metric
eBGP +
AS 300
5
IGP metric
AIGP total = 35
10 + 20 + 5 = 35  |  plus bas = préféré

⚙️ Configuration AIGP

! Activer AIGP sur un voisin eBGP
router bgp 65000
 neighbor 10.1.1.1 aigp

! Vérifier AIGP dans la table BGP
show ip bgp 192.168.1.0
! → AIGP: x  (métrique accumulée visible)

! Envoyer une valeur AIGP via route-map
route-map SET_AIGP permit 10
 set aigp-metric igp-metric
router bgp 65000
 neighbor 10.1.1.1 route-map SET_AIGP out

📌 Cas d'usage typique — BGP-free core

Dans un réseau SP avec un cœur BGP-free (LSR ne font pas tourner BGP), AIGP permet de comparer le coût total du chemin de bout en bout, même si certains AS intermédiaires n'ont pas de visibilité complète sur les routes.

Service Provider BGP-free core MPLS networks Multi-AS path cost

🌐 PIÈGE #0 — AIGP vs Weight : confusion fréquente à l'exam

Weight : local · plus haut = préféré · Cisco propriétaire · non propagé · pas de type code
AIGP : propagé · plus bas = préféré · RFC 7311 · type code 26 · optional non-transitive

⚠️ PIÈGE #1 — Cisco propriétaire

Le Weight n'est compris que par les routeurs Cisco. Juniper, Nokia, Arista l'ignorent. Pour une politique interopérable, utilise LOCAL_PREF.

⚠️ PIÈGE #2 — Direction : IN seulement

Le Weight ne peut être appliqué qu'en inbound (route-map … in). Appliquer en out n'a aucun effet sur le Weight.

⚠️ PIÈGE #3 — clear ip bgp et réapplication

Après un clear ip bgp * soft in, le Weight est réappliqué immédiatement. Contrairement à LOCAL_PREF ou MED, la convergence est instantanée et purement locale.

⚠️ PIÈGE #4 — Conflit neighbor weight vs route-map

Si tu configures à la fois neighbor X weight 100 ET route-map set weight 300 in sur le même voisin, la route-map gagne.

⚠️ PIÈGE #5 — AIGP non activé par défaut

AIGP doit être explicitement activé avec neighbor X.X.X.X aigp. Sans cette commande, le routeur ignore silencieusement l'attribut AIGP reçu.

🔍 Commandes de vérification

show ip bgp                        ! colonne Weight visible
show ip bgp 192.168.1.0            ! détail + AIGP si présent
show ip bgp neighbors 10.1.1.1 received-routes
debug ip bgp 10.1.1.1 updates
32768
Weight route locale
network, redistribute, aggregate → naissent avec 32768
0
Weight route reçue
Toute route apprise d'un voisin BGP démarre à 0
#1
Weight — Priorité Best Path
Premier critère examiné dans l'algorithme BGP
16 bits
Taille du Weight
Valeurs possibles : 0 à 65535
26
AIGP — Type Code IANA
RFC 7311 · Optional Non-Transitive · Type code 26
#9
AIGP — Priorité Best Path
Critère #9 · Plus bas = préféré · Après IGP metric
LOW
AIGP — Règle de préférence
AIGP le plus BAS est préféré — inverse du Weight !
LOCAL
Weight — Portée
Jamais dans un BGP UPDATE · Jamais propagé · Cisco only
PROP
AIGP — Propagé
Transmis entre peers si activé avec neighbor aigp
HIGH
Weight — Règle de préférence
Weight le plus ÉLEVÉ est toujours préféré

🎓 Résumé Exam en 6 points

  1. Weight = paramètre local Cisco — pas un path attribute RFC — pas de type code
  2. Valeur par défaut : 32768 (local) / 0 (reçu voisin)
  3. Critère #1 dans BGP best path — plus haut = préféré
  4. Jamais dans les BGP UPDATEs — portée routeur uniquement
  5. AIGP (RFC 7311, type code 26) = critère #9 — plus bas = préféré — propagé
  6. Environnement multi-vendor → utiliser LOCAL_PREF à la place de Weight