0% ont trouvé ce document utile (0 vote)
19 vues50 pages

Guide Pratique sur BGP et Routage

Le document 'Survival Kit Notebook – BGP' fournit des informations détaillées sur la configuration et la gestion du protocole BGP, y compris la formation de voisins, la redistribution de routes, et les attributs BGP. Il aborde également des concepts avancés tels que les sessions iBGP et eBGP, ainsi que des exemples pratiques de configuration. Ce guide est destiné aux professionnels souhaitant approfondir leur compréhension du BGP dans un environnement Cisco.

Transféré par

imed.boudabous.rs
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
19 vues50 pages

Guide Pratique sur BGP et Routage

Le document 'Survival Kit Notebook – BGP' fournit des informations détaillées sur la configuration et la gestion du protocole BGP, y compris la formation de voisins, la redistribution de routes, et les attributs BGP. Il aborde également des concepts avancés tels que les sessions iBGP et eBGP, ainsi que des exemples pratiques de configuration. Ce guide est destiné aux professionnels souhaitant approfondir leur compréhension du BGP dans un environnement Cisco.

Transféré par

imed.boudabous.rs
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Survival Kit Notebook – BGP

BGP
SK Notebook
Extraits de divers documents Cisco

Version Franglaise 2.0


Sept. 2004
SK – BGP Note book – Sept 2004
Ce document « Survival Kit Notebook – BGP » est largement inspiré du
document Cisco Case Studies et de notes de Jean-Michel.
Les précieuses lectures et corrections de Brad et Rahaman sont à
mentionner. Un grand merci à tous !

Page 2 sur 50
SK – BGP Note book – Sept 2004
Sommaire
Forming BGP neighbors . ..................................................................................4
eBGP Multihop .....................................................................................................7
Redistribution......................................................................................................12
Static Routes and Redistribution.....................................................................13
Network command............................................................................................14
iBGP sessions......................................................................................................15
The BGP Decision Algorithm.........................................................................16
AS-PATH Attribute...........................................................................................17
Origin Attribute...................................................................................................18
BGP Nexthop Attribute....................................................................................19
BGP Nexthop (Multiaccess Networks) ........................................................20
BGP Nexthop (NBMA) and Nexthopself ..................................................21
BGP Backdoor....................................................................................................22
Synchronisation ..................................................................................................23
Disabling Synchronization...............................................................................24
Weight Attribute.................................................................................................25
Local Preference Attribute................................................................................26
Metric Attribute ..................................................................................................27
BGP Route Filtering .........................................................................................30
Path Filtering........................................................................................................31
BGP Community Filtering ..............................................................................32
AS –PATH Prepend .........................................................................................35
BGP Peer Groups .............................................................................................36
CIDR and Aggregate Addresses ...................................................................37
Route Reflectors ................................................................................................43
Route Filtering summary :................................................................................48
Outbound Route Filtering :...............................................................................49

Page 3 sur 50
SK – BGP Note book – Sept 2004
Forming BGP neighbors : établir le voisinage BGP ( TCP 179 ). A-B
et C-D : session EBGP; B-C : session IBGP.

A D
[Link]
AS100 AS300

[Link]

B C
[Link] [Link]
X
AS200

RTA#
router bgp 100
neighbor [Link] remote-as 200

RTB#
router bgp 200
neighbor [Link] remote-as 100
neighbor [Link] remote-as 200

RTC#
router bgp 200
neighbor [Link] remote-as 200

Voir aussi :
clear ip bgp <add>
clear ip bgp *
show ip bgp neighbor

(voisinage C et D volontairement non indiqué)

Page 4 sur 50
SK – BGP Note book – Sept 2004
Forming BGP neighbors : complément
Voir aussi :
timers bgp keepalive holdtime
show ip bgp
clear ip bgp {* | address | peer-group-name} [soft [in | out]]
neighbor {ip-address | peer-group-name} version value
Pour retirer les AS privés (64512 to 65535) lors des annonces :
Neighbor <ip voisin> remove-private-as

Pour échanger seulement les routes multicast :

router bgp 109


neighbor [Link] remote-as 1
neighbor 131.108 1.2 remote-as 1
neighbor [Link] remote-as 2
address-family ipv4 multicast
neighbor [Link] activate
neighbor 131.108 1.2 activate
neighbor [Link] activate

Page 5 sur 50
SK – BGP Note book – Sept 2004
BGP and Loopback Interface : le voisinage BGP supporte l’utilisation
des interfaces indirectement connectées (Loopback. par exemple), sous
conditions.

Loopback
[Link]
A B
[Link]
X
AS100

RTA#
router bgp 100
neighbor [Link] remote-as 100
neighbor [Link] update-source loopback 1

RTB#
router bgp 100
neighbor [Link] remote-as 100

Attention :
• neighbor [Link] update-source loopback 1
est nécessaire sur A pour que B puisse l’utiliser pour la connexion
TCP.
• Pour EBGP, préciser neighbor <> ebgp-multihop

Voir aussi :
show ip bgp neighbors
(consulter table 75 – commandes BGP – CD Documentation -
concernant la description des différents champs de la
commande)

Page 6 sur 50
SK – BGP Note book – Sept 2004
eBGP Multihop : voisins eBGP indirectement connectés.

[Link]
A [Link] B
AS100 AS300 [Link]

RTA#
router bgp 100
neighbor [Link] remote-as 300
neighbor [Link] ebgp-multihop

