IPv6地址应用研究

2013-02-28 03:04陈仲华沈成彬
电信科学 2013年1期
关键词:多播网关分配

陈仲华,沈成彬

(中国电信股份有限公司上海研究院 上海200122)

1 引言

随着Internet技术的广泛应用,作为其基础的IPv4地址资源日渐匮乏,全球IPv4地址分布的不均衡性加重了地址需求的矛盾,使部分地区的IPv4地址提前出现短缺的局面。近期新兴的物联网应用又增加了对IP地址的需求,这更加速了IPv4地址的消耗。虽然目前IPv4技术领域出现了诸如运营商NAT、RSIP等技术,改善了目前IPv4公网地址短缺的现状,但这些技术没有从根本上解决地址短缺的问题,同时此类技术的使用又引入了NAT穿透等众多问题,有较大的局限性。因此,部署基于IPv6技术的下一代互联网成为彻底改变IP地址短缺情况的唯一技术手段。IPv6具有海量地址空间,可以满足未来互联网发展和新兴物联网发展的需要,但IPv6是一项与IPv4技术完全不同的技术,其地址结构、定义、地址分配方式与IPv4地址完全不同,从IPv4地址的应用和管理到IPv6地址的应用和管理还有许多问题需要研究。

2 IPv6地址格式简析

IPv6地址分为单播地址、多播地址和任播地址。

(1)单播地址

大家所熟悉的IPv4地址是采用点分十进制数的形式表示的,即D.D.D.D,其中D为不大于255的正整数,例如192.168.10.1,这样IPv4就拥有超过40亿个地址。

与IPv4地址组成形式不同,IPv6地址采用冒号分割8个4位十六进制数,即X:X:X:X:X:X:X:X,其中X表示一个4位的十六进制数,例如:2001:000C:0000:0000:0022:FAFF:FE8E:8072。

图1 根据主机物理地址生成接口地址方式

与IPv4地址分为网络号(子网号)和主机号的思想类似,IPv6地址也可以分为两部分,即地址前缀和接口地址。在实际应用中,IPv6地址的前缀由于要参与路由,通常由网络决定。而IPv6地址的后缀则有多种生成方式。

最常用的一种生成方式是根据主机设备的物理层地址生成,称为EUI-64算法。其过程如图1所示。

主机自身的MAC地址分为两部分,即设备厂商标识和设备标识,在生成IPv6接口地址时,主机将厂商标识和设备标识分开,并在中间插入FFFE,同时物理地址的第一字节的右边第二位如果为0,则将该位变为1,这样就构成了主机IPv6接口地址,这样的接口地址可以简化IPv6和物理地址的映射关系,使链路层的通信更加方便。

另一种接口地址采用IPv4地址嵌入的方式生成,其接口地址格式为:X:X:X:X:D.D.D.D。其中X为4位十六进制数,D为小于255的十进制数,X可以随机生成,而D则根据主机当前使用的IPv4地址直接生成。这种地址嵌入了主机当前的IPv4地址,有利于实现IPv4与IPv6的兼容。

此外,IPv6接口地址还可以通过各种随机方式生成,但无论采用何种方式,生成的IPv6地址都必须经过地址冲突检测,才能够正式在网络上使用,以防止在同一子网络内产生地址冲突。

从目前业内的设备支持情况看,对于单播地址中接口地址的生成方式,一般都会采用EUI-64的算法,生成接口地址。由于这一算法的广泛部署(几乎所有的操作系统都支持这种算法生成接口地址),IPv6地址从本质上来将被人为地分成了前64 bit和64 bit两个部分。从网络侧地址管理的角度来看,IPv6地址的管理实际上已经演变成为对IPv6地址前缀的管理。

图2 IPv6多播地址格式

(2)多播地址

在IPv6中多播取代了IPv4中的广播功能,IPv6多播地址的划分比IPv4更严格,同时对于多播功能的支持也更完善。IPv6多播地址的格式如图2所示。

多播地址以FF开头,之后的4个比特位为标志位,再之后的4个比特位标识多播的有效范围,其后的112 bit标识多播组的ID。标志位的主要功能是表示该多播是否为一个全球公开的多播组,同时还提供了不同多播域之间进行信息交互的标志。范围标识表示该多播组的有效范围是本地链路,还是一个预先设定的管理域,抑或是全球范围。多播组编号则表示了这个多播组的身份,有需要的节点可以通过组编号加入这个多播组中。

IPv6多播的应用程度远胜于IPv4多播,在IPv6协议族中,并不存在类似于IPv4中的ARP/RARP一类的二层地址解析协议以及ARP/RARP以来的广播方式。取而代之的是,在IPv6网络中二层地址的解析依赖于IPv6的多播。例如,一台IPv6主机需要查询本地网络中是否已经有主机使用与其相同的IPv6地址时,它将通过多播地址FF02::2发送这个请求。

(3)任播地址

