INTRODUCTION

Mobile IPv6 (or Mobility support in IPv6) provides transparent
mobility for Internet Protocol version 6.  Protocols above IP should
not be affected.

This file describes how to install MIPL Mobile IPv6 for Linux
userspace tools.  See INSTALL.kernel for the kernel part.


INSTALLATION

After you have succesfully installed and configured the kernel part of
MIPL, you still have to compile and install the userspace tools.  Run
'configure' to create Makefile and mobile-ip6 for your system.  Check
that the Makefile directories are in order for your system.  Run
'make' and 'make install' to compile and install userlevel tools, man
pages, init scripts and example configuration files.  These are
mandatory for the module to work correctly.  You also need to create
the device file for MIPL with 'mknod /dev/mipv6_dev c 0xf9 0'.

The essential files are installed in following directories:

mipdiag		/sbin			all

man pages	/usr/man		all

init script	/etc/rc.d/init.d	RH6
		/etc/init.d		RH7 & Debian
		/sbin/init.d		SuSE

config files	/etc/sysconfig		RH6 & RH7
		/etc			Debian & SuSE

docs		/usr/share/doc		ALL

Configuration scripts are tested only in RH6, RH7 and Debian.  They
are not guaranteed to work on other systems.


CONFIGURATION

Now configure MIPL for your system.  MIPL configuration file is
network-mip6.conf(5).  It is pretty self-explanatory but you may want
to take a look at the man pages.  For run-time configuration and
diagnostics use mipdiag(8).  See manual page for usage information.


USAGE

Included in the package the is an automatic startup script called
"mobile-ip6" for the module.  Use "mobile-ip6 start" to start the
module by hand and "mobile-ip6 stop" to unload.  This script reads the
configuration files and configures module accordingly.

Module may also be loaded by hand using insmod.  You cannot set Home
Address nor Home Agent Address with insmod so Mobile Node will be left
in a state where it does not know these addresses until given with
mipdiag(8).  See provided init script for insmod options available.

Automatic startup in RedHat and Debian

On RedHat and Debian systems all init scripts are in /etc/init.d (or
/etc/rc.d/init.d in older RedHats).  Runlevel directories /etc/rc?.d
(or /etc/rc.d/rc?.d in older RedHats) contain symbolic links to actual
scripts.  Links are managed in RedHat with chkconfig tool and in
Debian with update-rc.d (both similar to IRIX chkconfig).  Doing
'chkconfig mobile-ip6 --levels 345 on' in RedHat or 'update-rc.d
mobile-ip6 start 75 3 4 5 stop 05 1 2 6' in Debian will set up all
necessary links.


NOTE ON DYNAMIC HOME AGENT ADDRESS DISCOVERY SUPPORT

MIPL supports Dynamic Home Agent Address Discovery.  However, DHAAD
uses anycast which is not supported in Linux IPv6 stack and requires
some tricks.  To use DHAAD you must configure Home Agents Anycast
address for your Home Agent.  If you have multiple HAs in your home
subnet you must assign the address to just one of them.  Furthermore
this address must be the first global address assigned to the
interface due to broken source address selection (anycast address
should never be used as source address).  HA supporting DHAAD must
also run radvd (or other software capable of sending Router
Advertisements with MIPv6 extensions) and advertise itself with H-bit
(Home Agent) and R-bit (Router Address) set on every interface it
serves as a Home Agent.  To enable DHAAD in Mobile Node, use mipdiag
-H without an address.

Proxy duplicate address detection as a part of home registration

Home Agent performs duplicate address detection (DAD) for the home
address of MN, when MN registers it initially. With multihomed MNs you
should always set the highest (largest) preference to the home
interface to avoid problems with proxy DAD. Otherwise MN will try to
register its home address with HA through the interface with the
highest preference, even though the home interface is still at home.

RADVD and movement detection of Mobile Node

A Router Advertisement Daemon (radvd) should be installed on the
routers of home and foreign networks which the mobile node may visit.
Official radvd supports Mobile IPv6 extensions since version 0.6.2.
radvd can be downloaded from:
 
   http://v6web.litech.org/radvd/

The radvd package includes needed installation and configuration
notes. For optimal detection of movement by MN, you should set the
router advertisement interval on in router advertisements.

Mobile node can also poll the current router periodically using
neighbor solicitations to verify its reachability. The sending of
neighbor solicitations is done, if the mobile node has not received a
router advertisement from it default router within the advertisement
interval or for the maximum time router can be reachable.  

The default value for the reachable time is 5 seconds and can be
configured between 1 and 1000 seconds by setting
/proc/sys/net/ipv6/mobility/max_router_reachable_time to the desired
value. For example to set 2 seconds as the time: "echo 2 >
/proc/sys/net/ipv6/mobility/max_router_reachable_time".

Mobile Node currently supports modified eager cell switching and lazy
cell switching, with eager cell switching being the default movement
detection algorithm. This can be configured by setting
/proc/sys/net/ipv6/mobility/eager_cell_switching to 0 (for lazy cell
switching) or 1 (for eager cell switching).