RTB#
router bgp 300
neighbor [Link] remote-as 100
neighbor [Link] ebgp-multihop
neighbor [Link] update-source ethernet 0

Attention : routeur A doit accéder à [Link] (ajouter


IGP ou static).

Voir aussi (complément) :


neighbor <ip voisin> default-originate
route [Link] (par défaut) émise sans condition.
neighbor {ip-address} advertise-map {map1-name} non-exist-
map {map2-name}
La route-map map1-name : annonce les routes qui correspondent et
map2-name pour celles qui ne correspondent pas.

Page 7 sur 50
SK – BGP Note book – Sept 2004
eBGP Multihop (load Balancing) :

[Link]
[Link] Loopback [Link]
Loopback [Link]
[Link]
[Link]
A [Link] B
[Link]

AS100 AS200

RTA#
int loopback 0
ip address [Link] [Link]
router bgp 100
neighbor [Link] remote-as 200
neighbor [Link] ebgp-multihop
neighbor [Link] update-source loopback 0
network [Link]
ip route [Link] [Link] [Link]
ip route [Link] [Link] [Link]

RTB#
int loopback 0
ip address [Link] [Link]
router bgp 200
neighbor [Link] remote-as 100
neighbor [Link] update-source loopback 0
neighbor [Link] ebgp-multihop
network [Link]
ip route [Link] [Link] [Link]
ip route [Link] [Link] [Link]

Page 8 sur 50
SK – BGP Note book – Sept 2004
Route Maps – exemple 1 : redistribution de routes BGP vers RIP avec
changement de metric.

[Link]

[Link]
[Link]
A B
[Link]
AS100

[Link] C

AS300 [Link]

RTA#
router rip
network [Link]
network [Link]
network [Link]
passive-interface Serial0
redistribute bgp 100 route-map SETMETRIC

router bgp 100


neighbor [Link] remote-as 300
network [Link]

route-map SETMETRIC permit 10


match ip-address 1
set metric 2
route-map SETMETRIC permit 20
set metric 5

access-list 1 permit [Link] [Link]

Page 9 sur 50
SK – BGP Note book – Sept 2004
Route Maps – exemple 2 : filtrer la route [Link] en entrée de
AS100. Solution : Route-Map en sortie sur routeur C.

[Link]

[Link]
[Link]
A B
[Link]
AS100

[Link] C

AS300 [Link]

RTC#
router bgp 300
network [Link]
neighbor [Link] remote-as 100
neighbor [Link] route-map STOPUPDATES out

route-map STOPUPDATES permit 10


match ip address 1

access-list 1 deny [Link] [Link]


access-list 1 permit [Link] [Link]

Page 10 sur 50
SK – BGP Note book – Sept 2004
Network command : ne fonctionne que si la route est connue du routeur
(connectée, statique ou apprise dynamiquement).

RTA#
router bgp 1
network [Link] mask [Link]
ip route [Link] [Link] null 0

Remarque : un maximum de 200 entrées avec la


commande network est accepté.

Voir aussi :

network address backdoor


show ip route
show ip bgp

Page 11 sur 50
SK – BGP Note book – Sept 2004
Redistribution : à part la commande network, l’autre façon d’annoncer
des routes (IGP –> BGP) est la redistribution.

AS300
D
[Link]

[Link]

[Link]
A C B
AS100 [Link]

RTC# AS200
router eigrp 10
network [Link]
redistribute bgp 200
default-metric 1000 100 250 100 1500

router bgp 200


neighbor [Link] remote-as 300
neighbor [Link] distribute-list 1 out
redistribute eigrp 10

access-list 1 permit [Link] [Link]

Attention : des précautions sont à prendre afin d’annoncer


les seules routes souhaitées. Ici on évite d’annoncer la
[Link] apprise via BGP.

Rappel : les annonces BGP vers IGP sont toujours faites à


l’aide de la redistribution.

Voir aussi :

distribute-list [ in | out ]

Page 12 sur 50
SK – BGP Note book – Sept 2004
Static Routes and Redistribution : en reprenant l’exemple précédent,
une route statique peut être utilisée pour annoncer la route [Link].

AS300
D
[Link]

[Link]

[Link]
A C B
AS100 [Link]

AS200

RTC#
router eigrp 10
network [Link]
redistribute bgp 200
default-metric 1000 100 250 100 1500

router bgp 200


neighbor [Link] remote-as 300
redistribute static
...
ip route [Link] [Link] null0
....
Remarque : BGP considère que cette route a comme
origine « incomplete » (unknown), comme effet de la
commande redistribute.

Page 13 sur 50
SK – BGP Note book – Sept 2004
Network command : cas où la commande Network n’est pas nécessaire.
Si elle est utilisée, elle provoque une annonce supplémentaire pour ces
mêmes réseaux indiquant que l’AS courant (AS300) est aussi un « origin ».

[Link] [Link]

A B
[Link]
AS100 [Link] AS200

[Link] [Link]
C
AS300 [Link]
RTA#
router bgp 100
neighbor [Link] remote-as 300
network [Link]

RTB#
router bgp 200
neighbor [Link] remote-as 300
network [Link]

RTC#
router bgp 300
neighbor [Link] remote-as 100
neighbor [Link] remote-as 200
network 170.10.00

Remarque : Routeur C n’a pas besoin de lignes


