<chapter id="mipmanaging-22"><title>Mobile IP Files and Commands (Reference)</title><highlights><para>This chapter describes the components that are provided with the Solaris implementation
of Mobile IP. To use Mobile IP, you must first configure the Mobile IP configuration
file by using the parameters and commands that are described in this chapter.</para><para>This chapter contains the following information:</para><itemizedlist><listitem><para><olink targetptr="mipmanaging-23" remap="internal">Overview of the Solaris Mobile IP
Implementation</olink></para>
</listitem><listitem><para><olink targetptr="mipmanaging-26" remap="internal">Mobile IP Configuration File</olink></para>
</listitem><listitem><para><olink targetptr="mipmanaging-1" remap="internal">Configuring the Mobility IP Agent</olink></para>
</listitem><listitem><para><olink targetptr="mipmanaging-3" remap="internal">Mobile IP Mobility Agent Status</olink></para>
</listitem><listitem><para><olink targetptr="mipmanaging-36" remap="internal">Mobile IP State Information</olink></para>
</listitem><listitem><para><olink targetptr="mipmanaging-41" remap="internal">netstat Extensions for Mobile IP</olink></para>
</listitem><listitem><para><olink targetptr="mipmanaging-37" remap="internal">snoop Extensions for Mobile IP</olink></para>
</listitem>
</itemizedlist>
</highlights><sect1 id="mipmanaging-23"><title>Overview of the Solaris Mobile IP Implementation</title><para>The mobility agent software incorporates home agent and foreign agent
functionality. The Solaris Mobile IP software does not provide a client mobile node.
Only the agent functionality is provided. Each network with mobility support should
have at least one static (non-mobile) host running this software. </para><para>The following RFC functions are supported in the Solaris implementation of Mobile
IP:</para><itemizedlist><listitem><para><ulink url="http://www.ietf.org/rfc/rfc1918.txt?number=1918" type="text_url">RFC 1918, "Address Allocation for Private Internets"</ulink></para>
</listitem><listitem><para><ulink url="http://www.ietf.org/rfc/rfc2002.txt?number=2002" type="text_url">RFC 2002, "IP Mobility Support" (Agent only) </ulink></para>
</listitem><listitem><para><ulink url="http://www.ietf.org/rfc/rfc2003.txt?number=2003" type="text_url">RFC 2003, "IP Encapsulation Within IP"</ulink></para>
</listitem><listitem><para><ulink url="http://www.ietf.org/rfc/rfc2794.txt?number=2794" type="text_url">RFC 2794, "Mobile IP Network Access Identifier Extension for IPv4"</ulink></para>
</listitem><listitem><para><ulink url="http://www.ietf.org/rfc/rfc3012.txt?number=3012" type="text_url">RFC 3012, "Mobile IPv4 Challenge/Response Extensions"</ulink></para>
</listitem><listitem><para><ulink url="http://www.ietf.org/rfc/rfc3024.txt?number=3024" type="text_url">RFC 3024, "Reverse Tunneling for Mobile IP"</ulink></para>
</listitem>
</itemizedlist><para>The base Mobile IP protocol (RFC 2002) does not address the problem of scalable
key distribution and treats key distribution as an orthogonal issue. The Solaris Mobile
IP software utilizes only manually configured keys, specified in a configuration file.</para><para>The following RFC functions are not supported in the Solaris implementation
of Mobile IP:</para><itemizedlist><listitem><para><ulink url="http://www.ietf.org/rfc/rfc1701.txt?number-1701" type="text_url">RFC 1701, "General Routing Encapsulation"</ulink></para>
</listitem><listitem><para><ulink url="http://www.ietf.org/rfc/rfc2004.txt?number=2004" type="text_url">RFC 2004, "Minimal Encapsulation Within IP"</ulink></para>
</listitem>
</itemizedlist><para>The following functions are not supported in the Solaris implementation
of Mobile IP:</para><itemizedlist><listitem><para>The forwarding of multicast traffic or broadcast traffic by the home
agent to the foreign agent for a mobile node that is visiting a foreign network</para>
</listitem><listitem><para>The routing of broadcast and multicast datagrams through reverse tunnels</para>
</listitem><listitem><para>Private care-of addresses or private home agent addresses</para>
</listitem>
</itemizedlist><para>See the <olink targetdoc="refman1m" targetptr="mipagent-1m" remap="external"><citerefentry><refentrytitle>mipagent</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page
for additional information.</para>
</sect1><sect1 id="mipmanaging-26"><title>Mobile IP Configuration File</title><para>The <command>mipagent</command> command reads configuration information
from the <filename>/etc/inet/mipagent.conf</filename> configuration file at startup.
Mobile IP uses the <filename>/etc/inet/mipagent.conf</filename> configuration file
to initialize the Mobile IP mobility agent. When configured and deployed, the mobility
agent issues periodic router advertisements and responds to router discovery solicitation
messages as well as Mobile IP registration messages. </para><para>See the <olink targetdoc="refman4" targetptr="mipagent.conf-4" remap="external"><citerefentry><refentrytitle>mipagent.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man
page for a description of file attributes. See the <olink targetdoc="refman1m" targetptr="mipagent-1m" remap="external"><citerefentry><refentrytitle>mipagent</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for a description of this file's usage.</para><sect2 id="mipmanaging-28"><title>Configuration File Format</title><para>The Mobile IP configuration file consists of sections. Each section has a unique
name and is enclosed in square brackets. Each section contains one or more labels.
You assign values to the labels by using the following format:</para><screen>[Section_name]
     <replaceable>Label-name</replaceable> = <replaceable>value-assigned</replaceable></screen><para><olink targetptr="mipmanaging-5" remap="internal">Configuration File Sections and Labels</olink> describes
