Mobilite IPv6

Concept

Motivations

Avec l'avènement des équipements mobiles (Smartphone, tablettes, Laptop,...), les applications installer doit pouvoir continuer à communiquer même s'il change de réseau. L'IETF en concevant IPv6 a ajouté le principe de la mobilité sur IP. La RFC 6275 décrit ce principe.

Mobile IPv6 permet à un nœud de changer de réseau tout en gardant d’une façon transparente ses connections déjà établies. Cela est réalisé par le fait que chaque nœud est toujours identifié par son adresse IP d’origine. Un nœud spécial sur le réseau d’origine appelé "Home Agent" intercepte ainsi les paquets destinés au nœud mobile (Mobile Node) et les lui renvoie.

Ce mécanisme est complétement transparent aux couches supérieures (ainsi un nœud conserve son adresse IP d’origine dans les entrées DNS par exemple).

Le Home Agent peut rediriger les paquets vers le nœud car il connaît son emplacement actuel représenté par une adresse IP "care-of-adress" (adresse sur laquelle est connecté le nœud mobile. En effet le nœud informe par un message spécial son Home Agent qu’il a changé d’emplacement en lui fournissant cette nouvelle adresse.


Messages Utilisés

Tous les nouveaux messages utilisés dans mobile IPv6 sont définis comme des options de destination IPv6 (Ipv6 destination options). Ces options contiennent des informations supplémentaires que la destination devra traiter.

Binding update (BU)

Cette option est utilisée par tout nœud mobile afin d’informer son Home Agent ou tout autre nœud avec lequel une communication est établie (correspondent node) de sa nouvelle adresse IP (care-of-address).


Le format de cette option est le suivant :


- Type = 0xC6.
- Longueur = en octets excluant les champs type et longueur.
- A = 1 pour demander l’envoi d’un Binding Acknowledgment (BAck) dès réception de ce BU par l’entité correspondante.
- H = 1 si le nœud demande que la destination soit son Home Agent (forcément un routeur sur le réseau d’origine).
- R = 1 si le nœud mobile est un routeur.
- D = 1 si le nœud demande à la destination d’effectuer la procédure d’adresse dupliquée.
- Longueur préfixe = longueur de la partie préfixe de l’adresse.
- Numéro de séquence = permet d’associer un BAck à un BU.
- Durée de validité demandée de l’appariement.
- Sous-options = Toute information supplémentaire nécessaire.

Binding Acknowledgement (BAck)

Cette option est utilisée par le destinataire d’un BU pour acquitter sa réception si le bit A était positionné à 1.


Le format de cette option est le suivant :


- Type = 7.
- Longueur = en octets excluant les champs type et longueur.
- Statut : indique si le BU à été accepté par la destination (valeur inférieur 128, actuellement 0) ou rejeté (supérieur à 128).
- Numéro de séquence = permet d’associer un BAck à un BU.
- Durée de validité attribuée à l’appariement.
- Rafraîchissement : indique au nœud mobile la fréquence d’envoi de BU vers cette destination.
- Sous-options = Toute information supplémentaire nécessaire.

Binding Request

Cette option est utilisée par tout nœud afin de demander au nœud mobile de lui envoyer un BU avec son care-of-address actuel.


Le format de cette option est le suivant :


- Type = 8.
- Longueur = en octets excluant les champs type et longueur.
- Sous-options = Toute information supplémentaire nécessaire.

Home Address

Cette option est incluse dans un paquet envoyé par un nœud mobile lorsqu’il est hors son réseau d’origine afin d’informer la destination de son adresse d’origine. En fait un nœud mobile utilise comme adresse source dans ses paquets une de ses adresses de care-of-address. Ainsi le nœud destinataire est capable de substituer l’adresse de care-of-address par l’adresse d’origine et rendre ainsi la mobilité transparente aux couches supérieures.


Le format de cette option est le suivant :


- Type = 9.
- Adresse d’origine : adresse IPv6 du nœud sur le réseau d’origine.
- Sous-options = Toute information supplémentaire nécessaire.




Principe de Base

Principe de l'adressage à 2 niveaux

La mobilité (changement de CoA) est transparente à l'application et les protocoles IP et supérieurs, qui continuent d'utiliser la HA (adresse permanente du MN).


- Les applications utilisent une adresse IP statique : Home Address (HA)
- Le routage se fait en utilisant une adresse topologiquement correcte : care-of-address (CoA)
- Un protocole de niveau 3 convertit la CoA en HA et vice-versa : Mobile IPv6

Principe de base

Je vais détailler le fonctionnement de mobile IPv6 en se basant sur le scénario suivant. Un mobile se déplace d’un réseau Home vers un réseau Foreign. Un équipement (routeur) sur le réseau Home joue le rôle de Home Agent. Un nœud (machine) sur un réseau distant est en communication avec le réseau Home.

Enregistrement auprès du Home Agent

Dès qu’un nœud détecte qu’il est désormais dans un nouveau réseau, il fait appel à ICMPv6 qui procède à l’auto configuration d’une nouvelle adresse IP. Cette nouvelle adresse est l’adresse de care-of du nœud.

Il envoie alors à son Home Agent un BU contenant cette nouvelle adresse pour lui permettre de faire l’association avec l’adresse d’origine du nœud. Le Home Agent répond par un BAck.

Routage triangulaire

Le travail du Home Agent consiste alors à intercepter les paquets destinés au nœud mobile. Cela est possible par la procédure suivante : envoi par le Home Agent d’un message ICMPv6 (Neighbor Advertisement) sur le réseau Home ,lui permettant d’associer son adresse MAC avec l’adresse IP d’origine du nœud mobile. Tout paquet destiné au nœud est ainsi reçu par le Home Agent qui se charge d’envoyer ce paquet au nœud mobile en utilisant le mécanisme d’encapsulation IPv6.

Le nœud mobile envoie ses paquets directement au correspondant en utilisant comme adresse source son care-of-address (afin d’éviter le mécanisme d’ingress filtering), tout en incluant l’option Home Address afin de garantir la transparence de la mobilité. Sur la figure ci-dessous on peut observer une anomalie qui existe alors dans le routage.


Optimisation

Le problème est que le Correspondant Node (CN) envoie tous ses paquets au Mobile Node (MN) via le Home Agent (HA). De plus le routage triangulaire induit une latence et une charge de réseau supérieur.
Pour éviter ce routage triangulaire, un nœud mobile peut envoyer un BU à tout nœud correspondant qu’il soit mobile ou stationnaire. Ainsi le nœud correspondant effectue un appariement entre l’adresse d’origine du nœud mobile et son adresse de care-of-address. Dans ce cas le nœud correspondant n’utilise pas l’encapsulation mais la méthode suivante :

Avant d’envoyer un paquet le nœud consulte son cache pour trouver un appariement. S’il existe il envoie le paquet en y incluant l’option Routing Header. La route spécifiée dans cette option est constituée de deux sauts. Le premier est l’adresse care-of-address du nœud, le second est l’adresse d’origine du nœud. Ainsi lorsque le nœud reçoit le paquet, il l’envoie vers le saut suivant qui n’est d’autre que son adresse d’origine. Ainsi le paquet fera un bouclage à l’intérieur de sa pile protocolaire garantissant ainsi la transparence aux couches supérieures.


Sécurité

Pour protéger Mobile Ipv6 contre les attaques il a été prévu dans le protocole de protéger les Binding Updates et les Binding Acknowledgements. Ainsi tout paquet contenant un BU ou un BAck devra être protégé par IPsec afin de contrer toute tentative de forger des BU ou des BAck par une tierce personne. Plus particulièrement on doit assurer l’authentification de la source, l’intégrité des données et la protection contre le rejeu. Cela devra être assuré par le mécanisme de Authentication Header ou AH comme définit dans IPsec. Si les données doivent aussi être chiffrées on utilisera le mécanisme de Encrypted Security Payload ou ESP en même temps que AH.


Limites

La principale limite du protocole est un problème de performance pur dû à la latence du HandOver (transfert intercellulaire). Le délai de latence du HandOver est trop important, car le délai de découverte du changement de réseau et d'acquisition d'une nouvelle adresse temporaire est grand. De plus, il en est de même avec le délai d'enregistrement auprès du "Home Agent" et des "Correspondants Node".

A grande vitesse (TVG) ou pour les applications dites "temps réelle", les échanges décrivents plus haut ne permette pas de garantir une bonne connectivité. Des pertes de paquets seront perceptibles, et des interruptions de connexion puis de communications sont fréquents.