network [Link] et network [Link].
Rappel : BGP n’accepte pas les routes dont l’origine
est son propre AS ou y ayant transité (loop free).

Page 14 sur 50
SK – BGP Note book – Sept 2004
iBGP sessions : iBGP est utilisé dans le cas où un AS agit en tant que
système de transit pour d’autres AS. Il est possible, sans iBGP, de redistribuer
les routes via un IGP (eBGP-IGP-eBGP) cependant iBGP offre plus de
souplesse et d’efficacité.
AS100
X [Link]
D IBGP
[Link]
A B
IBGP [Link]
[Link]

[Link] [Link]

AS300 E [Link] C
AS500 [Link] AS400
RTA#
router bgp 100
neighbor [Link] remote-as 100
neighbor [Link] remote-as 300
network [Link]

RTB#
router bgp 100
neighbor [Link] remote-as 100
neighbor [Link] remote-as 400
network [Link]

RTC#
router bgp 400
neighbor [Link] remote-as 100
network [Link]

Attention : un routeur qui reçoit des mises à jour BGP de la part


d’un voisin de même AS, ne les transmet pas vers un autre voisin
interne (iBGP split horizon). Ici le voisinage routeurs B-D doit
être établi.
Voir aussi :
BGP Confederation et Route Reflectors

Page 15 sur 50
SK – BGP Note book – Sept 2004
The BGP Decision Algorithm : un seul chemin est choisi pour atteindre
une destination spécifique. Le processus de sélection est basé sur différents
attributs selon l’ordre préférentiel suivant (route synchronisée ayant un next-
hop valide) :

1. WEIGHT (Cisco) le plus élevé (local au routeur)


2. LOCAL PREFERENCE le plus élevé (interne à un AS)
3. Le routeur est à l'origine de la route
4. AS-PATH le plus court
5. ORIGIN ou NLRI le plus faible (IGP<EGP<incomplete)
6. MED le plus faible (metric)
7. EBGP (chemin externe) puis IBGP (interne)
8. Pour IBGP, le metric IGP le plus faible
9. Pour EBGP, le chemin le plus ancien
10. Le voisin avec « BGP router id » le plus faible
11. Le voisin avec la plus petite adresse IP

Pour info :
NLRI : Network Layer Reachability Information.

Router-id : « bgp router-id » ou plus haute adresse de loopback ou plus haute


adresse IP.

Page 16 sur 50
SK – BGP Note book – Sept 2004
AS-PATH Attribute : liste des numéros d’AS empruntés par la route
menant à la destination.

[Link] [Link]

A B
AS100 AS200

C
AS300 [Link]

Le réseau [Link] est annoncé par le routeur B de


l’AS200.
Lorsque cette route arrive au routeur A, deux
numéros d’AS lui sont ajoutés : 200 puis 300.
Pour atteindre [Link] à partir du routeur A, le
chemin est (300,200).

Voir aussi : aggregate-address ... as-set

Page 17 sur 50
SK – BGP Note book – Sept 2004
Origin Attribute: attribut obligatoire définissant l’origine de l’information
pour un chemin.

[Link]
X
[Link] [Link]
A IBGP B
[Link]
AS100

[Link]
E

AS300
RTA#
router bgp 100
neighbor [Link] remote-as 100
neighbor [Link] remote-as 300
network [Link]
redistribute static
ip route [Link] [Link] null0
RTB#
router bgp 100
neighbor [Link] remote-as 100
network [Link]
RTE#
router bgp 300
neighbor [Link] remote-as 100
network [Link]

Rappel :
IGP : NLRI est intérieur à l’AS. Commande Network.(i)
EGP : NLRI appris par EGP.(e). Obsolete.
INCOMPLETE : NLRI inconnu. Cas de la redistribution vers
BGP. (?)
Voir aussi :
route-map
set origin {igp | egp autonomous-system | incomplete}

Page 18 sur 50
SK – BGP Note book – Sept 2004
BGP Nexthop Attribute : il s’agit de l’adresse à utiliser pour atteindre une
destination donnée.
[Link]
[Link]

[Link] IBGP
A B
[Link]
AS100

[Link] C

RTA# AS300 [Link]


router bgp 100
neighbor [Link] remote-as 300
neighbor [Link] remote-as 100
network [Link]

RTB#
router bgp 100
neighbor [Link] remote-as 100

RTC#
router bgp 300
neighbor [Link] remote-as 100
network [Link]

Remarque : pour EBGP, le Nexthop est toujours l’adresse IP


du voisin, spécifiée par la commande neighbor. IBGP
transporte l’annonce Nexthop de EBGP.

Attention : dans notre exemple, pour le routeur B, le


nexthop pour atteindre [Link] est [Link] et non
[Link] !! Ajouter IGP ou ...

Voir aussi :
neighbor {ip-address | peer-group-name} next-hop-self

Page 19 sur 50
SK – BGP Note book – Sept 2004
BGP Nexthop (Multiaccess Networks) : cas du réseau multiaccess
comme Ethernet. Les routeurs C et D (AS 300) utilisent OSPF. Routeur C
utilise BGP avec A.

[Link] AS100
[Link]

[Link] IBGP
A B
[Link]

EBGP

[Link] [Link]

C D
AS300 [Link]

Le routeur C atteint [Link] via [Link] ; il


annonce alors à routeur A (BGP) que le nexthop pour
[Link] est [Link] et non sa propre adresse.
Ceci est du à la nature du réseau (multiaccess)
reliant A, C et D.

