Dans la famille des protocoles de routage à état de liens (Link State Protocol), on distingue deux protocoles qui sont aujourd’hui très répandus dans les réseaux IT, il s’agit de :
- Open Shortest Path First (OSPF) décrit dans la RFC 2328
- Intermediate System to Intermediate System (IS-IS) décrit dans la RFC 1195
Ces deux protocoles existent depuis plus d’une vingtaine d’année et partagent plusieurs points en commun, cependant, ils ont aussi des différences notables surtout dans la façon d’ hiérarchiser et d’organiser le réseau, dans une grande partie des déploiements, on constate que le protocole OSPF est souvent associé au architecture de type « Entreprise » pendant que le protocole IS-IS est plutôt associé aux architectures de type « Service Provider ».
Dans cet article, nous allons essayer de comprendre succinctement les grands principes de fonctionnement de ces deux protocoles, nous allons aussi nous intéresser aux aspects convergence, robustesse et évolutivité, est ce qu’il y a un protocole mieux que l’autre ? Est-ce que cette répartition (OSPF, Entreprise), (IS-IS, Service Provider) est toujours justifiée aujourd’hui ? Comment choisir entre ces deux protocoles pour son architecture réseau ?
Même si les deux protocoles s’appuient sur le même algorithme (SPF Dijkstra) pour le calcul du chemin le plus court, ils n’utilisent pas le même vocabulaire pour désigner leurs composants, le schéma ci-dessous résume ces différences :
Identification :
Sur un graphe qui représente l’architecture réseau, l’algorithme Dijkstra est exécuté pour calculer le chemin le plus court afin de joindre une destination donnée, pour ce faire, les routeurs OSPF sont identifiés dans ce graphe par le Router-Id alors que les routeurs IS-IS sont identifiés par une adresse NET (Network Entity Title).
Le Router-Id en OSPF est un identifiant de routeur, il n’a pas besoin d’être présent ou annoncé dans le réseau, cependant, il doit être unique pour chaque routeur, il est souvent associé à une interface de type Loopback et annoncé sur le réseau pour des raisons d’exploitation et de simplification de la compréhension de l’architecture.
Le NET en IS-IS permet de définir deux composants importants : L’aire d’appartenance du routeur (un routeur ISIS ne peut appartenir qu’à une seule aire) et l’identification unique du routeur (comme le Router-Id en OSPF), dans le schéma, R1 implémente l’adresse NET 49.0001.0000.0000.0001.00 (Aire 49.0001, identifiant de routeur 0000.0000.0001).
Média de transport :
- OSPF est un protocole de niveau 3 du modèle OSI, pour son fonctionnement, il utilise exclusivement le protocole IP (Encap v4/v6, ip proto=89), par conséquent, les architectures réseaux ne disposant pas de la couche IP ne peuvent pas l’implémenter.
- IS-IS est un protocole de niveau 2 du modèle OSI, pour son fonctionnement, il s’appuie nativement sur le protocole CLNP (Connection Less Network Protocol), de ce fait, il n’a pas besoin d’avoir à disposition un réseau IP pour pouvoir fonctionner.
- L’implémentation du protocole IP dans IS-IS est réalisée par la déclaration de nouveaux TLVs (Type, Length, Value) (il s’agit du TLV 128 qui contient un ensemble de champs de 12 Octets pour porter les informations IP), cette version est appelée : Integrated IS-IS. (plus de détails dans RFC 1195)
- La popularité du protocole IP a rendu aussi le protocole OSPF populaire, IP est présent et dominant dans toutes architectures réseaux, il n’y a pas besoin de rajouter une couche de transport supplémentaire (ex CLNP pour IS-IS) avec toutes les contraintes que cela implique pour pouvoir échanger au final des routes IP.
- L’ajout de nouvelles fonctionnalités importantes a nécessité dans le passé une réécriture et adaptation du code (exemple : nouvelle version OSPFv3 pour le support d’IPv6).
- Le protocole IS-IS est neutre et autonome dans son fonctionnement car il embarque nativement sa propre couche de transport, il est aussi plus évolutif que l’OSPF (exemple : le support d’IPv6 s’est fait très rapidement par la déclaration de nouveaux TLVs sans besoin de revoir le code).
- Cette neutralité d’IS-IS a permis aussi d’entendre facilement son usage pour d’autres environnements que l’IP, en effet, les technologies Cisco (FabricPath et OTV) ont implémenté IS-IS pour permettre les extensions de VLANs (Intra-Site et Inter-Site).
Métrique (cost) des interfaces :
- En OSPF, le coût par défaut d’une interface est calculé à partir de la bande passante, par conséquent, les liens disposants d’une bande passante importante seront par défaut privilégiés dans le calcul du chemin de le plus court.
- En IS-IS, toutes les interfaces ont un coût par défaut égal à 10, ce n’est pas problématique pour les architectures disposant de bandes passantes égales (exemple Leaf & Spine en DC), cependant, pour les architectures WAN disposant de plusieurs liens avec plusieurs débits différents, il faut configurer manuellement le « vrai » coût du lien sur chaque interface.
- Ce point de différenciation est à prendre en compte pour les architectures disposant de plusieurs liens avec des débits variables : pour une utilisation optimale de la bande passante, il faut modifier le cout par défaut des interfaces participant au routage IS-IS.
Échange et synchronisation de données :
- Le protocole OSPF utilise des paquets LSU (Link State Update) pour transporter des LSAs (Link State Advertisements) de plusieurs types (1,2,3,4,5 et 7), à travers ces LSAs, chaque routeur décrit sa propre topologie réseau (nombre de liens connectés, type de liens, aire, adressage IP, …)
- Le protocole IS-IS utilise un seul paquet LSP (Link State PDU) pour transporter plusieurs TLVs qui décrivent la topologie de chaque routeur (Hostname, nombre de liens connectés, type de liens, aire, adressage IP, …) (plus de détails dans RFC 5301)
- La multiplication des LSAs dans le protocole OSPF le rend plus bavard et plus bruyant que le protocole IS-IS qui utilise un seul paquet TLV, dans des architectures de type Full-Mesh (les plus compliquées à gérer pour les protocoles Link State), cela peut être problématique et peut générer beaucoup d’activité de Flooding inutiles, cependant, des solutions existent pour les deux protocoles pour améliorer ce point de faiblesse (mesh group, Dynamic Flooding, ..) un article leur sera dédié très prochainement sur notre blog.
Rafraichissement de la LSDB (Link State DataBase) :
- En OSPF, les entrées de la LSDB ont une durée de vie (lifetime) de 60 min, cette durée ne peut pas être modifiée, les LSAs sont actualisés par les routeurs toutes les 30 min.
- En IS-IS, les entrées de la LSDB ont une durée de vie (lifetime) de 20 min par défaut, cette valeur peut être modifiée jusqu’à 18,2 h (65535 secondes), les LSP sont actualisés par les routeurs toutes les 15 min par défaut.
- Avantage pour l’IS-IS pour les architectures nécessitants de faire des optimisations importantes sur les opérations de flooding et de rafraichissement de la LSDB.
Établissement des Adjacences :
- Pour établir et maintenir des adjacences en OSPF, il faut que les paramètres (area, hello-interval, dead-interval, authentification, MTU, Network-type, Stub-Flags) soient identiques entre les deux voisins, à noter qu’il est possible d’ignorer le MTU pendant cette phase mais ce n’est pas une bonne pratique car cela peut générer une fragmentation indésirable.
- Pour établir et maintenir des adjacences en IS-IS, il faut que les paramètres (MTU, Levels, authentification, et area-id pour uniquement les adjacences L1) soient identiques entre les deux voisins.
- Avantage pour l’IS-IS qui apporte plus de souplesse et moins de contraintes dans l’établissement des sessions entre voisins.
Hiérarchie :
- En OSPF, il existe deux niveaux de hiérarchie : une aire centrale (aire backbone 0) et des aires périphériques. L’aire 0 est autonome dans son fonctionnement et centralise toutes les informations de routage, tandis que les aires périphériques doivent être connectés sur l’aire 0 pour recevoir les routes en provenance des autres aires.
- Les routeurs OSPF peuvent être connectés sur plusieurs aires (exemple lien 1 appartient à l’aire 0, lien 2 appartient à l’aire 1), ces équipements portent la désignation d’ABR (Area Border Router).
- En IS-IS, il existe aussi deux niveaux de hiérarchie : Level 1 (L1) et Level 2 (L2).
- Un routeur IS-IS peut être connecté sur plusieurs domaines (exemple : lien 1 appartient domaine L1, lien 2 appartient au domaine L2), ces équipements sont désignés L1L2 routeur.
- Le domaine L2 en IS-IS est l’équivalent de l’aire Backbone (0) de l’OSPF, il centralise toutes les informations de routage.
- Le domaine L1 est l’équivalent d’une aire Totally NSSA en OSPF, il n’accepte que la route par défaut en provenance d’un routeur L1L2.
- Les routeurs L1L2 permettent aussi la redistribution spécifique des routes L2 au sein du domaine L1 (route leaking).
- Un routeur IS-IS ne peut appartenir qu’à une seule aire (contrairement à l’OSPF).
- L’établissement des adjacentes L1 n’est possible que si les deux routeurs appartiennent à la même aire.
- L’établissement des adjacentes L2 est possible entre deux routeurs appartiennent à des aires différentes.
Domaine de flooding et LSDB :
- Le domaine de flooding en OSPF est réalisé par aire : chaque aire dispose de ses informations de topologie avec ses propres LSAs (type 1 et 2) qui ne sont jamais échangés avec les autres aires.
- Les informations d’accessibilité (reachability) sont transmises entre les aires (LSA type 3).
- Un routeur OSPF connecté sur plusieurs aires (ABR) disposera de plusieurs entrées de topologie et d’accessibilité associées à chacune des aires, ce qui augmente la taille de la LSBD.
- Les routeurs appartenant à une même aire sont synchronisés pour avoir une même copie de la topologie.
- Une seule LSDB est construite par process OSPF.
- Le domaine de flooding en IS-IS est réalisé par Level (L1 et L2) : deux bases LSDB sont construites pour chacun des domaines (L1 et L2), ces bases sont indépendantes et autonomes dans leur fonctionnement.
- Un routeur IS-IS de type L1L2 dispose de deux bases LSDB, il permet aussi de réaliser l’échange des informations d’accessibilité entre les domaines L1 et L2.
- Les routeurs IS-IS de type L1 ou L2 disposent d’une seule base LSDB associée au domaine.
- La notion d’aire en IS-IS ne définit pas le domaine de Flooding, elle permet juste d’apporter une organisation dans le réseau.
Topologie et Filtrage :
- Pour le calcul du meilleur chemin, les deux protocoles (IS-IS et OSPF) imposent que les routeurs appartenant à la même aire ou level (L1 ou L2) disposent de la même vue topologique, sinon des boucles pourrait se produire sur le réseau.
- Pour les deux protocoles, il n’est pas possible de faire du filtrage au sein de l’aire ou du level (L1 ou L2).
- Le filtrage des LSA en OSPF est possible entre les aires, il est réalisé sur les équipements de type ABR.
- En OSPF, le filtrage est aussi possible avec les protocoles externes, il est réalisé sur les équipements de type ASBR.
- En IS-IS, le filtrage est possible entre les deux levels (L1 et L2), il est réalisé sur les équipements de type L1L2.
- Avantage pour le protocole OSPF qui permet d’offrir plus d’options de filtrage, en effet, OSPF dispose nativement de plusieurs types d’aires (STUB, TOTALLY STUB, NSSA et TOTALLY NSSA).
Conclusion
Cet article permet de donner un bon aperçu sur le fonctionnement des protocoles à état de liens (Link State) OSPF et IS-IS, ils partagent beaucoup de points en communs avec un même objectif principal : « Calculer le meilleur chemin pour joindre une destination à partir des métriques (cost) définis sur les liens« . Ce calcul final (SPF) exécute le même algorithme qui porte le nom de son inventeur : Dijkstra.
Dans les années 90 du réseau IP , la bande passante était très faible (on parlait en Ko/Mo), très couteuse aussi avec peu de fiabilité car on constatait beaucoup de perturbations et d’instabilités sur les liens télécoms. Quant aux équipements réseaux, ils disposaient de peu de Mémoire/CPU car leur cout de fabrication était très élevé et la conception des « network OS » (ex IOS) était monolithique (All in One), tous ces paramètres parmi d’autres avaient un impact très important sur la stabilité des réseaux de l’époque.
Dans le contexte de ces années, je pense (mon humble avis) que le protocole IS-IS était plus adapté et plus simple à déployer à grande échelle sur plusieurs centaines de routeurs : il suffisait de mettre tous les routeurs dans le même domaine de flooding (L1 ou L2) sans avoir à s’embêter à les subdiviser en plusieurs aires pour réduire le domaine de flooding avec toutes les contraintes que cela comporte (ex sub-optimal routing). Le protocole OSPF présentait aussi des signes de fragilité et de faiblesses à grande échelle sur les IOS monolithique de l’époque.
Aujourd’hui les choses ont beaucoup évolué, les liaisons sont de plus en plus performantes (10G,40G,100G et 400G) et très fiables aussi avec souvent une sécurisation faite au niveau optique (SONET, SDH, DWDM, ..), les protocoles de routage OSPF/IS-IS ont gagné énormément en maturité et beaucoup de nouvelles fonctionnalité ont été introduite pour optimiser leur fonctionnement, sans oublier l’augmentation significative des ressources matérielles (CPU/Mémoire) sur les équipements réseaux afin de leur permettre de traiter assez facilement plusieurs opérations à la seconde.
Aujourd’hui, je pense que les deux protocoles répondent favorablement à toutes les contraintes techniques, il n’y a vraiment plus de points techniques critiques permettant de privilégier un protocole sur un autre.
Il est tout à fait envisageable de déployer plusieurs centaines de routeurs au sein d’une même aire backbone sous réserve de disposer des équipements adéquats et d’appliquer les bonnes pratiques sur le protocole OSPF pour un déploiement à grande échelle (large scale), plusieurs entreprises et opérateurs ont fait ce choix avec succès.
Le seul point différenciateur à mon sens entre ces deux protocoles reste humain et organisationnel : il faut privilégier dans son choix final le protocole avec lequel l’exploitant et l’organisation dans sa globalité se sentira plus confortable : On constate que les gens en Entreprise sont souvent plus à l’aise avec l’OSPF, tandis que les Service Provider ont une préférence pour l’IS-IS parce qu’ils ont construit pendant plusieurs années un bon retour d’expérience (les habitudes).
Il ne faut pas oublier aussi qu’en terme de design réseau, il est souvent question de compromis (trade-offs), on peut améliorer un point au risque de pénaliser un autre (sécurité vs exploitation, performance vs coût, etc.), c’est pour cette raison qu’il faut rester très vigilant dans ses choix de conception en prenant en compte les contraintes internes et externes (budget, exploitant, outillage, ..)
J’espère qu’avec cet article, vous savez mieux maintenant comment différencier entre les protocoles OSPF et IS-IS et aussi lequel sélectionner dans vos choix de conception.
Un Draft IETF existe aussi pour comparer en détail les deux protocoles : IS-IS and OSPF Difference Discussions
Si vous avez des questions ou vous avez besoin d’un complément d’informations, n’hésitez pas à laisser un message en commentaire de la page ou nous contacter directement à l’adresse : contact@mhd-experts.com.
Démystification du protocole OSPF (partie 1) – MHD Experts
avril 20, 2020[…] Les protocoles OSPF et ISIS appartiennent à la famille des protocoles à état de lien « Link State Protocol », il existe beaucoup de points en commun entre ces deux protocoles, cependant, l’OSPF est souvent implémenté en Entreprise et l’ISIS chez les opérateurs « Service Provider ». pour plus d’informations, un article de notre blog permet de comparer ces deux protocoles, il est accessible à partir de ce lien. […]
Ph. Jounin
avril 21, 2020Merci pour cet article.
Tout à fait en accord pour dire que les différences sont minimes. Mais la distinction OSPF=Entreprise/ISIS=Provider n’est pas due qu’à l’habitude.
OSPF permet le type NBMA qui fonctionne bien pour des topologies Hub and Spoke (souvent des overlays enterprise) OSPF permet également plus de souplesse quant aux architectures multi areas, grâce aux concepts de virtual link et sham link), ce qui correspond plus à la vie de réseaux d’entreprise (fusion d’entreprises).
En revanche, ISIS permet simplement de distribuer seulement les interfaces passives (qui sont les loopbacks MPLS des providers).
Enfin comme vous l’avez mentionné, il y a quelques petites différences dans les annonces de routes entre les aires. Par exemple, le leaking de routes ISIS permet plus de possibilités qu’en OSPF.
hicham tahri
avril 21, 2020Merci pour votre lecture ainsi que vos commentaires !.
Oui, les deux points mentionnés pour l’OSPF sont effectivement corrects, il y aussi le fait que l’OSPF peut être exécuté sur un support de type IPSEC (ex VTI chez Cisco) très utilisé en entreprise, ces points seront détaillés dans un article qui sera publié très prochainement ..
Pour la petite histoire : il parait que dans les années 90, un très gros opérateur est venu voir Cisco pour le choix d’un IGP, Cisco ont préconisé IS-IS parce OSPF n’était pas bien codé à l’époque et ne supportait pas le large scale .. et depuis les SP ont continué à utiliser l’IS-IS et capitaliser un bon retour d’expérience, c’était dans ce sens que j’ai voulu utiliser le mot habitude ..
Quel routage Underlay pour ma Fabric Leaf & Spine ? (partie 1) – MHD Experts
avril 23, 2020[…] (level 1 ou 2) tandis qu’en OSPF (LSA) il est défini par aire, pour plus d’informations un article décrit ces deux protocoles dans notre […]
belaidi taoufik
mai 17, 2020Bonjour
-Y’a t’il dans OSPF un mécanisme similaire à l’utilisation du bit overload ?
-Pour l’ospf, y’a t’il un moyen d’installer rapidement une route backup (çàd une route pour laquelle une LSA existe dans la database) lorsque la route principale est perdue ? car des coupures de quelques secondes peuvent avoir des conséquences importante sur des types de traffic sensibles.
Hicham TAHRI
mai 17, 2020Bonjour,
– En OSPF il y a la fonctionnalité max-metric 65535 qui permet d’indiquer aux voisins OSPF de ne plus le privilégier en SPF Best Path
– Oui, il est possible par les mécanismes LFA (Loop Free Alternate) qui consiste à pré-cacluler une route de backup et ne l’activer qu’en cas de coupure. On fera prochainement un article sur ce sujet.
belaidi taoufik
mai 17, 2020Merci beaucoup pour le feed-back.