移动 IP

移动 IP 技术是指移动站以固定的 IP 地址实现跨越不同网络的漫游功能,并保证基于 IP 的网络权限在漫游过程中不发生任何改变。移动 IP 的目标是把分组自动地投递给移动站。一个移动站是把其连接点从一个网络或子网改变到另一个网络或子网的主机。

整个移动 IP 可以浓缩成一句话:别人发给移动站的分组绕道归属代理,移动站发出的分组直接走。 本页的错题就是这句话的前后两半。

机制

4.6.1 三种功能实体

移动 IP 定义了三种功能实体:

实体是什么
移动节点具有永久 IP 地址的移动主机
本地代理(也称归属代理)通常就是连接在归属网络(原始连接到的网络)上的路由器
外地代理通常就是连接在被访网络(移动到另一地点所接入的网络)上的路由器

值得注意的是,某用户将笔记本关机后从家里带到办公室重新上网,在办公室能很方便地通过 DHCP 自动获取新的 IP 地址。虽然笔记本移动了,更换了地点及所接入的网络,但是,这并不是移动 IP。若需要在移动中进行 TCP 传输,则在移动站漫游时,应一直保持这个 TCP 连接,否则移动站的 TCP 连接就会断断续续。可见,若要使移动站在移动中的 TCP 连接不中断,就必须使笔记本的 IP 地址在移动中保持不变。这就是移动 IP 要研究的问题。

TCP 连接由双方的 IP 地址和端口号共同确定(5.3.3 TCP 连接管理),IP 地址一变,原来的连接就不再成立——这是移动 IP 必须保持地址不变的根本原因。

4.6.2 移动 IP 通信过程

王道用一个通俗的例子描述移动 IP 的通信原理:以前本科毕业时都将走向各自的工作岗位,因为事先并不知道自己未来的准确通信地址,所以彼此留下各自的家庭地址(永久地址)。毕业后若要和某同学联系,只要写信寄到该同学的永久地址,再请其家长把信件转交即可。

在移动 IP 中,每个移动站都有一个原始地址,即永久地址(或归属地址),移动站原始连接的网络称为归属网络。永久地址和归属网络的关联是不变的。例如,移动站 A 的永久地址是 131.8.6.7/16,而其归属网络是 131.8.0.0/16。归属代理通常是连接到归属网络上的路由器,然而它实现的代理功能是在应用层完成的。

当移动站移动到另一地点,所接入的外地网络也称被访网络。例如,移动站 A 被移动到被访网络 15.0.0.0/8。被访网络中使用的代理称为外地代理,它通常是连接在被访网络上的路由器。外地代理有两个重要功能:

  1. 要为移动站创建一个临时地址,称为转交地址。例中移动站 A 的转交地址是 15.5.6.7/8,转交地址的网络号显然和被访网络一致。
  2. 及时把移动站的转交地址告诉其归属代理。

请注意两点:转交地址是供移动站、归属代理及外地代理使用的,各种应用程序都不会使用;外地代理要向连接在被访网络上的移动站发送 IP 分组时,直接使用移动站的 MAC 地址。

通信者 B 要和移动站 A 进行通信。B 并不知道 A 在什么地方,但 B 使用 A 的永久地址作为发送的 IP 分组中的目的地址,移动 IP 的基本通信流程如下:

  1. 移动站 A 在归属网络时,按传统的 TCP/IP 方式进行通信。
  2. 移动站 A 漫游到被访网络时,向外地代理进行登记,以获得一个临时的转交地址。外地代理要向 A 的归属代理登记 A 的转交地址。
  3. 归属代理知道移动站 A 的转交地址后,会构建一条通向转交地址的隧道,将截获的发送给 A 的 IP 分组进行再封装,并通过隧道发送给被访网络的外地代理。
  4. 外地代理把收到的封装的 IP 分组进行拆封,恢复成原始的 IP 分组,然后发送给移动站 A,这样 A 在被访网络就能收到这些发送给它的 IP 分组。
  5. 移动站 A 在被访网络对外发送 IP 分组时,仍然使用自己的永久地址作为 IP 分组的源地址,此时显然无须通过 A 的归属代理来转发,而是直接通过被访网络的外部代理。
  6. 移动站 A 移动到另一被访网络时,在新外地代理登记后,然后新外地代理将 A 的新转交地址告诉其归属代理。无论如何移动,A 收到的 IP 分组都是由归属代理转发的。
  7. 移动站 A 回到归属网络时,A 向归属代理注销转交地址。
