5. Quelques tests

5.1. Pré-requis

Il est nécessaire d'effectuer chaque configuration comme indiqué précédemment. Il est particulièrement important de disposer d'identifiants ESSID différents pour le réseau domestique et pour le réseau d'accueil.

Au démarrage de la mobilité IPv6 sur la station mobile MN, des sollicitations de routeurs en multidiffusion apparaissent :

# tcpdump -i eth0 -vv ip6 or proto ipv6

...
13:32:54.681763 fe80::202:a5ff:fe6f:a08a > ff02::2: icmp6: router solicitation \
(src lladdr: 0:2:a5:6f:a0:8a) (len 16, hlim 255)

13:32:55.681763 fe80::202:a5ff:fe6f:a08a > ff02::2: icmp6: router solicitation \
(src lladdr: 0:2:a5:6f:a0:8a) (len 16, hlim 255)

13:32:57.681765 fe80::202:a5ff:fe6f:a08a > ff02::2: icmp6: router solicitation \
(src lladdr: 0:2:a5:6f:a0:8a) (len 16, hlim 255)
...

5.2. Détection des déplacements

La détection des déplacements repose sur la détection d'indisponibilité des voisins pour décider que le routeur par défaut n'est plus joignable. La station mobile doit alors découvrir un nouveau routeur par défaut, souvent avec un nouveau lien.

Pour voir plus facilement ce qui se passe, l'emploi de trois consoles différentes est suggéré pour les commandes suivantes :

# watch ifconfig eth0
# watch route -A inet6
# tcpdump -i eth0 -vv ip6 or proto ipv6

Pour « migrer » vers un nouveau réseau, on emploie la commande suivante au niveau de la station mobile MN :

# iwconfig eth1 essid visitnet

La station mobile MN appartient alors au nouveau réseau sans fil et comme elle émet des « sollicitations de routeurs » (en multicast), l'AR répond avec son préfixe. La station mobile MN se configure alors avec une nouvelle adresse IPv6 issue du préfixe reçu et de son adresse MAC. ifconfig eth0 permet de voir la nouvelle adresse IPv6 :

# ifconfig eth0
eth0  Link encap:Ethernet  HWaddr 00:90:7D:F3:03:1A
      inet6 addr: fec0:106:1100:0:290:7dff:fef3:31a/64 Scope:Site 1
      inet6 addr: fec0:106:2700:0:290:7dff:fef3:31a/64 Scope:Site 2
      inet6 addr: fec0:106:2700::4/64 Scope:Site                  3
      inet6 addr: fe80::290:7dff:fef3:31a/64 Scope:Link           4
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:854 errors:154 dropped:154 overruns:0 frame:148
      TX packets:293 errors:58 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:100
      RX bytes:96536 (94.2 Kb)  TX bytes:44664 (43.6 Kb)
      Interrupt:3 Base address:0x100
1

La nouvelle adresse « distante » obtenue par combinaison du préfixe de l'AR et de l'adresse MAC.

2

L'adresse superflue dans le réseau d'origine (due aux annonces radvd de HA et à l'activation d'autoconf au niveau de MN).

3

L'adresse domestique « d'origine ».

4

L'adresse lien-local établie au démarrage.

À peu près au même moment, la station mobile MN effectue une mise à jour d'association avec la station d'accueil HA. Plusieurs paquets à destination de HA apparaissent dans le terminal. On vérifie que la mise à jour d'association a été envoyée et acquittée au niveau de la station mobile MN :

# mipdiag -s
Mobile IPv6 Statistics
NEncapsulations           : 0
NDecapsulations           : 0
NBindUpdatesRcvd          : 0
NBindAcksRcvd             : 1    1
NBindNAcksRcvd            : 0
NBindRqsRcvd              : 0
NBindUpdatesSent          : 1    2
NBindAcksSent             : 0
NBindNAcksSent            : 0
NBindRqsSent              : 0
NBindUpdatesDropAuth      : 0
NBindUpdatesDropInvalid   : 0
NBindUpdatesDropMisc      : 0
NBindAcksDropAuth         : 0
NBindAcksDropInvalid      : 0
NBindAcksDropMisc         : 0
NBindRqsDropAuth          : 0
NBindRqsDropInvalid       : 0
NBindRqsDropMisc          : 0
1

Réception d'un accusé de réception d'association.

2

Envoi d'une mise à jour d'association.

La commande suivante permet, elle aussi, de vérifier l'association (au niveau de la station mobile MN) :

# mipdiag -l
Mobile IPv6 Binding update list
Recipient CN: fec0:106:2700::2
BINDING home address: fec0:106:2700::4 care-of address: fec0:106:1100:0:290:7dff:fef3:31a
        expires: 936 sequence: 0 state: 1
        delay: 3 max delay 32 callback time: 736

La vérification est également possible, au niveau de la station d'accueil HA, au moyen de l'option d'affichage des statistiques (-s) et de l'option d'affichage du « cache des liaisons » (-c) :

# mipdiag -c
Mobile IPv6 Binding cache
Home Address      Care-of Address                    Lifetime  Type
fec0:106:2700::4  fec0:106:1100:0:290:7dff:fef3:31a  971       2

5.3. ping6

On effectue un ping à destination de l'interface eth1 (fec0:106:1100::1) d'AR depuis la station mobile MN :

# ping6 fec0:106:1100::1
PING fec0:106:1100::1(fec0:106:1100::1) from fec0:106:2700::4 : 56 data bytes
64 bytes from fec0:106:1100::1: icmp_seq=1 ttl=62 time=8.01 ms
64 bytes from fec0:106:1100::1: icmp_seq=2 ttl=62 time=8.02 ms
...

tcpdump affiche les paquets à la volée :

