1. Introduction
La version 4 d'IP suppose que l'adresse IP d'un nœud identifie de manière unique le point auquel ce nœud est connecté à Internet. Par conséquent, un nœud DOIT se trouver sur le réseau indiqué par son adresse IP pour recevoir les datagrammes qui lui sont destinés ; sinon, les datagrammes envoyés à ce nœud ne pourront pas être livrés. Pour permettre à un nœud de changer son point de connexion sans perdre sa capacité de communication, l'une des deux mécanismes suivants est généralement nécessaire :
- Le nœud DOIT changer son adresse IP chaque fois qu'il change son point de connexion, ou
- Des routes spécifiques à l'hôte DOIVENT être propagées sur une grande partie de la structure de routage Internet
Ces deux alternatives sont généralement inacceptables. La première empêche le nœud de maintenir les connexions de couche transport et des couches supérieures lors d'un changement de localisation. La seconde présente des problèmes d'évolutivité évidents et graves, notamment compte tenu de la croissance explosive des ventes d'ordinateurs portables (mobiles).
Un nouveau mécanisme évolutif est nécessaire au sein d'Internet pour s'adapter à la mobilité des nœuds. Ce document définit un tel mécanisme, permettant aux nœuds de changer leur point de connexion à Internet sans changer leur adresse IP.
Les modifications entre cette révision de la spécification Mobile IP et la spécification originale (voir [44], [14], [15], [20], [4] et [50]) sont détaillées à l'annexe F.
1.1. Exigences du protocole (Protocol Requirements)
Un nœud mobile (Mobile Node) DOIT être capable de communiquer avec d'autres nœuds après avoir changé son point de connexion de couche liaison à Internet, sans changer son adresse IP.
Un nœud mobile DOIT être capable de communiquer avec d'autres nœuds qui n'ont pas implémenté ces fonctionnalités de mobilité. Aucune amélioration de protocole n'est requise dans les hôtes ou routeurs n'agissant pas en tant que nouvelles entités architecturales introduites à la section 1.5.
Tous les messages utilisés pour mettre à jour la localisation d'un nœud mobile auprès d'un autre nœud DOIVENT être authentifiés (Authentication), afin de prévenir les attaques de redirection à distance.
1.2. Objectifs (Goals)
Le lien par lequel un nœud mobile est directement connecté à Internet est souvent un lien sans fil. Par conséquent, la bande passante de ce lien peut être bien inférieure à celle des réseaux filaires traditionnels, avec un taux d'erreur plus élevé. De plus, les nœuds mobiles fonctionnent très probablement sur batterie, et la minimisation de la consommation d'énergie est importante. Par conséquent, le nombre de messages de gestion envoyés sur le lien par lequel le nœud mobile est directement connecté à Internet DEVRAIT être minimisé, et la taille de ces messages DEVRAIT être maintenue raisonnablement petite.
1.3. Hypothèses (Assumptions)
Le protocole défini dans ce document n'impose pas de contraintes supplémentaires sur l'attribution des adresses IP. C'est-à-dire qu'un nœud mobile PEUT se voir attribuer une adresse IP par l'organisation propriétaire de la machine.
Ce protocole suppose que les nœuds mobiles ne changent généralement pas leur point de connexion à Internet plus d'une fois par seconde.
Ce protocole suppose que les datagrammes IP unicast sont routés en fonction de l'adresse de destination (Destination Address) dans l'en-tête du datagramme (et non, par exemple, en fonction de l'adresse source).
1.4. Applicabilité (Applicability)
Mobile IP est conçu pour permettre aux nœuds de se déplacer d'un sous-réseau IP à un autre. Il est également applicable à la mobilité entre médias homogènes et entre médias hétérogènes. C'est-à-dire que Mobile IP facilite à la fois le déplacement d'un nœud d'un segment Ethernet à un autre, et d'un segment Ethernet à un LAN sans fil, à condition que l'adresse IP du nœud mobile reste inchangée après ce déplacement.
Mobile IP PEUT être considéré comme résolvant le problème de gestion de la mobilité « macro ». Il est moins adapté aux applications de gestion de mobilité plus « micro » — par exemple, le transfert entre émetteurs-récepteurs sans fil, où chaque émetteur-récepteur ne couvre qu'une très petite zone géographique. Tant que le déplacement du nœud ne se produit pas entre des points de connexion sur différents sous-réseaux IP, les mécanismes de mobilité de couche liaison (c'est-à-dire le transfert de couche liaison) PEUVENT offrir une convergence plus rapide et moins de surcharge que Mobile IP.
1.5. Nouvelles entités architecturales (New Architectural Entities)
Mobile IP introduit les nouvelles entités fonctionnelles suivantes :
Nœud mobile (Mobile Node)
Hôte ou routeur qui change son point de connexion d'un réseau ou sous-réseau à un autre. Un nœud mobile PEUT changer sa localisation sans changer son adresse IP ; il PEUT continuer à communiquer avec d'autres nœuds Internet à n'importe quelle localisation en utilisant son adresse IP (constante), à condition qu'une connexion de couche liaison au point de connexion soit disponible.
Agent d'accueil (Home Agent)
Routeur sur le réseau d'accueil du nœud mobile qui, lorsque le nœud mobile est absent de son réseau d'accueil, transmet les datagrammes au nœud mobile via un tunnel (Tunnel) et maintient les informations de localisation courante du nœud mobile.
Agent étranger (Foreign Agent)
Routeur sur le réseau visité par le nœud mobile qui fournit des services de routage au nœud mobile lors de l'enregistrement. L'agent étranger dé-tunnelise et livre les datagrammes tunnelisés par l'agent d'accueil du nœud mobile. Pour les datagrammes envoyés par le nœud mobile, l'agent étranger PEUT servir de routeur par défaut pour les nœuds mobiles enregistrés.
Un nœud mobile se voit attribuer une adresse IP à long terme sur son réseau d'accueil. Cette adresse d'accueil (Home Address) est administrée de la même manière qu'une adresse IP « permanente » est fournie à un hôte stationnaire. Lorsqu'il est loin de son réseau d'accueil, une adresse de soin (Care-of Address) est associée au nœud mobile et reflète le point de connexion courant du nœud mobile. Le nœud mobile utilise son adresse d'accueil comme adresse source de tous les datagrammes IP qu'il envoie, sauf indication contraire dans ce document pour certains datagrammes utilisés pour des fonctions de gestion de la mobilité (par exemple, comme décrit à la section 3.6.1.1).
1.6. Terminologie (Terminology)
Les mots-clés « MUST », « MUST NOT », « REQUIRED », « SHALL », « SHALL NOT », « SHOULD », « SHOULD NOT », « RECOMMENDED », « MAY » et « OPTIONAL » dans ce document DOIVENT être interprétés comme décrit dans le RFC 2119 [1]. En français : DOIT, NE DOIT PAS, REQUIS, DEVRA, NE DEVRA PAS, DEVRAIT, NE DEVRAIT PAS, RECOMMANDÉ, PEUT et OPTIONNEL.
De plus, ce document utilise fréquemment les termes suivants :
Extension d'activation d'autorisation (Authorization-Enabling Extension)
Authentification qui rend un message (d'enregistrement) acceptable pour le destinataire final du message d'enregistrement. Une extension d'activation d'autorisation DOIT contenir un SPI (Security Parameter Index, index de paramètre de sécurité).
Dans ce document, toutes les utilisations d'extensions d'activation d'autorisation font référence à l'extension d'authentification qui rend un message de demande d'enregistrement acceptable pour l'agent d'accueil. En utilisant d'autres constructions de protocole spécifiées en dehors de ce document, un nœud mobile PEUT fournir l'authentification de son enregistrement à l'agent d'accueil via une autre entité d'authentification acceptable pour l'agent d'accueil dans le réseau (voir par exemple le RFC 2794 [2]).
Annonce d'agent (Agent Advertisement)
Message d'annonce construit en ajoutant une extension spéciale à un message d'annonce de routeur (Router Advertisement) [5].
Authentification (Authentication)
Processus de vérification de l'identité de l'initiateur d'un message à l'aide de techniques cryptographiques (applicable à toutes les utilisations dans cette spécification).
Adresse de soin (Care-of Address)
Point d'extrémité du tunnel vers le nœud mobile, pour les datagrammes transmis au nœud mobile lorsqu'il est loin de son réseau d'accueil. Le protocole PEUT utiliser deux types différents d'adresses de soin : une « adresse de soin d'agent étranger » (Foreign Agent Care-of Address) est l'adresse d'un agent étranger auprès duquel le nœud mobile est enregistré, et une « adresse de soin co-localisée » (Co-located Care-of Address) est une adresse locale acquise de manière externe associée à l'une des interfaces réseau du nœud mobile.
Nœud correspondant (Correspondent Node)
Nœud pair avec lequel un nœud mobile communique. Un nœud correspondant PEUT être mobile ou stationnaire.
Réseau étranger (Foreign Network)
Tout réseau autre que le réseau d'accueil du nœud mobile.
ARP gratuit (Gratuitous ARP)
Paquet ARP (Address Resolution Protocol, protocole de résolution d'adresse) envoyé par un nœud dans le but de mettre à jour spontanément les entrées du cache ARP des autres nœuds [45]. Voir la section 4.6.
Adresse d'accueil (Home Address)
Adresse IP attribuée à un nœud mobile et utilisée à long terme. Elle reste inchangée quelle que soit la localisation du nœud sur Internet.
Réseau d'accueil (Home Network)
Réseau (éventuellement virtuel) dont le préfixe réseau correspond à l'adresse d'accueil du nœud mobile. Notez que les mécanismes de routage IP standard livreront les datagrammes destinés à l'adresse d'accueil du nœud mobile au réseau d'accueil du nœud mobile.
Lien (Link)
Équipement ou support sur lequel les nœuds PEUVENT communiquer au niveau de la couche liaison. Un lien se situe en dessous de la couche réseau.
Adresse de couche liaison (Link-Layer Address)
Adresse utilisée pour identifier les points d'extrémité de communication sur certains liens physiques. Généralement, l'adresse de couche liaison est l'adresse MAC (Media Access Control, contrôle d'accès au support) d'une interface.
Agent de mobilité (Mobility Agent)
Agent d'accueil ou agent étranger.
Liaison de mobilité (Mobility Binding)
Association de l'adresse d'accueil avec une adresse de soin, et la durée de vie (Lifetime) restante de cette association.
Association de sécurité de mobilité (Mobility Security Association)
Ensemble de contextes de sécurité entre une paire de nœuds, pouvant être appliqués aux messages du protocole Mobile IP échangés entre eux. Chaque contexte indique un algorithme et un mode d'authentification (section 5.1), une clé (clé partagée, ou paire clé publique/privée appropriée), et le style de protection contre la relecture utilisé (section 5.7).
Nœud (Node)
Hôte ou routeur.
Nonce (valeur à usage unique)
Valeur choisie aléatoirement, différente des choix précédents, insérée dans un message pour prévenir les attaques par relecture.
SPI (Security Parameter Index, index de paramètre de sécurité)
Index identifiant un contexte de sécurité entre une paire de nœuds, parmi les contextes disponibles dans l'association de sécurité de mobilité. Les valeurs SPI de 0 à 255 sont réservées et NE DOIVENT PAS être utilisées dans une association de sécurité de mobilité.
Tunnel (Tunnel)
Chemin suivi par un datagramme lors de son encapsulation. Le modèle est que, lors de l'encapsulation, le datagramme est routé vers un agent de décapsulation compétent, qui décapsule le datagramme et le livre correctement à sa destination finale.
Réseau virtuel (Virtual Network)
Réseau sans instanciation physique autre qu'un routeur (ayant une interface réseau physique sur un autre réseau). La joignabilité d'un réseau virtuel est généralement annoncée par un routeur (par exemple, un agent d'accueil) via des protocoles de routage conventionnels.
Réseau visité (Visited Network)
Réseau autre que le réseau d'accueil du nœud mobile, auquel le nœud mobile est actuellement connecté.
Liste des visiteurs (Visitor List)
Liste des nœuds mobiles visitant un agent étranger.
1.7. Vue d'ensemble du protocole (Protocol Overview)
Les services de support suivants sont définis pour Mobile IP :
Découverte d'agent (Agent Discovery)
Les agents d'accueil et les agents étrangers PEUVENT annoncer leur disponibilité sur chaque lien sur lequel ils fournissent des services. Un nœud mobile nouvellement arrivé PEUT envoyer une sollicitation (Solicitation) sur le lien pour savoir si des agents potentiels sont présents.
Enregistrement (Registration)
Lorsqu'un nœud mobile est loin de son réseau d'accueil, il enregistre son adresse de soin auprès de son agent d'accueil. Selon sa méthode de connexion, le nœud mobile s'enregistre directement auprès de son agent d'accueil, ou via un agent étranger qui transmet l'enregistrement à l'agent d'accueil.
Rejet silencieux (Silently Discard)
L'implémentation rejette le datagramme sans traitement ultérieur et sans indiquer d'erreur à l'expéditeur. L'implémentation DEVRAIT fournir la capacité d'enregistrer l'erreur, y compris le contenu du datagramme rejeté, et DEVRAIT enregistrer l'événement dans un compteur statistique.
Les étapes suivantes fournissent un aperçu général du fonctionnement du protocole Mobile IP :
-
Les agents de mobilité (c'est-à-dire les agents étrangers et les agents d'accueil) annoncent leur présence via des messages d'annonce d'agent (Agent Advertisement Messages) (section 2). Un nœud mobile PEUT optionnellement demander un message d'annonce d'agent à tout agent de mobilité connecté localement via un message de sollicitation d'agent (Agent Solicitation Message).
-
Un nœud mobile reçoit ces annonces d'agent et détermine s'il se trouve sur son réseau d'accueil ou sur un réseau étranger.
-
Lorsqu'un nœud mobile détecte qu'il se trouve sur son réseau d'accueil, il fonctionne sans services de mobilité. S'il revient sur son réseau d'accueil après s'être enregistré ailleurs, le nœud mobile se désenregistre auprès de son agent d'accueil en échangeant des messages de demande d'enregistrement (Registration Request) et de réponse d'enregistrement (Registration Reply) avec son agent d'accueil.
-
Lorsqu'un nœud mobile détecte qu'il s'est déplacé vers un réseau étranger, il obtient une adresse de soin sur le réseau étranger. L'adresse de soin PEUT être déterminée à partir des annonces d'un agent étranger (adresse de soin d'agent étranger), ou via un mécanisme d'attribution externe tel que DHCP [34] (adresse de soin co-localisée).
-
Un nœud mobile opérant loin de son réseau d'accueil enregistre ensuite sa nouvelle adresse de soin auprès de son agent d'accueil en échangeant des messages de demande d'enregistrement et de réponse d'enregistrement (éventuellement via un agent étranger) (section 3).
-
Les datagrammes destinés à l'adresse d'accueil du nœud mobile sont interceptés par les mécanismes de routage Internet et livrés au réseau d'accueil du nœud mobile.
-
Sur le réseau d'accueil, l'agent d'accueil du nœud mobile intercepte ces datagrammes et les tunnelise à l'adresse de soin du nœud mobile.
-
À l'adresse de soin, les datagrammes sont décapsulés et livrés au nœud mobile.
Dans le sens inverse, les datagrammes destinés aux nœuds correspondants sont généralement livrés directement par le nœud mobile, en utilisant les mécanismes de routage IP standard, sans nécessairement passer par l'agent d'accueil (section 4.2.1).
1.8. Format des messages et extensibilité du protocole (Message Format and Protocol Extensibility)
Mobile IP définit un certain nombre de nouveaux messages de contrôle, transportés via UDP (User Datagram Protocol, protocole de datagramme utilisateur) et ICMP (Internet Control Message Protocol, protocole de messages de contrôle Internet). Mobile IP étend également le mécanisme de découverte de routeur ICMP [5].
Dans certains cas, les valeurs de champs définies pour les messages peuvent ne pas encore avoir été attribuées par l'IANA. Dans tous ces cas, l'implémentation envoyant le message DOIT utiliser la valeur appropriée dans le message, et le nœud récepteur DOIT interpréter correctement ces valeurs.
Le récepteur d'un message NE PEUT PAS faire d'hypothèses sur l'ordre d'apparition ou l'alignement de données particulières dans le message. Les messages DOIVENT être analysés selon le format défini dans ce document, sans supposer la position de données particulières, sauf si ce format spécifie explicitement la position de ces données.
Bien que les positions des champs dans un message soient explicitement spécifiées par le format, le récepteur NE PEUT PAS supposer que les données sont alignées sur une limite d'octet particulière. Les diagrammes utilisés dans ce document pour montrer les champs de données sont fournis à titre illustratif uniquement et n'impliquent pas d'exigences d'alignement obligatoires.
Tous les champs réservés DOIVENT être mis à zéro par l'expéditeur, et le récepteur DOIT ignorer le contenu de ces champs, sauf indication contraire dans ce document.
Certains messages contiennent des champs de données de longueur variable. Dans ces cas, la longueur du champ de données est spécifiée par un champ de longueur précédent, qui indique le nombre d'octets du champ de données.
Tous les messages Mobile IP PEUVENT inclure des extensions non explicitement définies, mais si elles sont présentes, les extensions DOIVENT suivre le format défini à la section 1.9. Mobile IP définit un format d'extension long et un format d'extension court.
1.9. Format d'extension Type-Longueur-Valeur pour les extensions Mobile IP (Type-Length-Value Extension Format for Mobile IP Extensions)
Cette spécification définit les extensions contenues dans les messages Mobile IP comme ayant un format TLV (Type-Length-Value, type-longueur-valeur). Chacune de ces extensions TLV contient trois champs : un champ Type de 8 bits, un champ Longueur de 8 ou 16 bits, et un champ Valeur de longueur variable.
Le champ Type indique le type de l'extension. Les valeurs de type d'extension se trouvent dans les registres IANA listés à la section 6.
Le champ Longueur indique la longueur du champ Valeur en octets. Il n'inclut pas la longueur des champs Type et Longueur eux-mêmes.
Le champ Valeur contient des données spécifiques au type d'extension.
Mobile IP définit deux formats d'extension :
- Le format d'extension long (Long Extension Format) utilise un champ Longueur de 16 bits (section 1.10)
- Le format d'extension court (Short Extension Format) utilise un champ Longueur de 8 bits (section 1.11)
1.10. Format d'extension long (Long Extension Format)
Le format d'extension long est utilisé pour les extensions dont la valeur de type est inférieure à 128. Les extensions longues utilisent un champ Longueur de 16 bits, permettant à une extension de contenir jusqu'à 65 535 octets de données.
Le format d'une extension longue est le suivant :
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Subtype | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
Identifiant de 8 bits pour un type spécifique d'extension. Une valeur de type inférieure à 128 indique l'utilisation du format d'extension long.
Subtype (Sous-type)
Identifiant de 8 bits pouvant être utilisé pour fournir des informations de type supplémentaires pour un type spécifique. L'interprétation du champ Sous-type dépend du type d'extension spécifique.
Length (Longueur)
Entier non signé de 16 bits. Longueur du champ Valeur en octets. Le champ Longueur n'inclut pas les champs Type, Sous-type et Longueur eux-mêmes.
Value (Valeur)
Données de longueur variable spécifiques au type d'extension.
1.11. Format d'extension court (Short Extension Format)
Le format d'extension court est utilisé pour les extensions dont la valeur de type est supérieure ou égale à 128. Les extensions courtes utilisent un champ Longueur de 8 bits, permettant à une extension de contenir jusqu'à 255 octets de données.
Le format d'une extension courte est le suivant :
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Value (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
Identifiant de 8 bits pour un type spécifique d'extension. Une valeur de type supérieure ou égale à 128 indique l'utilisation du format d'extension court.
Length (Longueur)
Entier non signé de 8 bits. Longueur du champ Valeur en octets. Le champ Longueur n'inclut pas les champs Type et Longueur eux-mêmes.
Value (Valeur)
Données de longueur variable spécifiques au type d'extension.