第 7 章下 一代互联网

下一代互联网 (Next Generation Internet, NGO 是美国政府于 20 世纪 90 年代支持的研究
计划,其目的有 3 个:开发下一代光纤技术,把现有网络的连接速率提高 100~1000 倍;研发
高级的网络服务技术,包括 QoS 、网络管理新技术和新的网络服务体系结构;演示新的网络应
用,例如远程医疗、远程教育、高性能全球通信等。该研究计划千 2002 年宣布基本完成 。 我
国的下 一代互联网计划 CNGI 从 2003 年开始启动,经过了 5 年的研究终千取得了圆满成功,并
在 2008 年北京奥运会期间向全世界展示了基千 IPv6 的官方网站 www.beijing2008.cn 。本章讲
述 NGI 的关键技术以及 IPv4 向
IPv6 的过渡技术,并介绍下一代互联网研究的进展情况。

7 .1 1Pv6

基于 1Pv4 的因特网已运行多年,随着网络应用的普及和扩展, 1Pv4 协议逐渐暴露出一些
缺陷,主要问题如下。

• 网络地址短缺 : 1Pv4 地址为 32 位,只能提供大约 43 亿个地址,其中 1/3 被美国占用 。
1Pv4 的两级编址方案造成了很多无用的地址“空洞”,地址空间浪费很大。另一方面,
随着 TCP/IP 应用的扩大,对网络地址的需求迅速增加,有的主机分别属千多个网络,
需要多个 IP 地址,有些非主机设备,例如自动柜员机和有线电视接收机也 要求分配 IP
地址。一系列新需求的出现都加剧了 1P 地址的紧缺,虽然采用了诸如 VLSM 、 CIDR
和 NAT 等辅助技术,但是并没有彻底解决问题。

• 路由速度慢 : 随着网络规模的扩大,路由表越来越庞大,路由处理速度越来越慢。这
是因为 1Pv4 头部多达 13 个字段,路由器处理的信息量很大,而且大部分处理操作都
要用软件实现,这使得路由器已经成为因特网的瓶颈。因此,设法简化路由处理成为
提高网络传输速度的关键技术。

• 缺乏安全功能:随着互联网的广泛应用,网络安全成为迫切需要解决的问题。 1Pv4 没
有提供安全功能,阻碍了互联网在电子商务等信息敏感领域的应用。近年来,在 1Pv4
基础上针对不同的应用领域研究出了一些安全成果,例如 IPSec 、 SLL 等。这些成果
需要进一步
的 整合, 以便为各种应用领域提供统一的安全解决方 案。

• 不支待新的业务模式: 1Pv4 不支持许多新的业务模式,例如语音、视频等实时信息传
输需要 QoS 支待, P2P 应用还需要端到端的 QoS 支待,移动通信需要灵活的接入控制,

也需要更多的 IP 地址等。这些新业务的出现对互联网的应用提出了 一些难以解决的问
题,需要对现行的 IP 协议做出根本性的变革。
针对 1Pv4 面临的问题, IETF 在
1992 年 7 月发出通知,征集对下一代 IP 协议 (IPng) 的
建议。在对多个建议筛选的基础上, IETF 千 1995 年 1 月发表了 RFC 1752 (The Recommendation

o f the IP Next Generation Protocol) , 阐述了对下一代 IP 的需求,定义了新的协议数据单元,这

是 1Pv6 研究中的里程碑事件。随后的一些 RFC 文档给出了 IPv6 协议的补充定义,关千 IPv6
各种研究成果都包含在 1998 年 12 月发表的
RFC2460 文档中。

7.1.11Pv6 分组格式

IPv6 协议数据单元的格式如图 7 -1 (a) 所示,整个 IPv6 分组由一个固定头部和若干个扩
展头部以及上层协议的负载组成。扩展头部是任选的,转发路由器只处理与其有关的部分,这
样就简化了路由器的转发操作,加速了路由处理的速度
。 IPv6 的固定头部如图 7 - 1 Cb) 所示,
其中的各个字段解释如下:

image.png

  • 版本 (4 位):用 OllO 指示 IP 第六版。
  • 通信类型 (8 位):这个字段用千区分不同的 IP 分组,相当千 IPv4 中的服务类型字段,通信类型的详细定义还在研究和实验之中。
  • 流标记 (20 位) : 原发主机用该字段来标识某些需要特别处理的分组,例如特别的服务质量或者实时数据传输等,流标记的详细定义还在研究和实验之中。
  • 负载长度 (16 位) : 表示除了 1Pv6 固定头部 40 个字节之外的负载长度,扩展头包含在负载长度之中。
  • 下一头部 (8 位):指明下一个头部的类型,可能是 IPv6 的扩展头部,也可能是高层协议的头部。
  • 跳数限制 (8 位) : 用千检测路由循环,每个转发路由器对这个字段减 1, 如果变成 0,分组被丢弃。
  • 源地址 (128 位):发送节点的地址。
  • 目标地址 (128 位):接收节点的地址。

IPv6 有 6 种扩展头部,如表 7 - 1 所示 。这 6 种扩展头部都是任选的 。扩展头部的作用是保留 IPv4 某些字段的功能,但只是由特定的网络设备来检查处理,而不是每个设备都要处理。

image.png

扩展头部的第一个字节是下一头部 (Next Header) 选择符(图 7 -2 (a ) ) , 其值指明了下一个头部的类型,例如 60 表示目标选项, 43 表示源路由, 44 表示分段, 51 表示认证,50 表示
封装安全负荷等 (http : //www.iana.org/assignments/ipv6-parameters), 59 表示没有下一个头部 了 。
由于逐跳选项没有指定相应的编码,所以它如果出现要放在所有扩展头部的
最前面 , 在 IPv6
头部的“下一头部”字段中用 0 来指示逐跳选项的存在。扩展头部的第二个字节表示头部扩展
长度 (Hdr Ex t Len ) , 以 8 个字节计数,其值不包含扩展头部的前 8 个 字节。 也就是说,如 果
扩展头部只有 8 个字节,则该字段为 0 。
逐跳选项是可变长字段,任选部分 (Options) 被编码成类型 -长度 -值 (TLV) 的形式,如
图 7-2 (b) 所示。类型 (Type) 为一个字节长,其中前两位指示对千不认识的头部如何处理,
其编码如下。

下一头部 1 扩展头部 长度 1

任选部 分

( a )

任选类型 1 任选数据长度 1

任选数据

( b )

图 7 - 2 包含任选部分的扩展头部



00 : 跳过该任选项,继续处理其他头部。
01 : 丢弃分组 。
10: 丢弃分组,并向源节点发送 ICMPv6 参数问题报文 。
11: 处理方法同前,但是对千组播地址不发送 ICMP 报文(防止出错的组播分组引起
大 量 ICMP 报文)。
长度 ( Length) 是 8 位无符号整数,表示任选数据部分包含的字节数 。
值 (Value) 是相应
类型的任选数据。

逐跳选项包含了通路上每个路由器都必须处理的信息,目前只定义了两个选项
。 ”特大净
负荷”选项适用千传送大千 64K 的特大分组,以便有效地利用传输介质的容量传送大噩
的视频
数 据 。 “路由器警 戒”选项 (RFC
2711) 用千区分数据报封装的组播监听发现 (MLD) 报文、
资 源预约 (RSVP) 报文以及主动网络 (Active Network) 报文等,这些协议可以利用这个字段
实现特定的功能。
目标选项包含由目标主机处理的信息,例如预留缓冲区等
。 目标选项的报文格式与逐跳选
项相同。
路由选择扩展头的格式如图 7 - 3 所示,其中的路由类型字段是一个 8 位的标识符,最初只

定义了一种类型 o, 用千表示松散源路由。未用段表示在分组传送过程中尚未使用的路由段数

量 ,这个字段在分组传送过程中逐渐减少,到达目标端时应为 0 。路由类型 0 的分组格式表示
在图 7 - 3 中,在第一个字之后保留一个字,其初始值为 O, 到达接收端时被忽略。接下来就是 n
个 IPv6 地址,指示通路中要经过的路由器。

下一 女
部 1 扩展头部长度 1 路 由 类型= o I

未用段

保留的一个字

1Pv6地址 1

~

!Pv6地址 n

图 7 -3 路由头部

分段扩展头表示在图 7-4 中,其中包含了 13 位的段偏置值(编号),是否为最后一个分段

的标志 M, 以及数据报标识符,这些都与 IPv4 的规定相同。与 IPv4 不同的是,在 IPv6 中只能
由原发节点进行分段,中间路由器不能分段,这样就简化了路由过程中的分段处理。

下一头部 1 保~ ~~ 符段偏笠值

1 保 留 IMI

图 7-4 分段头部

认证和封装安全负荷的详细介绍已经超出了本书的范围,读者可参考有关 IPSec 的资料。
如果一个 1Pv6 分组包含多个扩展头,建议采用下面的封装顺序:

C l ) 1Pv6 头部 。

(2) 逐跳选项头。

(3) 目标选项头 (1Pv6 头部目 标地址字段中指明的第一个目标节点要处理的信息,以及路
由选择头中列出的后续目标节点要处理的信息)。

(4) 路由选择头。

(5) 分段头。

( 6) 认证头 。

( 7) 封装安全负荷头 。

(8) 目标选项头(最后的目标节点要处理的信息)。

(9) 上层协议头部。

270 I

网络工程师教程(第 5 版)

7 . 1.2-1Pv6 地址

1Pv6 地址扩展到 128 位。 2128 足够大,这个地址空间可能永远用不完。事实上,这个数大
千阿伏加德罗常数,足够为地球上的每个分子分配一个 IP 地址。用一个形象的说法,这样大的
地址空间允许整个地球表面上每平方米配置 7xl023 个 IP 地址。
1Pv6 地址采用冒号分隔的十六进制数表示,例如下面是一个 1Pv6 地址:
8000 :0000 :0000 :0000 :0123 :4567 :89AB :CDEF
为了便千书写,规定了一些简化写法。首先,每个字段前面的 0 可以省去,例如 0123 可
以简写为 123; 其次,一个或多个全 0 字段
0000 可以用一对冒号代替。例如,以上地址可简

写为:

8000:: 123 :4567 :89AB :CDEF
另外, 1Pv4 地址仍然保留十进制表示法,只需要在前面加上一对冒号,就成为 1Pv6 地址,
称为 1Pv4 兼容地址 (1Pv4 Comp a t ib l e ) , 例如:
: : 192 . 168.10.1

l . 格式前缀

1Pv6 地址的格式前缀 (Format P r e f ix , FP) 用千表示地址类型或子网地址,用类似千
1Pv4
CIDR 的方法可表示为 “1Pv6 地址/前缀长度”的形式。例如 60 位的地址前缀 l 2ABOOOOOOOOCD3
有下列几种合法的表示形式:

12AB :0000 :0000 :CD30 :0000 :0000 :0000 :0000 /60
12AB: :CD30 :0 :0 :0 :0/60

12AB:O:O:CD30::/60
下面的表示形式是不合法的

