返回首页
当前位置: 主页 > 其他教程 > 电脑教程 >

一种通用的需求驱动的IPv6地址生成方案管理系统设计与实现

时间:2018-04-17 00:06来源:Office教程学习网 www.office68.com编辑:麦田守望者

随着互联网用户数量的急速增长,IPv4地址空间已不再满足互联网的发展需求,互联网工程任务组(IETF)设计了新的网络层协议IPv6用于替换IPv4协议.IPv6协议128比特的地址长度增大了地址空间,并增加了新的地址自动配置方式.

  从2011年开始,IPv6协议的部署进入加速阶段.截止到2016年4月,全球1281个顶级域名服务器中有1253个实现对IPv6的支持[1],占比达97.8%.全球BGP路由表中活跃的IPv6路由数量已达到2.9万条.

  IPv6地址作为IPv6协议的基础,其生成方案一直是人们关注的重点.目前有很多已成为IETF标准的或在研究领域未标准化的IPv6地址生成方案.RFC 4291[2]将全局可路由单播地址划分为路由前缀和接口标识两个主要组成部分.一些IPv6地址生成方案重新编码了IPv6的前缀生成方式,目的主要是聚合路由.Oliveira等人[3]将地理位置信息和服务提供商信息编码到地址中,实现了按照地理位置聚合路由的方案GIRO(Geographically informed inter-domain routing).Yin等人[4]提出的ISPSG (Internet Service Provider-separated geographic-based addressing)方案提供了一个支持与服务提供商独立的地址的解决路由聚合问题的方案.大多数的地址生成方案是用于生成接口标识的.IEE EUI-64标识[5]是用48比特的IEEE 802 MAC地址生成接口标识的简单的方案,这种方案存在隐私泄露和安全问题.因此,RFC4941中提出的临时地址方案[6]通过使用哈希算法扩展了EUI-64标识并以一定频率变换主机地址以达到保护用户隐私的目的,但同时也使网络管理变得复杂.CGA(Crypto-graphically Generated Address)地址[7]与用户的公钥绑定,用于在SEND协议中验证地址拥有者的身份.NIDTGA(Network Identity and Time Generated Address)方案[8]使用地址生成服务器和NID管理服务器在地址中嵌入了用户网络身份标识(NID)和时间,在NID追溯服务器的帮助下,我们可以利用地址追溯用户以实现网络更细粒度的管理.CAM[9]和SUCV[10]两个协议使用哈希加密的地址用于解决MIPv6协议中的安全问题.2014年,RFC 7217[11]引入了一种新的稳定的语义不透明的地址生成方案,该方案用于替换默认的IEEE EUI-64标识符并且不会牺牲用户的隐私性和安全性.剩余的地址生成方案是一些不明确关注地址的路由前缀和接口标识的分界的方案,通常是将IPv4地址等标识映射或转换为IPv6地址的方案,例如SIIT[12]、IVI[13]等.根据功能承载的位置,我们将目前典型的IPv6地址生成方案划分为三类:前64比特、后64比特、跨64比特,如表1所示.同时,我们也可以根据地址生成方案的具体需求划分地址生成方案,如表2所示.

  但是并非所有方案都被有效地使用,人们往往是根据操作系统所使用的方案或DHCPv6协议使用的地址生成方案而使用相应的IPv6地址.如何充分利用已有的IPv6地址生成方案满足不同网络在不同时期的不同地址生成方案需求成为一个重要的问题.

  本文从需求角度分析目前已有的典型的IPv6地址生成方案,解析需求在地址上的作用域以及需求之间的关系,进而提出了一种分层的IPv6地址生成方案管理系统,为现有地址生成方案的灵活部署、动态切换以及新的地址生成方案的统一设计提供了有效的支持.

