User Tools

Site Tools


informatique:cisco:ospf

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
informatique:cisco:ospf [2009/01/30 18:20] – édition externe 127.0.0.1informatique:cisco:ospf [2013/10/14 20:44] (current) – external edit 127.0.0.1
Line 13: Line 13:
   * 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'algorithme de Dijkstra (SPF) qui permet de transformer la table de topologie en table de routage   * basé sur l'algorithme de Dijkstra (SPF) qui permet de transformer la table de topologie en table de routage
-  * 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, il existe 3 tables : la table des voisins, la table de topologie et la table de routage qui en découle.
   * notion d'**aire OSPF** = sectorisation qui permet d'agréger les routes, ce qui apporte :   * notion d'**aire OSPF** = sectorisation qui permet d'agréger les routes, ce qui apporte :
     * allègement des tables de routage     * allègement des tables de routage
Line 19: Line 19:
     * réduction des calculs SPF     * réduction des calculs SPF
    Cisco recommande de ne pas dépasser 50 routeurs par aire.    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'avec des routeurs de la même aire que lui (sauf si c'est un ABR).+  * 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'avec des routeurs de la même aire que lui (sauf si c'est un ABR). Les numéros d'aires vont de 0 à 4294967295.
   * découverte du voisinage par l'échange de paquets Hello ; si les conditions sont requises, 2 voisins deviennent adjacents et peuvent ainsi échanger leurs tables de routage   * découverte du voisinage par l'échange de paquets Hello ; si les conditions sont requises, 2 voisins deviennent adjacents et peuvent ainsi échanger leurs tables de routage
   * la métrique (le coût) OSPF est basé sur la bande passante (BW) du lien inter-routeur (= 10<sup>8</sup> ÷ BW)   * la métrique (le coût) OSPF est basé sur la bande passante (BW) du lien inter-routeur (= 10<sup>8</sup> ÷ BW)
Line 32: 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+  * **LSR** Link-State Request : si les LSA sont plus récents que la base de topologie, le routeur demande les informations manquantes 
 +  * **LSU** Link-State Update : envoyé sur demande (LSR) par le DR aux autre routeurs du segment
   * **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__ Router (Cisco recommande de ne pas dépasser 2 aires par ABR en plus de l'aire 0)   * **ABR** Area __Border__ Router (Cisco recommande de ne pas dépasser 2 aires par ABR en plus de l'aire 0)
-  * **ASBR** Autonomous Sytem __Boundary__ Router = tout routeur qui redistribue des routes externes (d'un autre AS) +  * **ASBR** Autonomous Sytem __Boundary__ Router = tout routeur qui redistribue des routes externes (statiques ou d'un autre AS) 
-  * **SPF** Shortest Path First (algorithme de Dijkstra) algorithme du plus court chemin+  * **SPF** Shortest Path First (algorithme de Dikjstra) algorithme du plus court chemin
   * **stub area** aire "impasse", qui ne reçoit pas de LSA type 5   * **stub area** aire "impasse", qui ne reçoit pas de LSA type 5
   * **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 57: 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'élection d'un DR/BDR se fait en fonction des critères ci-dessous ; en cas d'égalité, on passe au critère suivant ; le routeur qui remporte l'élection devient DR ; le second devient BDR). Les critères d'élection sont les suivants, par ordre de priorité :
 +  * 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===== =====Les différents types de paquets=====
Line 62: Line 68:
   * LSU   * LSU
   * LSR   * LSR
-  * DBD+  * DBD : DataBase Descriptor
   * LSAck   * LSAck
-  * hello (Hello interval sur NBMA = 30s, sur interface rapides comme l'Ethernet c'est 10s ; le hold time est égal à 3 fois le Hello interval)+  * hello (**Hello interval** sur NBMA = 30s, sur interface rapides comme l'Ethernet c'est 10s ; le **dead time** est égal à <del>3</del>fois le **Hello interval** donc = 40s sur Ethernet par ex.)
  
 ====Les différents types de LSAs==== ====Les différents types de LSAs====
  
