基于标识/位置分离的新型移动性管理机制研究
扫描二维码
随时随地手机看文章
1 引言
近年来,互联网在基础架构方面暴露出越来越多的问题,BGP路由表的增长问题更是被提入IETF工作日程。根据互联网结构委员会IAB(Internet Architecture Board)的报告,主要是以下几个因素导致了BGP路由表的迅速增长:多宿、流量工程和非聚合地址的使用。上述问题的根本原因在于IP地址的语义过载,即IP地址同时包含标识和位置信息,分别用于传输层和路由系统。IETF已经开始着手研究这个问题,主要思路是将网络节点的标识和位置进行分离,并提出了如LISP,Six/One,SHIM6和HIP等方案。在这些方案中,LISP方案最为关键,获得包括思科在内的众多厂商及研究人员的广泛支持。
尽管LISP基于标识/位置分离,但是移动性支持方面仍存在很大的问题。LISP-MN是IETF工作组最近提出来的支持LISP移动性的方案。在LISP-MN方案中,移动节点需要具备LISP边界路由器的部分功能,这增大了移动节点实现的复杂性。更重要的问题在于,LISP-MN方案需要对于数据报文进行双重映射和双重封装,由此而引起的传输及切换延迟问题是不可忽视的。
为此,本文提出了一种新的移动性管理方案。该方案主要是基于网络侧的,对终端侧改动较小。在本方案中,我们定义了三种命名空间(HN,ID,Locator),并引入了一种新的主机名HN到标识ID的映射系统。主机名HN是唯一标识移动节点,且是全球惟一的。终端的HN与ID之间的映射关系是一对多的。当终端移动发生切换时,终端可以同时采用多个ID进行会话,数据包在传输过程中只封装一次。另外,通过引入一种快速位置更新的方法,实现了移动节点的平滑切换。与LISP-MN方案对比,可以看出我们的方法在切换时延和系统开销方面可以提供更好的移动性支持。
2 相关工作
2.1 LISP
LISP是一种基于网络侧的主机标识ID和位置分离的协议。LISP网络由核心网络和边缘网络两部分组成。其中,核心网络中使用路由位置RLOC(Routing Locator)来标识路由器,而边缘网络中使用终端标识EID(Endpoint Identifiers)来标识终端。主机的EID分配与网络提供商无关,它们在核心网中没有相关记录。全球核心网路由表中只包含RLOC,这样的方式使得核心网中路由表保持高度汇聚性。LISP通过入口隧道路由器ITR(Ingress Tunnel Router)和出口隧道路由器ETR(Egress Tunnel Router)实现了核心网络和边缘网络的分离,它通过一个映射系统用来实现从EID至RLOC的映射解析。LISP通过IP-in-IP的封装及解封装机制实现了在核心网中的路由和转发。
当一个节点向对端节点发送数据时,对端EID在核心网中是不可路由的。当数据包到达ITR后,ITR通过查询映射系统来获得对端EID对应的RLOC地址。然后ITR封装该数据包,以自己的RLOC为源地址,以对端ETR的RLOC为目的地址。对端ETR收到该包后解封装该包,最后将数据包发送给通信对端。具体的数据传输过程参见图1。
图1 LISP架构下的数据传输
总的来说,LISP有三大优点:第一,LISP倾向于在主机侧不作改动;第二,具备显著减小全球路由表的潜力;第三,映射系统给流量工程的应用提供了机会。不过,LISP可能将全球路由表的汇聚性问题转移到全球映射系统的汇聚性问题。
2.2 LISP中的移动性管理研究
LISP虽然消除了IP地址的双重语义问题,一定程度上支持了终端的移动性,然而它并未彻底地解决移动性,IETF的标准里也缺少相应的技术细节。为了解决标识/位置思想中的移动性支持问题,学术界提出了一些标识/位置分离下的移动性管理的机制。其中,IETF的工作组给出了LISP-MN方案。提出了一些对LISP-MN的改进方案来解决特定情况下存在的一些缺点。提出了HIMALIS架构,通过引入一种新的命名空间来提供移动性支持。然而,它对于绑定和映射更新比较复杂。提出了一种改进的架构来解决路由可扩展性和移动性,并未对切换的细节进行描述。为了更好地描述移动性问题,下面针对LISP-MN进行重点介绍。
在LISP-MN方案中,一个LISP节点具有一个永久性的EID,用作识别主机而不是路由。当一个移动节点漫游至一个新的网络中时,它接收到一个转交地址。该地址是当前可达的,并在映射系统把它注册为本地位置LLOC(Local Locator)。所有的LLOC都预先在映射系统里和RLOC一起注册。LISP-MN假定MN本身是一个单独的LISP域并具备ITR/ETR对进出口流量的处理功能。发送数据时,MN封装出口的流量发送至ETR。接收数据时,流量通过隧道从ITR或另一个MN传输至MN。
当数据包从一个LISP域传输至另一个LISP域的MN时,LISP-MN先向映射系统查询该对端EID对应的LLOC,并以它作为目的地封装该数据包。然后,当ITR收到经过一次封装的数据包后,再一次通过映射系统查询该LLOC对应的RLOC。两次查找过程如图2所示。
图2 LISP-MN中数据传输
事实上,虽然LISP-MN提出了一些设计目标,但它并没有提出一个清晰的方案来实现。它甚至忽视了一些问题,比如快速移动性。总的来说,LISP-MN存在以下问题:
(1)基于主机的方式。LISP-MN要求节点在移动时获取新的Locator,并参与到移动管理的步骤中,这增加了移动节点的复杂度。MN由于要具备ITR/ETR的功能而负载过重。
(2)开销。LISP-MN要求对所有的数据包进行双重映射和双重封装。
(3)切换性能。MN需要承受由于新位置识别、双重映射和双重封装引起的长的切换延迟和丢包率。
3 改进的移动性管理方案
为了解决LISP中存在的移动性问题,本文提出了一种基于标识/位置分离的移动性管理方案。该方案包含三种命名空间和两种映射系统。数据包在传输过程中只封装一次。同时,提出了快速的位置更新方法,来实现灵活的移动性支持和平滑切换需求。
3.1 三种命名空间
本方案定义了一种主机名HN(Host Name)的名字空间,所以系统中一共有三种命名空间:HN,EID,RLOC。相应的需要两种映射系统:HN至EID,EID至RLOC。整个系统的结构如图3所示。HN是不变的且全球惟一的主机标识,EID用来标识MN的应用程序。MN的EID在节点移动至别的LISP区域时会发生改变。HN是长度可变的、可读的、方便记忆的,而EID是用在LISP数据包中头部的源地址或目的地址的IPv4或IPv6地址,它是不可读的。
图3 移动性管理网络框架及数据传输示意图
为了从HN获得对端的EID,本方案引入了HN—EID映射系统。该映射系统可以通过修改DNS系统来实现,考虑到终端可能存在多个EID的情况,HN与EID的映射关系可能是一对多的关系,因此我们做了一个Priority的扩展,其格式见图3。关于如何使用此映射下面将会详细介绍。
3.2 动态移动管理方案
在该方案中,MN一旦进入到一个新的LISP区域就会动态获得一个新的EID。相应的,新开启的会话将采用新的EID作源地址或目的地址,而老的会话为了支持移动性仍然采用旧的EID。
图3表示了该方案的一个实例:MN在位置A与CN_1产生会话(1),当它移动到位置C后,会话(2)就被转交给C。同时,CN_2在MN移动到位置C后向它发起新的会话(2)。图4表示了整个过程的注册和切换信令的交互示意。
图4 移动性管理方案注册及切换流程图
首先,每个ETR在自己的位置注册自己的EID前缀到相应的映射服务器上,如图4步骤1所示。当MN从位置A启动时,它根据EID前缀(10.0.0.0/24)配置得到EID_1(10.0.0.1)。然后,MN开始和CN_1通信。首先,MN通过查询HN-EID映射系统获得CN_1的EID(12.0.0.1),如图4中A所示。然后,MN分别以10.0.0.1和12.0.0.1作为源地址和目的地址发出第一个数据包。当ITR/ETR_A收到这个包时,它应该获得该目的EID的RLOC。因此,如图4中步骤3~5所示,ITR/ETR_A执行RLOC查询操作,该操作与LISP中相同。然后,ITR/ETR_B的地址就以RLOC(3.0.0.1)的形式返回。最后,数据通过在ITR/ETR_A和 ITR/ETR_B处封装和解封装来完成在核心网内的传输。
图3中,模块(a)描述了会话(1)的封装和解封装的过程。在位置A处的映射查询和数据初始化与标准LISP中一样。然后,MN移至位置C,而会话(1)需要保持并移交至新接入点。在该方案中,MN在位置C处获得新的EID_2(11.0.0.1)。然后,EID_2将被注册到HN-EID映射系统里如图4中步骤7和B所示。
现在HN-EID映射系统里面存在一个HN(mn@hpnl.ac.cn)对应两个不同优先级的EID(10.0.0.1 和11.0.0.1)的条目。由于现在该MN节点在位置C,所以把EID_2的优先级设置比EID_1高。这样在后续的应用中就采用EID_2作MN的目的地址。
然而,会话(1)中的数据包仍然使用EID_1作源地址来保持会话的连贯性。当ITR/ETR_C接到终端发来的会话(1)的数据包时,它认识到该MN需要移动性支持,因为该包中的源地址EID与它自己的EID前缀不匹配。然后,ITR/ETR_C发出EID-RLOC的映射更新消息给ITR/ETR_A,如图4中步骤8~10。当ITR/ETR_A接收到该更新后,它就添加该EID对应的RLOC的映射条目,并赋之更高的优先级。这样,任何指向EID_1的映射请求都会被返回2.0.0.1,指向位置C。而别的来自10.0.0.0/24区域的主机请求仍旧指向位置A。这样该方案保持了LISP映射系统的规模性和汇聚性。
该方案在更新完MN的EID至RLOC映射数据库后,开始进行快速的位置更新以实现快速切换。首先,ITR/ETR_A通知ITR/ETR_B,更新其EID-RLOC的缓存,如图4中步骤11所示。所以ITR/ETR_B不必要去请求映射系统来获知MN的新RLOC。然后,ITR/ETR_A将缓存中发往MN的数据发往ITR/ETR_C,直至数据被直接发往RLOC_2为止,如图3中模块b所示。因此,该方案可以在保持一个低时延和丢包率的情况下提供快速平滑的切换。
现在位置B中的CN_2想与位置C中的MN通信。它先通过查询HN-EID映射系统来获取MN的EID,被告知两个不同优先级的EID_1 和EID_2,如图4中模块C所示。CN_2根据自己的设置来选择一个EID与之通信,多数情况下EID_2是被推荐的。然后CN_2就以EID_2为目的地发出第一个数据包。接下来的映射和封装与LISP中相同(见图4中步骤12-14和图3中会话2)。可以看出MN可以同时为不同的应用保持会话(1)和(2),所以该方案可以在LISP架构中提供一个动态灵活的移动性支持。
4 方案评估
本文提出的移动性管理方案是基于身份/位置分离思想的,因此继承了LISP架构固有的优点,如对路由可扩展性支持和终端位置隐私性等,能够较好地适应未来网络的发展。与LISP-MN机制相对比,本文提出的方案有以下几个方面的优势(见表1)。
表1 本方案与LISP-MN性能对比
(1)基于网络的方式
LISP-MN是基于主机的,而本文提出的方案是基于网络侧的,与LISP的实际目标一致。所以对于终端来说,没有软件上的要求,只要是普通终端就可以;同时,对于网络侧来说,只要在边缘路由器上添加一些功能上的改进就可以实现,便于部署与实施。
(2)更快的查找速度
对于LISP-MN,每次数据通信需要进行两次EID-RLOC映射查询,而本文提出的方案只需要一次查询即可。整个映射系统的性能在LISP架构中起着十分重要的作用,每多进行一次映射系统的查询,所造成的切换时延将会加倍。本方案有效地降低了系统的查询时间,这也在一定程度上减小了系统的切换延时。
(3)更低的系统开销
本文提出的方案只需要进行一次封装与解封;而LISP-MN方案则需要两次封装和解封。特别是在核心网中,LISP-MN方案传输的数据包是经过两层封装的IP数据包,整个报头占数据包较大比重,带宽利用率较低。相比而言,本文提出的方案仅有一次封装,能够较好地利用网络带宽。
(4)平滑切换
本文提出的快速位置更新方法,能够较快地通知通信对端路由器上更新移动终端的EID-RLOC映射,可以有效地减小切换时的丢包,降低了切换延时。
另一方面,该方案虽然也对系统带来了一定的开销,这个开销主要是由于添加HN-EID的映射系统引起的。然而,这个开销相对比较小,因为它可以对现有的DNS系统做细微的改进而来。
5 结束语
本文提出了LISP架构中一种新的移动性管理方案。一种基于三种命名空间和两种映射系统的移动管理方案被用来提供灵活的移动性支持。该方案是基于网络侧的,并且可以从现在的网络逐步演化而来,对现有的DNS系统也只需要作比较小的改动。该方案由于降低了开销、时延和丢包率,比LISP-MN表现更好。本文下一步的研究将考虑LISP区域和非LISP区域之间的移动性支持。