系统管理指南:IP 服务

第 5 部分 移动 IP

本部分介绍移动 Internet 协议 (Mobile Internet Protocol, Mobile IP) 以及移动 IP 的管理任务。可以在膝上型计算机和无线通信设备等系统上安装移动 IP,从而使这些计算机能够运行于外部网络上。


注 –

在 Solaris 10 8/07 之后的所有 Oracle Solaris : 更新中已删除移动 IP 功能。


第 27 章 移动 IP(概述)

移动 Internet 协议 (Internet Protocol, IP) 用来实现移动计算机之间的信息传输。移动计算机包括膝上型计算机和无线通信设备。移动计算机可以将其位置更改到外地网络。在外地网络中,移动计算机仍然可通过移动计算机的家乡网络进行通信。Solaris 移动 IP 实现仅支持 IPv4。

本章包含以下信息:

有关与移动 IP 相关的任务,请参阅第 28 章。有关移动 IP 的参考资料,请参阅第 29 章

移动 IP 的新增功能

在 Solaris 10 8/07 之后的 Solaris 10 更新中已删除移动 IP 功能。

移动 IP 简介

当前版本的 Internet 协议 (Internet Protocol, IP) 假定计算机在固定位置连接到 Internet 或网络。还假定计算机的 IP 地址可标识与其相连接的网络。向计算机发送的数据报基于 IP 地址中包含的位置信息。许多 Internet 协议都要求节点的 IP 地址保持不变。如果其中的任一协议在移动 IP 计算设备上处于活动状态,则应用该协议将失败。如果不是因为 TCP 连接具有暂时性,即便是 HTTP 也将失败。更新 IP 地址和刷新 Web 页面不会造成负担。

如果移动计算机(即移动节点)移到新网络后其 IP 地址保持不变,则移动节点的地址不会反映新连接点。因此,所存在的路由协议无法将数据报正确路由到该移动节点。必须使用表示新位置的其他 IP 地址来重新配置移动节点。指定其他 IP 地址会比较麻烦。因此,在当前 Internet 协议下,如果移动节点在移动后其地址不变,则会失去路由。如果移动节点确实对其地址进行更改,则会失去连接。

移动 IP 通过允许移动节点使用两个 IP 地址,可以解决上述问题。第一个地址是家乡地址,它是固定的。第二个地址是转交地址,它在每个新连接点都会发生变化。移动 IP 允许计算机在 Internet 上自由漫游。另外,它还允许计算机在组织的网络上自由漫游,同时仍保持其家乡地址不变。因此,当用户更改计算机的连接点时,通信活动不会中断。相反,会使用移动节点的新位置对网络进行更新。有关与移动 IP 相关联的术语的定义,请参见词汇表

下图显示了一般的移动 IP 拓扑。

图 27–1 移动 IP 拓扑

显示移动节点家乡代理的家乡网络与外地代理的外地网络之间的关系。

通过使用该图中的移动 IP 拓扑,以下情形说明了数据报是如何在移动 IP 框架的不同点之间移动的。

  1. Internet 主机使用移动节点的家乡地址向移动节点发送数据报(此为标准的 IP 路由过程)。

  2. 如果移动节点位于家乡网络,则数据报会通过常规 IP 进程传送到移动节点。否则,数据报将传送到家乡代理。

  3. 如果移动节点位于外地网络,则家乡代理将数据报转发到外地代理。家乡代理必须将数据报封装到外部数据报中,以便外地代理的 IP 地址出现在外部 IP 数据包头。

  4. 外地代理将数据报传送到移动节点。

  5. 数据报通过使用标准的 IP 路由过程从移动节点发送到 Internet 主机。如果移动节点位于外地网络上,则包会传送到外地代理。外地代理随后会将数据报转发到 Internet 主机。

  6. 如果存在入口过滤 (ingress filtering),则发送数据报的子网的源地址在拓扑结构上必须正确,否则路由器无法转发数据报。如果移动节点和通信节点之间的链路上存在这种情况,则外地代理需要提供反向隧道连接支持。然后,外地代理即可将移动节点所发送的每个数据报传送到其家乡代理。家乡代理随后将转发数据报,所使用的路径即是移动节点驻留在家乡网络的情况下数据报应采用的路径。此过程保证数据报必须遍历的所有链路的源地址均正确。

有关无线通信的信息,请参阅图 27–1,它描述了如何使用无线收发器将数据报传送到移动节点。此外,Internet 主机和移动节点之间的所有数据报也都使用移动节点的家乡地址。即使移动节点位于外地网络上,仍会使用家乡地址。转交地址仅用于与移动代理进行通信。转交地址对于 Internet 主机不可见。

移动 IP 功能实体

移动 IP 引入了下列新的功能实体:

移动 IP 的工作原理

使用移动 IP 可将 IP 数据报路由到移动节点。无论移动节点连接到何处,移动节点的家乡地址可始终标识该移动节点。如果移动节点不在家乡网络上,则转交地址将与移动节点的家乡地址相关联。转交地址可提供有关移动节点当前连接点的信息。移动 IP 使用注册机制向家乡代理注册转交地址。

家乡代理可将数据报从家乡网络重定向到转交地址。家乡代理会构造一个新的包含移动节点转交地址的 IP 数据包头,将其用作目标 IP 地址。这个新的 IP 数据包头用于封装初始 IP 数据报。因此,移动节点的家乡地址不会影响已封装数据报的路由,直到数据报到达转交地址为止。这种类型的封装被称为隧道连接。数据报到达转交地址之后,将对数据报解除封装。然后,将数据报传送到移动节点。

下图显示了驻留在家乡网络(网络 A)上的移动节点在移动到外地网络(网络 B)之前的情形。这两个网络都支持移动 IP。移动节点始终与其家乡地址 128.226.3.30 相关联。

图 27–2 驻留在家乡网络上的移动节点

说明一个驻留在其家乡网络上的移动节点及其与家乡代理的连接,以及与外地代理的关系。

下图显示了已经移到外地网络(网络 B)的移动节点。家乡网络(网络 A)上的家乡代理会拦截发往移动节点的数据报,并对数据报进行封装。然后,数据报会发送到网络 B 上的外地代理。外地代理会去除外部头,然后将数据报传送到位于网络 B 上的移动节点。

图 27–3 移到外地网络的移动节点

说明一个当前驻留在外地网络上的移动节点及其与外地代理的连接,以及与家乡代理的关系。

转交地址可能属于外地代理。它可能由移动节点通过动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) 或点对点协议 (Point-to-Point Protocol, PPP) 获取。对于后一种情况,移动节点具有协同定位的转交地址。

移动代理(家乡代理和外地代理)通过使用代理通告消息来通告其是否存在。移动节点也可以选择请求代理通告消息。移动节点可使用通过代理请求消息在本地连接的任何移动代理。移动节点使用代理通告确定移动节点是在家乡网络上还是在外地网络上。

移动节点使用特殊注册过程通知家乡代理有关移动节点的当前位置。移动节点会始终“侦听”移动代理通告以确定移动代理是否存在。移动节点使用这些通告帮助确定移动节点何时移到另一个子网。如果移动节点确定其已移到新位置,则会使用新的外地代理将注册消息转发到家乡代理。移动节点从一个外地网络移到另一个外地网络时,会使用同一过程。

如果移动节点检测到其位于家乡网络上,则移动节点将不使用移动服务。移动节点返回到家乡网络时,会向家乡代理取消注册

代理搜索

移动节点使用一种称为代理搜索的方法来确定以下信息:

移动代理将代理通告传送到网络上的通告服务。如果没有代理通告,则移动节点可以请求通告。此功能称为代理请求。如果某个移动节点可支持自己的协同定位转交地址,则该移动节点可以使用常规路由器通告来实现相同功能。

代理通告

移动节点使用代理通告确定可连接到 Internet 或组织网络的当前连接点。代理通告是一种扩展的 Internet 控制消息协议 (Internet Control Message Protocol, ICMP) 路由器通告,扩展的功能是可以执行移动代理通告扩展。

外地代理 (foreign agent, FA) 可能太忙,无法为其他移动节点提供服务。但是,外地代理必须继续发送代理通告。这样,已经向外地代理注册的移动节点就会知道自己尚未移至外地代理的范围外。该移动节点还知道外地代理仍在正常运行。若一个移动节点向外地代理注册后,不再从该代理收到代理通告,则会知道自己不能再与该外地代理进行通信。

通过动态接口发送代理通告

可以配置外地代理的实现,使其通过动态创建的接口发送通告。还可以选择是否限制通过通告接口发送的未经请求的通告数量。动态创建的接口定义为仅限于在 mipagent 守护进程启动后配置的那些接口。对于支持瞬间移动接口的应用程序,通过动态接口发送通告非常有用。此外,通过限制未经请求的通告,可能还可以节省网络带宽。

代理请求

每个移动节点都应实现代理请求。对于为 ICMP 路由器的请求消息指定的代理请求,移动节点使用相同的过程、缺省值和常数。

移动节点可限制其发送请求的速率。移动节点在搜索代理时,可以发送三个初始请求,其最大速率为每秒一个请求。移动节点向某个代理注册之后,发送请求的速率会降低,从而限制本地网络上的开销。

转交地址

移动 IP 提供了以下两种获取转交地址的模式:

协同定位转交地址可使移动节点在没有外地代理的情况下正常工作。因此,移动节点可以在尚未部署外地代理的网络中使用协同定位的转交地址。

如果某个移动节点正在使用协同定位的转交地址,则该移动节点必须位于由该转交地址的网络前缀标识的链路上。否则,发往该转交地址的数据报将无法传送。

具有反向隧道连接的移动 IP

移动 IP 的工作原理一节假定在 Internet 内进行路由与数据报的源地址无关。但是,中间路由器可能会检查源地址的拓扑是否正确。如果中间路由器确实进行了检查,则移动节点需要设置反向隧道。通过设置从转交地址到家乡代理的反向隧道,可确保 IP 数据包源地址的拓扑正确无误。反向隧道支持由外地代理和家乡代理进行通告。移动节点在注册时,可以请求在外地代理和家乡代理之间建立反向隧道。反向隧道始于移动节点的转交地址,止于家乡代理。下图显示了使用反向隧道的移动 IP 拓扑。

图 27–4 具有反向隧道的移动 IP

说明移动节点如何通过反向隧道与通信节点通信。

有限的专用地址支持

其专用地址无法通过 Internet 进行全局路由的移动节点需要使用反向隧道。Solaris 移动 IP 支持设置了专用地址的移动节点。有关 Solaris 移动 IP 不支持的功能,请参见Solaris 移动 IP 实现的概述

无需外部连接时,企业可以使用专用地址。专用地址无法通过 Internet 路由。如果某个移动节点具有专用地址,则该移动节点只能通过将其数据报经由反向隧道传送到其家乡代理来与通信节点通信。然后,家乡代理会将数据报传送到通信节点,其传送方式即是移动节点位于家乡网络上时通常传送数据报的方式。下图显示了一个由两个具有专用地址的移动节点组成的网络拓扑。在向同一个外地代理注册时,这两个移动节点使用相同的转交地址。

图 27–5 驻留在同一外地网络上的具有专用地址的移动节点

说明由两个具有专用地址的移动节点组成的一个网络拓扑,在向同一个外地代理注册时,这两个移动节点使用相同的转交地址。

如果转交地址和家乡代理地址属于通过公共 Internet 连接的不同域,则这些地址必须是可以进行全局路由的地址。

同一个外地网络可以包括两个将同一 IP 地址作为专用地址的移动节点。但是,每个移动节点必须具有不同的家乡代理。另外,每个移动节点还必须位于单个外地代理的不同通告子网上。下图显示了描述此情况的网络拓扑。

图 27–6 驻留在不同外地网络上的具有专用地址的移动节点

说明由两个具有专用地址的移动节点组成的网络拓扑,这两个移动节点驻留在不同的外地网络上。

移动 IP 注册

移动节点通过使用代理通告检测它们何时从一个子网移动到另一个子网。当移动节点收到一个代理通告,指示其位置已更改时,它会通过外地代理进行注册。即使移动节点可能已获取了自己的协同定位的转交地址,仍会提供此功能,以便允许在站点上限制对移动服务的访问。

移动 IP 注册提供了一种灵活的机制,允许移动节点向家乡代理传送关于当前可访问性的信息。在注册过程中,移动节点可执行下列任务:

注册消息在移动节点、外地代理和家乡代理之间交换信息。在注册过程中,可在家乡代理上创建或修改移动绑定,并使移动节点的家乡地址与移动节点的转交地址在指定的生命周期内相关联。

在注册过程中,移动节点还可执行下列功能:

移动 IP 可以为移动节点定义下列注册过程:

这些注册过程包括交换注册请求和注册回复消息。移动节点使用外地代理进行注册时,注册过程会采用以下步骤,如下图所示:

  1. 移动节点向将来的外地代理发送注册请求,从而开始执行注册过程。

  2. 外地代理处理注册请求,然后将该请求中继到家乡代理。

  3. 家乡代理向外地代理发送注册回复以准许或拒绝该请求。

  4. 外地代理处理注册回复,然后将回复中继到移动节点,以向其通告该请求的处理情况。

图 27–7 移动 IP 注册过程

说明一个通过外地代理向家乡代理注册的移动节点。

当移动节点直接向家乡代理注册时,注册过程仅需执行以下步骤:

另外,外地代理或者家乡代理可能需要反向隧道。如果外地代理支持反向隧道连接,则移动节点可以使用注册过程来请求反向隧道。移动节点可在要求反向隧道的注册请求中设置反向隧道标志。

网络访问标识符 (Network Access Identifier, NAI)

Internet 中使用的验证、授权和记帐 (authentication, authorization, and accounting, AAA) 服务器可为拨号计算机提供验证和授权服务。这些服务对于尝试使用移动 IP 连接到包含 AAA 服务器的外部域的移动节点可能同样重要。AAA 服务器使用网络访问标识符 (Network Access Identifier, NAI) 来标识客户机。移动节点可以通过在移动 IP 注册请求中包括 NAI 来自行标识。

因为 NAI 通常用于唯一标识移动节点,所以移动节点的家乡地址不必总是提供该功能。因此,移动节点可以对其自身进行验证。所以,可以授权移动节点连接到外部域,甚至不必具有家乡地址。要请求指定家乡地址,可使用包含移动节点 NAI 扩展的消息将注册请求中的家乡地址字段设置为零。

移动 IP 消息验证

每个移动节点、外地代理和家乡代理都支持各种移动 IP 组件之间的移动安全关联。安全关联通过安全参数索引 (security parameter index, SPI) 和 IP 地址建立索引。如果是移动节点,则此地址为移动节点的家乡地址。移动节点和家乡代理之间的注册消息是通过移动节点-家乡代理验证扩展进行验证的。除了必需的移动节点-家乡代理验证,还可以使用可选的移动节点-外地代理和家乡代理-外地代理验证。

