IPv6 第 12 章
12.1 IPv6 概述
如果不是人们意识到 IPv4 地址即将耗竭,IPv6 便不会出现。不过除了能提供更大的地址空间 外,IPv6 的制定也使人们有机会应用从 IPv4 发展中吸取的经验,从而创造一种更新、功能更强的
12
12Chapter
协议。
IPv6 使用简化的报头结构和协议运作,这意味着运行成本的降低。其固有的安全功能使安全 管理更加容易,配置和部署会更加便捷。
12.1.1 IPv4 的不足之处
IPv4 的不足主要体现在以下几个方面:
(1)地址空间的不足。
在 Internet 发展的初期,人们认为网络地址是不可能分配完的,这就导致网络地址分配的随意 性,其结果就是 IP 地址的利用率较低。由于组织的存在,IP 地址不是一个接一个地分配,而且由 于缺乏经验的地址分类,造成了大量的地址浪费。
分配的过程是按时间顺序进行的,刚开始的时候一个学校可以拥有一个 A 类网络,后来一个 国家可能只能拥有一个 C 类网络。A 类网络的数目并不多,因此问题的焦点就集中在 B 类和 C 类 网络地址上,A 类的网络太大,而 C 类的网络太小,因此后来的几乎所有的申请者都愿意申请一 个 B 类网络。一个 B 类网络可以拥有 65534 个主机地址,而实际上根本用不了这么多的地址,由 于这样低效率的分配方法,导致 B 类地址消耗得特别快,也就导致对现有的 IP 地址的分配速率快,
造成 IP 地址即将被分配完的局面。
(2)对现有路由技术的支持不够。
由于历史原因,今天的 IP 地址空间的拓扑结构都只有两层或三层,这在路由选择上是非常糟 糕的。各级路由器中路由表的数目过度增长,最终的结果是使路由器不堪重负,Internet 的路由选 择机制因此崩溃。
当前,Internet 发展的瓶颈己经不再是物理线路的速率,ATM 技术、百兆/千兆以太网技术的出 现使得物理线路的速率有了显著的改善。现在路由器的处理速度成为阻碍 Internet 发展的主要因素,
而 IPv4 天生设计上的缺陷更大大加重了路由器的负担。
首先,IPv4 的分组报头的长度是不固定的,这样不利于在路由器中直接利用硬件来实现分组 中路由信息的提取、分析和选择。
其次,目前的路由选择机制仍然不够灵活,对每个分组都进行同样过程的路由选择,没有充分 利用分组间的相关性。
最后,由于 IPv4 设计时未能完全遵循端到端通信的原则,加上当时物理线路的误码率比较高,
使得路由器还要具备以下两个功能:
根据线路的 MTU 来分段和重组过大的 IP 分组。
逐段进行数据校验。
但这同样会造成路由器处理速度的降低。
(3)无法提供多样的 QoS。
随着 Internet 的成功和发展,商家已经将更多的关注投向了 Internet,他们意识到其中蕴含着巨 大的商机,今天乃至将来,有很多的业务应用都会在互联网上进行。这些业务中包括对时间和带宽 要求很高的实时多媒体业务,如语音、图像等;对安全性要求很高的电子商务业务以及发展越来越 迅猛的移动 IP 业务等。这些业务对网络 QoS 的要求各不相同,但 IPv4 在设计时没有引入 QoS 这 样的概念,设计上的不足使得它很难相应地提供丰富的灵活的 QoS 选项。
虽然人们提出了一系列的技术,如 NAT、CIDR、VLSM、RSVP 等来缓解这些问题,但这些
12 Chapter
方法都只是权宜之计,解决不了因地址不多及地址结构不合理而导致的地址短缺的根本问题,最终 IPv6 应运而生。
12.1.2 IPv6 的改进
IPv6 相对于 IPv4 来说有以下几个方面的改进:
(1)扩展的地址空间和结构化的路由层次。
IPv6 地址长度由 IPv4 的 32 位扩展到 128 位,全局单点地址采用支持无分类域间路由的地址 聚类机制,可以支持更多的地址层次和更多的节点数目,并且使得自动配置地址更加简单。
(2)简化了报头格式。
IPv4 报头中的一些字段被取消或变成可选项,尽管 IPv6 的地址长度是 IPv4 的 4 倍,但是 IPv6 基本报头的字段类型比 IPv4 报头的字段类型多。取消了对报头中可选项长度的严格限制,增加了 灵活性。
(3)简单的管理:即插即用。
IPv6 通过实现一系列的自动发现和自动配置功能,简化网络节点的管理和维护。已实现的 典型技术包括最大传输单元发现(MTU Discovery)、邻接节点发现(Neighbor Discovery)、路 由 器 通 告 ( Router Advertisement )、 路 由 器 请 求 ( Router Solicitation )、 节 点 自 动 配 置
(Auto-configuration)等。
(4)安全性。
在制定 IPv6 技术规范的同时,产生了 IPSec(IP Security),用于提供 IP 层的安全性。目前,
IPv6 实现了认证头(Authentication Header,AH)和封装安全载荷(Encapsulated Security Payload,
ESP)两种机制。前者实现数据的完整性及对 IP 包来源的认证,保证分组确实来自源地址所标记 的节点;后者提供数据加密功能,实现端到端的加密。
(5)QoS 能力。
报头中的“标签”字段允许鉴别属于同一数据流的所有报文,因此路径上所有路由器可以鉴别 一个流的所有报文,实现非默认的服务质量或实时服务等特殊处理。
(6)改进的多点寻址方案。
通过在组播地址中增加“范围”字段,允许将组播的路由限定在正确的范围之内;另一个“标 志”字段允许 Internet 区分永久性的多点地址和临时性的多点地址。
(7)定义了一种新的群通信地址方式:Anycast。
在点到多点的通信中,将报文传递到一组节点中的一个(通常是最近的一个),从而在源点路 由中允许节点控制传递路径。
(8)可移动性。
IPv6 协议设计的若干技术有利于移动计算的实现,包括信宿选项头(Destination Options Header)、路由选项头(Routing Header)、自动配置、安全机制以及 Anycast 技术。将 QoS 技术同 移动节点相结合还将强化 IPv6 对移动计算的支持。
12.1.3 IPv6 协议栈
IPv4 和 IPv6 协议栈的比较如图 12-1 所示。
12Chapter
例如,2031:0:130F:0000:0000:9C0:876A:130B 等效于 2031:0:130F::9C0:876A:130B。
下面是一些 IPv6 地址的书写实例:
FF01:0:0:0:0:0:0:1 可以表示为 FF01::1。
0:0:0:0:0:0:0:1 可以表示为::1。
0:0:0:0:0:0:0:0 可以表示为::。
E3D7:0000:0000:0000:51F4:00C8:C0A8:6420 可以表示为 E3D7::51F4:C8:C0A8:6420。
当使用 Web 浏览器向一台 IPv6 设备发起 HTTP 连接时,必须将 IPv6 地址输入浏览器,而且
12 Chapter
下面是这种情况的一个例子。
http://[2001:0db8:3c4d:0012:0000:0000:1234:56ab]/default.html
显然,使用网站的域名来访问站点更便捷,因此在 IPv6 的网络中 DNS 变得尤为重要。
我们知道 IP 地址由网络部分和主机部分组成,IPv6 用前缀表示网络部分,表示形式是“IPv6 地址/前缀长度”,其中“前缀长度”是一个十进制数,表示该地址的前多少位是网络部分。例如,
F00D:4598:7304:3210:FEDC:BA98:7654:3210,如果前 64 位是该地址的网络部分,就可以表示为 F00D:4598:7304:3210:FEDC:BA98:7654:3210/64。
IPv6 地址的前缀表示方法特别便于地址的向上聚合,最终到达 ISP。IPv6 的全球单播地址(相 当于 IPv4 的公网地址)通常由 48 位全球路由前缀和 16 位子网 ID 组成。各组织可以使用 16 位子 网字段创建自己的本地编址架构,此字段允许组织使用最多 65535 个子网,如图 12-2 所示。
▲图 12-2 IPv6 的全局单播地址
图 12-2 的上部可以看出,如何使用注册机构前缀、ISP 前缀和站点前缀将附加架构添加到 48 位全球路由前缀中。第 49 位至 64 位为子网前缀,共有 16 个比特位组成,一般可用于企业网络各 个网段的标识,接口 ID 代表一个网络中的节点标识,类似于 IPv4 地址的主机部分。
目前的全球单播地址由 IANA 分配,使用的地址范围是从二进制值 001(2000::/3)开始,它 占全部 IPv6 地址空间的 1/8,是最大的一块分配地址。IANA 将 2001::/16 范围内的 IPv6 地址空间 分配给 5 家 RIR 注册机构(ARIN、RIPE、APNIC、LACNIC 和 AfriNIC)。
有关更多信息请参考 RFC 3587“IPv6 全球单播地址格式”,它取代了 RFC 2374。
12.1.5 IPv6 的地址类型
RFE 2373 中定义了三种 IPv6 的地址类型:单播地址(Unicast)、多播地址(Multicast)和任 播地址(Anycast)。
1.单播地址(Unicast)
和 IPv4 的单播地址一致,是在点对点通信时使用的地址,此地址仅标识一个网络接口,是接 口在 IPv6 网络中的逻辑标识。单播地址有以下几种形式:
全球单播地址(Global Unicast Address):相当于 IPv4 的公网地址,其结构在图 12-2 中已 经介绍过,目前有一小部分全球单播地址已经由 IANA(互联网名称与数字地址分配机构 ICANN 的一个分支)分配给了用户。全球单播地址的前缀是“2000::/3”,代表公共 IP 网 络上任意可及的地址。IANA 负责将该段地址范围内的地址分配给多个区域互联网注册管 理机构(RIR),它负责全球 5 个区域的地址分配,其中已经分配的地址块包括 2400::/12
(APNIC)、2600::/12(ARIN)、2800::/12(LACNIC)、2A00::/12(RIPE NCC)和 2C00::/12
(AfriNIC),这些地址符合典型的分层结构,便于地址信息的聚合。
注册机构前缀 ISP 前缀 站点前缀 子网前缀
12Chapter
链路本地单播地址(Link-Local Unicast Address):只能在连接到同一本地链路的节点之间 使用,以链路的本地地址为源地址或目的地址的 IPv6 报文不会被路由器转发到其他链路。
可以在自动地址分配、邻居发现和链路上没有路由器的情况下使用链路本地地址。链路 本地地址的前缀是“FE80::/10”,对应第 3 个十六进制数字是 8 到 B 之间的值,因此这些 地址以“FE8”“FE9”“FEA”或“FEB”开始。
站点本地单播地址(Site-Local Unicast Address):与当今 IPv4 中 RFC 1918“私有 Internet 地址分配”规定的地址相似,这些地址的使用范围是整个站点或组织内部。站点本地地 址的前缀是“FEC0::/10”,对应第 3 个十六进制数字是 C 到 F 之间的值,因此这些地址 以“FEC”“FED”“FEE”或“FEF”开始。不过由于 IPv6 的地址资源极其丰富,2003 年发布的 RFC 3879 已经不支持使用此类地址。
2.多播地址(Multicast)
多播地址也叫做组播地址,是为特定应用组播组保留的,如路由协议和一些常见的语音视频应 用。IPv6 中没有广播地址,使用组播地址替代广播地址可以确保报文只发送给特定的组播组而不 是 IPv6 网络中的任意终端,组播地址的前缀是“FF00::/8”。
3.任播地址(Anycast)
将一个单播地址分配给一组提供统一网络服务的服务器的形式,当一个单播地址被分配给多个
将一个单播地址分配给一组提供统一网络服务的服务器的形式,当一个单播地址被分配给多个