本部分介绍移动 Internet 协议 (Mobile Internet Protocol, Mobile IP) 以及移动 IP 的管理任务。可以在膝上型计算机和无线通信设备等系统上安装移动 IP,从而使这些计算机能够运行于外部网络上。
在 Solaris 10 8/07 之后的所有 Oracle Solaris : 更新中已删除移动 IP 功能。
移动 Internet 协议 (Internet Protocol, IP) 用来实现移动计算机之间的信息传输。移动计算机包括膝上型计算机和无线通信设备。移动计算机可以将其位置更改到外地网络。在外地网络中,移动计算机仍然可通过移动计算机的家乡网络进行通信。Solaris 移动 IP 实现仅支持 IPv4。
本章包含以下信息:
有关与移动 IP 相关的任务,请参阅第 28 章。有关移动 IP 的参考资料,请参阅第 29 章。
在 Solaris 10 8/07 之后的 Solaris 10 更新中已删除移动 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 拓扑,以下情形说明了数据报是如何在移动 IP 框架的不同点之间移动的。
如果移动节点位于外地网络,则家乡代理将数据报转发到外地代理。家乡代理必须将数据报封装到外部数据报中,以便外地代理的 IP 地址出现在外部 IP 数据包头。
外地代理将数据报传送到移动节点。
数据报通过使用标准的 IP 路由过程从移动节点发送到 Internet 主机。如果移动节点位于外地网络上,则包会传送到外地代理。外地代理随后会将数据报转发到 Internet 主机。
如果存在入口过滤 (ingress filtering),则发送数据报的子网的源地址在拓扑结构上必须正确,否则路由器无法转发数据报。如果移动节点和通信节点之间的链路上存在这种情况,则外地代理需要提供反向隧道连接支持。然后,外地代理即可将移动节点所发送的每个数据报传送到其家乡代理。家乡代理随后将转发数据报,所使用的路径即是移动节点驻留在家乡网络的情况下数据报应采用的路径。此过程保证数据报必须遍历的所有链路的源地址均正确。
有关无线通信的信息,请参阅图 27–1,它描述了如何使用无线收发器将数据报传送到移动节点。此外,Internet 主机和移动节点之间的所有数据报也都使用移动节点的家乡地址。即使移动节点位于外地网络上,仍会使用家乡地址。转交地址仅用于与移动代理进行通信。转交地址对于 Internet 主机不可见。
移动 IP 引入了下列新的功能实体:
移动节点 (Mobile node, MN)-主机或路由器,其连接点随网络变化而变化,但会使用其 IP 家乡地址维持所有现有的通信。
家乡代理 (Home agent, HA)-位于移动节点的家乡网络上的路由器或服务器。路由器会拦截发往移动节点的数据报,然后,通过转交地址传送数据报。家乡代理也会维护有关移动节点位置的当前信息。
外地代理 (Foreign agent, FA)-位于移动节点访问的外地网络上的路由器或服务器。外地代理可为移动节点提供主机路由服务。外地代理还可能在注册移动节点时向其提供转交地址。
使用移动 IP 可将 IP 数据报路由到移动节点。无论移动节点连接到何处,移动节点的家乡地址可始终标识该移动节点。如果移动节点不在家乡网络上,则转交地址将与移动节点的家乡地址相关联。转交地址可提供有关移动节点当前连接点的信息。移动 IP 使用注册机制向家乡代理注册转交地址。
家乡代理可将数据报从家乡网络重定向到转交地址。家乡代理会构造一个新的包含移动节点转交地址的 IP 数据包头,将其用作目标 IP 地址。这个新的 IP 数据包头用于封装初始 IP 数据报。因此,移动节点的家乡地址不会影响已封装数据报的路由,直到数据报到达转交地址为止。这种类型的封装被称为隧道连接。数据报到达转交地址之后,将对数据报解除封装。然后,将数据报传送到移动节点。
下图显示了驻留在家乡网络(网络 A)上的移动节点在移动到外地网络(网络 B)之前的情形。这两个网络都支持移动 IP。移动节点始终与其家乡地址 128.226.3.30 相关联。
下图显示了已经移到外地网络(网络 B)的移动节点。家乡网络(网络 A)上的家乡代理会拦截发往移动节点的数据报,并对数据报进行封装。然后,数据报会发送到网络 B 上的外地代理。外地代理会去除外部头,然后将数据报传送到位于网络 B 上的移动节点。
转交地址可能属于外地代理。它可能由移动节点通过动态主机配置协议 (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 服务,这是一种很好的方法。
移动节点通过一些外部方法获取协同定位转交地址作为本地 IP 地址。然后,移动节点会与自己的网络接口之一相关联。移动节点可能会通过 DHCP 获取协同定位的转交地址作为临时地址。移动节点也可能将该地址用作长期地址。但是,移动节点仅在访问该转交地址所属的子网时才能使用此地址。使用协同定位的转交地址时,移动节点会充当隧道的端点。移动节点会对通过隧道传送给该节点的数据报解除封装。
协同定位转交地址可使移动节点在没有外地代理的情况下正常工作。因此,移动节点可以在尚未部署外地代理的网络中使用协同定位的转交地址。
如果某个移动节点正在使用协同定位的转交地址,则该移动节点必须位于由该转交地址的网络前缀标识的链路上。否则,发往该转交地址的数据报将无法传送。
移动 IP 的工作原理一节假定在 Internet 内进行路由与数据报的源地址无关。但是,中间路由器可能会检查源地址的拓扑是否正确。如果中间路由器确实进行了检查,则移动节点需要设置反向隧道。通过设置从转交地址到家乡代理的反向隧道,可确保 IP 数据包源地址的拓扑正确无误。反向隧道支持由外地代理和家乡代理进行通告。移动节点在注册时,可以请求在外地代理和家乡代理之间建立反向隧道。反向隧道始于移动节点的转交地址,止于家乡代理。下图显示了使用反向隧道的移动 IP 拓扑。
其专用地址无法通过 Internet 进行全局路由的移动节点需要使用反向隧道。Solaris 移动 IP 支持设置了专用地址的移动节点。有关 Solaris 移动 IP 不支持的功能,请参见Solaris 移动 IP 实现的概述。
无需外部连接时,企业可以使用专用地址。专用地址无法通过 Internet 路由。如果某个移动节点具有专用地址,则该移动节点只能通过将其数据报经由反向隧道传送到其家乡代理来与通信节点通信。然后,家乡代理会将数据报传送到通信节点,其传送方式即是移动节点位于家乡网络上时通常传送数据报的方式。下图显示了一个由两个具有专用地址的移动节点组成的网络拓扑。在向同一个外地代理注册时,这两个移动节点使用相同的转交地址。
如果转交地址和家乡代理地址属于通过公共 Internet 连接的不同域,则这些地址必须是可以进行全局路由的地址。
同一个外地网络可以包括两个将同一 IP 地址作为专用地址的移动节点。但是,每个移动节点必须具有不同的家乡代理。另外,每个移动节点还必须位于单个外地代理的不同通告子网上。下图显示了描述此情况的网络拓扑。
移动节点通过使用代理通告检测它们何时从一个子网移动到另一个子网。当移动节点收到一个代理通告,指示其位置已更改时,它会通过外地代理进行注册。即使移动节点可能已获取了自己的协同定位的转交地址,仍会提供此功能,以便允许在站点上限制对移动服务的访问。
移动 IP 注册提供了一种灵活的机制,允许移动节点向家乡代理传送关于当前可访问性的信息。在注册过程中,移动节点可执行下列任务:
注册消息在移动节点、外地代理和家乡代理之间交换信息。在注册过程中,可在家乡代理上创建或修改移动绑定,并使移动节点的家乡地址与移动节点的转交地址在指定的生命周期内相关联。
在注册过程中,移动节点还可执行下列功能:
移动 IP 可以为移动节点定义下列注册过程:
如果移动节点收到一个代理通告,要求其通过外地代理进行注册,则它也可以尝试获取协同定位的转交地址。该移动节点还可以向此外地代理或位于其链路上的任何其他外地代理进行注册。
如果移动节点使用协同定位的转交地址,则它可直接向家乡代理注册。
这些注册过程包括交换注册请求和注册回复消息。移动节点使用外地代理进行注册时,注册过程会采用以下步骤,如下图所示:
移动节点向将来的外地代理发送注册请求,从而开始执行注册过程。
外地代理处理注册请求,然后将该请求中继到家乡代理。
家乡代理向外地代理发送注册回复以准许或拒绝该请求。
外地代理处理注册回复,然后将回复中继到移动节点,以向其通告该请求的处理情况。
当移动节点直接向家乡代理注册时,注册过程仅需执行以下步骤:
另外,外地代理或者家乡代理可能需要反向隧道。如果外地代理支持反向隧道连接,则移动节点可以使用注册过程来请求反向隧道。移动节点可在要求反向隧道的注册请求中设置反向隧道标志。
Internet 中使用的验证、授权和记帐 (authentication, authorization, and accounting, AAA) 服务器可为拨号计算机提供验证和授权服务。这些服务对于尝试使用移动 IP 连接到包含 AAA 服务器的外部域的移动节点可能同样重要。AAA 服务器使用网络访问标识符 (Network Access Identifier, NAI) 来标识客户机。移动节点可以通过在移动 IP 注册请求中包括 NAI 来自行标识。
因为 NAI 通常用于唯一标识移动节点,所以移动节点的家乡地址不必总是提供该功能。因此,移动节点可以对其自身进行验证。所以,可以授权移动节点连接到外部域,甚至不必具有家乡地址。要请求指定家乡地址,可使用包含移动节点 NAI 扩展的消息将注册请求中的家乡地址字段设置为零。
每个移动节点、外地代理和家乡代理都支持各种移动 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 封装所必需的。
在外地网络上注册后,移动节点将使用下列规则来选择缺省路由器:
如果移动节点已注册并且使用外地代理的转交地址,则注册过程比较简单。移动节点从路由器地址(在该代理通告的 ICMP 路由器通告部分中通告的地址)中选择其缺省路由器。移动节点还可以考虑选择代理通告的源 IP 地址作为缺省路由器的 IP 地址。
移动节点可能会使用协同定位转交地址直接向家乡代理注册。然后,移动节点从其收到的任何 ICMP 路由器通告消息中所通告的路由器中选择其缺省路由器。所选的缺省路由器的网络前缀必须与移动节点从外部获取的转交地址的网络前缀匹配。该地址可能与具有该网络前缀的代理通告的源 IP 地址匹配。然后,移动节点还可以考虑选择该源 IP 地址作为缺省路由器的 IP 地址。
注册移动节点后,支持反向隧道的外地代理会通过反向隧道将单点传送数据报从移动节点路由到家乡代理。如果移动节点已经向提供反向隧道支持的外地代理注册,则移动节点必须使用该外地代理作为其缺省路由器。
家乡代理收到广播数据报或多点传送数据报后,仅会将这些数据报转发到已专门请求接收它们的移动节点。家乡代理如何将广播数据报和多点传送数据报转发到移动节点主要取决于两个因素。移动节点或者使用外地代理提供的转交地址,或者使用自己的协同定位转交地址。前者意味着数据报必须进行双重封装。第一个 IP 数据包头用来标识要传送其数据报的移动节点。第一个 IP 数据包头在广播数据报或多点传送数据报中不存在。第二个 IP 数据包头即是通常的隧道头,用来标识转交地址。如果是后者,则移动节点对自己的数据报解除封装,从而只需通过常规隧道发送数据报。
要在移动节点访问外部子网时开始接收多点传送流量,可以通过下列任一方法将移动节点加入到多点传送组中:
如果移动节点使用的是协同定位转交地址,则它可以将该地址用作任何 Internet 组管理协议 (Internet Group Management Protocol, IGMP) 加入消息的源 IP 地址。但是,所访问的子网上必须存在多点传送路由器。
如果移动节点要从其内部子网加入 ICMP 组,则必须使用反向隧道将 IGMP 加入消息发送到家乡代理。但是,移动节点的家乡代理必须是多点传送路由器。然后,家乡代理会通过隧道将多点传送数据报转发到移动节点。
如果移动节点使用的是协同定位的转交地址,则它可以将该地址用作任何 IGMP 加入消息的源 IP 地址。但是,所访问的子网上必须存在多点传送路由器。移动节点加入 ICMP 组之后,可以通过在所访问的网络上直接发送自己的多点传送包来参与通信。
在所访问的网络上直接发送。
通过隧道发送到家乡代理。
多点传送路由取决于源 IP 地址。正在发送多点传送数据报的移动节点必须从该链路上的有效源地址发送数据报。因此,正在所访问的网络上直接发送多点传送数据报的移动节点必须使用协同定位的转交地址作为源 IP 地址。另外,移动节点还必须已经加入了与该地址相关联的多点传送组。同样,如果移动节点在漫游之前已经在其内部子网上加入了多点传送组,或者在漫游时通过指向其家乡代理的反向隧道加入了多点传送组,则必须使用移动节点的家乡地址作为多点传送数据报的源 IP 地址。因此,移动节点还必须通过使用其协同定位的转交地址或者通过外地代理的反向隧道,将这些数据报以反向隧道方式发送到其内部子网。
虽然看起来移动节点始终从它访问的子网加入效率会更高,但它仍然是移动节点。因此,移动节点每切换一次子网,都必须重复执行加入操作。对它来说,一种更高效的方法就是通过其家乡代理加入,这样就不必负担因重复加入而产生的开销。另外,还可能存在只能从内部子网加入的多点传送会话。其他注意事项也可能会强制移动节点以特定方式参与。
在许多情况下,移动计算机使用无线链接来连接到网络。无线链路特别容易受到被动窃听、主动重放攻击和其他主动攻击。
因为移动 IP 意识到它无法减少或消除此漏洞,所以移动 IP 会使用验证的形式来保护移动 IP 注册消息免受这些类型的攻击。所使用的缺省算法是 MD5,密钥的大小为 128 位。缺省的操作模式要求在要散列的数据前后都使用这个 128 位密钥。外地代理使用 MD5 来支持验证,还会使用 128 位或更多位的密钥以及手动密钥分发方法。移动 IP 可以支持多种验证算法、算法模式、密钥分发方法和密钥大小。
这些方法确实可防止移动 IP 注册消息被修改。不过,当移动 IP 实体收到与以前的移动 IP 注册消息重复的消息时,移动 IP 还会使用重放保护的形式来警告这些实体。如果未使用此保护方法,那么,当移动节点或其家乡代理接收注册消息时,两者可能会变得不同步。因此,移动 IP 需要对其状态进行更新。例如,通过外地代理注册移动节点时,家乡代理会收到一条重复的取消注册消息。
可通过称为 nonce 或时间标记的方法来确保实现重放保护。当前值和时间标记由家乡代理和移动节点在移动 IP 注册消息内进行交换。验证机制可保护当前值和时间标记不会更改。因此,如果家乡代理或移动节点收到重复的消息,则可将该消息丢弃。
使用隧道可能会产生重大漏洞,尤其是在注册未经过验证时。另外,地址解析协议 (Address Resolution Protocol, ARP) 也未经过验证,可能会用于窃取另一台主机的流量。
本章提供用来在移动 IP 配置文件中修改、添加、删除和显示参数的过程,还介绍如何显示移动代理的状态。
本章包含以下信息:
有关移动 IP 的介绍,请参阅第 27 章。有关移动 IP 的详细信息,请参阅第 29 章。
在 Solaris 10 8/07 之后的 Solaris 10 更新中已删除移动 IP 功能。
任务 |
说明 |
参考 |
---|---|---|
创建移动 IP 配置文件。 |
涉及到创建 /etc/inet/mipagent.conf 文件或复制其中一个样例文件。 | |
配置 General 部分。 |
涉及到在移动 IP 配置文件的 General 部分中键入版本号。 | |
配置 Advertisements 部分。 |
涉及到在移动 IP 配置文件的 Advertisements 部分中添加或更改标签和值。 | |
配置 GlobalSecurityParameters 部分。 |
涉及到在移动 IP 配置文件的 GlobalSecurityParameters 部分中添加或更改标签和值。 | |
配置 Pool 部分。 |
涉及到在移动 IP 配置文件的 Pool 部分中添加或更改标签和值。 | |
配置 SPI 部分。 |
涉及到在移动 IP 配置文件的 SPI 部分中添加或更改标签和值。 | |
配置 Address 部分。 |
涉及到在移动 IP 配置文件的 Address 部分中添加或更改标签和值。 |
本节介绍如何规划移动 IP 和创建 /etc/inet/mipagent.conf 文件。
首次配置 mipagent.conf 文件时,需要执行下列任务:
根据您工作单位对主机的要求,确定移动 IP 代理可以提供的功能:
使用本节中描述的过程创建 /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。
可以重新引导系统,以便调用可启动 mipagent 守护进程的引导脚本。还可以通过键入以下命令来启动 mipagent:
# /etc/inet.d/mipagent start |
在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
使用下列选项之一创建 /etc/inet/mipagent.conf 文件:
在 /etc/inet/mipagent.conf 文件中添加或更改符合您的配置要求的配置参数。
本节中其他过程描述用来修改 /etc/inet/mipagent.conf 中各个部分的步骤。
如果您复制了 /etc/inet 目录中的样例文件,则可以忽略此过程,因为这些样例文件中包含此项。General 部分提供了用于此部分的标签和值的说明。
Advertisements 部分提供了用于此部分的标签和值的说明。
编辑 /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 部分。
GlobalSecurityParameters 部分提供了用于此部分的标签和值的说明。
编辑 /etc/inet/mipagent.conf 文件并使用配置所需的值添加或更改以下各行:
[GlobalSecurityParameters] MaxClockSkew = n HA-FAauth = <yes/no> MN-FAauth = <yes/no> Challenge = <yes/no> KeyDistribution = files |
Pool 部分提供了用于此部分的标签和值的说明。
编辑 /etc/inet/mipagent.conf 文件
使用配置所需的值添加或更改以下各行:
[Pool pool-identifier] BaseAddress = IP-address Size = size |
SPI 部分提供了用于此部分的标签和值的说明。
编辑 /etc/inet/mipagent.conf 文件。
使用配置所需的值添加或更改以下各行:
[SPI SPI-identifier] ReplayMethod = <none/timestamps> Key = key |
对于所部署的每个安全上下文,必须包含一个不同的 SPI 部分。
Address 部分提供了用于此部分的标签和值的说明。
编辑 /etc/inet/mipagent.conf 文件。
使用配置所需的值添加或更改以下各行:
[Address address] Type = node SPI = SPI-identifier |
对于代理,使用以下命令:
[Address address] Type = agent SPI = SPI-identifier |
[Address NAI] Type = Node SPI = SPI-identifier Pool = pool-identifier |
对于缺省的移动节点,使用以下命令:
[Address Node-Default] Type = Node SPI = SPI-identifier Pool = pool-identifier |
任务 |
说明 |
参考 |
修改 General 部分。 |
使用 mipagentconfig change 命令可以更改移动 IP 配置文件的 General 部分中标签的值。 | |
修改 Advertisements 部分。 |
使用 mipagentconfig change 命令可以更改移动 IP 配置文件的 Advertisements 部分中标签的值。 | |
修改 GlobalSecurityParameters 部分。 |
使用 mipagentconfig change 命令可以更改移动 IP 配置文件的 GlobalSecurityParameters 部分中标签的值。 | |
修改 Pool 部分。 |
使用 mipagentconfig change 命令可以更改移动 IP 配置文件的 Pool 部分中标签的值。 | |
修改 SPI 部分。 |
使用 mipagentconfig change 命令可以更改移动 IP 配置文件的 SPI 部分中标签的值。 | |
修改 Address 部分。 |
使用 mipagentconfig change 命令可以更改移动 IP 配置文件的 Address 部分中标签的值。 | |
添加或删除参数。 |
使用 mipagentconfig add 或 delete 命令,可以在移动 IP 配置文件的任何部分中添加新参数、标签和值,或者删除现有的参数、标签和值。 | |
显示参数目标的当前设置。 |
使用 mipagentconfig get 命令可以显示移动 IP 配置文件中任何部分的当前设置。 |
本节介绍如何使用 mipagentconfig 命令来修改移动 IP 配置文件,还介绍如何显示参数目标的当前设置。
配置移动 IP 代理提供了有关 mipagentconfig 命令用法的概念性说明。您还可以查看 mipagentconfig(1M) 手册页。
在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
对于要在 General 部分中修改的每个标签,在命令行上键入以下命令:
# mipagentconfig change <label> <value> |
以下示例说明如何更改配置文件 General 部分中的版本号:
# mipagentconfig change version 2 |
在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
对于要在 Advertisements 部分中修改的每个标签,键入以下命令:
# mipagentconfig change adv device-name <label> <value> |
例如,对于设备 hme0,如果要将代理的已通告的生命周期更改为 300 秒,请使用以下命令:
# mipagentconfig change adv hme0 AdvLifetime 300 |
以下示例说明如何更改配置文件 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 |
在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
对于要在 GlobalSecurityParameters 部分中修改的每个标签,键入以下命令:
# mipagentconfig change <label> <value> |
# mipagentconfig change HA-FAauth yes |
以下示例说明如何更改配置文件 GlobalSecurityParameters 部分中的其他参数:
# mipagentconfig change MaxClockSkew 200 # mipagentconfig change MN-FAauth yes # mipagentconfig change Challenge yes # mipagentconfig change KeyDistribution files |
在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
# mipagentconfig change Pool pool-identifier <label> <value> |
以下示例显示了用来将基本地址更改为 192.168.1.1 的命令以及用来将池 10 的大小更改为 100 的命令:
# mipagentconfig change Pool 10 BaseAddress 192.168.1.1 # mipagentconfig change Pool 10 Size 100 |
在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
对于要在 SPI 部分中修改的每个标签,键入以下命令:
# mipagentconfig change SPI SPI-identifier <label> <value> |
例如,如果要将 SPI 257 的密钥更改为 5af2aee39ff0b332,请使用以下命令。
# mipagentconfig change SPI 257 Key 5af2aee39ff0b332 |
以下示例说明如何更改配置文件 SPI 部分中的 ReplayMethod 标签。
# mipagentconfig change SPI 257 ReplayMethod timestamps |
在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
对于要在 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 |
以下示例显示如何更改样例配置文件的 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 |
在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
对于要在指定部分中添加或删除的每个标签,键入相应的命令:
对于 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> |
请勿创建相同的 Advertisements、Pool、SPI 和 Address 部分。
例如,要创建新的地址池 Pool 11,它的基本地址为 192.167.1.1,大小为 100,请使用下列命令:
# mipagentconfig add Pool 11 BaseAddress 192.167.1.1 # mipagentconfig add Pool 11 size 100 |
以下示例说明如何删除 SPI 安全参数 SPI 257。
# mipagentconfig delete SPI 257 |
可以使用 mipagentconfig get 命令来显示与参数目标相关联的当前设置。
在要启用移动 IP 的系统上承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
对于要显示其设置的每个参数,键入以下命令:
# mipagentconfig get [<parameter> | <label>] |
例如,如果要显示 hme0 设备的通告设置,请使用以下命令:
# mipagentconfig get adv hme0 |
[Advertisements hme0] HomeAgent = yes ForeignAgent = yes |
以下示例显示结合使用 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) 手册页。
在要启用移动 IP 的系统上成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
显示移动代理的状态。
# mipagentstat options |
显示外地代理访问者列表中活动移动节点的列表。
显示家乡代理绑定表中活动移动节点的列表。
显示代理的移动代理对等方的安全关联列表。
以下示例说明如何显示已向外地代理注册的所有移动节点的访问者列表:
# 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) 手册页。
在要启用移动 IP 的系统上成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
显示移动路由。
# netstat -rn |
以下示例显示使用反向隧道的外地代理的路由:
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 的 Solaris 实现所提供的组件。要使用移动 IP,必须首先使用本章中介绍的参数和命令来配置移动 IP 配置文件。
本章包含以下信息:
在 Solaris 10 8/07 之后的 Solaris 10 更新中已删除移动 IP 功能。
移动代理软件将家乡代理与外地代理功能合并在一起。Solaris 移动 IP 软件不提供客户机移动节点,而仅提供代理功能。每个可支持移动的网络至少应有一台运行该软件的静态(非移动)主机。
Solaris 移动 IP 实现中可支持下列 RFC 中所述的功能:
基本移动 IP 协议 (RFC 2002) 无法解决可伸缩密钥分发的问题,它将密钥分发视为正交问题。Solaris 移动 IP 软件仅使用在配置文件中指定的手动配置的密钥。
Solaris 移动 IP 实现中不支持以下 RFC 功能:
家乡代理将多点传送流量或广播流量转发到正在访问外地网络的移动节点的外地代理
通过反向隧道路由广播数据报和多点传送数据报
专用转交地址或专用家乡代理地址
有关其他信息,请参见 mipagent(1M) 手册页。
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-sample-包含同时提供外地代理功能和家乡代理功能的移动 IP 代理的样例配置
mipagent.conf.fa-sample-包含仅提供外地代理功能的移动 IP 代理的样例配置
mipagent.conf.ha-sample-包含仅提供家乡代理功能的移动 IP 代理的样例配置
这些样例配置文件包含移动节点的地址和安全设置。必须先创建一个名为 mipagent.conf 的配置文件并将其放在 /etc/inet 目录中,然后才能实现移动 IP。此文件包含可满足移动 IP 实现要求的配置设置。此外,还可以选择其中一个样例配置文件,使用您的地址和安全设置对其进行修改,然后将其复制到 /etc/inet/mipagent.conf 中。
有关更多信息,请参见如何创建移动 IP 配置文件。
下面列出了 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 文件中显示的配置仅提供外地代理功能。此样例文件不包含 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-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 |
General(必需)
Advertisements(必需)
GlobalSecurityParameters(可选)
Pool(可选)
SPI(可选)
Address(可选)
General 和 GlobalSecurityParameters 部分包含与移动 IP 代理的操作相关的信息。这些部分在配置文件中只能出现一次。
General 部分仅包含一个标签: 配置文件的版本号。General 部分的语法如下:
[General] Version = 1.0 |
Advertisements 部分包含 HomeAgent 和 ForeignAgent 标签以及其他标签。提供移动 IP 服务的本地主机上的每个接口必须包括一个不同的 Advertisements 部分。Advertisements 部分的语法如下:
[Advertisements interface] HomeAgent = <yes/no> ForeignAgent = <yes/no> . . |
通常,系统有一个接口,如 eri0 或 hme0,并且同时支持家乡代理操作和外地代理操作。如果示例 hme0 存在这种情况,则可按如下所示向 HomeAgent 和 ForeignAgent 标签指定 yes 值:
[Advertisements hme0] HomeAgent = yes ForeignAgent = yes . . |
对于通过动态接口的通告,可针对设备 ID 部分使用“*”。例如,Interface-name ppp* 实际上是指启动 mipagent 守护进程之后配置的所有 PPP 接口。动态接口类型的通告部分中的所有属性保持不变。
下表介绍了可在 Advertisements 部分中使用的标签和值。
表 29–1 Advertisements 部分的标签和值
GlobalSecurityParameters 部分包含标签 maxClockSkew、HA-FAauth、MN-FAauth、Challenge 和 KeyDistribution。该部分的语法如下:
[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 | |
HA-FAauth |
yes 或 no | |
MN-FAauth |
yes 或 no | |
Challenge |
yes 或 no | |
KeyDistribution |
files |
家乡代理可以为移动节点分配动态地址。动态地址分配是独立于 DHCP 在 mipagent 守护进程中完成的。可以通过请求家乡地址来创建可供移动节点使用的地址池。地址池是通过配置文件中的 Pool 部分配置的。
Pool 部分包含 BaseAddress 和 Size 标签。Pool 部分的语法如下:
[Pool pool-identifier] BaseAddress = IP-address Size = size |
如果您使用 Pool 标识符,则该标识符还必须存在于移动节点的 Address 部分中。
您可以使用 Pool 部分来定义可分配给移动节点的地址池。BaseAddress 标签用于设置池中的第一个 IP 地址。可以使用 Size 标签指定池中可用地址的数量。
例如,如果在池 10 中保留了从 192.168.1.1 至 192.168.1.100 的 IP 地址,则 Pool 部分中具有以下项:
[Pool 10] BaseAddress = 192.168.1.1 Size = 100 |
地址范围中不应包含广播地址。例如,不应指定 BaseAddress = 192.168.1.200 和 Size = 60,因为此范围包含广播地址 192.168.1.255。
标签 |
值 |
说明 |
---|---|---|
BaseAddress |
n.n.n.n | |
Size |
n |
由于移动 IP 协议需要消息验证,因此必须使用安全参数索引 (security parameter index, SPI) 标识安全上下文。安全上下文可在 SPI 部分中定义。所定义的每个安全上下文必须包括一个不同的 SPI 部分。数字 ID 用于标识安全上下文。移动 IP 协议可保留前 256 个 SPI。因此,应仅使用大于 256 的 SPI 值。SPI 部分包含与安全相关的信息,如共享密钥和重放保护。
SPI 部分还包含 ReplayMethod 和 Key 标签。SPI 部分的语法如下:
[SPI SPI-identifier] ReplayMethod = <none/timestamps> Key = key |
进行通信的对等双方必须共享相同的 SPI 标识符,并且必须使用相同的密钥和重放方法对双方进行配置。可以将密钥指定为由十六进制数字组成的字符串。最大长度为 16 个字节。例如,如果密钥的长度为 16 个字节,其中包含 0 至 f 之间的十六进制值,那么,密钥字符串可能与以下内容类似:
Key = 0102030405060708090a0b0c0d0e0f10 |
由于每个字节用两位数表示,因此密钥的位数一定为偶数。
表 29–4 SPI 部分的标签和值
标签 |
值 |
说明 |
---|---|---|
ReplayMethod |
none 或 timestamps | |
Key |
x |
Solaris 移动 IP 实现允许您使用以下三种方法之一配置移动节点。每种方法都在 Address 部分中配置。第一种方法遵循传统的移动 IP 协议,要求每个移动节点都有一个家乡地址。第二种方法允许通过移动节点的网络访问标识符 (Network Access Identifier, NAI) 来标识该移动节点。最后一种方法允许配置缺省移动节点,具有正确的 SPI 值和相关密钥资料的任何移动节点都可用作缺省移动节点。
移动节点的 Address 部分包含用来定义地址类型和 SPI 标识符的 Type 和 SPI 标签。Address 部分的语法如下:
[Address address] Type = node SPI = SPI-identifier |
每个受支持的移动节点在家乡代理的配置文件中必须包括一个 Address 部分。
如果外地代理和家乡代理之间需要移动 IP 消息验证,则代理需要与之通信的每个对等方必须包括一个 Address 部分。
所配置的 SPI 值必须表示在配置文件中存在的 SPI 部分。
另外,还可以为移动节点配置专用地址。
下表介绍了可在移动节点的 Address 部分中使用的标签和值。
表 29–5 Address 部分的标签和值(移动节点)
标签 |
值 |
说明 |
---|---|---|
Type |
node(节点) | |
SPI |
n |
移动代理的 Address 部分包含用来定义地址类型和 SPI 标识符的 Type 和 SPI 标签。移动代理的 Address 部分的语法如下:
[Address address] Type = agent SPI = SPI-identifier |
每个受支持的移动代理在家乡代理的配置文件中必须包括一个 Address 部分。
如果外地代理和家乡代理之间需要移动 IP 消息验证,则代理需要与之通信的每个对等方必须包括一个 Address 部分。
所配置的 SPI 值必须表示在配置文件中存在的 SPI 部分。
下表介绍了可在移动代理的 Address 部分中使用的标签和值。
表 29–6 Address 部分的标签和值(移动代理)
标签 |
值 |
说明 |
---|---|---|
Type |
agent |
指定该项适用于移动代理 |
SPI |
n |
指定关联项的 SPI 值 |
由 NAI 标识的移动节点的 Address 部分包含 Type、SPI 和 Pool 标签。使用 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 | |
Pool |
n |
对于由 NAI 标识的移动节点,Address 部分中定义的 SPI 和 Pool 标签必须具有与其对应的 SPI 和 Pool 部分,如下图所示。
缺省移动节点的 Address 部分包含 Type、SPI 和 Pool 标签。使用 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 | |
Pool |
n |
缺省移动节点的 Address 部分中定义的 SPI 和 Pool 标签必须有相对应的 SPI 和 Pool 部分,如下图所示。
可以使用 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 命令的过程。
可以使用 mipagentstat 命令显示外地代理的访问者列表和家乡代理的绑定表。另外,还可以显示与代理的移动代理对等方的安全关联。要显示外地代理的访问者列表,可以使用 mipagentstat 命令的 -f 选项。要显示家乡代理的绑定表,可以使用 mipagentstat 命令的 -h 选项。以下示例显示了使用带有这些选项的 mipagentstat 命令时的典型输出。
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. |
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 命令的过程。
关机时,mipagent 守护进程会将内部状态信息存储在 /var/inet/mipagent_state 中。仅当 mipagent 作为家乡代理提供服务时,才会发生该事件。此状态信息包括可以作为家乡代理的移动节点列表、其当前转交地址以及剩余的注册生命周期。此状态信息还包括移动代理对等方的安全关联配置。如果终止 mipagent 守护进程以进行维护并重新启动,则可以使用 mipagent_state 重新创建尽可能多的移动代理内部状态,从而最大程度地减少可能正在访问其他网络的移动节点的服务中断。如果存在 mipagent_state,则每次启动或重新启动 mipagent 时,都会在读取 mipagent.conf 之后立即读取它。
netstat 命令中已添加了用来标识移动 IP 转发路由的移动 IP 扩展。具体来说,可以使用 netstat 命令显示名为 "Source-Specific" 的新路由表。有关更多信息,请参见 netstat(1M) 手册页。
以下示例显示了使用 -nr 标志时 netstat 的输出。
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。
snoop 命令中已添加了用来标识链路上移动 IP 流量的移动 IP 扩展。有关更多信息,请参见 snoop(1M) 手册页。
以下示例显示了在移动节点 mip-mn2 上运行的 snoop 的输出。
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-mn2 向 mip-fa2 发送注册请求,并接收相应的注册回复作为响应。注册回复表示移动节点已成功向其家乡代理进行了注册。