移动节点注册请求

移动节点使用注册请求消息向家乡代理进行注册。因此,家乡代理可以为该移动节点创建或修改移动绑定(例如,使用新生命周期)。外地代理可以将注册请求中继到家乡代理。但是,如果移动节点要注册协同定位的转交地址,则它可以向家乡代理直接发送注册请求。如果外地代理通告必须将注册消息发送到外地代理,则移动节点必须向外地代理发送注册请求。

注册回复消息

移动代理会向发送了注册请求消息的移动节点返回一条注册回复消息。如果移动节点通过外地代理请求服务,该外地代理将接收来自家乡代理的回复。然后,该外地代理会将回复中继到移动节点。回复消息中包含向移动节点和外地代理通告注册请求状态所必需的代码,还包含由家乡代理授予的生命周期。该生命周期可能比初始请求的生命周期短。注册回复中还可以包含动态家乡地址分配。

外地代理注意事项

外地代理在移动 IP 注册中主要充当被动角色。外地代理会将所有已注册的移动节点添加到访问者列表中。外地代理可以在移动节点和家乡代理之间中继注册请求。另外,当外地代理提供转交地址时,外地代理还会对数据报解除封装,以便将其传送到移动节点。外地代理还会定期发送代理通告消息,以通告其是否存在。

如果家乡代理和外地代理支持反向隧道,并且移动节点请求建立反向隧道,则外地代理随后会将所有包从移动节点经由隧道发送到家乡代理。然后,家乡代理会将包发送到通信节点。与此过程相反,家乡代理会将移动节点的所有包通过隧道发送到外地代理,从而传送到移动节点。支持反向隧道的外地代理将通告一条消息,表明支持在注册过程中使用反向隧道。由于存在本地策略,如果未设置反向隧道标志,外地代理可能会拒绝注册请求。当移动节点访问外地代理上的不同接口时,外地代理只能对多个具有相同(专用)IP 地址的移动节点进行区分。对于正向隧道,外地代理可以通过查找传入隧道接口来区分共享相同专用地址的多个移动节点。传入隧道接口映射到一个唯一的家乡代理地址。

家乡代理注意事项

家乡代理在注册过程中充当主动角色。家乡代理从移动节点接收注册请求。注册请求可能由外地代理进行中继。家乡代理可针对该移动节点更新其移动绑定的记录。家乡代理会发出适当的注册回复以响应每个注册请求。当移动节点不在家乡网络上时,家乡代理也会将包转发到该移动节点。

家乡代理可能不必为移动节点配置物理子网。但是,家乡代理在准许注册时,必须能够通过 mipagent.conf 文件或某种其他机制来识别移动节点的家乡地址。有关 mipagent.conf 的更多信息,请参阅创建移动 IP 配置文件

家乡代理可以通过在 mipagent.conf 文件中配置具有专用地址的移动节点来支持这些节点。家乡代理使用的家乡地址必须唯一。

动态家乡代理搜索

在某些情况下,当移动节点尝试注册时,它可能不知道家乡代理的地址。如果移动节点不知道家乡代理的地址,则它可以使用动态的家乡代理地址解析来获知该地址。在这种情况下,移动节点可将注册请求的家乡代理字段设置为其家乡网络的子网定向的广播地址。每个家乡代理在收到包含广播目标地址的注册请求后,都会通过返回一个拒绝注册回复来拒绝移动节点的注册。这样,当移动节点下次尝试注册时,它可使用拒绝回复中指明的家乡代理的单点传送 IP 地址。

在移动节点和其他代理之间相互路由数据报

本节介绍移动节点、家乡代理和外地代理如何协作,以针对连接到外地网络的移动节点路由数据报。有关 Solaris OS 中支持的移动 IP 功能,请参见Solaris 移动 IP 实现的概述

封装方法

家乡代理和外地代理使用可用的封装方法之一来支持使用隧道的数据报。所定义的封装方法包括 IP-in-IP 封装、最小封装和通用路由封装。包含外地代理和家乡代理的方案或包含间接协同定位的移动节点和家乡代理的方案必须支持相同的封装方法。所有的移动 IP 实体都是支持 IP-in-IP 封装所必需的。

单点传送数据报路由

在外地网络上注册后,移动节点将使用下列规则来选择缺省路由器:

广播数据报

家乡代理收到广播数据报或多点传送数据报后,仅会将这些数据报转发到已专门请求接收它们的移动节点。家乡代理如何将广播数据报和多点传送数据报转发到移动节点主要取决于两个因素。移动节点或者使用外地代理提供的转交地址,或者使用自己的协同定位转交地址。前者意味着数据报必须进行双重封装。第一个 IP 数据包头用来标识要传送其数据报的移动节点。第一个 IP 数据包头在广播数据报或多点传送数据报中不存在。第二个 IP 数据包头即是通常的隧道头,用来标识转交地址。如果是后者,则移动节点对自己的数据报解除封装,从而只需通过常规隧道发送数据报。

多点传送数据报路由

要在移动节点访问外部子网时开始接收多点传送流量,可以通过下列任一方法将移动节点加入到多点传送组中:

多点传送路由取决于源 IP 地址。正在发送多点传送数据报的移动节点必须从该链路上的有效源地址发送数据报。因此,正在所访问的网络上直接发送多点传送数据报的移动节点必须使用协同定位的转交地址作为源 IP 地址。另外,移动节点还必须已经加入了与该地址相关联的多点传送组。同样,如果移动节点在漫游之前已经在其内部子网上加入了多点传送组,或者在漫游时通过指向其家乡代理的反向隧道加入了多点传送组,则必须使用移动节点的家乡地址作为多点传送数据报的源 IP 地址。因此,移动节点还必须通过使用其协同定位的转交地址或者通过外地代理的反向隧道,将这些数据报以反向隧道方式发送到其内部子网。

虽然看起来移动节点始终从它访问的子网加入效率会更高,但它仍然是移动节点。因此,移动节点每切换一次子网,都必须重复执行加入操作。对它来说,一种更高效的方法就是通过其家乡代理加入,这样就不必负担因重复加入而产生的开销。另外,还可能存在只能从内部子网加入的多点传送会话。其他注意事项也可能会强制移动节点以特定方式参与。

移动 IP 的安全注意事项

在许多情况下,移动计算机使用无线链接来连接到网络。无线链路特别容易受到被动窃听、主动重放攻击和其他主动攻击。

因为移动 IP 意识到它无法减少或消除此漏洞,所以移动 IP 会使用验证的形式来保护移动 IP 注册消息免受这些类型的攻击。所使用的缺省算法是 MD5,密钥的大小为 128 位。缺省的操作模式要求在要散列的数据前后都使用这个 128 位密钥。外地代理使用 MD5 来支持验证,还会使用 128 位或更多位的密钥以及手动密钥分发方法。移动 IP 可以支持多种验证算法、算法模式、密钥分发方法和密钥大小。

这些方法确实可防止移动 IP 注册消息被修改。不过,当移动 IP 实体收到与以前的移动 IP 注册消息重复的消息时,移动 IP 还会使用重放保护的形式来警告这些实体。如果未使用此保护方法,那么,当移动节点或其家乡代理接收注册消息时,两者可能会变得不同步。因此,移动 IP 需要对其状态进行更新。例如,通过外地代理注册移动节点时,家乡代理会收到一条重复的取消注册消息。

可通过称为 nonce时间标记的方法来确保实现重放保护。当前值和时间标记由家乡代理和移动节点在移动 IP 注册消息内进行交换。验证机制可保护当前值和时间标记不会更改。因此,如果家乡代理或移动节点收到重复的消息,则可将该消息丢弃。