Attention : en NBMA c’est différent.

Page 20 sur 50
SK – BGP Note book – Sept 2004
BGP Nexthop (NBMA) and Nexthopself : reprenons le cas précédent
avec des CVs Frame-Relay comme indiqué.

[Link] AS100
[Link]

[Link] IBGP
A B
[Link]

EBGP

[Link]
IBGP
[Link]
C D
AS300 [Link]

Le routeur C annonce le [Link] au routeur A (BGP) avec


[Link] comme nexthop.
Routeur A n’a pas de CV direct vers D et ne peut atteindre
le nexthop indiqué. Le routage ne peut avoir lieu.

Solution :
RTC#
router bgp 300
neighbor [Link] remote-as 300
neighbor [Link] remote-as 100
neighbor [Link] next-hop-self

Routeur C annonce [Link] avec [Link] comme


nexthop (lui-même).

Voir aussi :

set ip next-hop ip-address [...ip-address] [peer-address]

Page 21 sur 50
SK – BGP Note book – Sept 2004
BGP Backdoor : ou effets du paramètre distance sur le routage.

[Link] [Link]
IGP
A B
[Link]
AS100 [Link] AS200
EBGP EBGP

[Link] [Link]
C
AS300 [Link]

RTA#
router eigrp 10
network [Link]
router bgp 100
neighbor [Link] remote-as 300
network [Link] backdoor

Remarque : en l’absence du paramètre « network


backdoor », routeur A passe par routeur C pour
atteindre [Link] (EBGP distance = 20, inférieur
à celle de IGP).

Autre alternative : changer « external distance » de


BGP (non recommandé !!).
distance bgp <exter> <inter> <local>

Rappel :
BGP external distance : 20
BGP internal distance : 200
BGP local distance : 200 (commande network)

Page 22 sur 50
SK – BGP Note book – Sept 2004
Synchronisation : Routeur B ne doit annoncer la route [Link]
(apprise en IBGP) vers D que si celle-ci est connue, par tous les routeurs de
l’AS, via un IGP.

[Link] AS100
E
IBGP
A B
[Link]
[Link] [Link]

[Link]

AS300 C D
[Link] AS400

Si la synchronisation est désactivée, le trafic est


rejeté par le routeur E (black hole). Celui-ci ne
connaissant pas de route pour atteindre [Link].

Il est possible d’utiliser une route statique en B.


S’assurer cependant, de l’accessibilité de la
destination par tous les routeurs.

Page 23 sur 50
SK – BGP Note book – Sept 2004
Disabling Synchronization : la synchronisation n’est pas nécessaire si
l’AS n’est pas un transit ou si tous les routeurs utilisent BGP.

[Link] AS100

[Link] IBGP
A B
[Link] [Link]
[Link]
[Link] [Link]

[Link]
[Link]

AS300 C D
[Link] AS400 [Link]

RTB#
router bgp 100
network [Link]
neighbor [Link] remote-as 400
neighbor [Link] remote-as 100
no synchronization

RTD#
router bgp 400
neighbor [Link] remote-as 100
network [Link]

RTA#
router bgp 100
network [Link]
neighbor [Link] remote-as 100
neighbor [Link] remote-as 300

Routeur B accepte la route [Link] dans sa table


de routage et l’annonce à D.

Page 24 sur 50
SK – BGP Note book – Sept 2004
Weight Attribute : attribut Cisco, local au routeur et non diffusé. Défaut
32768 (le routeur est à l’origine). Weight le plus élevé est préférée.
[Link] [Link] [Link]
AS100 AS200
A X B
[Link] AS4 [Link]

[Link] [Link]
C
AS300
RTC# ( Solution 1)
router bgp 300
neighbor [Link] remote-as 100
neighbor [Link] weight 200
neighbor [Link] remote-as 200
neighbor [Link] weight 100

RTC# ( Solution 2 )
router bgp 300
neighbor [Link] remote-as 100
neighbor [Link] filter-list 5 weight 200
neighbor [Link] remote-as 200
neighbor [Link] filter-list 6 weight 100
ip as-path access-list 5 permit ^100$
ip as-path access-list 6 permit ^200$

RTC# ( Solution 3 )
router bgp 300
neighbor [Link] remote-as 100
neighbor [Link] route-map setweightin in
neighbor [Link] remote-as 200
neighbor [Link] route-map setweightin in
ip as-path access-list 5 permit ^100$
route-map setweightin permit 10
match as-path 5
set weight 200
route-map setweightin permit 20
set weight 100

Rappel : regular expression (regex). ^100$ signifie routes de AS 100


exclusivement. ^254_ [0-9]*$ AS voisin 254 et éventuellement ses voisins.

Page 25 sur 50
SK – BGP Note book – Sept 2004
Local Preference Attribute : concerne les routeurs internes à l’AS.
Détermine l’issue de sortie de l’AS. Local Preference le plus élevé est préféré
(100 par défaut).
[Link]

AS100 AS300
A B
[Link] [Link]

[Link] [Link]
[Link]
C D
[Link] IBGP
AS256

RTC# ( Solution 1 )
router bgp 256
neighbor [Link] remote-as 100
neighbor [Link] remote-as 256
bgp default local-preference 150

RTD#
router bgp 256
neighbor [Link] remote-as 300
neighbor [Link] remote-as 256
bgp default local-preference 200

