当前位置:首页>技术文档
IPv6详解(二)
发布日期:2017-08-07浏览次数: 字号:[ ]

IPv6寻址

在 Internet 协议版本 6 (IPv6) 中,地址的长度是 128 位。地址空间如此大的一个原因是将可用地址细分为反映 Internet 的拓扑的路由域的层次结构。另一个原因是映射将设备连接到网络的网络适配器(或接口)的地址。IPv6 提供了内在的功能,可以在其最低层(在网络接口层)解析地址,并且还具有自动配置功能。 

文本表示形式

以下是用来将 IPv6 地址表示为文本字符串的三种常规形式: 

(一)冒号十六进制形式。

这是首选形式 n:n:n:n:n:n:n:n。每个 n 都表示八个 16 位地址元素之一的十六进制值。例如:

3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562.

(二)压缩形式。

由于地址长度要求,地址包含由零组成的长字符串的情况十分常见。为了简化对这些地址的写入,可以使用压缩形式,在这一压缩形式中,多个 0 块的单个连续序列由双冒号符号 (::) 表示。此符号只能在地址中出现一次。例如,多路广播地址 FFED:0:0:0:0:BA98:3210:4562 的压缩形式为 FFED::BA98:3210:4562。单播地址 3FFE:FFFF:0:0:8:800:20C4:0 的压缩形式为 3FFE:FFFF::8:800:20C4:0。环回地址 0:0:0:0:0:0:0:1 的压缩形式为 ::1。未指定的地址 0:0:0:0:0:0:0:0 的压缩形式为 ::。

(三)混合形式。

此形式组合 IPv4 和 IPv6 地址。在此情况下,地址格式为 n:n:n:n:n:n:d.d.d.d,其中每个 n 都表示六个 IPv6 高序位 16 位地址元素之一的十六进制值,每个 d 都表示 IPv4 地址的十进制值。 

地址类型

地址中的前导位定义特定的 IPv6 地址类型。包含这些前导位的变长字段称作格式前缀 (FP)。 

IPv6 单播地址被划分为两部分。第一部分包含地址前缀,第二部分包含接口标识符。表示 IPv6 地址/前缀组合的简明方式如下所示:ipv6 地址/前缀长度。 

以下是具有 64 位前缀的地址的示例。

3FFE:FFFF:0:CD30:0:0:0:0/64.

此示例中的前缀是 3FFE:FFFF:0:CD30。该地址还可以以压缩形式写入,如 3FFE:FFFF:0:CD30::/64。 

IPv6 定义以下地址类型: 

单播地址。用于单个接口的标识符。发送到此地址的数据包被传递给标识的接口。通过高序位八位字节的值来将单播地址与多路广播地址区分开来。多路广播地址的高序列八位字节具有十六进制值 FF。此八位字节的任何其他值都标识单播地址。

以下是不同类型的单播地址: 

链路-本地地址。这些地址用于单个链路并且具有以下形式:FE80::InterfaceID。链路-本地地址用在链路上的各节点之间,用于自动地址配置、邻居发现或未提供路由器的情况。链路-本地地址主要用于启动时以及系统尚未获取较大范围的地址之时。 

站点-本地地址。这些地址用于单个站点并具有以下格式:FEC0::SubnetID:InterfaceID。站点-本地地址用于不需要全局前缀的站点内的寻址。 

全局 IPv6 单播地址。这些地址可用在 Internet 上并具有以下格式:010(FP,3 位)TLA ID(13 位)Reserved(8 位)NLA ID(24 位)SLA ID(16 位)InterfaceID(64 位)。 

多路广播地址。一组接口的标识符(通常属于不同的节点)。发送到此地址的数据包被传递给该地址标识的所有接口。多路广播地址类型代替 IPv4 广播地址。

任一广播地址。一组接口的标识符(通常属于不同的节点)。发送到此地址的数据包被传递给该地址标识的唯一一个接口。这是按路由标准标识的最近的接口。任一广播地址取自单播地址空间,而且在语法上不能与其他地址区别开来。寻址的接口依据其配置确定单播和任一广播地址之间的差别。