使用隧道可能会产生重大漏洞,尤其是在注册未经过验证时。另外,地址解析协议 (Address Resolution Protocol, ARP) 也未经过验证,可能会用于窃取另一台主机的流量。

第 28 章 管理移动 IP(任务)

本章提供用来在移动 IP 配置文件中修改、添加、删除和显示参数的过程,还介绍如何显示移动代理的状态。

本章包含以下信息:

有关移动 IP 的介绍,请参阅第 27 章。有关移动 IP 的详细信息,请参阅第 29 章


注 –

在 Solaris 10 8/07 之后的 Solaris 10 更新中已删除移动 IP 功能。


创建移动 IP 配置文件(任务列表)

任务 

说明 

参考 

创建移动 IP 配置文件。 

涉及到创建 /etc/inet/mipagent.conf 文件或复制其中一个样例文件。

如何创建移动 IP 配置文件

配置 General 部分。

涉及到在移动 IP 配置文件的 General 部分中键入版本号。

如何配置 General 部分

配置 Advertisements 部分。

涉及到在移动 IP 配置文件的 Advertisements 部分中添加或更改标签和值。

如何配置 Advertisements 部分

配置 GlobalSecurityParameters 部分。

涉及到在移动 IP 配置文件的 GlobalSecurityParameters 部分中添加或更改标签和值。

如何配置 GlobalSecurityParameters 部分

配置 Pool 部分。

涉及到在移动 IP 配置文件的 Pool 部分中添加或更改标签和值。

如何配置 Pool 部分

配置 SPI 部分。

涉及到在移动 IP 配置文件的 SPI 部分中添加或更改标签和值。

如何配置 SPI 部分

配置 Address 部分。

涉及到在移动 IP 配置文件的 Address 部分中添加或更改标签和值。

如何配置 Address 部分

创建移动 IP 配置文件

本节介绍如何规划移动 IP 和创建 /etc/inet/mipagent.conf 文件。

Procedure如何规划移动 IP

首次配置 mipagent.conf 文件时,需要执行下列任务:

  1. 根据您工作单位对主机的要求,确定移动 IP 代理可以提供的功能:

    • 仅外地代理功能

    • 仅家乡代理功能

    • 外地代理功能和家乡代理功能

  2. 使用本节中描述的过程创建 /etc/inet/mipagent.conf 文件并指定所需的设置。还可以将下列文件之一复制到 /etc/inet/mipagent.conf 并根据您的要求对其进行修改:

    • 为了实现外地代理功能,请复制 /etc/inet/mipagent.conf.fa-sample

    • 为了实现家乡代理功能,请复制 /etc/inet/mipagent.conf.ha-sample

    • 为了同时实现外地代理功能和家乡代理功能,请复制 /etc/inet/mipagent.conf-sample

  3. 可以重新引导系统,以便调用可启动 mipagent 守护进程的引导脚本。还可以通过键入以下命令来启动 mipagent


    # /etc/inet.d/mipagent start

Procedure如何创建移动 IP 配置文件

  1. 在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 使用下列选项之一创建 /etc/inet/mipagent.conf 文件:

    • /etc/inet 目录中,创建一个名为 mipagent.conf 的空文件。

    • 从下面的列表中,复制要为 /etc/inet/mipagent.conf 文件提供所需功能的样例文件。

      • /etc/inet/mipagent.conf.fa-sample

      • /etc/inet/mipagent.conf.ha-sample

      • /etc/inet/mipagent.conf-sample

  3. /etc/inet/mipagent.conf 文件中添加或更改符合您的配置要求的配置参数。

    本节中其他过程描述用来修改 /etc/inet/mipagent.conf 中各个部分的步骤。

Procedure如何配置 General 部分

如果您复制了 /etc/inet 目录中的样例文件,则可以忽略此过程,因为这些样例文件中包含此项。General 部分提供了用于此部分的标签和值的说明。

  1. 编辑 /etc/inet/mipagent.conf 文件并添加以下行:


    [General]
         Version = 1.0

    注 –

    /etc/inet/mipagent.conf 文件必须包含此项。


Procedure如何配置 Advertisements 部分

Advertisements 部分提供了用于此部分的标签和值的说明。

  1. 编辑 /etc/inet/mipagent.conf 文件并使用配置所需的值添加或更改以下各行:


    [Advertisements interface]
         HomeAgent = <yes/no>
         ForeignAgent = <yes/no>
         PrefixFlags = <yes/no>
         AdvertiseOnBcast = <yes/no>
         RegLifetime = n
         AdvLifetime = n
         AdvFrequency = n
         ReverseTunnel = <yes/no/FA/HA/both>
         ReverseTunnelRequired = <yes/no/FA/HA>

    注 –

    对于提供移动 IP 服务的本地主机上的每个接口,必须包含一个不同的 Advertisements 部分。


Procedure如何配置 GlobalSecurityParameters 部分

GlobalSecurityParameters 部分提供了用于此部分的标签和值的说明。

  1. 编辑 /etc/inet/mipagent.conf 文件并使用配置所需的值添加或更改以下各行:


    [GlobalSecurityParameters]
         MaxClockSkew = n
         HA-FAauth = <yes/no>
         MN-FAauth = <yes/no>
         Challenge = <yes/no>
         KeyDistribution = files

Procedure如何配置 Pool 部分

Pool 部分提供了用于此部分的标签和值的说明。

  1. 编辑 /etc/inet/mipagent.conf 文件

  2. 使用配置所需的值添加或更改以下各行:


    [Pool pool-identifier]
         BaseAddress = IP-address
         Size = size
    

Procedure如何配置 SPI 部分

SPI 部分提供了用于此部分的标签和值的说明。

  1. 编辑 /etc/inet/mipagent.conf 文件。

  2. 使用配置所需的值添加或更改以下各行:


    [SPI SPI-identifier]
         ReplayMethod = <none/timestamps>
         Key = key
    

    注 –

    对于所部署的每个安全上下文,必须包含一个不同的 SPI 部分。


Procedure如何配置 Address 部分

Address 部分提供了用于此部分的标签和值的说明。

  1. 编辑 /etc/inet/mipagent.conf 文件。

  2. 使用配置所需的值添加或更改以下各行:

    • 对于移动路由,使用以下命令:


      [Address address]
           Type = node
           SPI = SPI-identifier
    • 对于代理,使用以下命令:


      [Address address]
           Type = agent
           SPI = SPI-identifier
           
      
    • 对于 NAI 标识的移动节点,使用以下命令:


      [Address NAI]
           Type = Node
           SPI = SPI-identifier
           Pool = pool-identifier
      
    • 对于缺省的移动节点,使用以下命令:


      [Address Node-Default]
           Type = Node
           SPI = SPI-identifier
           Pool = pool-identifier
      

修改移动 IP 配置文件(任务列表)

任务 

说明 

参考 

修改 General 部分。

使用 mipagentconfig change 命令可以更改移动 IP 配置文件的 General 部分中标签的值。

如何修改 General 部分

修改 Advertisements 部分。

使用 mipagentconfig change 命令可以更改移动 IP 配置文件的 Advertisements 部分中标签的值。

如何修改 Advertisements 部分

修改 GlobalSecurityParameters 部分。

使用 mipagentconfig change 命令可以更改移动 IP 配置文件的 GlobalSecurityParameters 部分中标签的值。

如何修改 GlobalSecurityParameters 部分

修改 Pool 部分。

使用 mipagentconfig change 命令可以更改移动 IP 配置文件的 Pool 部分中标签的值。