the section names, labels, and possible values.</para>
</sect2><sect2 id="mipmanaging-4"><title>Sample Configuration Files</title><para>The default Solaris installation provides the following sample configuration
files in the <filename>/etc/inet</filename> directory:</para><itemizedlist><listitem><para><filename>mipagent.conf-sample</filename> &ndash; Contains a sample
configuration for a Mobile IP agent that provides both foreign agent and home agent
functionality</para>
</listitem><listitem><para><filename>mipagent.conf.fa-sample</filename> &ndash; Contains a sample
configuration for a Mobile IP agent that provides only foreign agent functionality</para>
</listitem><listitem><para><filename>mipagent.conf.ha-sample</filename> &ndash; Contains a sample
configuration for a Mobile IP agent that provides only home agent functionality</para>
</listitem>
</itemizedlist><para>These sample configuration files contain mobile node address and security settings.
Before you can implement Mobile IP, you must create a configuration file with the
name <filename>mipagent.conf</filename> and place it in the <filename>/etc/inet</filename> directory.
This file contains the configuration settings that satisfy your Mobile IP implementation
requirements. You can also choose one of the sample configuration files, modify it
with your addresses and security settings, and copy it to <filename>/etc/inet/mipagent.conf</filename>.</para><para>For more information, see <olink targetptr="mipimplementing-90" remap="internal">How to Create
the Mobile IP Configuration File</olink>.</para><sect3 id="mipmanaging-7"><title><filename>mipagent.conf-sample</filename> File</title><para>The following listing shows the sections, labels, and values that are contained
in the <filename>mipagent.conf-sample</filename> file. <olink targetptr="mipmanaging-5" remap="internal">Configuration File Sections and Labels</olink> describes the syntax, sections, labels,
and values. </para><screen>[General]
   Version = 1.0    # version number for the configuration file. (required)
   
[Advertisements hme0]
   HomeAgent = yes
   ForeignAgent = yes
   PrefixFlags = yes
   AdvertiseOnBcast = yes
   RegLifetime = 200
   AdvLifetime = 200
   AdvFrequency = 5
   ReverseTunnel = no
   ReverseTunnelRequired = no
   
[GlobalSecurityParameters]
   MaxClockSkew = 300
   HA-FAauth = yes
   MN-FAauth = yes
   Challenge = no
   KeyDistribution = files

[Pool 1]
   BaseAddress = 10.68.30.7
   Size = 4

[SPI 257]
   ReplayMethod = none
   Key = 11111111111111111111111111111111

[SPI 258]
   ReplayMethod = none
   Key = 15111111111111111111111111111111

[Address 10.1.1.1]
   Type = node
   SPI = 258

[Address mobilenode@sun.com]
   Type = node
   SPI = 257
   Pool = 1

[Address Node-Default]
   Type = node
   SPI = 258
   Pool = 1

[Address 10.68.30.36]
   Type = agent    
   SPI = 257[Address 10.68.30.36]    
   Type = agent    
   SPI = 257    
   IPsecRequest = apply {auth_algs md5 sa shared} 
   IPsecReply = permit {auth_algs md5}  
   IPsecTunnel =  apply {encr_algs 3des sa shared}</screen>
</sect3><sect3 id="mipmanaging-8"><title><filename>mipagent.conf.fa-sample</filename> File</title><para>The following listing shows the sections, labels, and values that are contained
in the <filename>mipagent.conf.fa-sample</filename> file. <olink targetptr="mipmanaging-5" remap="internal">Configuration File Sections and Labels</olink> describes the syntax, sections, labels,
and values.</para><para>The <filename>mipagent.conf.fa-sample</filename> file shows a configuration
that provides only foreign agent functionality. This sample file does not contain
a <literal>Pool</literal> section because pools are used only by a home agent. Otherwise,
this file is the same as the <filename>mipagent.conf-sample</filename> file.</para><screen>[General]
   Version = 1.0    # version number for the configuration file. (required)
   
[Advertisements hme0]
   HomeAgent = no
   ForeignAgent = yes
   PrefixFlags = yes
   AdvertiseOnBcast = yes
   RegLifetime = 200
   AdvLifetime = 200
   AdvFrequency = 5
   ReverseTunnel = yes
   ReverseTunnelRequired = no
   
[GlobalSecurityParameters]
   MaxClockSkew = 300
   HA-FAauth = yes
   MN-FAauth = yes
   Challenge = no
   KeyDistribution = files

[SPI 257]
   ReplayMethod = none
   Key = 11111111111111111111111111111111

[SPI 258]
   ReplayMethod = none
   Key = 15111111111111111111111111111111

[Address 10.1.1.1]
   Type = node
   SPI = 258

[Address 10.68.30.36]
   Type = agent    
   SPI = 257[Address 10.68.30.36]    
   Type = agent    
   SPI = 257    
   IPsecRequest = apply {auth_algs md5 sa shared} 
   IPsecReply = permit {auth_algs md5}  
   IPsecTunnel = apply {encr_algs 3des sa shared}</screen>
</sect3><sect3 id="mipmanaging-9"><title><filename>mipagent.conf.ha-sample</filename> File</title><para>The following listing shows the sections, labels, and values that are contained
in the <filename>mipagent.conf.ha-sample</filename> file. <olink targetptr="mipmanaging-5" remap="internal">Configuration File Sections and Labels</olink> describes the syntax, sections, labels,
and values. </para><para>The <filename>mipagent.conf.ha-sample</filename> file shows a configuration
that provides only home agent functionality. Otherwise, this file is the same as the <filename>mipagent.conf-sample</filename> file.</para><screen>[General]
   Version = 1.0    # version number for the configuration file. (required)
   
[Advertisements hme0]
   HomeAgent = yes
   ForeignAgent = no
   PrefixFlags = yes
   AdvertiseOnBcast = yes
   RegLifetime = 200
   AdvLifetime = 200
   AdvFrequency = 5
   ReverseTunnel = yes
   ReverseTunnelRequired = no