-Les **Link State Advertisement** sont les paquets utilisés par les routeurs OPF pour communiquer (des LSUs) :+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 ''retransmit-interval'' - 5s par défaut - tant que l'acquittement n'est pas reçu). Il y en a de plusieurs types :
  
   * LSA type 1 (router) : envoyés par chaque routeur, contient les routes //connected// ; ils sont de type :   * LSA type 1 (router) : envoyés par chaque routeur, contient les routes //connected// ; ils sont de type :
Line 80: Line 86:
   * 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 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)   * LSA type 9 à 11 (opaque)
 +
 +
 +=====Les états OSPF=====
 +
 +^DOWN     | premier état OSPF ; le routeur émet des hello mais n'en reçoit pas |
 +^ATTEMPT  | uniquement sur NBMA ; envoi de hello unicast a son voisin dont le dead time a expiré |
 +^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'un routeur ne peut être FULL qu'avec le DR et le BDR) |
 +^EXSTART  | état d'échange de //link state information// avec le DR/BDR |
 +^EXCHANGE | état d'échange de DBD/LSA avec le DR/BDR |
 +^LOADING  | suite à l'état EXCHANGE, état de demande au voisin une information pour mise à jour (link-stat request) |
 +^FULL     | état normal symbolisant une adjacence complète = la base de données des voisins sont synchronisés |
 +
 +En résumé : seul l'état FULL dénote bon fonctionnement __sauf__ sur un réseau de type broadcast (comme l'Ethernet) dans le cas de l'adjacence de 2 routeurs DROTHER qui restent à l'état 2WAY.
 +
 +Voici l'algorithme d'état OSPF :
 +
 +{{:informatique:cisco:ospf_states.gif|}}
  
  
Line 85: Line 109:
 **Non-Broadcast Multi-Access** est un type de réseau qui n'accepte pas le broadcast (multicast) et qui est en mode multi-access (!= point à point). C'est le cas par défaut de Frame Relay. **Non-Broadcast Multi-Access** est un type de réseau qui n'accepte pas le broadcast (multicast) et qui est en mode multi-access (!= point à point). C'est le cas par défaut de Frame Relay.
  
-  * broadcast (ex : Ethernet) : permet la découverte automatique des voisins (par paquets hello) et nécessite l'élection d'un BR/BDR +  * **broadcast** (ex : Ethernet) : permet la découverte automatique des voisins (par paquets hello) et nécessite l'élection d'un BR/BDR 
-  * non-boadcast (ex : FR, ATM, X.25) : mode par défaut pour le FR ; ne permet pas la découverte automatique des voisins ; nécessite l'élection d'un BR/BDR +  * **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'élection d'un BR/BDR 
-  * point-to-multipoint : peu conseillé, plusieurs voisins par réseaux, détection automatique des voisins, ne nécessite pas de DR/BDR +  * **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+  * **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               | 30              | 120            |
 +^ Multipoint Non-Broadcast |           | 30              | 120            |
 +^ Broadcast                | Ethernet  | 10              | 40             |
 +^ Point-to-point           | Série     | 10              | 40             |
  
 =====Mise en place basique===== =====Mise en place basique=====
  
-Les //best pratices// recommandent d'utiliser une loopback pour faire de l'OSPF, car cette interface locale est toujours //up//. On s'en servira comme identifiant du routeur dans l'OSPF.+Les //best pratices// recommandent d'utiliser une loopback pour faire de l'OSPF, car cette interface locale est toujours //up//. On s'en servira comme identifiant du routeur dans l'OSPF (c'est conseillé aussi, mais pas obligatoire).
   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 103: Line 140:
   R1(config-router)#router-id 192.168.0.23   R1(config-router)#router-id 192.168.0.23
  
