Skip to content

ipv6

IPv6

2017-2-22 温家锦

IPv6 背景知识

为什么有 IPv6(IPv6 的最大特点)

Internet Protocol version 6 (IPv6)

IPv4 使用 32 位(4字节)地址:从 0.0.0.0255.255.255.255,一共有 $$2^{32}$$(大约 42 亿)。IANA把最后5个地址块分配给5个RIR,其主地址池在2011年2月3日耗尽。

IPv6 使用 128 位的地址,表达形式一般采用32个十六进制数,支持 $$2^{128}$$(约$$3.4 ×10^{38}$$)个地址。

IPv6的最大优势在于庞大的地址数量。

原作: http://xkcd.com/865/

IPv6 的其他优势

简化的报头和灵活的扩展

IPv4的报头长度是由IHL域来指定的,而 IPv6 的是固定40个字节。由于Internet上的绝大部分包都只是被路由器简单的转发,因此固定的报头长度有助于加快路由速度。与此同时,IPv6还定义了多种扩展报头,这使得IPv6变得极其灵活,能提供对多种应用的强力支持,同时又为以后支持新的应用提供了可能。

服务质量(Quality of Service,QoS)

基于IPv4的internet从原理上讲qos是无保证的。但其它多媒体业务,如ip电话、vod、电视会议等实时应用,对传输延时和延时抖动均有严格的要求。IPv6协议新增了流标记字段,使得业务可以根据不同的数据流进行更细的分类,实现优先级控制和QoS保障,极大地改善了IPv6的服务质量。

安全(IPSec)

为了加强 Internet的安全性,从1995年开始,IETF着手研究制定了一套用于保护IP通信的IP安全(IPSec)协议。IPSec是IPv4的一个可选扩展协议,但在IPv6中是一个必须组成部分。

IPSec 的主要功能是在网络层对数据分组提供加密和鉴别等安全服务,它提供了两种安全机制:认证和加密。认证机制使 IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭到改动。加密机制通过对数据进行编码来保证数据的机密性,以防数据在传输过程中被他人截获而失密。

自动配置以及重配置技术

IPv6引入自动配置以及重配置技术,对于IP地址等信息实现自动增删更新配置,提高IPv6的易管理性。

在 IPv4 中,动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)实现了主机IP地址及其相关配置的自动设置。一个DHCP服务器拥有一个IP地址池,主机从DHCP服务器租借IP地址,由此达到自动设置主机IP地址的目的。IPv6 IPv4的这种自动配置服务,并将其称为全状态自动配置(Stateful Autoconfiguration)。

在 IPv6 的无状态自动配置(Stateless Autoconfiguration)过程中,主机通过自己的 MAC 地址加上全球地址前缀生成一个 IPv6 地址,接着主机向该地址发出一个被称为邻居发现的请求,如果请求没有得到响应,则表明这个地址是唯一的。否则,主机将使用一个随机生成的新的地址。

在通常没有DHCP服务器的家庭网络,以及在移动环境中往往是临时建立的网络,无状态自动设定方法更为合适。

普及 IPv6 的障碍

吴建平反思国内IPv6发展:为何“起了个大早,赶了个晚集”

IPv6 技术简介

IPv6 地址格式

IPv6二进位制下为128位长度,以16位为一组,每组以冒号 : 隔开,可以分为8组,每组以4位十六进制方式表示:

2001:0DB8:02de:0000:0000:0000:0000:0e13

每项数字前导的0可以省略:

2001:DB8:2de:0:0:0:0:e13

可以用双冒号 :: 表示一组0或多组连续的0,但只能出现一次:

2001:0DB8::1428:57ab

IPv4位址可以很容易的转化为IPv6格式(IPv4映像地址):

IPv4: 135.75.43.52
IPv6: 0000:0000:0000:0000:0000:ffff:874B:2B34
IPv6: ::ffff:874B:2B34
IPv6: ::ffff:135.75.43.52

IPv6地址的分类

单播(unicast)地址

单播地址标示一个网络接口。协议会把送往地址的数据包送往给其接口。单播地址包括可聚类的全球单播地址、链路本地地址等。

任播(anycast)地址

Anycast是IPv6特有的数据发送方式,它像是IPv4的Unicast(单点传播)与Broadcast(多点广播)的综合。IPv4支持单点传播和多点广播,单点广播在来源和目的地间直接进行通信;多点广播存在于单一来源和多个目的地进行通信。

而Anycast则在以上两者之间,它像多点广播(Broadcast)一样,会有一组接收节点的地址栏表,但指定为Anycast的数据包,只会发送给距离最近或发送成本最低(根据路由表来判断)的其中一个接收地址,当该接收地址收到数据包并进行回应,且加入后续的传输。该接收列表的其他节点,会知道某个节点地址已经回应了,它们就不再加入后续的传输作业。

以目前的应用为例,Anycast地址只能分配给路由器,不能分配给电脑使用,而且不能作为发送端的地址。

多播(multicast)地址

多播地址也称组播地址。多播地址也被指定到一群不同的接口,送到多播地址的数据包会被发送到所有的地址。

前缀和特殊地址

CIDR

192.168.0.0/16 (255.240.0.0 = 11111111.11110000.00000000.00000000)

举例来说 192.168.0.0/16 是一个私有地址块,表示 ip 地址的前 16 个 Bit 要和 192.168.0.0 的前 16 个 Bit 相等,即 192.168.0.0 ~ 192.168.255.255

注:192.168.0.0 = 11000000.10101000.00000000.00000000

