Routing Datagrams to and From Mobile Nodes
This section describes how mobile nodes, home agents, and foreign agents cooperate to
route datagrams for mobile nodes that are connected to a foreign network.
See Overview of the Solaris Mobile IP Implementation for Mobile IP functions that are supported in the Solaris OS.
Home agents and foreign agents use one of the available encapsulation methods to
support datagrams that use a tunnel. Defined encapsulation methods are IP-in-IP Encapsulation, Minimal
Encapsulation, and Generic Routing Encapsulation. Foreign agent and home agent cases, or indirect
colocated mobile node and home agent cases, must support the same encapsulation method.
All Mobile IP entities are required to support IP-in-IP Encapsulation.
Unicast Datagram Routing
When registered on a foreign network, the mobile node uses the following rules
to choose a default router:
If the mobile node is registered and uses a foreign agent care-of address, the process is straightforward. The mobile node chooses its default router from among the router addresses that are advertised in the ICMP router advertisement portion of that agent advertisement. The mobile node can also consider the IP source address of the agent advertisement as another possible choice for the IP address of a default router.
The mobile node might be registered directly with the home agent by using a colocated care-of address. Then, the mobile node chooses its default router from among those routers that are advertised in any ICMP router advertisement message that it receives. The network prefix of the chosen default router must match the network prefix of the care-of address of the mobile node that is externally obtained. The address might match the IP source address of the agent advertisement under the network prefix. Then, the mobile node can also consider that IP source address as another possible choice for the IP address of a default router.
If the mobile node is registered, a foreign agent that supports reverse tunnels routes unicast datagrams from the mobile node to the home agent through the reverse tunnel. If the mobile node is registered with a foreign agent that provides reverse tunnel support, the mobile node must use that foreign agent as its default router.
When a home agent receives a broadcast datagram or multicast datagram, the
home agent only forwards the datagram to mobile nodes that have specifically requested that
they receive them. How the home agent forwards broadcast and multicast datagrams to
mobile nodes depends primarily on two factors. Either that mobile node is
using a foreign-agent provided care-of address, or the mobile node is using its
own colocated care-of address. The former means that the datagram must be double
encapsulated. The first IP header identifies the mobile node for which the datagram
is to be delivered. This first IP header is not present in the
broadcast or multicast datagram. The second IP header identifies the care-of address, and
is the usual tunnel header. In the latter instance, the mobile node is
decapsulating its own datagrams, and the datagram needs only to be sent through
the regular tunnel.
Multicast Datagram Routing
To begin receiving multicast traffic when a mobile node is visiting a
foreign subnet, a mobile node can join a multicast group in any of
the following ways:
If the mobile node is using a colocated care-of address, the mobile node can use this address as the source IP address of any Internet Group Management Protocol (IGMP) join messages. However, a multicast router must be present on the visited subnet.
If the mobile node wants to join the ICMP group from its home subnet, the mobile node must use a reverse tunnel to send IGMP join messages to the home agent. However, the mobile node's home agent must be a multicast router. The home agent then forwards multicast datagrams through the tunnel to the mobile node.
If the mobile node is using a colocated care-of address, the mobile node can use this address as the source IP address of any IGMP join messages. However, a multicast router must be present on the visited subnet. After the mobile node has joined the group, the mobile node can participate by sending its own multicast packets directly on the visited network.
Multicast routing depends on the IP source address. A mobile node
that is sending a multicast datagram must send the datagram from a valid
source address on that link. So a mobile node that is sending
multicast datagrams directly on the visited network must use a colocated care-of address
as the IP source address. Also, the mobile node must have joined the
multicast group that is associated with the address. Similarly, a mobile node
that joined a multicast group while on its home subnet before roaming, or
joined the multicast group while roaming through a reverse tunnel to its
home agent, must use its home address as the IP source address of
the multicast datagram. Thus, the mobile node must have these datagrams reverse-tunneled to
its home subnet as well, either through itself by using its colocated care-of
address, or through a foreign agent reverse tunnel.
While it seems more efficient for a mobile node to always join
from the subnet that the mobile node is visiting, it is still a
mobile node. Consequently, the mobile node would have to repeat the join every
time the mobile node switches subnets. The more efficient way is for the
mobile node to join through its home agent, and not have to carry
this overhead. Also, multicast sessions might be present that are only available from
the home subnet. Other considerations might also force the mobile node to
participate in a specific way.