RTD# ( Solution 2 )
router bgp 256
neighbor [Link] remote-as 300
neighbor [Link] route-map setlocalin in
neighbor [Link] remote-as 256
....
ip as-path access-list 7 permit ^300$
route-map setlocalin permit 10
match as-path 7
set local-preference 400
route-map setlocalin permit 20
set local-preference 150

Page 26 sur 50
SK – BGP Note book – Sept 2004
Metric Attribute (1/2): Metric ou Multi_Exit_Discriminator est émis vers
un AS, considéré en interne et non transitif (remis à 0). Plus petit est préféré.
MED
0
MED
AS100 [Link] 50 AS400
A [Link]
B
[Link]
[Link]
MED
[Link] MED 200
120
[Link] [Link]
C D
AS300 [Link]
[Link]

RTC#
router bgp 300
neighbor [Link] remote-as 100
neighbor [Link] route-map setmetricout out
neighbor [Link] remote-as 300
route-map setmetricout permit 10
set metric 120
RTD#
router bgp 300
neighbor [Link] remote-as 100
neighbor [Link] route-map setmetricout out
neighbor [Link] remote-as 300
route-map setmetricout permit 10
set metric 200
RTB#
router bgp 400
neighbor [Link] remote-as 100
neighbor [Link] route-map setmetricout out
route-map setmetricout permit 10
set metric 50

Attention : un routeur ne compare que les metrics pour une


route, provenant des voisins du même AS !!
Voir Fiche suivante.

Page 27 sur 50
SK – BGP Note book – Sept 2004
Metric Attribute (2/2) : pour permettre de sélectionner le routeur B
comme meilleure route vers [Link], la configuration de la fiche
précédente est incomplète. Ajouter :

RTA#
router bgp 100
neighbor 2.2.21 remote-as 300
neighbor [Link] remote-as 300
neighbor [Link] remote-as 400
bgp always-compare-med

Autre solution :

RTB#
router bgp 400
redistribute static
default-metric 50

ip route [Link] [Link] null 0

Voir aussi :
bgp bestpath missing-med-worst
bgp bestpath med missing-as-worst

Page 28 sur 50
SK – BGP Note book – Sept 2004
Community Attribute : permet de regrouper des destinations en
communauté et appliquer des décisions de routage. Attribut optionnel et
transitif. Utiliser la commande :
set community community-number [additive]

Les communautés prédéfinies « Well Known » sont :


ƒ no-export (Do not advertise to EBGP peers)
ƒ no-advertise (Do not advertise this route to any peer)
ƒ internet (Advertise this route to the internet community, any
router belongs to it)
ƒ local-AS (Use in confederation scenarios to prevent sending
packets outside the local AS)

Exemple :
route-map communitymap
match ip address 1
set community no-advertise
or
route-map setcommunity
match as-path 1
set community 200 additive

L’émission de cet attribut vers le voisin, nécessite :


neighbor {ip-address|peer-group-name} send-community
RTA#
router bgp 100
neighbor [Link] remote-as 300
neighbor [Link] send-community
neighbor [Link] route-map setcommunity out

Voir aussi :
ip bgp-community new-format
Le nouveau format est AA :NN (AA indique le n° d’AS).

Page 29 sur 50
SK – BGP Note book – Sept 2004
BGP Route Filtering : ou utilisation de distribute-list..

[Link] [Link]

A [Link] B
[Link]
AS100 AS200

[Link]
[Link]
C
AS300 [Link]

RTC#
router bgp 300
network [Link]
neighbor [Link] remote-as 200
neighbor [Link] remote-as 100
neighbor [Link] distribute-list 1 out

access-list 1 deny [Link] [Link]


access-list 1 permit [Link] [Link]

Remarque : Pour restreindre l’annonce à [Link]/8 (sans


les subnets), utiliser plutôt
access-list 101 [Link] [Link] [Link] [Link]

Page 30 sur 50
SK – BGP Note book – Sept 2004
Path Filtering : filtrage sur le numéro d’AS avec filter-list.

AS400
[Link]

A AS200
[Link] [Link] B
AS100
[Link]

[Link]
[Link]
C
AS300 [Link]

RTC#
router bgp 300
neighbor [Link] remote-as 200
neighbor [Link] remote-as 100
neighbor [Link] filter-list 1 out
ip as-path access-list 1 deny ^200$
ip as-path access-list 1 permit .*
« as-path access-list 1 » filtre toute mise à jour
générée par le voisin AS200. Tout le reste est
autorisé.

Voir aussi :
show ip bgp regexp <regexp>

Rappel concernant les Regular Expression :


.* (tout caractère)
a* (n’importe quel occurrence de la lettre a)
a+ (au moins une fois le caractère a)
ab?a (aa ou aba)
_100_ (via AS 100)
^100$ (voisin AS100 comme origine)
^100_* (venant de AS100)
^$ (origine AS courant)

Page 31 sur 50
SK – BGP Note book – Sept 2004
BGP Community Filtering (1/2): filtrage par communauté associée à
une route.

[Link] [Link]

A [Link] B
[Link]
AS100 AS200

[Link]
[Link]
C
AS300 [Link]

RTB#
router bgp 200
network [Link]
neighbor [Link] remote-as 300
neighbor [Link] send-community
neighbor [Link] route-map setcommunity out

route-map setcommunity
match ip address 1
set community no-export
access-list 1 permit [Link] [Link]

Routeur B sélectionne les routes (acl 1) et spécifie