整个互联网现在都在使用CIDR网络地址。除此之外,CIDR也应用在其他方面,尤其是大型私人网络。

特殊地址

IPv6 CIDR 地址 含义
::/128 即0:0:0:0:0:0:0:0,只能作为尚未获得正式地址的主机的源地址,不能作为目的地址,不能分配给真实的网络接口
::1/128 即0:0:0:0:0:0:0:1,回环地址,相当于IPv4中的localhost(127.0.0.1),ping locahost可得到此地址
2001::/16 全球可聚合地址,由IANA按地域和ISP进行分配,是最常用的IPv6地址
2002::/16 6 to 4 地址,用于6to4自动构造隧道技术的地址
3ffe::/16 早期开始的IPv6 6bone试验网地址
e80::/10 本地链路地址,用于单一链路,适用于自动配置、邻机发现等,路由器不转发
ff00::/8 组播地址
::FFFF:A.B.C.D 用于兼容IPv4的IPv6地址

IPv6 和 IPv4 的兼容性

针对 IPv4 - IPv6 的过度问题,业界提出了很多不同的解决方案。在这里给出最重要的两个方案:

双栈策略

实现IPv6结点与IPv4结点互通的最直接的方式是在IPv6结点中加入IPv4协议栈。

具有双协议栈的结点称作“IPv6/v4结点”,这些结点既可以收发IPv4分组,也可以收发IPv6分组。

它们可以使用IPv4与IPv4结点互通,也可以直接使用IPv6与IPv6结点互通。

双栈技术不需要构造隧道,但后文介绍的隧道技术中要用到双栈。

隧道技术

在IPv6发展初期,必然有许多局部的纯IPv6网络,这些IPv6网络被IPv4骨干网络隔离开来,为了使这些孤立的“IPv6岛”互通,就采取隧道技术的方式来解决。

利用穿越现存IPv4因特网的隧道技术将许多个“IPv6孤岛”连接起来,逐步扩大IPv6的实现范围,这就是目前国际IPv6试验床6Bone的计划。

工作机理:在IPv6网络与IPv4网络间的隧道入口处,路由器将IPv6的数据分组封装入IPv4中,IPv4分组的源地址和目的地址分别是隧道入口和出口的IPv4地址。

在隧道的出口处再将IPv6分组取出转发给目的节点。

没有 IPv6 就不活了?

NAT(Network address translation)

首先,根据以下两则新闻,中国的智能手机保有量已经超过了中国拥有的 IPv4 地址数量。

记者27日从中国互联网络信息中心(CNNIC)获悉,截至2010年12月底,中国持有的IPv4地址数量为2.77亿个,目前运营商仍掌握部分IPv4地址可用。来源

2015年中国智能手机保有量为9.5亿台,据预测,2018年中国智能手机保有量将达到11.8亿台。来源

在 IPv6 普及之前,解决地址短缺问题的主要方法是 NAT。

IPv4地址是很有限的,给每台设备都分配一个固定的公有IP地址是很不现实的。因此我们可以采用这样的办法:首先建立一个内网,这个内网可大可小,小的可以是一台我们家里常用的无线路由器所形成的局域网,大了可以是某个片区内的“局域网”(比如多个住宅小区形成的一个内网)。

对于这样的内网,我们并不需要分配给其稀缺的公有地址IP,只需要用私有地址IP就行了(比如上面提到的http://10.0.xxx.xxx**),而一些网关设备,或者说运营商的设备由于数量并不是太多,因此可以分配一个公网IP地址,然后我们电脑所使用的内网IP地址通过NAT协议套用上一个公网地址IP,这样就可以实现一个稀缺的公网IP地址+多个内网IP地址来访问Internet了。其中DHCP协议则负责内网和公有IP地址的分配。

当然,NAT也让主机之间的通信变得复杂,导致通信效率的降低。

下面是一个 NAT 的例子:

内网IP 外网IP
192.168.1.55:5566 219.152.168.222:9200
192.168.1.59:80 219.152.168.222:9201
192.168.1.59:4465 219.152.168.222:9202

私有地址

所有私有 IPv4 地址

IP地址区段 分类网络说明 最大CIDR区块 (子网络遮罩)
10.0.0.0 – 10.255.255.255 单个A类网络 10.0.0.0/8 (255.0.0.0)
100.64.0.0 - 100.127.255.255 64个连续B类网络 100.64.0.0/10 (255.192.0.0)
172.16.0.0 – 172.31.255.255 16个连续B类网络 172.16.0.0/12 (255.240.0.0)
192.168.0.0 – 192.168.255.255 256个连续C类网络 192.168.0.0/16 (255.255.0.0)

举例来说:我的手机在移动网络下的 ip 地址为 10.1.47.21,属于私有网络 ip

reference

https://zh.wikipedia.org/wiki/IPv6

https://zh.wikipedia.org/wiki/%E6%97%A0%E7%B1%BB%E5%88%AB%E5%9F%9F%E9%97%B4%E8%B7%AF%E7%94%B1

https://www.6zou.net/tech/IPv6_IPv4-to-IPv6.html

https://en.wikipedia.org/wiki/6bone

http://blog.csdn.net/alone_map/article/details/51838261

http://blog.csdn.net/snlying/article/details/4238365

https://zh.wikipedia.org/wiki/%E7%BD%91%E7%BB%9C%E5%9C%B0%E5%9D%80%E8%BD%AC%E6%8D%A2

https://www.zhihu.com/question/20717354