[GlobalSecurityParameters]
   MaxClockSkew = 300
   HA-FAauth = yes
   MN-FAauth = yes
   Challenge = no
   KeyDistribution = files

[Pool 1]
   BaseAddress = 10.68.30.7
   Size = 4

[SPI 257]
   ReplayMethod = none
   Key = 11111111111111111111111111111111

[SPI 258]
   ReplayMethod = none
   Key = 15111111111111111111111111111111

[Address 10.1.1.1]
   Type = node
   SPI = 258

[Address mobilenode@sun.com]
   Type = node
   SPI = 257
   Pool = 1

[Address Node-Default]
   Type = node
   SPI = 258
   Pool = 1[Address 10.68.30.36]
    Type = agent    
    SPI = 257    
    IPsecRequest = apply {auth_algs md5 sa shared} 
    IPsecReply = permit {auth_algs md5}  
    IPsecTunnel = apply {encr_algs 3des sa shared}</screen>
</sect3>
</sect2><sect2 id="mipmanaging-5"><title>Configuration File Sections and Labels</title><para>The Mobile IP configuration file contains the following sections:</para><itemizedlist><listitem><para><literal>General</literal> (Required)</para>
</listitem><listitem><para><literal>Advertisements</literal> (Required)</para>
</listitem><listitem><para><literal>GlobalSecurityParameters</literal> (Optional)</para>
</listitem><listitem><para><literal>Pool</literal> (Optional)</para>
</listitem><listitem><para><literal>SPI</literal> (Optional)</para>
</listitem><listitem><para><literal>Address</literal> (Optional)</para>
</listitem>
</itemizedlist><para>The <literal>General</literal> and <literal>GlobalSecurityParameters</literal> sections
  contain information relevant to the operation of the Mobile IP agent. These sections
can appear only once in the configuration file.</para><sect3 id="mipmanaging-12"><title><literal>General</literal> Section</title><para>The <literal>General</literal> section contains only one label: the version
number of the configuration file. The <literal>General</literal> section has the following
syntax:</para><screen>[General]
     Version = 1.0</screen>
</sect3><sect3 id="mipmanaging-13"><title><literal>Advertisements</literal> Section</title><para>The <literal>Advertisements</literal> section contains the <literal>HomeAgent</literal> and <literal>ForeignAgent</literal> labels, as well as other labels. You
must include a different <literal>Advertisements</literal> section for each interface
on the local host that provides Mobile IP services. The <literal>Advertisements</literal> section
has the following syntax:</para><screen>[Advertisements <replaceable>interface</replaceable>]
     HomeAgent = &lt;yes/no>
     ForeignAgent = &lt;yes/no>
     .
     .</screen><para>Typically, your system has a single interface, such as <literal>eri0</literal> or <literal>hme0</literal>, and supports both home agent and foreign agent operations. If this
situation exists for the example <literal>hme0</literal>, then the <literal>yes</literal> value
is assigned to both the <literal>HomeAgent</literal> and <literal>ForeignAgent</literal> labels
as follows:</para><screen>[Advertisements hme0]
     HomeAgent = yes
     ForeignAgent = yes
     .
     .</screen><para>For advertisement over dynamic interfaces, use '*' for the device ID part. For