12AB:O:O:CD3/60 (在 16 位的字段中可以省掉前面的 O, 但不能省掉后面的 0)
12AB : :CD30/60 (这种表示可展开为 12AB:0000:0000:0000:0000:0000:0000:CD30)
12AB : :CD3 /60 (这种表示可展开为 12AB:OOOO:OOOO:OOOO:OOOO : OOOO:OOOO:OCD3)
一 般来说,节点地址与其子网前缀组合起来可采用紧缩形式表示,例如节点地址

12AB:O:O:CD30: 123 :4567 :89AB :CDEF
若其子网号为 l 2AB:O:O:CD30::/60, 则等价的写法是 12AB :
0:0:CD30: 123:4567:89AB:CDEF/60 。

2 . 地址分类

1Pv6 地址是一个或一组接口的标识符。 1Pv6 地址被分配到接口,而不是分配给节点。 1Pv6
地址有 3 种类型:

第 7 章 下 一 代互联网

1271

I) 单播 (Unicast) 地址

单播地址是单个网络接口的标识符。对千有多个接口的节点,其中任何一个单播地址都可
以用作该节点的标识符。但是为了满足负载平衡的需要,在 RFC 2373 中规定,只要在实现中

多个接 口看起来形同
一个接口就允许这些接口使用同一地址。 1Pv6 的单播地址是用 一 定长度的
格式前缀汇聚的地址,类似千 1Pv4 中的 CIDR 地址。在单播地址中有下列两种特殊地址 。
• 不确定地址:地址 0:0:0:0:0:0:0:0 称为不确定地址,不能分配给任何节点 。 不确定地址
可以在初始化主机时使用,在主机未取得地址之前,它发送的 1Pv6 分组中的源地址字
段可以使用这个地址
。 这种地址不能用作目标地址,也不能用在 1Pv6 路由头中 C
• 回环地址:地址 0:0:0:0:0:0:0:l 称为回环地址,节点用这种地址向自身发送 1Pv6 分组

这种地址不能分配给任何物理接口。
2) 任意播 (AnyCast) 地址

这种地址表示一组接口(可属千不同节点)的标识符。发往任意播地址的分组被送给该地
址标识的接口之一,通常是路由距离最近的接口。对 1Pv6 任意播地址存在下列限制:
• 任意播地址不能用作源地址,而只能作为目标地址

• 任意播地址不能指定给 IPv6 主机,只能指定给 1Pv6 路由器 。

  1. 组播 (Multi Cast) 地址

组播地址是一组接口(一般属千不同节点)的标识符,发往组播地址的分组被传送给该地
址标识的所有接口。 IPv6 中没有广播地址,它的功能已被组播地址所代替 。
在 IPv6 地址中,任何全 “O” 和全 “I,, 字段都是合法的,除非特别排除的之外 。特别是
前缀可以包含 “O” 值字段,也可以用 “0” 作为终结字段
。一 个接口可以被赋予任何类型的多
个地址(单播、任意播、组播)或地址范围。

3 . 地址类型初始分配

IPv6 地址的具体类型是由格式前缀来区分的,这些前缀的初始分配如表 7-2 所示 。

表 7 -2

1Pv6 地址的初始分配

前缀(二进制

占地址空间的比例

保留

未分配

为 NSAP 地址保留

为 IPX 地址保留

未分配

未分配

未分配

0000 0000
0000 000
0000 001
0000 010
0000 011
0000 I
0001

1/256
11/256
1/128
1/128
1/ 128
1/32
1/16

272 I

网络工程师教程(第 5 版)

可聚合全球单播
地址

未分配

未分配

未分配

未分配

未分配

未分配

未分配

未分配

未分配

未分配

链路本地单播地址

站点本地单播地址

组播地址

前缀 (
二进制 )

001
010
O i l
100
JOI
110
1110
1111 0
1111 10
1111 110
11 1 1 1 1 1 0 0
1111111010
1111111011
11111111

续表
占地址空间的比例

1/8
1/8
1/8
1/8
1/8
1/8
1/16
1/32
1/64
1/128
1/512
1/1024
1/1024
1/256

地址空间的 15%是初始分配的,其余 85% 的地址空间留作将来使用。这种分配方案支待可
聚合地址
、本地地址和组播地址的直接分配,并保留了 SNAP 和 IPX 的地址空间,其余的地址
空间留给将来的扩展或者新的用途。单播地址和组播地址都是由地址的高阶字节值来区分的

FF 01111111) 标识一个组播地址,其他值则标识一个单播地址,任意播地址取自单播地址空
间,与单播地址在语法上无法区分。

4 . 单播地址

1Pv6 单播地址包括可聚合全球单播地址、链路本地地址、站点本地地址和其他特殊单播
地址。

(1) 可聚合全球单播地址:这种地址在全球范围内有效,相当千 1Pv4 公用地址。全球地
址的设计有助千构架一个基千层次的路由基础设施。可聚合全球单播地址结构如图 7 -5 所 示。

亏A 芦

24__NLA 三 1-


64

接口 1D

A

..

图 7-5 可聚合全球单播地址

可聚合全球单播地址的格式前缀为 001, 随后的顶级聚合体 TLA (T o p L ev e l
Aggregator) 、
下级聚合体 NLA (N e x t L ev e l Aggregator) 以及站点级聚合体
SLA ( S i te L ev e l Aggregator) 构

第 7 章 下 一代互联网

273

成了自顶向下的 3 级路由层次结构(如图 7-6 所示)。 TLA 是远程服务供应商的骨干网接入点,
TLA 向地区互联网注册机构 RJR CARIN 、 RJPE NCC 、 APNIC 等)申请 IPv6 地址块, TLA 之
下就是商业地址分配范围。 NLA 是一般的 ISP, 它们把从
TLA 申请的地址分配给 SLA, 各个
站点级聚合体再为机构用户或个人用户分配地址。分层结构的最底层是主机接口,通常是在主
机的 48 位 MAC 地址前面填充
OxFFFE 构成的接口 ID 。

