informatique:cisco:bgp
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| informatique:cisco:bgp [2008/12/15 06:10] – pteu | informatique:cisco:bgp [2013/10/14 20:44] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ======BGP====== | ======BGP====== | ||
| - | BGP est un protocole de routage | + | BGP (Border Gateway Protocol) |
| + | |||
| + | Le BGP permet un routage administratif basé sur la méfiance de ses voisins, ce qui signifie qu'à la différence des protocoles de routage **IGP** (Interior Gateway Protocol) comme l' | ||
| * 2 déclinaisons du BGP | * 2 déclinaisons du BGP | ||
| * iBGP pour le routage intra-domaine | * iBGP pour le routage intra-domaine | ||
| - | * EBGP pour le routage inter-domaine | + | * eBGP pour le routage inter-domaine |
| * 3 tables | * 3 tables | ||
| * table des voisins | * table des voisins | ||
| Line 17: | Line 19: | ||
| * Update | * Update | ||
| * Notification | * Notification | ||
| - | * la **synchronisation**, | + | * la **synchronisation**, |
| - | * une **communauté** est un groupe de destinations qui partagent certaine propriétés ; elles utilisent un tag ; celà permet un filtrage cohérent | + | * une **communauté** est un groupe de destinations qui partagent certaine propriétés ; elles utilisent un tag ; cela permet un filtrage cohérent |
| * les numéros d'AS vont de 1 à 65535, les numéros de 64512 à 65535 son réservé pour un usage privé | * les numéros d'AS vont de 1 à 65535, les numéros de 64512 à 65535 son réservé pour un usage privé | ||
| =====Les attributs===== | =====Les attributs===== | ||
| - | Les attributs BGP ont différentes | + | Les attributs BGP ont différentes |
| * **well-known** qui doivent être reconnus par toutes les implémentations de BGP car ils sont transmis aux peers BGP. | * **well-known** qui doivent être reconnus par toutes les implémentations de BGP car ils sont transmis aux peers BGP. | ||
| * **mandatory** (AS-path, next-hop, origin) : ils sont présents dans chaque //update message// | * **mandatory** (AS-path, next-hop, origin) : ils sont présents dans chaque //update message// | ||
| Line 32: | Line 34: | ||
| Ils peuvent être annoncés dans les //routing update// sauf le //weight//. | Ils peuvent être annoncés dans les //routing update// sauf le //weight//. | ||
| - | * **AS-path** : c'est un " | + | * **AS-path** |
| * **next-hop** | * **next-hop** | ||
| - | | + | * en EBGP, le next-hop est le routeur qui annonce la route |
| - | * **local preference** | + | * en IBGP c'est le voisin qui annonce la route sauf qui la route est apprise par EBGP, auquel cas le next-hop sera le même que celui d'EBGP (donc le routeur qui a annoncé la route) |
| - | * **MED** (Multi-Exit Discriminator) : ~ métrique | + | |
| - | * **weight** : celui-là est propriétaire Cisco et est local (pas annoncé aux voisins) | + | * **local preference** |
| + | * **MED** (Multi-Exit Discriminator) (type code 4) : ~ métrique | ||
| + | * **weight** : celui-là est propriétaire Cisco ; il est local au routeur | ||
| + | |||
| + | La priorité pour choisir un chemin est : weight > local pref > originate route > AS-Path > MED | ||
| + | |||
| + | |||
| + | =====Machine d' | ||
| + | |||
| + | 6 états différents : | ||
| + | * **Idle** : le routeur est prêt à établir une session BGP. | ||
| + | * **Connect** : la connexion est établie. Il envoie un message //Open// et passe à l' | ||
| + | * **Active** : une connexion est établie par un peer ; il envoie un message //Open// et passe à l' | ||
| + | * **Open Sent** : attente de réception d'un message open du peer ; sur réception, envoie un //Keep alive// et passe à l' | ||
| + | * **Open confirm** attente d'un //Keep Alive// venant du peer, puis passe à l' | ||
| + | * **Established** communication bidirectionnelle établie ; commence à envoyer des //updates// et des //Keep alive//. | ||
| Line 52: | Line 69: | ||
| Déclarer la Loopback0 comme IP source : | Déclarer la Loopback0 comme IP source : | ||
| - | (config-router)# | + | |
| - | Déclarer | + | Déclarer |
| - | network 10.10.10.0 mask 255.255.255.0 | + | |
| + | =====Détermination du meilleur chemin===== | ||
| + | cf : BGP Best Path Selection Algorithm | ||
| + | * highest WEIGHT : c'est un paramètre propriétaire Cisco, pas toujours/ | ||
| + | * highest LOCAL_PREF : par défaut = 100 | ||
| + | * locally originated via a //network// or // | ||
| + | * shortest AS_PATH | ||
| + | * lowest origin type (IGP < EGP < INCOMPLETE) | ||
| + | * lowest multi-exit discriminator (MED) : uniquement si les next-hop appartiennent au même AS | ||
| + | * prefer eBGP over iBGP paths | ||
| + | * path with the lowest IGP metric to the BGP next hop | ||
| + | * When both paths are external, prefer the path that was received first (the oldest one) | ||
| + | * Prefer the route that comes from the BGP router with the lowest router ID | ||
| + | * Prefer the path that comes from the lowest neighbor address. | ||
| =====Configuration avancée===== | =====Configuration avancée===== | ||
| ====Peer group==== | ====Peer group==== | ||
| + | Local à chaque routeur, permet de factoriser la configuration de peers. | ||
| + | |||
| + | ====Annoncer un préfixe==== | ||
| + | |||
| + | Annoncer les réseaux de 207.0.0.0/ | ||
| + | ip prefix-list 207.0.0.0/8 ge 10 le 18 | ||
| + | (**ge** = Greater or Equal != **le** pour Less or Equal) | ||
| + | |||
| + | ====Agréger des routes==== | ||
| + | |||
| + | On utilise la commande '' | ||
| + | |||
| + | router bgp 300 | ||
| + | | ||
| + | | ||
| + | |||
| + | Dans le cas ci-dessus le routeur annoncera les 2 réseaux 200.52.1.192/ | ||
| + | aggregate-address 200.52.1.0 255.255.255.0 summary-only | ||
| + | |||
| + | ====route-reflector==== | ||
| + | |||
| + | Sur le router " | ||
| + | router bgp 64000 | ||
| + | | ||
| + | | ||
| + | |||
| + | ====Communauté==== | ||
| + | |||
| + | Pour partager une communauté avec le voisin 10.0.0.1 | ||
| + | neighbor 10.0.0.1 send-community | ||
| + | |||
| + | ====Load Sharing==== | ||
| + | |||
| + | Le load sharing permet d' | ||
| + | |||
| + | ===Double raccordement au même ISP=== | ||
| + | |||
| + | On considère un router WAN relié en eBGP à 2 routeurs d'un même ISP. Il faut monter les adjacences eBGP et ajouter la commande '' | ||
| + | |||
| + | Exemple : notre AS=100 et l'AS de notre ISP=200. Configuration de notre routeur : | ||
| + | < | ||
| + | R1 | ||
| + | / | ||
| + | AS=100 | ||
| + | \ | ||
| + | R2 | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | interface Loopback0 | ||
| + | ip address 10.0.0.1 255.255.255.0 | ||
| + | ! | ||
| + | interface FastEthernet0/ | ||
| + | | ||
| + | ip address 100.0.1.1 255.255.255.0 | ||
| + | ! | ||
| + | interface FastEthernet0/ | ||
| + | | ||
| + | ip address 100.0.2.1 255.255.255.0 | ||
| + | ! | ||
| + | router bgp 100 | ||
| + | | ||
| + | | ||
| + | | ||
| + | ! détermine le nombre de path différents à installer dans la table de routage | ||
| + | | ||
| + | </ | ||
| + | |||
| + | ===as-path prepend=== | ||
| + | |||
| + | L' | ||
| + | |||
| + | |||
| + | Dans ce cas on a cette architecture : 2 routeurs WAN locaux vers 2 routeurs d'un même ISP ; avec des adjacences BGP "en carré" | ||
| + | < | ||
| + | | ||
| + | AS10 (local) | ||
| + | | ||
| + | </ | ||
| + | |||
| + | J'ai 2 réseaux locaux 10.0.1.0/24 et 10.0.2.0/24 ; mon n° d'AS est 10. Je veux que le premier réseau soit routé par mon ISP (AS=11) vers R1, et le second vers R2. | ||
| + | |||
| + | Sur R1 : | ||
| + | <code bash> | ||
| + | router bgp 1 | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | ! | ||
| + | access-list 1 permit 10.0.1.0 | ||
| + | access-list 2 permit 10.0.2.0 | ||
| + | ! | ||
| + | route-map rm_R1 permit 10 | ||
| + | match ip address 1 | ||
| + | ! | ||
| + | route-map R101-103-MAP permit 20 | ||
| + | match ip address 2 | ||
| + | ! on " | ||
| + | set as-path prepend 11 11 | ||
| + | </ | ||
| + | |||
| + | On " | ||
| + | |||
| + | ===Liens=== | ||
| + | |||
| + | * [[http:// | ||
| =====Vérifications===== | =====Vérifications===== | ||
| Lister les annonces BGP sur un routeur | Lister les annonces BGP sur un routeur | ||
| - | | + | <code bash> |
| + | show bgp ipv4 unicast | ||
| + | </ | ||
| Lister les voisins | Lister les voisins | ||
| - | | + | <code bash> |
| + | show ip bgp neighbors | ||
| + | </ | ||
| Pour redémarrer toutes les sessions BGP | Pour redémarrer toutes les sessions BGP | ||
| - | | + | <code bash> |
| + | clear bgp all | ||
| + | clear ip bgp * | ||
| + | </ | ||
| + | ou | ||
| + | <code bash> | ||
| + | clear ip bgp 192.168.0.0 | ||
| + | </ | ||
| + | |||
| + | Voir la liste de préfixes : | ||
| + | <code bash> | ||
| + | show ip prefix-list | ||
| + | </ | ||
| + | |||
| + | |||
| + | =====Liens utiles===== | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
informatique/cisco/bgp.1229321426.txt.gz · Last modified: 2013/10/14 20:51 (external edit)