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 [2018/08/28 06:43] – [Vérifications] pteu | informatique:fortinet:bgp [2024/07/22 13:55] (current) – [soft-reconfiguration] 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 toute la configuration BGP (relancer le process BGP) | ||
+ | execute router clear bgp all | ||
+ | # soft reset (limite la portée de l' | ||
+ | execute router clear bgp ip soft in | ||
+ | |||
+ | # MAJ uniquement les annonces d'un peer | ||
+ | execute router clear bgp ip in 192.168.0.3 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====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===== | ||
+ | Diagnostique et configuration du process BGP | ||
<code bash> | <code bash> | ||
- | # diag conf et process BGP | ||
get router bgp | get router bgp | ||
get router info bgp summary | get router info bgp summary | ||
+ | </ | ||
- | # voir le status des protocoles de routages | + | Voir le status des protocoles de routage dynamiques |
+ | <code bash> | ||
get router info protocols | get router info protocols | ||
+ | # [..] résultat de la commande limité au BGP | ||
+ | Routing Protocol is "bgp 65425" | ||
+ | IGP synchronization is disabled | ||
+ | Automatic route summarization is disabled | ||
+ | Default local-preference applied to incoming route is 100 | ||
+ | Redistributing: | ||
+ | Neighbor(s): | ||
+ | Address | ||
+ | 10.55.200.94 | ||
+ | </ | ||
- | # voir les routes | + | Afficher les réseaux BGP annoncés et reçus par le routeur : |
+ | <code bash> | ||
+ | get router info bgp network | ||
+ | BGP table version is 8, local router ID is 10.204.255.2 | ||
+ | Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, | ||
+ | S Stale | ||
+ | Origin codes: i - IGP, e - EGP, ? - incomplete | ||
+ | |||
+ | | ||
+ | *> 10.31.0.24/ | ||
+ | *> 10.55.200.92/ | ||
+ | *> 10.55.200.94/ | ||
+ | *> 10.55.200.254/ | ||
+ | *> 10.143.0.24/ | ||
+ | *> 10.143.6.8/ | ||
+ | *> 10.143.8.8/ | ||
+ | *> 10.204.241.1/ | ||
+ | *> 10.204.255.1/ | ||
+ | *> 10.204.255.2/ | ||
+ | *> 10.204.255.3/ | ||
+ | </ | ||
+ | |||
+ | Afficher | ||
+ | <code bash> | ||
get router info routing-table bgp | get router info routing-table bgp | ||
- | # afficher les réseaux annoncés par le routeur | + | B |
- | get router info bgp networks | + | B |
+ | B | ||
+ | B | ||
+ | B | ||
+ | B | ||
+ | B | ||
+ | </ | ||
- | # afficher | + | <code bash> |
+ | # 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> | ||
# 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 | ||
+ | |||
+ | # (activer le debug) | ||
+ | diagnose debug enable | ||
</ | </ | ||
- | =====Best-practices===== | + | |
+ | =====Tips===== | ||
====Remove private AS==== | ====Remove private AS==== | ||
Line 158: | Line 335: | ||
end | end | ||
</ | </ | ||
+ | |||
+ | ====soft-reconfiguration==== | ||
+ | |||
+ | Si le routeur n'est pas surchargé en terme de mémoire, on peut activer l' | ||
+ | <code bash> | ||
+ | config router bgp | ||
+ | config neighbor | ||
+ | edit 10.55.202.92 | ||
+ | set soft-reconfiguration enable | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | 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.1535438604.txt.gz · Last modified: 2018/08/28 06:43 by pteu