example, <replaceable>Interface-name</replaceable> ppp* actually implies all PPP interfaces
that are configured after the <command>mipagent</command> daemon has been started.
All the attributes in the advertisement section of a dynamic interface type remain
the same.</para><para>The following table describes the labels and values that you can use in
the <literal>Advertisements</literal> section.</para><table frame="topbot" pgwide="100" id="mipimplementing-tbl-38b"><title><literal>Advertisements</literal> Section Labels and Values</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colname="colspec0" colwidth="160.20*"/><colspec colname="colspec1" colwidth="70.45*"/><colspec colname="colspec2" colwidth="165.34*"/><thead><row><entry><para>Label</para>
</entry><entry><para>Value</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>HomeAgent</literal></para>
</entry><entry><para><literal>yes</literal> or <literal>no</literal></para>
</entry><entry><para>Determines if the <command>mipagent</command> daemon provides home agent
functionality.</para>
</entry>
</row><row><entry><para><literal>ForeignAgent</literal></para>
</entry><entry><para><literal>yes</literal> or <literal>no</literal></para>
</entry><entry><para>Determines if <command>mipagent</command> provides foreign agent functionality.</para>
</entry>
</row><row><entry><para><literal>PrefixFlags</literal></para>
</entry><entry><para><literal>yes</literal> or <literal>no</literal></para>
</entry><entry><para>Specifies if advertisements include the optional prefix-length extension.</para>
</entry>
</row><row><entry><para><literal>AdvertiseOnBcast</literal></para>
</entry><entry><para><literal>yes</literal> or <literal>no</literal></para>
</entry><entry><para>If <literal>yes</literal>, advertisements are sent on <literal>255.255.255.255</literal>, rather than <literal>224.0.0.1</literal>.</para>
</entry>
</row><row><entry><para><literal>RegLifetime</literal></para>
</entry><entry><para><literal>n</literal></para>
</entry><entry><para>The maximum lifetime value that is accepted in registration requests,
in seconds.</para>
</entry>
</row><row><entry><para><literal>AdvLifetime</literal></para>
</entry><entry><para><literal>n</literal></para>
</entry><entry><para>The maximum length of time that the advertisement is considered valid
in the absence of further advertisements, in seconds.</para>
</entry>
</row><row><entry><para><literal>AdvFrequency</literal></para>
</entry><entry><para><literal>n</literal></para>
</entry><entry><para>Time between two consecutive advertisements, in seconds.</para>
</entry>
</row><row><entry><para><literal>ReverseTunnel</literal></para>
</entry><entry><para><literal>yes</literal> or <literal>no</literal><literal>FA</literal> or <literal>HA</literal> or <literal>both</literal></para>
</entry><entry><para>Determines if <literal>mipagent</literal> provides reverse-tunnel functionality. </para><para>The value <literal>yes</literal> means that both the foreign agent and home
agent support reverse tunneling. The value <literal>no</literal> means that the interface
does not support reverse tunneling.</para><para>The value <literal>FA</literal> means that the foreign agent supports
reverse tunneling. The value <literal>HA</literal> means that the home agent supports
reverse tunneling. The value <literal>both</literal> means that both the foreign agent
and home agent support reverse tunneling.</para>
</entry>
</row><row><entry><para><literal>ReverseTunnelRequired</literal></para>
</entry><entry><para><literal>yes</literal> or <literal>no</literal></para>
</entry><entry><para>Determines if <command>mipagent</command> requires reverse tunnel functionality.
Consequently, determines if a mobile node must request a reverse tunnel during registration.</para><para>The value <literal>yes</literal> means that both the foreign agent and home
agent require a reverse tunnel. The value <literal>no</literal> means that the interface
does not require a reverse tunnel.</para><para>The value <literal>FA</literal> means that the foreign agent requires
a reverse tunnel. The value <literal>HA</literal> means that the home agent requires
a reverse tunnel.</para>
</entry>
</row><row><entry><para><literal>AdvInitCount</literal></para>
</entry><entry><para><literal>n</literal></para>
</entry><entry><para>Determines the initial number of unsolicited advertisements. The default
value is 1. This value is meaningful only if <literal>AdvLimitUnsolicited</literal> is <literal>yes</literal>.</para>
</entry>
</row><row><entry><para><literal>AdvLimitUnsolicited</literal></para>
</entry><entry><para><literal>yes</literal> or <literal>no</literal></para>
</entry><entry><para>Enables or disables a limited number of unsolicited advertisements over
the mobility interface.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect3><sect3 id="mipmanaging-16"><title><literal>GlobalSecurityParameters</literal> Section</title><para>The <literal>GlobalSecurityParameters</literal> section contains the labels <literal>maxClockSkew</literal>, <literal>HA-FAauth</literal>, <literal>MN-FAauth</literal>, <literal>Challenge</literal>, and <literal>KeyDistribution</literal>. This section has the
following syntax:</para><screen>[GlobalSecurityParameters]
     MaxClockSkew = <replaceable>n</replaceable>
     HA-FAauth = &lt;yes/no>
     MN-FAauth = &lt;yes/no>
     Challenge = &lt;yes/no>
     KeyDistribution = files</screen><para>The Mobile IP protocol provides message replay protection by allowing
timestamps to be present in the messages. If the clocks differ, the home agent returns
an error to the mobile node with the current time and the mobile node can register
again by using the current time. You use the <literal>MaxClockSkew</literal> label
to configure the maximum number of seconds that differ between the home agent and
the mobile node's clocks. The default value is 300 seconds. </para><para>The <literal>HA-FAauth</literal> and <literal>MN-FAauth</literal> labels enable
or disable the requirement for home-foreign and mobile-foreign authentication, respectively.
The default value is disabled. You use the <literal>challenge</literal> label so that
the foreign agent issues challenges to the mobile node in its advertisements. The
label is used for replay protection. The default value is disabled here, also.</para><para>The following table describes the labels and values that you can use in
the <literal>GlobalSecurityParameters</literal> section.</para><table frame="topbot" id="mipimplementing-tbl-38c"><title><literal>GlobalSecurityParameters</literal> Section Labels and Values</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="110.97*"/><colspec colwidth="60.63*"/><colspec colwidth="224.39*"/><thead><row><entry><para>Label</para>
</entry><entry><para>Value</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>MaxClockSkew</literal></para>
</entry><entry><para><literal>n</literal></para>
</entry><entry><para>The number of seconds that <command>mipagent</command> accepts as a difference
between its own local time and the time that is found in registration requests</para>
</entry>
</row><row><entry><para><literal>HA-FAauth</literal></para>
</entry><entry><para><literal>yes</literal> or <literal>no</literal></para>
</entry><entry><para>Specifies if HA-FA authentication extensions must be present in registration
requests and replies</para>
</entry>
</row><row><entry><para><literal>MN-FAauth</literal></para>
</entry><entry><para><literal>yes</literal> or <literal>no</literal></para>
</entry><entry><para>Specifies if MN-FA authentication extensions must be present in registration
requests and replies</para>
</entry>
</row><row><entry><para><literal>Challenge</literal></para>
</entry><entry><para><literal>yes</literal> or <literal>no</literal></para>
</entry><entry><para>Specifies if the foreign agent includes challenges in its mobility advertisements</para>
</entry>
</row><row><entry><para><literal>KeyDistribution</literal></para>
</entry><entry><para><literal>files</literal></para>
</entry><entry><para>Must be set to files</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect3><sect3 id="mipmanaging-17"><title><literal>Pool</literal> Section</title><para>Mobile nodes can be assigned dynamic addresses by the home agent. Dynamic
address assignment is done within the <literal>mipagent</literal> daemon independently
of DHCP. You can create an address pool that can be used by mobile nodes by requesting
a home address. Address pools are configured through the <literal>Pool</literal> section
in the configuration file.</para><para>The <literal>Pool</literal> section contains the <literal>BaseAddress</literal> and <literal>Size</literal> labels. The <literal>Pool</literal> section has the following syntax:</para><screen>[Pool <replaceable>pool-identifier</replaceable>]
     BaseAddress = <replaceable>IP-address</replaceable>
     Size = <replaceable>size</replaceable></screen><note><para>If you use a <literal>Pool</literal> identifier, then it must also exist
