综述
IPv6,顾名思义,就是IP地址的第6版协议。我们现在用的是IPv4,你的外网地址可能是这样一串数字:59.123.123.123。IPv4的地址是32位,总数有43亿个左右,还要减去内网专用的192、170地址段,就更少了。而IPv6的地址是128位的,大概是43亿的4次方,地址极为丰富,几乎是取之不尽的。
IPv4的继承者就是IPv6
没有互联网协议就没有互联网,IPv4已经诞生了数十个年头,已经有点战不动的意思了。IPv4设计时采用的是32bit长度地址,理论上可以提供近2的32次方个也就是43亿个IP地址(实际可用的更少)。地球人口早已超越42亿,同时每人都不会仅需要一款上网设备,在这个互联网急速扩张的时代,就算IPv4每天凌晨四点起来练球,老迈的身躯也还是跟不上互联网的滚滚洪流。这时候,让IPv6接过IPv4的摊子,是件很顺理成章的事情。
优势
和IPv4相比,IPv6可谓优点多多,大致如下:
一,IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,即有232-1(符号表示升幂,下同)个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。
二,IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
三,IPv6增加了增强的组播(Multicast)支持以及对流的支持(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。
四,IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
五,IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,极大的增强了网络的安全性。
子网划分
如图所示,地址分为三大类:组播、单播、任意播(也称泛播);
单播可分为:全球单播地址(可理解为公网地址—IPv6)、本地链路地址、站点本地地址、回环地址、未指定地址、内嵌IPv4地址。
1.全球单播地址
前3bit 固定001;
地址范围:2xxx:xxxxx/3 - 3FFF: :FFFF;
2001::/16 IPV6因特网地址;
2002::/16 6to4过渡地址;
3ffe::/16 用于6bone测试目的的前缀;
注意:接口标识符:指64bit的MAC地址(未来网络适配器的MAC地址),或者是基于48bit MAC地址扩展为64bit(EUI 64)。在全球单播地址中,规定如2001:BCFF:FEA6::/48表示一个IPv6路由前缀,2001:BCFF:FEA6:6C01::/64表示一个IPv6子网前缀。
2.本地链路地址
固定前缀FE80::/10;当一个节点启用IPv6时自动生成,格式如下图,64位拓展由MAC地址按照EUI 64转换而来。
EUI-64格式:基于MAC地址自动构造;
例如:MAC地址为0012:3400:ABCD;
首先把MAC地址对半分开,插入一个固定值FFFE;
0012:3400:ABCD ----> 0012:34FF:FE00:ABCD;
再把第七位翻转:0----> 1, 1---->0
0012:34FF:FE00:ABCD ----> 0212:34FF:FE00:ABCD;
最后加上前缀:
FE80::212:34FF:FE00:ABCD;
3.本地站点地址
类似于IPv4中的私有地址,仅在内部网络使用,如打印机。
固定前缀FEC0::/10;
对于IPv6本地站点地址的配置,必须通过DHCPv6进行地址的分配、无状态的前缀公告、或者手工的进行输入。
4.唯一本地地址
ULA,唯一本地地址,概念上相当于私有IP,仅能够在本地网络使用,在IPv6 Internet上不可被路由。上面提到的站点本地地址由于起初的标准定义模糊而被弃用,而后RFC又重新定义了唯一本地地址以满足本地环境中私有IPv6地址的使用。
在RFC4193中标准化了一种用来在本地通信中取代站点本地单播地址的类型。ULA拥有固定前缀FC00::/7,分为两块:FC00::/8暂未定义,FD00::/8定义如下:
5.未指定地址
形式:0:0:0:0:0:0:0:0/128 --> ::/128;
表示地址未指定,或者在写默认路由时代表所有路由;
该地址作为某些报文的源IP地址,比如作为重复地址检测时DAD时发送的邻居请求报文的源地址,或者DHCPv6初始化过程中客户端所发送报文的源IP。
6.回环地址
形式:0:0:0:0:0:0:0:1;
同IPV4中127.0.0.1地址的含义一样,表示节点自已。
7.内嵌IPv4
映射IPV4的IPV6地址–仅用于拥有IPV4和IPV6双协议栈节点的本地范围
其中高80bit设为0,后16bit设为1,再跟IPV4地址
0000:0000:0000:0000:0000:ffff:206.123.31.2
0000:0000:0000:0000:0000:ffff:ce7b:1f01
8.组播地址(IPv6通信的核心)
前缀:FFxx::/8;
在IPV6中没有广播的概念,而是使用用组播来代替;因此IPv6中存在大量的组播使用。
标志位为0000表示是永久保留的组播地址,分配给各种技术使用;
标志位为0001表示是用户可使用的临时组播地址;
范围段定义了组播地址的范围,其定义如下:
二进制 十六进制 范围类型
0001 1 本地接口范围
0010 2 本地链路范围
0011 3 本地子网范围
0100 4 本地管理范围
0101 5 本地站点范围 类似组播的私网地址
1000 8 组织机构范围
1110 E 全球范围 类似组播的公网地址
下面是一些组播指定地址:
FF02::1 all nodes 在本地链路范围的所有节点
FF02::2 all routers 在本地链路范围的所有路由器
FF02::5 all ospf routers
FF02::9 all rip routers 所有运行RIP的路由器
FF02::A all eigrp routers 所有运行eigrp的路由器
FF05::2 在一个站点范围内的所有路由器