2018-10-23 17:20:55 来源:互联网
到2018年末,市场驱动的良性发展环境基本形成,IPv6活跃用户数达到2亿,在互联网用户中的占比不低于20%。
到2020年末,市场驱动的良性发展环境日臻完善,IPv6活跃用户数超过5亿,在互联网用户中的占比超过50%,新增网络地址不再使用私有IPv4地址。
到2025年末,我国IPv6网络规模、用户规模、流量规模位居世界第一位,网络、应用、终端全面支持IPv6,全面完成向下一代互联网的平滑演进升级。
由此可见,针对2018年底要求完成2亿活跃用户的目标,对于ISP、ICP都是一个很大的挑战。而且,对于国家机关的网站的IPv6迁移也是硬性指标。这给CDN市场带来了新机遇,有很大的机会为客户、潜在客户快速安全地实现IPv6业务合规上线和迁移。本文将为大家介绍IPv6的关键技术知识点。
IPv6地址
IPv4的地址长度为32位,地址空间为2的32次方,约42亿个(世界上平均3个人有2个IP地址)。
IPv6的地址长度为128位,地址空间为2的128次方,约3.4×10^38个。
IPv6地址的表示
IPv4地址表示
二进制:10101100 00010000 00000001 00000001
十进制:172.16.1.1
IPv6地址表示
十六进制:2001:0410:0000:0001:0000:0000:0000:45ff
IPv6地址与IPv4地址表示方法有所不同,用十六进制表示,4位一组,中间用“:”隔开。
IPv6地址的压缩表示
如图可见,地址中,以“0”开头的组,就可以省略0,而多个连续的全0字段,则通过“::”来压缩代替。
IPv6 地址 = 前缀 + 接口标识
其中,前缀相当于IPv4地址中的网络ID,接口标识则相当于IPv4地址中的主机ID。前缀长度就是和IPv4地址标识一样,采用/xx来表示,如:2001:da8:207::8207/64。
IPv6地址分类
单播地址(unicast address)
如同 IPv4 的Unicast模式,适用在单一节点对单一节点的数据传送。标识一个接口,目的地址为单播地址的报文会被送到被标识的接口。
这种类型的IPv6地址可区分为Global、Site-Local、Link-Local和IPv4-Compatible 4种型态。
下面针对这几种类型加以介绍:
Global 地址
前3bits为首码,内容固定是001,最后的64bits为接口标识(Interface ID)。Interface ID的功能如同IPv4的主机地址(Host ID)。
Site-Local 地址
前10bits为首码,内容固定为1111111011,间隔38bits的0之后,接着16bits 的子网地址(Subnet ID),最后才是 64bits的接口标识。
Link-Local 地址
也是用前10bits为首码,内容固定为1111111010,接着是连续54bits的0,最后的64bits也是接口标识。
IPv4-Compatible 地址
没有所谓的首码与接口标识,只有原本32bits的IPv4地址前面,加上96bits的0。
组播地址 (multicast address)
IPv6的组播整合了IPv4的Multicast及广播传送 (Broadcast),适用于单一节点对多节点的传送。标识多个接口,目的地址为组播地址的报文会被送到被标识的所有接口。
而4-bit的lifetime如果取值0,则为永久属性,而取值1,则为临时属性。
常见的组播地址有:
任播地址 (anycast address)
Anycast的特殊之处在于:一个Anycast地址可以被多个节点使用,但是传送给此地址的报文,并非真的将它送到这些节点来,而仅仅是送给距离最近或成本最低(根据路由表来判断)的一个节点。
以RFC4291的规定,目前的Anycast地址只能分配给路由器,不能分配给电脑使用,而且不能作为发送端的地址。这种IPv6地址的首码长度不固定,首码以外的位元都是0。
设备IPv6地址的设置方式
由前文可知,设备的后64bit的地址是和设备相关的。因此如何设置这64bit的地址段则就是设备相关的。
目前,共有4种设置方式:
通过EUI-64设置的
通过自动生成的伪随机数设置的
通过DHCPv6设置
手动设置
EUI-64
EUI-64就是通过设备的MAC地址来生成这64bit地址字段。而由于MAC地址是48bit,通过将48bit的MAC地址对分为两段,两段之间填入0xFFFE来补齐为64bit。
自动生成的伪随机数
针对EUI-64有可能造成的主机MAC地址和IPv6地址对应关系所引发的安全隐患,采用自动生成的伪随机数来规避的方法。
ICMPv6 和Neighbor Discovery
ICMPv6 是基于RFC 2463,相对于IPv4的ICMP的演进,基本的信令模式是类似的,但是信令的种类和code进行了变化。
ICMPv6,提供了以下信息的承载:
错误信息
提示类信息
MTU的路径探测
Neighbor Discovery
ICMPv6的错误信息
目标不可达 (ICMP packet type1)
目标不可达会通过解释码来告知不可达的原因:
o 0 - No route to destination
o 1 - Access is administratively prohibited
o 3 - Address unreachable
o 4 - Port unreachable
数据包太大 (ICMP packet type2)
说明数据包大于IPv6链路的MTU。由于IPv6不会根据MTU而将数据包分包,所以会通过ICMP信息通知源数据包大于MTU。
超时 (ICMP packet type3)
超出了跳数。
参数错 (ICMP packet type4)
同样的,有个解释码来告知原因:
o 0 - Erroneous header field
o 1 - Unrecognized next-header type
o 2 - Unrecognized IPv6 option
Neighbor Discovery
Neighbor Discovery Protocol提供了IPv6下设备使能的能力:
自动配置地址和地址前缀的发现
冲突地址的发现
MTU的发现
路由发现
地址解析
IPv6的路由器定期发送Router Advertisement (RA),来提示路由的存在和提供主机的配置信息。RA信息是ICMP type 134 信息,从发送路由器的单播地址作为源,目的地址是link-scope all-nodes的组播地址。RA设置255为跳数限制,而且不能发送到local link之外的网络。
主机通过RA来进行本机的路由配置,而主机也可以通过发送Router Solicitation( RS) 来请求RA 。
IPv6和DNS
相对于IPv4的DNS中,hostname到IP的解析,IPv6的DNS中,从host那么到IP的解析是什么样的呢?
IPv6中,相对于IPv4的A记录,是AAAA记录,比如:
AAAA record:
www.abc.test AAAA 2001:db8:C18:1::2
而IPv6中,相对于IPv4的PTR记录,其PTR就要长的多了:
PTR record:
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.8.1.c.0.
8.b.d.0.1.0.0.2.ip6.arpa PTR www.abc.test.
IPv6下的移动IP
RFC 3775将移动IPv6协议定义为:不管IPv6节点位于IPv6网络的何处以及与移动IPv6节点通信的其他节点是否支持移动IPv6,始终可以对IPv6节点进行访问。
移动IPv6从移动IPv4中借鉴了许多概念和术语,例如:
移动节点(MN)
家乡代理(HA)
家乡地址
家乡链路
转交地址
外地链路
移动IP的机制实现
当移动节点在家乡链路时,它与通信节点采用传统的路由方式进行通信。
当移动节点移动到外地链路,通过无状态自动配置或有状态自动配置转交地址。然后移动节点注册它的primary转交地址到家乡链路的一个路由器上,请求这个路由器充当它的家乡代理,这个过程称为“绑定”。移动节点通过发送“binding update”的消息,然后家乡代理回应“binding acknowledgement”来完成“绑定”过程。
在这样的场景下,移动节点可以有两种方式和通信节点进行通信:
【1】 双向隧道模式
通信节点不要求支持移动IPv6,也不需要移动节点和通信节点间绑定注册。通信节点不知道移动节点的转交地址,它就像向其他任何固定节点发送数据包那样向移 动节点发送数据包。通信节点只是将移动节点的家乡地址(它知道的唯一地址)放入目的IPv6地址域中,并将它自己的地址放在源IPv6地址域中,然后将数 据包进行转发。这样,数据包将被送往移动节点的家乡链路,就像移动IPv4中那样。在家乡链路上,家乡代理上使用“代理邻居协议”(proxy ND),截获这个数据包,然后把这个包作为净荷,在其上面再加上一层IPv6报头,把新的数据包发送到移动节点的转交地址,这个过程应用的是“隧道技术”。移动节点将送过来的包拆封,发现内层数据包的目的地是它的家乡地址,于是将内层数据包交给高层协议处理。从移动节点发往通信节点的从“反向隧道”发往家乡代理,然后按照传统的路由方式发送到移动节点。
【2】路由优化的通信模式
需要通信节点必须支持移动IPv6,而且移动节点注册了它的绑定连接到通信节点。当通信节点发送报文到移动节点时,首先从其绑定缓存中查找包含移动节点的 IP地址的条目,如果找到,则使用type 2 路由头来发送报文(报文的目的IP地址为移动节点的转交地址),type 2路由头里包含了移动节点的家乡地址,当报文到达移动节点的转交地址时,移动节点把路由头里的Home address作为报文最后的目的地址,然后移动节点判断报文的目的地址为自己的家乡地址,则将内层数据包交给高层协议处理。类似的,移动节点使用home address option来通知通信节点自己的家乡地址。路由优化消除了与双向隧道向关联的传输延迟。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。