in the mobile node's <literal>Address</literal> section.</para>
</note><para>You use the <literal>Pool</literal> section to define address pools that
can be assigned to the mobile nodes. You use the <literal>BaseAddress</literal> label
to set the first IP address in the pool. You use the <literal>Size</literal> label
to specify the number of addresses available in the pool.</para><para>For example, if IP addresses <literal>192.168.1.1</literal> through <literal>192.168.1.100</literal> are reserved in pool 10, the <literal>Pool</literal> section
has the following entry:</para><screen>[Pool 10]
     BaseAddress = 192.168.1.1
     Size = 100</screen><note><para>Address ranges should not encompass the broadcast address. For example,
you should not assign <literal>BaseAddress = 192.168.1.200</literal> and <literal>Size = 60</literal>, because this range encompasses the broadcast address <literal>192.168.1.255</literal>.</para>
</note><para>The following table describes the labels and values that are used in the <literal>Pool</literal> section.</para><table frame="topbot" id="mipimplementing-tbl-38e"><title><literal>Pool</literal> Section
Labels and Values</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="84*"/><colspec colwidth="89*"/><colspec colwidth="223*"/><thead><row><entry><para>Label</para>
</entry><entry><para>Value</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>BaseAddress</literal></para>
</entry><entry><para><literal>n.n.n.n</literal> </para>
</entry><entry><para>First address in the address pool</para>
</entry>
</row><row><entry><para><literal>Size</literal></para>
</entry><entry><para><literal>n</literal></para>
</entry><entry><para>Number of addresses in the pool</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect3><sect3 id="mipmanaging-14"><title><literal>SPI</literal> Section</title><para>Because the Mobile IP protocol requires message authentication, you must
identify the security context by using a security parameter index (SPI). You define
the security context in the <literal>SPI</literal> section. You must include a different <literal>SPI</literal> section for each security context that is defined. A numerical ID identifies
the security context. The Mobile IP protocol reserves the first 256 SPIs. Therefore,
you should use only SPI values greater than 256. The <literal>SPI</literal> section
contains security-related information, such as shared secrets and replay protection.</para><para>The <literal>SPI</literal> section also contains the <literal>ReplayMethod</literal> and <literal>Key</literal> labels. The <literal>SPI</literal> section has the following syntax:</para><screen>[SPI <replaceable>SPI-identifier</replaceable>]
     ReplayMethod = &lt;none/timestamps>
     Key = <replaceable>key</replaceable></screen><para>Two communicating peers must share the same SPI identifier. You must configure
them with the same key and replay method. You specify the key as a string of hexadecimal
digits. The maximum length is 16 bytes. For example, if the key is 16 bytes long,
and contains the hexadecimal values <literal>0</literal> through <literal>f</literal>,
the key string might resemble the following:</para><screen>Key = 0102030405060708090a0b0c0d0e0f10</screen><para>Keys must have an even number of digits, corresponding to the two digits per
byte representation.</para><para>The following table describes the labels and values that you can use in
the <literal>SPI</literal> section.</para><table frame="topbot" id="mipimplementing-tbl-38d"><title><literal>SPI</literal> Section
Labels and Values</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="84.00*"/><colspec colwidth="77.14*"/><colspec colwidth="234.86*"/><thead><row><entry><para>Label</para>
</entry><entry><para>Value</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>ReplayMethod</literal></para>
</entry><entry><para><literal>none</literal> or <literal>timestamps</literal></para>
</entry><entry><para>Specifies the type of replay authentication used for the SPI</para>
</entry>
</row><row><entry><para><literal>Key</literal></para>
</entry><entry><para><literal>x</literal></para>
</entry><entry><para>Authentication key in hexadecimal</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect3><sect3 id="mipmanaging-15"><title><literal>Address</literal> Section</title><para>The Solaris implementation of Mobile IP enables you to configure mobile
nodes using one of three methods. Each method is configured in the <literal>Address</literal> section. The first method follows the traditional Mobile IP protocol, and
requires that each mobile node have a home address. The second method enables a mobile
node to be identified through its Network Access Identifier (NAI). The last method
enables you to configure a <emphasis>default</emphasis> mobile node, which can be
used by any mobile node that has the proper SPI value and related keying material.</para><sect4 id="mipmanaging-29"><title>Mobile Node</title><para>The <literal>Address</literal> section for a mobile node contains the <literal>Type</literal> and <literal>SPI</literal> labels that define the address type and
SPI identifier. The <literal>Address</literal> section has the following syntax:</para><screen>[Address <replaceable>address</replaceable>]
     Type = node
     SPI = <replaceable>SPI-identifier</replaceable></screen><para>You must include an <literal>Address</literal> section in a home agent's