如何修改 Pool 部分

修改 SPI 部分。

使用 mipagentconfig change 命令可以更改移动 IP 配置文件的 SPI 部分中标签的值。

如何修改 SPI 部分

修改 Address 部分。

使用 mipagentconfig change 命令可以更改移动 IP 配置文件的 Address 部分中标签的值。

如何修改 Address 部分

添加或删除参数。 

使用 mipagentconfig add delete 命令,可以在移动 IP 配置文件的任何部分中添加新参数、标签和值,或者删除现有的参数、标签和值。

如何添加或删除配置文件参数

显示参数目标的当前设置。 

使用 mipagentconfig get 命令可以显示移动 IP 配置文件中任何部分的当前设置。

如何显示配置文件中的当前参数值

修改移动 IP 配置文件

本节介绍如何使用 mipagentconfig 命令来修改移动 IP 配置文件,还介绍如何显示参数目标的当前设置。

配置移动 IP 代理提供了有关 mipagentconfig 命令用法的概念性说明。您还可以查看 mipagentconfig(1M) 手册页。

Procedure如何修改 General 部分

  1. 在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 对于要在 General 部分中修改的每个标签,在命令行上键入以下命令:


    # mipagentconfig change <label> <value>

示例 28–1 修改 General 部分中的参数

以下示例说明如何更改配置文件 General 部分中的版本号:


# mipagentconfig change version 2

Procedure如何修改 Advertisements 部分

  1. 在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 对于要在 Advertisements 部分中修改的每个标签,键入以下命令:


    # mipagentconfig change adv device-name <label> <value>

    例如,对于设备 hme0,如果要将代理的已通告的生命周期更改为 300 秒,请使用以下命令:


    # mipagentconfig change adv hme0 AdvLifetime 300

示例 28–2 修改 Advertisements 部分

以下示例说明如何更改配置文件 Advertisements 部分中的其他参数:


# mipagentconfig change adv hme0 HomeAgent yes
# mipagentconfig change adv hme0 ForeignAgent no
# mipagentconfig change adv hme0 PrefixFlags no
# mipagentconfig change adv hme0 RegLifetime 300
# mipagentconfig change adv hme0 AdvFrequency 4
# mipagentconfig change adv hme0 ReverseTunnel yes

Procedure如何修改 GlobalSecurityParameters 部分

  1. 在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 对于要在 GlobalSecurityParameters 部分中修改的每个标签,键入以下命令:


    # mipagentconfig change <label> <value>

    例如,如果启用家乡代理和外地代理验证,请使用以下命令:


    # mipagentconfig change HA-FAauth yes

示例 28–3 修改 GlobalSecurityParameters 部分

以下示例说明如何更改配置文件 GlobalSecurityParameters 部分中的其他参数:


# mipagentconfig change MaxClockSkew 200
# mipagentconfig change MN-FAauth yes
# mipagentconfig change Challenge yes
# mipagentconfig change KeyDistribution files

Procedure如何修改 Pool 部分

  1. 在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 对于要在 Pool 部分中修改的每个标签,键入以下命令:


    # mipagentconfig change Pool pool-identifier <label> <value>

示例 28–4 修改 Pool 部分

以下示例显示了用来将基本地址更改为 192.168.1.1 的命令以及用来将池 10 的大小更改为 100 的命令:


# mipagentconfig change Pool 10 BaseAddress 192.168.1.1
# mipagentconfig change Pool 10 Size 100

Procedure如何修改 SPI 部分

  1. 在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 对于要在 SPI 部分中修改的每个标签,键入以下命令:


    # mipagentconfig change SPI SPI-identifier <label> <value>

    例如,如果要将 SPI 257 的密钥更改为 5af2aee39ff0b332,请使用以下命令。


    # mipagentconfig change SPI 257 Key 5af2aee39ff0b332

示例 28–5 修改 SPI 部分

以下示例说明如何更改配置文件 SPI 部分中的 ReplayMethod 标签。


# mipagentconfig change SPI 257 ReplayMethod timestamps

Procedure如何修改 Address 部分

  1. 在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 对于要在 Address 部分中修改的每个标签,键入以下命令:


    # mipagentconfig change addr [NAI | IPaddr | node-default] <label> <value>

    有关三种配置方法(NAI、IP 地址和节点缺省值)的说明,请参见Address 部分

    例如,如果要将 IP 地址 10.1.1.1 的 SPI 更改为 258,请使用以下命令:


    # mipagentconfig change addr 10.1.1.1 SPI 258

示例 28–6 修改 Address 部分

以下示例显示如何更改样例配置文件的 Address 部分中提供的其他参数。


# mipagentconfig change addr 10.1.1.1 Type agent
# mipagentconfig change addr 10.1.1.1 SPI 259
# mipagentconfig change addr mobilenode@abc.com Type node
# mipagentconfig change addr mobilenode@abc.com SPI 258
# mipagentconfig change addr mobilenode@abc.com Pool 2
# mipagentconfig change addr node-default SPI 259
# mipagentconfig change addr node-default Pool 3
# mipagentconfig change addr 10.68.30.36 Type agent
# mipagentconfig change addr 10.68.30.36 SPI 260

Procedure如何添加或删除配置文件参数

  1. 在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 对于要在指定部分中添加或删除的每个标签,键入相应的命令:

    • 对于 General 部分,使用以下命令:


      # mipagentconfig [add | delete] <label> <value>
    • 对于 Advertisements 部分,使用以下命令:


      # mipagentconfig [add | delete] adv device-name <label> <value>

      注 –

      还可以通过键入以下命令来添加接口:


      # mipagentconfig add adv device-name
      

      在本例中,向接口指定的是缺省值(对于外地代理和家乡代理均适用)。


    • 对于 GlobalSecurityParameters 部分,使用以下命令:


      # mipagentconfig [add | delete] <label> <value>
    • 对于 Pool 部分,使用以下命令:


      # mipagentconfig [add | delete] Pool pool-identifier <label> <value>
    • 对于 SPI 部分,使用以下命令:


      # mipagentconfig [add | delete] SPI SPI-identifier <label> <value>
    • 对于 Address 部分,使用以下命令:


      # mipagentconfig [add | delete] addr [NAI | IP-address | node-default] \
      <label> <value>

    注 –

    请勿创建相同的 AdvertisementsPoolSPIAddress 部分。



示例 28–7 修改文件参数

例如,要创建新的地址池 Pool 11,它的基本地址为 192.167.1.1,大小为 100,请使用下列命令:


# mipagentconfig add Pool 11 BaseAddress 192.167.1.1 
# mipagentconfig add Pool 11 size 100


示例 28–8 删除 SPI

以下示例说明如何删除 SPI 安全参数 SPI 257


# mipagentconfig delete SPI 257

Procedure如何显示配置文件中的当前参数值

可以使用 mipagentconfig get 命令来显示与参数目标相关联的当前设置。

  1. 在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 对于要显示其设置的每个参数,键入以下命令:


    # mipagentconfig get [<parameter> | <label>] 

    例如,如果要显示 hme0 设备的通告设置,请使用以下命令:


    # mipagentconfig get adv hme0

    因此,可能会显示以下输出:


    [Advertisements hme0]
       HomeAgent = yes
       ForeignAgent = yes

示例 28–9 使用 mipagentconfig get 命令显示参数值

以下示例显示结合使用 mipagentconfig get 命令和其他参数目标的结果:


# mipagentconfig get MaxClockSkew
      [GlobalSecurityParameters]
         MaxClockSkew=300