通常,节点始终具有链路-本地地址。它可以具有站点-本地地址和一个或多个全局地址。 

IPv6路由

IPv6 的优点之一就是提供灵活的路由机制。由于分配 IPv4 网络 ID 所用的方式,要求位于 Internet 中枢上的路由器维护大型路由表。这些路由器必须知道所有的路由,以便转发可能定向到 Internet 上的任何节点的数据包。通过其聚合地址能力,IPv6 支持灵活的寻址方式,大大减小了路由表的规模。在这一新的寻址结构中,中间路由器必须只跟踪其网络的本地部分,以便适当地转发消息。

邻居发现

邻居发现提供以下一些功能: 

路由器发现。这允许主机标识本地路由器。

地址解析。这允许节点为相应的下一跃点地址解析链路层地址(替代地址解析协议 [ARP])。 

地址自动配置。这允许主机自动配置站点-本地地址和全局地址。 

邻居发现将 Internet 控制消息协议用于 IPv6 (ICMPv6) 消息,这些消息包括: 

路由器广告。在伪定期的基础上或响应路由器请求由路由器发送。IPv6 路由器使用路由器广告来公布其可用性、地址前缀和其他参数。

路由器请求。由主机发送,用于请求链路上的路由器立即发送路由器广告。 

邻居请求。由节点发送,以用于地址解析、重复地址检测,或用于确认邻居是否仍可访问。 

邻居广告。由节点发送,以响应邻居请求或通知邻居链路层地址中发生了更改。 

重定向。由路由器发送,从而为某一发送节点指示指向特定目标的更好的下一跃点地址。 

IPv6自动配置

IPv6 的一个重要目标是支持节点即插即用。也就是说,应该能够将节点插入 IPv6 网络并且不需要任何人为干预即可自动配置它。

自动配置的类型

 IPv6 支持以下类型的自动配置: 

全状态自动配置。此类型的配置需要某种程度的人为干预,因为它需要动态主机配置协议来用于 IPv6 (DHCPv6) 服务器,以便用于节点的安装和管理。DHCPv6 服务器保留它为之提供配置信息的节点的列表。它还维护状态信息,以便服务器知道每个在使用中的地址的使用时间长度以及该地址何时可供重新分配。

无状态自动配置。此类型配置适合于小型组织和个体。在此情况下,每一主机根据接收的路由器广告的内容确定其地址。通过使用 IEEE EUI-64 标准来定义地址的网络 ID 部分,可以合理假定该主机地址在链路上是唯一的。

不管地址是采用何种方式确定的,节点都必须确认其可能地址对于本地链路是唯一的。这是通过将邻居请求消息发送到可能的地址来实现的。如果节点接收到任何响应,它就知道该地址已在使用中并且必须确定其他地址。

IPv6 移动性

移动设备的迅速普及带来了一项新的要求:设备必须能够在 IPv6 Internet 上随意更改位置但仍维持现有连接。为提供此功能,需要给移动节点分配一个本地地址,通过此地址总可以访问到它。在移动节点位于本地时,它连接到本地链路并使用其本地地址。在移动节点远离本地时,本地代理(通常是路由器)在该移动节点和正与其进行通信的节点之间传递消息。 

IPv6的安全性问题

现实Internet上的各种攻击、黑客、网络蠕虫病毒弄得网民人人自危,每天上网开了实时防病毒程序还不够,还要继续使用个人防火墙,打开实时防木马程序才敢上网冲浪。诸多人把这些都归咎于IPv4网络。现在IPv6来了,它设计的时候充分研究了以前IPv4的各种问题,在安全性上得到了大大的提高。但是是不是IPv6就没有安全问题了?答案是否定的。 

