OSPF et un peu plus …
Ce document va plus entrer en détails sur les parties relatives aux aires OSPF et donc
les types de LSA envoyés dans ses aires.
1. Rappel sur OSPF
OSPF (Open Short Path First) est un standard ouvert. OSPF est un protocole de routage interne.
Il est basé sur les RFC 2328 et 2740. OSPF est un protocole à état de liens, contrairement à RIP et
EIGRP qui sont des protocoles dits à vecteur de distance. OSPF se base sur l’algorithme de Dijkstra
afin d’éviter les boucles dans le réseau.
Il utilise le protocole IP et au niveau transport le protocole 89 (son propre protocole).
Un protocole à état de liens maintient une topologie complète du réseaux: L’état de tous les liens.
On peut voir la topologie du réseau comme une carte routière. Dans un réseau OSPF, chaque routeur dispose de la même carte pour se repérer dans le réseau. Néanmoins, chaque routeur doit fournir des informations sur l’états des liens qui lui sont directement connectés et autres suivant le type du routeur.
Ce protocole engendre plus de consommation en terme de CPU et de mémoire.
C’est moi le chef ?!
Sur un réseau type ‘broadcast‘(je ne rentrerai pas ici sur les types NBMA, point-multipoint, point-multipoint-non-broadcast, point-to-point), il y a nécessité d’avoir un chef et un sous-chef afin d’éviter que
chaque routeur soit totalement connecté à tous les autres routeurs. Il faudrait pour 10 routeurs, 45 liens (n * (n-1) / 2) entre
routeurs.
Il faut donc pour économiser des liens sur un segment ethernet :
- Designated Routeur : Le chef (a qui on doit des comptes)
- Backup Designated Router : Le sous-chef (au second qui prend le relai en cas de problème)
Dans un réseau OSPF, on s’adresse à :
- Tous les routeurs OSPF à l’adresse multicast : 224.0.0.5
- aux DR et BDR à l’adresse : 224.0.0.6
Ok, voyons maintenant comment cela communique :
Onsee connait ?
Afin de pouvoir causer OSPF, il faut que chaque routeur :
- Utilise le même language ;
- puisse communiquer : même support et interface up/up ;
- Même MTU ;
- Même subnet ;
- Même type d’authentification ;
- Même paramètre de timers (hello et dead timers (par défaut: 10 et 40 sur un réseau de type broadcast)) ;
- Même type d’aire dans laquelle l’interface se trouve ;
- Même Area-ID.
- Monte une session de dialogue.
Allo, Allo, Cause plus fort, ok, on y va …
Les routeurs OSPF doivent établir un canal de communication pour pouvoir causer OSPF.
L’établissement de ce canal est joncher d’embuches et d’étapes. Celles-ci sont :
- DOWN : La session ne fonctionne pas ;
- INIT : Salut les gars, y a du monde (224.0.0.5 Hello) ;
- 2-WAY : Hey! Mais je te connais, moi je suis tooWay!
- EXSTART : Ok, mais c’est moi le chef !! Donc tu te tais quand je parle ! (Election DR et BDR) ;
- EXCHANGE : Tu connais quoi comme bon resto dans le coin ?! Y a ici, là, et puis là! (les DBD : DataBase Descriptor)
- LOADING : Ah !! ce resto là je ne le connais pas, tu me donnes plus d’infos !? Les serveuses sont mignonnes ? (LSR, LSU, LSACK)
- FULL : Ok ! Maintenant je connais toutes les routes qui mènent aux resto de ce coin 😉
Type de paquets utilisés :
- Hello : Permet de découvrir et maintenir une relation de voisinage ;
- LSR : Link State Request: Donne moi des informations sur telle entrée du DBD ;
- LSU : Link State Update: Réponse à un LSR ou annonce d’une information (type 192.168.1.0/24 failed!) (contient des LSA) ;
- LSACK : Link State Acknowledge : Permet de rendre sûr les communications : Ack tous les types de messages sauf les Hello.
Remarque :
Il n’est pas rare et pas une erreur de voir une relation en 2-WAY restée ainsi, si les deux routeurs ne sont ni DR, ni BDR
sur un segment ethernet.
Ok, j’connais mon trou perdu et dans les autres coins c’est comment ?!
D’ailleurs pourquoi serions-nous obligés de répartir notre réseau en zone/aire ?! Cela est dû
au fait qu’OSPF et SPF l’algorithme utilisé pour construire la table de routage du routeur est
très consommateur en mémoire et en CPU. En définissant des aires, on peut restreindre le calcul par SPF du
réseau au moindre changement à une zone définie. Grâce au résumé de routes, un ABR permet
d’éviter les changements et donc réduit les calculs de l’arbre recouvrant par SPF.
En effet, __tous__ les routeurs recalculent leur carte routière à
chaque changement.
Selon Cisco, il faudrait limiter à une cinquantaine de routeurs par aire.
Néanmoins, il y a une aire particulière ! L’aire 0 dite : “backbone“. Il faut que
toutes les autres aires aient une connexion avec l’aire 0.
Et pour connecter chaque aire, il faut des routeurs. Ces routeurs sont de différents types :
- Backbone router : Routeur faisant parti de l’aire 0 (au moins une if appartient à l’aire 0) ;
- Internal router : Routeur dont toutes les interfaces appartiennent à la même aire ;
- ABR : Routeur appartenant à deux ou plusieurs aires distinctes ;
- ASBR : Routeur connecté à un autre protocole de routage (static routes, EIGRP, ISIS, BGP, …)
- R1 est ici un backbone router et un internal router ;
- R2 est un ABR ;
- R5 est un ASBR ;
Mais dans quelle étagère ?
Ok, le jeu de mot est pourri !
Il y a plusieurs types d’aires OSPF. Ces différents types impliquent un fonctionnement différent avec
des informations à partager différentes.
Ces types sont :
- Normal ;
- Stub : Aire où les routes externes (E1/E2)sont résumées par une route 0.0.0.0/0 ;
- Totally stubby : Aire où toutes les routes (O, O IA, E2) sont résumées par 0.0.0.0/0 ;
- NSSA : Aire de type stub qui apprend des routes externes par un autre moyen qu’OSPF. Les routes dans l’aires sont de type N2 et ré-émises par l’ABR de type E2.
Les types :
- E1 : Route externe dont le coût jusqu’à l’ASBR est pris en compte ;
- E2 : Route externe dont le coût jusqu’à l’ASBR n’est pas pris en compte ;
- N1 : Route externe dont le coût jusqu’à l’ASBR dans une aire de type stub est pris en compte ;
- N2 : Route externe dont le coût jusqu’à l’ASBR dans une aire de type stub n’est pas pris en compte ;
Ces types d’aires sont particulièrement liés aux types de LSA (messages OSPF sur l’état de la topologie)
envoyés par les routeurs OSPF.
Ces types sont les suivants :
- LSA type 1 : Informations sur les connected routes ;
- LSA type 2 : Informations fournies par le DR sur les routeurs adjacents que je connais ;
- LSA type 3 : Résumé de routes envoyés par un ABR ;
- LSA type 4 : Information envoyé par un routeur OSPF et ABR donnant le petit nom du ou des ASBR que l’on connait ;
- LSA type 5 : Résumé de routes externes (par un ASBR (E2)) ;
- LSA type 7 : Résumé de routes externes dans une aire de type NSSA (N2);
Aire normale
R3 : ==== router ospf 1 log-adjacency-changes network 92.42.218.1 0.0.0.0 area 6 network 217.169.240.82 0.0.0.0 area 0 ! O IA 217.169.248.0/24 [110/3] via 217.169.240.81, 00:07:01, FastEthernet1/0 92.0.0.0/8 is variably subnetted, 2 subnets, 2 masks O E2 92.42.220.0/22 [110/20] via 217.169.240.81, 00:04:31, FastEthernet1/0 C 92.42.218.0/24 is directly connected, FastEthernet1/1 217.169.240.0/24 is variably subnetted, 3 subnets, 2 masks O 217.169.240.24/30 [110/2] via 217.169.240.81, 00:07:01, FastEthernet1/0 O 217.169.240.48/29 [110/2] via 217.169.240.81, 00:07:01, FastEthernet1/0 C 217.169.240.80/30 is directly connected, FastEthernet1/0 217.169.244.0/30 is subnetted, 1 subnets O IA 217.169.244.0 [110/3] via 217.169.240.81, 00:07:01, FastEthernet1/0 R4 (normal) : ============= router ospf 1 log-adjacency-changes network 92.42.218.2 0.0.0.0 area 6 O IA 217.169.248.0/24 [110/4] via 92.42.218.1, 00:00:04, FastEthernet1/0 92.0.0.0/8 is variably subnetted, 2 subnets, 2 masks O E2 92.42.220.0/22 [110/20] via 92.42.218.1, 00:00:04, FastEthernet1/0 C 92.42.218.0/24 is directly connected, FastEthernet1/0 217.169.240.0/24 is variably subnetted, 3 subnets, 2 masks O IA 217.169.240.24/30 [110/3] via 92.42.218.1, 00:00:04, FastEthernet1/0 O IA 217.169.240.48/29 [110/3] via 92.42.218.1, 00:00:04, FastEthernet1/0 O IA 217.169.240.80/30 [110/2] via 92.42.218.1, 00:00:04, FastEthernet1/0 217.169.244.0/30 is subnetted, 1 subnets O IA 217.169.244.0 [110/4] via 92.42.218.1, 00:00:04, FastEthernet1/0
=> On voit que les routes de types externes (E2) sont annoncées par R2. On voit ici le
résumé de routes (/22) (Cf configuration plus loin).
=> Les routes de type O IA sont les routes annoncées d’une aire vers une autre par un ABR.
Aire de type Stub
R4 (stub area): =============== router ospf 1 log-adjacency-changes area 6 stub network 92.42.218.2 0.0.0.0 area 6 O IA 217.169.248.0/24 [110/4] via 92.42.218.1, 00:00:06, FastEthernet1/0 92.0.0.0/24 is subnetted, 1 subnets C 92.42.218.0 is directly connected, FastEthernet1/0 217.169.240.0/24 is variably subnetted, 3 subnets, 2 masks O IA 217.169.240.24/30 [110/3] via 92.42.218.1, 00:00:06, FastEthernet1/0 O IA 217.169.240.48/29 [110/3] via 92.42.218.1, 00:00:06, FastEthernet1/0 O IA 217.169.240.80/30 [110/2] via 92.42.218.1, 00:00:06, FastEthernet1/0 217.169.244.0/30 is subnetted, 1 subnets O IA 217.169.244.0 [110/4] via 92.42.218.1, 00:00:06, FastEthernet1/0 O*IA 0.0.0.0/0 [110/2] via 92.42.218.1, 00:00:06, FastEthernet1/0
=> Dans une aire de type stub, on voit que l’ABR fournit à ses internal routeur une route 0.0.0.0/0 de type O*IA
en remplacement de toutes les aires externes.
Aire 4 : NSSA + résumé de routes
R2: === router ospf 1 log-adjacency-changes area 2 range 217.169.244.0 255.255.255.0 area 4 nssa network 217.169.240.26 0.0.0.0 area 0 network 217.169.244.1 0.0.0.0 area 4 O IA 217.169.248.0/24 [110/3] via 217.169.240.25, 00:06:48, GigabitEthernet2/0 92.0.0.0/8 is variably subnetted, 2 subnets, 2 masks O N2 92.42.220.0/22 [110/20] via 217.169.244.2, 00:03:33, ATM1/0.1 O IA 92.42.218.0/24 [110/3] via 217.169.240.25, 00:05:51, GigabitEthernet2/0 217.169.240.0/24 is variably subnetted, 3 subnets, 2 masks C 217.169.240.24/30 is directly connected, GigabitEthernet2/0 O 217.169.240.48/29 [110/2] via 217.169.240.25, 00:06:48, GigabitEthernet2/0 O 217.169.240.80/30 [110/2] via 217.169.240.25, 00:05:51, GigabitEthernet2/0 217.169.244.0/30 is subnetted, 1 subnets C 217.169.244.0 is directly connected, ATM1/0.1 R5 : ==== router ospf 1 log-adjacency-changes area 4 nssa summary-address 92.42.220.0 255.255.252.0 redistribute rip subnets network 217.169.244.2 0.0.0.0 area 4 ! router rip version 2 redistribute connected network 92.0.0.0
=> On peut voir ici les deux manières de faire du résumé de routes.
=> Deux manières car deux types de routeurs :
- ABR (area X range a.b.c.d N.N.N.N)
- ASBR (summary w.x.y.z N.N.N.N)
=> Ici RIP annonce les routes connectées, et OSPF redistribue les routes de RIP dans le processus OSPF.
Aire de type : ‘Totally stubby’
R7 : === router ospf 1 log-adjacency-changes area 8 stub no-summary network 217.169.240.52 0.0.0.0 area 0 network 217.169.248.1 0.0.0.0 area 8 C 217.169.248.0/24 is directly connected, FastEthernet2/0 92.0.0.0/8 is variably subnetted, 2 subnets, 2 masks O E2 92.42.220.0/22 [110/20] via 217.169.240.49, 00:09:56, GigabitEthernet1/0 O IA 92.42.218.0/24 [110/3] via 217.169.240.49, 00:12:20, GigabitEthernet1/0 217.169.240.0/24 is variably subnetted, 3 subnets, 2 masks O 217.169.240.24/30 [110/2] via 217.169.240.49, 00:29:29, GigabitEthernet1/0 C 217.169.240.48/29 is directly connected, GigabitEthernet1/0 O 217.169.240.80/30 [110/2] via 217.169.240.49, 00:12:30, GigabitEthernet1/0 217.169.244.0/30 is subnetted, 1 subnets O IA 217.169.244.0 [110/3] via 217.169.240.49, 00:22:55, GigabitEthernet1/0 R8 : ==== router ospf 1 log-adjacency-changes area 8 stub no-summary network 217.169.248.2 0.0.0.0 area 8 R8#sh 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 217.169.248.1 to network 0.0.0.0 C 217.169.248.0/24 is directly connected, FastEthernet1/0 O*IA 0.0.0.0/0 [110/2] via 217.169.248.1, 00:11:25, FastEthernet1/0 => Radical ! Routes les routes sont résumées par l'ABR (R7) à une jolie 0.0.0.0/0 => Très utile sur les routeurs disposant de peu de CPU et RAM.
Ok, moi j’veux aller partout !
Il n’est pas rare de vouloir fournir une route par défaut. Avec OSPF cela est possible grâce à:
default-information originate
Attention: Cela ne fournira une route par défaut si et seulement le routeur à lui même une route
par défaut, si ce n’était pas le cas, il faudrait :
default-information originate always
Topologie GNS3
La topologie GNS3 est disponible ici.
MERCI A TOI Christophe Lucas pour ce p'tit cours méga intéressant, maintenant je comprends mieux grâce à tes explications (merci à tes lumières CISCO)
simple et très clair tes explications (OSPF et les types d'aires, pas facile à comprendre, dur dur!!)
MAINTENANT C OK… j'ai compris
bravo Christophe Lucas
Salut !
Merci, cela fait plaisir 🙂
Amicalement,
Christophe
Merci pour cet article !