天天看点

下一代IP协议-----IPV6

1.基本概念

IPV6是英文“Internet Protocol Version 6”的缩写,即互联网协议第6版,是互联网工程任务组(IETF)设计的用于代替IPV4的下一代IP协议。

由于IPv4最大的问题在于网络地址资源不足,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍

2.表示方法

我们知道ipv4的地址长度是32位,用点分十进制表示的(192.168.0.1)。即有232个。ipv6的地址长度是128位,采用的是16进制表示,即有2^128个,有3种表示方法。

冒分十六进制表示法

格式为X:X:X:X:X:X:X:X 即8组16位写入。每个组包含4个十六进制数字(16位)。

例如:abcd:0000:1111:2222:1357:2468:5555:6789

这种表示法中,每组的前导0是可以省略的。

例如:2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A

0位压缩表示法

有些IPv6地址中间可能包含很长一段的0,可以把连续一段0压缩为"::"。但是为了保证地址解析的唯一性,地址中“::“,只能出现一次。

例如:FF01:0:0:0:0:0:0:1101 → FF01::1101     0:0:0:0:0:0:0:1 → ::1     0:0:0:0:0:0:0:0 → ::

内嵌IPv4地址表示法

为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,前96b采用冒分十六进制表示,而最后32b地址则使用IPv4的点分十进制表示。

例如:::ABCD:192.168.0.1     ::192.168.0.1      1234:5678:abcd:9012:ef12:ed12:192.168.0.1

3.地址分类

ipv6的地址划分可分为单播、组播、任意播。相比ipv4新增了任意播类型,取消了ipv4中的广播地址,因为ipv6中的广播功能可以通过组播完成。

下一代IP协议-----IPV6

单播地址

用来唯一标识一个接口,类似于IPv4中的单播地址。发送到单播地址的数据报文将被传送给此地址所标识的一个接口。

IPv6单播地址与IPv4单播地址一样,都只标识了一个接口。为了适应负载平衡系统,RFC3513允许多个接口使用同一个地址,只要这些接口作为主机上实现的IPv6的单个接口出现。单播地址包括四个类型:全局单播地址、本地单播地址、兼容性地址、特殊地址。

全局单播地址

等同于IPv4中的公网地址,可以在IPv6 Internet上进行全局路由和访问。这种地址类型允许路由前缀的聚合,从而限制了全球路由表项的数量。

下一代IP协议-----IPV6

前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子网前缀(即:给用户分发的子网掩码)

本地单播地址

链路本地地址和唯一本地地址都属于本地单播地址,在IPv6中,本地单播地址就是指本地网络使用的单播地址,也就是IPV4地址中局域网专用地址。每个接口上至少要有一个链路本地单播地址,另外还可分配任何类型(单播、任播和组播)或范围的IPv6地址。

链路本地地址(终端自动生成)

固定前缀FE80::/10;当一个节点启用IPv6时自动生成,格式如下图,64位拓展由MAC地址按照EUI 64转换而来。

下一代IP协议-----IPV6

EUI-64格式:基于MAC地址自动构造;

例如:MAC地址为0012:3400:ABCD;

首先把MAC地址对半分开,插入一个固定值FFFE;

0012:3400:ABCD ----> 0012:34FF:FE00:ABCD;

再把第七位翻转:0----> 1, 1---->0 (从左到右数到第7位)

0012:34FF:FE00:ABCD ----> 0212:34FF:FE00:ABCD;

最后加上前缀:FE80::212:34FF:FE00:ABCD

本地站点地址:类似于IPV4中的私有地址,仅在内部网络使用。

下一代IP协议-----IPV6

固定前缀FEC0::/10;

对于IPv6本地站点地址的配置,必须通过DHCPv6进行地址的分配、无状态的前缀公告、或者手工的进行输入。

唯一本地地址:ULA,唯一本地地址,概念上相当于私有IP,仅能够在本地网络使用,在IPv6 Internet上不可被路由。上面提到的站点本地地址由于起初的标准定义模糊而被弃用,而后RFC又重新定义了唯一本地地址以满足本地环境中私有IPv6地址的使用。

在RFC4193中标准化了一种用来在本地通信中取代站点本地单播地址的类型。ULA拥有固定前缀FC00::/7,分为两块:FC00::/8暂未定义,FD00::/8定义如下:

下一代IP协议-----IPV6

兼容性地址

在IPv6的转换机制中还包括了一种通过IPv4路由接口以隧道方式动态传递IPv6包的技术。这样的IPv6结点会被分配一个在低32位中带有全球IPv4单播地址的IPv6全局单播地址。另有一种嵌入IPv4的IPv6地址,用于局域网内部,这类地址用于把IPv4结点当作IPv6结点。此外,还有一种称为“6to4”的IPv6地址,用于在两个通过Internet同时运行IPv4和IPv6的结点之间进行通信。

映射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。

特殊地址

未指定地址:形式:0:0:0:0:0:0:0:0/128 --> ::/128;

表示地址未指定,或者在写默认路由时代表所有路由;该地址作为某些报文的源IP地址,比如作为重复地址检测时DAD时发送的邻居请求报文的源地址,或者DHCPv6初始化过程中客户端所发送报文的源IP。

未指定地址(0:0:0:0:0:0:0:0或::)仅用于表示某个地址不存在。它等价于IPv4未指定地址0.0.0.0。未指定地址通常被用做尝试验证暂定地址唯一性数据包的源地址,并且永远不会指派给某个接口或被用做目标地址。

回环地址:形式:0:0:0:0:0:0:0:1;

用于标识环回接口,允许节点将数据包发送给自己。它等价于IPv4环回地址127.0.0.1。发送到环回地址的数据包永远不会发送给某个链接,也永远不会通过IPv6路由器转发 。

组播地址

IPv6组播地址可识别多个接口,对应于一组接口的地址(通常分属不同节点)。发送到组播地址的数据包被送到由该地址标识的每个接口。使用适当的组播路由拓扑,将向组播地址发送的数据包发送给该地址识别的所有接口。任意位置的IPv6节点可以侦听任意IPv6组播地址上的组播通信。IPv6节点可以同时侦听多个组播地址,也可以随时加入或离开组播组。 IPv6组播地址的最明显特征就是最高的8位固定为1111 1111。IPv6地址很容易区分组播地址,因为它总是以FF开始的 。

前缀:FFxx::/8;

在IPV6中没有广播的概念,而是使用用组播来代替;因此IPv6中存在大量的组播使用。

下一代IP协议-----IPV6

标志位为0000表示是永久保留的组播地址,分配给各种技术使用;

标志位为0001表示是用户可使用的临时组播地址;

范围段定义了组播地址的范围,其定义如下:

二进制 十六进制 范围类型

0001 1 本地接口范围

0010 2 本地链路范围

0011 3 本地子网范围

0100 4 本地管理范围

0101 5 本地站点范围 类似组播的私网地址

1000 8 组织机构范围

1110 E 全球范围 类似组播的公网地址

任意播地址