任播地址可以看作一组特殊的单播地址,它分配给一系列的节点,在转发去往该地址的数据时,路由器将根据这些节点的路由距离大小转发到其中的一个最佳节点,从而完成负载均衡、节点冗余等功能。

3 IPv6地址的分配方式

在IPv6技术的实际使用中,由于IPv6拥有海量地址空间,分配和管理这一海量地址空间的难度要远远大于IPv4的地址管理难度。因此,根据实际使用的需要出现了一些新的地址分配方式。目前IPv6技术中有3种主流的地址分配方式,可以适应不同应用场合的需要。

图3 无状态地址分配过程

(1)无状态地址分配

无状态地址分配(NDRA)是IPv6中特有的地址分配方式,其基本思想是网络侧不管理IPv6地址的状态,包括节点应该使用什么样的地址、地址的有效期有多长,且基本不参与地址的分配过程。其具体的分配过程如图3所示。

节点设备连接到网络中后,将自动选择接口地址(通过算法生成IPv6地址的后64 bit),并加上FE80的前缀地址,作为节点的本地链路地址,本地链路地址只在节点与邻居之间的通信有效,路由器设备将不路由以该地址为源地址的数据分组。在生成本地链路地址后,节点将进行DAD(地址冲突检测),检测该接口地址是否有邻居节点已经使用,如果节点发现地址冲突,则无状态地址分配过程将终止,节点将等待手工配置IPv6地址。如果在检测定时器超时后仍没有发现地址冲突,则节点认为该接口地址可以使用,此时终端将发送路由期前缀通告请求,寻找网络中的路由设备,当网络中配置的路由设备接收到该请求,则将发送地址前缀通告响应,将节点应该配置的IPv6地址前64 bit的地址前缀通告给网络节点,网络节点将地址前缀与接口地址组合,构成节点自身的全球IPv6地址。

无状态地址分配是一种简化IPv6海量地址分配复杂程度的技术,通过使用该技术可以做到节点连接网络的即插即用。在实际应用中接口地址的生成可以由多种算法生成。同时,也可以由网络侧根据接入节点的身份认证信息为节点指定固定的接口地址。

(2)有状态地址分配

有状态的地址分配(DHCPv6)技术,类似于IPv4时的DHCPv4技术,节点接入网络后将发起地址请求的多播,网络中的DHCP服务器接收到该多播后,为节点动态分配IPv6的地址。同时,DHCP服务器需要管理节点IPv6地址的使用有效期。与DHCPv4类似,DHCPv6协议也可以携带节点身份认证的选项参数,根据节点身份的认证结果为节点分配指定的IPv6地址。

(3)基于地址前缀代理的分配

基于地址前缀代理的分配(DHCP-PD)方式是一种层次化分配IPv6地址的方式。该方式允许网络中的网关设备将IPv6地址的前缀以层次化的方式分配给下一级的接入网关设备,其过程如图4所示。

图4 DHCP PD地址分配过程

以图4为例,网络接入设备(可以是接入路由器或BRAS设备)收到用户侧网关设备发起的携带有前缀代理选项的DHCP请求时,将下发一个携带56 bit前缀地址长度的DHCP响应分组,通知用户侧网关网络已将该56 bit地址前缀批发给用户网关。用户网关在获得该56 bit地址前缀之后可以自主选择为终端分配该网络内的任意64 bit的子网络号作为终端的前缀地址,并通过无状态地址分配的方式分配给终端使用。也可以选择将这56 bit的地址前缀再分割成小于64 bit的前缀地址长度,以DHCP-PD方式批发给下一级网关使用。

4 几种地址分配方式的比较

在IPv6网络中,地址的分配和管理难度要远大于IPv4网络,这不仅由于IPv6庞大的地址空间,使得网络侧如果直接维护所有地址状态(类似于DHCPv4方式),将给网络侧的地址分配和管理系统造成巨大的性能压力,同时也是因为IPv6技术本身更关注于地址的移动性。因此,从3种地址分配的方式看,各有其优点和劣势。

(1)无状态地址分配方式

其优点在于网络侧只需要管理地址前缀的分配,网络侧自动将网络前缀的分配情况通过RA(router advertisment,路由器通告)告知终端,终端获得地址前缀之后,就能够根据自身算法获得全局唯一的IPv6地址,网络侧由于不需要管理终端地址,因此其地址分配和管理的性能压力几乎没有。同时,无状态地址分配方式特别适合移动网络场景,当终端在不同基站和业务接入点设备间移动时,只需要接收路由设备的RA报文,即可以更换自身的IPv6地址,以满足报文路由的需要。

(2)DHCPv6地址分配方式