Regional
Internet
Registry
( R!R l

主干 网提
供商

ISP

ARIN , American Registry for Internet Numbers ,
RJPE - NCC , R芯eau IP Europeens - Network Coordination Centre in Europe,
APNIC , Asia Pacific Network Information Centre,

图 7-6 可聚合全球单播地址层次结构

(2) 本地单播地址:这种地址的有效范围仅限千本地,又分为两类。

• 链路本地地址:其格式前缀为 1111 1110 10, 用于同一链路的相邻节点间的通信。链

路本地地址相当千 IPv4 中的自动专用 IP 地址
(APIPA), 可用千邻居发现,并 且 总是
自动配置的,包含链路本地地址的分组不会被路由器转发。
• 站点本地地址:其格式前缀为 1111 1110 11, 相当千 IPv4 中的私网地址 。 如果企业内
部网没有连接到 Internet 上,则可以使用这种地址。站点本地地址不能被其他站点访
问,包含这种地址的分组也不会被路由器转发到站点之外。

5 . 组播地址

IPv6 组播可以将数据报传输给组内的所有成员。 IPv6 组播地址的格式前缀为 1111 1111,
此外还包括标志 (Flags) 、范围和组 1D 等字段,如图 7 -7 所示。

J 11111111~ 言二寸

112

Group ID

A

图 7-7

IPv6 组播地址

274 1

网络工程师教程(第 5 版 )

Flags 可表示为 OOOT, T=O 表示被 IANA 永久分配的组播地址; T=l 表示临时的组播地址 。
Scope 是组播范围字段,表 7 - 3 列出了在 RFC 2373 中定义的 Scope 的值。 Group ID 标识了一个
给定范围内的组播组。永久分配的组播组 ID 与范围字段无关,临时分配的组播组 1D 在特定的

范围内有效

I
2
5
8
E
F

  1. 任意播地址

表 7-3

Scope 字段值

_… ,巳

保留
节点本地范围
链路本地范围
站点本地范围
机构本地
范 围
全球范围

保留

任意播地址仅用作目标地址,且只能分配给路由器。任意播地址是在单播地址空间中分配
的。 一个子网内的所有路由器接口都被分配了子网-路由器任意播地址。子网-路由器任意播地
址必须在子网前缀中进行预定义。为构造一个子网
-路由器任意播地址,子网前缀必须固定,其

余位置全 “O”, 如图 7 - 8 所示 。

n

子网前缀 (Prefix)


128 -n

000 …

….

. . …

000

A
..

图 7 - 8 子网-路由器任意播地址

表 7 -4 是 IPv4 与 IPv6 地址的比较。

表 7-4

1Pv4 和 1Pv6 地址比较

1Pv4 地址
点分十进制表示
分为 A 、 B 、 C 、 D 、 ES 类
组播地址 224.0 .0.0 /4
广播地址(主机部分为全 I)
默认地址 0.0.0.0

回环地址 127.0.0.l
公 共 地址

1Pv6 地址
带冒号的十六进制表示, 0 压缩

不分类

组播地址 FF00:: / 8

任意播(限千子网内部)

不确定地址::
回环地址:
: l
可聚合全球单播地址 FP=OOl

第 7 章下一代互联网 . I 275

续表

1Pv4 地址
私网地址 10.0 . 0 . 0/ 8;

172.16.0.0/ 12; 192.168 .0.0/ 16

自动专用 IP 地址 169.254.0.0/16

7 . 1Pv6 的地址配置

1Pv6 地址

站点本地地址 FEC0:: /48

链路本地地址 FES0::/48

1Pv6 把自动 1P 地址配置作为标准功能,只要计算机连接上网络便可自动分配 IP 地址
。这
样做有两个优点,一是最终用户无须花精力进行地址设置,二是可以大大减轻网络管理者的负
担。 1Pv6 有两种自动配置功能,一种是“全状态自动配置”,另一种是“无状态自动配置”。
在 1Pv4 中,动态主机配置协议 (DHCP) 实现了 1P 地址的自动设置。 1Pv6 继承了 1Pv4 的
这种自动配置服务,并将其称为全状态自动配置 (Stateful Auto-Configuration) 。
在无状态自动配置 (Stateless Auto - Configuration) 过程中,主机通过两个阶段分别 获得链
路本地地址和可聚合全球单播地址。首先主机将其网卡 MAC 地址附加在链路本地地址前缀
l l l l l l lO 10 之后,产生一个链路本地地址,并发出一个 ICMPv6 邻居发现
(Neighbor D iscovery )
请求,以验证其地址的唯一性。如果请求没有得到响应,则表明主机自我配置的链路本地地址
是唯一的。否则,主机将使用一个随机产生的接口 1D 组成一个新的链路本地地址。获得链路
本地地址后,主机以该地址为源地址,向本地链路中所有路由器的组播 ICMPv6 路由器请求
(Rou te r Solicitation) 报文,路由器以 一个包含可聚合全球单播地址前缀的路由器公告 ( Router
Advertisement) 报文响应 。主机用从路由器得到的地址前缀加上自己的接口 ID, 自动配置一个
全球单播地址,这样就可以与 Internet 中的任何主机进行通信了。使用无状态自动配置,无须
用户手工干预就可以改变主机的 1Pv6 地址 。

7.1 .3 1Pv6 路由协议

1Pv6 单播路由协议与 1Pv4 类似,有些是在原有协议基础上进行了简单的扩展,有些则完

全是新的版本

1 . R IPng

下一代 RIP 协议 (RIPng) 是对原来的 RIPv2 的扩展。大多数 RIP 的概念都可以 用于 RIPng 。
为了在 1Pv6 网络中应用, RIPng 对原有的 RIP 协议进行了以下修改。

UDP 端口号 : 使用 UDP 的 521 端口发送和接收路由信息。
• 组播地址:使用 FF02::9 作为链路本地范围内的 RIPng 路由器组播地址。
• 路由前缀:使用 128 位的 1Pv6 地址作为路由前缀。

I

276

网络工程师教程(第 5 版)

• 下 一跳地址:使用 128 位的 1Pv6 地址。

2 . OSPFv3

RFC 2740 定义了 OSPFv3, 用千支持 1Pv6 。
OSPFv3 与 OSPFv2 的主要区别如下:
(1) 修改了 LSA 的种类和格式,使其支持发布 1Pv6 路由信息。
(2) 修改了部分协议流程。主要的修改包括用 Router-ID 来标识邻居,使用链路本地地址
来发现邻居等,使得网络拓扑本身独立千网络协议,以便千将来扩展。
(3) 进 一 步理顺了拓扑与路由的关系。 OSPFv3 在 LSA 中将拓扑与路由信息相分离,在一、
二类 LSA 中不再携带路由信息,而只是单纯的拓扑描述信息,另外增加了八、九类 LSA, 结
合原有的
三 、五、七类 LSA 来发布路由前缀信息。
(4) 提高了协议适应性。通过引入 LSA 扩散范围的概念进一步明确了对未知 LSA 的处理
流程,使得协议可以在不识别 LSA 的情况下根据需要做出恰当处理,提高了协议的可扩展性 。

3 . BGP4+

传统的 BGP4 只能管理 1Pv4 的路由信息,对千使用其他网络层协议(如 1Pv6 等)的应用,
在跨自治系统传播时会受到一定的限制。为了提供对多种网络层协议的支持, IETF 发布的 RFC
2858 文档对 BGP4 进行了多协议扩展,形成了 BGP4+ 。
为了实现对 1Pv6 协议的支持, BGP4+必须将 1Pv6 网络层协议的信息反映到 NLRI (Network
Layer Reachable Information) 及 NextHop 属性中。为此,在 BGP4+ 中引入了下面两个 NLRI
属性。
• MP
REACH_ NLRI: 多协议可到达 NLRI, 用千发布可到达路由及下一跳信息。
• MP_UNREACH_NLRI: 多协议不可达 NLRI, 用于撤销不可达路由。

BGP 4+ 中的 Next_Hop 属性用 1Pv6 地址来表示,可以是 1Pv6 全球单播地址或者下一跳的
链路本地地址
。 BGP4 原有的消息机制和路由机制没有改变。

4 . ICMPv6 协议

ICMPv6 协议用千报告 1Pv6 节点在数据包处理过程中出现的错误消息,并实现简单的网络
诊断功能。 ICMPv6 新增加的邻居发现功能代替了 ARP 协议的功能,所以在 1Pv6 体系结构中
已经没有 ARP 协议了 。 除了支持 1Pv6 地址格式之外, ICM扣 6 还为支持 1Pv6 中的路由优化、
IP 组播、移动 1P 等增加了一些新的报文类型,择其要者列举如下:
类型码
含义
RFC 文档

127 Reserved for expansion o f ICMPv6 error messages
130 Multicast Listener Query

[RFC4443]
[RFC 2710]

第 7 章 下一代互联 网

, 1277

131 Multicast Listener Report
132 Multicast Listener Done
133 Router Solicitation
134 Router Advertisement
135 Neighbor Solicitation
136 Neighbor Advertisement
139
ICMP Node Information Query
140
ICMP Node Information Response
141
Inverse Neighbor Discovery Solicitation Message
142
Inverse Neighbor Discovery Advertisement Message
144 Home Agent Address Discovery Request Message
145 Home Agent Address Discovery Reply Message
146 Mobile Prefix Solicitation
14 7 Mobile Prefix Advertisement
148 Certification Path Solicitation Message
149 Certification Path Advertisement Message
151 Multicast Router Advertisement
152 Multicast Router Solicitation
153 Multicast Router Termination

[RFC 2710]
[RFC 2710]
[RFC 4861]
[RFC 4861]
[RFC 4861]
[RFC 4861]
[RFC 4620]
[RFC 4620]
[RFC 3122]
[RFC 3122]
[RFC 3775]
[RFC 3775]
[RFC 3775]
[RFC 3775]
[RFC 3971]
[RFC 3971]
[RFC 4286]
[RFC 4286]
[RFC 4286]

7 .1.4 1Pv6 对 1Pv4 的改进

与 IPv4 相比, 1Pv6 有下列改进:
(1) 寻址能力方面的扩展。 IP 地址增加到 128 位,并且能够支待多级地址层次;地址自动

配置功能简化了网络地址的管理工作;在组播地址中增加了范围字段,改进了
组播路由的可伸
缩性;增加的任意播地址比 1Pv4 中的广播地址更加实用 。
(2) 分组头格式得到简化 。 1Pv4 头中的很多字段被丢弃, 1Pv6 头中字段的 数量从 12 个 降
到了 8 个,中间路由器必须处理的字段从 6 个降到了 4 个,这样就简化了路由 器 的处理过程 ,
提高 了路由选择的效
率。
(3) 改进了对分组头部选项的支待
。 与 IPv4 不同,路由选项不再集成在分组头中,而是
把扩展头作为任选项处理
, 仅在需要时才插入到 IPv6 头与负载之间 。 这种方式使得分组头的处
理更灵活,也更流畅
。 以后如果需要,还可 以 很方便地定义新的扩展功能。
(4) 提供了流标记能力 。 IPv6 增加了 流标记,可以按照发送端的要求对某些分组进行特别
的处理 ,
从而提供了特别的服务质量支持 , 简化了对 多 媒体信息的处理 ,可以 更 好地传送具有

278 I

网络工程师教程(第 5 版)

实时需求的应用数据。

7.2 移动 IP

当笔记本电脑迅速普及的时候,很多用户因为不能在异地连网而感到苦恼。在当前使用的
系统中, 1Pv4 地址分为网络地址和主机地址两个部分。当用户主机配置了静态地址(例如

160.40.20.10/16) 时,所有路由器中都记录了到达该网络 (160.40) 的路由,若用户不在自己的

局域网中,就收不
到发送给他的信息了 。在新 的连网地点配 置一个新地址的方法缺乏吸引力,

一般用户难
以 掌握重新 配 置 地址的工作,即使重新配置后,也可能影响主机中的各种应用软件。

解决这个问题的另一种思路是在路由器中使用完整的 IP 地址进行路由选择,但这样就会

大大增加路由表项,使得路由设备的工作效率更低,所以也是行不通的。

那么,能否在新
的连网地点自动重新建立连接,从依赖千固定地点的连接过渡到灵活的移

动连接是
一 个新的研究课题,为此, IETF 成立了专门的工作组,并预设了下列研究目标:

• 移动主机能够在任何地方使用它的家乡地址进行连网。
• 不允许改变主机中的软件。
• 不允许改变路由器软件和路由表的结构。
• 发送给移动主机的大部分分组不需要重新路由。
• 移动主机在家乡网络中的上网活动无须增加任何开销。
IETF 给出的解决方案是 RFC 3344 ( IP Mobility Support for 1Pv4) 和
RFC 3775 (Mob i l i ty

Support in 1Pv6) 。这一节讲述这两个标准的主要内容。

7.2 .1 移动 IP 的通信过程

RFC 3344 给出的解决方案是增强 1Pv4 协议,使其能够把 IP 数据报路由到移动主机当前所
在的连接站点。按照这个方案,每个移动主机配置了一个家乡地址 (home address) 作为永久
标识。当移动主机离开家乡网络时,通过所在地点的外地代理,它被赋予了一个转交地址 (care - of
address) 。协议提供 了
一 种注册机制,使得移动主机可以通过家乡地址获得转交地址。家乡代
理通过安全隧道可以把分组转发给外地代理,然后被提交给移动主机。
图 7-9 表示了一个连接局域网、城域网和无线通信网的广域网。在连网的计算机中,有一
类主机用铜缆或光纤连接在局域网中,从来不会移动,我们认为这些主机是静止的。可以移动
的主机有两类,一类基本上是静止的,只是有时候从一个地点移动到另一个地点,并且在任何
地点都可以通过有线或无线连接进入 Internet; 另一类是在运动中进行计算的主机,它通过在无
线通信网中漫游来保持网络连接。我们所说的移动主机包括了这两类主机,也就是说,移动主

机是指在离开家乡网络的远程站点可以连网工作的计算机。

第 7 章下 一代互联网

279

图 7-9 连接局域网和无线通信网的广域网

假定所有移动主机都有一个固定不变的家乡站点,同时也有一个固定不变的家乡地址来定
位它的家乡网络。这种家乡地址就像固定电话号码一样,分别用国家代码、地区代码和座机号
来定位电话机所在的地理位置。在图 7 - 9 所示的 WAN 中,每个局域网中都有一个家乡代理 (home

agent) 进程,它们的任务是跟踪属千本地网络而又在外地连网的移动主机;同时还有一个外地
代理 (foreign agent) 进程,其任务是监视所有进行异地访问的移动主机。当移动主机进入一个
站点时,无论是插入当地的网络接口还是漫游到当地的蜂窝小区,主机都必须向附近的外地代
理进行注册,注册过程如下

(1) 外地代理周期性地广播一个公告报文,宣布自己的存在和自己的地址,新到达的主机
等待这样的消息。如果没有及时得到这个消息,移动主机可以主动广播一个分组来寻找附近的
外地代理。
(2) 移动主机在外地代理上进行注册,提供它的家乡地址、 MAC 地址和必要的安全信息 。
(3) 外地代理与移动主机的家乡代理进行联系,告诉外地代理的地址以及有关移动主机的
安全信息,使得家乡代理可以进行验证,确保不被假冒者欺骗。
(4) 家乡代理检查安全信息正确后发回一个响应,通知外地代理(通信可以继续进行)

(5) 当外地代理得到家乡代理的响应后就通知移动主机(注册成功),移动主机这时被分
配了一个转交地址。
以后的通信过程如图 7-10 所示。如果有另外一个主机向移动主机发送信息,则:
(1) 第一个分组被发送到移动主机的家乡地址。
(2) 第一个分组通过隧道被转发到移动主机的转交地址。
(3) 家乡代理向发送节点返回外地代理的转交地址。
(4) 发送节点把后续分组通过隧道发送给移动主机的转交地址。
移动 1P 提供了两种获取转交地址的方式 。 一种是外地代理转交地址 (Foreign
Agent Care-of

Add ress ) , 这种转交地址是外地代理在它的代理公告报文中提供的地址,也就是外地代理的 IP

2 8 0 1

网络工程师教程(第 5 版)

地址。在这种情况下,外地代理是隧道的终点。接收到隧道中的数据后,外地代理要提取出封
装的数据报并提交给移动主机。这种获取方式的好处是允许多个移动主机共享同一转交地址,
因而不会对有限的 IP 地址空间提出过多的需求。

图 7 - 10 移动主机的通信过程

另外一种获取模式是配置转交地址 (Collocated Care-o f Add ress ) , 是暂时分配给移动节点
的某个端口的 IP 地址,其网络前缀必须与移动节点当前所连接的外地链路的网络前缀相同。一
个配 置转交
地址只能被一个移动节点使用,可以是通过 DHCP 服务器动态分配的地址,或是在

地址缓冲池中选取的私网地址。这种获取方式的好处是移动主机成为隧道的终点,由移动主机
自己从隧道中提取发送给它的分组。
使用配置转交地址还有一个好处,就是移动主机也可以在没有配置外地代理的网络中工

作 。但是这种方案对有限的 IPv4 地址空间增加了很大的负担,在外部网络中需要配置一个地址

缓冲池,以备移动主机来访问。
重要的是要认真区分转交地址和外地代理的功能。转交地址是隧道的终点,它可能是外地

代理的地址 (foreign agent care-o f add re s s ) , 也可能是移动主机获得的临时地址 (co-located care-of
address) 。 外地代理与家乡代理一样,都是为移动主机服务的移动代理。

7.2 .2 移动 1Pv6

RFC 3775 规范了 IPv6 对移动主机的支待功能,定义的协议称为移动 IPv6 。在这个协议的
支待下,当移动节点连接到一个新的链路时,仍然可以与其他静止的或移动的节点进行通信。
移动节点离开其家乡链路对传输层和应用层协议、对应用程序都是透明的。

移动 IPv6 协议适合千同构型介质,也适合千异构型介质。例如,可以从一个以太网段移
动到另 一个以太网段,也可以从一个以太网段移动到一个无线局域网小区,移动节点的家乡地

第 7 章 下 一 代互联网

I 281

址都无须改变。

1 . 移动 1Pv6 的工作机制

在移动 1Pv6 中,家乡地址是带有移动节点家乡子网前缀的 IP 地址。当移动节点连接在家
乡网络中时,发送给家乡地址的分组通过常规的路由机制可以到达移动节点。当移动节点连接
到外地链路时,可以通过一个或多个转交地址对其寻址。转交地址是具有外地链路子网前缀的
IP 地址。移动节点可以通过常规的 1Pv6 机制获取转交地址,例如 10.1.2 小节提到的无状态或
全状态自动配置过程。只要移动节点停留在外部某个位置,发送给转交地址的分组都可以被路
由到移动节点。当移动节点处千漫游状态时,它可能从几个转交地址接收分组,只要它还能与
以前的链路保持连接。

移动节点的家乡地址与转交地址之间的关联称为绑定 (binding) 。当移动节点离开家乡网

络时,要在家乡链路上的路由器中注册一个主转交地址 ( primary care-of address) , 并请求该路
由器担任它的家乡代理。注册过程要求移动节点向家乡代理发送一个绑定更新 (Binding Update)
报文,家乡代理以绑定应答 (Binding Acknowledgement) 报文响应。
与移动节点通信的节点称为对端节点 (correspondent node) 。 移动节点通过“对端注册”
过程向对端节点提供它当前的位置,并且授权对端节点把自己的家乡地址与当前的转交地址进
行绑定。
移动节点与对端节点之间的通信有两种方式。第一种方式是双向隧道 (B心rectional
Tunneling) , 在这种情况下不需要移动 1Pv6 的支持,即使移动节点没有在对端节点上注册它当
前的绑定也可以进行通信。与移动 1Pv4 一样,对端节点发出的分组首先被路由到移动节点的 家
乡代理,然后通过隧道被转发到转交地址。移动节点发出的分组首先通过隧道发送给家乡代理,
然后按照正常的路由过程转发到对端节点。在这种模式下,家乡代理可以利用“邻居发现“功
能截取任何目标地址为移动节点家乡地址的 1Pv6 分组,并通过隧道把截取到的分组传送到移动
节点的主转交地址。
第二种方式是路由优化 (route opti皿 zation ), 要求移动节点把它当前的绑定信息注册到对
端节点上,对端节点发出的分组就可以直接路由到移动节点的转交地址。当对端节点发送
一个
IPv6 分组时,首先要检查它缓冲的有关目标地址的绑定项,如果发现该目标地址已经绑定了

个转交地址,则对端节点就可以使用一种新的 2 型路由头(见下面的解释),以便把分组路由
到移动节点的转交地址。指向移动节点转交地址的路由分组选择最短的路径到达目标,这种通
信方式缓和了移动节点家乡代理和家乡链路上的通信拥塞,而且家乡代理或网络通路上的任何
失效所产生的影响都被减至最小。
移动 1Pv6 也支待多个家乡代理,并有限地支待家乡网络的重新配置 。 在这种情况下, 移
动节点也许不知道家乡代理的 IP 地址,甚至家乡子网前缀改变时它也不知道。有一种叫作“家

282

网络工程师教程(第 5 版)

乡代理地址发现”的机制 CICMPv6 144, 145 报文),允许移动节点动态地发现家乡代理的 IP
地址,即使移动节点离开其家乡网络也可以工作。移动节点也可以学习新的信息,通过“移动
前缀请求“机制 CICMPv6 146, 147 报文)来了解家乡子网前缀的变化情况。这些功能都需要
ICMPv6 的支持。
移动 1Pv6 的实现对 1Pv6 的通信节点和路由器提出了以下特殊要求。
• 对通信节点的要求 : 每个 1Pv6 节点都可能成为某个移动主机的对端节点,所以每个

