informatique:fortinet:bgp
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| informatique:fortinet:bgp [2019/10/10 09:26] – [Vérifications] pteu | informatique:fortinet:bgp [2025/09/25 06:36] (current) – pteu | ||
|---|---|---|---|
| Line 85: | Line 85: | ||
| - | =====Route-map===== | + | =====Contrôler les préfixes in/out===== |
| - | Par sécurité on peut filtrer les annonces entrantes/ | + | Par sécurité on peut filtrer les annonces entrantes/ |
| <code bash> | <code bash> | ||
| - | # on créer une liste de préfixe | + | # on créer une liste de préfixes |
| config router prefix-list | config router prefix-list | ||
| edit " | edit " | ||
| 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 inclut cette liste dans une route-map | + | # on l' |
| + | config router bgp | ||
| + | set as 65000 | ||
| + | config neighbor | ||
| + | edit " | ||
| + | set remote-as 65001 | ||
| + | set prefix-list-in " | ||
| + | end | ||
| + | </ | ||
| + | Les options '' | ||
| + | |||
| + | On peut faire de même pour contrôler nos annonces vers ce voisin, en définissant de la même façon | ||
| + | |||
| + | Ce résultat aurait pu être identique avec l' | ||
| + | |||
| + | |||
| + | =====Contrôle avancé des annonces===== | ||
| + | |||
| + | Pour contrôler le routage quand on a 2 liens WANs, on s' | ||
| + | * envoi de la communauté 65001:100 à notre voisin " | ||
| + | * 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. | ||
| + | |||
| + | <code bash> | ||
| + | # Création d'une ACL qui matche tout le trafic: | ||
| + | config router access-list | ||
| + | edit " | ||
| + | set comments "Match all traffic" | ||
| + | config rule | ||
| + | edit 1 | ||
| + | set prefix 0.0.0.0 0.0.0.0 | ||
| + | set exact-match disable | ||
| + | next | ||
| + | end | ||
| + | |||
| + | # Création des 4 routemap (" | ||
| config router route-map | config router route-map | ||
| - | edit "rmap_BGP-in" | + | edit "rm_BGP-bck-out" |
| - | config rule | + | set comments "Commu lien backup" |
| - | edit 1 | + | config rule |
| - | set match-ip-address "pref_BGP-in" | + | |
| - | end | + | set match-ip-address " |
| + | set set-community " | ||
| + | next | ||
| + | end | ||
| + | next | ||
| + | edit " | ||
| + | set comments "Commu lien nominal" | ||
| + | | ||
| + | edit 1 | ||
| + | | ||
| + | set set-community " | ||
| + | next | ||
| + | end | ||
| + | next | ||
| + | edit " | ||
| + | set comments " | ||
| + | config rule | ||
| + | | ||
| + | set match-ip-address "acl_all-traf" | ||
| + | set set-weight 100 | ||
| + | next | ||
| + | end | ||
| + | next | ||
| + | edit " | ||
| + | set comments " | ||
| + | config rule | ||
| + | edit 1 | ||
| + | | ||
| + | set set-weight 200 | ||
| + | next | ||
| + | end | ||
| + | | ||
| - | # on l' | + | # On place ces routemap sur chaque voisin, en " |
| config router bgp | config router bgp | ||
| set as 65000 | set as 65000 | ||
| Line 113: | Line 186: | ||
| edit " | edit " | ||
| set remote-as 65001 | set remote-as 65001 | ||
| - | set route-map-in "rmap_BGP-in" | + | |
| + | | ||
| + | set route-map-out " | ||
| end | end | ||
| + | edit " | ||
| + | set remote-as 65001 | ||
| + | set description " | ||
| + | set route-map-in " | ||
| + | set route-map-out " | ||
| + | end | ||
| + | end | ||
| + | end | ||
| </ | </ | ||
| - | Les route-map sont utilisables également pour filtrer les annonces sortantes ('' | + | Pour prendre en compte ces modifications, |
| + | A chaque modification de la configuration BGP, il faut également la reprendre en compte avec : | ||
| + | <code bash> | ||
| + | # recharger (soft reset) toute les annonces in et out | ||
| + | execute router clear bgp all soft | ||
| + | # soft reset (limite la portée de l' | ||
| + | execute router clear bgp all in | ||
| + | |||
| + | # MAJ uniquement les annonces envoyées vers un peer défini | ||
| + | execute router clear bgp ip 192.168.0.3 out | ||
| + | |||
| + | # MAJ uniquement les annonces envoyées vers les peers d'un AS spécifique | ||
| + | execute router clear bgp as 65001 out | ||
| + | |||
| + | # recharger la configuration BGP (relancer le process BGP) | ||
| + | execute router clear bgp all | ||
| + | </ | ||
| + | |||
| + | Pour que ces commandes soient prisent en compte immédiatement (avant le prochain // | ||
| + | |||
| + | ====Vérifications==== | ||
| + | |||
| + | Pour chaque voisin, contrôler ce qu'on lui envoie et ce qu'on reçoit (NB : ces commandes ne sont accessibles qu'en passant la commande '' | ||
| + | <code bash> | ||
| + | config router bgp | ||
| + | config neighbor | ||
| + | edit " | ||
| + | set soft-reconfiguration enable | ||
| + | next | ||
| + | edit " | ||
| + | set soft-reconfiguration enable | ||
| + | end | ||
| + | end | ||
| + | end | ||
| + | ! | ||
| + | get router info bgp neighbors 192.168.0.3 adv | ||
| + | get router info bgp neighbors 192.168.0.3 received-routes | ||
| + | </ | ||
| + | |||
| + | <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 " | ||
| + | </ | ||
| =====Vérifications===== | =====Vérifications===== | ||
| - | Diagnotique | + | Diagnostique |
| <code bash> | <code bash> | ||
| get router bgp | get router bgp | ||
| Line 177: | Line 308: | ||
| <code bash> | <code bash> | ||
| - | # afficher | + | # Afficher |
| get router info bgp neighbors | get router info bgp neighbors | ||
| # sniffer les packets BGP sur une interface | # sniffer les packets BGP sur une interface | ||
| diagnose sniffer packet any "tcp and port 179" 4 0 l | diagnose sniffer packet any "tcp and port 179" 4 0 l | ||
| + | </ | ||
| + | |||
| + | ====Debug==== | ||
| + | |||
| + | <code bash> | ||
| + | diagnose debug reset | ||
| # mettre en place un debug du processus BGP | # mettre en place un debug du processus BGP | ||
| diagnose ip router bgp all enable | diagnose ip router bgp all enable | ||
| + | |||
| + | # voir les update sortantes | ||
| + | diagnose ip router bgp updates out en | ||
| + | |||
| + | # niveau de debug pour le BGP | ||
| + | diagnose ip router bgp level info | ||
| + | |||
| + | # (activer le debug) | ||
| + | diagnose debug enable | ||
| + | |||
| + | # pour terminer le debug | ||
| + | diagnose debug disable | ||
| + | diagnose debug reset | ||
| </ | </ | ||
| - | =====Best-practices===== | + | |
| + | =====Tips===== | ||
| ====Remove private AS==== | ====Remove private AS==== | ||
| Line 200: | Line 351: | ||
| end | end | ||
| </ | </ | ||
| + | |||
| + | ====BGP Soft reconfiguration==== | ||
| + | |||
| + | Si le routeur n'est pas surchargé en terme de mémoire, on peut activer la fonction [[https:// | ||
| + | <code bash> | ||
| + | config router bgp | ||
| + | config neighbor | ||
| + | edit 10.55.202.92 | ||
| + | set soft-reconfiguration enable | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | Cela permet l' | ||
| + | |||
| + | On a ensuite accès à des commandes plus fines, comme les routes reçues ou envoyées à un voisin spécifique : | ||
| + | <code bash> | ||
| + | # afficher les routes annoncées par un voisin | ||
| + | get router info bgp neighbors 10.55.202.92 received-route | ||
| + | # afficher les routes apprises (en tenant compte des éventuels filtrages) d'un voisin | ||
| + | get router info bgp neighbors 10.55.202.92 routes | ||
| + | ! | ||
| + | # afficher les routes annoncées à un voisin | ||
| + | get router info bgp neighbors 10.55.202.92 advertised-routes | ||
| + | </ | ||
| + | |||
informatique/fortinet/bgp.1570699613.txt.gz · Last modified: 2019/10/10 09:26 by pteu