1 需求分析

  任何地址生成方案都是为了满足网络中的特定需求而设计的.这些需求主要包括快速经济地生成地址、保护用户的隐私、验证用户的身份、追溯用户的身份、便于聚合路由、过渡转换等.本节对需求的作用域和需求间的相互关系进行了分析.

  1.1 需求作用域

  需求驱动方案设计,明确地址生成方案的设计需求能够让我们更加准确地理解已有的地址生成方案.通过调研分析,我们发现目前的地址生成方案主要集中在IPv6地址接口标识符(后64比特)的设计.我们认为其中的主要原因如下:

  1、设计子网前缀的生成方案往往不够实用.在目前的互联网路由体系背景下,修改前缀生成和分配的方案往往不能有效的进行部署.因此,目前几乎没有可用的前缀生成标准.

  2、当前的形式也不适合部署前缀生成方案.目前并非所有的互联网提供商都大范围地部署了IPv6,很多连续的IPv6地址块也已分配给不同的国家和地区.要部署前缀生成方案往往涉及到收回已分配的前缀并统一重新分配,这会导致前缀生成方案面临测试困难和部署困难的问题.

  3、目前主要的跨64比特的方案主要是一些过渡方案,将IPv4地址转换为IPv6地址.当IPv6在世界范围内全面部署后,这些方案将不会被使用.

  根据表2,我们总结了目前已有的较为典型的IPv6地址生成方案的设计需求:快速经济地生成地址、保护用户的隐私、验证用户的身份、追溯用户的身份、便于聚合路由、过渡转换.

  由于上述设计需求中既包含了作用于地址前缀的需求,也包含了作用于接口标识的需求,还包含了作用于地址中间部分的需求.因此,对于一个给定的需求,应当如何判断此需求在IPv6地址中的作用位置呢?为此我们引入需求作用域来解决这个问题.

  所谓需求作用域是指在特定寻址模式下,某一特定需求在网络中某一层的标识中的作用位置.例如,在当前的路由寻址模式下,IPv6地址生成方案的设计需求在IPv6地址中的作用位置就是需求作用域的一种体现.根据需求作用域的定义,我们可以确定需求作用域是在标识符、路由寻址模式和设计需求的输入下,经过需求作用函数作用得出的结果.用形式化的语言表述为:

  其中,i表示网络中某一层的标识符,m表示该层标识符的路由寻址模式,r表示设计需求,Lr表示设计需求r的需求作用域,f代表需求作用函数.

  为了求出需求r的作用域,我们首先需要考虑标识符i和寻址模式m的作用域.显然,标识符i的作用域就是其本身.如给定一个n比特的标识符i,其作用域表达式如公式(2)所示:

  而寻址模式m的作用域可用公式(3)描述:

  其中,如果寻址模式并不作用在标识符i上,则k和l均为默认值-1;否则,k和l满足:,即标识符i中的第k至l比特用于寻址.

  于是,我们可以得出Lr的表达式(4):

  其中“-”代表从被减数的作用域中去除减数的作用域部分.

  根据需求作用域的定义与求解方法,我们可以计算出前述的六种需求的作用域,如表3所示.

  1.2 需求关系

  根据需求作用域,我们可以明确一个需求在标识符上的作用位置,这也为我们确定需求之间的关系提供了基础.同时明确多个需求之间的关系也为我们设计新的满足多个需求的方案提供了可能.

  1.2.1 完全兼容

  如果两个设计需求在标识中的作用域之间不存在交集,则称这两个需求是完全兼容的.例如便于聚合路由的需求和保护隐私的需求的作用域之间不存在交集,因此这两个需求是完全兼容的.

  1.2.2 完全冲突

  如果两个设计需求在标识中的作用域完全相同,则称这两个需求是完全冲突的.例如验证用户身份的需求和追溯用户身份的需求的作用域完全相同,因此这两个需求是完全冲突的.

  1.2.3 部分兼容

  如果两个设计需求在标识中的作用域不相同但存在交集,则称这两个需求是部分兼容的.例如快速经济生成地址的需求和过渡转换的需求的作用域之间不相同但存在交集,因此这两个需求是部分兼容的. 2 通用的需求驱动的IPv6地址生成方案管理系统

  为了管理和充分利用已有的IPv6地址生成方案,我们设计了一个通用的需求驱动的IPv6地址生成方案管理系统.该系统由IPv6地址生成方案的设计需求驱动,分为三个逻辑层次:需求层、功能层和资源层,如图1所示.需求层用于确定系统所选需求,并将配置的需求对全网进行消息通告.功能层包含地址生成以及需求处理的功能模块.资源层包含具体地址生成方案使用的地址池.

  图1 系统分层逻辑结构图

  2.1 需求生成器

  在需求层中,需求生成器用于管理各种方案的特定需求.需求生成器在全网中通告管理员配置的需求,而其他功能模块根据该通告进行相应的功能初始化,使得整个系统表现为部署了某一个地址生成方案.值得注意的是,为了防止需求生成器的消息通告被伪造或重放攻击,需求生成器需要在通告消息中添加防范机制,如在消息中嵌入时间信息并进行签名.

  2.2 地址生成器

  在功能层中,地址生成器负责生成满足管理员所配置需求的地址,是本系统的核心功能模块.地址生成器又分为分布式地址生成器和集中式地址生成器.其中分布式地址生成器位于每台想要获取地址的主机上,例如主机上实现无状态地址生成或包含DHCPv6客户端功能的系统程序;集中式地址生成器则通过特定服务器为每台主机分配地址,例如DHCPv6服务器.地址生成器在接收到需求生成器通告的管理员配置的需求信息后,首先检测该通告信息的合法性.如果通告信息合法,则地址生成器完成功能初始化;否则,忽略该通告消息.

  2.3 特征管理器

  大多数地址生成方案往往都在地址中嵌入了用户的特征信息,如IEEE EUI-64标识符在地址中嵌入了MAC地址,CGA地址中嵌入用户的公钥,NIDTGA地址中嵌入了用户的NID.有些嵌入信息用户不关心,没有管理的必要.但是有些特征信息很重要,我们需要对这些特征信息进行管理,并且为其他功能的实现提供便利.特征管理器就是用于管理具体方案中使用到的嵌入IPv6地址中的特征信息的实体,可以配合特征利用器完成相应查询功能,同时也可以配合其他功能模块完成特定任务.特征管理器应设定白名单机制并仅接受合法来源的信息查询,同时消息传递也需要进行相应的加密保护.

  2.4 特征利用器

  由于方案中嵌入特征信息,部分方案涉及到对该消息的使用.特征利用器负责解析出嵌入地址中的特征信息或者利用已有信息进行验证,完成需求定义的功能,如NIDTGA方案中的利用地址进行用户身份追溯,也可以查询并利用特征管理器的特征信息.特征利用器也需根据具体方案配置合理的使用机制. 3 实验与评价

  3.1 实验结果

  我们按照图2的网络拓扑部署本文提出的地址生成方案管理系统,在本系统中实现和比较了三种典型的地址生成方案:IEEE EUI-64标识符、RFC4941中提出的临时地址方案、NIDTGA方案.针对以上每种方案,我们在本系统中分别测试了100次配置地址的时间,并与原方案作了比较.实验结果如表4所示,我们发现在本系统中地址生成方案的性能并未降低,本系统是有效的.

  图2 系统部署图

  3.2 部署经济性 

  由于NIDTGA方案是最复杂的地址生成方案,我们以NIDTGA为例说明如何快速部署本系统.我们仅需要将地址生成服务器、NID管理服务器和NID追溯服务器分别替换为本系统的集中式地址生成器、特征管理器和特征利用器,然后添加需求生成器,更新系统每部分功能即可.当系统中添加了多种地址生成方案时,我们甚至可以生成具有多功能的地址,即同时部署多个需求兼容的方案.因此,本系统用一套设备可部署多个地址生成方案,表现出良好的部署经济性.

  3.3 可管理性

  本系统包含多种地址生成方案以便管理多种需求.如果一个网络想要改变络的地址生成方式,则可以直接在需求生成器中切换至预设好的对应方案的需求.例如,图3为从IVI实例切换到NIDTGA实例的过程.在这个过程中,我们仅需在需求生成器中切换络所选需求即可完成络内的地址生成方案的切换.因此,本系统中的方案具有良好的可管理性.

  图3 系统方案切换示意图

  3.4 可扩展性

  对于本系统的可扩展性,我们定义为在本系统中新增一个地址生成方案不会导致系统性能明显降低或管理复杂度增大.对于一个新增方案,我们仅需要按照地址生成器、特征管理器和特征利用器划分该方案的功能,然后将各部分的功能添加至系统对应部分中,最后在需求生成器中添加该方案的需求选项即可.简言之,为本系统添加一个新方案时,我们仅需要更新每层对应功能.因此,本系统有较好的可扩展性.

  4 结语

  本研究通过对现有IPv6地址生成方案的设计需求进行分析,提出了需求驱动的IPv6地址生成方案管理系统,为充分灵活的利用现有地址生成方案来满足不同网络在不同时期根据不同需求提供了可能,并为新的满足特定需求的IPv6地址生成方案的设计提供了通用的设计架构.在下一步工作中,我们将进一步细分地址生成方案的需求,获取最基本的原子需求集合,组合基本原子需求以生成新的满足特定需求的地址生成方案,并实现自动生成地址生成方案的系统.

  参考文献

  [1] IPv6 domains, http://bgp.he.net/ipv6-progress-report.cgi.

  [2] Hinder R. Deering S. RFC-2006 IP Version 6 Addressing Architecture [S]. IETF, 2006.

  [3] Oliveira R, Lad M, Zhang B, et al. Geographically informed inter-domain routing[C]//Network Protocols, 2007. ICNP 2007. IEEE International Conference on. IEEE, 2007: 103-112.

  [4] Yin X, Wu X, Chon K, et al. ISPSG: Internet Service Provider-separated geographic-based addressing and routing[C]//GLOBECOM Workshops, 2009 IEEE. IEEE, 2009: 1-6.

  [5] Crawford M. RFC2464-1998 Transmission of IPv6 packets over ethernet networks[S], IETF, 1998.

  [6] Narten T, Draves R, Krishnan S. RFC4941-2007 Privacy extensions for stateless address autoconfiguration in IPv6[S]. IETF, 2007.

  [7] Aura T. RFC3972-2005 Cryptographically generated addresses (CGA) [S]. IETF, 2005.

  [8] Liu Y, Ren G, Wu J, et al. Building an IPv6 address generation and traceback system with NIDTGA in Address Driven Network[J]. Science China Information Sciences, 2015, 58(12): 1-14.

  [9] O‘shea G, Roe M. Child-proof authentication for MIPv6 (CAM)[J]. ACM SIGCOMM Computer Communication Review, 2001, 31(2): 4-8.

  [10] Montenegro G, Castelluccia C. Statistically unique and cryptographically verifiable (SUCV) identifiers and addresses[C]//In Proceedings of the 9th Annual Network and Distributed System Security Symposium. NDSS 2002, 2002.

  [11] Gont F. RFC7217-2014 A Method for Generating Semantically Opaque Interface Identifiers with IPv6 Stateless Address Autoconfiguration (SLAAC)[S], IETF, 2014.

  [12] Li X, Bao C, Baker F. RFC6145-2011 IP/ICMP Translation Algorithm[S], IETF, 2011.

  [13] Bao C, Huitema C, Bagnulo M, et al. RFC6052-2010 IPv6 Addressing of IPv4/IPv6 Translators[S], IETF, 2010.

  作者单位:何林、任罡、刘莹为清华大学网络科学与空间研究院,何林为清华大学计算机科学与技术系

------分隔线----------------------------
标签(Tag):IPv6地址生成方案管理系统
------分隔线----------------------------
推荐内容
猜你感兴趣