目前,病毒和互联网蠕虫是最让人头疼的网络攻击行为。但这种传播方式在IPv6的网络中就不再适用了,因为IPv6的地址空间实在是太大了,如果这些病毒或者蠕虫还想通过扫描地址段的方式来找到有可乘之机的其他主机,就犹如大海捞针。在IPv6的世界中,对IPv6网络进行类似IPv4的按照IP地址段进行网络侦察是不可能了。

所以,在IPv6的世界里,病毒、互联网蠕虫的传播将变得非常困难。但是,基于应用层的病毒和互联网蠕虫是一定会存在的,电子邮件的病毒还是会继续传播。此外,还需要注意IPv6网络中的关键主机的安全。IPv6中的组发地址定义方式给攻击者带来了一些机会。例如,IPv6地址FF05::3是所有的DHCP服务器,就是说,如果向这个地址发布一个IPv6报文,这个报文可以到达网络中所有的DHCP服务器,所以可能会出现一些专门攻击这些服务器的拒绝服务攻击。

IPv4到IPv6的过渡技术

另外,不管是IPv4还是IPv6,都需要使用DNS,IPv6网络中的DNS服务器就是一个容易被黑客看中的关键主机。也就是说,虽然无法对整个网络进行系统的网络侦察,但在每个IPv6的网络中,总有那么几台主机是大家都知道网络名字的,也可以对这些主机进行攻击。而且,因为IPv6的地址空间实在是太大了,很多IPv6的网络都会使用动态的DNS服务。而如果攻击者可以攻占这台动态DNS服务器,就可以得到大量的在线IPv6的主机地址。另外,因为IPv6的地址是128位,很不好记,网络管理员可能会常常使用一下好记的IPv6地址,这些好记的IPv6地址可能会被编辑成一个类似字典的东西,病毒找到IPv6主机的可能性小,但猜到IPv6主机的可能性会大一些。而且由于IPv6和IPv4要共存相当长一段时间,很多网络管理员会把IPv4的地址放到IPv6地址的后32位中,黑客也可能按照这个方法来猜测可能的在线IPv6地址。所以,对于关键主机的安全需要特别重视,不然黑客就会从这里入手从而进入整个网络。所以,网络管理员在对主机赋予IPv6地址时,不应该使用好记的地址,也要尽量对自己网络中的IPv6地址进行随机化,这样会在很大程度上减少这些主机被黑客发现的机会。

以下这些网络攻击技术,不管是在IPv4还是在IPv6的网络中都存在,需要引起高度的重视:报文侦听,虽然IPv6提供了IPSEC最为保护报文的工具,但由于公匙和密匙的问题,在没有配置IPsec的情况下,偷看IPv6的报文仍然是可能的;应用层的攻击,显而易见,任何针对应用层,如WEB服务器,数据库服务器等的攻击都将仍然有效;中间人攻击,虽然IPv6提供了IPsec,还是有可能会遭到中间人的攻击,所以应尽量使用正常的模式来交换密匙;洪水攻击,不论在IPv4还是在IPv6的网络中,向被攻击的主机发布大量的网络流量的攻击将是会一直存在的,虽然在IPv6中,追溯攻击的源头要比在IPv4中容易一些。 

IPv4到IPv6的过渡技术

由于Internet的规模以及目前网络中数量庞大的IPv4用户和设备,IPv4到v6的过渡不可能一次性实现。而且,目前许多企业和用户的日常工作越来越依赖于Internet,它们无法容忍在协议过渡过程中出现的问题。所以IPv4到v6的过渡必须是一个循序渐进的过程,在体验IPv6带来的好处的同时仍能与网络中其余的IPv4用户通信。能否顺利地实现从IPv4到IPv6的过渡也是IPv6能否取得成功的一个重要因素。

实际上,IPv6在设计的过程中就已经考虑到了IPv4到IPv6的过渡问题,并提供了一些特性使过渡过程简化。例如,IPv6地址可以使用IPv4兼容地址,自动由IPv4地址产生;也可以在IPv4的网络上构建隧道,连接IPv6孤岛。目前针对IPv4-v6过渡问题已经提出了许多机制,它们的实现原理和应用环境各有侧重,这一部分里将对IPv4-v6过渡的基本策略和机制做一个系统性的介绍。

