User Tools

Site Tools


informatique:fortinet:bgp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
informatique:fortinet:bgp [2021/11/08 14:23] – [Contrôler les préfixes in/out] pteuinformatique:fortinet:bgp [2021/11/17 09:03] – [Contrôle avancé des annonces] pteu
Line 98: Line 98:
                     unset le                     unset le
                 end                 end
 +                edit 2
 +                    set action deny
 +                    set prefix any
 +                    unset ge
 +                    unset le
 +                end
 +            end
  
-# on l'applique comme distribute-list sur notre voisin+# on l'applique sur notre voisin
 config router bgp config router bgp
     set as 65000     set as 65000
Line 105: Line 112:
             edit "192.168.0.2"             edit "192.168.0.2"
                 set remote-as 65001                 set remote-as 65001
-                set set distribute-list-in "pref_BGP-in"+                set prefix-list-in "pref_BGP-in"
             end             end
 </code> </code>
 Les options ''ge'' et ''le'' servent à préciser le masque minimum et maximum pour que la liste matche. Par défaut le masque doit être strictement égal à celui spécifié pour matcher, ici un /16. Cela signifie que si le voisin nous annonce 192.168.0.0**/24**, notre routeur refusera la route. Les options ''ge'' et ''le'' servent à préciser le masque minimum et maximum pour que la liste matche. Par défaut le masque doit être strictement égal à celui spécifié pour matcher, ici un /16. Cela signifie que si le voisin nous annonce 192.168.0.0**/24**, notre routeur refusera la route.
  
-On peut faire de même pour contrôler nos annonces vers ce voisin, en définissant de la même façon une ''distribute-list-out''.+On peut faire de même pour contrôler nos annonces vers ce voisin, en définissant de la même façon une ''prefix-list-out''.
  
-Ce résultat aurait pu être identique avec l'utilisation d'une access-list de filtrage + route-map-in/out ; mais cette solution consomme plus de ressources et ne devrait être réservée que pour des actions plus spécifiques (voir "[[informatique:fortinet:bgp#Contrôle avancé des annonces|Contrôle avancé des annonces]]" dans la suite).+Ce résultat aurait pu être identique avec l'utilisation d'une ''access-list'' de filtrage + ''distribute-list-in/out'' ou ''route-map-in/out'' ; mais cette solution consomme plus de ressources et ne devrait être réservée que pour des actions plus spécifiques (voir "[[informatique:fortinet:bgp#Contrôle avancé des annonces|Contrôle avancé des annonces]]" dans la suite).
  
  
 =====Contrôle avancé des annonces===== =====Contrôle avancé des annonces=====
  
-Pour contrôler le routage quand on a 2 liens WANs, on s'appuie sur les spécificités du BGP : on va utiliser les **attributs de communauté** pour envoyer une préférence de routes à appliquer par notre voisin ; et utiliser l'attribut **weight** (poids) pour contrôler la préférence des routes apprises depuis ce dernier +Pour contrôler le routage quand on a 2 liens WANs, on s'appuie sur les spécificités du BGP : on va utiliser les **community strings** (communautés étendues) pour tagguer les préfixes que l'on annoncent, que nos voisins utiliseront pour prioriser certains préfixes ; et utiliser l'attribut **weight** (poids) pour contrôler la préférence des routes apprises depuis ces derniers 
-  * envoi de la communauté 65001:100 à notre voisin "backup", et 65001:200 à notre voisin "nominal".+  * envoi de la communauté 65001:100 à notre voisin "backup", et 65001:200 à notre voisin "nominal" (les tags 100 et 200 sont arbitraires, et une //policy// doit être configurée explicitement sur chaque voisin, pour appliquer une action de priorisation -ou non- du préfixe (via une **local pref** par exemple).
   * affectation du poids (weight) 100 aux routes apprises par le voisin backup, et 200 par le nominal.   * affectation du poids (weight) 100 aux routes apprises par le voisin backup, et 200 par le nominal.
 NB: nos 2 voisins sont dans le même AS, 65001. NB: nos 2 voisins sont dans le même AS, 65001.
Line 173: Line 180:
     end     end
  
-# On place ces routemap sur chaque voisin, en "in" pour le weight et en "out" pour la commu :+# On place ces routemap sur chaque voisin, en "in" pour le weight et en "out" pour le tag de commu :
 config router bgp config router bgp
     set as 65000     set as 65000
Line 193: Line 200:
 </code> </code>
  
-Pour prendre en compte ces modifications, il faut faire un ''execute router restart'' qui va relancer le process (**attention, ça va couper tout le routage !** quelques instants). A chaque modification de la configuration BGP, il faut également rafraîchir les routes BGP avec : ''execute router clear bgp all''.+Pour prendre en compte ces modifications, il faut faire un ''execute router restart'' qui va relancer tout le routage (**attention, ça va couper !**). 
 + 
 +A chaque modification de la configuration BGP, il faut également la reprendre en compte avec : ''execute router clear bgp all'' qui aura pour effet de relancer le process BGP. On peut limiter la portée de l'update (et donc de la convergence) en spécifant, l'AS ou le sens ; par ex pour reset un peer : ''execute router clear bgp ip in 192.168.0.3''.
  
 ====Vérifications==== ====Vérifications====
Line 212: Line 221:
 get router info bgp neighbors 192.168.0.3 adv get router info bgp neighbors 192.168.0.3 adv
 get router info bgp neighbors 192.168.0.3 received-routes get router info bgp neighbors 192.168.0.3 received-routes
 +</code>
 +
 +<code bash>
 +get router info bgp community-info
 +Address Refcnt Community
 +[0x404237b8ff] (12) 65001:100
 +[0x40423788af] (3) 65001:200
 +
 +get router info bgp community 65001:100
 +
 +get router info bgp route-map "rm_BGP-nom-out"
 </code> </code>
 =====Vérifications===== =====Vérifications=====
informatique/fortinet/bgp.txt · Last modified: 2021/11/17 09:11 by pteu