configuration file for each mobile node that is supported.</para><para>If Mobile IP message authentication is required between the foreign agent
and home agent, you must include an <literal>Address</literal> section for each peer
with which an agent needs to communicate. </para><para>The SPI value that you configure must represent an <literal>SPI</literal> section
that is present in the configuration file.</para><para>You can also configure private addresses for a mobile node.</para><para>The following table describes the labels and values that you can use in
the <literal>Address</literal> section for a mobile node.</para><table frame="topbot" id="mipimplementing-tbl-38f"><title><literal>Address</literal> Section
Labels and Values (Mobile Node)</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="84*"/><colspec colwidth="89*"/><colspec colwidth="223*"/><thead><row><entry><para>Label</para>
</entry><entry><para>Value</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>Type</literal></para>
</entry><entry><para><literal>node</literal> </para>
</entry><entry><para>Specifies that the entry is for a mobile node</para>
</entry>
</row><row><entry><para><literal>SPI</literal></para>
</entry><entry><para><literal>n</literal></para>
</entry><entry><para>Specifies the SPI value for the associated entry</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect4><sect4 id="mipmanaging-43"><title>Mobility Agent</title><para>The <literal>Address</literal> section for a mobility agent contains the <literal>Type</literal> and <literal>SPI</literal> labels that define the address type and
SPI identifier. This section also contains IPsec request, reply, and
tunnel labels. The <literal>Address</literal> section for a mobility agent has
the following syntax:</para><screen>[Address <replaceable>address</replaceable>]
     Type = agent
     SPI = <replaceable>SPI-identifier</replaceable>
     IPsecRequest = <replaceable>action</replaceable> {<replaceable>properties</replaceable>} [: <replaceable>action</replaceable> {<replaceable>properties</replaceable>}]
     IPsecReply = <replaceable>action</replaceable> {<replaceable>properties</replaceable>} [: <replaceable>action</replaceable> {<replaceable>properties</replaceable>}]
     IPsecTunnel = <replaceable>action</replaceable> {<replaceable>properties</replaceable>} [: <replaceable>action</replaceable> {<replaceable>properties</replaceable>}]</screen><para>You must include an <literal>Address</literal> section in a home agent's
configuration file for each mobility agent that is supported.</para><para>If Mobile IP message authentication is required between the foreign agent
and the home agent, you must include an <literal>Address</literal> section for each
peer with which an agent needs to communicate. </para><para>The SPI value that you configure must represent an <literal>SPI</literal> section
that is present in the configuration file.</para><para>The following table describes the labels and values that you can use in the <literal>Address</literal> section for a mobility agent.</para><table frame="topbot" id="mipmanaging-tbl-44"><title><literal>Address</literal> Section
Labels and Values (Mobility Agent)</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colname="colspec2" colwidth="33.00*"/><colspec colname="colspec3" colwidth="23.14*"/><colspec colname="colspec4" colwidth="42.86*"/><thead><row><entry><para>Label</para>
</entry><entry><para>Value</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>Type</literal></para>
</entry><entry><para><literal>agent</literal></para>
</entry><entry><para>Specifies that the entry is for a mobility agent</para>
</entry>
</row><row><entry><para><literal>SPI</literal></para>
</entry><entry><para><literal>n</literal></para>
</entry><entry><para>Specifies the SPI value for the associated entry</para>
</entry>
</row><row><entry><para><literal>IPsecRequest</literal></para>
</entry><entry><para><literal>apply</literal> or <literal>permit</literal> (see following note)</para>
</entry><entry><para>IPsec properties to invoke for registration requests to and from this mobility
agent peer</para>
</entry>
</row><row><entry><para><literal>IPsecReply</literal></para>
</entry><entry><para><literal>apply</literal> or <literal>permit</literal> (see following note)</para>
</entry><entry><para>IPsec properties to invoke for registration replies to and from this mobility
agent peer</para>
</entry>
</row><row><entry><para><literal>IPsecTunnel</literal></para>
</entry><entry><para><literal>apply</literal> or <literal>permit</literal> (see following note)</para>
</entry><entry><para>IPsec properties to invoke for tunnel traffic to and from this mobility agent
peer</para>
</entry>
</row>
</tbody>
</tgroup>
</table><note><para>The <literal>apply</literal> values correspond to
outbound datagrams. The <literal>permit</literal> values correspond to inbound datagrams.
Therefore, <literal>IPsecRequest apply</literal> values and <literal>IPsecReply permit</literal> values are used by the foreign agent to send and receive registration datagrams.
The <literal>IPsecRequest permit</literal> values and the <literal>IPsecReply apply</literal> values are used by the home agent to receive and send registration datagrams.</para>
</note>
</sect4><sect4 id="mipmanaging-30"><title>Mobile Node Identified by Its NAI</title><para>The <literal>Address</literal> section for a mobile node that is identified
by its NAI contains the <literal>Type</literal>, <literal>SPI</literal>, and <literal>Pool</literal> labels. The NAI parameter enables you to identify mobile nodes through
their NAI. The <literal>Address</literal> section, using the NAI parameter, has the
following syntax:</para><screen>[Address <replaceable>NAI</replaceable>]
     Type = Node
     SPI = <replaceable>SPI-identifier</replaceable>
     Pool = <replaceable>pool-identifier</replaceable></screen><para>To use pools, you identify mobile nodes through their NAI. The <literal>Address</literal> section permits you to configure an NAI, as opposed to a home address.
An NAI uses the format <literal>user@domain</literal>. You use the <literal>Pool</literal> label
to specify which address pool to use in order to allocate the home address to the
mobile node.</para><para>The following table describes the labels and values that you can use in
the <literal>Address</literal> section for a mobile node that is identified by its
NAI.</para><table frame="topbot" id="mipmanaging-tbl-32"><title><literal>Address</literal> Section
Labels and Values (Mobile Node Identified by Its NAI)</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="84*"/><colspec colwidth="89*"/><colspec colwidth="223*"/><thead><row><entry><para>Label</para>
</entry><entry><para>Value</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>Type</literal></para>
</entry><entry><para><literal>node</literal></para>
</entry><entry><para>Specifies that the entry is for a mobile node</para>
</entry>
</row><row><entry><para><literal>SPI</literal></para>
</entry><entry><para><literal>n</literal></para>
</entry><entry><para>Specifies the SPI value for the associated entry</para>
</entry>
</row><row><entry><para><literal>Pool</literal></para>
</entry><entry><para><literal>n</literal></para>
</entry><entry><para>Allocates the pool from which an address is assigned to a mobile node</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>You must have corresponding <literal>SPI</literal> and <literal>Pool</literal> sections
for the <literal>SPI</literal> and <literal>Pool</literal> labels that are defined
in an <literal>Address</literal> section with a mobile node that is identified by
its NAI, as shown in the following figure.</para><figure id="mipmanaging-fig-35"><title>Corresponding <literal>SPI</literal> and <literal>Pool</literal> Sections for Address Section With Mobile Node Identified by Its NAI</title><mediaobject><imageobject><imagedata entityref="AddressRelation"/>
</imageobject><textobject><simpara>Shows that an SPI of 251 and POOL of 10 correspond to the same
SPI and POOL numbers in the ADDRESS NAI section.</simpara>
</textobject>
</mediaobject>
</figure>
</sect4><sect4 id="mipmanaging-31"><title>Default Mobile Node</title><para>The <literal>Address</literal> section for a default mobile node contains the <literal>Type</literal>, <literal>SPI</literal>, and <literal>Pool</literal> labels. The <literal>Node-Default</literal> parameter enables you to permit all mobile nodes to get service
if they have the correct SPI (defined in this section). The <literal>Address</literal> section,
using the <literal>Node-Default</literal> parameter, has the following syntax:</para><screen>[Address Node-Default]
     Type = Node
     SPI = <replaceable>SPI-identifier</replaceable>
     Pool = <replaceable>pool-identifier</replaceable></screen><para>The <literal>Node-Default</literal> parameter enables you to reduce the size