在IPv4-v6过渡的过程中,必须遵循如下的原则和目标:

?保证IPv4和IPv6主机之间的互通;

?在更新过程中避免设备之间的依赖性(即某个设备的更新不依赖于其它设备的更新);

?对于网络管理者和终端用户来说,过渡过程易于理解和实现;

?过渡可以逐个进行;

?用户、运营商可以自己决定何时过渡以及如何过渡。

主要分三个方面:IP层的过渡策略与技术、链路层对IPv6的支持、IPv6对上层的影响

对于IPV4向IPV6技术的演进策略,业界提出了许多解决方案。特别是IETF组织专门成立了一个研究此演变的研究小组NGTRANS,已提交了各种演进策略草案,并力图使之成为标准。纵观各种演进策略,主流技术大致可分如下几类:

双栈策略

实现IPv6结点与IPv4结点互通的最直接的方式是在IPv6结点中加入IPv4协议栈。具有双协议栈的结点称作“IPv6/v4结点”,这些结点既可以收发IPv4分组,也可以收发IPv6分组。它们可以使用IPv4与IPv4结点互通,也可以直接使用IPv6与IPv6结点互通。双栈技术不需要构造隧道,但后文介绍的隧道技术中要用到双栈。 IPv6/v4结点可以只支持手工配置隧道,也可以既支持手工配置也支持自动隧道。

隧道技术

在IPV6发展初期,必然有许多局部的纯IPV6网络,这些IPV6网络被IPV4骨干网络隔离开来,为了使这些孤立的“IPV6岛”互通,就采取隧道技术的方式来解决。利用穿越现存IPV4因特网的隧道技术将许多个“IPV6孤岛”连接起来,逐步扩大IPV6的实现范围,这就是目前国际IPV6试验床6Bone的计划。

工作机理:在IPV6网络与IPV4网络间的隧道入口处,路由器将IPV6的数据分组封装入IPV4中,IPV4分组的源地址和目的地址分别是隧道入口和出口的IPV4地址。在隧道的出口处再将IPV6分组取出转发给目的节点。

隧道技术在实践中有四种具体形式:构造隧道、自动配置隧道、组播隧道以及6to4。

TB(Tunnel Broker,隧道代理)

对于独立的v6用户,要通过现有的IPv4网络连接IPv6网络上,必须使用隧道技术。但是手工配置隧道的扩展性很差,TB的主要目的就是简化隧道的配置,提供自动的配置手段。对于已经建立起IPv6的ISP来说,使用TB技术为网络用户的扩展提供了一个方便的手段。从这个意义上说,TB可以看作是一个虚拟的IPv6 ISP,它为已经连接到IPv4网络上的用户提供连接到IPv6网络的手段,而连接到IPv4网络上的用户就是TB的客户。

双栈转换机制(DSTM)

DSTM的目标是实现新的IPv6网络与现有的IPv4网络之间的互通。使用DSTM,IPv6网络中的双栈结点与一个IPv4网络中的IPv4主机可以互相通信。DSTM的基本组成部分包括:

?DHCPv6服务器,为IPv6网络中的双栈主机分配一个临时的IPv4全网唯一地址,同时保留这个临时分配的IPv4地址与主机IPv6永久地址之间的映射关系,此外提供IPv6隧道的隧道末端(TEP)信息;

?动态隧道端口DTI:每个DSTM主机上都有一个IPv4端口,用于将IPv4报文打包到IPv6报文里;

?DSTM Deamon:与DHCPv6客户端协同工作,实现IPv6地址与IPv4地址之间的解析。

协议转换技术

其主要思想是在V6节点与V4节点的通信时需借助于中间的协议转换服务器,此协议转换服务器的主要功能是把网络层协议头进行V6/V4间的转换,以适应对端的协议类型。

优点:能有效解决V4节点与V6节点互通的问题。