DHCPv6地址分配方式沿用原有IPv4网络的DHCPv4地址分配方式,这一分配方式采用与原有DHCPv4一样的C/S协议架构,因此虽然协议报文结构与DHCPv4差异较大,但是DHCPv6在实际部署中,仍然具有很好的兼容性。同时,DHCPv6协议在功能上也较DHCPv4协议有所提升,例如DHCPv6协议可以由网络侧DHCP服务器主动要求终端释放地址,而不像DHCPv4协议,网络侧只能够等待终端地址租期到期,才能够通过续租失败来迫使终端释放地址,这个功能目前看来,IPoE接入场景下,对于IP地址的管控有着很明显的优势。但是,由于DHCPv6需要在网络侧对地址进行集中的管理,包括地址使用的有效期检测等,因此对于管理系统的性能将造成压力,因此在一个大规模的网络中完全依赖DHCPv6方式进行地址的分配和管理,存在一定的风险。

(3)DHCP-PD方式

DHCP-PD方式是IPv6网络中特有的地址分配方式,其本意是为了减少网络侧地址管理的压力,而引入的地址分层管理和地址批租机制。就地址分配协议本身看,DHCP-PD完全采用DHCPv6的协议格式,并通过DHCPv6的Option扩展支持地址的分层管理。因此,DHCP-PD同样具有较好的兼容性。同时,由于引入了批租机制,地址可以成段地分配到最低层次的网络中,使得在固定接入方式下,为每个终端分配一个IPv6地址成为可能。但是,DHCP-PD的地址分配机制对于地址管理的层次性有着很高的要求,下一级地址完全取自上一级地址段范围,使得这种地址分配方式只能适合有较好规划,且网络组织基本固定的网络架构,不太适合网络结构变化频繁或有较高移动性要求的网络。最后,由于DHCP-PD是一种网络地址前缀的分配方式,对于最终终端的地址,DHCP-PD还是要结合DHCPv6或者无状态地址分配为终端进行地址的分配。

5 IPv6地址管理思路

由于上述IPv6地址分配方式的优缺点不同,因此需要针对IPv6网络场景的不同进行地址分配和管理方式的设计,才能够满足地址分配管理的要求。

首先,对于传统PPPoE方式的固定接入网络,在网络支持IPv6之后,初期从兼容性方面考虑,可以沿用DHCP地址分配方式,在不改变网络基本架构的前提下,在BRAS设备上开启DHCPv6的服务,为终端分配IPv6地址。在IPv6终端数量增长到一定程度,网络侧管理地址遇到性能瓶颈时,启用DHCP-PD将地址段批租到低一层次的接入设备(如家庭网关)上进行管理,以减轻网络侧的压力,同时在终端网络内部仍旧可以采用DHCPv6方式给终端分配IPv6地址。这一方式同样适合采用IPoE方式接入的网络,例如WLAN和IPTV网络。

其次,在移动网场景中,由于终端存在较强的移动性,采用无状态地址分配方式将会是一种较好的选择。当终端移动到一个新的网络中时,接收这个网络中的路由器通告的IPv6地址前缀,同时结合终端自身生成的接口地址,就能够使终端配置一个有效的IPv6地址。当终端从当前网络中移走,并进入下一个新网络时,由于终端接收到的路由器地址通告发生了改变,因此终端可以知道自身所处的网络发生了改变,从而触发终端更新其自身的IPv6地址。此外,由于终端可能同时接收到两个网络的路由器通告,因此,终端也可能同时接入到两个网络,并实现负载均衡的功能。

最后,对于一些物联网IPv6接入场景,由于终端运算能力有限,代码存储能力也有限,不可能要求终端支持完整的IPv6协议和DHCPv6协议栈,在终端层面采用无状态地址分配方式是一种较好的选择。在这样的网络中,物联网网关设备可以通过DHCPv6/DHCP-PD协议获取一个或一段IPv6地址,并采用无状态地址分配方式向物联网内部宣告这一地址前缀,终端节点在获得前缀之后能够通过简单算法就能生成自身有效的IPv6地址,实现对外通信。

6 结束语

在引入IPv6时,首先遇到的问题就是IP地址格式的改变和地址分配方式的变化,这些改变给传统的IP地址的管理提出了一些新的需求。基于这些新的需求,目前相关技术组织已经研发了多种不同的地址分配方式,但是这些方式没有哪一种可以单独满足IPv6地址分配和管理的方方面面的要求,也没有哪一种可以单独满足所有IPv6部署场景。因此,对于IPv6地址的分配和管理,必须采用多种技术相结合的方式,分网络场景采用不同的组合,才能满足实际网络的各种要求。

1 RFC4862.IPv6 Stateless Address Autoconfiguration,2007

2 RFC4291.IP Version 6 Addressing Architecture,1998

3 RFC3633.IPv6 Prefix Options for Dynamic Host Configuration Protocol(DHCP)Version 6,2003

猜你喜欢
多播网关分配
胖树拓扑中高效实用的定制多播路由算法
用于超大Infiniband网络的负载均衡多播路由
InfiniBand中面向有限多播表条目数的多播路由算法
应答器THR和TFFR分配及SIL等级探讨
遗产的分配
一种分配十分不均的财富
信号系统网关设备的优化
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计