Appendix D. Authentication
C. Constantes configurables (Configurable Constants)
Le protocole OSPF possède un assez grand nombre de paramètres configurables. Ces paramètres sont listés ci-dessous. Ils sont regroupés par catégories fonctionnelles générales (paramètres de zone, paramètres d'interface, etc.). Des valeurs d'exemple sont données pour certains paramètres.
Certains paramètres doivent être cohérents entre des groupes de routeurs. Par exemple, tous les routeurs d'une zone doivent se mettre d'accord sur les paramètres de cette zone, et tous les routeurs attachés à un réseau doivent se mettre d'accord sur le numéro de réseau IP et le masque de ce réseau.
Certains paramètres peuvent être déterminés par des algorithmes de routeur extérieurs à cette spécification (par exemple, l'adresse d'un hôte connecté au routeur via une ligne SLIP). Du point de vue d'OSPF, ces éléments restent configurables.
C.1 Paramètres globaux (Global parameters)
En général, une copie distincte du protocole OSPF est exécutée pour chaque zone. Pour cette raison, la plupart des paramètres de configuration sont définis par zone. Les quelques paramètres de configuration globaux sont listés ci-dessous.
Router ID
Un nombre de 32 bits qui identifie de manière unique le routeur dans le système autonome (Autonomous System). Un algorithme d'attribution du Router ID consiste à choisir la plus grande ou la plus petite adresse IP assignée au routeur. Si le Router ID OSPF d'un routeur est modifié, le logiciel OSPF du routeur doit être redémarré avant que le nouveau Router ID ne prenne effet. Avant de redémarrer afin de modifier son Router ID, le routeur doit vider (flush) ses LSA auto-émis du domaine de routage (voir la section 14.1), sinon ils persisteront jusqu'à MaxAge minutes.
RFC1583Compatibility
Contrôle les règles de préférence utilisées dans la section 16.4 lors du choix entre plusieurs AS-external-LSAs annonçant la même destination. Lorsqu'il est fixé à « enabled », les règles de préférence restent celles spécifiées par la RFC 1583 ([Ref9]). Lorsqu'il est fixé à « disabled », les règles de préférence sont celles énoncées dans la section 16.4.1, qui empêchent les boucles de routage lorsque des AS-external-LSAs pour la même destination ont été émis à partir de zones différentes. Fixé à « enabled » par défaut.
Afin de minimiser les risques de boucles de routage, tous les routeurs OSPF d'un domaine de routage OSPF doivent avoir RFC1583Compatibility défini de manière identique. Lorsque des routeurs non mis à jour avec la fonctionnalité spécifiée dans la section 16.4.1 de ce mémo sont présents, tous les routeurs doivent avoir RFC1583Compatibility fixé à « enabled ». Sinon, tous les routeurs doivent avoir RFC1583Compatibility fixé à « disabled », empêchant ainsi toutes les boucles de routage.
C.2 Paramètres de zone (Area parameters)
Tous les routeurs appartenant à une zone doivent se mettre d'accord sur la configuration de cette zone. Un désaccord entre deux routeurs empêchera la formation d'adjacences entre eux, entravant ainsi le flux du protocole de routage et du trafic de données. Les éléments suivants doivent être configurés pour une zone :
Area ID
Un nombre de 32 bits qui identifie la zone. L'Area ID 0.0.0.0 est réservé au backbone. Si la zone représente un réseau sous-réseauté, le numéro de réseau IP du réseau sous-réseauté peut être utilisé comme Area ID.
Liste de plages d'adresses (List of address ranges)
Une zone OSPF est définie comme une liste de plages d'adresses. Chaque plage d'adresses se compose des éléments suivants :
[Adresse IP, masque]
Décrit la collection d'adresses IP contenues dans la plage d'adresses. Les réseaux et les hôtes sont assignés à une zone selon que leurs adresses entrent dans l'une des plages d'adresses définissant la zone. Les routeurs sont considérés comme appartenant à plusieurs zones, selon l'appartenance à une zone de leurs réseaux attachés.
Status Fixé soit à Advertise soit à DoNotAdvertise. Les informations de routage sont condensées aux frontières de zone. À l'extérieur de la zone, au plus une seule route est annoncée (via un summary-LSA) pour chaque plage d'adresses. La route est annoncée si et seulement si le Status de la plage d'adresses est fixé à Advertise. Les plages non annoncées permettent de cacher intentionnellement l'existence de certains réseaux aux autres zones. Status est fixé à Advertise par défaut.
Par exemple, supposons qu'un réseau IP sous-réseauté constitue sa propre zone OSPF. La zone serait configurée comme une seule plage d'adresses, dont l'adresse IP est l'adresse du réseau sous-réseauté et dont le masque est le masque d'adresse de classe A, B ou C naturel. Une seule route serait annoncée à l'extérieur de la zone, décrivant l'ensemble du réseau sous-réseauté.
ExternalRoutingCapability
Indique si les AS-external-LSAs seront inondés dans/à travers la zone. Si les AS-external-LSAs sont exclus de la zone, la zone est appelée « stub ». À l'intérieur des stub areas, le routage vers les destinations externes sera basé uniquement sur une route de résumé par défaut. Le backbone ne peut pas être configuré comme stub area. De plus, les liens virtuels ne peuvent pas être configurés à travers des stub areas. Pour plus d'informations, voir la section 3.6.
StubDefaultCost
Si la zone a été configurée comme stub area et que le routeur lui-même est un routeur de frontière de zone, alors le StubDefaultCost indique le coût du summary-LSA par défaut que le routeur doit annoncer dans la zone.
C.3 Paramètres d'interface de routeur (Router interface parameters)
Certains paramètres d'interface de routeur configurables (tels que l'adresse d'interface IP et le masque de sous-réseau) impliquent en fait des propriétés des réseaux attachés, et doivent donc être cohérents entre tous les routeurs attachés à ce réseau. Les paramètres qui doivent être configurés pour une interface de routeur sont :
Adresse d'interface IP (IP interface address)
L'adresse de protocole IP pour cette interface. Elle identifie de manière unique le routeur sur tout l'internet. Une adresse IP n'est pas requise sur les réseaux point-à-point. Un tel réseau point-à-point est appelé « sans numéro » (unnumbered).
Masque d'interface IP (IP interface mask)
Aussi appelé masque de sous-réseau/réseau, il indique la partie de l'adresse d'interface IP qui identifie le réseau attaché. En masquant l'adresse d'interface IP avec le masque d'interface IP, on obtient le numéro de réseau IP du réseau attaché. Sur les réseaux point-à-point et les liens virtuels, le masque d'interface IP n'est pas défini. Sur ces réseaux, le lien lui-même n'est pas assigné à un numéro de réseau IP, et les adresses de chaque côté du lien sont assignées indépendamment, si elles le sont du tout.
Area ID
La zone OSPF à laquelle appartient le réseau attaché.
Coût de sortie d'interface (Interface output cost)
Le coût d'envoi d'un paquet sur l'interface, exprimé dans la métrique link-state. Il est annoncé comme le coût de lien pour cette interface dans le router-LSA du routeur. Le coût de sortie d'interface doit toujours être supérieur à 0.
RxmtInterval
Le nombre de secondes entre les retransmissions de LSA, pour les adjacences appartenant à cette interface. Également utilisé lors de la retransmission des paquets Database Description et Link State Request. Cela devrait être bien supérieur au délai aller-retour attendu entre deux routeurs sur le réseau attaché. Le réglage de cette valeur doit être conservateur, sinon des retransmissions inutiles en résulteront. Valeur d'exemple pour un réseau local : 5 secondes.
InfTransDelay
Le nombre estimé de secondes nécessaires pour transmettre un paquet Link State Update sur cette interface. Les LSA contenues dans le paquet de mise à jour doivent avoir leur âge incrémenté de ce montant avant la transmission. Cette valeur doit prendre en compte les délais de transmission et de propagation de l'interface. Elle doit être supérieure à 0. Valeur d'exemple pour un réseau local : 1 seconde.
Priorité de routeur (Router Priority)
Un entier non signé de 8 bits. Lorsque deux routeurs attachés à un réseau tentent tous deux de devenir Designated Router, celui ayant la Priorité de Routeur la plus élevée prend la préséance. En cas d'égalité, le routeur ayant le Router ID le plus élevé prend la préséance. Un routeur dont la Priorité de Routeur est fixée à 0 n'est pas éligible pour devenir Designated Router sur le réseau attaché. La Priorité de Routeur n'est configurée que pour les interfaces vers les réseaux broadcast et NBMA.
HelloInterval
La durée, en secondes, entre les paquets Hello que le routeur envoie sur l'interface. Cette valeur est annoncée dans les paquets Hello du routeur. Elle doit être la même pour tous les routeurs attachés à un réseau commun. Plus le HelloInterval est petit, plus les changements topologiques sont détectés rapidement ; cependant, davantage de trafic de protocole de routage OSPF s'ensuit. Valeur d'exemple pour un réseau X.25 PDN : 30 secondes. Valeur d'exemple pour un réseau local : 10 secondes.
RouterDeadInterval
Après avoir cessé d'entendre les paquets Hello d'un routeur, le nombre de secondes avant que ses voisins ne déclarent le routeur hors service (down). Cela est également annoncé dans les paquets Hello du routeur dans leur champ RouterDeadInterval. Cela devrait être un multiple du HelloInterval (disons 4). Cette valeur doit là encore être la même pour tous les routeurs attachés à un réseau commun.
AuType
Identifie la procédure d'authentification à utiliser sur le réseau attaché. Cette valeur doit être la même pour tous les routeurs attachés au réseau. Voir l'appendice D pour une discussion des types d'authentification définis.
Clé d'authentification (Authentication key)
Ces données configurées permettent à la procédure d'authentification de vérifier les paquets de protocole OSPF reçus sur l'interface. Par exemple, si le AuType indique un mot de passe simple, la clé d'authentification serait un mot de passe clair de 64 bits. Les clés d'authentification associées aux autres types d'authentification OSPF sont discutées dans l'appendice D.
C.4 Paramètres de lien virtuel (Virtual link parameters)
Les liens virtuels sont utilisés pour restaurer/augmenter la connectivité du backbone. Les liens virtuels peuvent être configurés entre toute paire de routeurs de frontière de zone ayant des interfaces vers une zone commune (non-backbone). Le lien virtuel apparaît comme un lien point-à-point sans numéro dans le graphe du backbone. Le lien virtuel doit être configuré dans les deux routeurs de frontière de zone.
Un lien virtuel apparaît dans les router-LSAs (pour le backbone) comme s'il s'agissait d'une interface de routeur distincte vers le backbone. En tant que tel, il possède tous les paramètres associés à une interface de routeur (voir la section C.3). Bien qu'un lien virtuel agisse comme un lien point-à-point sans numéro, il possède une adresse d'interface IP associée. Cette adresse est utilisée comme source IP dans les paquets de protocole OSPF qu'il envoie le long du lien virtuel, et est définie dynamiquement pendant le processus de construction de la table de routage. Le coût de sortie d'interface est également défini dynamiquement sur les liens virtuels pour être le coût du chemin intra-zone entre les deux routeurs. Le paramètre RxmtInterval doit être configuré, et devrait être bien supérieur au délai aller-retour attendu entre les deux routeurs. Cela peut être difficile à estimer pour un lien virtuel ; il vaut mieux se tromper en le rendant trop grand. La Priorité de Routeur n'est pas utilisée sur les liens virtuels.
Un lien virtuel est défini par les deux paramètres configurables suivants : le Router ID de l'autre extrémité du lien virtuel, et la zone (non-backbone) à travers laquelle passe le lien virtuel (appelée Transit area du lien virtuel). Les liens virtuels ne peuvent pas être configurés à travers des stub areas.
C.5 Paramètres de réseau NBMA (NBMA network parameters)
OSPF traite un réseau NBMA presque comme un réseau broadcast. Puisqu'il peut y avoir de nombreux routeurs attachés au réseau, un Designated Router est sélectionné pour le réseau. Ce Designated Router émet alors un network-LSA, qui liste tous les routeurs attachés au réseau NBMA.
Cependant, en raison de l'absence de capacités de diffusion, il peut être nécessaire d'utiliser des paramètres de configuration dans la sélection du Designated Router. Ces paramètres ne devront être configurés que dans les routeurs eux-mêmes éligibles pour devenir Designated Router (c'est-à-dire dont la Priorité de Routeur pour le réseau est non nulle), et seulement s'il n'existe pas de procédure automatique de découverte des voisins :
Liste de tous les autres routeurs attachés (List of all other attached routers)
La liste de tous les autres routeurs attachés au réseau NBMA. Chaque routeur est listé par son adresse d'interface IP sur le réseau. Aussi, pour chaque routeur listé, l'éligibilité de ce routeur à devenir Designated Router doit être définie. Lorsqu'une interface vers un réseau NBMA devient active, le routeur n'envoie des paquets Hello qu'aux voisins éligibles pour devenir Designated Router, jusqu'à ce que l'identité du Designated Router soit découverte.
PollInterval
Si un routeur voisin est devenu inactif (les paquets Hello n'ont pas été vus pendant RouterDeadInterval secondes), il peut toujours être nécessaire d'envoyer des paquets Hello au voisin mort. Ces paquets Hello seront envoyés au rythme réduit PollInterval, qui devrait être beaucoup plus grand que HelloInterval. Valeur d'exemple pour un réseau PDN X.25 : 2 minutes.
C.6 Paramètres de réseau Point-to-MultiPoint (Point-to-MultiPoint network parameters)
Sur les réseaux Point-to-MultiPoint, il peut être nécessaire de configurer l'ensemble des voisins directement joignables via le réseau Point-to-MultiPoint. Chaque voisin est identifié par son adresse IP sur le réseau Point-to-MultiPoint. Les Designated Routers ne sont pas élus sur les réseaux Point-to-MultiPoint, donc l'éligibilité au Designated Router des voisins configurés n'est pas définie.
Alternativement, les voisins sur les réseaux Point-to-MultiPoint peuvent être découverts dynamiquement par des protocoles de niveau inférieur tels qu'Inverse ARP ([Ref14]).
C.7 Paramètres de route hôte (Host route parameters)
Les routes hôtes sont annoncées dans les router-LSAs comme des réseaux stub avec un masque 0xffffffff. Elles indiquent soit des interfaces de routeur vers des réseaux point-à-point, soit des interfaces de routeur en boucle, soit des hôtes IP directement connectés au routeur (par exemple via une ligne SLIP). Pour chaque hôte directement connecté au routeur, les éléments suivants doivent être configurés :
Adresse IP hôte (Host IP address)
L'adresse IP de l'hôte.
Coût du lien vers l'hôte (Cost of link to host)
Le coût d'envoi d'un paquet à l'hôte, en termes de la métrique link-state. Cependant, comme l'hôte n'a probablement qu'une seule connexion à l'internet, le coût configuré réel est dans de nombreux cas sans importance (c'est-à-dire n'aura aucun effet sur le routage).
Area ID
La zone OSPF à laquelle appartient l'hôte.
D. Authentification (Authentication)
Tous les échanges de protocole OSPF sont authentifiés. L'en-tête de paquet OSPF (voir la section A.3.1) inclut un champ de type d'authentification, et 64 bits de données destinées à être utilisées par le schéma d'authentification approprié (déterminé par le champ de type).
Le type d'authentification est configurable par interface (ou, de manière équivalente, par réseau/sous-réseau). Des données d'authentification supplémentaires sont également configurables par interface.
Les types d'authentification 0, 1 et 2 sont définis par cette spécification. Tous les autres types d'authentification sont réservés à la définition par l'IANA ([email protected]). La liste actuelle des types d'authentification est décrite ci-dessous dans la Table 20.
AuType Description
___________________________________________
0 Null authentication
1 Simple password
2 Cryptographic authentication
All others Reserved for assignment by the
IANA ([email protected])
Table 20 : Types d'authentification OSPF.
D.1 Authentification nulle (Null authentication)
L'utilisation de ce type d'authentification signifie que les échanges de routage sur le réseau/sous-réseau ne sont pas authentifiés. Le champ d'authentification de 64 bits dans l'en-tête OSPF peut contenir n'importe quoi ; il n'est pas examiné à la réception du paquet. Lors de l'utilisation de l'authentification nulle, tout le contenu de chaque paquet OSPF (à part le champ d'authentification de 64 bits) fait l'objet d'une somme de contrôle afin de détecter la corruption des données.
D.2 Authentification par mot de passe simple (Simple password authentication)
Avec ce type d'authentification, un champ de 64 bits est configuré par réseau. Tous les paquets envoyés sur un réseau particulier doivent avoir cette valeur configurée dans leur champ d'authentification de 64 bits de l'en-tête OSPF. Cela sert essentiellement de mot de passe « clair » de 64 bits. De plus, tout le contenu de chaque paquet OSPF (à part le champ d'authentification de 64 bits) fait l'objet d'une somme de contrôle afin de détecter la corruption des données.
L'authentification par mot de passe simple empêche les routeurs de rejoindre par inadvertance le domaine de routage ; chaque routeur doit d'abord être configuré avec les mots de passe de ses réseaux attachés avant de pouvoir participer au routage. Cependant, l'authentification par mot de passe simple est vulnérable aux attaques passives actuellement répandues sur Internet (voir [Ref16]). Toute personne ayant un accès physique au réseau peut apprendre le mot de passe et compromettre la sécurité du domaine de routage OSPF.
D.3 Authentification cryptographique (Cryptographic authentication)
Avec ce type d'authentification, une clé secrète partagée (shared secret key) est configurée dans tous les routeurs attachés à un réseau/sous-réseau commun. Pour chaque paquet de protocole OSPF, la clé est utilisée pour générer/vérifier un « message digest » qui est ajouté à la fin du paquet OSPF. Le message digest est une fonction à sens unique du paquet de protocole OSPF et de la clé secrète. Comme la clé secrète n'est jamais envoyée sur le réseau en clair, une protection est fournie contre les attaques passives.
Les algorithmes utilisés pour générer et vérifier le message digest sont spécifiés implicitement par la clé secrète. Cette spécification définit complètement l'utilisation de l'authentification cryptographique OSPF lorsque l'algorithme MD5 est utilisé.
De plus, un numéro de séquence non décroissant est inclus dans chaque paquet de protocole OSPF pour se protéger contre les attaques par rejeu (replay attacks). Cela fournit une protection à long terme ; cependant, il est toujours possible de rejouer un paquet OSPF jusqu'à ce que le numéro de séquence change. Pour implémenter cette fonctionnalité, chaque structure de données de voisin contient un nouveau champ appelé « cryptographic sequence number ». Ce champ est initialisé à zéro, et est également fixé à zéro.