Mobile IP for Solaris/Linux
Networking and Security Center
Sun Microsystems Laboratories (Sun
Microsystems, Inc)
(Last Update: Jan 14, 1999)
What is Mobile IP?
Mobile IP is a new proposed standard of the Internet Engineering Task Force
(IETF) designed to support mobile users.
In the traditional Internet architecture, a computer's IP address encodes
its topological location within the Internet and must be changed whenever
the computer is moved to a new network. While newer protocols such as DHCP
simplify address reconfiguration, they do not address related problems.
For example, an address change causes a mobile computer to lose already
established TCP connections. There is also the problem of efficiently propagating
a mobile computer's current address to other computers that may wish to
communicate with it.
Mobile IP allows a mobile computer to be reachable at a fixed IP address
(called its home address) irrespective of its current point of attachment
to the Internet. Transport layer connections are maintained across moves
and all this is accomplished without the need to propagate host-specific
routes throughout the Internet routing fabric.
How does it work?
In brief, Mobile IP works as follows. A mobile computer visiting a foreign
network chooses a care-of address on that subnet and registers it with
its home agent (HA), a special entity residing on its home subnet.
The home agent intercepts IP packets meant for the mobile computer and
tunnels them to the registered care-of address. Tunneling refers
to the process of enclosing the original datagram, as data, inside another
datagram with a new IP header. The destination field in the outer IP header
contains the care-of address -- a topologically significant address --
to which standard IP routing mechanisms can deliver packets. The care-of
address may belong to a specially designated node, a foreign agent
(FA), or may be acquired (perhaps temporarily) by the mobile node, e.g.
through DHCP or PPP. In the latter case, a mobile node is said to have
a co-located care-of address. At the endpoint of the tunnel, the outer
IP header is removed to recover the original IP packet which is then delivered
to the mobile node.
Here's a short article that describes
Mobile IP in greater detail. The complete specification is available as
RFC 2002.
About Solaris Mobile IP
The Solaris implementation of Mobile IP consists of two pieces:
-
The mobility agent software incorporates home agent and foreign agent functionality.
Each network on which mobility support is desired should have at least
one static (non-mobile) host running this software.
-
The mobile node software incorporates mobile node (aka Mobile IP client)
functionality. This software should be run on portable computers that wish
to maintain a fixed IP address irrespective of their current location.
Do NOT use the agent and client code simultaneously on the same host.
]Instructions on obtaining and installing this software are included
below.
The document Solaris Mobile IP: Design and Implementation
(Postscript, PDF)
describes the overall architecture and code organization. It also includes
a section on setting up a Mobile IP testbed and manual pages. As such,
the document should be useful for end users as well as developers interested
in porting and/or enhancing this software.
Note: If you do not have a PDF viewer, you can download it for free
from the Adobe
website.
This implementation also supports firewall traversal as described in:
-
Sun's SKIP Firewall Traversal for Mobile IP, RFC 2356 (Plain
text).
-
Secure and Mobile Networking, to appear in the ACM Journal on Special
Topics in Mobile Networking and Applications (MONET), special issue on
Mobile Networking in the Internet. (PDF)
Using Solaris Mobile IP
Before you install
-
The Solaris Mobile IP software is made available free of cost subject to
the terms and conditions outlined on the license
page. After you indicate your acceptance of these terms, you will be
presented with the URLs containing the software.
This software is an experimental prototype and using it may cause you
to lose valuable information. Back up anything you consider important before
installing this software.
-
Make sure your system satisfies the following hardware and software requirements.
You must have either a SPARC or x86 platform with atleast 16MB of RAM running
Solaris 2.5.1 or 2.6. Do not attempt to use the software on an older release
of Solaris. The software has not been tested on Solaris 7 (aka Solaris
2.7).
-
Make sure you have root access to your system. You will need to be logged
in as root to install and start this software. As such, a certain level
of familiarity with Solaris system administration is assumed. If you do
not have super-user privileges on your system, contact your system administrator.
-
You can either use the pre-compiled binary packages or make your own from
the source code. Various README files included with the source distribution
contain the appropriate instructions. [NOTE: the pre-compiled x86 packages
do not correspond to the latest source code. x86 users are advised to create
new packages from source.]
Installation Steps for Mobility Agent Software
-
Fetch the pre-compiled package appropriate for your hardware platform.
-
SPARC: SUNWmipma-sparc.Z
-
x86: SUNWmipma-x86.Z
Download these files and uncompress them using the uncompress command.
If you use a web browser to download these files, the browser may or may
not uncompress the file for you. Some browsers may incorrectly save a compressed
file without the .Z extension. In this case, you will need to
rename the file with a .Z extension before using uncompress.
-
After you obtain the uncompressed file SUNWmipma-sparc or SUNWmipma-x86,
become super-user for your machine.
Use the pkgadd command to install this package
or
This will create a new directory /opt/SUNWmipma/ and subdirectories
bin, doc and drv underneath it. The bin
subdirectory contains binary executables (e.g. mipagent) and doc
contains documentation. The README file in the doc sub-directory
is a good place to start learning about the software. The tunneling driver
vtunl (along with its configuration file vtunl.conf)
is placed in drv and also copied to /kernel/drv/. A sample
configuration file for the Mobile IP mobility agent, mipagent.conf-sample,
is left in the /etc/opt/SUNWmipma/ directory. You can add /opt/SUNWmipma/bin
to your UNIX path or make the executables and documentation available in
whatever way you typically choose.
-
Copy the sample configuration file to /etc/opt/SUNWmipma/mipagent.conf
and edit it for your local environment. See the documentation on mipagent.conf
or comments in the sample file for details. Once you have created the appropriate
configuration file for your environment, execute the mipagent program
to start the mobility agent.
NOTE: The mipagent program manipulates kernel routing tables.
You may have to kill other programs (like in.rdisc or routed) that also
manipulate routing tables to prevent any adverse interaction.
Installation Steps for Mobile Node Software
-
Fetch the pre-compiled package appropriate for your hardware platform.
-
SPARC: SUNWmipmn-sparc.Z
-
x86: SUNWmipmn-x86.Z
Download these files and uncompress them using the uncompress command.
If you use a web browser to download these files, the browser may or may
not uncompress the file for you. Some browsers may incorrectly save a compressed
file without the .Z extension. In this case, you will need to
rename the file with a .Z extension before using uncompress.
-
After you obtain the uncompressed file SUNWmipmn-sparc or SUNWmipmn-x86,
become super-user for your machine.
Use the pkgadd command to install this package
or
This will create a new directory /opt/SUNWmipmn/ and subdirectories
bin, doc and drv underneath it. The bin
subdirectory contains binary executables (e.g. mn) and doc
contains documentation. The README file in the doc sub-directory
is a good place to start learning about the software. The tunneling driver
vtunl (along with its configuration file vtunl.conf)
is placed in drv and also copied to /kernel/drv/. A sample
configuration file for the Mobile IP mobile node, mipmn.conf-sample,
is left in the /etc/opt/SUNWmipmn/ directory. You can add /opt/SUNWmipmn/bin
to your UNIX path or make the executables and documentation available in
whatever way you typically choose.
-
Copy the sample configuration file to /etc/opt/SUNWmipmn/mipmn.conf
and edit it for your local environment. See the documentation on mipmn.conf
or comments in the sample file for details. Once you have created the appropriate
configuration file for your environment, execute the mipmn program
to start the mobile node.
NOTE: The mipmn program manipulates kernel routing tables. You
may have to kill other programs (like in.rdisc or routed) that also manipulate
routing tables to prevent any adverse interaction.
Contact Information
At this time, the Solaris Mobile IP software is an experimental, unsupported
prototype. Feedback is welcome, however we cannot promise that we will
be able to respond to your feedback.
Send feedback to mobile-ip@lassie.Eng.Sun.COM
Check here from time to time for information regarding the status of
current and future releases of the Solaris Mobile IP prototype.
Other things you should know
Solaris 2.5.1 does not process incoming gratuitous ARPs correctly (the
problem has been fixed in Solaris 2.6). This may interfere with the operation
of the agent software although we believe that there are enough workarounds
in our code that this should not be a problem. The mobile node software
is unaffected by this bug.
Solaris 2.6 is unable to set a host-specific local route unless a corresponding
network route is also set (the problem has been fixed in Solaris 7). This
ability to set a host specific route alone is an important requirement
for the mobile node, e.g. when using a foreign agent as its default router,
a visiting mobile node needs to set a local (zero metric) host route for
the foreign agent but without creating a local route for the entire foreign
network. The mobility agent software is unaffected by this bug. If you
must run the mobile node software under Solaris 2.6, you can try the patched
ip module included below. Be warned that these modules have not been tested
thoroughly --- they are based on the FCS (First Customer Shipment) release
of Solaris 2.6 and our testbed uses a pre-release version of Solaris 2.6
not available to the general public. This bug has been corrected in Solaris
7. In any case, the bug will not interfere with the operation of a mobility
agent (i.e. only the mobile node code is affected).
To try the patched ip module for 2.6, follow these steps as root:
-
In /kernel/drv, move the existing ip module to ip-original.
-
Copy the appropriate patched module (ip-sparc or
ip-x86) to /kernel/drv/ip and reboot.
If you are interested in Mobile IP software for Linux, grab the
source distribution after accepting the license terms and follow instructions
for Linux users in the README file.
Page Last Updated: Jan 14, 1999 -- vg