BGP LOCAL_PREF

CCIE / ENARSI Best Path Critère #2

LOCAL_PREF — Définition

Décider par quelle sortie ISP mon AS doit passer. LOCAL_PREF est le critère #2 dans l'algorithme BGP Best Path, utilisé pour influencer le trafic sortant à l'échelle de tout l'AS.

Attribute NameLOCAL_PREF
Type Code5
CategoryWell-known Discretionary
Default Value100
ComparaisonHighest wins
PortéeIntra-AS (iBGP only)

✅ Règle fondamentale

Le chemin avec le LOCAL_PREF le plus élevé est préféré. Si ISP1 reçoit LP=200 et ISP2 LP=100, tous les routeurs de l'AS sortiront par ISP1 — automatiquement, sans config supplémentaire sur chaque routeur.

Plus haut = préféré Propagé dans tout l'AS Jamais envoyé à eBGP Well-known Discretionary

🌐 Topologie Dual-Homed — Scénario classique ENARSI

AS 65000 connecté à deux ISP. route-map appliquée sur R1 (session eBGP ISP1) → LOCAL_PREF 200 propagé à tout l'AS.

ISP1
AS 100
ISP2
AS 200
eBGP
LP = 200 ★
eBGP
LP = 100
R1
10.0.0.1
R2
10.0.0.2
iBGP — LP propagé automatiquement
R3 / R4…
AS 65000
★ Tout l'AS préfère la sortie par ISP1

Règles de propagation

LOCAL_PREF a des règles de propagation strictes. C'est ce qui le différencie fondamentalement du Weight (local) et du MED (vers l'AS voisin).

📥 eBGP → iBGP ✅ LOCAL_PREF propagé R1 reçoit de ISP1, envoie LP aux peers iBGP
🔄 iBGP → iBGP ✅ LOCAL_PREF propagé Tous les routeurs de l'AS reçoivent le LP
🚫 iBGP → eBGP ❌ LOCAL_PREF NON propagé Stripped avant envoi à l'AS voisin

📌 Pourquoi LOCAL_PREF ne sort pas vers eBGP ?

LOCAL_PREF est un attribut Well-known Discretionary — son application est interne à l'AS. L'envoyer à l'AS voisin permettrait à d'autres AS d'influencer ta politique de routage interne. Cisco le supprime automatiquement avant tout envoi eBGP.

🔍 Scénario de propagation complet

! R1 reçoit 10.0.0.0/8 de ISP1 (eBGP)
! route-map PREFER-ISP1 applique LOCAL_PREF 200
! R1 propage à R2, R3, R4 via iBGP → LP=200 visible partout dans l'AS
! R2 reçoit 10.0.0.0/8 de ISP2 (eBGP) → LP=100 (défaut)
! Résultat : TOUS les routeurs AS 65000 préfèrent via R1/ISP1

R3# show ip bgp 10.0.0.0
  Local preference: 200    ← reçu via iBGP depuis R1
  Next hop: 10.0.0.1 (R1 → ISP1)

Deux méthodes principales. La route-map est recommandée en production et la plus testée à l'exam.

1
route-map set local-preference RECOMMANDÉ

Appliquée en inbound sur la session eBGP. Le voisin 1.1.1.1 est bien un voisin eBGP (ISP1).

route-map PREFER-ISP1 permit 10
 set local-preference 200
!
router bgp 65000
 neighbor 1.1.1.1 route-map PREFER-ISP1 in
 ! 1.1.1.1 = voisin eBGP ISP1

→ Toutes les routes reçues de ISP1 auront LP=200

1+
route-map granulaire (par préfixe)

LP différent selon le préfixe, l'AS-PATH ou la community.

ip prefix-list CRITIQUES permit 10.0.0.0/8
!
route-map SET-LP permit 10
 match ip address prefix-list CRITIQUES
 set local-preference 300
route-map SET-LP permit 20
 set local-preference 150
 ! autres routes → LP 150
2
bgp default local-preference

Change la valeur par défaut globalement pour tout l'AS. Moins précis mais rapide.

router bgp 65000
 bgp default local-preference 150
 ! toutes les routes reçues
 ! LP=150 au lieu de 100

→ Utile pour hiérarchiser deux AS sans route-map.

📋 Comparaison des méthodes

MéthodeGranularitéUsage typiqueExam
bgp default local-preferenceToutes les routesPolitique globale ASRare
route-map set local-preference inPar préfixe / AS-PATH / communityProduction✅ Très fréquent
neighbor … route-map inPar voisin eBGPStandard dual-homed✅ Le plus courant

Table BGP — Avant / Après LOCAL_PREF

Visualise l'impact de LOCAL_PREF sur la sélection du chemin depuis R3 (routeur interne qui reçoit les deux routes via iBGP).