缺点:不能支持所有的应用。这些应用层程序包括:① 应用层协议中如果包含有IP地址、端口等信息的应用程序,如果不将高层报文中的IP地址进行变换,则这些应用程序就无法工作,如FTP、STMP等。② 含有在应用层进行认证、加密的应用程序无法在此协议转换中工作。

SOCKS64

一个是在客户端里引入SOCKS库,这个过程称为“socks化”(socksifying),它处在应用层和socket之间,对应用层的socket API和DNS名字解析API进行替换;

另一个是SOCKS网关,它安装在IPv6/v4双栈结点上,是一个增强型的SOCKS服务器,能实现客户端C和目的端D之间任何协议组合的中继。当C上的SOCKS库发起一个请求后,由网关产生一个相应的线程负责对连接进行中继。SOCKS库与网关之间通过SOCKS(SOCKSv5)协议通信,因此它们之间的连接是“SOCKS化”的连接,不仅包括业务数据也包括控制信息;而G和D之间的连接未作改动,属于正常连接。D上的应用程序并不知道C的存在,它认为通信对端是G。

传输层中继(Transport Relay)

与SOCKS64的工作机理相似,只不过是在传输层中继器进行传输层的“协议翻译”,而SOCKS64是在网络层进行协议翻译。它相对于SOCKS64,可以避免“IP分组分片”和“ICMP报文转换”带来的问题,因为每个连接都是真正的IPV4或IPV6连接。但同样无法解决网络应用程序数据中含有网络地址信息所带来的地址无法转换的问题。

应用层代理网关(ALG)

ALG是Application Level Gateway的简称,与SOCKS64、传输层中继等技术一样,都是在V4与V6间提供一个双栈网关,提供“协议翻译”的功能,只不过ALG是在应用层级进行协议翻译。这样可以有效解决应用程序中带有网络地址的问题,但ALG必须针对每个业务编写单独的ALG代理,同时还需要客户端应用也在不同程序上支持ALG代理,灵活性很差。显然,此技术必须与其它过渡技术综合使用,才有推广意义。

过渡策略总结

双栈、隧道是主流

所有的过渡技术都是基于双栈实现的

不同的过渡策略各有优劣、应用环境不同

网络的演进过程中将是多种过渡技术的综合

根据运营商具体的网络情况进行分析

由不同的组织或个人提出的IPV4向IPV6平滑过渡策略技术很多,它们都各有自己的优势和缺陷。因此,最好的解决方案是综合其中的几种过渡技术,取长补短,同时,兼顾各运营商具体的网络设施情况,并考虑成本的因素,为运营商设计一套适合于他自己发展的平滑过渡解决方案。 

IPv6测试

IPv6产品经过测试,获得“IPv6 Ready”Logo,即表明该产品是业界公认的支持.

IPv6 Ready:Phase I 第一阶段

基本测试(RFC2460, 2461, 2462, 2463)

测试对象:主机,路由器,交换机,应用终端,系统软件,特殊设备通告设备、服务的互通性和一致性情况

IPv6 Ready:Phase II 第二阶段

Phase II面向专业应用, 增加Core,IPsec,MIPv6等增强特性的测试,根据IPv6技术标准检查和确保设备与服务的互通性和一致性.

Core测试

RFC: 1981,2460,2461,2462,2463 

测试对象:主机,路由器

IPsec测试

RFC: 1829,1851,2401,2403,2404,2405,2406,2410,3566,3602

测试对象: End-Node(终端节点),SGW(信令网关)

MIPv6测试

RFC: 3775,3776

测试对象: MN(移动节点),CN(通信节点),HA(家乡代理)

NEMO测试

RFC:3963,3775

测试对象:家乡代理和移动路由器

DHCPv6测试

RFC:3315,3646,3736 

测试对象:客户端、服务器和中继代理 

SIP测试

RFC: 3261,3264,4566,2617,3665

测试对象:SIP服务器和SIP UA

【打印本页】 【关闭本页】