neighbor send-community, alors Routeur C ne propage
pas les routes vers A.

Page 32 sur 50
SK – BGP Note book – Sept 2004
BGP Community Filtering (2/2): filtrage par communauté associée à un
AS.

• Exemple 1 :
RTB#
router bgp 200
network [Link]
neighbor [Link] remote-as 300
neighbor [Link] send-community
neighbor [Link] route-map setcommunity out

route-map setcommunity
match ip address 2
set community 100 200 additive

access-list 2 permit [Link] [Link]

• Exemple 2 :
RTC#
router bgp 300
neighbor [Link] remote-as 200
neighbor [Link] route-map check-community in

route-map check-community permit 10


match community 1
set weight 20
route-map check-community permit 20
match community 2 exact
set weight 10
route-map check-community permit 30
match community 3

ip community-list 1 permit 100


ip community-list 2 permit 200
ip community-list 3 permit internet

Page 33 sur 50
SK – BGP Note book – Sept 2004
BGP Neighbors and Route Maps : filtrage ou paramétrage des mises à
jour (entrantes ou sortantes).

AS600
AS400
[Link]

A AS200
[Link] [Link] B
AS100
[Link]

[Link]
[Link]
C
AS300 [Link]

RTC#
router bgp 300
network [Link]
neighbor [Link] remote-as 200
neighbor [Link] route-map stamp in

route-map stamp permit 10


match as-path 1
set weight 20
route-map stamp permit 20
match as-path 2
set weight 10

ip as-path access-list 1 permit ^200$


ip as-path access-list 2 permit ^200 400 .*

Les routes provenant de l’AS200 sont acceptées avec un


Weight de 20, celles derrière AS400 sont mises à Weight 10
et celles venant de AS400 sont rejetées.

Page 34 sur 50
SK – BGP Note book – Sept 2004
AS –PATH Prepend : influencer le choix d’une route par modification
des numéros et nombre d’AS traversés.

RTC#
router bgp 300
network [Link]
neighbor [Link] remote-as 100
neighbor [Link] route-map SETPATH out

route-map SETPATH
set as-path prepend 300 300

En reprenant le schéma de la page précédente, le routeur C


déclare ici deux fois son propre AS300. Les routes reçues
par le voisin (A) sont « alourdies » de deux AS. Les
routeurs de AS600 vont préférer AS400, 200 et 300 pour
atteindre [Link].

Page 35 sur 50
SK – BGP Note book – Sept 2004
BGP Peer Groups : groupe de voisins (internes ou externes) avec mêmes
politiques de mises à jour.

AS100 AS600 AS200


A H B
[Link]
[Link] [Link]

[Link]
E
C [Link]
F
[Link] G
AS300
RTC#
router bgp 300
neighbor internalmap peer-group
neighbor internalmap remote-as 300
neighbor internalmap route-map SETMETRIC out
neighbor internalmap filter-list 1 out
neighbor internalmap filter-list 2 in
neighbor [Link] peer-group internalmap
neighbor [Link] peer-group internalmap
neighbor [Link] peer-group internalmap
neighbor [Link] filter-list 3 in

neighbor externalmap peer-group


neighbor externalmap route-map SETMETRIC
neighbor externalmap filter-list 1 out
neighbor externalmap filter-list 2 in
neighbor [Link] remote-as 100
neighbor [Link] peer-group externalmap
neighbor [Link] remote-as 600
neighbor [Link] peer-group externalmap
neighbor [Link] remote-as 200
neighbor [Link] peer-group externalmap
neighbor [Link] filter-list 3 in

Attention : seules les options inbound sont supplantées.

Page 36 sur 50
SK – BGP Note book – Sept 2004
CIDR and Aggregate Addresses (1/4) : réduire la taille des tables de
routage.

[Link] [Link]

A [Link] B
[Link]
AS100 AS200

[Link]
[Link]
C
AS300 [Link]

RTB#
router bgp 200
neighbor [Link] remote-as 300
network [Link]
#RTC
router bgp 300
neighbor [Link] remote-as 200
neighbor [Link] remote-as 100
network [Link]
aggregate-address [Link] [Link]

Remarques : [Link] et [Link] sont propagées.


Utiliser aggregate-address ... summary-only pour annoncer
la seule route [Link].

Voir aussi :
ƒ aggregate-address ... as-set
ƒ aggregate-address ... attribute-map
ƒ aggregate-address ... suppress-map

Page 37 sur 50
SK – BGP Note book – Sept 2004
CIDR and Aggregate Addresses (2/4) : utilisation de la commande
aggregate-address ...suppress-map.

route-map CHECK permit 10


match ip address 1

access-list 1 permit [Link] [Link]


access-list 1 deny [Link] [Link] (implicit)

RTC#
router bgp 300
neighbor [Link] remote-as 200
neighbor [Link] remote-as 100
neighbor [Link] remote-as 100
network [Link]
aggregate-address [Link] [Link] suppress-map CHECK

Dans cet exemple, [Link] et [Link] sont supposées émises. Pour


émettre le résumé [Link] et la route [Link], « aggregate suppress-
map » est utilisée.

Page 38 sur 50
SK – BGP Note book – Sept 2004
CIDR and Aggregate Addresses (3/4) : agrégation à partir du routeur
émetteur (routeur B).

Solution 1 : le routeur B annonce la route avec « origin incomplete » ( ? ).