of the configuration file. Otherwise, each mobile node requires its own section. However,
the <literal>Node-Default</literal> parameter does pose a security risk. If a mobile
node is no longer trusted for any reason, you need to update the security information
on all trusted mobile nodes. This task can be very tedious. However, you can use the <literal>Node-Default</literal> parameter in networks that consider security risks unimportant. </para><para>The following table describes the labels and values that you can use in
the <literal>Address</literal> section for a default mobile node.</para><table frame="topbot" id="mipmanaging-tbl-33"><title><literal>Address</literal> Section
Labels and Values (Default Mobile Node)</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="84*"/><colspec colwidth="89*"/><colspec colwidth="223*"/><thead><row><entry><para>Label</para>
</entry><entry><para>Value</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>Type</literal></para>
</entry><entry><para><literal>node</literal></para>
</entry><entry><para>Specifies that the entry is for a mobile node</para>
</entry>
</row><row><entry><para><literal>SPI</literal></para>
</entry><entry><para><literal>n</literal></para>
</entry><entry><para>Specifies the SPI value for the associated entry</para>
</entry>
</row><row><entry><para><literal>Pool</literal></para>
</entry><entry><para><literal>n</literal></para>
</entry><entry><para>Allocates the pool from which an address is assigned to a mobile node</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>You must have corresponding <literal>SPI</literal> and <literal>Pool</literal> sections
for the <literal>SPI</literal> and <literal>Pool</literal> labels that are defined
in the <literal>Address</literal> section with a default mobile node, as shown in
the following figure.</para><figure id="mipmanaging-fig-34"><title>Corresponding <literal>SPI</literal> and <literal>Pool</literal> Sections for Address Section With a Default Mobile Node</title><mediaobject><imageobject><imagedata entityref="AddressRelationDefault"/>
</imageobject><textobject><simpara>Shows that an SPI of 251 and POOL of 10 correspond to the same
SPI and POOL numbers in the ADDRESS NODE-DEFAULT section.</simpara>
</textobject>
</mediaobject>
</figure>
</sect4>
</sect3>
</sect2>
</sect1><sect1 id="mipmanaging-1"><title>Configuring the Mobility IP Agent</title><para>You can use the <command>mipagentconfig</command> command to configure
the mobility agent. This command enables you to create or modify any parameter in
the <filename>/etc/inet/mipagent.conf</filename> configuration file. Specifically,
you can change any setting. Also, you can add or delete mobility clients, pools, and
SPIs. The <command>mipagentconfig</command> command has the following syntax:</para><screen># mipagentconfig &lt;command> &lt;parameter> &lt;value></screen><para>The following table describes the commands that you can use with <command>mipagentconfig</command> to create or modify parameters in the <filename>/etc/inet/mipagent.conf</filename> configuration file.</para><table frame="topbot" id="mipmanaging-tbl-19"><title><command>mipagentconfig</command> Subcommands</title><tgroup cols="2" colsep="1" rowsep="1"><colspec colwidth="93*"/><colspec colwidth="303*"/><thead><row><entry><para>Command</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><command>add</command></para>
</entry><entry><para>Used to add advertisement parameters, security parameters,	SPIs, and addresses
to the configuration file</para>
</entry>
</row><row><entry><para><command>change</command></para>
</entry><entry><para>Used to change advertisement parameters, security parameters, SPIs, and addresses
in the configuration file</para>
</entry>
</row><row><entry><para><command>delete</command></para>
</entry><entry><para>Used to delete advertisement parameters, security parameters, SPIs, and addresses
from the configuration file</para>
</entry>
</row><row><entry><para><command>get</command></para>
</entry><entry><para>Used to display current values in the configuration file</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>See the <olink targetdoc="refman1m" targetptr="mipagentconfig-1m" remap="external"><citerefentry><refentrytitle>mipagentconfig</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for a description of command parameters and acceptable values. <olink targetptr="mipimplementing-63" remap="internal">Modifying the Mobile IP Configuration File</olink> provides procedures that use the <command>mipagentconfig</command> command.</para>
</sect1><sect1 id="mipmanaging-3"><title>Mobile IP Mobility Agent Status</title><para>You can use the <command>mipagentstat</command> command to display a foreign
agent's visitor list and a home agent's binding table. You can also display the security
associations with an agent's mobility agent peers. To display the foreign agent visitor
list, you use the <command>mipagentstat</command> command's <option>f</option> option.
To display the home agent binding table, you use the <command>mipagentstat</command> command's <option>h</option> option. To display the security associations with an agent's
mobility agent peers, you use the <command>mipagentstat</command> command's <option>p</option> option. The following examples show typical output when the <command>mipagentstat</command> command is used with these options.</para><example id="mipmanaging-ex-20"><title>Foreign Agent Visitor List</title><screen>Mobile Node     Home Agent     Time (s)     Time (s)  Flags
                               Granted      Remaining