sequenceDiagram
  participant B as 通信者 B
  participant HA as 归属代理(131.8.0.0/16)
  participant FA as 外地代理(15.0.0.0/8)
  participant A as 移动站 A(永久地址 131.8.6.7)
  A->>FA: ① 登记,获得转交地址 15.5.6.7
  FA->>HA: ② 登记 A 的转交地址
  B->>HA: ③ 目的地址 = A 的永久地址
  HA->>FA: ④ 再封装,经隧道发往转交地址
  FA->>A: ⑤ 拆封,用 A 的 MAC 地址交付
  A->>B: ⑥ 源地址 = 永久地址,直接经被访网络发出

为了支持移动性,在网络层中还应增加一些新功能:①移动站到外地代理的登记协议;②外地代理到归属代理的登记协议;③归属代理数据报封装协议;④外地代理拆封协议。

边界

错题复盘:移动主机到了被访网络,可以直接发送,但不能直接接收

王道 4.6.3 第 3 题:若一台主机的 IP 地址为 160.80.40.20/16,则当它移动到另一个不属于 160.80/16 子网的网络时,它将( )(能否通过被访网络的路由器直接发送/接收数据报)(A. 可以直接接收和直接发送数据报,没有任何影响 B. 既不可以直接接收数据报,又不可以直接发送数据报 C. 不可以直接发送数据报,但可以直接接收数据报 D. 可以直接发送数据报,但不可以直接接收数据报)。答案 D。

接收:其他主机向该主机发送数据报时,使用永久地址 160.80.40.20/16 作为目的地址,按路由会被送往 160.80/16 所在的归属网络,由归属代理截获,再通过隧道发送到该主机的外地代理,由外地代理转交给该主机——不能直接接收。

发送:该主机向其他主机发送数据报时,使用永久地址作为源地址,使用对方的 IP 地址作为目的地址。路由器转发只看目的地址(4.2.5),这个数据报没有必要再经过归属代理,直接通过外地代理转发即可——可以直接发送。

不对称的根源就在”路由器只看目的地址”:发往永久地址的分组被路由送回归属网络,而源地址是什么,不影响分组往哪里走。

转交地址不给应用程序用。 通信者 B 和 A 上的应用程序始终只知道 A 的永久地址;转交地址只在代理与隧道之间使用。

移动站注册时把新的可达信息(转交地址)通知的是归属代理。 外地代理是登记的中转者,最终要让归属代理知道往哪里转发(王道 4.6.3 第 1 题)。

归属地址固定,转交地址随移动而改变(王道 4.6.3 第 2 题)。

换了网络用 DHCP 重新获取地址不是移动 IP。 那样做地址变了,正在进行的 TCP 连接会中断。

口径差异:移动 IP 的"应用层"部分与三角路由

教材口径:归属代理是路由器,但代理功能在应用层完成;移动站发出的分组直接经被访网络发送。

标准口径:移动 IPv4 的登记报文用 UDP(端口 434)传送,这是”应用层完成”的具体所指;转发数据时,归属代理用 IP-in-IP 封装建立隧道,属于网络层。去程绕道归属代理、回程直接发送,形成所谓三角路由;若被访网络的路由器过滤”源地址不属于本网络”的分组,移动站直接发出的分组会被丢弃,此时需要反向隧道,让回程也经归属代理。

考试按教材口径作答。

对照速查

说法对错
移动 IP 使移动站以固定的 IP 地址跨网漫游✅
笔记本换个地方用 DHCP 获取新地址也属于移动 IP❌
转交地址的网络号与被访网络一致✅
通信者 B 使用 A 的转交地址作为目的地址❌(永久地址)
归属代理通过隧道把分组发往转交地址✅
移动站在被访网络发出的分组,源地址是转交地址❌(永久地址)
移动站在被访网络发出的分组要经过归属代理❌
无论移动到哪里,发给移动站的分组都经归属代理转发✅
移动 IP 中归属地址和转交地址都随移动而改变❌(归属地址固定)

考点

  • 三种实体:移动节点、归属代理(本地代理)、外地代理
  • 永久地址(归属地址)与转交地址;转交地址由外地代理创建并告知归属代理
  • 通信流程七步:去程经归属代理隧道,回程直接发送
  • 移动 IP ≠ DHCP 重新获取地址

链接