IPv6协议概述
IPv6(Internet Protocol Version 6)是网络层协议的第二代标准协议,也被成为IPng(IP Next Generation)。它是Internet工程任务组IETF(Internet Engineering Task Force)设计的一套规范,是IPv4的升级版本。
IPv4协议是目前广泛部署的因特网协议。在因特网发展初期,IPv4以其协议简单、易于实现、互操作性好的优势而得到快速发展。但随着因特网的迅猛发展,IPv4设计的不足也日益明显,IPv6的出现,解决了IPv4的一些弊端。
IPv6地址表达格式
IPv6地址的表示方法
IPv6地址总长度为128比特,通常分为8组,每组为4个十六进制数的形式,每组十六进制数间用冒号分割。例如:FC00:0000:120E:0000:0000:09C1:867B:231B,这是IPv6地址的首选格式。
为了书写方便,IPv6还提供了压缩格式,以上述IPv6地址为例,具体压缩规则:
(1)每个地址的每组中的前导“0”都可以省略,所以上述地址可以写为:FC00:0:120E:0:0:9C1:867B:231B
(2)地址中包含的连续两个或多个均为0的组,可以用双冒号“::”来代替,所以上述地址又可以进一步简写为:FC00:0:120E::9C1:867B:231B。
注意:一个IPv6地址中只能使用一次双冒号“::”,否则将压缩后的地址恢复128位时,无法确定每个“::”代表0的个数。
IPv6地址结构
一个IPv6地址可以分为如下两部分:
(1)网络前缀:n比特,相当于IPv4地址中的网络ID。
(2)接口表示:128-n比特,相当于IPv4地址中的主机ID。
注意:对IPv6单播地址来说,如地址前三bit不是000,则接口表示必须是64位,如果地址的前三位是000,则没有此限制。
接口表示可通过三种方法生成:手工配置、系统通过软件自动生成或IEEE EUI-64规范生成。其中,EUI-64规范自动生成最为常用。
EUI-64规范生成计算过程
EUI-64规范是将接口的MAC地址转换为IPv6接口标识的过程。在MAC地址的前24位和MAC地址后24位中间加入FFFE,转为64位,进行反转计算得到接口标识。
IPv6报文格式
IPv6报文由IPv6基本报头、IPv6扩展报头以及上层协议数据单元三部分组成。
上层协议数据单元一般由上层协议报头和它的有效载荷构成,有效载荷可以是一个ICMPv6报文、一个TCP报文或一个UDP报文。
IPv6基本报文头
IPv6基本报文头有8个字段,固定大小为40字节,每一个IPv6数据报都必须包含报头。基本报头提供报文转发的基本信心,会被转发路径上面的所有设备解析。
IPv6报头格式中主要字段解释如下:
Version:版本号,长度为4bit。对于IPv6,该值为6。
Traffic Class:流类别,长度为8bit。等同于IPv4中的ToS字段,表示IPv6数据报的类或优先级,主要应用于QoS。
Flow Label:流标签,长度为20bit。IPv6中的新增字段,用于区分实时流量,不同的流标签+源地址可以唯一确定一条数据流,中间网络设备可以根据这些信息更加高效率的区分数据流。
Payload Length:有效载荷长度,长度为16bit。有效载荷是指紧跟IPv6报头的数据报的其它部分(即扩展报头和上层协议数据单元)。
Next Header:下一个报头,长度为8bit。
Hop Limit:跳数限制,长度为8bit。该字段类似于IPv4中的Time to Live字段,它定义了IP数据报所能经过的最大跳数。每经过一个路由器,该数值减去1,当该字段的值为0时,数据报将被丢弃。
Source Address:源地址,长度为128bit。表示发送方的地址。
Destination Address:目的地址,长度为128bit。表示接收方的地址。
IPv6扩展报头
在IPv4中,IPv4报头包含可选字段Options,内容涉及Security、Timestamp、Record route等,这些Options可以将IPv4报头长度从20字节扩充到60字节。在转发过程中,处理携带这些Options的IPv4报文会占用设备很大的资源,因此实际中也很少使用。
IPv6将这些Options从IPv6基本报头中剥离,放到了扩展报头中,扩展报头被置于IPv6报头和上层协议数据单元之间。IPv6报文可以包含0个、1个或多个扩展报头,仅当需要设备或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。与IPv4不同,IPv6扩展头长度任意,不受40字节限制,这样便于日后扩充新增选项,这一特征加上选项的处理方式使得IPv6选项能得以真正的利用。
IPv6扩展头部分类
•扩展报头必须按如上表格的顺序出现
•除目的选项报头外,每种扩展报头只能出现一次
注意:目的选项头最多出现2次,1次在路由报头之前,1次在上层协议数据报文之前,如果没有路由报头,则只能出现一次。
IPv6扩展报头规约
当超过一种扩展报头被用在同一个分组里时,报头必须按照下列顺序出现:
IPv6基本报头
逐跳选项扩展报头
目的选项扩展报头
路由扩展报头
分段扩展报头
认证扩展报头
封装安全有效载荷扩展报头
目的选项扩展报头
上层协议数据报文
路由设备转发时根据基本报头中Nex Header值来决定是否要处理扩展头,并不是所有的扩展报头都需要被转发路由设备查看和处理。
IPv6地址配置
1.路由器设备系统视图开启IPv6协议功能。
<Huawei>system-view
[Huawei]sysname AR1
[AR1]ipv6 //开启IPv6协议功能
[AR1]
<Huawei>system-view
[Huawei]sysname AR2
[AR2]ipv6
[AR2]
2.接口下开启IPv6功能,并配置IPv6地址。
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]ipv6 enable //接口开启IPv6功能
[AR1-GigabitEthernet0/0/0]ipv6 address 2001:1:12::1 64
[AR1-GigabitEthernet0/0/0]quit
[AR1]
[AR2]interface GigabitEthernet 0/0/0
[AR2-GigabitEthernet0/0/0]ipv6 enable
[AR2-GigabitEthernet0/0/0]ipv6 address 2001:1:12::2 64
[AR2-GigabitEthernet0/0/0]quit
[AR2]
3.IPv6地址验证。
[AR1]ping ipv6 2001:1:12::2
PING 2001:1:12::2 : 56 data bytes, press CTRL_C to break
Reply from 2001:1:12::2
bytes=56 Sequence=1 hop limit=64 time = 120 ms
Reply from 2001:1:12::2
bytes=56 Sequence=2 hop limit=64 time = 20 ms
Reply from 2001:1:12::2
bytes=56 Sequence=3 hop limit=64 time = 20 ms
Reply from 2001:1:12::2
bytes=56 Sequence=4 hop limit=64 time = 30 ms
Reply from 2001:1:12::2
bytes=56 Sequence=5 hop limit=64 time = 30 ms
--- 2001:1:12::2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/44/120 ms
[AR1]
4.查看IPv6地址配置情况。
[AR1]display ipv6 interface GigabitEthernet 0/0/0
GigabitEthernet0/0/0 current state : UP
IPv6 protocol current state : UP
IPv6 is enabled, link-local address is FE80::2E0:FCFF:FEFE:58CE
Global unicast address(es):
2001:1:12::1, subnet is 2001:1:12::/64
Joined group address(es):
FF02::1:FF00:1
FF02::2
FF02::1
FF02::1:FFFE:58CE
MTU is 1500 bytes
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
[AR1]
[AR2]display ipv6 interface GigabitEthernet 0/0/0
GigabitEthernet0/0/0 current state : UP
IPv6 protocol current state : UP
IPv6 is enabled, link-local address is FE80::2E0:FCFF:FE5B:3ABC
Global unicast address(es):
2001:1:12::2, subnet is 2001:1:12::/64
Joined group address(es):
FF02::1:FF00:2
FF02::2
FF02::1
FF02::1:FF5B:3ABC
MTU is 1500 bytes
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
[AR2]