# mipagentconfig get HA-FAauth
      [GlobalSecurityParameters]
         HA-FAauth=no

# mipagentconfig get MN-FAauth
      [GlobalSecurityParameters]
         MN-FAauth=no

# mipagentconfig get Challenge
      [GlobalSecurityParameters]
         Challenge=no

# mipagentconfig get Pool 10
      [Pool 10]
         BaseAddress=192.168.1.1
         Size=100

# mipagentconfig get SPI 257
      [SPI 257]
         Key=11111111111111111111111111111111
         ReplayMethod=none

# mipagentconfig get SPI 258
      [SPI 258]
         Key=15111111111111111111111111111111
         ReplayMethod=none

# mipagentconfig get addr 10.1.1.1
      [Address 10.1.1.1]
         SPI=258
         Type=agent

# mipagentconfig get addr 192.168.1.200
      [Address 192.168.1.200]
         SPI=257
         Type=node

显示移动代理的状态

可以使用 mipagentstat 命令来显示外地代理的访问者列表和家乡代理的绑定表。移动 IP 的移动代理状态提供了 mipagentstat 命令的概念性说明。您还可以查看 mipagentstat(1M) 手册页。

Procedure如何显示移动代理的状态

  1. 在要启用移动 IP 的系统上成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 显示移动代理的状态。


    # mipagentstat options 
    
    -f

    显示外地代理访问者列表中活动移动节点的列表。

    -h

    显示家乡代理绑定表中活动移动节点的列表。

    -p

    显示代理的移动代理对等方的安全关联列表。


示例 28–10 显示移动代理的状态

以下示例说明如何显示已向外地代理注册的所有移动节点的访问者列表:


# mipagentstat -f

因此,将显示类似以下内容的输出:


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.

因此,将显示类似以下内容的输出:


Foreign                  ..... Security Association(s).....
Agent                    Requests Replies  FTunnel  RTunnel
----------------------   -------- -------- -------- --------
forn-agent.eng.sun.com   AH       AH       ESP      ESP

以下示例说明如何显示家乡代理的安全关联:


# mipagentstat -fp

因此,将显示类似以下内容的输出:


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

显示外地代理的移动路由

可以使用 netstat 命令来显示有关由正向隧道和反向隧道创建的特定于源的路由的其他信息。有关此命令的更多信息,请参见 netstat(1M) 手册页。

Procedure如何显示外地代理的移动路由

  1. 在要启用移动 IP 的系统上成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 显示移动路由。


    # netstat -rn 

示例 28–11 显示外地代理的移动路由

以下示例显示使用反向隧道的外地代理的路由:


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

第一行表示目标 IP 地址 10.6.32.11 和传入接口 ip.tun1 选择 hme1 作为转发包的接口。第二行指示源自接口 hme1 和源地址 10.6.32.11 的任何包都必须转发到 ip.tun1


第 29 章 移动 IP 文件和命令(参考)

本章介绍移动 IP 的 Solaris 实现所提供的组件。要使用移动 IP,必须首先使用本章中介绍的参数和命令来配置移动 IP 配置文件。

本章包含以下信息:


注 –

在 Solaris 10 8/07 之后的 Solaris 10 更新中已删除移动 IP 功能。


Solaris 移动 IP 实现的概述

移动代理软件将家乡代理与外地代理功能合并在一起。Solaris 移动 IP 软件不提供客户机移动节点,而仅提供代理功能。每个可支持移动的网络至少应有一台运行该软件的静态(非移动)主机。

Solaris 移动 IP 实现中可支持下列 RFC 中所述的功能:

基本移动 IP 协议 (RFC 2002) 无法解决可伸缩密钥分发的问题,它将密钥分发视为正交问题。Solaris 移动 IP 软件仅使用在配置文件中指定的手动配置的密钥。

Solaris 移动 IP 实现中不支持以下 RFC 功能:

Solaris 移动 IP 实现中不支持以下功能:

有关其他信息,请参见 mipagent(1M) 手册页。

移动 IP 配置文件

mipagent 命令可在系统启动时从 /etc/inet/mipagent.conf 配置文件中读取配置信息。移动 IP 使用 /etc/inet/mipagent.conf 配置文件来初始化移动 IP 移动代理。配置和部署移动代理之后,移动代理会定期发出路由器通告,并响应路由器搜索请求消息以及移动 IP 注册消息。

有关文件属性的说明,请参见 mipagent.conf(4) 手册页。有关此文件的用法说明,请参见 mipagent(1M) 手册页。

配置文件的格式

移动 IP 配置文件由多个部分组成。每一部分都有一个唯一的名称并且用方括号括起来。每一部分包含一个或多个标签。可以使用以下格式为标签赋值:


[Section_name]
     Label-name = value-assigned

配置文件的部分和标签介绍了各部分的名称、标签和可能值。

样例配置文件

缺省的 Solaris 安装在 /etc/inet 目录中提供了下列样例配置文件:

这些样例配置文件包含移动节点的地址和安全设置。必须先创建一个名为 mipagent.conf 的配置文件并将其放在 /etc/inet 目录中,然后才能实现移动 IP。此文件包含可满足移动 IP 实现要求的配置设置。此外,还可以选择其中一个样例配置文件,使用您的地址和安全设置对其进行修改,然后将其复制到 /etc/inet/mipagent.conf 中。

有关更多信息,请参见如何创建移动 IP 配置文件

mipagent.conf-sample 文件

下面列出了 mipagent.conf-sample 文件中的各个部分、标签和值。配置文件的部分和标签介绍了语法以及各个部分、标签和值。