R3# show ip bgp — Aucune route-map configurée
StatusNetworkNext HopMetricLocPrfWeightPath
*>10.0.0.0/810.0.0.1 (R1)01000100 i
*10.0.0.0/810.0.0.2 (R2)01000200 i

⚠️ Les deux chemins ont LOCAL_PREF = 100 (valeur par défaut). AS-PATH length = tie (1/1), ORIGIN = tie, MED = tie, iBGP/iBGP = tie. BGP descend jusqu'au critère #13 : Lowest Neighbor IP → 10.0.0.1 < 10.0.0.2 → R1 gagne. Pas de politique intentionnelle.

LOCAL_PREF vs Weight

Les deux attributs les plus confondus en exam. Retiens : Weight = un routeur · LOCAL_PREF = tout l'AS.

CritèreWEIGHTLOCAL_PREF
TypeParamètre local CiscoWell-known Discretionary
RFC / Standard❌ Cisco propriétaire✅ RFC 4271
Type Code IANA❌ Aucun✅ Type code 5
Propagation❌ Jamais — routeur local✅ Tout l'AS via iBGP
Envoyé à eBGP❌ Non❌ Non (stripped)
Portée1 routeur uniquementTout l'AS
Valeur par défaut32768 (local) / 0 (reçu)100
PréférencePlus haut = préféréPlus haut = préféré
Position Best PathCritère #1Critère #2
Direction route-mapIN seulementIN sur session eBGP
Multi-vendor❌ Cisco only✅ Tous les routeurs BGP

🎯 Règle de mémorisation

Weight → Un seul routeur préfère ISP1. Local, instantané, Cisco only.

LOCAL_PREF → Tout l'AS sort par ISP1. Propagé via iBGP, interopérable, policy AS-wide.

Weight    = critère #1 · local   · Cisco · 0–65535 · default 32768/0
LOCAL_PREF = critère #2 · AS-wide · RFC   · 0–∞    · default 100

⚠️ PIÈGE #1 — Direction IN obligatoire sur session eBGP

LOCAL_PREF se configure avec route-map … in sur la session eBGP. Appliqué en out ou sur un voisin iBGP → aucun effet sur la sélection de chemin sortante.

⚠️ PIÈGE #2 — LOCAL_PREF n'est PAS envoyé à eBGP

Même avec LP=500, l'AS voisin ne le verra jamais. Pour influencer le trafic entrant dans ton AS, utilise AS-PATH prepending ou MED — pas LOCAL_PREF.

⚠️ PIÈGE #3 — Valeur par défaut 100, pas 0

Contrairement au Weight (0 pour les routes reçues), LOCAL_PREF est 100 par défaut. Pour déprécier une route, mets LP à 50 — pas besoin de monter l'autre à 1000.

⚠️ PIÈGE #4 — Well-known Discretionary ≠ toujours présent

"Well-known" = tous les routeurs BGP doivent reconnaître l'attribut. "Discretionary" = pas obligatoire dans chaque UPDATE. S'il est absent, la valeur par défaut (100) s'applique.

⚠️ PIÈGE #5 — Weight a priorité sur LOCAL_PREF

Si un routeur a un weight configuré, il est examiné avant LOCAL_PREF. Un Weight=1 sur ISP2 écrase LP=200 sur ISP1 pour ce routeur uniquement.

🔍 Commandes de vérification

show ip bgp                       ! colonne LocPrf visible
show ip bgp 10.0.0.0              ! détail + local preference + reason
show route-map PREFER-ISP1        ! vérifier la route-map
show ip bgp neighbors 1.1.1.1 policy ! policy appliquée au voisin
clear ip bgp 1.1.1.1 soft in       ! réappliquer sans reset session
5
Type Code IANA
Well-known Discretionary · RFC 4271
100
Valeur par défaut
Toutes les routes BGP ont LP=100 si non configuré
#2
Position Best Path
Critère #2 — après Weight, avant AS-PATH
AS
Portée
Propagé à TOUS les routeurs iBGP de l'AS
IN
Direction route-map
Inbound sur session eBGP uniquement
HIGH
Règle de préférence
LOCAL_PREF le plus ÉLEVÉ est préféré
NO
Envoyé à eBGP
Stripped avant tout envoi vers un AS voisin
OUT
Influence le trafic
Trafic SORTANT de l'AS — choisir la meilleure sortie ISP

🎓 Résumé Exam en 5 points

  1. LOCAL_PREF = Well-known Discretionary · type code 5 · défaut 100
  2. Critère #2 Best Path — plus haut = préféré
  3. Propagé dans tout l'AS via iBGP — jamais envoyé à eBGP
  4. Se configure avec route-map … in sur session eBGP
  5. Influence le trafic sortant — pour entrant : AS-PATH prepending ou MED