Integrated IS-IS

Ce document a pour but de présenter succintement le protocole de routage IS-IS.

1. Généralités

IS-IS est un protocole de routage à état de liens tout comme OSPF. Il se base lui aussi
sur l’algorithme SPF de Dijktra. De plus, IS-IS est basé sur le standard ISO 10589.
La distance administrative est 115. La métrique utilisée est de type ‘path cost’ (coût du chemin) comme en OSPF.
La métrique est comprise entre 0 et 63. Celle-ci est par défaut de 10 par interface. Cette métrique change
uniquement de manière manuelle, elle n’est pas fonction de la bande passante (OSPF), délai, BW (EIGRP)…
IS-IS maintient trois tables différentes :

  • Table des ses voisins
  • Table contenant la topologie IS-IS
  • Table de routage RIB

La découverte des voisins est faite au moyens des PDU Hello et la relation de voisinage est elle aussi
maintenu grâce à ces paquets. Les PDU Hello sont envoyés tous les 3,3s (=> convergence rapide).

Une des particularités d’IS-IS est d’être indépendant d’IP au niveau 3. En effet, IS-IS
possède son propre protocole de niveau 3. IS-IS est l’implémentation d’un protocole de niveau de l’OSI.
Tout comme IP est le procole de niveau 3 pour le modèle TCP/IP, IS-IS est le protocole de niveau 3 pour l’OSI.
Integrated IS-IS est l’implémentation d’IS-IS supportant IPv4.
Une des autres particularités et qui découle de
la première est la complexité de l’adressage (plus hiérarchique et complet qu’IP). Une autre
particularité d’IS-IS est de se baser sur le motif TLV pour décrire les données.

TLV pour :

  • T : Type
  • L : Length
  • V : Value

L’utilité d’utiliser un découpage des données en TLV est la flexibilité accrue du protocole. En effet,
il n’est pas extrêmement difficile de supporter IPv6 avec IS-IS, alors qu’OSPF a nécessité une reconstruction
pour supporter v6.

2. Types de système

IS-IS définit les noeuds en deux catégories:

  • ES: End System (machines hôtes, serveurs, ..)
  • IS: Intermediate System (routeurs)

On parle donc de communications ES-IS pour un dialogue entre un hôte et un routeur.
Et IS-IS signifie un dialogue inter-routeur.

=> IS-IS est donc bien un protocole de routage inter-routeur 🙂

3. Types de routeurs

Il existe différents types de communications, elles sont décrites de la manière suivante :

  • L0 : ES-IS ;
  • L1 : IS-IS (dans la même aire) ;
  • L2 : IS-IS (dans des aires différentes) ;
  • L3 : Domaine de routage différent (RIP, OSPF, BGP, …).

Par voie de conséquence, il existe donc différent type de routeur:

  • L1: Routeur faisant partie d’une aire uniquement, possède une base de données de type L1 et maintient
    des relations de voisinage avec les routeurs de types L1. De plus, on peut concevoir les routeurs de types L1 comme les routeurs à l’intérieur d’une aire OSPF de type totally stubby. La route par défaut vers les autres aires est vers le routeur L1/L2 le plus proche (path cost == metric) ;
  • L2: Routeur de type backbone (ne connaît que des résumé de routes des aires non-backbone) ;
  • L1/L2 : Routeur possédant deux LSDB: une de type L1, une de type L2.
    • Maintient une LSDB pour la topologie avec les routeurs de type L1 (de son aire) ;
    • Maintient des relations de voisinage avec les routeurs de type L1 ;
    • Maintient une LSDB pour la topologie avec les routeurs de type L2 (backbone) ;
    • Maintient des relations de voisinage avec les routeurs de type L2 ;

Le backbone IS-IS se définit comme les connexions entre les routeurs de type L1/L2 et les routeurs
de type L2. Ceci implique plus de fléxibilité dans la conception du backbone que ne peut l’être OSPF avec la
règle impliquant que toutes les aires doivent être connectées à l’aire backbone et sa conception hiérarchique.

4. Conception réseau

