http://livre.g6.asso.fr/api.php?action=feedcontributions&user=Bernard+Tuy&feedformat=atom Livre IPv6 - User contributions [en] 2024-03-28T08:44:46Z User contributions MediaWiki 1.25.2 http://livre.g6.asso.fr/index.php?title=ISIS&diff=3597 ISIS 2008-05-20T15:28:55Z <p>Bernard Tuy: /* Le support d'IPv6 */</p> <hr /> <div>{{suivi| RIPng | RIPng | OSPFv3 | OSPFv3}}<br /> <br /> IS-IS (''Intermediate System to Intermediate System'') est un protocole de routage interne à état de lien. Il a été standardisé par l'ISO (ISO 10589). C'est un protocole de niveau 3 (contrairement à OSPF et RIP qui sont de niveau 4) qui s'appuie sur une couche 2 de type Ethernet 802.2. Cet élément mérite d'être signalé car cela rend ce protocole indépendant d'IP, que ce soit IPv4 ou IPv6. Ce protocole travaille sur deux niveaux de hiérarchie : les aires (niveau 1) et le backbone (niveau 2).<br /> <br /> Un routeur IS-IS peut être soit :<br /> <br /> * level-1 (routage intra aire),<br /> * level-2 (routage inter aire),<br /> * level-1-2 (routage intra et inter aire).<br /> <br /> Un routeur de niveau 1 n'a de voisins que dans son aire, alors qu'un routeur de niveau 2 peut avoir des voisins dans une autre aire. Il n'y a pas d'aire de backbone (contrairement à OSPF). Le backbone est constitué de la réunion de tous les routeurs de level-2. Sur un réseau de type LAN, il y a élection d'un routeur désigné (DIS) qui a la charge de produire les annonces.<br /> <br /> Afin de construire sa topologie, IS-IS utilise 3 types de messages:<br /> <br /> * les messages HELLO permettant de construire les adjacences;<br /> * les messages LSP (''Link State Protocol'') permettant d'échanger les informations sur l'état des liens;<br /> * les messages SNP (''Sequence Number Packet'') permettant de confirmer la topologie.<br /> <br /> Pour élaborer ces messages, IS-IS se base sur l'utilisation d'éléments d'informations indépendants appelés TLV (Type, Longueur, Valeur). Le message est ainsi constitué d'un en-tête suivi d'une liste de TLV. Chaque TLV véhicule une information propre, et est donc standardisée. L'exemple ci-dessous montre une TLV Protocoles Supportés faisant partie d'un message HELLO, informant les voisins des protocoles supportés par l'émetteur du paquet :<br /> <br /> &lt;tt&gt;0x81 0x02 0xCC 0x8E&lt;/tt&gt;<br /> <br /> Le premier octet donne le type de la TLV. Il s'agit ici du type &lt;tt&gt;0x81&lt;/tt&gt;, c'est-à-dire Protocoles supportés. Le second octet donne la longueur en octets de la TLV : ici les deux octets qui suivent. Les autres octets composent la valeur de la TLV. Ici nous avons deux octets indiquant des numéros de protocoles supportés (NLPID : ''Network Layer Protocol IDentifier''): &lt;tt&gt;0xCC&lt;/tt&gt; pour IPv4 et &lt;tt&gt;0x8E&lt;/tt&gt; pour IPv6.<br /> <br /> ==Le support d'IPv6==<br /> <br /> Les TLV permettent une évolution souple du protocole IS-IS. Cela s'est vérifié lorsque le support d'IPv4 a été ajouté (IS-IS est alors devenu integrated IS-IS ou i/IS-IS): en 1990, le (RFC 1195) a défini 6 nouvelles TLV afin de prendre en compte le routage d'IPv4.<br /> <br /> De même, deux nouvelles TLV ont été ajoutées pour le support d'IPv6 . Elles sont définies dans le draft IETF See [[Bibliographie#Hopps-if|[Hopps-id]]](début 2003), ainsi que le numéro de protocole NLPID propre à IPv6 : il vaut 142 (soit &lt;tt&gt;0x8E&lt;/tt&gt; en héxadécimal). C'est cette valeur que l'on voit dans l'exemple ci-dessus (exemple de TLV).<br /> <br /> La capture ci-dessous est celle d'un paquet IS-IS HELLO provenant d'un routeur qui annonce sa capacité à traiter les protocoles IP et IPv6 (dans la TLV vue précédemment) ainsi que l'adresse IPv6 d'une de ses interfaces (dans une TLV de type 232).<br /> <br /> Frame 12 (97 bytes on wire, 97 bytes captured)<br /> IEEE 802.3 Ethernet<br /> Logical-Link Control<br /> ISO 10589 ISIS InTRA Domain Routeing Information Exchange Protocol<br /> Intra Domain Routing Protocol Discriminator: ISIS (0x83)<br /> PDU Header Length : 27<br /> Version (==1) : 1<br /> System ID Length : 0<br /> PDU Type : L2 HELLO (R:000)<br /> Version2 (==1) : 1<br /> Reserved (==0) : 0<br /> Max.AREAs: (0==3) : 0<br /> ISIS HELLO<br /> Circuit type : Level 2 only, reserved(0x00 == 0)<br /> System-ID {Sender of PDU} : 1921.6815.0001<br /> Holding timer : 9<br /> PDU length : 80<br /> Priority : 64, reserved(0x00 == 0)<br /> System-ID {Designated IS} : 1921.6815.0001.04<br /> IS Neighbor(s) (6)<br /> Protocols Supported (2)<br /> NLPID(s): IP (0xcc), IPv6 (0x8e)<br /> IP Interface address(es) (4)<br /> IPv6 Interface address(es) (16)<br /> IPv6 interface address: fe80::290:69ff:febf:b03e<br /> Area address(es) (4)<br /> Restart Signaling (3)<br /> Multi Topology (4)<br /> <br /> 0000 01 80 c2 00 00 15 00 90 69 bf b0 3e 00 53 fe fe ........i..&gt;.S..<br /> 0010 03 83 1b 01 00 10 01 00 00 02 19 21 68 15 00 01 ...........!h...<br /> 0020 00 09 00 50 40 19 21 68 15 00 01 04 06 06 00 05 ...P@.!h........<br /> 0030 dd fb 20 06 81 02 cc 8e 84 04 c0 a8 0a 03 e8 10 .. .............<br /> 0040 fe 80 00 00 00 00 00 00 02 90 69 ff fe bf b0 3e ..........i....&gt;<br /> 0050 01 04 03 49 00 01 d3 03 00 00 00 e5 04 00 00 00 ...I............<br /> 0060 02 .<br /> <br /> Le routeur est double pile car il annonce le support de IPv4 et IPv6. Son identificateur (System-ID: &lt;tt&gt;1921.6815.0001.04&lt;/tt&gt;) est dérivé de son adresse de loopback IPv4 (&lt;tt&gt;192.168.150.001&lt;/tt&gt;), c'est une pratique courante. Dans le cas où un routeur ne serait que IPv6, il faudrait alors convenir d'une autre méthode pour attribuer l'identificateur de système au routeur IS-IS (l'adresse MAC par exemple).<br /> <br /> ==Le problème de la mono topologie==<br /> <br /> Soit le réseau représenté figure Exemple de multi-topologie. Le point important à remarquer ici est que le routeur R3 n'implémente que la pile IPv4, alors que les deux routeurs R2 et R4 sont double-pile.<br /> <br /> [[image:CS81.gif]]<br /> <br /> Ce paragraphe va démontrer que dans ce cas de configuration il est nécessaire d'implémenter la multi topologies IS-IS afin de prendre en compte la non congruence des deux topologies IPv4 et IPv6. Considérons dans un premier temps que IS-IS ne gère qu'une seule et donc unique topologie. Dans ce cas, les adjacences sont les suivantes:<br /> <br /> R2#'''sh clns nei'''<br /> System Id Interface SNPA State Holdtime Type Protocol<br /> R4 Gi2/0 0005.ddc8.0438 Up 25 L2 IS-IS<br /> R2#<br /> <br /> On remarque qu'il n'y a pas d'adjacence entre R2 et R3. La même commande passée sur R4 montrerait la même chose. Le routeur R3 se trouve donc isolé (au sens IS-IS). Dans cette même configuration, les routes apprises par R2 sont :<br /> <br /> R2#'''sh ip route isis'''<br /> 192.168.127.0/32 is subnetted, 2 subnets<br /> i L2 192.168.127.4 [115/50] via 192.168.24.2, GigabitEthernet2/0<br /> i L2 192.168.34.0/24 [115/60] via 192.168.24.2, GigabitEthernet2/0<br /> R2#'''sh ipv6 route isis'''<br /> Codes: I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea<br /> I2 2001:688:1F80:127::4/128 [115/50] via FE80::205:DDFF:FEC8:438, GigabitEthernet2/0<br /> R2#<br /> <br /> Pour atteindre la loopback IPv4 de R4, le chemin sélectionné est le chemin direct ayant un poids de 50 alors qu'un chemin plus léger existe en passant par R3. De plus les réseaux annoncés par R3 sont ignorés (on ne voit pas son adresse de loopback). La solution pour contrer ce problème est l'utilisation des TLV multi-topologies.<br /> <br /> ==Le support de la multi topologies (MT)==<br /> <br /> Comme cela a été fait pour IP puis IPv6, le support de la multi topologies s'est fait par l'ajout de quatre nouvelles TLV. Elles sont définies dans le draft IETF [Prz-id]. Les principes sont les suivants :<br /> <br /> * adjacences : une nouvelle TLV annonce toutes les topologies auxquelles appartiennent chaque interface (TLV 229);<br /> * chaque topologie gère son propre espace d'adressage grâce à des TLVs spécifiques (type 235 et 237);<br /> * chaque topologie exécute un algorithme de plus court chemin et les résultats sont collectés dans des RIB séparées.<br /> <br /> La capture ci-dessous est celle d'un paquet IS-IS LSP contenant des TLV multi-topologies :<br /> <br /> Frame 11 (193 bytes on wire, 193 bytes captured)<br /> IEEE 802.3 Ethernet<br /> Logical-Link Control<br /> ISO 10589 ISIS InTRA Domain Routeing Information Exchange Protocol<br /> Intra Domain Routing Protocol Discriminator: ISIS (0x83)<br /> PDU Header Length : 27<br /> Version (==1) : 1<br /> System ID Length : 0<br /> PDU Type : L2 LSP (R:000)<br /> Version2 (==1) : 1<br /> Reserved (==0) : 0<br /> Max.AREAs: (0==3) : 0<br /> ISO 10589 ISIS Link State Protocol Data Unit<br /> PDU length: 176<br /> Remaining Lifetime: 1197s<br /> LSP-ID: 1921.6810.0001.00-00<br /> Sequence number: 0x0000006d<br /> Checksum: 0xf054 (correct)<br /> Type block(0x03): Partition Repair:0, Attached bits:0, Overload bit:0, IS type:3<br /> Area address(es) (4)<br /> Multi Topology (4)<br /> IPv4 unicast Topology (0x000), no sub-TLVs present<br /> IPv6 unicast Topology (0x002), no sub-TLVs present<br /> Protocols supported (2)<br /> Hostname (2)<br /> IP Interface address(es) (4)<br /> IPv6 Interface address(es) (16)<br /> Extended IS reachability (11)<br /> Multi Topology IS Reachability (13)<br /> 4 most significant bits reserved, should be set to 0 (0)<br /> IPv6 routing topology (2)<br /> IS neighbor: 1921.6815.0001.03<br /> Extended IP Reachability (29)<br /> Multi Topology Reachable IPv6 Prefixes (44)<br /> 4 most significant bits reserved, should be set to 0 (0)<br /> IPv6 routing topology (2)<br /> IPv6 prefix: 2001:688:3::/64, Metric: 10, Distribution: up, internal, no sub-TLVs present<br /> IPv6 prefix: 2001:688:20::/64, Metric: 10, Distribution: up, internal, no sub-TLVs present<br /> IPv6 prefix: 2001:688:100::/64, Metric: 0, Distribution: up, internal, no sub-TLVs present <br /> <br /> En reprenant l'exemple précédent, auquel est ajoutée la prise en compte de la multi topologies, les résultats suivants sont obtenus :<br /> <br /> R2#'''sh isis topo'''<br /> IS-IS IP paths to level-2 routers<br /> System Id Metric Next-Hop Interface SNPA<br /> R2 --<br /> R3 10 R3 Fa4/0 000c.ce66.6e01<br /> R4 20 R3 Fa4/0 000c.ce66.6e01<br /> R2#<br /> R2#sh isis ipv6 topo<br /> IS-IS IPv6 paths to level-2 routers<br /> System Id Metric Next-Hop Interface SNPA<br /> R2 --<br /> R3 **<br /> R4 50 R4 Gi2/0 0005.ddc8.0438<br /> R2#<br /> <br /> Les deux topologies IPv4 et IPv6 sont différentes. Depuis R2, R3 est le next-hop pour la topologie IPv4, alors que c'est R4 pour la topologie IPv6. Un extrait de la base de donnée topologique sur R2 montre que les TLV multi topologies sont mises en oeuvre :<br /> <br /> R1#'''sh isis data det'''<br /> IS-IS Level-2 Link State Database:<br /> LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL<br /> R4.00-00 0x00000011 0x53A2 891 0/0/0<br /> Area Address: 49.0001<br /> Topology: IPv4 (0x0) IPv6 (0x2)<br /> NLPID: 0xCC 0x8E<br /> Hostname: R4<br /> IP Address: 192.168.24.2<br /> IPv6 Address: 2001:688:1F80:24::2<br /> Metric: 10 IS-Extended R3.01<br /> Metric: 50 IS-Extended R2.02<br /> Metric: 50 IS (MT-IPv6) R2.02<br /> Metric: 0 IP 192.168.127.4/32<br /> Metric: 50 IP 192.168.24.0/24<br /> Metric: 10 IP 192.168.34.0/24<br /> Metric: 50 IPv6 (MT-IPv6) 2001:688:1F80:24::/64<br /> Metric: 0 IPv6 (MT-IPv6) 2001:688:1F80:127::4/128<br /> R2#<br /> <br /> Les commandes traceroute suivantes sont intéressantes car elles montrent que les chemins IPv4 et IPv6 pour la même destination sont différents :<br /> <br /> R2#'''traceroute 192.168.127.4'''<br /> [...]<br /> 1 192.168.23.2 0 msec 0 msec 0 msec<br /> 2 192.168.34.2 4 msec * 0 msec<br /> R2#<br /> R2#'''traceroute 2001:688:1F80:127::4'''<br /> [...]<br /> 1 2001:688:1F80:24::2 4 msec 0 msec 0 msec<br /> R2#<br /> <br /> De même, l'apprentissage des routes IPv4 et IPv6 montre que l'utilisation de la MT permet de différencier les routes IPv4 des routes IPv6 (on remarquera la métrique de 20 pour l'adresse de loopback IPv4 de R4, alors qu'elle vaut 50 pour l'adresse IPv6):<br /> <br /> R2#'''sh ip route isis'''<br /> 192.168.127.0/32 is subnetted, 3 subnets<br /> i L2 192.168.127.4 [115/20] via 192.168.23.2, FastEthernet4/0<br /> i L2 192.168.127.3 [115/10] via 192.168.23.2, FastEthernet4/0<br /> i L2 192.168.34.0/24 [115/20] via 192.168.23.2, FastEthernet4/0<br /> R2#<br /> <br /> R2#'''sh ipv6 route isis'''<br /> IPv6 Routing Table - 8 entries<br /> Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP<br /> U - Per-user Static route<br /> I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea<br /> O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2<br /> I2 2001:688:1F80:127::4/128 [115/50]<br /> via FE80::205:DDFF:FEC8:438, GigabitEthernet2/0<br /> R2#<br /> <br /> {{suivi| RIPng | RIPng | OSPFv3 | OSPFv3}}</div> Bernard Tuy http://livre.g6.asso.fr/index.php?title=User:Laurent_Toutain&diff=2305 User:Laurent Toutain 2005-12-16T14:34:18Z <p>Bernard Tuy: </p> <hr /> <div>http://www.rennes.enst-bretagne.fr/~toutain</div> Bernard Tuy http://livre.g6.asso.fr/index.php?title=Talk:Main_Page&diff=1416 Talk:Main Page 2005-11-16T14:30:09Z <p>Bernard Tuy: </p> <hr /> <div>je propose de faire un lien sur le site d'O'Reilly pour commander notre bouquin ... ?<br /> <br /> +BT.</div> Bernard Tuy http://livre.g6.asso.fr/index.php?title=Talk:Lien-local&diff=1415 Talk:Lien-local 2005-11-16T14:22:17Z <p>Bernard Tuy: </p> <hr /> <div>je n'aime pas le schéma ... illisible en partie (même si je suis censé savoir ce qu'est un adresse link local)<br /> <br /> A+ <br /> <br /> +BT.</div> Bernard Tuy