1Pv6 节点都必须能够处理包含在 1Pv6 数据包中的“家乡地址”选项。每个 1Pv6 节点
应能处理接收到的“绑定更新”选项,并能返回“绑定应答”选项。每个 1Pv6 节点应
能进行绑定管理。
• 对路由器的要求: 1Pv6 路由器应该支持相邻节点的搜索功能,支持 ICMPv6 路由器发
现机制。每个 1Pv6 路由器都应该能够以更快的速率发送“路由器广播“消息。在移动
主机的家乡链路上至少应该有一个路由器作为它的家乡代理。

2 . 路由扩展头

图 7-3 中的路由选择扩展头称为 0 型路由头,用于一般的松散源路由。为了支待移动 1Pv6,
RFC 3775 中又定义了一种新的 2 型路由头,如图 7-11 所示,其中提供的路由地址只有一
个一移动节点的家乡地址。

下一 头部 I Hdr Ex t Len=纠路由类型 =2 I 未用段 =I

家乡地址

图 7-11

2 型路由扩展头

当一个 2 型路由分组指向移动节点时,对端节点应把 IPv6 头中的目标地址设置为移动节
点的转交地址,路由头用来承载移动节点的家乡地址。分组到达转交地址后,移动节点要在路
由头中检查自己的家乡地址,排除转发来的错误分组。类似地,移动节点发送给对端节点的分
组中的源地址也是它当前的转交地址,并在 2 型路由头中说明自己的家乡地址。采用这种路由
头,把家乡地址加入到路由头中,使得转交地址对网络层之上成为透明的。

3 . 移动扩展头

移动头是一种新的、支待移动 IPv6 的扩展头,移动节点、对端节点和家乡代理在生成和
管理绑定的过程中都要使用移动头来传输信息。图 7-12 画出了移动头的格式。

负载的协名验1 和头长度 I MH 类型 I

保留

第 7 章 下 一 代 互 联网

I 283 1

报文数据

图 7-12

IPv6 的目标选项头

由于为移动头指定的代码是 135, 所以在前面的扩展头中要用 135 来指向移动头,其中的
字段解释如下。

给对端节点,用千测试可达性,并对家乡地址进行验证。

送给对端节点,用千测试可达性,并对转交地址进行验证。