--------------- -------------- ------------ --------- -----
foobar.xyz.com  ha1.xyz.com    600          125       .....T.
10.1.5.23       10.1.5.1       1000         10        .....T.</screen>
</example><example id="mipmanaging-ex-21"><title>Home Agent Binding Table</title><screen>Mobile Node     Home Agent     Time (s)     Time (s)  Flags
                               Granted      Remaining
--------------- -------------- ------------ --------- -----
foobar.xyz.com  fa1.tuv.com    600          125       .....T.
10.1.5.23       123.2.5.12     1000         10        .....T.</screen>
</example><example id="mipmanaging-ex-45"><title>Mobility Agent Peer
Security Association Table</title><screen>Foreign                  ..... Security Association(s).....
Agent                    Requests Replies  FTunnel  RTunnel
----------------------   -------- -------- -------- --------
forn-agent.eng.sun.com   AH       AH       ESP      ESP

Home                     ..... Security Association(s) .....
Agent                    Requests Replies  FTunnel  RTunnel
----------------------   -------- -------- -------- --------
home-agent.eng.sun.com   AH       AH       ESP      ESP
ha1.xyz.com              AH,ESP   AH       AH,ESP   AH,ESP</screen>
</example><para>See the <olink targetdoc="refman1m" targetptr="mipagentstat-1m" remap="external"><citerefentry><refentrytitle>mipagentstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for more information about the command's options. <olink targetptr="mipimplementing-5" remap="internal">Displaying Mobility Agent Status</olink> provides procedures that use the <command>mipagentstat</command> command.</para>
</sect1><sect1 id="mipmanaging-36"><title>Mobile IP State Information</title><para>On shutdown, the <command>mipagent</command> daemon stores internal state
information in <filename>/var/inet/mipagent_state</filename>. This event occurs only
when the <literal>mipagent</literal> provides services as a home agent. This state
information includes the list of mobile nodes that are being supported as a home agent,
their current care-of addresses, and remaining registration lifetimes. This state
information also includes the security association configuration with mobility agent
peers. If the <command>mipagent</command> daemon is terminated for maintenance and
restarted, <filename>mipagent_state</filename> is used to recreate as much of the
mobility agent's internal state as possible. The intention is to minimize service
disruption for mobile nodes that might be visiting other networks. If <filename>mipagent_state</filename> exists, it is read immediately after <filename>mipagent.conf</filename> every
time <command>mipagent</command> is started or restarted. </para>
</sect1><sect1 id="mipmanaging-41"><title><command>netstat</command> Extensions for Mobile
IP</title><para>Mobile IP extensions have been added to the <command>netstat</command> command
to identify Mobile IP forwarding routes. Specifically, you can use the <command>netstat</command> command to display a new routing table that is called &ldquo;Source-Specific.&rdquo;
See the <olink targetdoc="refman1m" targetptr="netstat-1m" remap="external"><citerefentry><refentrytitle>netstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page for
more information.</para><para>The following example shows the output of <command>netstat</command> when you
use the <option>nr</option> flags.</para><example id="mipmanaging-ex-42"><title>Mobile IP Output From <command>netstat</command> Command</title><screen>Routing Table:   IPv4 Source-Specific     
Destination      In If     Source      Gateway Flags  Use  Out If
--------------  ------- ------------ --------- -----  ---- -------
10.6.32.11      ip.tun1      --      10.6.32.97  UH      0 hme1
    --          hme1    10.6.32.11       --      U       0 ip.tun1</screen><para>The example shows the routes for a foreign agent that uses a reverse tunnel.
The first line indicates that the destination IP address <literal>10.6.32.11</literal> and
the incoming interface <literal>ip.tun1</literal> select <literal>hme1</literal> as
the interface that forwards the packets. The next line indicates that any packet that
originates from interface <literal>hme1</literal> and source address <literal>10.6.32.11</literal> must be forwarded to <literal>ip.tun1</literal>.</para>
</example>
</sect1><sect1 id="mipmanaging-37"><title><command>snoop</command> Extensions for Mobile IP</title><para>Mobile IP extensions have been added to the <command>snoop</command> command
to identify Mobile IP traffic on the link. See the <olink targetdoc="refman1m" targetptr="snoop-1m" remap="external"><citerefentry><refentrytitle>snoop</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for more information.</para><para>The following example shows the output of <command>snoop</command> that runs
on the mobile node, <literal>mip-mn2</literal>.</para><example id="mipmanaging-ex-40"><title>Mobile IP Output From <command>snoop</command> Command</title><screen>mip-mn2# <userinput>snoop</userinput>
Using device /dev/hme (promiscuous mode)
  mip-fa2 -> 224.0.0.1    ICMP Router advertisement (Lifetime 200s [1]: 
{mip-fa2-80 2147483648}), (Mobility Agent Extension), (Prefix Lengths), 
(Padding)
  mip-mn2 -> mip-fa2   Mobile IP reg rqst 
  mip-fa2 -> mip-mn2   Mobile IP reg reply (OK code 0)</screen>
</example><para>This example shows that the mobile node received one of the periodically sent
mobility agent advertisements from the foreign agent, <literal>mip-fa2</literal>.
Then, <literal>mip-mn2</literal> sent a  registration request to <literal>mip-fa2</literal>, and in response, received a registration reply. The registration reply
indicates that the mobile node successfully registered with its home agent.</para><para>The <command>snoop</command> command also supports IPsec extensions. Consequently,
you can show how registration and tunnel packets are being protected.</para>
</sect1>
</chapter>