Le protocole de routage OSPF, normalisé dans
le est, à l'origine, très lié à
IPv4. Le déploiement
d'IPv6 nécessitait une adaptation d'OSPF et
c'est ainsi que la version 3 d'OSPF (le
décrivait la version 2) est sortie, baptisée « OSPF pour IPv6 ».
Le premier RFC sur cette nouvelle version d'OSPF était le que notre met à jour. Comme son
prédécesseur, ce RFC est écrit sous forme d'une liste de différences
avec OSPF v2 (la version pour IPv4) et il faut
donc lire également le si on veut tout
comprendre. Dur travail car la seule liste des différences fait 111
pages, mais il est vrai qu'OSPF n'est pas un protocole simple. En tout
cas, je présente ce RFC comme il est écrit, sans reprendre ce que
disait déjà le .
OSPF v3, la version pour IPv6, reprend les concepts habituels
d'OSPF, comme l'inondation des LSA, l'élection des routeurs sur
l'Ethernet, etc. Mais il n'est pas compatible avec OSPF v2, en raison
du changement de format des paquets (section 2.7). Un site « double-pile » (IPv4 et
IPv6) doit donc faire tourner les deux protocoles en parallèle
(certains sites ont préféré adopter IS-IS pour
n'avoir qu'un seul protocole).
Reprenant les concepts et le vocabulaire d'OSPF v2, le RFC a
parfois eu des problèmes avec certains concepts qui avaient des noms
différents entre IPv4 et IPv6. La section 1.2, de terminologie,
détaille ces pièges.
La section 2 résume le RFC, puisqu'elle explique les
différences entre OSPF v2 et OSPF v3. La plus grosse différence est le
fait que tout ce qui est spécifique des adresses IP a été retiré des
paquets généraux et mis dans des LSA spécifiques du protocole
considéré (section 2.2). OSPF v3 est ainsi plutôt « multi-protocole »
que purement IPv6 et il aurait pu être utilisé pour IPv4. Mais, en
pratique, cela n'a jamais été fait et OSPF v3 ne sert qu'à
IPv6. Peut-être les extensions à OSPFv3 qu'a finalement apporté le
, en avril 2010, décoinceront enfin les choses.
Ainsi, les paquets Hello d'OSPF v2 indiquaient
le masque de sous-réseau utilisé, ce qui n'est plus le cas en OSPF
v3. De même, les identificateurs comme le Router ID
ne sont plus des adresses, ce sont simplement des nombres de 32 bits,
qu'on écrit avec la syntaxe habituelle des adresses IPv4.
Parmi les autres différences, on peut noter qu'OSPF v3 travaille par lien réseau et plus par sous-réseau IP
(section 2.1), qu'on peut faire tourner plusieurs incarnations d'OSPF
sur le même lien, différenciées par leur Instance
ID (section 2.4) et que les voisins sont identifiés par une
adresses « locale au lien » (section 2.5) comme
fe80::207:cbff:fec3:8323 ce qui, à mon avis, ne
facilite pas le débogage (peu d'administrateurs réseaux connaissent
par cœur les adresses locales au lien de leurs routeurs).
L'authentification des routeurs voisins a
disparu du RFC (section 2.6), puisqu'on est censé désormais utiliser
IPsec (via le ). L'idée était
que tout le monde utiliserait IPsec, de toute façon, d'autant plus
qu'il était censé être obligatoirement intégré dans IPv6 ce qui, en
pratique, n'a pas été le cas. L'idée de se reposer entièrement sur
IPsec a été abandonnée avec la sortie du , qui prévoit un mécanisme d'authentification pour OPSFv3.
La section 3 décrit les différences entre l'ancien RFC, le et celui-ci. Normalement, anciennes et nouvelles
implémentations d'OSPF v3 interopèrent. Parmi les changements,
l'abandon de MOSPF (section 3.2), le service de
multicast (), jamais réellement utilisé. Ou bien l'abandon des
adresses IPv6 « locales au site » (section 3.7), suivant le .
La section 4 est ensuite consacrée aux « conseils aux
implémenteurs », c'est-à-dire tout ce qu'il faut savoir pour créer une
belle mise en œuvre d'OSPF v3. Elle détaille les changements
dans les structures de données que doit maintenir le routeur (section
4.1), le traitement des paquets (section 4.2), les nouveaux LSA (comme
le Link LSA de la section 4.4.3.8) et les
changements des anciens (section 4.4), etc.
La section 5 est consacrée à la sécurité. Elle revient sur
l'authentification des routeurs, qui doit désormais se faire avec
IPsec, comme détaillé dans le (idée abandonnée avec
le ). Elle note aussi que
l'authentification des routeurs ne suffit certainement pas à éliminer
tous les problèmes de sécurité du routage, comme le détaille le .
L'annexe A détaille le format des paquets, les B et C les
paramètres qui gouvernent le comportement d'OSPF.
Des exemples de configuration concrète d'un routeur OSPF v3 se
trouvent dans mon cours
OSPF. Par exemple, on peut voir les adjacences IPv6 sur un des routeurs :
# show ipv6 ospf6 neighbor
RouterID State/Duration DR BDR I/F[State]
192.134.7.241 Full/00:01:42 192.134.7.245 192.134.7.241 eth0[DR]
10.4.200.2 Full/00:00:01 0.0.0.0 0.0.0.0 eth1[DR]
où on note que les routeurs sont identifiés par un Router
ID, qui a la forme d'une adresse IPv4.