[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

mipagent.conf.fa-sample 文件

下面列出了 mipagent.conf.fa-sample 文件中的各个部分、标签和值。配置文件的部分和标签介绍了语法以及各个部分、标签和值。

mipagent.conf.fa-sample 文件中显示的配置仅提供外地代理功能。此样例文件不包含 Pool 部分,因为仅有家乡代理才使用池。除此之外,此文件与 mipagent.conf-sample 文件完全相同。


[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

mipagent.conf.ha-sample 文件

下面列出了 mipagent.conf.ha-sample 文件中的各个部分、标签和值。配置文件的部分和标签介绍了语法以及各个部分、标签和值。

mipagent.conf.ha-sample 文件中显示的配置仅提供家乡代理功能。除此之外,此文件与 mipagent.conf-sample 文件完全相同。


[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

配置文件的部分和标签

移动 IP 配置文件包含以下各部分:

GeneralGlobalSecurityParameters 部分包含与移动 IP 代理的操作相关的信息。这些部分在配置文件中只能出现一次。

General 部分

General 部分仅包含一个标签: 配置文件的版本号。General 部分的语法如下:


[General]
     Version = 1.0

Advertisements 部分

Advertisements 部分包含 HomeAgentForeignAgent 标签以及其他标签。提供移动 IP 服务的本地主机上的每个接口必须包括一个不同的 Advertisements 部分。Advertisements 部分的语法如下:


[Advertisements interface]
     HomeAgent = <yes/no>
     ForeignAgent = <yes/no>
     .
     .

通常,系统有一个接口,如 eri0hme0,并且同时支持家乡代理操作和外地代理操作。如果示例 hme0 存在这种情况,则可按如下所示向 HomeAgentForeignAgent 标签指定 yes 值:


[Advertisements hme0]
     HomeAgent = yes
     ForeignAgent = yes
     .
     .

对于通过动态接口的通告,可针对设备 ID 部分使用“*”。例如,Interface-name ppp* 实际上是指启动 mipagent 守护进程之后配置的所有 PPP 接口。动态接口类型的通告部分中的所有属性保持不变。

下表介绍了可在 Advertisements 部分中使用的标签和值。

表 29–1 Advertisements 部分的标签和值

标签 

值 

说明 

HomeAgent

yesno

确定 mipagent 守护进程是否提供家乡代理功能。

ForeignAgent

yesno

确定 mipagent 是否提供外地代理功能。

PrefixFlags

yesno

指定通告中是否包括可选的前缀长度扩展。

AdvertiseOnBcast

yesno

如果为 yes,则将在 255.255.255.255 而非 224.0.0.1 上发送通告。

RegLifetime

n

注册请求中接受的最大生命周期值(以秒为单位)。

AdvLifetime

n

在没有其他通告的情况下,该通告被视为有效的最长时间(以秒为单位)。

AdvFrequency

n

两个连续通告之间的时间(以秒为单位)。

ReverseTunnel

yesnoFAHAboth

确定 mipagent 是否提供反向隧道功能。

如果值为 yes,则表示外地代理和家乡代理均支持反向隧道连接。如果值为 no,则表示该接口不支持反向隧道连接。

如果值为 FA,则表示外地代理支持反向隧道连接。如果值为 HA,则表示家乡代理支持反向隧道连接。如果值为 both,则表示外地代理和家乡代理均支持反向隧道连接。

ReverseTunnelRequired

yesno

确定 mipagent 是否需要反向隧道功能,从而确定移动节点在注册过程中是否必须请求反向隧道。

如果值为 yes,则表示外地代理和家乡代理均需要反向隧道。如果值为 no,则表示该接口不需要反向隧道。

如果值为 FA,则表示外地代理需要反向隧道。如果值为 HA,则表示家乡代理需要反向隧道。

AdvInitCount

n

确定未经请求的通告的初始编号。缺省值为 1。仅当 AdvLimitUnsolicited yes 时,该值才有意义。

AdvLimitUnsolicited

yesno

允许或禁止有限数量的未经请求的通告通过移动接口。

GlobalSecurityParameters 部分

GlobalSecurityParameters 部分包含标签 maxClockSkewHA-FAauthMN-FAauthChallengeKeyDistribution。该部分的语法如下:


[GlobalSecurityParameters]
     MaxClockSkew = n
     HA-FAauth = <yes/no>
     MN-FAauth = <yes/no>
     Challenge = <yes/no>
     KeyDistribution = files

移动 IP 协议通过允许在消息中设置时间戳来提供消息重放保护。如果时钟不同,则家乡代理会向移动节点返回一个有关当前时间的错误,移动节点可以使用当前时间再次注册。可以使用 MaxClockSkew 标签配置家乡代理的时钟与移动节点的时钟之间相差的最大秒数。缺省值为 300 秒。

HA-FAauth 标签可启用或禁用家乡代理-外地代理验证的要求,MN-FAauth 标签可启用或禁用移动节点-外地代理验证的要求。缺省值为禁用。可以使用 challenge 标签,以便外地代理在其通告中向移动节点发出质询。该标签用于实现重放保护,其缺省值也为禁用。

下表介绍了可在 GlobalSecurityParameters 部分中使用的标签和值。

表 29–2 GlobalSecurityParameters 部分的标签和值

标签 

值 

说明 

MaxClockSkew

n

mipagent 的本地时间和在注册请求中找到的时间之间可以接受的最大时间差(以秒为单位)。

HA-FAauth

yesno

指定注册请求和回复中是否必须存在 HA-FA 验证扩展

MN-FAauth

yesno

指定注册请求和回复中是否必须存在 MN -FA 验证扩展

Challenge

yesno

指定外地代理的移动通告中是否包括质询

KeyDistribution

files

必须设置为 files

Pool 部分

家乡代理可以为移动节点分配动态地址。动态地址分配是独立于 DHCP 在 mipagent 守护进程中完成的。可以通过请求家乡地址来创建可供移动节点使用的地址池。地址池是通过配置文件中的 Pool 部分配置的。

Pool 部分包含 BaseAddressSize 标签。Pool 部分的语法如下:


[Pool pool-identifier]
     BaseAddress = IP-address
     Size = size

注 –

如果您使用 Pool 标识符,则该标识符还必须存在于移动节点的 Address 部分中。


您可以使用 Pool 部分来定义可分配给移动节点的地址池。BaseAddress 标签用于设置池中的第一个 IP 地址。可以使用 Size 标签指定池中可用地址的数量。

例如,如果在池 10 中保留了从 192.168.1.1192.168.1.100 的 IP 地址,则 Pool 部分中具有以下项:


[Pool 10]
     BaseAddress = 192.168.1.1
     Size = 100

注 –

地址范围中不应包含广播地址。例如,不应指定 BaseAddress = 192.168.1.200Size = 60,因为此范围包含广播地址 192.168.1.255


下表介绍了可在 Pool 部分中使用的标签和值。

表 29–3 Pool 部分的标签和值

标签 

值 

说明 

BaseAddress

n.n.n.n

地址池中的第一个地址

Size

n

池中的地址数量

SPI 部分

由于移动 IP 协议需要消息验证,因此必须使用安全参数索引 (security parameter index, SPI) 标识安全上下文。安全上下文可在 SPI 部分中定义。所定义的每个安全上下文必须包括一个不同的 SPI 部分。数字 ID 用于标识安全上下文。移动 IP 协议可保留前 256 个 SPI。因此,应仅使用大于 256 的 SPI 值。SPI 部分包含与安全相关的信息,如共享密钥和重放保护。

SPI 部分还包含 ReplayMethodKey 标签。SPI 部分的语法如下:


[SPI SPI-identifier]
     ReplayMethod = <none/timestamps>
     Key = key

进行通信的对等双方必须共享相同的 SPI 标识符,并且必须使用相同的密钥和重放方法对双方进行配置。可以将密钥指定为由十六进制数字组成的字符串。最大长度为 16 个字节。例如,如果密钥的长度为 16 个字节,其中包含 0f 之间的十六进制值,那么,密钥字符串可能与以下内容类似:


Key = 0102030405060708090a0b0c0d0e0f10

由于每个字节用两位数表示,因此密钥的位数一定为偶数。

下表介绍了可在 SPI 部分中使用的标签和值。

表 29–4 SPI 部分的标签和值

标签 

值 

说明 

ReplayMethod

nonetimestamps

指定用于 SPI 的重放验证的类型

Key

x

以十六进制形式表示的验证密钥

Address 部分

Solaris 移动 IP 实现允许您使用以下三种方法之一配置移动节点。每种方法都在 Address 部分中配置。第一种方法遵循传统的移动 IP 协议,要求每个移动节点都有一个家乡地址。第二种方法允许通过移动节点的网络访问标识符 (Network Access Identifier, NAI) 来标识该移动节点。最后一种方法允许配置缺省移动节点,具有正确的 SPI 值和相关密钥资料的任何移动节点都可用作缺省移动节点。

移动节点

移动节点的 Address 部分包含用来定义地址类型和 SPI 标识符的 TypeSPI 标签。Address 部分的语法如下:


[Address address]
     Type = node
     SPI = SPI-identifier

每个受支持的移动节点在家乡代理的配置文件中必须包括一个 Address 部分。

如果外地代理和家乡代理之间需要移动 IP 消息验证,则代理需要与之通信的每个对等方必须包括一个 Address 部分。

所配置的 SPI 值必须表示在配置文件中存在的 SPI 部分。

另外,还可以为移动节点配置专用地址。

下表介绍了可在移动节点的 Address 部分中使用的标签和值。

表 29–5 Address 部分的标签和值(移动节点)

标签 

值 

说明 

Type

node(节点)

指定该项适用于移动节点

SPI

n

指定关联项的 SPI 值

移动代理

移动代理的 Address 部分包含用来定义地址类型和 SPI 标识符的 TypeSPI 标签。移动代理的 Address 部分的语法如下:


[Address address]
     Type = agent
     SPI = SPI-identifier
     

每个受支持的移动代理在家乡代理的配置文件中必须包括一个 Address 部分。

如果外地代理和家乡代理之间需要移动 IP 消息验证,则代理需要与之通信的每个对等方必须包括一个 Address 部分。

所配置的 SPI 值必须表示在配置文件中存在的 SPI 部分。

下表介绍了可在移动代理的 Address 部分中使用的标签和值。

表 29–6 Address 部分的标签和值(移动代理)

标签 

值 

说明 

Type

agent

指定该项适用于移动代理 

SPI

n

指定关联项的 SPI 值 

由 NAI 标识的移动节点

由 NAI 标识的移动节点的 Address 部分包含 TypeSPIPool 标签。使用 NAI 参数,可以通过移动节点的 NAI 来标识移动节点。使用 NAI 参数的 Address 部分的语法如下:


[Address NAI]
     Type = Node
     SPI = SPI-identifier
     Pool = pool-identifier

要使用池,可以通过移动节点的 NAI 来标识移动节点。Address 部分允许您配置 NAI 而非家乡地址。NAI 采用格式 user@domain。可以使用 Pool 标签指定要使用哪个地址池来向移动节点分配家乡地址。

下表介绍了可在由 NAI 标识的移动节点的 Address 部分中使用的标签和值。

表 29–7 Address 部分的标签和值(由 NAI 标识的移动节点)

标签 

值 

说明 

Type

node(节点)

指定该项适用于移动节点

SPI

n

指定关联项的 SPI 值

Pool

n

分配可从中指定移动节点地址的池

对于由 NAI 标识的移动节点,Address 部分中定义的 SPIPool 标签必须具有与其对应的 SPIPool 部分,如下图所示。

图 29–1 与由 NAI 标识的移动节点的 Address 部分相对应的 SPIPool 部分

显示 SPI 251 和 POOL 10 与 ADDRESS NAI 部分中相同的 SPI 和 POOL 编号相对应。

缺省的移动节点

缺省移动节点的 Address 部分包含 TypeSPIPool 标签。使用 Node-Default 参数,可以允许所有移动节点在具有正确 SPI(在该部分中定义)的情况下获取服务。使用 Node-Default 参数的 Address 部分的语法如下:


[Address Node-Default]
     Type = Node
     SPI = SPI-identifier
     Pool = pool-identifier

使用 Node-Default 参数可降低配置文件的大小。否则,每个移动节点都需要包含各自的部分。但是,Node-Default 参数会造成安全风险。如果由于某种原因而导致移动节点不再受信任,则需要更新有关所有受信任移动节点的安全信息。此任务可能非常繁琐。但是,可以在无需考虑安全风险的网络中使用 Node-Default 参数。

下表介绍了可在缺省移动节点的 Address 部分中使用的标签和值。

表 29–8 Address 部分的标签和值(缺省移动节点)

标签 

值 

说明 

Type

node(节点)

指定该项适用于移动节点

SPI

n

指定关联项的 SPI 值

Pool

n

分配可从中指定移动节点地址的池

缺省移动节点的 Address 部分中定义的 SPIPool 标签必须有相对应的 SPIPool 部分,如下图所示。

图 29–2 与缺省移动节点的 Address 部分相对应的 SPIPool 部分

显示 SPI 251 和 POOL 10 与 ADDRESS NODE-DEFAULT 部分中具有相同编号的 SPI 和 POOL 相对应。

配置移动 IP 代理

可以使用 mipagentconfig 命令配置移动代理。使用此命令,可以在 /etc/inet/mipagent.conf 配置文件中创建或修改任何参数。具体来说,可以更改任何设置。另外,还可以添加或删除移动客户机、池和 SPI。mipagentconfig 命令的语法如下:


# mipagentconfig <command> <parameter> <value>

下表介绍了可以与 mipagentconfig 一起用来在 /etc/inet/mipagent.conf 配置文件中创建或修改参数的命令。

表 29–9 mipagentconfig 子命令

命令 

说明 

add

用于向配置文件中添加通告参数、安全参数、SPI 和地址 

change

用于更改配置文件中的通告参数、安全参数、SPI 和地址 

delete

用于从配置文件中删除通告参数、安全参数、SPI 和地址 

get

用于显示配置文件中的当前值 

有关命令参数和可接受值的说明,请参见 mipagentconfig(1M) 手册页。修改移动 IP 配置文件提供了使用 mipagentconfig 命令的过程。

移动 IP 的移动代理状态

可以使用 mipagentstat 命令显示外地代理的访问者列表和家乡代理的绑定表。另外,还可以显示与代理的移动代理对等方的安全关联。要显示外地代理的访问者列表,可以使用 mipagentstat 命令的 -f 选项。要显示家乡代理的绑定表,可以使用 mipagentstat 命令的 -h 选项。以下示例显示了使用带有这些选项的 mipagentstat 命令时的典型输出。


示例 29–1 外地代理的访问者列表


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.


示例 29–2 家乡代理的绑定表


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.

有关命令选项的更多信息,请参见 mipagentstat(1M) 手册页。显示移动代理的状态提供了使用 mipagentstat 命令的过程。

移动 IP 的状态信息

关机时,mipagent 守护进程会将内部状态信息存储在 /var/inet/mipagent_state 中。仅当 mipagent 作为家乡代理提供服务时,才会发生该事件。此状态信息包括可以作为家乡代理的移动节点列表、其当前转交地址以及剩余的注册生命周期。此状态信息还包括移动代理对等方的安全关联配置。如果终止 mipagent 守护进程以进行维护并重新启动,则可以使用 mipagent_state 重新创建尽可能多的移动代理内部状态,从而最大程度地减少可能正在访问其他网络的移动节点的服务中断。如果存在 mipagent_state,则每次启动或重新启动 mipagent 时,都会在读取 mipagent.conf 之后立即读取它。

移动 IP 的 netstat 扩展

netstat 命令中已添加了用来标识移动 IP 转发路由的移动 IP 扩展。具体来说,可以使用 netstat 命令显示名为 "Source-Specific" 的新路由表。有关更多信息,请参见 netstat(1M) 手册页。

以下示例显示了使用 -nr 标志时 netstat 的输出。


示例 29–3 netstat 命令的移动 IP 输出


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

本示例显示了使用反向隧道的外地代理的路由。第一行表示目标 IP 地址 10.6.32.11 和传入接口 ip.tun1 选择 hme1 作为转发包的接口。第二行表示源自接口 hme1 和源地址 10.6.32.11 的任何包都必须转发到 ip.tun1


移动 IP 的 snoop 扩展

snoop 命令中已添加了用来标识链路上移动 IP 流量的移动 IP 扩展。有关更多信息,请参见 snoop(1M) 手册页。

以下示例显示了在移动节点 mip-mn2 上运行的 snoop 的输出。


示例 29–4 snoop 命令的移动 IP 输出


mip-mn2# snoop
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)

本示例显示移动节点从外地代理 mip-fa2 收到一个定期发送的移动代理通告。然后,mip-mn2mip-fa2 发送注册请求,并接收相应的注册回复作为响应。注册回复表示移动节点已成功向其家乡代理进行了注册。