-Puis on annonce les réseaux connus, avec la syntaxe ''network <adresse du réseau> <masque inversé (wildcard)> area <numéro de l'aire>''. Cette commande :+NB : Si la commande ''router-id'' n'est pas définie, le routeur prendra par défaut la plus haute valeur d'adresse IP qu'il trouvera sur ses interfaces actives dans l'OSPF. Ce paramètre n'est pas préemptif, ce qui veux dire que l'on doit redémarrer le processeur OSPF sur le routeur pour qu'il prenne en compte une nouvelle valeur. Pour en finir sur ce ''router-id'', il faut savoir que cela ne représente pas une adresse IP : on peut très bien spécifier ''router-id 10.0.0.1'' sur un routeur alors que l'adresse IP 10.0.01 appartient à un autre équipement (mais ce n'est bien sur pas conseillé !). 
 + 
 +.. Puis on annonce les réseaux connus, avec la syntaxe ''network <adresse du réseau> <masque inversé (wildcard)> area <numéro de l'aire>''. Cette commande :
   * 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 133: Line 172:
  
 =====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 ''eigrp 1'' vers ''ospf 1'' ; ou des routes statiques vers ''eigrp 1''.
 +
 +Voici un article plus détaillé sur la [[informatique:cisco:redistribution_de_route#ospf|redistribution de routes]].
  
 ====Authentification==== ====Authentification====
Line 162: Line 207:
 ====Agrégation de routes==== ====Agrégation de routes====
  
-Ne peut se faire que sur les ABRs +Ne peut se faire que sur les ABR ou les ASBR : 
-  (config-router)#network 10.1.1.0 0.0.0.255 area 1 + 
-  (config-router)#network 10.1.2.0 0.0.0.255 area 1 +  * les ABRs : agréger les routes de l'aire 1 afin de limiter les annonces vers les autres aires 
-  (config-router)#area 1 range 10.1.0.0 255.255.0.0+ 
 +<code bash> 
 +(config-router)#network 10.1.1.0 0.0.0.255 area 1 
 +(config-router)#network 10.1.2.0 0.0.0.255 area 1 
 +(config-router)#area 1 range 10.1.0.0 255.255.0.0 
 +</code>
  
 Ici on agrège pour n'annoncer qu'un réseau en /16 (attention il ne faut pas que d'autres réseaux de la plage soient utilisés sur un autre routeur !). Ici on agrège pour n'annoncer qu'un réseau en /16 (attention il ne faut pas que d'autres réseaux de la plage soient utilisés sur un autre routeur !).
  
-Sur les ASBRs il faute ajouter la commande ''summary-address''.+On peut spécifier des réseaux agrégés à ne **pas** diffuser : 
 +<code bash> 
 +(config-router)#area 1 range 10.1.0.0 255.255.0.0 not-advertise 
 +</code> 
 + 
 +  * les ASBRs : agréger les routes redistribuées dans l'OSPF à partir d'une source externe (statique, autres IGP, etc...) 
 + 
 +<code bash> 
 +(config-router)#summary-address 192.168.0.0 255.255.0.0 
 +</code> 
 + 
 +Si le routeur agrège le réseau 192.168.0.0/16 mais qu'il ne possède connait que le réseau 192.168.0.0/24, alors il ajoute une route vers Null0 avec un coût de 0 pour les réseaux de la plage qu'il ne connait pas :
  
-On peut spécifier des réseaux agrégés à __ne pas__ diffuser : +<code bash> 
-  (config-router)#area 1 range 10.1.0.0 255.255.0.not-advertise+ABR#show ip route 192.168.1.0 
 +Routing entry for 192.168.1.0/24 
 +  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 
 +</code>
  
 ====Stub area==== ====Stub area====
Line 217: Line 284:
  
 Vérifs avec ''sh ip ospf virtual-links''. Vérifs avec ''sh ip ospf virtual-links''.
 +
 +====Sub-second hello packet====
 +
 +Sur les liens de bonne qualité (donc souvent du LAN Ethernet) il peut être intéressant d'augmenter la réactivité de l'OSPF pour baisser les temps de convergence du réseau en cas de perte d'un routeur. On peut le faire en diminuant les timers d'envoi des paquets hello ainsi que le dead-time interval. Quand on descend en-dessous de la seconde, on appelle cela **Fast Hello Packets** ou **subsecond hello packets**. Cela doit être manipuler avec précaution sous peine d'avoir les adjacences OSPF de ses routeurs qui bagottent sans cesse.
 +
 +Cela se configure facilement, en spécifiant sur l'interface de routage la commande :
 +<code bash>
 +interface Gi0/0
 + ip ospf dead-interval minimal hello-multiplier 5
 +</code>
 +Ici on configure le //dead-interval// au minimum possible (càd 1 seconde) et on indique qu'on envoie 5 hellos dans cet intervalle de temps, ce qui fait un toutes les 200 ms. Comme un voisin est déclaré dead après la perte de 4 hellos packet, on descend bien en dessous de la seconde pour converger.
 +
 +Lien cisco : [[http://www.cisco.com/en/US/docs/ios/12_0s/feature/guide/fasthelo.html|OSPF Support for Fast Hellos]]
  
  
Line 222: Line 302:
  
 ====show ip route==== ====show ip route====
 +
 +<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
 +</code>
  
 Cette commande permet d'afficher la table de routage du routeur. Les annonces correspondent à : Cette commande permet d'afficher la table de routage du routeur. Les annonces correspondent à :
Line 229: Line 322:
 | ''N1''   | OSPF NSSA external type 1 | | | ''N1''   | OSPF NSSA external type 1 | |
 | ''N2''   | OSPF NSSA external type 2 | | | ''N2''   | OSPF NSSA external type 2 | |
-| ''E1''   | OSPF external type 1 | route externe de type 1 (issue d'un autre AS = route redistribuée) à métrique variable | +| ''E1''   | OSPF external type 1 | route externe de type 1 (= route redistribuée) à métrique variable | 
-| ''E2''   | OSPF external type 2 | route externe de type 2 (issue d'un autre AS = route redistribuée) à métrique constante |+| ''E2''   | OSPF external type 2 | route externe de type 2 (= route redistribuée) à métrique constante |
 | ''*''    | candidate default    | route candidate par défaut | | ''*''    | candidate default    | route candidate par défaut |
  
-  Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP +<code bash> 
-       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area  +show ip ospf interface 
-       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 +show ip ospf neighbor 
-       E1 OSPF external type 1, E2 - OSPF external type 2 +show ip ospf 8 database adv-router 10.167.131.
-       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 +show ip ospf 8 database router 10.167.131.1
-       ia - IS-IS inter area, * - candidate default, U - per-user static route +
-       o - ODR, P - periodic downloaded static route+
  
-  debug ip ospf adj +show ip protocols 
-  debug ip ospf events+show ip route ospf 
 +</code>
  
 +====debug====
 +
 +<code bash>
 +debug ip ospf adj
 +debug ip ospf events
 +</code>
 (Pour désactiver le debugging : ''undebug all'') (Pour désactiver le debugging : ''undebug all'')
  
-  sh ip ospf interface +=====Liens===== 
-  sh ip ospf neighbor + 
-  sh ip protocols +  * [[http://www.cisco.com/en/US/tech/tk365/technologies_white_paper09186a0080094e9e.shtml#t32|OSPF Design Guide]] sur cisco.com 
-  sh ip route ospf+  * [[http://www.cisco.com/en/US/docs/ios/12_0/np1/configuration/guide/1cospf.html|Configuring OSPF]] sur cisco.com 
 +  * [[http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080093f0e.shtml|OSPF neighbor states]] 
 +  * [[http://www.cisco.com/en/US/tech/tk365/technologies_configuration_example09186a00801ec9f0.shtml|How OSPF Injects a Default Route into a Normal Area]] 
 +  * [[http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094050.shtml|OSPF Neighbor Problems Explained]]
  
informatique/cisco/ospf.1233339610.txt.gz · Last modified: 2013/10/14 20:52 (external edit)