1.IPv6简介
随着互联网的快速发展,IPv4地址变的越来越紧缺,即使有NAT技术来进行缓解,但是也只能缓解燃眉之急。同时,IPv4的报文头部设计的不合理,导致IPv4转发不具有安全性,头部字段太多且头部长度可变,导致转发效率低下。
IPv6有128个比特,几乎地球上的每一粒沙子都可以分配一个IPv6的地址,解决了IPv4地址不够用的问题。IPv6针对于报文头部也进行了调整优化,分为了基本头部和扩展头部。基本头部保留转发需要的必要信息,所以长度是固定的,为40个字节。剩余其他信息使用扩展头部来进行封装,提高了转发效率。
2.IPv6报文格式
IPv6头部字段只保留了转发需要的必要信息,同时增加了一个next header字段,通过此字段来判断是否有下一个扩展头部信息。数据在进行转发的时候,只需要读取基本包头即可。
version:版本信息
traffic class:流分类
flow label:流标签
payload lenth:长度
next header:下一个头部标识
hop limit:相当于IPv4中的TTL
sourece address:源IP
destination address:目的IP
extension header:扩展头部
3.IPv6地址的表示
IPv6地址共有共16个字节,也就是128比特。由于位数比较长,因此是用冒号分十六进制来表示的。128个比特分为了8段,每段16个比特,每段都用十六进制来表示,各段之间用冒号分开。例如:2001:0FCE:3F00:4C02:0000:0000:0001:0002,每段的最前面的0可以省略,可以缩写为:2001:FCE:3F:4C02:0:0:1:2,连续的段为0的时候,可以缩写为::,因此这个IPv6地址最简化的表示为2001:FCE:3F:4C02::1:2。双冒号在一个地址中只能出现一次。
4.IPv6地址分类
IPv6地址分为三大类,分别是单播、组播和任播。
4.1 单播地址
IPv6的单播地址又可以分为全球单播地址、链路本地地址、唯一本地地址、特殊地址等几大类,单播地址由网络前缀和接口标识组成,常见单播地址要求网络前缀和接口标识都是64位,其中::1/128为本地回环地址,::/128表示未分配地址。
接口标识生成的方式有三种,可以手工分配、自动获取、EUI-64生成。
EUI-64规范是指将MAC地址中间插入FFFE,并且将MAC地址的第7位即LG位变为1,例如:
MAC地址为:00e0-fc31-6f8e
插入FFFE:00e0-fcff-fe31-6f8e
LG位置为1:02e0-fcff-fe31-6f8e
全球单播地址
全球单播地址网段是2000::/3,范围2000——3FFF。全球单播地址用来标识唯一一台终端或者接口,它的地址格式如下:
唯一本地地址
唯一本地地址是私网地址,地址段是FC00::/7,目前只是用了FD00::/8,唯一本地地址只在内网中有效,不能跨越公网,公网中没有私网的路由。地址格式如下:
链路本地地址
链路本地地址的有效范围是本链路生效,