• 负载的协议 (Payload Protocol): 8 比特的选择符,用千标识紧跟着的扩展头。
• 头长度 (Header Len ) : 8 字节的倍数,除了前 8 个字节。
• MH 类型: 8 比特的选择符,说明移动报文的类型 。
(cid:141) MH =O : 绑定刷新请求报文 (Binding Refresh Request Message, BRR ) , 由对端节
点发送给移动节点,请求更新它的移动绑定。
(cid:141) MH= l : 家乡测试初始化报文 (Home Test Init Message, HoTD , 由移动节点发送
(cid:141) MH=2 : 转交测试初始化报文 (Care-of Test Init Message, Co TD , 由移动节点发
(cid:141) MH =3 : 家乡测试报文 (Home Test Message, HoT ) , 由对端节点发送给移动节点
(cid:141) MH =4 : 转交测试报文 (Care-of Test Message, Co T ) , 由对端节点发送给移动节
(cid:141) MH=5 : 绑定更新报文 (Binding Update Message, BU ) , 由移动节点发出,通知
其他节点绑定一个新的转交地址。
(cid:141) MH=6 : 绑定应答报文 (Binding Acknowledgement Message, BA ) , 对绑定更新报
(cid:141) MH =7 : 绑定出错报文 (Binding Error Message, BE ) , 由对端节点发出的移动性

的报文,是对 HoTI 的响应。

点的报文,是对 CoTI 的响应。

文的应答。

出错报文,例如失去绑定信息等。

• 报文数据:指以上 8 种类型的报文数据。

4 . 移动 1Pv6 和移动 1Pv4 的比较

移动 IPv6 的设计吸取了移动 IPv4 开发过程中积累的经验,同时也得益千 IPv6 网络提供的
许多新功能,下面对移动 IPv6 与移动 IPv4 做一比较(参见表 7-5) 。

l 2s4 L ~ 网络工程师教程(第 5 版)

表 7-5 移动 1Pv4 和 IPv6 的比较

移动 1Pv4 的概念
移动节点、家乡代理、家乡链路、外地链路
移动节点的家乡地址

外地代理

移动 1Pv6 的概念

相同
全球可路由的家乡地址或链路本地地址
外地链路上的 1Pv6 路由器(不再有外地代理)

两种转交地址(外地代理转交地址和配置转交
地址)

所有转交地址都是配置转交地址

通过代理搜索、 DHCP 或手工配置得到转交地址

代理搜索
向家乡代理进行认证注册
到移动节点的数据采用隧道传送
由其他协议完成路由优化

通过无状态自动配置、 DHCP 或手工配置得到转
交地址
路由器搜索
向家乡代理和其他通信伙伴进行认证绑定
到移动节点的数据传送可采用隧道或路由优化
集成 了路由优化

• 移动节点通过常规的 1Pv6 地址分配机制 (无状态或全状态自动配置过程)获取转交地
址,与移动 1Pv4 相比,简化了转交地址的分配过程。
• 在运行移动 1Pv6 的系统中,移动节点在家乡网络之外的任何网络中操作都不需要本地
路由器的支待,因而排除了移动 1Pv4 中增加的外地代理功能。
• 每个 1Pv6 主机都具备对端节点的功能。当与运行移动 1Pv6 的主机通信时,每个 1Pv6
主机都可以执行路由优化功能,从而避免了移动 1Pv4 中的三角路由问题。

• 移动 1Pv6 定义了两种通信模式,但是采用隧道通信的机会很少。事实上,通常只有对
端节点发送的第一个分组是由家乡代理转发的,当移动节点向家乡代理发送"绑定更
新“消息后,其他的后续分组都会通过路由头进行传送,这样就大大减少了网络的通
信开销。

• 移动 1Pv6 利用了 1Pv6 的安全机制,简化了隧道状态的管理,即使是利用隧道方式进

行通信,也比移动 1Pv4 的效率高。
• 移动 1Pv6 改进了 1Pv6 的邻居发现机制,用来查找本地路由器,这样就避免了 1Pv4 中
使用的 ARP 协议,改进了系统的健壮性。

7.3 从 1Pv4 向 1Pv6 的过渡

一种新的协议从诞生到广泛应用需要一个过程。在 1Pv6 网络全球普遍部署之前,一些首
先运行 1Pv6 的网络希望能够与当前运行 1Pv4 的互联网进行通信。为了这一目的, IETF 成立了
专门的工作组 NGTRANS 来研究从 1Pv4 向
1Pv6 过渡的问题,提出了一系列的过渡技术和互连

第 7 章 下 一代互联网

. I 285

方案。这些技术各有特点,用千解决不同过渡时期、不同网络环境中的通信问题

在过渡初期,互联网由运行 1Pv4 的“海洋”和运行 1Pv6 的“孤岛”组成
。 随着 时间的推
移,海洋会逐渐变小,孤岛将越来越多,最终 1Pv6 会完全取代 1Pv4 。过渡初期要解决的问题
可以分成两类:第一类是解决 1Pv6 孤岛之间互相通信的问题,第二类是解决 1Pv6 孤岛与 1Pv4
海洋之间的通信问题。目前提出的过渡技术可以归纳为以下 3 种。

• 隧道技术:用千解决 1Pv6 节点之间通过 1Pv4 网络进行通信的问题。
• 双协议栈技术:使得 IPv4 和 1Pv6 可以共存千同一设备和同一网络中 。
• 翻译技术:使得纯 1Pv6 节点与纯 IPv4 节点之间可以进行通信。

7 .3.1 隧道技术

所谓隧道,就是把 1Pv6 分组封装到 1Pv4 分组中,通过 1Pv4 网络进行转发的技术 。 这种隧
道就像一条虚拟的 IPv6 链路一样,可以把 1Pv6 分组从 1Pv4 网络的一端传送到另一端,在传送
期间对原始 1Pv6 分组不做任何改变。在隧道两端进行封装和解封的网络节点可以是主机,也可
以是路由器。根据隧道端节点的不同,可以分为下面 4 种不同的隧道 :

• 主机到主机的隧道。
• 主机到路由器的隧道。
• 路由器到路由器的隧道。
• 路由器到主机的隧道。

建立隧道可以采用手工配置的方法,也可以采用自动配置的方法。手工配置的方法管理不
方便,对大的网络更是如此,下面主要分析 IETF 提出的各种自动隧道技术 。

1 . 隧道中介技术

图 7-13 画出了 1Pv6 分组通过
1Pv4 隧道传送的方法。隧道端点的 IPv4 地址由隧道封装节
点 中的配置信息确定。这种配置方式要求隧道端点必须运行双协议栈,两个端点之间不能使用
NAT 技术,因为 1Pv4 地址必须是全局可路由的。

. . 叶

1Pv6

图 7-13 人工配置的隧道

对千 1Pv4/1Pv6 双栈主机,可以配置一条默认的隧道,以便把不能连接到任何 1Pv6 路由器
的分组发送出去。双栈边界路由器的 IPv4 地址必须是已知的,这是隧道端点的地址 。 这种默认

286 1

网络工程师教程(第 5 版)

隧道建立后,所有的 1Pv6 目标地址都可以通过隧道传送。
对千小型的网络,人工配置隧道是容易的,但是对千大型网络,这个方法就很困难了。有

一种叫作隧道
中介 (Tunnel Broker) 的技术可以解决这个难题。图 7-14 表示通过隧道服务器配
置隧道端点的方法。隧道服务器是一种
即插即用的 1Pv6 技术,通过 1Pv4 网络可以进行 1Pv6 分
组的传送。在客户机请求的前提下,来自隧道服务器的配置脚本被发送给客户机,客户机利用
收到的配置数据来建立隧道端点,从而建立了一条通向 1Pv6 网络的连接。这种技术要求客户机
节点必须被配置成双协议栈,客户机的 1Pv4 地址必须是全局地址,不能使用 NAT 进行地址
转换。

图 7-14 隧道中介

2 . 自动隧道

两个双栈主机可以通过自动隧道在 1Pv4 网络中进行通信。图 7-15 显示了自动隧道的网络
拓扑。实现自动隧道的节点必须采用 1Pv4 兼容的 1Pv6 地址。
$} - 1Pv6

IPv6主机
A

双栈路由器

双栈主机

B

图 7-15 自动隧道

第 7 章下一代互联网

I 287

当分组进入双栈路由器时,如果目标地址是 IPv4 兼容的地址,分组就被重定向,并自动
建立一条隧道。如果目标地址是当地的 IPv6 地址 (Native Address) , 则不会建立自动隧道。被
传送的分组决定了隧道的端点,目标 IPv4 地址取自 IPv6 地址的低
32 位,源地址是发送分组的
接口的 1Pv4 地址。自动隧道不 需 要改变主机配置,缺点是对两个主机不透明,因为目标节点必

须对收到的分组进行解封

在图 7 - 15 中,地址分配如下:
从主机 A 到主机 B 的分组: 源地址=IPv6
从路由器到主机 B 的隧道: 源地址=1Pv4
从主机 B 到路由器的隧道: 源地址=IPv4
从主机 B 到主机 A 的分组 : 源地址=O::IPv4(B)

目标地址=O::IPv4(B)
目标地址=IPv4
目标地址 =IPv4
目标地址=IPv6

实现自动隧道要根据不同的网络配置和不同的通信环境采用不同的具体技术,下面分别进

行叙述。

3 . 6to4 隧道

6to4 是一种支待 IPv6 站点通过 IPv4 网络进行通信的技术,这种技术不需要显式地建立隧
道,可以使得一个原生的 1Pv6 站点通过中继路由器连接到 IPv6 网络中 。
IANA 在可聚合全球单播地址范围内指定了一个格式前缀 Ox2002 来表示 6to4 地址 。例如
全局 IPv4 地址 192.0.2.42 对应的 6to4 前缀就是 2002 :c000:022a: :/48 , 其中, c000:022a 是 192.0.2.42
的十六进制表示。除了 48 位前缀之外,后面还有 16 位的子网地址和 64 位的主机接口 ID 。通
常把带有 16 位前缀 “2002” 的 IPv6 地址称为 6to4 地址,而把不使用这个前缀的 1Pv6 地址称
为原生地址 (Native Address) 。
中继路由器是一种经过特别配置的路由器,用千在原生 IPv6 地址与 6to4 地址之间进行转

换。 6to4 技术都是在边界路由器中实现的,不需要对主机的路由配置做任何改变 。 地址选择方

案应该保证在任何复杂的拓扑中都能进行正确的 6to4 操作,这意味着如果一个主机只有 6to4
地址,而另一个主机有 6to4 地址和原生 1Pv6 地址,则两个主机必须用 6to4 地址进行通信。如
果两个主机都有 6to4 地址和原生 IPv6 地址,则两者都要使用原生 IPv6 地址进行通信 。
6to4 路由器应该配置双协议栈,应该具有全局 IPv4 地址,并能实现 6to4 地址转换。这种
方法对 IPv4 路由表不增加任何选项,只是在 IPv6 路由表中引入了一个新的选项。
6to4 路由器应该向本地网络公告它的 6to4 前缀 2002:IPv4:: /48, 其中, IPv4 是路由器的全
局 IPv4 地址。在本地 IPv6 网络中的 6to4 主机要使用这个前缀,可以用作自动的地址赋值,或
用作 IPv6 路由,或用在 6over4 机制中。

用 6to4 技术连接的两个主机如图 7-16 所示。在 6to4 主机 A 发出的分组经过各个网络到达

288 I

网络工程师教程(第 5 版)

主机 B 的过程 中,地址变化情况如图 7-17 所示,这些地址转换都是在 6to4 路由器中自动进

行的。

前缀 2002 : IPv4(I): :/48

前缀 2002:1Pv4(2) ::/48

§I


乙丐 、二

路由器

路由器

图 7-16 两个 6to4 主机之间的 通信

-金:,芯-护斗在qt.,;,叶

1Pv4 Header

src: IP ,’4(1)

d s t : IP心(2)

~·-三工了飞二2立寸 . 2丞一 ` ‘

JP , ‘6 Header

Q ‘C : 切忆 :lPv4(lr.0 :EUI-64

.. 如勾 02:l’.P,,4(2):0:EU!-64

; : lj)ATA

八·•, .

..

..

乙令,:,江.云公蔽古三云心­

IP还 Header

一•::盓笠出盓

l)皿

注 : EUI-64 ( Extended Unique Identifier) 是 IEEE
定义的 64 位标识符,前 24 位 OUI
( Organizationally Unique Identifier ) 由 机构向 IEEE 购 买,后 40 位 由 机构自行分配

图 7-17 两个 6to4 主机通信时的分组头

6to4 技术也支持原生 1Pv6 站点到 6to4 站点的通信,如图 7-18 所示,其通信过程如下:

心 主机 B

mf

、三入了
、三 、

中继路由器 1

路由器 2

图 7-18 原生 1Pv6 主机到
6to4 主机的通信

• 原生 IPv6 主机 A 的地址为 IPv6
(A) 。

第 7 章 下 一代互联网

1289

6to4 中继路由器 l 向原生 1Pv6 网络公告它的地址前缀 2002::/16, 这个地址前缀被保存

在主机 A 的路由表中 。

6to4 路由器 2 对 6to4 网络公告它的地址前缀
2002:1Pv4(2):: /48, 千是 6to4 主机
B 获得

地址 2002:1Pv4(2)::EUI-64 (B) 。
• 当主机 A 向主机 B 发送分组时, 6to4
中继路由器 l 对分组进行封装,即源地址=1Pv4(1),
目标地址=1Pv4(2) 。

• 当分组到达 6to4 路由器 2 时分组被解封,并转发到主机 B 。

6to4 技术还可以支待 6to4 站点到原生 1Pv6 站点的通信,如图 7-19 所示,通信过程如下:

~~f

心 主机B

二五

中继路由
器 3

6to4
路由 器 2

图 7 -19

6to4 主机到原生 IPv6 主机的通信

• 主机 A 的地址为 1Pv6(A) 。
• 主机 B 的地址为 2002:1Pv4(2): : EUI-64(B) 。

6to4 路由器 2 有一条到达 6to4 中继路由器
3 的默认路由,这个路由项可以是静态配置
的,或是动态获得的。
• 当主机 B 向主机 A 发送分组时, 6to4
路由器 2 对分组进行封装,源地址 =IPv4(2), 目
标地址 =1Pv4(3) 。
6to4 中继路由器 3 对分组解封,并转发到主机 A 。
6to4 技术对千两个 6to4 网络之间的通信是很有效的,但是对千原生 1Pv6 网络与 6to4 网络
之间的通信效率不高。由千不需要改变主机的配置,只需在路由器中进行很少的配置,所以这
种方法的主要优点是简单可行

4 . 6over4 隧道

  1. 链路本地地址的自动生成
    RFC 2529 定义的 6over4 是一种由 1Pv4 地址生成 1Pv6 链路本地地址的方法。 1Pv4 主机的
    接口标识符是在该接口的 1Pv4 地址前面加 32 个
    “O” 形成的 64 位标识符。 1Pv6
    链路本地地址

的格式前缀为 FE80:: /64, 在其后面加上 64 位的 1Pv4 接口标识符就形成了完整的 IPv6 链路本
地地址。例如对千主机地址 192.0.2.142, 对应的 1Pv6 链路本地地址为 FE80: :C000:028E

290 .

网络工 程师教程(第 5 版)

(C000028E 是 192 .0.2.142 的十六进制表示)。这种由 IPv4 地址生成 IPv6 地址的方法就是本章
前面提到的无状态自动配置方式。

  1. 组播地址映像

一个孤立在 1Pv4 网络中的 1Pv6 主机为了发现它的 IPv6 邻居(主机或路由器),通常采用
的方法是组播 ICMPv6 邻居邀请 (Neighbor Solicitation ) 报文,并期望接收到对方的邻居公告
(Neighbor Advertisement) 报文,以便从中获取邻居的链路层地址。但是在 1Pv4 网络中,承载
ICMPv6 报文的 1Pv6 分组必须封装在 IPv4 报文中传送,所以作为基础通信网络的 1Pv4 网络必
须配置组播功能。
RFC 2529 规定, IPv6 组播分组要封装在目标地址为 239.192.x.y 的 1Pv4 分组中发送,其中
x 和 y 是 1Pv6 组播地址的最后两个字节。值得注意的是, 239.192.0.0/16 是 1Pv4 机构本地范围
(Organization-Local Scope) 内的组播地址块,所以实现 6over4 主机都要位千同一 1Pv4 组播区
域内。

  1. 邻居发现

1Pv6 邻居发现的过程如下 :首先
是 IPv6 主机组播 ICMPv6 邻居邀请报文,然后是收到对
方的邻居公告报文,其中包含了 64 位的链路层地址。当链路层属千 1Pv4 网络时,邻居公告报
文返回的链路层地址形式如下

I O

I w

I

I 类型 1 长度 I O

y
以上每个字段的长度都是 8 比特,其中类型 =l 表示源链路层地址,类型=2 表示目标链路
层地址,长度 =l( 以 8 个字节为单位),
w.x.y. z 为 1Pv4 地址 。当 1Pv6 主机获得了对方主机的 1Pv4
地址后,就可以用无状态自动配置方式构造源和目标的链路本地地址,向通信对方发送 1Pv6
分组了 。
当然, 1Pv6 分组还是要封装在 1Pv4 分组中传送的。

X

z

I

I

采用 6over4 通信的 IPv6 主机不需要采用 1Pv4 兼容的地址,也不需要手工配置隧道。按照
这种方法传送 1Pv6 分组,与底层链路配置无关 。 如果 1Pv6 主机发现了同一 IPv4 子网内的 IPv6
路由器,那么还可以通过该路由器与其他 IPv6 子网中的主机进行通信,这时原来孤立的 IPv6

主机就变成全功能的 1Pv6 主机了。
图 7 -20 画出了两个 6over4 主机进行通信的情况,发起通信的主机 A 利用 1Pv6 的邻居发现
机制来获取另外一个主机 B 的链路层地址,然后主机 B 发出的公告报文返回了自己的 1Pv4 地
址 。 通过无状态自动配置过程,主机 A 和主机 B 就建立了 一条虚拟的
1Pv6 连接,就可以进行
1Pv6 通信了 。
6over4 依赖于 1Pv4 组播功能,但是在很多 1Pv4 网络环境中并不支待组播,所以 6over4 技
术在实践中受到一定的限制,在有些操作系统中无法实现。另外一个限制条件是, 1Pv6 主机连
接路由器的链路应该处千 1Pv4 组播路由范围之内。

—一··—·

一…….. 心.蛐.. 一.

• 一一…一.~ 一···-·-··········
一··-

-·········—· 俨···—-·· 一..

—· 一-·-··

第 7 章下 一代互联网

1291

~ (cid:141)

6over4
1Pv6
主机 A

三二言

会6over4
!Pv6
主机 B

图 7-20 两个 IPv6 主机之间的
6over4 通信

5 . ISATAP

RFC 4214 定义了一种自动隧道技术一一ISATAP ( In t ra -S i te Automatic Tunne血g
Addressing
P ro toco l ) , 这种隧道可以穿透 NAT 设备,与私网之外的主机建立 IPv6 连接。
正如该协议的名字所暗示的那样, ISATAP 意味着通过 IPv4 地址自动生成 IPv6 站点本地
地址或链路本地地址, IPv4 地址作为隧道的端点地址,把 IPv6 分组被封装在 IPv4 分组中进行
传送。
图 7-21 表示两个 ISATAP 主机通过本地网络进行通信的例子。假定主机 A 的格式前缀为
FE80::/48 (链路本地地址),加上 64 位的接口标识符:: 0:5EFE:w.x.y.z (w.x.y.z 是主机 A 的 IPv4
单播地址),这样就构成了 IPv6 链路本地地址,就可以与同一子网内的其他 ISATAP 主机进行
IPv6 通信了 。具体地说,主机 A 向主机 B 发送分组时采用的地址如下。

ISATAP

主机A
~ IPv4
( 本地网络

ISA TAP

主机 B

10.40.1.29
192.168.41.30
FE80: :5EFE: 10 .40 .1.29
FE80 :: 5EFE: 192.168.41.30

图 7-21 在 !Pv4 网络中
ISATAP 主机之间的通信

• 目标 1Pv4 地址: 192.168.41.30
• 源 1Pv4 地址: 10.40 . 1.29
• 目标 1Pv6 地址: FE80 : :5EFE : 192.168.41.30
• 源 1Pv6 地址: FE80::5EFE:10 .40 . l .29

292 1

网络工程师教程(第 5 版)

图 7-22 表示两 个 ISATAP 主机通过 Internet 进行通信的例子 。在 这种情况下, ISATAP 路由
器要公告自
己的地址前 缀 ,以便与其连接的 ISATAP 主机可以自动配置自己的站点本地地址 。
站点本地地址的格式前缀为 FEC0::/48, 加上 64 位的接口标识符: O:SEFE:w.x.y.z, 就构成了主
机 A 的站点本地地址。

ISATAP

主机A

贮会 ISATAP

路由器A

194 .40 .1.29
FECO:: 111 1 :0:5EFE: 194 .40.1.29

ISATAP

主机 B

1S7.4S.3 .31
FEC0::1111:0:SEFE: 1S 7.4S .3.31

图 7-22

ISATAP 主机通过 Internet 通信

一般来说, ISATAP 地址有 64 位的格式前缀, FEC0::/64 表示站点本地地址, FE80:: /64 表
示链路本地地址
。在格式前缀之后要 加上修改的 EUI - 64 地址 (Modified
EUI-64 addresses ) , 其
形式如下

24 位的 IANAOUI 十 40 位的扩展标识符
如果 40 位扩展标识符的前 16 位是
OxFFFE, 则后面是 24 位的制造商标识符,如图
7-23
所示。

, . 位
OU I

“位

砬 FE

, . 位

功比盯杯识符

0 0 0 0 0 0 u g O O O O O O O O O IO I 1 I 1 0 11 I 1 I 1 1 1 1 1 1 I 1 1 I
1 0 1 xx xx x x xx xx xx xx xx xx xx xx x x

图 7-23

40 位扩展标识符 (1)

如果 40 位扩展标识符的前 8 位是
OxFE, 则后面是 32 位的 IPv4 地址,如图 7-24 所示 。

0 0 0 0 0 0 u g O O O O O O O O O I O I I I I 011 I I I I I I O I x x x x x
x x x x x x x x x x x x x x x x x xx x x x x x x x x

“ 位

"心 地址

“位

OU!


图 7-24

40 位扩展标识符 ( 2)

QUI 表示 机构唯一标识符 (Organizationally Un ique Iden t i f ie r ) , IANA 分配的 QUI 为
00 -00 -SE , 如图 7 -24 所 示,其 中的 u 位表示 universal/local, u= 1 表示全球唯一的 1Pv4 地址, u=O

表示本地的 1Pv4 地址; g 位是
individual/group 位, g=l 表示单播地址,
g=O 表示组播地址。

7.3.2 协议翻译技术

协议翻译
技术用千纯 IPv6 主机与纯 IPv4 主机之间的通信,已经提出的翻译方法有下面几种

第 7 章 下一代互联网

293

SIIT: 无状态的 IP/ICMP 翻译 (Stateless IP/ICMP Translation) 。

NAT-PT : 网络地址翻译-协议翻译 (Network Address Translator-Protocol Translator) 。
SOCKS64: 基千 SOCKS 的 1Pv6/1Pv4 机制 (SOCKS -based 1Pv6/1Pv4 Gateway Mechanism) 。
TRT: IPv6 到 IPv4 的传输中继翻译器 (IPv6 -to -IPv4 Transport
Relay Translator) 。





这里只介绍前两种方法。

1 . SITT

首先介绍两种特殊的 IPv6 地址。
C 1 ) 1Pv4 映射地址
C IPv4-mapped) : 一种内嵌 IPv4 地址的 IPv6 地址,可表示为
0:0:0:0:0:FFFF:w.x.y.z 或:FFFF:w.x. y.z 的形式,其中 w.x.y.z 是 IPv4 地址。这种地址用千仅支持
1Pv4 的主机。
C 2 ) IPv4 翻译地址 (1Pv4-translated) : 一种内嵌 1Pv4 地址的 IPv6 地址,可表示为
0:0:0:0:FFFF:O:w.x.y.z 或: FFFF:O:w.x.y. z 的形式,其中 w.x.y.z 是 IPv4 地址。这种地址可用千支
持 IPv6 的主机。
RFC2765 定义的 SIIT 类似千 IPv4 中的
NAT-PT 技术,但它并不是对 IPv6 主机动态地分配
1Pv4 地址。 SITT 转换器规范描述了从 IPv6 到 IPv4 的协议转换机制,包括 IP 头的翻译方法以及
ICMP 报文的翻译方法等。当 IPv6 主机发出的分组到达 SIIT 转换器时, IPv6 分组头被翻译为

1Pv4 分组头,分组的源地址采用 IPv4 翻译地址,目标地址采用 IPv4 映射地址,然后这个分组
就可以在 1Pv4 网络中传送了。

图 7-25 表示一个 1Pv6 主机与
IPv4 主机进行 SIIT 通信的例子,图中的 SIIT 转换器负
责提

供临时的 IPv4 地址,以便 1Pv6 主机构建自己的 1Pv4 翻译地址(源地址),通信对方的目标地
址则要使用 IPv4 映射地址, SITT 转换器看到这种类型的分组则要进行分组头的翻译。

IPv6主机

A

SIIT

IPv4地址池

1Pv4 网络

扂盓罕亡~;二 1 — —-• 三

IPv4主机

B

图 7-25 单个纯 IPv6 主机通过
SIIT 进行通信

图 7 -26 表示双栈网络中的纯 1P 主机和通过 SIIT 与 1Pv4 主机进行通信的例子。双栈网络

中既包含 1Pv6 主机,也包含 1Pv4 主机。在这种情况下, SIIT 转换器可能收到纯 1Pv6 主机发出
的分组,也可能收到纯 1Pv4 主机发出的分组, SIIT 转换器要适应两种主机的需要,要保证所

294 I

网络工程师教程(第 5 版)

有进出双栈网络的分组都是可路由的。

` 、

IPv6主机
A

面地址 = !Pv4-translated地址
目标地址 = [Pv4-叩ppc心i址

双协议栈网络

SIIT
IPv4地址池

——一一—————·

1Pv4 网络三

图 7-26 双栈网络通过 SIIT 进行通信

、 ` IPv4主机
B

RFC 2765 没有说明 IPv6 节点如何获得临时的 IPv4 地址,也没有说明获得的 IPv4 地址怎
样注册到 DNS 服务器中。也许可以对 DHCP 协议进行少许扩展,用千提供短期租赁的临时地
址。 SIIT 转换器只是尽可能地对 IP 头进行翻译,并不是对 IPv6 头与 IPv4 中的每一项都能一一
对应地进行翻译。因为两种协议在有些方面差别很大,例如 IPv4 头中的任选项部分, IPv6 的
路由头、逐跳扩展头和目标选项头都无法准确地与另一个协议中的有关机制进行对应的翻译,
可能要采用其他技术来解决这些问题,很难用同一模型来提供统一的解决方案。事实上, SIIT
与下面将要讲到的 NAT-PT 技术结合使用才能提供一种实用的解决方案。

2 . NAT-PT

NAT-PT(Ne twork Address Translator-Protocol Translator) 是 RFC 2766 定义的协议翻译方法,
用于纯 1Pv6 主机与纯 IPv4 主机之间的通信。实现 NAT-PT 技术必须指定一个服务器作为 NAT-PT

网关,并且要准备一个 IPv4 地址块作为地址翻译之用,要为每个站点至少预留一个 IPv4 地址。
与 SIIT 不同, RFC 2766 定义的是有状态的翻译技术,即要记录和保持会话状态,按照会

话状态参数对分组进行翻译,包括对 IP 地址及其相关的字段(例如 IP 、 TCP 、 UDP 、 IC:MP 头

校验和等)进行翻译。
NAT-PT 操作有 3 个变种:基本 NAT-PT 、
NAPT-PT 和双向 NAT-PT 。基本 NAT-PT 是单向
的,这意味着只允许 IPv6 主机访问 IPv4 主机,如图 7-27 所示。假设各个主机使用的 IP 地址
如下:

主机 A 的 IPv6 地址:
FEDC:BA98::7654:3210
主机 B 的 IPv6 地址:
FEDC:BA98::7654:3211
主机 C 的 IPv4 地址:
132.146.243 .30

如果主机 A 要与主机 C 通信,则主机 A 生成一个分组,源地址= FEDC:BA98::7654:3210 ,
目标地址=格式前缀:: 132.146.243 .30 , 这个地址是 NAT-PT 网关根据主机 C 的地址生成的 IPv6
地址。 NAT- PT 网关对这个分组采用与 SITT 同样的方法进行 IP 分组头的翻译。
如果发出的分组不是发起会话的分组,则 NAT-PT 网关应该已经存储了有关会话的状态信

息,包括指定的 IPv4 地址以及其他有关的翻译参数。如果这些状态不存在,则分组被丢弃。

第 7 章下一代互联网

1295

IPv4 网络

!P v4 主机

C

!Pv6主机B

图 7-27 基本 NAT-PT

如果 1Pv6 主机发出的是一个会话发起分组,则 NAT-PT 就从地址池中为其分配一个 1Pv4
地址,并把分组翻译为 1Pv4 分组。在会话待续期间,翻译参数被 NAT-PT 网关缓存起来 ,并维

持 1Pv6 到 1Pv4 的映射 。

NAT-PT 网关还要对返回的分组进行识别,要判断是否属千同一会话。 NAT-PT 网关使用状

态信息来翻译分组,产生的返回分组源地址=格式前缀:
: 132.146.243.30, 目标地址=

FEDC:BA98::7654:3210, 这个分组可以在 1Pv6 子网中进行路由。
第 2 个变种是 NAPT-PT, 其中的
NAPT 表示网络地址-端口翻译,仍然是单向通信,但是
扩展到了 TCP/UDP 端口的翻译,也包括 ICMP 询问标识符的翻译。这种技术可以实现 1Pv6 主
机的传输标识符到指定 1Pv4 地址传输标识符的多路复用,即让一组 1Pv6 主机共享同 一 1Pv4
地址。

第 3 个变种是双向 NAT-PT, 这意味着双向通信,无论是 1Pv6 主机还是 1Pv4 主机,都可
以向对方发起会话。当主机 C 要发起对主机 A 的会话时,因为它不能直接使用目标 1Pv6 地址,

这时要借助千 DNS-ALG (Application Level Gateway) 来获取主机 A
的 1Pv4 地址。假设主机 A
的域名为 www.A.com, 则主机 C 首先向 1Pv4 网络中的 DNS 服务器发出请求,要求对域名
www.A.com进行解析。当请求到达 NAT-PT 网关后,网关将该请求转发给 1Pv6 网络中的 DNS
服务器,这个过程包括了对报文地址类型的转换
。 1Pv6 中的 DNS 服务器回应 NAT-PT 网关,
说明该域名对应的 1Pv6 地址为 FEDC:BA98 :: 7654:3210 。网关收到这个响应后在 1Pv4 地址池中
选择一个地址(例如 130.117.222.3) 来替换 FEDC:BA98: : 7654:3210, 并将该地址与 www.A.com
的对应关系告诉主机 C 。于是,主机 C 知道了
www.A . com 对应的 1Pv4 地址,就可以向主机
A
发送分组了。
协议翻译技术适用千 1Pv6 孤岛与 1Pv4 海洋之间的通信,这种技术要求一次会话中的双向
数据包都在同一个路由器上完成转换,所以它只能适用千同一路由器连接的网络。这种技术的
优点是不需要进行 1Pv4 和 1Pv6 终端的升级改造,只要求在 1Pv4 和 1Pv6 之间的网络转换设备

296 I

网络工程师教程(第 5 版)

上启用 NAT-PT 功能就可以了。但是在实现这种技术时,一些协议字段在转换时仍不能完全保

待原有的含义,并且缺乏端到端的安全性。

7 .3 .3 双协议栈技术

双栈技术适用千同时实现了 IPv6 和 IPv4 两个协议栈的主机之间进行通信。在这种情况下,
当主机发起通信时, DNS 服务器将同时提供 IPv6 和
IPv4 两种地址,主机将根据具体情况使用
适当的协议来建立通信。在服务器一边要同时监听 IPv4 和 IPv6 两种端口。这种技术要求每个
主机要有一个 IPv4 地址, IPv4 主机使用
IPv6 应用不存在任何问题 。
双栈主机有下面两种方法


RFC 2767(2000) 定义的 BIS (Bump -In-the-Stack )

RFC 3338(2002) 定义的 BIA <Bump-In-the-API)

1 . B IS

在 IPv4 向 IPv6 过渡的初始阶段,网络中只有很少的 IPv 6 应用 。 BI S 是应用千 IP 安全域

内的一种机制,适用千在开始过渡阶段利用现有的 IPv4 应用进行 IPv6 通信。
这种技术是在主机的 TCP/IPv4 模块与网卡驱动模块之间插入一些模块来实现 IPv4 与 IPv6
分组之间的转换,使得主机成为一个协议转换器。从外界看来,这样的主机就像是同时实现了
IPv6 和 IPv4 两个协议栈的主机一样,既可以与其他的 IPv4 主机通信,也可以与其他的 IPv6 主

机通信,但这些通信都是基千现有的 IPv4 应用进行的。

BIS 用 3 个模块来代替 IPv6 应用,这些模块是转换器、扩展名解析器和地址映射器,如图

7-28 所示。对 3 个模块的作用介绍如下 :

I

TCP / 1Pv4 协议栈

三三三

网卡

图 7 -2 8 双协议栈主机的结构

第 7 章 下 一 代互联 网

I 297

转换器的作用是在 IPv4 地址与 1Pv6 地址之间进行转换,转换的机制与 SIIT 定义的一样 。
当从 1Pv4 应用接收到一个 1Pv4 分组时,转换器把 1Pv4 头转换为 1Pv6 头,然后对 1Pv6 分组进
行分段(因为 IPv6 头比 IPv4 头长 20 个字节),并发送到 IPv6 网络中去。当接收到 一 个 1Pv6
分组时,转换器进行相反的转换,但是不需要对生成的 1Pv4 分组进行分段。
扩展名解析器对 IPv4 应用发出的请求返回 一个“适当的"答案。应用通常向名 字服务器
发送请求,要求解析目标主机名的 A 记录。扩展名解析器根据这个请求生成另外 一 个 查 询 请 求,
发往名字服务器,要求解析主机名的 A 记录和 AAAA 记录 。 如果 A
记录被解析,它向应用返
回 A 记录,这时不需要进行地址转换 。 如果只有 AAAA 记录被解析,则它向地址映射器
发 出
请求,要求为 IPv6 地址指定 一个对应的 IPv4 地址,然后对指定的 IPv4 地址生成 一 个 A 记录,
并将其返回给应用。
地址映射器维护一个 1Pv4 地址池,同时维护一个由 IPv4 地址与 1Pv6 地址对组成的表 。当

解析器或转换器要求为
一 个 1Pv6 地址指定一个 1Pv4 地址时,它从地址池中选择
一 个 1Pv4 地址,

并动态地注册一个新的表项
。 当出现下面两种情况时会启动注册过程 :
(1) 解析器只得到目标主机名的 AAAA 记录,并且表中不存在 1Pv6 地址的映射 表 项 。
(2) 转换器接收到 IPv6 分组,并且表中不存在 IPv6 地址的映射表项 。
在映射表初始化时,地址映射器注册它自己的
一对 IPv4 地址与 IPv6 地址 。

  1. B IA

BIA 是在 1Pv4 Socket 应用与 IPv6 Socket 应用之间进行翻译的技术。 BIA 要求在 Socket 应
用模块与 TCP/IP 模块之间插入 API 转换器,这样建立的双栈主机不需要在 IP 头之间进行翻译,
使得转换过程得到简化

当双栈主机中的 IPv4 应用要与另外一个 IPv6 主机进行通信时, API 转换器检测到 IPv4 应
用中的 Socket API 功能,千是就启动 1Pv6 So ck e t API 功能与目标 1Pv6 主机进行通信 。 相反的
通信过程是类似的
。 为了支待 IPv4 应用与目标 IPv6 主机进行通信, API 转换器中的名字解析
器将从缓存中选择一个 IPv4 地址并赋予目标 IPv6 主机。图 7 -29 表示安装 BIA 的双栈主机的体
系结构。

在图 7-29 中的 API 转换器由 3 个模块组成。功能映射器的作用是在 IPv4 Socke t API 功能
与 IPv6 Socke t API 功能之间进行转换。当检测到来自 1Pv4 应用的 IPv6 Socke t API 功能时,它
就解释这个功能调用,启动新的 1Pv6 So ck e t API 功能,并以此来与目标 1Pv6 主机进行通信

当从 1Pv6 主机接收的数据中检测到 1Pv6 Socke t API 功能时做相反的解释和转换

名字解析器的作用是在收到 1Pv4 应用请求时给出适当的响应。当 IPv4 应用试图通过解析
器来进行名字解析时, BIA 就截取这个功能调用,转向调用 IPv6 的等价功能,以便解析目标主
机的 A 记录或 AAAA 记录。

l 298 L霞

网络工程师教程(第 5 版)

~

[ Socket AP! ( !Pv4 , !Pv6 )

AP! 转换器

三 1 地址映射器 I~ 尸尸尸
l I

TCP/UDP ( 1Pv4 )

TCP/UDP ( IPv6 )

图 7-29 BIA 双协议栈主机的体系结构

地址映射器与 BIS 中的地址映射器相同。

7.4 下 一代互联网的发展

下 一代互联网协议 1Pv6 最主要的特征是采用 128 位的地址空间替代 1Pv4 的 32 位地址空间,
提高了互联网的地址容量一。另外, 1Pv6 在安全性、服务质量、移动性等方面都具有更好的特性,
采用 1Pv6 的下一代互联网比现在的互联网更具有扩展性,更加安全,也更容易提供新的服务。
1Pv6 也是三网融合的纽带,建设基千 1Pv6 的下一代网络 ( NGN) 是通信产业发展的战略方向。
推动下一代互联网研究的主要因素有 3 个:一是大幅度地增加 1P 地址供给,二是开发新
的网络应用,三是抢占 IT 产业竞争优势。 IP 地址资源分配极为不公,对本来就很缺少的 1Pv4

地址造成了很大的浪费,亚太地区和欧洲地区日益感到 1P 地址短缺的压力,迫切需要增加地址
资源的供给。另一方面,随着电子和通信产业的发展,新的智能设备和移动通信终端都需要联
网运行,需要建立新的网络服务,而 1Pv4 在体系结构方面的先天缺陷影响了对新业务的支持,
在此基础上修修补补的改进使得网络设备的功能差别很大,网络的可扩展性和可伸缩性都受到
了很大限制。最后,如果说过去 20 年来全球发展的技术引擎是互联网技术的突破,那么开发
下一代互联网新技术就是翠登未来信息社会的制高点,谁抢占了这一制高点,谁就能在未来的
经济发展中占据主动权,所以各个国家都不遗余力地投入了这一场技术竞赛。
通过各国十几年的研发和试验,目前的 1Pv6 技术标准已相对成熟,多个国家已经组建了

规模不等的 1Pv6 试验网,支待 1Pv6 的联网设备基本成熟,开发新的 1Pv6 业务也取了一些进展。
从全球 1Pv6 网络的发展情况来看,亚太地区和欧洲地区应用较多,日本、韩国和欧盟在 1Pv6
产品研发和产业化方面走在了前面,而美国相对滞后。中国在 1Pv6 领域略有建树,但在国家战
略、产业化和新技术研发等方面与日韩、欧盟还存在不小的差距。

第 7 章下一代互联网

l 299

7.4.1 IP 地址的分配

IP 地址和 AS 号码的分配主要由美国掌控。在互联网出现的早期,美国 一 些大学和公司占

用了大量的 1Pv4 地址,例如 MIT 、
IBM 和 AT&T 分别占用了大约 1600 万、 1700 万和 1900 万
个 IP 地址。现在中国获得的 IP 地址只相当千美国两三个大学的 IP 地址。这样就导致了 一 方面
大霾的 IP 地址被浪费,另 一 方面美国以外的国家和地区深感 1P 地址紧缺的压力。

ICANN (Th e Internet Corporation for Assigned Names and Numbers) 是负 责互联网国际域名、

地址和号码管理的非营利性机构
。 ICANN 将部分 IP 地址和 AS 号码分配给地区级的互 联网注

册机构 RIR (Regional Internet Registry) , RIR 再将地址分配给区域内的本地互联网 注册机构

(Local Internet Registries, LIR) 和互联网服务提供商 (ISP), 然后由他们向用户分配。
图 7-30 是现有的 5 个 RIR 管理地区的分布图。 APNIC(Asia and Pacific Network Information
Center) 是亚太地区互联网络信息中心, ARIN (American Registry for Internet Numbers) 是 美国

网络地址注册管理组织,负责北美地区的 IP 地址和 AS 号码的分配。
LACNIC (LatinAmerican

and Caribbean Network Information Center) 是拉丁美洲及加勒比地区的互联网络信息中 心 。 RIPE

NCC CR的 eaux IP Europ的 ns Network Coordination
Centre) 负责欧洲地区 1P 地址和 AS 号码的
管理。 AfriNIC 是非洲的网络信息中心, 2005 年 4 月才从 RIPE NCC 分 离出来。

二之子女占立


    • .. 一泛…、-
      ~ -

,


    • -….

-.~

.,;<

.勺—夕-六.- —-、-


_;,·

-·..,_

~ - ~ ,l ;N

·•; ~

A.PNIC

笠 ARIN

扫勺 PE NCC 圈 l”CNIC 11 凡 riNI C

图 7-30

IP 地址地区注册结构

‘ . ‘ • · · ·n · . ,;a . . I

图 7-31 是各个 RIR 分得的
IPv4 地址的比例,数据来源千号码资源组织 (Number Resource
Organization, NRO) 千 2009 年 3 月的报告 ( http: //www.nro.org/statistics/index .html) 。
ICANN
以地址块 256/8 来分配 IPv4 地址,
5 个 RIR 已经获得的地址块总共 98 个,其他地址块或者是

300

网络工程师教程(第 5 版)

IANA 保留的,或者是专门用途的(例如用作组播、实验等),还有一些是美国自己使用的。 2008
年专家预计 1Pv4 地址资源耗尽如图 7 - 32 所示。

1Pv4 ADDRESS SPACE ISSUED

(RJ,8r, TO CUSTOMERS)

In terms o f /8s, how much to ta l space has each RIR a l loca ted?
(J an 1999 - M a r 20091

RIPE NCC
22 .76


APNIC 25.54

ARIN 21.33

胆 7-31 R压获得的 1Pv4 地址的比例

1Pv4 Address Pool

25221916129

64

!ANA P ol 切 • RJRs All父过云 Poo l for 12• 24 r,10 nlllS
Distn b 中G
痐比沁 ns oesea on Jan 2000 1-0 已, rr七 nt

2086420

63

86-uu

6
·1
,u
r

r

u
o
f

‘u
o
r

66
• 1111r

oger


8’uer
to
,uer

S
O
,

U


O

,u
e
f

9




6
9

OL.uor


~l
,uer

图 7-32

IPv4 地址资源消耗的预测

应对 1Pv4 地址的耗尽已成为全球性的战略问题, 目前许多国家都鼓励在 IPv6 网络上进行

地址注册。 2006 年, IANA 已经为五大洲的 RIR 分配了全球单播地址格式前缀,如图 7 -33 所
示。图 7-34 表示各个 RIR 已经获得的
1Pv6 地址资源,从 1Pv6 地址的分配情况可以看出下一代
互联网在各个地区的发展程度。

, ~ 一 ALL 1Pv6 SPACE

第 7 章下一代互联网

I 301

图 7-33

IPv6 地址分配状态

How many total allocations
have been made by each RIR?

In terms of /32s, how much total
space has each RIR allocated?

RIPE NCC 33,235

勹AfriN IC 65

LACNIC 175

  • ARIN 14,851
    APNIC 24,318

/32S

<、乌没5

ARIN 496

图 7-34 各个 RIR 已经分配的
IPv6 地址

7.4 .2 我国的下一代互联网研究

中国下一代互联网示范工程 ( CNGI) 项目是千 2003 年酝酿并启动的。截至目前 , CNG I
已 经建成
了由 6 个主干网、两个国际交换中心及相应的传输链路组成的 核 心网 络。
CERNET2 、
中国电信、中国网通/中科院、中国移动、中国联通和中国铁通这 6 个主干网以及国际交换中心
已全部完成验收

1 . CERNET2

CERNET2 (图 7-35) 是 CNGI 中规模最大的主干网,也是目前世界上规模最大的采用纯

302 1

网络工程师教程(第 5 版)

IPv6 技术的下一代互联网。它以 2.5G~lOG 速率连接全国 20 个城市的 25 个主干网核心节点,
为全国高校和科研单位提供高速 IPv6 接入服务,在此基础上实现了全国 160 所大学的高速接入,
已经有 40 余项下一代互联网技术试验、应用示范和产业化项目连接到 CERNET2 主干网上进行
项目研究和成果测试。该项目还建成了 CNGI 国际/国内互联中心,实现了 6 个 CNGI 主干网的
互联,并与北美、欧洲、亚太等地区的国际下一代互联网实现了高速互联,使 CNGI 成为国际
下一代互联网的重要组成部分。

中国教育和科研计冥机网
下一代 IPv6 主干网立即盯 2

,

!

, , .

:

“ “ ‘ ‘

lOGbps

  1. 5Gbps

0

Gi讨OP

;一 · - · - · - · - · 一 . 一 · 一 · 一 · 一 · 一 · 一 · - · 一 · 一 • - · 一 ' ; 广州

i

图 7-35 CERNET2 示意图

2 . GLOR IAD

2002 年 2 月,美国国家科学基金会资助的美俄科教网络 (NaukaNet) 项目提出与中国建立
战略伙伴关系,并在北半球建立环形科教网络的设想。 2004 年 1 月 12 日,中美俄环球科教网

络 (GLORIAD) 正式开通。
GLORIAD 是在美、俄之间 5 年期科学网项目的基础上增加中美和中俄的连接而建成的闭
环网络,以支持科研、教育方面的国际合作。这条新的连接使美国的科研机构能够通过中国科
学院院网与俄罗斯远东地区的科学团体进行交流。 GLORIAD 计划包括下面 4 个方面的内容:

(1) 网络传输基础设施的研究和建设。利用先进的光传输/交换技术,建设一个横跨中国、

美国、俄罗斯以及太平洋和大西洋的环形光网络,设计传输速率为 lOGbps 。相应的光交换节点
分别设在芝加哥、阿姆斯特丹、莫斯科、新西伯利亚、北京和香港。该环形网络的拓扑结构充

分利用了光网络的自愈保护功能,可以提供高可靠的、无缝的环球网络连接,如图 7-36 所示。

第 7 章下一代互联网

I 303

图 7 -36 GLORIAD

(2) 网络重要支撑技术的研究、运行和试验。为了更好地适应先进科学应用的需要,提供
更高的性能,在网络层将采用 IPv6 协议实现互连,提供端到端的资源分配和调度能力,提供能

够自动更新网络设备的软件系统,通过在核心网络使用 MPLS 等技术提供改进的网络服务质量 ,
同时要研发各种网络监控和管理工具,以最大限度地满足网络管理和终端用户的需求。
(3) 网络应用服务软件和中间件的研究、运行和试验
。 通过采用基千网格的软件技术实现
网络资源、数据资源、计算资源、科学仪器资源和用户团体资源的整合和协同工作。
(4) 建立强大的科学教育应用联盟。 GLORIAD 计划主要面向科学家、教育工作者、政策
制定者、公共组织等,确定这些团体的应用需求,然后使他们逐步了解这个网络潜在的服务和
功能,最后给这些团体提供更多的机会进行协作与资源共享。