La conception réseau avec IS-IS ne se conçoit pas de la même manière qu’avec OSPF.
Néanmoins, IS-IS s’appuie lui aussi sur le concept d’aire de routage. Un routeur dans une aire
de type L1 et de type L1 n’a conscience que de ses condisciples dans l’aire. Il demande/route les
PDU à son routeur de L1/L2 pour joindre des routeurs dans des aires différentes (un peu comme
les totally stub area en OSPF)
Cela est dû simplement au fait qu’une adresse IS-IS n’est pas portée par une interface, mais pas un routeur.
Cela implique donc qu’il n’y a pas d’ABR au sens propre du terme en IS-IS. Il n’y a pas de routeur avec des interfaces
dans deux aires différentes.
De plus, il n’existe pas de nécessité comme en OSPF d’avoir les aires connectées à une aire centrale (backbone).
Le backbone est constitué de routeurs faisant parti d’un certain type (L1/L2).

5. Terminologie OSI

IS-IS est basé sur OSI. En IS-IS, on ne parle pas de paquets, ni de couche réseau, …

TCP/IP IS-IS (OSI)
Paquet PDU (Protocol Data Unit)
Network link Layer packet Network PDU

Datalink layer frame Datalink PDU

6. Les différents types de paquets

  • Hello :
    • Hello de type L1
    • Hello de type L2

    De plus, les hello sont de type différents suivant les machines auxquelles on s’adresse :

    • ESH : Hello d’un hôte vers un routeur (permet de décrouvrir son routeur le plus proche (~~~~~DHCP~~~~) ;
    • ISH : Hello d’un routeur vers un hôte ;
    • IIH : Hello d’un routeur vers un autre routeur.
  • LSP Packet : Link State Packet : grossièrement similaire un LSA en OSPF ;
    • Annonce un réseau ;
  • PNSP : Partial Number Sequence Packet :
    • Acknoledge un LSP ;
    • Faire une requête d’un LSP
  • CNSP : Complete Number Sequence Packet : Grossièrement similaire au DBD en OSPF ;
    • Résumé des LSP contenu dans la LSDB d’IS-IS :
      Par exemple : Je connais l’ensemble des LSP de 0 à 315

7. Adresse IS-IS

C’est une des choses les plus difficile à appréhender en venant du monde TCP/IP.
La première chose à retenir est qu’une adresse OSI est nommée NSAP et que celle-ci est portée
par un routeur et pas par une interface.
Voyons maintenant plus en détail les adresses NSAP :

  • IDP : Inter Domain Part => Sélection du domaine de routage IS-IS
    • AFI : Address Family Identifier
    • IDI : Initial Domain Identifier
  • DSP : Domain Specific Part => Sélection de l’hôte
    • High Order DSP : L’aire dans le système autonome.
    • System ID : Mon identifiant dans l’aire
    • NSEL :
      • 0x00 : routeur
      • != 0x00 : Autre

Néanmoins, il faut mémoriser que l’adresse se décompose en trois parties :

  • Area ID
  • System ID
  • NSEL

Typiquement une adresse NSAP serait :

         49.0003.0000.0000.000A.00

Avec :

  • Aead ID : 49.0003 (49 signifie: adresse privée comme la RFC1918 en IP) et 0003 le numéro de l’aire ;
  • System ID : 0000.0000.000A => Adresse du système (à choisir ou une adresse MAC(6 octets)) ;
  • NSEL : 00 => Routeur.

De plus, une adresse NSAP dont le NSEL est à 0x00 s’appelle aussi une adresse NET. Les adresses OSI est
plus communément appelée adresse NET. C’est ainsi que vous la trouverez dénommée dans la configuration
du processus IS-IS sur un routeur Cisco.

Néanmoins, il faut faire attention car une adresse NSAP a une longueur qui peut varier entre 8 et 20 octets.
Par conséquent, il est important de garder en tête qu’il est important de lire une adresse IS-IS de droite à gauche.
En effet, on sait que NSEL (1 octets) et System ID fait 6 octets. La partie variable se situe souvent sur la partie IDP.On déduit donc en lisant de droite à gauche les partie, alors que le contraire ne serait pas vrai.
On peut donc en déduire trois règles :

  • Lire l’adresse de droite à gauche pour déduire l’Area ID ;
  • System ID : 6 octets ;
  • NSEL = 0x00 => Routeur.

De plus, il est à noter que IS-IS est flexible dû à l’utilisation des motifs TLV (Type/Length/Value) (et son
embriquement). En effet, il est possible de changer/modifier facilement les paquets et donc les protocoles supportés
grâce à ce motif. IPv6 a été facilement supporté par IS-IS, contrairement à OSPF qui a nécessité une ré-écriture
et donc la venue d’OSPFv3.

Paquet LSP illustrant le motif TLV:



Chacune des sous informations d’un groupe TLV est lui-même inclut dans un motif TLV.
Par exemple, il y a un motif TLV qui décrit les voisins, et bien chaque voisin est décrit par un motif TLV.

8. Types de réseau

IS-IS supportent deux types de réseaux :

  • Broadcast (Ethernet par exemple)
  • Point à point (LS)

IS-IS peut être utilisé sur des réseau dits NBMA (Non Broadcast Multiple Access), néanmoins il est fortement
recommandé d’utilisé les sous-interfaces point à point.

Sur les réseaux de types ‘Broadcast’, un DIS (Designated Intermediate IS ou Designated IS) est élu afin de réduire
le nombre d’adjacences à former et un surplus de bande passante, CPU et mémoire utilisés.
Il n’y pas de de backup DIS comme peut le faire OSPF avec son BDR.
Le but du DIS est de :

  • Crééer et maintenir les adjacences avec ses petits copains ;
  • Crééer et mettre à jour le pseudo-noeud (noeuud du réseau qui annonce en multicast les mises à jours réseaux aux routeurs L1 et L2 ;
  • Envoit les LSP sur le LAN ;

Les critère pour former une adjacence sont les suivantes :

  • Même type de niveau (L1, L2, L1/L2) ;
  • MTU ;
  • Pour se connecter à une autre aire, cela nécessite au moins un routeur de type L1/L2 ;
  • System ID unique dans l’aire ;
  • Si niveau 1: les routeurs doivent se trouver dans la même aire ;
  • Authentification OK ;
  • Hello et Holdown timer doivent être les mêmes.

9. Formation de la RIB et processus de transmission des PDU

9.1 Formation de la RIB

  • Chaque routeur trouve le meilleur chemin vers ses voisins dans l’aire au moyen de SPF (best path cost) ;
  • Les routeurs L1/L2 disposent d’une LSDB différentes par aires, donc des calculs de routes par SPF différents ;
  • Les meilleurs chemins sont ajoutés à la table de routage OSI ;
  • Un second algorithme est alors mis en place (PRC: Partial Routing Calculate) afin d’établir à partir de la
    table de routage OSI, la table de routage IP ;
  • Les meilleurs chemins calculés par PRC sont ajoutés à la RIB
  1. SPF est calculé en cas de changement d’un voisin ;
  2. PRC est calculé en cas de perte d’une route ;

Afin de syncroniser la LSDB, les routeurs utilisent des PDU de types différents (énoncés ci-dessus)
afin d’arriver à leur fin :

  • CNSP : Résumé des LSP disponibles dans la LSDB (J’ai les LSP de 0 .. 47)
  • PSNP : Demande d’un LSP (Hey, mais j’ai pas le LSP n°9, donne le moi !
  • LSP : le LSP (information IS-IS sur un type donné) (Tiens voilà l’information)
  • PSNP : Acknoledge de reception d’un LSP

9.2 Processus de transmission

IS-IS regarde la destination d’un PDU si :

  • != aire => routage basé sur l’aire
  • même aire => routage basé sur le System ID

Si je suis un routeur de type L1 (je ne sais rien des autres aires) :

  • inter-aire : envoyé au routeur L1/L2 le plus proche ;
  • intra-aire : routage basé sur la L1 LSDB ;

Si je suis un routeur de type L1/L2 :

  • inter-aire : routage basé sur la L2 LSDB ;
  • intra-aire : routage basé sur la L1 LSDB ;

10. IS-IS par la pratique

Avec la topologie vue ci-dessus, on a les configurations suivantes :

Et la table de routage de R1 est :

R1# sh ip route
Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 2 subnets
 i L1    172.16.1.0 [115/20] via 192.168.1.2, FastEthernet1/0
 i L1    172.16.2.0 [115/20] via 192.168.1.2, FastEthernet1/0
     10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
 i L2    10.2.2.0/30 [115/20] via 10.1.1.1, FastEthernet1/1
 C       10.1.1.0/30 is directly connected, FastEthernet1/1
 i L2    10.0.0.0/24 [115/40] via 10.1.1.1, FastEthernet1/1
 i L2    10.0.1.0/24 [115/40] via 10.1.1.1, FastEthernet1/1
 C    192.168.1.0/24 is directly connected, FastEthernet1/0
 i L2 192.168.2.0/24 [115/30] via 10.1.1.1, FastEthernet1/1

Et sur R3 :

R3#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 192.168.1.1 to network 0.0.0.0

	172.16.0.0/24 is subnetted, 2 subnets
C       172.16.1.0 is directly connected, Loopback0
C       172.16.2.0 is directly connected, Loopback1
C    192.168.1.0/24 is directly connected, FastEthernet1/0
i*L1 0.0.0.0/0 [115/10] via 192.168.1.1, FastEthernet1/0

R3 est un routeur de type L1: On voit bien qu’il apprend sa route par défaut par le routeur R1 de type L1/L2.

Faisons un résumé de route. Celui-ci ce fait sur le routeur L1/L2 en sortie de l’aire 49.0002 :

R1(config)#rout
R1(config)#router isis
R1(config)#router isis
R1(config-router)#sum
R1(config-router)#summary-address 172.16.0.0 255.255.0.0
R1(config-router)#^Z
R1#wr
Building configuration...
[OK]
R1#
*Mar  3 15:49:15.987: %SYS-5-CONFIG_I: Configured from console by console
R1#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 not set
     172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
i su    172.16.0.0/16 [115/20] via 0.0.0.0, Null0
i L1    172.16.1.0/24 [115/23] via 192.168.1.2, FastEthernet1/0
i L1    172.16.2.0/24 [115/20] via 192.168.1.2, FastEthernet1/0
     10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
i L2    10.2.2.0/30 [115/20] via 10.1.1.1, FastEthernet1/1
C       10.1.1.0/30 is directly connected, FastEthernet1/1
i L2    10.0.0.0/24 [115/40] via 10.1.1.1, FastEthernet1/1
i L2    10.0.1.0/24 [115/40] via 10.1.1.1, FastEthernet1/1
C    192.168.1.0/24 is directly connected, FastEthernet1/0
i L2 192.168.2.0/24 [115/30] via 10.1.1.1, FastEthernet1/1

Et donc sur R2 on récupère :

R2#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 not set

i L2 172.16.0.0/16 [115/40] via 10.2.2.1, FastEthernet1/0
    10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C       10.2.2.0/30 is directly connected, FastEthernet1/0
i L2    10.1.1.0/30 [115/20] via 10.2.2.1, FastEthernet1/0
i L1    10.0.0.0/24 [115/20] via 192.168.2.2, FastEthernet1/1
i L1    10.0.1.0/24 [115/20] via 192.168.2.2, FastEthernet1/1
i L2 192.168.1.0/24 [115/30] via 10.2.2.1, FastEthernet1/0
C    192.168.2.0/24 is directly connected, FastEthernet1/1
Voyons maintenant comment on change une metrique :
R1#sh ip route 172.16.0.0
Routing entry for 172.16.0.0/24, 2 known subnets
  Redistributing via isis

i L1    172.16.1.0 [115/20] via 192.168.1.2, FastEthernet1/0
i L1    172.16.2.0 [115/20] via 192.168.1.2, FastEthernet1/0
R1#

Donc sur R3 :

R3(config)#int lo 0
R3(config-if)#isis me
R3(config-if)#isis metr
R3(config-if)#isis metric ?
  <1-16777214>  Default metric
  maximum       Maximum metric. All routers will exclude this link from their SPF

R3(config-if)#isis metric 13
R3(config-if)#

Maintenant on a :

R1#sh ip route 172.16.0.0
Routing entry for 172.16.0.0/24, 2 known subnets
  Redistributing via isis

i L1    172.16.1.0 [115/23] via 192.168.1.2, FastEthernet1/0
i L1    172.16.2.0 [115/20] via 192.168.1.2, FastEthernet1/0
R1#

Finalement, voyons comment est la table de routage sur le routeur R0 qui est lui de type L2 (donc totalement backbone):

R0>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 not set

i L2 172.16.0.0/16 [115/30] via 10.1.1.2, FastEthernet1/0
    10.0.0.0/8 is variably subnetted, 5 subnets, 3 masks
C       10.2.2.0/30 is directly connected, FastEthernet1/1
C       10.1.1.0/30 is directly connected, FastEthernet1/0
i L2    10.0.0.0/24 [115/30] via 10.2.2.2, FastEthernet1/1
i L2    10.0.1.0/24 [115/30] via 10.2.2.2, FastEthernet1/1
C       10.0.0.1/32 is directly connected, Loopback0
i L2 192.168.1.0/24 [115/20] via 10.1.1.2, FastEthernet1/0
i L2 192.168.2.0/24 [115/20] via 10.2.2.2, FastEthernet1/1
R0>

Bon, je vous laisse mettre en oeuvre cette topologie par vous même. La topologie est ici.

IS-IS

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.