Difference between revisions of "MOOC:Verb32"
From Livre IPv6
(→Détermination de l'adresse IPv6 globale) |
(→Maintien de la connectivité) |
||
Line 53: | Line 53: | ||
=== Maintien de la connectivité === | === Maintien de la connectivité === | ||
− | Maintenant que sa connectivité est établie, la station A peut communiquer avec l'Internet à travers le routeur R en utilisant son adresse globale. Mais ces conditions d'utilisation peuvent changer dans le temps : le routeur R peut par exemple être remplacé, tout comme le préfixe du réseau peut être | + | Maintenant que sa connectivité est établie, la station A peut communiquer avec l'Internet à travers le routeur R en utilisant son adresse globale. Mais ces conditions d'utilisation peuvent changer dans le temps : le routeur R peut par exemple être remplacé, tout comme le préfixe IPv6 du réseau peut être modifié. |
− | C'est pour cela que les informations de configuration ont une durée de vie et qu'il est nécessaire qu'elles soient confirmées régulièrement lorsque le réseau fonctionne normalement. À cet effet, les annonces de routeur sont | + | C'est pour cela que les informations de configuration ont une durée de vie et qu'il est nécessaire qu'elles soient confirmées régulièrement lorsque le réseau fonctionne normalement. À cet effet, les annonces de routeur sont diffusées sur le réseau à intervalles de temps réguliers. |
− | Le routeur du réseau envoie ainsi de manière non-sollicitée, toutes les minutes environ, un message ICMPv6 d'annonce de routeur. Ce message est diffusé à toutes les stations du réseau, en utilisant l'adresse multicast <tt>ff02::1</tt>. | + | Le routeur du réseau envoie ainsi de manière non-sollicitée, toutes les minutes environ, un message ICMPv6 d'annonce de routeur. Ce message est diffusé à toutes les stations du réseau local, en utilisant l'adresse multicast <tt>ff02::1</tt>. |
− | Les stations recevant ce message vérifient si aucune information n'a été modifiée et | + | Les stations recevant ce message vérifient si aucune information n'a été modifiée et rafraichisse un compteur de durée de vie. Si aucun message d'annonce n'est reçu avant expiration de ce compteur, la station en déduit un dysfonctionnement du routeur et invalide les configurations. |
== Conclusion == | == Conclusion == |
Revision as of 13:06, 25 August 2021
Pour des équipements terminaux, tels que les téléphones mobiles, les ordinateurs portables, les TV connectées, la configuration du réseau au moment de l'attachement peut être source de dysfonctionnement.
La diversité des équipements entraîne une diversité de procédures de configuration, de comportement et d'interface, et l'intervention de l'utilisateur ou l'administrateur est souvent nécessaire pour effectuer cette configuration et résoudre les problèmes.
L'auto-configuration est un mécanisme pour automatiser la configuration du réseau et rendre ce processus transparent. Son premier objectif est de rendre la connexion au réseau fonctionnelle dès l'attachement de l'équipement, de telle sorte qu'il devient lui-même autonome dans sa configuration, et que l'utilisateur n'ait plus à intervenir dans le processus.
Un second objectif est de centraliser la configuration pour un même réseau local. L'administrateur a juste besoin de définir les paramètres de connectivité communs pour ce réseau local en un seul endroit. Le réseau se charge ensuite de les fournir aux équipements terminaux.
Scénario d'auto-configuration
Nous allons maintenant voir les différents échanges de ce mécanisme qui va permettre à une interface réseau de se configurer automatiquement sur un réseau local. Dans ce scénario, une station A se connecte à un réseau local que l'administrateur a raccordé à l'Internet à travers un routeur R. Le réseau s'est donc vu attribué un préfixe global unicast P.
Détermination de l'adresse lien-local
La première étape du mécanisme d'auto-configuration commence au moment où l'interface réseau de la station A est activée, par exemple lorsque l'utilisateur y branche le câble Ethernet. A ce moment, la station A crée pour son interface une adresse lien-local, à partir du préfixe fe80:: et de l'identifiant d'interface.
Comme pour toute adresse IPv6, avant d'être assignée à une interface, il est nécessaire d'en vérifier l'unicité. La station A va donc initier le mécanisme de détection de l'adresse dupliquée. Un message ICMPv6 de sollicitation de voisin est envoyé sur le réseau pour chercher une machine possédant l'adresse lien-local de la station A. Si aucune réponse n'est reçue à ce message, l'adresse est bien considérée comme unique et peut donc être assignée à l'interface.
À ce stade, la station A possède une adresse lien-local qui lui permet de communiquer avec toute autre station du même réseau local. Pour pouvoir communiquer avec d'autres stations au delà de ce réseau local, dans l'Internet par exemple, il lui est nécessaire d'obtenir les paramètres de connectivité communs à ce réseau.
Découverte du routeur et des paramètres de connectivité
La deuxième étape de la configuration automatique consiste donc en un échange entre la station et l'équipement possédant ces paramètres de connectivité : le routeur du réseau. La station A va chercher le routeur du réseau en envoyant un message ICMPv6 de sollicitation de routeur.
Comme la station ne connaît pas à priori l'adresse de ce routeur, elle envoie ce message avec comme adresse de destination l'adresse multicast ff02::2 qui permet d'atteindre tous les routeurs du réseau local.
Plusieurs routeurs peuvent être connectés au même réseau, mais seul celui qui gère la connexion avec l'Internet va répondre à cette sollicitation. Ce routeur envoie alors en réponse à la station un message ICMPv6 d'annonce de routeur.
La station A récupère dans le contenu du message d'annonce de routeur les paramètres de connectivité pour le réseau local. Parmi ces informations on retrouve l'adresse IP et l'adresse physique du routeur qui permet à la station de configuer sa route par défaut, le ou les préfixes IPv6 assignés à ce réseau, ainsi que la MTU à utiliser pour les paquets à destination de l'Internet. L'administrateur peut inclure d'autres informations de connectivité dans ce message comme par exemple l'adresse du serveur de résolution DNS.
Détermination de l'adresse IPv6 globale
Cependant la station A ne peut pas encore à ce stade communiquer avec une autre station en dehors du réseau local car elle ne possède pas encore d'adresse IPv6 unicast globale.
Il existe deux méthodes pour déterminer cette adresse : une méthode sans état où la station va déterminer son adresse IP de manière autonome, et une méthode avec état où l'adresse IP sera attribuée par un serveur qui gère cette ressource.
L'administrateur choisit une de ces deux méthodes de détermination d'adresse pour chaque réseau local. La méthode retenue est indiquée dans le message d'annonce de routeur par le bit M. La station A sait ainsi quelle méthode utilisée selon la valeur de cette variable.
Si le bit M vaut 0, la méthode retenue est la configuration sans état de l'adresse. La station A va donc déterminer son adresse IPv6 globale à partir du préfixe P contenu dans le message d'annonce de routeur.
Elle ajoute au 64 bits de ce préfixe les 64 autres bits de l'identifiant d'interface qu'elle aura choisi, soit à partir de l'adresse physique de l'interface, soit aléatoirement, ou alors suivant d'autres méthodes. Elle obtient ainsi les 128 bits de son adresse globale.
Si le bit M vaut 1, la méthode retenue est la configuration avec état de l'adresse. La station utilise alors le protocole de configuration DHCPv6 pour interroger un serveur de configuration et obtenir son adresse.
Un tel serveur se situe généralement au delà du réseau local, le routeur du réseau sert alors de relai dans les échanges entre la station et le serveur DHCPv6. En fonction du réseau où se trouve la station, le serveur va allouer une adresse dans le préfixe correspondant. La station indique dans sa requête son identité. Elle peut être utilisé par l'administrateur pour configurer au préalable l'adresse à allouer à cette station.
Quel que soit la méthode de configuration utilisée, avant d'assigner l'adresse à l'interface, il est nécessaire d'en vérifier l'unicité. Pour cela, le mécanisme de détection de l'adresse dupliquée est de nouveau utilisé, mais cette fois ci pour l'adresse unicast globale.
La station A possède maintenant l'ensemble des paramètres de connectivité et une adresse unicast globale. La connectivité au réseau de cette station est donc effective, sans que l'utilisateur ou l'administrateur ait eu besoin d'intervenir.
Maintien de la connectivité
Maintenant que sa connectivité est établie, la station A peut communiquer avec l'Internet à travers le routeur R en utilisant son adresse globale. Mais ces conditions d'utilisation peuvent changer dans le temps : le routeur R peut par exemple être remplacé, tout comme le préfixe IPv6 du réseau peut être modifié.
C'est pour cela que les informations de configuration ont une durée de vie et qu'il est nécessaire qu'elles soient confirmées régulièrement lorsque le réseau fonctionne normalement. À cet effet, les annonces de routeur sont diffusées sur le réseau à intervalles de temps réguliers.
Le routeur du réseau envoie ainsi de manière non-sollicitée, toutes les minutes environ, un message ICMPv6 d'annonce de routeur. Ce message est diffusé à toutes les stations du réseau local, en utilisant l'adresse multicast ff02::1.
Les stations recevant ce message vérifient si aucune information n'a été modifiée et rafraichisse un compteur de durée de vie. Si aucun message d'annonce n'est reçu avant expiration de ce compteur, la station en déduit un dysfonctionnement du routeur et invalide les configurations.
Conclusion
Archive
"La configuration automatique des paramètres réseau (partie 2)"
"Informations transmises par le routeur"
Bruno Stévant, enseignant-chercheur à l'Institut Mines-Télécom.
-Nous allons maintenant regarder en détail le contenu d'un message annonce de routeur.
Ce message est un message ICMPv6 de type 134, qui n'a pas d'autre valeur de code que la valeur 0.
Dans le message d'annonce de routeur, nous allons retrouver un bit, "M" pour "Manage", qui contrôle le mode de configuration de l'adresse.
Si ce bit M a pour valeur 0, alors c'est la configuration sans état qui a été retenue par l'administrateur pour ce réseau.
Si le bit M est à 1, alors la configuration avec état est à utiliser par les équipements.
Les valeurs de temporisation permettent de vérifier la disponibilité du routeur par les équipements du réseau.
Enfin, un ensemble d'options permettent de compléter l'annonce de routeur avec, notamment, l'adresse physique du routeur, la longueur maximale de données autorisées sur ce réseau, donc MTU, et enfin, les informations liées au préfixe configuré sur le réseau.
Parmi ces informations liées au préfixe, nous aurons des valeurs qui vont contrôler la durée de vie de l'adresse configurée à partir de ce préfixe.
Cette durée de vie est contrôlée par deux valeurs : le temps pendant lequel l'adresse est valide sur l'interface et le temps pendant lequel l'adresse est préférée pour de nouvelles connexions.
Ces valeurs sont associées aux adresses configurées à partir du préfixe, et le compteur qui contrôle l'état de l'adresse est réinitialisé à chaque nouveau message d'annonce de routeur contenant le préfixe associé.
Il est donc important que les messages d'annonce de routeur soient diffusés de manière continue sur le réseau local, pour mettre à jour les différents compteurs de disponibilité du routeur et de validité des adresses sur tous les équipements du réseau.
Cette diffusion continue peut permettre aussi d'annoncer des changements de configuration à prendre en compte par les équipements et un nouveau routeur par défaut à prendre en compte, en cas de défaillance du premier routeur par défaut.
L'intervalle de diffusion des annonces de routeur est défini par l'administrateur et est de l'ordre de la dizaine de secondes.
"Conclusion"
Le mécanisme d'autoconfiguration est important en IPv6.
Il permet à l'équipement de découvrir automatiquement la configuration utilisée sur un réseau local et d'activer de manière autonome son interface réseau. Il permet de vérifier le bon fonctionnement du réseau par la disponibilité des équipements comme le routeur et de détecter les changements de configuration pouvant intervenir.
Pour le réseau, le mécanisme d'autoconfiguration permet de centraliser une configuration correcte des paramètres du réseau, de fournir ces paramètres aux équipements se connectant et de leur annoncer d'éventuels changements de configuration.
Le mécanisme d'autoconfiguration est donc important car il facilite la vie de l'utilisateur, qui n'a plus à intervenir dans le mécanisme de configuration de réseau, et de l'administrateur, qui va ainsi gérer son réseau de façon centralisée.
DHCPv6
-Nous avons vu, dans la vidéo précédente, que l'autoconfiguration d'une interface réseau passe par plusieurs étapes, comme l'autoconfiguration avec ou sans état de l'adresse IP. Ce mode de configuration est déterminé pour le réseau local, selon les indications transmises par le routeur.
La configuration sans état d'une adresse IP amène des adresses qui ne sont pas forcément prédictibles, notamment dans le cas où l'identifiant de l'interface est généré de manière aléatoire.
Les adresses IPv6 issues de ce mode de configuration sans état ne sont pas non plus stables, car les adresses de l'interface peuvent changer avec le temps ou le matériel.
Ce mécanisme est cependant adopté le plus souvent, car la stabilité de l'adresse n'est pas forcément nécessaire, dans le cas d'un réseau domestique, de poste client ou invité.
Mais dans d'autres cas, la stabilité de l'adresse importe car elle va être manipulée ou enregistrée. C'est le cas de l'adresse d'un serveur. L'objectif de la configuration avec état est d'assigner des adresses IPv6 à la demande, de manière stable et prédictible. L'autoconfiguration avec état permet, de plus, de provisionner les adresses qui vont être assignées aux clients, d'automatiser ce mécanisme d'assignement, et de centraliser les configurations.
Le protocole DHCPv6 a été spécifié pour permettre cette configuration avec état de l'adresse IP.
"Le protocole DHCPv6"
Les principes du protocole DHCPv6 sont définis dans le RFC 3315.
DHCPv6 suit un modèle client-serveur.
Ses requêtes sont transportées sur le protocole UDP, avec le port 547.
Le protocole DHCPv6 définit plusieurs types de message qui sont identifiés par un type dans le corps du message.
Enfin, il définit un mécanisme de relayage permettant la communication entre un client local et un serveur distant.
DHCPv6 définit plusieurs profils d'équipement assurant chacun un rôle dans l'architecture du protocole.
Le client est la station cherchant à se configurer son adresse, en utilisant le protocole DHCPv6.
Le serveur est l'élément central et responsable de l'assignation à la demande d'adresse IPv6.
Le relais est un élément actif dans le protocole DHCPv6, permettant de relayer les requêtes du client. En effet, celui-ci étant en cours de configuration, il n'a pas forcément d'adresse lui permettant de communiquer directement avec le serveur.
Le relais intercepte donc les requêtes du client au niveau du réseau local et les retransmet au serveur. Le Requestor a un rôle d'administration et de supervision du serveur.
Différentes fonctions de messages sont définies par le protocole DHCPv6.
Tout d'abord, les messages liés à la découverte du serveur : les messages DHCPv6 SOLICIT et ADVERTISE.
Les messages liés à l'échange d'informations de configuration : les messages DHCPv6 REQUEST/REPLY.
Il existe des messages pour gérer les ressources allouées au client.
Enfin, certains messages permettent de signifier que l'on relaie des messages entre un client et un serveur.
Les messages du protocole DHCPv6 sont transportés dans des datagrammes UDP.
Le champ "type", au début de ce datagramme, sert à désigner la sémantique du message.
Un champ d'identification de transaction permet d'associer de manière sûre les réponses aux demandes correspondantes.
Le champ "options" contient des informations utiles, selon la sémantique du message.
DHCPv6 permet d'étendre simplement les options à inclure dans chaque message, en fonction des informations nécessaires.
Les messages servant au relayage ont un format particulier.
Ils sont émis par le relais, assurant la transmission d'une demande d'un client vers le serveur ou de la réponse d'un serveur vers le client.
Le champ "type" signifie qu'il s'agit d'un message de relayage d'une demande d'un client ou d'une réponse d'un serveur.
Le mécanisme de relayage est prévu pour permettre la mise en cascade de plusieurs relais.
Le champ "hop-count" est un compteur permettant de connaître soit le nombre de relais déjà traversés pour atteindre le serveur ou restant à traverser pour atteindre le client.
L'adresse de lien, "link-address", est une adresse unicast que le serveur va utiliser pour identifier le lien où se trouve le client.
C'est l'adresse du relais du côté du client.
L'adresse de pair, ou "peer-address", est l'adresse IPv6 de l'interface depuis laquelle le relais a envoyé le message au serveur.
C'est l'adresse du relais du côté du serveur.
Le champ "options" contient, lui, l'ensemble de la demande émise par le client ou de la réponse du serveur qui est ainsi encapsulée dans un message DHCPv6 de relayage.
"Scénarios d'allocation d'adresses avec état"
Nous allons maintenant dérouler le scénario de transaction entre un client et un serveur DHCPv6 sans la présence d'un relais.
Le serveur se situe alors dans le même réseau que le client.
Le message DHCPv6 SOLICIT est envoyé pour localiser des serveurs pouvant fournir les informations désirées par le client.
Ce message est envoyé à l'adresse multicast des agents DHCPv6 du sous réseau, ou FF02::1:2.
Les serveurs DHCPv6 configurés répondent à cette sollicitation et annoncent leur disponibilité par un message DHCPv6 ADVERTISE.
Le client sélectionnera, parmi les réponses reçues, le serveur qu'il juge adéquat et lui enverra directement la requête de configuration par un message DHCPv6 REQUEST.
Le serveur traite la demande et renvoie la réponse contenant, par exemple, l'adresse IPv6 à assigner à ce client.
Mais, dans la plupart des cas, le client ne peut pas communiquer directement avec le serveur.
Le relais va servir d'intermédiaire dans cette communication. Le client envoie sa sollicitation toujours à destination du groupe multicast des agents DHCPv6 du réseau local.
Le relais intercepte cette demande et l'encapsule dans un message DHCPv6 de relayage. Le relais étant connecté à l'infrastructure, il peut envoyer ce message au serveur.
Le serveur utilise les adresses contenues dans les champs du message pour renvoyer sa réponse, encapsulée aussi dans un message de relayage.
Le relais retransmet cette réponse du serveur au client sur le réseau local.
De la même façon, les requêtes suivantes seront encapsulées par le relais.
"Délégation de préfixes par DHCPv6"
En plus d'allouer des adresses à des clients, DHCPv6 peut aussi permettre d'allouer des préfixes IPv6, notamment à des routeurs.
C'est le mécanisme DHCPv6 Prefix Delegation défini par le RFC 3633.
Ce mécanisme permet de configurer automatiquement des équipements, comme des routeurs domestiques.
Dans cet exemple, un opérateur déploie, chez des clients, des routeurs domestiques permettant d'assurer la connectivité des équipements de la maison.
L'opérateur ne déploie pas forcément une configuration réseau de l'équipement dès sa sortie d'usine.
DHCPv6 peut permettre de contrôler la fourniture de ses paramètres de configuration, notamment les préfixes IPv6 à déployer sur les réseaux de la maison.
La délégation de préfixe par DHCPv6 permet au routeur domestique de récupérer un ou plusieurs préfixes qui lui sont attribués par l'infrastructure de l'opérateur.
Ces préfixes sont ensuite configurés localement sur les liens internes du routeur.
Les équipements domestiques peuvent alors se configurer automatiquement et, par l'autoconfiguration avec ou sans état, obtenir du routeur préfixes ou adresses à configurer sur leurs interfaces réseau.
"Conclusion"
En conclusion, DHCPv6 est un mécanisme client-serveur permettant d'allouer de manière stable des adresses ou des préfixes.
C'est un protocole souple et flexible, qui permet de s'adapter dans tous les cas où le contrôle de ressources est nécessaire, comme l'assignation d'adresses IPv6 pour des serveurs, afin de stabiliser ces adresses dans le temps, ou de provisionner des préfixes IPv6 pour des clients, à l'intérieur de leurs routeurs domestiques.