IPv6基础
IPv6特点
128bits的地址方案,提供了巨大的IP地址空间
多等级层次有助于路由聚合,提高了因特网网络路由的效率及可扩展性
IPv6可提供远大于IPv4的网络前缀,同一组织机构在其网络中可以只使用一个前缀,这样ISP可以把所有客户聚合形成一个前缀并发布出去。分层聚合使全局路由表项数量很少,转发效率更高。
自动配置过程允许IPv6网络中的节点更加便捷的接入IPv6网络【实现了即插即用的联网方式】
重新编制机制使得IPv6提供商之间的转换对最终用户是透明的
不再有广播、不再有ARP,利用ICMPv6替代ARP
IPv6的包头比IPv4更加有效率,数据字段更少,去掉了包头校验和。
IPv地址表示
IPv6地址共128位,使用十六进制进行表示,分为8段,中间用”:”隔开。
如:2001:0000:3238:00E1:0063:0000:0000:FEFB
IPv6地址简写
以2001:0410:0000:0001:0000:0000:0000:45ff为例:
每段的前导0可以省略,但至少保留1个0
2001:410:0:1:0:0:0:45ff
连续多个0可以缩写为”::”,但只能使用一次
2001:410:0:1::45ff
IPv6地址结构
IPv6地址分为两部分:前缀及接口ID
接口标识生成方法:
手工配置
系统通过软件自动生成
IEEE EUI-64规范自动生成
将MAC地址转换为接口ID
MAC地址的独特性保证了接口ID的独特性
设备自动生成,不需认为干预
如下:将MAC地址为00-E0-4C-68-10-18,通过EUI-64自动生成IPv6的接口ID。
步骤1:在MAC地址的高24位厂商ID和低24位厂商编号ID之间插入两个字节FFFE
步骤2:将U/L位取反,此处0置为1
U/L 位是第一个字节的第七位,用于确定该地址是全球管理还是本地管理。如果为0就为全球管理,表示全球唯一地址;为1就为本地管理,表示本地唯一地址,是网络管理员为了加强自己对网络管理而指定的地址
IPv6报头
字段 | 长度 | 含义 |
---|---|---|
version | 4bit | 6:表示IPv6 |
traffic class | 8bit | 流量类型,该字段及其功能类似于IPv4业务类型字段。该字段以区分业务编码点(DSCP)标记一个IPv6数据包,以此指明数据包应当如何处理。 |
flow label | 20bit | 流标签。该字段用来表示IP数据包的一个流, |
payload length | 16bit | 该字段表示有效载荷的长度、有效载荷是指紧跟在IPv6基本报头的数据包,包含IPv6扩展报头 |
next header | 8bit | 下一报头,该字段指明了跟随在IPv6基本报头后的扩展报头的信息类型 |
Hop limit | 8bit | 跳数限制,该字段定义了IPv6数据包所能经过的最大跳数,这个字段和IPv4中的TTL字段非常相似。 |
Source address | 128bit | 该字段表示该报文的原地址 |
Destination address | 128bit | 该字段表示该报文的目的地址 |
extension headers | 可变 | 扩展报头。IPv6取消了IPv4报头中的选项字段,并引入了多种扩展报文头,在提高处理效率的同时还增强了IPv6的灵活性,为IP协议提供了良好的扩展能力。当超过一种扩展报头被用在同一个分组里时,报头必须按照下列顺序出现: - IPv6基本报头 - 逐跳选项扩展报头 - 目的选项扩展报头 - 路由扩展报头 - 分片扩展报头 - 授权扩展报头 - 封装安全有效载荷扩展报头 - 目的选项扩展报头(指那些将被分组报文的最终目的地处理的选项) - 上层扩展报头 不是所有的扩展报头都需要被转发路由设备查看和处理的。路由设备转发时根据基本报头中Next Header值来决定是否要处理扩展头。 除了目的选项扩展报头出现两次(一次在路由扩展报头之前,另一次在上层扩展报头之前),其余扩展报头只出现一次。 |
一个IPv6数据包可能包括0个或多个扩展包头,当使用多个扩展包头时,通过前面的包头的Next head字段指明该扩展包头后的扩展包头。有了扩展包头,中间路由器就不需要处理每一个可能出现的选项,提高了路由器处理数据包的速度,提高了其转发性能。在扩展报头链的最后就是有效负载。
扩展报头是可选的,只有需要该扩展报头对应的功能,发送主机才会添加相应扩展报头
与IPv4报头相比,IPv6报头结构的提升:
- 基本的IPv4报头长度为20个字节,基本的IPv6报头长度为40个字节;
- 由于2层与4层的校验已经足够健壮,取消了IP的三层校验;
- 取消中间节点的分片功能,分片重组功能由源端实现,通过Path MTU机制来发现路径MTU。即,源节点在正式发送数据之前,使用ICMPv6来检测路径上最小的MTU;
- 增加流标签,提高QoS效率。