informatique:cisco:ospf
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
informatique:cisco:ospf [2008/12/07 23:05] – Relecture BSCI pteu | informatique:cisco:ospf [2012/06/21 09:50] – [Les différents types de LSAs] pteu | ||
---|---|---|---|
Line 8: | Line 8: | ||
=====Théorie===== | =====Théorie===== | ||
- | * protocole de routage à état de liens standardisé par l'IEEE ([[http:// | + | * protocole de routage à état de liens standardisé par l'IEEE (version 2 = [[http:// |
* update seulement sur changement de topologie | * update seulement sur changement de topologie | ||
* updates périodiques toutes les 30 min | * updates périodiques toutes les 30 min | ||
* utilisation d'IP multicast pour dialoguer : 224.0.0.5 pour les routeurs et 224.0.0.6 pour les DR/BDR | * utilisation d'IP multicast pour dialoguer : 224.0.0.5 pour les routeurs et 224.0.0.6 pour les DR/BDR | ||
* basé sur l' | * basé sur l' | ||
- | * comme en EIGRP, 3 tables : la table des voisins, la table de topologie et la table de routage qui en découle. | + | * comme en EIGRP, |
- | * notion d'aire OSPF = sectorisation qui permet d'alléger | + | * notion d'**aire OSPF** = sectorisation qui permet d'agréger |
+ | * allègement des tables de routage | ||
+ | * réduction des overhead des LSU | ||
+ | * réduction des calculs SPF | ||
+ | Cisco recommande de ne pas dépasser 50 routeurs par aire. | ||
+ | * toutes les aires (//regular area// ou aire ordinaire) sont reliées à l'aire 0 (aire backbone ou aire de transit) par leur ABR (routeur de bordure). Chaque flux entre 2 aires passe forcément par l'aire 0. Chaque routeur ne communique qu' | ||
* découverte du voisinage par l' | * découverte du voisinage par l' | ||
* la métrique (le coût) OSPF est basé sur la bande passante (BW) du lien inter-routeur (= 10< | * la métrique (le coût) OSPF est basé sur la bande passante (BW) du lien inter-routeur (= 10< | ||
- | * le protocole OSPF est encapsulé dans un paquet IP, mais le protocole OSPF inclut des paquets de type ACK qui permettent d' | + | * le protocole OSPF est encapsulé dans un paquet IP (protocole n°89), mais le protocole OSPF inclut des paquets de type ACK qui permettent d' |
+ | * les 3 types de réseaux définis par OSPF sont | ||
+ | * point-to-point | ||
+ | * broadcast | ||
+ | * NBMA (Non-Broadcast Multi-Access) | ||
=====Terminologie===== | =====Terminologie===== | ||
Line 23: | Line 32: | ||
* **PDU** Protocol Data Units ; les LSAs sont des PDUs | * **PDU** Protocol Data Units ; les LSAs sont des PDUs | ||
* **LSA** Link-State Advertisement qui sont envoyer à tous les routeurs de l'aire | * **LSA** Link-State Advertisement qui sont envoyer à tous les routeurs de l'aire | ||
- | * **LSU** Link-State Update | + | |
+ | | ||
* **LSDB** Link-State DataBase qui sont identiques sur tous les routeurs de l'aire | * **LSDB** Link-State DataBase qui sont identiques sur tous les routeurs de l'aire | ||
* **DR** Designated Router | * **DR** Designated Router | ||
* **BDR** Backup Designated Router | * **BDR** Backup Designated Router | ||
- | * **ABR** Area Border | + | * **ABR** Area __Border__ |
- | * **ABDR** Autonomous Sytem Boundary | + | * **ASBR** Autonomous Sytem __Boundary__ |
- | * **SPF** Shortest Path First | + | * **SPF** Shortest Path First (algorithme de Dikjstra) algorithme du plus court chemin |
* **stub area** aire " | * **stub area** aire " | ||
* **totally stubby area** est une stub area qui ne reçoit pas non plus les LSAs de type 3 | * **totally stubby area** est une stub area qui ne reçoit pas non plus les LSAs de type 3 | ||
Line 48: | Line 58: | ||
Il y a autant de DR dans une aire que de réseau multi-access. | Il y a autant de DR dans une aire que de réseau multi-access. | ||
+ | L' | ||
+ | * plus haute priorité OSPF | ||
+ | * plus haut router-id | ||
+ | * plus haute IP de loopback | ||
+ | * plus haute IP sur les autres interfaces | ||
+ | |||
+ | =====Les différents types de paquets===== | ||
+ | |||
+ | * LSU | ||
+ | * LSR | ||
+ | * DBD : DataBase Descriptor | ||
+ | * LSAck | ||
+ | * hello (**Hello interval** sur NBMA = 30s, sur interface rapides comme l' | ||
+ | |||
+ | ====Les différents types de LSAs==== | ||
+ | |||
+ | Les **Link State Advertisement** sont les paquets utilisés par les routeurs OPF pour communiquer (des LSUs) ; ils doivent être acquitter par les voisins (il sont retransmis toutes les '' | ||
+ | |||
+ | * LSA type 1 (router) : envoyés par chaque routeur, contient les routes // | ||
+ | * transit | ||
+ | * p2p | ||
+ | * stub | ||
+ | * virtual link | ||
+ | * LSA type 2 (network) : annonce d'un réseau et des routeurs qui y sont connectés ; initié par un DR | ||
+ | * LSA type 3 et 4 (summary) : ce sont des //route summary// envoyés par un ABR, et transmis respectivement aux autres ABRs et aux ASBRs | ||
+ | * LSA type 5 (external) : annonce d'une route externe par un ASBR (n'est pas propagé dans les //stub areas//) | ||
+ | * LSA type 7 (NSSA) : générés par les ASBR d'une aire NSSA, ils sont convertis par l'ABR de l'aire en LSA de type 5. | ||
+ | * LSA type 9 à 11 (opaque) | ||
+ | |||
+ | |||
+ | =====Les états OSPF===== | ||
+ | |||
+ | ^DOWN | premier état OSPF ; le routeur émet des hello mais n'en reçoit pas | | ||
+ | ^ATTEMPT | ||
+ | ^INIT | le routeur reçoit un hello d'un voisin, mais il ne contient pas (encore) son router-id | | ||
+ | ^2WAY | communication bidirectionnelle établie = les hellos reçus contiennent son router-id ; état normal d'un DROTHER avec un autre DROTHER puisqu' | ||
+ | ^EXSTART | ||
+ | ^EXCHANGE | état d' | ||
+ | ^LOADING | ||
+ | ^FULL | état normal symbolisant une adjacence complète = la base de données des voisins sont synchronisés | | ||
+ | |||
+ | En résumé : seul l' | ||
+ | |||
+ | Voici l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | =====OSPF over NBMA===== | ||
+ | **Non-Broadcast Multi-Access** est un type de réseau qui n' | ||
+ | |||
+ | * **broadcast** (ex : Ethernet) : permet la découverte automatique des voisins (par paquets hello) et nécessite l' | ||
+ | * **non-broadcast** (ex : FR, ATM, X.25) : mode par défaut pour le FR ; ne permet pas la découverte automatique des voisins ; nécessite l' | ||
+ | * **point-to-multipoint** : peu conseillé, plusieurs voisins par réseaux, détection automatique des voisins, ne nécessite pas de DR/BDR | ||
+ | * **point-to-point** (ex : interfaces série) : un voisin par interface, ne nécessite pas de DR/BDR | ||
+ | |||
+ | |||
+ | =====Timers par défaut===== | ||
+ | |||
+ | brouillon / à valider | ||
+ | |||
+ | Tableau récapitulatifs des timers par défaut : | ||
+ | |||
+ | | ^ Protocole ^ Hello timer (s) ^ Dead timer (s) ^ | ||
+ | ^ NBMA | FR | 30 | 120 | | ||
+ | ^ Multipoint Broadcast | ||
+ | ^ Multipoint Non-Broadcast | | 30 | 120 | | ||
+ | ^ Broadcast | ||
+ | ^ Point-to-point | ||
=====Mise en place basique===== | =====Mise en place basique===== | ||
- | Les //best pratices// recommandent d' | + | Les //best pratices// recommandent d' |
R1(config)interface loopback 0 | R1(config)interface loopback 0 | ||
R1(config-if)description Lo0 pour OSPF | R1(config-if)description Lo0 pour OSPF | ||
Line 61: | Line 140: | ||
R1(config-router)# | R1(config-router)# | ||
- | Puis on annonce les réseaux connus, avec la syntaxe '' | + | NB : Si la commande '' |
+ | |||
+ | .. Puis on annonce les réseaux connus, avec la syntaxe '' | ||
* va activer l'OSPF sur la ou les interfaces qui matchent | * va activer l'OSPF sur la ou les interfaces qui matchent | ||
* va annoncer dans l'OSPF les réseaux des interfaces qui matchent, avec les masques définis sur ces interfaces. | * va annoncer dans l'OSPF les réseaux des interfaces qui matchent, avec les masques définis sur ces interfaces. | ||
Line 79: | Line 160: | ||
R1(config-if)# | R1(config-if)# | ||
+ | |||
+ | ====Définir les coûts OSPF==== | ||
+ | |||
+ | OSPF définit les coûts par défaut qui sont historiquement égaux à la vitesse de l' | ||
+ | |||
+ | On peut personnaliser ce coût : | ||
+ | (config-if)# | ||
+ | |||
+ | (config-router)# | ||
=====Configuration avancée===== | =====Configuration avancée===== | ||
+ | |||
+ | ====Redistribution de routes==== | ||
+ | |||
+ | La redistribution de route est utilisée pour injecter des routes apprises d'un AS vers un autre AS : par exemple de '' | ||
+ | |||
+ | Voici un article plus détaillé sur la [[informatique: | ||
====Authentification==== | ====Authentification==== | ||
- | Sur l' | + | Les routeurs doivent bien sur être configurés de la même manière des 2 cotés du lien. |
- | int gi0/0 | + | |
- | ip ospf authentication | + | ===Par clé simple=== |
- | ip ospf authentication-key san-fran | + | Il transite en clair sur le réseau ; sur l' |
+ | (config-if)# | ||
+ | (config-if)# | ||
+ | |||
+ | ===Par hash MD5=== | ||
+ | | ||
+ | | ||
+ | |||
+ | avec 1 l'ID le //key-id// (de 1 à 255) et toto la clé (alphanumérique sur 16 bits) | ||
- | Cela va sans dire qu'il vaut mieux que le routeur d'en face ait les mêmes paramètres pour que ça marche bien. | + | Pour ne pas faire apparaitre les mots de passe MD5 en clair dans la conf il faut activer |
+ | (config)# | ||
====Passive interface==== | ====Passive interface==== | ||
Line 100: | Line 205: | ||
Cette interface ne participera plus à l' | Cette interface ne participera plus à l' | ||
- | ====agrégation | + | ====Agrégation |
- | Ne peut se faire que sur les ABR : | + | Ne peut se faire que sur les ABR ou les ASBR : |
- | R1(config-router)# | + | |
- | Ici on aggrège pour n'annoncer qu'un réseau en /16. | + | * les ABRs : agréger les routes de l'aire 1 afin de limiter les annonces vers les autres aires |
- | ====stub area==== | + | <code bash> |
+ | (config-router)# | ||
+ | (config-router)# | ||
+ | (config-router)# | ||
+ | </ | ||
+ | |||
+ | Ici on agrège pour n' | ||
+ | |||
+ | On peut spécifier des réseaux agrégés à ne **pas** diffuser : | ||
+ | <code bash> | ||
+ | (config-router)# | ||
+ | </ | ||
+ | |||
+ | * les ASBRs : agréger les routes redistribuées dans l'OSPF à partir d'une source externe (statique, autres IGP, etc...) | ||
+ | |||
+ | <code bash> | ||
+ | (config-router)# | ||
+ | </ | ||
+ | |||
+ | Si le routeur agrège le réseau 192.168.0.0/ | ||
+ | |||
+ | <code bash> | ||
+ | ABR#show ip route 192.168.1.0 | ||
+ | Routing entry for 192.168.1.0/ | ||
+ | Known via "ospf 1", distance 110, metric 0, type intra area | ||
+ | Routing Descriptor Blocks: | ||
+ | * directly connected, via Null0 | ||
+ | Route metric is 0, traffic share count is 1 | ||
+ | </ | ||
+ | |||
+ | ====Stub area==== | ||
Doit se configurer __sur chaque routeur de l' | Doit se configurer __sur chaque routeur de l' | ||
Line 118: | Line 252: | ||
O*IA 0.0.0.0/0 [110/2] via 10.3.2.2, 00:01:23, FastEthernet0/ | O*IA 0.0.0.0/0 [110/2] via 10.3.2.2, 00:01:23, FastEthernet0/ | ||
- | ====totally | + | ====Totally |
- | Ne se configure __que sur l'ABR de l' | + | Un concept Cisco, ne se configure __que sur l'ABR de l' |
R1(config-router)# | R1(config-router)# | ||
+ | |||
+ | ====NSSA==== | ||
+ | |||
+ | **Not So Stubby Area**, défini une stub area qui annonce une route externe, et accepte par défaut les routes OSPF, OSPF inter-area et NSSA externes de type 2 ('' | ||
+ | |||
+ | R1(config-router)# | ||
+ | |||
+ | On peut coupler les foncions d'un NSSA et une totally-stub area : | ||
+ | |||
+ | R1(config-router)# | ||
====virtual-link==== | ====virtual-link==== | ||
Line 140: | Line 284: | ||
Vérifs avec '' | Vérifs avec '' | ||
+ | |||
+ | ====Sub-second hello packet==== | ||
+ | |||
+ | Sur les liens de bonne qualité (donc souvent du LAN Ethernet) il peut être intéressant d' | ||
+ | |||
+ | Cela se configure facilement, en spécifiant sur l' | ||
+ | <code bash> | ||
+ | interface Gi0/0 | ||
+ | ip ospf dead-interval minimal hello-multiplier 5 | ||
+ | </ | ||
+ | Ici on configure le // | ||
+ | |||
+ | Lien cisco : [[http:// | ||
=====Vérification===== | =====Vérification===== | ||
- | debug ip ospf adj | + | ====show |
- | debug ip ospf events | + | |
+ | <code bash> | ||
+ | show ip route | ||
+ | Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP | ||
+ | D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area | ||
+ | N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 | ||
+ | E1 - OSPF external type 1, E2 - OSPF external type 2 | ||
+ | i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 | ||
+ | ia - IS-IS inter area, * - candidate default, U - per-user static route | ||
+ | o - ODR, P - periodic downloaded static route | ||
+ | |||
+ | Gateway of last resort is 10.0.1.0 to network 0.0.0.0 | ||
+ | </ | ||
+ | |||
+ | Cette commande permet d' | ||
+ | ^ Code ^ Type ^ Description ^ | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | <code bash> | ||
+ | show ip ospf interface | ||
+ | show ip ospf neighbor | ||
+ | show ip ospf 8 database adv-router 10.167.131.1 | ||
+ | show ip ospf 8 database router 10.167.131.1 | ||
+ | |||
+ | show ip protocols | ||
+ | show ip route ospf | ||
+ | </ | ||
+ | |||
+ | ====debug==== | ||
+ | |||
+ | <code bash> | ||
+ | debug ip ospf adj | ||
+ | debug ip ospf events | ||
+ | </ | ||
(Pour désactiver le debugging : '' | (Pour désactiver le debugging : '' | ||
- | sh ip ospf interface | + | =====Liens===== |
- | | + | |
- | | + | * [[http:// |
- | | + | * [[http:// |
+ | | ||
+ | | ||
+ | | ||
informatique/cisco/ospf.txt · Last modified: 2013/10/14 20:44 by 127.0.0.1