12:13:51.789688 fec0:106:1100:0:202:a5ff:fe6f:a08a > fec0:106:2700::2: \  1
fec0:106:2700::4 > fec0:106:1100::1: icmp6: echo request \ 2
(len 64, hlim 64) (len 104, hlim 255)

12:13:51.797675 fec0:106:2700::2 > fec0:106:1100:0:202:a5ff:fe6f:a08a: \ 3
fec0:106:1100::1 > fec0:106:2700::4: icmp6: echo reply \
(len 64, hlim 62) (len 104, hlim 253)
1

Le paquet transite de la station mobile MN à HA avec la nouvelle adresse IPv6 de la station mobile.

2

Le paquet transite ensuite de HA à AR.

3

AR répond à HA et renvoie les paquets au moyen du tunnel avec MN.

Les statistiques ont été mises à jour (au niveau de la station mobile MN) :

# mipdiag -s
Mobile IPv6 Statistics
NEncapsulations           : 56
NDecapsulations           : 25
...

5.4. La table de routage IP du noyau

Entre autres choses intéressantes, MIPv6 repositionne la route par défaut vers le tunnel. La nouvelle route devient :

# route -A inet6
Kernel IPv6 routing table
Destination      Next Hop       Flags Metric Ref    Use Iface
::/0             ::             UD    64     0        0 ip6tnl1
....

On peut ajouter la nouvelle route manuellement si elle n'apparaît pas automatiquement :

# ip route ::/0 via dev ip6tnl

5.5. Traversée de plusieurs réseaux distants

La traversée de plusieurs réseaux n'est pas différente de la migration vers un réseau. Il faut juste garder à l'esprit qu'une nouvelle adresse est créée pour chaque réseau visité.

Une station mobile MN se déplace entre plusieurs réseaux distants.

  1. MN va d'abord dans « visitnet » comme vu précédemment.

  2. MN passe ensuite de « visitnet » à « visitnet2 ».

  3. À son entrée dans « visitnet2 », la station mobile MN crée une nouvelle adresse IPv6 et effectue une mise à jour d'association supplémentaire avec la station d'accueil HA.

  4. MN retourne alors dans son réseau domestique (se reporter à la partie suivante).

Le routeur d'accès AR du réseau « visitnet2 » est configuré de la même façon que le routeur d'accès du réseau « visitnet » à ceci près qu'il emploie l'adresse fec0:106:1000::/64 au lieu de l'adresse fec0:106:1100::/64.

Pour que la station mobile passe du réseau « visitnet » au réseau « visitnet2 », on émet depuis la station mobile MN la commande :

# iwconfig eth0 essid visitnet2

La station mobile MN se reconfigure alors dans le nouveau réseau :

# ifconfig eth0
eth1  Link encap:Ethernet  HWaddr 00:90:7D:F3:03:1A
      inet6 addr: fec0:106:1000:0:290:7dff:fef3:31a/64 Scope:Site 1
      inet6 addr: fec0:106:1100:0:290:7dff:fef3:31a/64 Scope:Site
      inet6 addr: fec0:106:2700:0:290:7dff:fef3:31a/64 Scope:Site
      inet6 addr: fec0:106:2700::4/64 Scope:Site
      inet6 addr: fe80::290:7dff:fef3:31a/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:1073 errors:212 dropped:212 overruns:0 frame:204
      TX packets:371 errors:72 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:100
      RX bytes:120340 (117.5 Kb)  TX bytes:56912 (55.5 Kb)
      Interrupt:3 Base address:0x100
1

La nouvelle adresse obtenue par autoconfiguration dans le réseau « visitnet2 ».

Remarque : il peut s'avérer nécessaire de redémarrer la mobilité IPv6 au niveau de la station mobile MN quand cette dernière arrive dans un nouveau réseau.

# /etc/init.d/mobile-ip6 restart
Stopping Mobile IPv6: OK
Starting Mobile IPv6: OK

La station mobile MN effectue alors une mise à jour d'association avec la station d'accueil HA. On note au passage la nouvelle adresse « temporaire » (care-of) :

# mipdiag -l
Mobile IPv6 Binding update list
Recipient CN: fec0:106:2700::2
BINDING home address: fec0:106:2700::4 care-of address: fec0:106:1000:0:290:7dff:fef3:31a
expires: 973 sequence: 14 state: 1
delay: 3 max delay 32 callback time: 773

Le « cache des liaisons » de la station d'accueil HA a été mis à jour :

# mipdiag -c
Mobile IPv6 Binding cache
Home Address      Care-of Address                    Lifetime  Type
fec0:106:2700::4  fec0:106:1000:0:290:7dff:fef3:31a  943       2

5.6. Retour au réseau domestique

La commande suivante suffit pour ramener la station mobile MN dans son réseau domestique :

# iwconfig eth0 essid homenet

La station mobile MN sait qu'elle est de retour car la station d'accueil HA émet des messages radvd dans lesquels le bit HA (AdvHomeAgentFlag, voir Section 4.2.4, « Configuration de radvd au niveau de la station d'accueil ») est positionné.

On constate que la station mobile MN « est de retour » car le cache des informations de liaison de la station d'accueil HA est purgé (il est vide) :

Mobile IPv6 Binding cache
Home Address      Care-of Address                     Lifetime  Type

5.7. Test en grandeur nature — transition en douceur

Pour bien réaliser le fonctionnement de la mobilité IP, on se sert de GnomeMeeting (se reporter au schéma avec GnomeMeeting) et on initie une conférence. Remarque : il faut employer la dernière version de GnomeMeeting pour avoir accès à la prise en charge d'IPv6. On effectue ensuite un « déplacement » et on constate alors une transition discrète.

GnomeMeeting

GnomeMeeting dans un contexte IPv6 pour tester la mobilité entre réseaux sans fil.