由于互联网的快速发展与普及,原有的IPV4地址已不能满足网络用户的需求,虽然NAT可以缓解IPV4地址的耗尽,但NAT破坏了网络环境的开放、透明以及端到端的特性,因此IPV6地址协议应运而生。IPV6协议使用128位地址替代32位的IPV4地址,这样大约可以产生340万亿亿亿亿(3.4*1038)个可用的地址。此数目可以满足公共IP地址需求。本文作为IPV6入门,主要介绍IPV6地址和IPV6报文格式相关内容。
IPV6优点
1、更大地址空间:128位的地址空间可以满足星球上每个人
2、无需NAT:保障端到端通信
3、没有广播地址:包括单播、多播、任意播
4、支持移动性和安全性:有助于确保遵循移动IP标准和Ipsec标准
5、更简单的报文提高了路由器的效率
6、接口标识:从接口的数据链路层
IPV6新特性
1、每个接口多个地址
2、链路本地地址:交换路由更新时,IGP将link-local地址作为下一跳地址
3、无状态自动配置:一个IPV6设备根据本身分配一个独特link-local IPV6的地址
4、独立或不独立于提供商的编址
IPV6地址
1、IPV6地址由128位组成,使用8个16位段来表示,每个16位段使用十六进制数字表示即每4个十六进制为一组,之间使用英文冒号:分开
2、格式为:x:x:x:x:x:x:x:x x代表4个十六进制位,举例:2035:0001:2BC5:0000:0000:087C:0000:000A
3、IPV6地址包括两部分:前缀+本地标识
4、前缀:通过在IPV6地址后面加一个斜线/,再跟一个十进制的数字来标识一个IPV6地址的起始位由多少位是前缀位,一般前缀为64位,如:3ffe:1994:100:a::/64
5、接口标识:从接口的数据链路层地址直接派生出接口标识,该标识是全局唯一。长度为64位,根据MAC地址动态创建。
6、特殊的IPV6地址如下表:
IPV6地址 | 描述 |
::/0 |
缺省路由 等同于IPV4 0.0.0.0 |
::/128 |
未指定地址 不能分配给真实的网络接口 |
::1/128 |
本地的环回地址 等同于IPV4的127.0.0.1 |
FE80::/10 |
链路本地单播地址 等同于Windows自动配置的IP地址169.254.x.x |
FF00::/8 |
组播地址 |
其他地址 |
全局单播地址 001(当前分配的)即:2xxx::/4或者3xxx::/4 其余的为未分配的全球单播地址 |
IPV6地址简写规则:
1、在4个十六进制位组成的字段中,可以省略前导0;如:09C0=9C0 0000=0
2、在每个地址中,可使用一对冒号(::)来表示任意数量的连续的0,;如:ff02:0000:0000:0000:0000:0000:0000:0005=ff02::5
注:一个地址中只能出现一对冒号,否则无法唯一确定地址
IPV6地址类型
地址类型 | 描述 |
单播 |
一个地址标识单个接口 发送给单播地址的分组将传输到该地址标识接口 |
多播 |
一个多播地址标识位于不同设备上的一组接口 发送给多播地址的分组将传输到该地址标识的所有接口 多播地址不会作为源地址出现 |
任意播 |
一个地址分配给多个接口 这些接口代表不同的节点 将分组发送到任意播组中最近接口(第一个邻居),其他情况根据路由协议的度量值确定 |
全球单播地址格式: 网络部分提供一台设备到下行专用数据链路的定位,主机部分提供这条数据链路上该设备的标识 。16位的子网ID字段可以提供65536(216)个不同的子网
全球路由选择前缀(48) |
子网ID(16) |
接口ID (64) |
本地单播地址:使用范围限定在单条链路上的地址。唯一性只在所在的链路有效,相同的地址也可能存在于另一条链路上,因此此地址离开所在的链路是不可路由的。链路本地单播地址的起始10位是1111111010(FE80::/10)
IPV6单播地址分配方法:
说明:每个接口只能有一个链路本地地址
仅仅配置一个全局单播地址也会在接口上创建一个链路本地地址(EUI-64)
接口上可以配置多个IPV6地址。IPV4和IPV6地址可以同时配置
以太网的接口ID是基于接口的48位MAC地址中间插入16位的0XFFFE
多播地址格式
多播前缀:8位 |
标记:4位 |
范围:4位 |
组ID:112 |
说明:标记位:前3位保留为0,第4位:0-永久的公认的地址;1-暂时的地址
范围:包括:节点本地-0X1、链路本地-0X2、地区本地-0X5、组织本地-0X8、全球-0XE、保留-0XF 0X0
组ID:前面80位设置为0,只使用后面的32位
常见的公认IPV6多播地址:都属于永久的链路本地的范围;
地址 |
多播组 |
FF02::1 |
所有的节点 |
FF02::2 |
所有的路由器 |
FF02::5 |
OSPFv3路由器 |
FF02::6 |
OSPFv3指定路由器 |
FF02::9 |
RIPng路由器 |
FF02::A |
EIGRP路由器 |
FF02::B |
移动代理 |
FF02::C |
DHCP服务器/中继代理 |
FF02::D |
所有的PIM路由器 |
IPV6包头格式
说明:
版本:4位,0110表明版本6
流量类别:8位,类似于IPV4中的TOS字段
流标签:20位,设置目的是允许为特定的业务流打上标签,可以提供更精细的服务类别区分的颗粒,在平衡业务流量通过多条路径时可以确保属于同一流的数据包能够总是转发到相同路径上,在发起一个数据包时,加上合适的流标签字段,路由器能够识别一条流,而不必一 一查找数据包头部,目前路由器忽略此字段
有效载荷长度:用来封装数据包所封装的有效载荷长度,IPV6数据包头部长度为40字节
下一报头:指出IPV6数据包头部后面的报头,与IPV4包中的协议字段类似
跳数限制:类似于IPV4中的TTL字段,衡量一个数据包到达目的地的路径中所能跨越的最大路由器跳数的工具
源地址和目的地址:128位长度
可选项:包含拓展报头,提供可选功能,如:分段、源路由选择或认证、目的地可选项、TCP/IP协议等,在下一个报文字段中是否有扩展报头
IPV6报头 |
路由选择扩展报头 |
分段扩展报头 |
认证扩展报头 |
上层协议报头 |
数据 |