RTB#
router bgp 200
neighbor [Link] remote-as 300
redistribute static

ip route [Link] [Link] null0

Solution 2 : le routeur B annonce la route avec « origin IGP » ( i ).


RTB#
router bgp 200
network [Link] mask [Link]
neighbor [Link] remote-as 300

ip route [Link] [Link] null0

Remarque : pour le routeur émetteur (B), éviter la commande network


[Link] afin d’annoncer le summary. Aggregate summary-only ne suffit
pas à limiter les annonces à une route agrégée. Les solutions ci-dessus sont
indiquées.

Page 39 sur 50
SK – BGP Note book – Sept 2004
CIDR and Aggregate Addresses (4/4) : agrégation d’adresses avec ou
sans indication d’AS d’origine.

[Link] [Link]

A [Link] [Link] B
AS100 AS200

[Link]
[Link]
AS300 C [Link] D
[Link] [Link] AS400

RTB#
router bgp 200
network [Link]
neighbor [Link] remote-as 300
RTA#
router bgp 100
network [Link]
neighbor [Link] remote-as 300

Solution 1 : le routeur C annonce à D la route [Link]/8 avec AS-Path 300


comme origine.
RTC#
router bgp 300
neighbor [Link] remote-as 200
neighbor [Link] remote-as 100
neighbor [Link] remote-as 400
aggregate [Link] [Link] summary-only

Solution 2 : en ajoutant la commande :


aggregate [Link] [Link] as-set
le routeur C annonce la route [Link]/8 à D avec indication des AS
d’origine ( 100 200 ).

Page 40 sur 50
SK – BGP Note book – Sept 2004
BGP Confederation : réduire le maillage IBGP dans un AS.

AS100 AS600

A X X
[Link]
[Link]

[Link] [Link]
C
[Link] D X X
X AS60
[Link] [Link]
AS50 X
X [Link] [Link] AS70
AS500

RTC#
router bgp 50
bgp confederation identifier 500
bgp confederation peers 60 70
neighbor [Link] remote-as 50 (IBGP)
neighbor [Link] remote-as 50 (IBGP)
neighbor [Link] remote-as 60 (conf peer 60)
neighbor [Link] remote-as 70 (conf peer 70)
neighbor [Link] remote-as 100 (EBGP)

RTD#
router bgp 60
bgp confederation identifier 500
bgp confederation peers 50 70
neighbor [Link] remote-as 60 (IBGP)
neighbor [Link] remote-as 50(conf peer 50)
neighbor [Link] remote-as 70 (conf peer 70)
neighbor [Link] remote-as 600 (EBGP)

RTA#
router bgp 100
neighbor [Link] remote-as 500 (EBGP)
...

Page 41 sur 50
SK – BGP Note book – Sept 2004
Route Reflectors : Une route apprise par un voisin IBGP n’est pas
transmise à un autre voisin IBGP (BGP Split horizon) ; un maillage complet
IBGP est donc nécessaire. Les « Route Reflectors » permettent de réduire le
maillage IBGP dans un AS.

A C

AS100 B (RR)

Routeur C est configuré avec :

neighbor (A) route-reflector-client


neighbor (B) route-reflector-client

Routeurs A, B et C forment un cluster.

Page 42 sur 50
SK – BGP Note book – Sept 2004
Route Reflectors : Cas de plusieurs RR dans un AS (routeurs G, D et C).

AS200
X
[Link]

[Link]
AS100
G
[Link]
D C [Link]
[Link]
[Link]
E F A B
[Link] [Link]

[Link]

X
AS300

Remarques :
ƒ Routeurs A, B et C forment un cluster.
ƒ Pour C, Routeurs A et B sont clients.
ƒ Idem pour D, E et F
ƒ D, G et C forment un maillage complet mais pas les autres routeurs.
ƒ Une route reçue par un RR :
- est envoyée vers les clients du cluster si elle provient d’un non-client
- est envoyée vers les clients et non clients si elle provient d’un client
- est envoyée vers les clients et non clients si elle provient d’un EBGP
En bref : non-client vers non-client n’est jamais envoyé.

Page 43 sur 50
SK – BGP Note book – Sept 2004
Route Reflectors : Routeurs C, D et G sont RR. Configuration des
routeurs C, D et B :

RTC#
router bgp 100
neighbor [Link] remote-as 100
neighbor [Link] route-reflector-client
neighbor [Link] remote-as 100
neighbor [Link] route-reflector-client
neighbor [Link] remote-as 100
neighbor [Link] remote-as 100
neighbor [Link] remote-as 200

RTB#
router bgp 100
neighbor [Link] remote-as 100
neighbor [Link] remote-as 300

RTD#
router bgp 100
neighbor [Link] remote-as 100
neighbor [Link] route-reflector-client
neighbor [Link] remote-as 100
neighbor [Link] route-reflector-client
neighbor [Link] remote-as 100
neighbor [Link] remote-as 100

Rappel : par défaut, une route apprise par un voisin IBGP n’est pas transmise
à un autre voisin IBGP.

Attention : comme les routes IBGP sont retransmises via les RR, un risque
de boucle existe. Utiliser éventuellement l’attribut optionnel Originator-id
créé par le RR pour éviter cette situation. Autre solution : Cluster-list (voir
exemple suivant).

