1、 Copyright 2007 杭州华三通信技术有限公司 第1 页, 共57页IPv6技术白皮书 关键词:IPv6 ISATAP NAT-PT 摘 要:本文介绍了IPv6 的产生背景和技术要点和组网策略 缩略语清单: 缩略语 英文全名 中文解释 ND Neighbour Discovery Protocol 邻居发现协议 PMTUD Path MTU Discovery Protocol 路径MTU 发现协议 ISATAP Intra-Site Automatic Tunnel Addressing Protocol 站点内自动隧道地址协议 NAT-PT Network Address Tra
2、nslation-Protocol Translation 网络地址转换协议转换 Teredo Tunneling IPv6 over UDP through NATs IPv6 使用IPv4 UDP 隧道穿越 NAT RIPng Route Information Protocol Next Generation 下一代RIP协议 OSPFv3 Open Short Path First Prtocol Version 3 开放最短路径优先协议版本3 BGP4+ Boarder Gateway Protocol 4 边际网关协议4+ MLD Multicast Listener Discov
3、ery 组播侦听协议 PIM-SM Protocol Indepent Multicast-Sparse Mode 协议无关组播稀疏模式 PIM-DM Protocol Indepent Multicast-Dense Mode 协议无关组播密集模式 Copyright 2007 杭州华三通信技术有限公司 第2 页, 共57页目 录 1 概述 .4 2 技术应用背景 .4 2.1 IPv6产生的背景 .4 2.2 技术优点 6 3 特性介绍 11 3.1 IPv6报文格式 .11 3.1.1 IPv6报文基本头格式 11 3.1.2 IPv6报文扩展头格式 13 3.1.3 IPv6 ICMP
4、报文格式 .15 3.2 IPv6地址结构定义 15 3.2.1 IPv6地址表示 .15 3.2.2 IPv6地址前缀表示 16 3.2.3 IPv6地址分类 .16 3.2.4 IPv6单播地址 .17 3.2.5 IPv6泛播地址 .18 3.2.6 IPv6多播地址 .19 3.2.7 嵌入IPv4 地址的IPv6 地址 .21 3.2.8 IPv6中特殊的地址 22 3.2.9 节点和路由器必须支持的IPv6 地址 .22 3.3 IPv6地址分配 .23 3.3.1 全球单播地址空间分配 .23 3.3.2 IPv6实验网络地址分配(6BONE ) .24 4 IPv6基本功能 .
5、24 4.1 IPv6邻居发现协议 24 4.1.1 邻居发现 25 4.1.2 路由器发现 26 4.1.3 IPv6无状态地址自动配置 .28 4.1.4 重定向 28 4.2 IPv6路径MTU 发现协议 28 4.3 IPv6域名解析 .29 5 IPv4向IPv6 过渡技术 30 Copyright 2007 杭州华三通信技术有限公司 第3 页, 共57页5.1 IPv6/IPv4双协议栈 .31 5.1.1 双栈 .31 5.1.2 DSTM 31 5.2 IPv6穿越IPv4 隧道技术 .33 5.2.2 IPv6手工配置隧道 34 5.2.3 IPv4兼容自动隧道 34 5.2
6、.4 6to4自动隧道 .35 5.2.5 ISATAP隧道 37 5.2.6 IPv6 over IPv4 GRE隧道 .39 5.2.7 隧道代理 39 5.2.8 6over4机制 40 5.2.9 6PE41 5.2.10 Teredo隧道 42 5.3 IPv6与IPv4 互通技术 42 5.3.1 SIIT43 5.3.2 NAT-PT .44 5.3.3 BIS.47 5.3.4 BIA.48 5.3.5 TRT .49 5.3.6 Socket IPv4/IPv6网关 50 6 IPv6路由技术 .51 6.1 IPv6单播路由协议 51 6.1.1 RIPng 51 6.1.
7、2 OSPFv3.51 6.1.3 ISISv652 6.1.4 BGP4+.52 6.2 IPv6多播路由协议 53 6.2.1 MLDv1 Snooping.53 6.2.2 MLDv1 .53 6.2.3 PIM-SM .53 6.2.4 PIM-DM .53 7 IPv6部署策略 .53 8 相关协议标准 .55 Copyright 2007 杭州华三通信技术有限公司 第4 页, 共57页1 概述 IPv6( Internet Protocol Version 6,因特网协议版本6 )是网络层协议的第二代标准协议,也被称为 IPng( IP Next Generation,下一代因特网
8、),它是IETF( Internet Engineering Task Force, Internet工程任务组)设计的一套规范,是IPv4的升级版本。 IPv6和IPv4 之间最显著的区别为:IP 地址的长度从 32比特增加到128比特。 2 技术应用背景 2.1 IPv6产生的背景 IPv6是IPv4 的未来替代协议。 IPv4协议是目前广泛部署的因特网协议,从1981 年最初定义(RFC791 )到现在已经有20多年的时间。IPv4 协议简单、易于实现、互操作性好,IPv4 网络规模也从最初的单个网络扩展为全球范围的众多网络。 然而,随着因特网的迅猛发展,IPv4 设计的不足也日益明显,
9、主要有以下几点: z IPv4 地址空间不足 IPv4地址采用32 比特标识,理论上能够提供的地址数量是43 亿。但由于地址分配的原因,实际可使用的数量不到43 亿。另外,IPv4 地址的分配也很不均衡:美国占全球地址空间的一半左右,而欧洲则相对匮乏;亚太地区则更加匮乏(有些国家分配的地址还不到256 个)。随着因特网发展,IPv4 地址空间不足问题日益严重。 z 骨干路由器维护的路由表表项数量过大 由于IPv4 发展初期的分配规划的问题,造成许多IPv4 地址块分配不连续,不能有效聚合路由。针对这一问题,采用CIDR 以及回收并再分配IPv4 地址,有效抑制了全球IPv4 BGP路由表的线性
10、增长。但目前全球IPv4 BGP路由表仍不断在增长,已经达到17 万多条,经过CIDR 聚合以后的BGP 也将近10 万条。日益庞大的路由表耗用内存较多,对设备成本和转发效率都有一定的影响,这一问题促使设备制造商不断升级其路由器产品,提高其路由寻址和转发的性能。 z 不易进行自动配置和重新编址 由于IPv4 地址只有32比特,地址分配也不均衡,经常在需要在网络扩容或重新部署Copyright 2007 杭州华三通信技术有限公司 第5 页, 共57页时,需要重新分配IP 地址,因此需要能够进行自动配置和重新编址以减少维护工作量。 z 不能解决日益突出的安全问题 随着因特网的发展,安全问题越来越突
11、出。IPv4 协议制定时并没有仔细针对安全性进行设计,因此固有的框架结构并不能支持端到端安全。因此,安全问题也是促使新的IP 协议出现的一到动因。 针对IPv4 地址短缺问题,也出现了多种解决方案。比较有代表性的是 CIDR和NAT。 (1) CIDR CIDR是无类域间路由的简称。IPv4 设计之初是层次化的结构,分为A 类(掩码长度为 8)、B 类(掩码长度为16 )、 C类地址(掩码长度为24 ),地址利用效率不高。CIDR 支持任意长度的地址掩码,使ISP 能够按需分配地址空间,提高了地址空间利用率。 CIDR的出现大大缓解了地址紧张问题,但由于各种网络设备、主机的不断出现,对 IP地
12、址的需求也越来越多,CIDR 还是无法解决IPv4 地址空间过小问题(32 比特)。 (2) NAT NAT也是针对IPv4 地址短缺问题提出的一种解决方案。其基本原理是在网络内部使用私有地址,在NAT 设备处完成私有地址和外部公有地址的翻译,达到减少公有地址使用的目的。 NAT也是一种广泛部署的地址短缺问题解决方案。但NAT 有以下缺点: z NAT 破坏的 IP 的端到端模型 如果没有NAT ,则使用IPv4只需要连接的端点负责维护连接,下层不需要处理任何连接,整个网络模型清晰、简洁。使用NAT 则NAT 设备需要关心每条连接的状态,增加了网络复杂性。 z NAT 存在单点失效问题 NAT
13、必须进行地址和端口翻译、保存连接状态,当NAT 设备失效或NAT 设备附近链路失效时,由于NAT 中维护了状态,因此很难进行快速重路由,降低了网络的可靠性。 z 非 NAT 友好应用支持问题 Copyright 2007 杭州华三通信技术有限公司 第6 页, 共57页对于非NAT 友好的应用,仅仅进行地址和端口号转换是不够的。这些应用中所有和地址或端口号或安全关联等相关的数据都必须进行 NAT 转换才能正常运行。因此每当新出现这样的应用时都需要升级NAT 设备。 z 不支持端到端安全 NAT需要对IP 报文头进行修改,有时甚至需要修改应用相关数据。端到端安全中IP头的完整性通过加密函保证,报文
14、的发出者负责保护报文头的完整性,在接收端检查收到报文的完整性,在转发过程中任何对报文头的修改都会破坏完整性检查。因此在部署NAT 的情况下无法支持端到端的安全。 z 网络扩容或重新部署困难 不同的网络网络有可能使用相同的的私有地址空间,如 192.168.0.1/24,则当这些网络合并或连在一起时,就会出现地址空间冲突。这时就需要重新编址或使用二次NAT来解决问题,但这些解决方案增加了网络管理的复杂性。 z NAT 不能解决所有地址短缺问题 NAT采用内部私有地址和外部地址(或端口)进行映射的方法解决地址短缺问题,但这种解决方法只有在内部地址和外部地址比例很大时才能有效节约地址。不过许多服务器
15、部署在内部网络中,同一协议使用的外部地址不能复用于同一端口。例如:两个 使用相同端口(如HTTP )的内部服务器。 从上可见,推动IPv6 发展的主要问题是IPv4 地址空间即将耗尽。IPv6 也提供了一些新的特性和和改善措施: z 设计回归简洁、透明,提高实现效率,减少复杂性 z 为新出现的移动业务提供支持 z 重新引入端到端安全和 QoS 2.2 技术优点 IPv6技术具有如下优点: (1) 128位地址结构,提供充足的地址空间 近乎无限的IP 地址空间是部署IPv6 网络最大的优势。和IPv4 相比,IPv6 的地址比特数是IPv4 的 4倍(从32 位扩充到128 位)。 128位地址
16、可包含约43 亿 43亿 43亿43亿个地址节点,足已满足任何可预计的地址空间分配(IPv4 理论上能够提供的上限是43亿个,而IPv6 理论上地址空间的上限是43亿43 亿43亿43 亿)。 图1 IPv6地址格式 (2) 层次化的网络结构,提高了路由效率 IPv6地址长度为 128位,可提供远大于IPv4 的地址空间和网络前缀,因此可以方便地进行网络的层次化部署。同一组织机构在其网络中可以只使用一个前缀。对于ISP,则可获得更大的地址空间。这样ISP 可以把所有客户聚合形成一个前缀并发布出去。分层聚合使全局路由表项数量很少,转发效率更高。另外,由于地址空间巨大,同一客户使用多个ISP 接入
17、时可以同时使用不同的前缀,这样不会对全局路由表的聚合造成影响。 (3) IPv6报文头简洁,灵活,效率更高,易于扩展 图2 IPv6和IPv4 报文头格式对比 IPv6中废弃的域: z IHL 域 IPv4中 IHL域用于标识IPv4 报文头长度。由于IPv4 报文头中存在选项域,因此其报文头长度域是必须的。但由于 IHL域只有 4比特(最小值为 5,以 4字节为单位),报文头的选项的扩展能力有限。IPv6 的报文头由基本头和选项头组成。基本头长度Copyright 2007 杭州华三通信技术有限公司 第7 页, 共57页Copyright 2007 杭州华三通信技术有限公司 第8 页, 共5
18、7页固定(40字节),因此IHL 域在IPv6 中废除。 z Identification 域 IPv4中的Identification 域由发送方赋值,用于标识同一组分片报文,以帮助进行分片报文重组。IPv6 分片报文是通过扩展头实现的,此域在IPv6 基本头中不再需要。 z Flags 域 IPv4中的Flags 域用于标记报文是否分片以及是否为最后一个分片。 IPv6分片报文是通过选项头实现的,此域在IPv6 基本头中不再需要。 z Fragment Offset 域 IPv4中的Fragment Offset 域用来标记分片报文在未分片前原始报文中的位置。IPv6分片报文是通过选项头实
19、现的,此域在IPv6 基本头中不再需要。 z Header Checksum 域 IPv4中的Header Checksum 域用于检验IPv4 报文头是否有错误。由于目前网络中链路层一般可靠性比较高且都有校验,同时传输层也有自己的报文头校验计算,因此此域有些多余。而且此域计算包括TTL ,在每个转发路由器都需要重新计算,对效率也有影响。因此 IPv6中废除了此域(但UDP 报文头中的校验和计算改为必须的)。 z Options 域 IPv4中 Options域是为支持选项使用的,长度可变,但受限于 IPv4报文头长度,扩展能力有限。IPv6 中使用选项头实现此功能,因此不再需要此域。 z P
20、adding 域 IPv4中的Padding 域是为了保证报文头结束于32 比特边界,便于硬件存取。IPv6 中基本头长度固定,因此不再需要此域。 IPv6新增加的域: z Flow Label 域 IPv6报文头中新增了流标签域,源节点可以使用这个域标识特定的数据流。流标签由源节点分配,通过流标签、源地址、目的地址可以唯一标识一条流。使用流标签而不是传统的五元组方式(源地址、目的地址、源端口、目的端口和传输层协议号)的最大好处有两点:流标签可以和任意的流关联,需要标识不同类型的流(可以是非五元组)时,无需对流标签做改动;流标签在 IPv6基本头中,使用IPSec 时此域对转发路由器可见,因此
21、转发路由器可以在使用 IPv6报文IPSec 的情况下仍然可以通过三元组(流标签、源地址、目的地址)针对特定的流进行QoS 处理。 IPv6和 IPv4相比,去除了IHL 、 Identification、 Flags、 Fragment Offset、 Header Checksum、Options 、 Paddiing域,只增了流标签域,因此IPv6 报文头处理比IPv4大大简化,提高了处理效率。另外,IPv6 为了更好支持各种选项处理,提出了扩展头的概念,新增选项时不必修改现有结构就能做到,理论上可以无限扩展,体现了优异的灵活性。 图3 IPv6扩展头结构 (4) 支持自动配置,即插即用
22、 IPv6协议内置支持通过地址自动配置方式使主机自动发现网络并获取 IPv6地址,大大提高了内部网络的可管理性。使用自动配置,用户设备(如移动电话、无线设备)可以即插即用而无需手工配置或使用专用服务器(如DHCP Server )。本地链路上的路由器在路由器通告报文中发送网络相关信息(如本地链路的前缀、缺省路由等),主机收到后会根据本地接口自身的接口标识符组合成主机地址,从而完成Copyright 2007 杭州华三通信技术有限公司 第9 页, 共57页Copyright 2007 杭州华三通信技术有限公司 第10页, 共57页自动配置。 (5) 支持端到端安全 IPv4中也支持IP 层安全特
23、性(IPSec ),但只是通过选项支持,实际部署中多数节点都不支持。IPSec 是 IPv6协议基本定义中的一部分,任何部署的节点都必须能够支持。 因此,在IPv6 中支持端到端安全要容易的多。IPv6 中支持为IP 定义的安全目标:保密性(只有预期接收者能读数据)、完整性(数据在传输过程中没有被篡改)、验证性(发送数据的实体和所宣称的实体完全一致)。 (6) 支持移动特性 IPv6协议规定必须支持移动特性,任何IPv6 节点都可以使用移动IP 功能。 和移动IPv4 相比,移动 IPv6使用邻居发现功能可直接实现外地网络的发现并得到转交地址,而不必使用外地代理。同时,利用路由扩展头和目的地址
24、扩展头移动节点和对等节点之间可以直接通信,解决了移动IPv4 的三角路由、源地址过滤问题,移动通信处理效率更高且对应用层透明。 (7) 新增流标签功能,更利于支持QoS IPv6报文头中新增了流标签域,源节点可以使用这个域标识特定的数据流。转发路由器和目的节点都可根据此标签域进行特殊处理,如视频会议和 VOIP等数据流。IPv6源节点使用 IPv6报文头中的20 比特流标签域来标识一条流。值为 0的流标签标识报文不属于任何流。一条流由源地址、目的地址和流标签三个域唯一决定。源节点设定的流标签值在传输中不能改变。如果IPv6 节点没有提供针对流的特殊处理,则必须在接收或转发时忽略此域。源节点必须
25、保证当前使用的流标签不被重用,在一条流中止120 秒内,相应的流标签不被分配出去,源节点可针对不同的流设置长于 120秒的不被分配时间。为避免流标签的意外重用,源节点应按一定的顺序(如顺序递增或伪随机)分配新的流标签,并在系统重起时选定不同的初始化值。为支持针对特定流的处理,在源和目的节点路径上全部节点或部分节点必须记录流状态。 目前关于如何在源节点和其它节点之间协商标签还没有相关标准。 3 特性介绍 3.1 IPv6报文格式 3.1.1 IPv6报文基本头格式 图4 IPv6基本头格式定义 z Version: 4比特,值为6 表示IPv6 报文 z Traffic Class: 8比特,类
26、似于IPv4 中的TOS 域 z Flow Label: 20比特。IPv6 中新增。流标签可用来标记特定流的报文,以便在网络层区分不同的报文。转发路径上的路由器可以根据流标签来区分流并进行处理。由于流标签在IPv6报文头中携带,转发路由器可以不必根据报文内容来识别不同的流,目的节点也同样可以根据流标签识别流,同时由于流标签在报文头中,因此使用IPSec后仍然可以根据流标签进行QoS处理。 z Payload Length: 16比特。以字节为单位的IPv6 载荷长度,也就是IPv6 报文基本头以后部分的长度(包括所有扩展头部分)。 Copyright 2007 杭州华三通信技术有限公司 第1
27、1页, 共57页Copyright 2007 杭州华三通信技术有限公司 第12页, 共57页z Next Header: 8比特。用来标识当前头(基本头或扩展头)后下一个头的类型。此域内定义的类型与IPv4 中的协议域值相同。Pv6 定义的扩展头由基本头或扩展头中的扩展头域链接成一条链。这一机制下处理扩展头更高效,转发路由器只处理必须处理的选项头,提高了转发效率。 z Hop Limit: 8比特。和IPv4 中的 TTL字段类似。每个转发此报文的节点把此域减 1,如果此域值减到0则丢弃。 z Source Address: 128比特。报文的源地址。 z Destination Addres
28、s: 128比特。报文的目的地址 3.1.2 IPv6报文扩展头格式 图5 IPv6扩展头格式 IPv6选项字段是通过形成链式结构的扩展头支持的。 IPv6基本头后面可以有0 到多个扩展头。 IPv6扩展头排列顺序如下: (1) 逐跳选项头 值为0 (在IPv6 基本头中定义)。此选项头被转发路径所有节点处理。目前在路由告警(RSVP 和 MLDv1)与Jumbo 帧处理中使用了逐跳选项头。路由告警需要通知到转发路径中所有节点,需要使用逐跳选项头。Jumbo 帧是长度超过65535 的报文,传输这种报文需要转发路径中所有节点都能正常处理,因此也需要使用逐跳选项头功能。 (2) 目的选项头 Co
29、pyright 2007 杭州华三通信技术有限公司 第13页, 共57页Copyright 2007 杭州华三通信技术有限公司 第14页, 共57页值为60。只可能出现在两个位置: z 路由头前 这时此选项头被目的节点和路由头中指定的节点处理。 z 上层头前(任何 ESP 选项后) 此时只能被目的节点处理。Mobile IPv6 中使用了目的选项头。Mobile IPv6 中新增加一种类型的目的选项头(家乡地址选项)。家乡地址选项由目的选项头携带,用于移动节点离开家乡后通知接收节点此移动节点对应的家乡地址。接收节点收到带有家乡地址选项的报文后,会把家乡地址选项中源地址(移动节点的家乡地址)和报
30、文中源地址(移动节点的转交地址)交换,这样上层协议始终认为是在和移动节点的家乡地址在通信,实现了移动漫游功能。 (3) 路由头 值为43。用于源路由选项和Mobile IPv6。 (4) 分片头 值为44 。此选项头在源节点发送的报文超过Path MTU (源和目的之间传输路径的MTU)时对报文分片时使用。 (5) 验证头(AH 头) 值为51。用于IPSec ,提供报文验证、完整性检查。定义和IPv4 中相同。 (6) 封装安全载荷头(ESP 头) 值为50。用于IPSec ,提供报文验证、完整性检查和加密。定义和IPv4 中相同。 (7) 上层头 上层协议头,如TCP/UDP/ICMP等
31、目的选项头最多出现两次(一次在路由头前,一次在上层协议头前),其它选项头最多出现一次。但IPv6 节点必须能够处理选项头(逐跳选项头除外,它固定只能进随基本头之后)的任意出现位置和任意出现次数,以保证互通性。 3.1.3 IPv6 ICMP报文格式 图6 ICMP报文格式 ICMPv6功能与ICMPv4 类似。 ICMPv6用于IPv6 节点报告报文处理过程中发生的错误以及完成其它层的功能,例如诊断功能( ICMPv6 “ping”)。ICMPv6 是 IPv6的一部分,每个IPv6 节点都必须实现。 ICMPv6报文主要分两类: (1) 差错报文 z 目的地不可达报文 z 报文长度超大报文(
32、用于路径 MTU 发现协议) z 传输超时报文(相当于 IPv4 TTL 等于 0 时触发的 ICMP 报文) z 报文参数错误报文 (2) 信息报文 z 回显请求报文 z 回显应答报文 3.2 IPv6地址结构定义 3.2.1 IPv6地址表示 IPv6地址包括128 比特,由使用由冒号分隔的 16比特的十六进制数表示。16 比特的十六进制数对大小写不敏感。如:FEDC:BA98:7654:3210:FEDC:BA98:7654:3210。 另外,对于中间比特连续为0 的情况,还提供了简易表示方法把连续出现的0省略掉,用:代替(注意:只能出现一次,否则不能确定到底有多少省略的0),如下所示:
33、 1080:0:0:0:8:800:200C:417A 等价于 1080:8:800:200C:417A FF01:0:0:0:0:0:0:101 等价于 FF01:101 Copyright 2007 杭州华三通信技术有限公司 第15页, 共57页Copyright 2007 杭州华三通信技术有限公司 第16页, 共57页0:0:0:0:0:0:0:1 等价于 :1 0:0:0:0:0:0:0:0 等价于 : 3.2.2 IPv6地址前缀表示 和 IPv4类似,IPv6 的子网前缀和链路关联。多个子网前缀可分配给同一链路。IPv6地址前缀表示如下: ipv6-address/prefix-l
34、ength 其中,ipv6-address 为16 进制表示的128 比特地址;prefix-length为10进制表示的地址前缀长度。 3.2.3 IPv6地址分类 RFC2373中定义了多种IPv6 地址类型: Allocation Prefix Fraction of (binary) Address Space - - - Reserved 0000 0000 1/256 Unassigned 0000 0001 1/256 Reserved for NSAP Allocation 0000 001 1/128 Reserved for IPX Allocation 0000 010
35、1/128 Unassigned 0000 011 1/128 Unassigned 0000 1 1/32 Unassigned 0001 1/16 Aggregatable Global Unicast Addresses 001 1/8 Unassigned 010 1/8 Unassigned 011 1/8 Unassigned 100 1/8 Copyright 2007 杭州华三通信技术有限公司 第17页, 共57页Unassigned 101 1/8 Unassigned 110 1/8 Unassigned 1110 1/16 Unassigned 1111 0 1/32 U
36、nassigned 1111 10 1/64 Unassigned 1111 110 1/128 Unassigned 1111 1110 0 1/512 Link-Local Unicast Addresses 1111 1110 10 1/1024 Site-Local Unicast Addresses 1111 1110 11 1/1024 Multicast Addresses 1111 1111 1/256 注: (1) “未指定的地址”(全 0)、环回地址(:1 )和嵌入IPv4 地址的IPv6 地址(“嵌入IPv4 地址的IPv6 地址”见2.3.4 节说明)从0000 000
37、0 格式前缀中分配。 (2) 除多播地址( 格式前缀1111 1111) 外,格式前缀从001 到 111的地址都必须有64比特的EUI-64格式的接口标识符。 IPv6地址分为单播地址、泛播地址、多播地址。和IPv4 相比,取消了广播地址类型,以更丰富的多播地址代替,同时增加了泛播地址类型。 3.2.4 IPv6单播地址 IPv6单播地址标识了一个接口,由于每个接口属于一个节点,因此每个节点的任何接口上的单播地址都可以标识这个节点。发往发往单播地址的报文,由此地址标识的接口接收。每个接口上至少要有一个链路本地单播地址,另外还可分配任何类型(单播、泛播和多播)或范围的IPv6 地址。 所有格式
38、前缀不是多播格式前缀( 1111 1111)的 IPv6地址都是IPv6 单播格式(泛播和IPv6 单播格式相同)。IPv6 单播地址和IPv4 单播地址一样可聚合。目前定义了多种IPv6 单播地址格式,包括可聚合全球单播地址、 NSAP地址、 IPX层次地址、站点本地地址、链路本地地址和具有IPv4 能力的主机地址(嵌入IPv4 地址的IPv6 地址)。目前广泛使用的是可聚合全球单播地址、站点本地地址和链路本地地址。 图7 IPv6单播地址格式 IPv6单播地址由子网前缀和接口ID 两部分组成。子网前缀由IANA 、 ISP和各组织分配。 接口标识符目前定义为64 比特,可以由本地链路标识生
39、成或采用随机算法生成以保证唯一性。 3.2.5 IPv6泛播地址 IPv6泛播地址格式和IPv6 单播地址相同,用来标识一组接口的地址。一般这些接口属于不同的节点。发往泛播地址的报文被送到这组接口中与其最近的接口(由使用的路由协议判断哪个是最近的)。 IPv6泛播地址的用途之一是用来标识属于同一提供因特网服务的组织的一组路由器。这些地址可在IPv6 路由头中作为中间转发路由器,以使报文能够通过特定一组路由器进行转发。另一个用途就是标识特定子网的一组路由器,报文只要被其中一个路由器接收即可。 其中有些泛播地址是已经定义好的,如子网路由器泛播地址。 图8 子网路由器泛播地址格式 子网路由器器泛播地
40、址中“subnet prefix ”域用来标识特定链路。发送到子网路由器泛播地址的报文会被送到子网中的一个路由器。所有路由器都必须支持子网泛播地址 子网路由器泛播地址用于节点需要和远端子网上所有路由器中的一个(不关心具体是哪一个)通信时使用。例如,一个移动节点需要和它的“家乡”子网上的所有移Copyright 2007 杭州华三通信技术有限公司 第18页, 共57页动代理中的一个进行通信。 3.2.6 IPv6多播地址 1. IPv6多播地址格式定义 IPv6多播地址用来标识一组接口,一般这些接口属于不同的节点。一个节点可能属于0 到多个多播组。发往多播地址的报文被多播地址标识的所有接口接收。
41、 注意:IPv6 多播中不使用Hop Limiit 域(相当于IPv4 的TTL ) 图9 IPv6多播地址格式 其中: z 11111111 8比特。标识此地址为多播地址 z flags 4比特。flag域中定义如下: 图10 IPv6多播地址中的flag域格式 最高的3 比特标记为保留域,必须为0 T = 0表示为永久分配(“公认”)多播地址(由IANA 分配) T = 1表示为多播 T = 0 indicates a permanently-assigned (“well-known“) multicast address, assigned by the global internet
42、 numbering authority. T = 1 indicates a non-permanently-assigned (“transient“) multicast address. z scope Copyright 2007 杭州华三通信技术有限公司 第19页, 共57页Copyright 2007 杭州华三通信技术有限公司 第20页, 共57页4比特。用来标记此多播组的应用范围。可能的值有 0 reserved 1 node-local scope /只在节点范围内有效 2 link-local scope /只在链路范围有效 3 (unassigned) 4 (unassi
43、gned) 5 site-local scope /只在一个网络内有效 6 (unassigned) 7 (unassigned) 8 organization-local scope /只在组织内有效 9 (unassigned) A (unassigned) B (unassigned) C (unassigned) D (unassigned) E global scope /全局有效 F reserved z group ID 标识多播组(可能是永久的,也可能是临时的,范围由scope 定义) 2. IPv6永久分配的多播地址 目前的永久分配(“周知”)多播组如下: z 保留的多播地址
44、: FF00:-FF0F:(共16个地址) z 所有节点的地址 FF01:0:0:0:0:0:0:1 (节点本地) FF02:0:0:0:0:0:0:1 (链路本地) z 所有路由器地址 FF01:0:0:0:0:0:0:2 (节点本地) FF02:0:0:0:0:0:0:2 (链路本地) FF05:0:0:0:0:0:0:2 (站点本地) z 被请求节点的地址 FF02:0:0:0:0:1:FFXX:XXXX 上述地址由被请求节点的单播或泛播地址形成:取被请求节点单播或泛播地址的低24比特,在前面增加前缀FF02:0:0:0:0:1:FF00:/104 构成。例如,和IPv6 地址4037:
45、01:800:200E:8C6C对应的被请求节点多播地址是FF02:1:FF0E:8C6C。 此地址用在IPv6 邻居发现协议中,用在邻居请求报文中,由于只有后24 比特单播地址相同的节点才会接收目的地址为此地址的报文,因此减少了通信流量(和 IPv4 ARP相比)。 3.2.7 嵌入IPv4 地址的IPv6 地址 1. IPv4兼容的IPv6 地址 图11 IPv4兼容的的IPv6 地址格式 这种地址在低32 比特携带IPv4 地址,前96 比特全0 ,主要用在一种自动隧道技术,目的地址为这种地址的报文会被自动IPv4 隧道封装(隧道的端点为自 IPv6报文中的IPv4地址),由于这种技术不
46、能解决地址耗尽问题,已经逐渐被废弃。 Copyright 2007 杭州华三通信技术有限公司 第21页, 共57页2. IPv4映射的IPv6 地址 图12 IPv4映射的IPv6 地址 这种地址最前80 比特为全 0,中间16 比特为全1 ,最后 32比特为 IPv4地址。这种地址用来把只支持IPv4 的节点用IPv6 地址表示。在支持双栈的IPv6 节点上,IPv6 应用发送目的报文是这种地址时,实际上发出的报文为IPv4 报文(目的地址是“IPv4 映射的IPv6 地址”中的IPv4 地址)。 3.2.8 IPv6中特殊的地址 IPv6中还规定了以下几种特殊的IPv6 地址 1. 未指定
47、的IPv6 地址 格式0:0 。未指定的 IPv6地址不能分配给任何接口,被未分配到IPv6 地址的节点表示其没有IPv6 地址。例如,一个节点启动后没有 IPv6地址,发送报文时填充源地址全 0表示自身没有 IP地址。未指定的IPv6 地址不能在IPv6 报文头或路由头中作为目的地址出现。 2. IPv6环回地址 格式:1 。此地址与IPv4 中的127.0.0.1 类似,一般在节点发报文给自身时使用,不能分配给物理接口。IPv6 环回地址不能作为源地址使用,目的地址为IPv6 环回地址的报文不能发送到源节点外,也不能被IPv6 路由器转发。 3.2.9 节点和路由器必须支持的IPv6 地址
48、 1. 节点必须支持的IPv6 地址 每个主机必须把下列地址作为自身的地址 z 自身接口的链路本地地址 z 分配的单播地址 z 环回地址 Copyright 2007 杭州华三通信技术有限公司 第22页, 共57页z 所有节点多播地址 z 每个分配的单播或多播地址对应的被请求节点多播地址 z 此主机所属的其它多播组地址 2. 路由器必须支持的IPv6 地址 z 节点必须支持的 IPv6 地址( 2.3.5 第 1 节) z 接口配置为路由器接口的子网路由器泛播地址 z 任何其它路由器配置的泛播地址 z 所有路由器多播地址 z 此路由器所属的其它多播组地址 3.3 IPv6地址分配 3.3.1 全球单播地址空间分配 因特网分配地址权威机构(IANA )负责 IPv6地址空间的分配。目前 IANA从整个可聚合全球单播地址空间(格式前缀为001 )中取 2