2.9.
FILTRAGE BGP
Il existe plusieurs types de filtrage BGP, nous retenons
notamment le :
· Filtrage basé sur les « réseaux
»
· Filtrage basé sur les «AS-paths »
· Filtrage basé sur les « communautés
»
2.9.1. Filtrage basé sur les « réseaux
»
Le filtrage BGP basé sur les réseaux consiste
à appliquer, au niveau de la déclaration d'un voisin BGP, une ACL
routage. Ce type de filtrage permet alors de ne pas annoncer à un voisin
BGP certains réseaux (ACL « out »), ou de refuser certains
réseaux reçus de ce voisin BGP (ACL « in »):
neighbor[adresse IP du voisin]
distribute-list[numéro ACL] [in|out]
Nous présentons sur la Figure 24ci-dessous un exemple
du filtrage basé sur le réseau
Figure 24: Exemple du filtrage basé sur le
réseau (Source [14])
Dans l'exemple ci-dessus, si aucun filtrage n'est
effectué, R2 va retransmettre tous les réseaux clients de R1
à R3. On souhaite par exemple que R2 ne retransmette à R3 que le
réseau 193.1.0.0/24 issu de R1 et pas le réseau 193.1.1.0/24.
D'où la configuration possible de R2, en utilisant une «
distribute-list » :
Configuration routeur R2
routerbgp2
network193.2.0.0
network193.2.1.0
neighbor193.49.1.1 remote-as 1
neighbor195.98.10.2 remote-as 3
neighbor195.98.10.2 distribute-list 10
out
-
access-list 10 deny 193.1.1.0
0.0.0.255
access-list 10 permit 0.0.0.0
255.255.255.255
Il convient de souligner qu'une solution plus « propre
» consisterait à configurer une « routemap » en «
out » sur le peering BGP et appliquer dans cette « route-map »
une « prefix-list » acceptant seulement le préfixe
193.1.0.0/24 ou éliminant le préfixe 193.1.1.0/24.
2.9.2. Filtrage basé sur les « AS-paths »
Le filtrage BGP basé sur les « AS-paths »
consiste à appliquer une «filter-list » ou une «
route-map » au niveau de la déclaration du voisin BGP. Ce type de
filtrage permet de ne pas annoncer à un voisin BGP certains
réseaux (marqués avec un «AS-path » donné), ou
de refuser certains « réseaux » (marqués avec un «
AS-path » donné) reçus de ce voisin.
Un filtre BGP basé sur les « AS-paths »,
s'écrit sous forme d'une expression régulière, et fait
appel à une syntaxe particulière, dont voici les principaux
symboles :
1. « ^ » : désigne le
début d'une chaîne de caractères (peut être aussi
utilisé pour la négation d'une chaîne de caractères
si utilisés au début d'une désignation d'un intervalle de
caractères : [^intervalle de caractères])
2. « $ » : désigne la fin
d'une chaîne de caractères
3. « . » : désigne n'importe
quel caractère seul (y compris l'espace)
4. « _ » : correspond à des
caractères spéciaux (y compris le début ou la fin d'une
chaîne de caractères ou l'espace)
5. « [ ] » : désigne un
intervalle de caractères
6. « - » : séparateur d'un
intervalle
7. « ? » : Signifie aucun ou un
élément valide
8. « * » : signifie aucun ou
plusieurs éléments valides
9. « + » : signifie un ou plusieurs
éléments valides
Nous montrons ci-dessous un exemple de configuration du
filtrage basé sur le AS-paths.
Si aucun filtrage n'est effectué, R2 va retransmettre
tous les réseaux clients de R1 à R3. On souhaite par exemple que
R2 ne retransmette à R3 aucun des réseaux de R1. D'où
l'existence de la configuration possible de R2, en appliquant une
«filterlist» au niveau du peering avec R3 :
Configuration routeur R2
routerbgp2
network193.2.0.0
network193.2.1.0
neighbor193.49.1.1 remote-as
1
-
neighbor195.98.10.2 remote-as
3
neighbor 195.98.10.2 filter-list 10 out
-
ip as-path access-list 10 deny
_1$
ip as-path access-list 10 permit
.*
|