Once we have configured all nodes, we only have to enable the Mobile IPv6 modules. To do this, in every node (Mobile Node, Home Agent and Correspondent Node) we have to executed the next:
/etc/init.d/mobile-ip6 start
This command enables Mobile IPv6 in every node. If the Mobile Node is in the Home Network, it works normally, sending and receiving packets.
To run the radvd, you should execute the following:
/etc/init.d/radvd start
When the Mobile Node isn't in the Home Network, it needs to acquire a new IPv6 address from the Foreign Network (its Care-of address). Then, the Mobile Node sends to its Home Agent a Binding Registration packet to inform the Home Agent about its new location (Binging Update optional header).
This packet is received by the Home Agent and replies it with a Binding Acknowledgement packet. Now, the Mobile Node's IPv6 address will be the primary care-of address, and the Home Agent will intercept every packet sent to the Mobile Node using Neighbour Discovery and forward them to the Mobile Node using IPv6 encapsultaion.
Every time the Mobile Node changes its location, will send a Binding Update to inform to its Home Agent.
You can test Mobile IPv6 connecting the Mobile Node to different subnetworks, seeing how it automatically configures the new care-of addresses and checking it goes on in communication with the Correspondent Node.
In this page you can view applications with IPv6 support in Debian GNU/Liunx.