Page 44 sur 50
SK – BGP Note book – Sept 2004
Multiple RRs within a cluster : habituellement, un cluster de clients a un
seul RR. Le cluster est alors identifié par le router-id du RR.. Afin d’assurer
une redondance, un cluster peut avoir plusieurs RR et dans ce cas un
identifiant de cluster (Cluster-id) est utilisé pour éviter les boucles. Une
Cluster-list est une séquence de Cluster-id que la route a traversées.

Si deux RR appartiennent au même cluster (sans pour autant être client l’un
par rapport à l’autre), ajouter dans ces deux routeurs, la commande :
bgp cluster-id 10

Attention : les Peer-groups ne sont pas utilisés ici. Les options inbound étant
supplantées, de potentielles annulations à la source (RR) sont envoyées aux
clients, causant des problèmes.

Page 45 sur 50
SK – BGP Note book – Sept 2004
RR and Conventional BGP Speakers : voisins d’un RR ne
connaissant pas le concept de route reflectors. Le RR (ici D) établit des
relations IBGP avec les « conventional BGP speakers ». Cela permet la
constitution graduelle de clusters (mise à jour future du routeur C).

AS200
X
[Link]

AS100
[Link]
[Link]
D C [Link]

[Link]
E F [Link] B
[Link] A

RTD#
router bgp 100
neighbor [Link] remote-as 100
neighbor [Link] route-reflector-client
neighbor [Link] remote-as 100
neighbor [Link] route-reflector-client
neighbor [Link] remote-as 100
neighbor [Link] remote-as 100
neighbor [Link] remote-as 100
neighbor [Link] remote-as 300

RTC#
router bgp 100
neighbor [Link] remote-as 100
neighbor [Link] remote-as 100
neighbor [Link] remote-as 100
neighbor [Link] remote-as 400

Page 46 sur 50
SK – BGP Note book – Sept 2004
Route Flap Dampening : mécanisme destiné à réduire les effets dûs aux
instabilités et oscillations à travers le réseau. Pour sessions EBGP seulement.
penalty points
suppress-limit
2000

1500

decayed penalty
1000
reuse-limit
500

time

Flap 1
(+ 1000) half-time half-time
(15 mn) (15 mn)
Flap 2
(+ 1000)

Le graphique montre le cas avec les paramètres (valeurs par défaut):


bgp dampening 15 750 2000 60
Rappel :
bgp dampening <half-life-time> <reuse> <suppress>
<maximum-suppress-time>
La route est pénalisée de 1000 points à chaque « Flap ». L’annonce de cette
route est arrêtée à la valeur de « suppress-limit ». La pénalité est décrémentée
de moitié par « half-time ». En dessous de la valeur « reuse-limit », la route
est de nouveau annoncée.
Voir aussi : show ip bgp flap-statistics
clear ip bgp flap-statistics et debug ip bgp dampening
Attention : les routes externes à un AS, apprise via IBGP, ne sont pas
« dampened ».

Page 47 sur 50
SK – BGP Note book – Sept 2004
Route Filtering summary : Filter Lists, Prefix lists ou community-list ?

• Fliter-list : en fonction de l’AS-Path


je n'annonce à ce voisin que mes propres routes.
router(config)#ip as-path access-list 1 permit ^$
router(config-router)#neighbor [Link] filter-list 1 out
je préfère passer par le [Link] pour joindre les réseaux du 5511
router(config)#ip as-path access-list 2 permit ^5511$
router(config-router)#neighbor [Link] weight 100
router(config-router)#neighbor [Link] filter-lisr 2 weight 200

• Prefix-list : en fonction de la route


je n'accepte pas une route par défaut depuis mon voisin
router(config)#ip prefix-list list2 10 deny [Link]/0
router(config)#ip prefix-list list2 20 permit [Link]/0 le 32
router(config-router)#neighbor [Link] prefix-list list2 in
je n'accepte que les routes de l’acl 3 depuis mes voisins
router(config-router)#distribute-list 3 in
je ne redistribue que certaines de mes routes statiques
router(config)#ip prefix-list list3 10 deny [Link]/24
router(config)#ip prefix-list list3 20 permit [Link]/0 le 32
router(config-router)#distribute-list prefix-list list3 out static

• Community-list : en fonction de la community


je n'annonce à ce voisin que les routes marquées par une community.
router(config)#ip community-list 100 deny _11:.5[1-5]_
router(config)#ip community-list 100 permit .*
router(config)#ip community-list 1 deny 11:150
router(config)#ip community-list 1 permy Internet
router(config)#route-map filtre-compermit 10
router(config-route-map)#match community 1
router(config-route-map)#set metric 40
router(config)#route-map filtre-com permit 20
router(config-route-map)#match community 100
router(config-route-map)#set metric 50
router(config-router)#neighbor [Link] route-map filtre-com out
router(config-router)#neighbor [Link] send-community

Page 48 sur 50
SK – BGP Note book – Sept 2004
Outbound Route Filtering : Outbound Route Filtering

[Link]
A [Link] B
AS100 AS300 [Link]

RTA#
router bgp 100
neighbor [Link] remote-as 300
neighbor [Link] capability orf prefix-list receive

RTB#
router bgp 300
neighbor [Link] remote-as 100
neighbor [Link] capability orf prefix-list send
neighbor [Link] prefix-list MYLIST in

ip prefix-list MYLIST seq 5 deny [Link]/8 le 32

Page 49 sur 50
SK – BGP Note book – Sept 2004

Page 50 sur 50

Vous aimerez peut-être aussi