一种基于SDN的互联网移动性方法与流程

文档序号:11388974阅读:207来源:国知局
本发明属于互联网
技术领域
:,具体地说,尤其涉及一种基于sdn的互联网移动性方法。
背景技术
::移动性问题是当前互联网技术的研究热点。在当前互联网体系结构上增加移动性的支持,是当一对通信节点中的某个或者两者都发生移动并改变网络接入点时,端与端之间的回话可以继续保持。互联网移动性方案常常是给每个移动节点分配一个固定的id,并在移动节点和ip地址之间维持一个绑定关系。这样的绑定关系总是动态的,因为当移动节点接入不同的子网时,它的ip地址可能会发生改变,而绑定关系就需要被更新。因此,一个互联网移动性方案的关键功能是在网络中分发id和ip地址的绑定关系,使得移动节点不论在何时发生移动,通信都能够继续维持。现有的互联网移动性方案采用不同的方法来实现绑定表的映射功能,但是在面临未来互联网越来越多元化的移动场景时,存在灵活性不足的问题。例如,移动ip方案依赖部署在移动节点本地网络中的本地代理,本地代理代理要集中化地实现映射功能,这会在移动节点离开本地网络时出现三角路由的问题。为了解决三角路由的问题,在移动ip的基础上,例如dmm将映射功能分布式管理。但是,这些方案仍然需要开发和部署专门的中间件去维持这个映射关系。另一方面,在不同域之间移动ip,协议例如hip、ilnp、lispmobilenode等将映射功能从网络侧转移给主机侧,这样的协议由于不涉及中间件,在数据平面也避免了三角路由问题。但是,由于这些方案非常依赖终端主机去处理所有的移动相关的信息,在控制平面上效率较低,存在性能上的瓶颈。技术实现要素:为解决以上问题,本发明提供了一种基于sdn的互联网移动性方法,用于支持互联网的移动性。根据本发明的一个实施例,提供了一种基于sdn的互联网移动性方法,包括:sdn控制器从sdn域内移动节点所连接的开放流交换机的ip路由地址池中,分配ip路由地址给移动节点;根据所述移动节点的自身ip地址与对应ip路由地址的映射关系,建立或更改流表项并存储在本地以及实时通知各sdn域的sdn控制器;在sdn域内对端节点所连接的开放流交换机通过sdn控制器下发与移动节点映射关系相关的流表项;基于所述流表项、所述移动节点的自身ip地址及对应的ip路由地址,建立报文由对端节点路由至移动节点的路径。根据本发明的一个实施例,所述移动节点的自身ip地址由移动节点的mac地址或移动节点的认证身份映射生成。根据本发明的一个实施例,建立报文由对端节点路由至移动节点的路径包括sdn域内的会话建立过程,所述sdn域内的会话建立过程包括:对端节点所连接的开放流交换机基于流表项将移动节点自身ip地址转换为移动节点对应的ip路由地址;基于所述ip路由地址将报文由对端节点路由至移动节点所连接的开放流交换机;基于所述流表项,移动节点所连接的开放流交换机将所述ip路由地址转换为移动节点的自身ip地址,从而将报文路由至移动节点。根据本发明的一个实施例,建立报文由对端节点路由至移动节点的路径还包括sdn域内的移动切换过程,所述sdn域内的移动切换过程包括:在移动节点所连接的开放流交换机改变以及移动节点与对端节点的会话存在时,在对端节点到移动节点的原路径上的至少一台开放流交换机通过sdn控制器下发更新后的流表项,以对对端节点到移动节点的原路径进行修正,从而将报文路由至移动节点。根据本发明的一个实施例,在对端节点到移动节点的原路径上下发更新后的流表项的开放流交换机包括原路径上的任意开放流交换机。根据本发明的一个实施例,建立报文由对端节点路由至移动节点的路径还包括sdn域间的会话建立过程,所述sdn域间的会话建立过程包括:对端节点所连接的开放流交换机向位于其所属sdn域的sdn控制器询问不位于其所属sdn域的移动节点的ip路由地址;对端节点所连接的开放流交换机所属sdn域的sdn控制器根据自身存储的其他sdn域的移动节点的间接位置信息,询问移动节点当前所在sdn域的sdn控制器;移动节点当前所在sdn域的sdn控制器将移动节点的相关的流表项转发给对端节点所连接的开放流交换机所属sdn域的sdn控制器;对端节点所连接的开放流交换机从其所属sdn域的sdn控制器下发移动节点映射关系相关的流表项;对端节点所连接的开放流交换机基于下发的流表项将移动节点的自身ip地址转换为移动节点对应的ip路由地址;基于所述ip路由地址将报文由对端节点路由至移动节点所连接的开放流交换机;基于所述流表项,移动节点所连接的开放流交换机将所述ip路由地址转换为移动节点的自身ip地址,从而将报文路由至移动节点。根据本发明的一个实施例,所述间接位置信息包括移动节点当前所处的sdn域的标识或所归属的sdn控制器的标识。根据本发明的一个实施例,建立报文由对端节点路由至移动节点的路径还包括sdn域间的移动切换过程,所述sdn域间的移动切换过程:在移动节点所连接的开放流交换机改变以及移动节点与对端节点的会话存在时,对端节点所连接的开放流交换机下发更新后的流表项,并基于更新的流表项将报文在对端节点处重新定向对端节点至移动节点之间的路由。根据本发明的一个实施例,对端节点所连接的开放流交换机下发更新后的流表项进一步包括:移动节点由一sdn域移动至另一sdn域内,并连接接入sdn域的开放流交换机后,该接入sdn域的sdn控制器将移动节点接入事件广播至所有sdn域;对端节点所属sdn域的sdn控制器获知移动节点接入事件,并从移动节点接入的sdn域的sdn控制器处获取移动节点映射更新后的流表项;对端节点所属sdn域的sdn控制器向其所连接的开放流交换机下发移动节点映射更新后的流表项。根据本发明的一个实施例,对端节点所连接的开放流交换机下发更新后的流表项进一步包括:移动节点由一sdn域移动至另一sdn域内,并连接接入sdn域的开放流交换机后,接入sdn域的sdn控制器询问移动节点所离开sdn域的sdn控制器,以获知对端节点所属sdn域的sdn控制器;接入sdn域的sdn控制器将移动节点接入的当前位置通知对端节点所属sdn域的sdn控制器;对端节点所属sdn域的sdn控制器从移动节点接入的sdn域的sdn控制器处获取移动节点映射更新后的流表项;对端节点所属sdn域的sdn控制器向其所连接的开放流交换机下发移动节点映射更新后的流表项。本发明的有益效果:本发明通过设置移动节点及其接入sdn域的开放流交换机映射相关流表项,并通过各sdn域的开放流交换机实现移动节点在互联网的会话建立和移动切换。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要的附图做简单的介绍:图1是一种基于若干sdn域的互联网总体架构图;图2是根据本发明的一个实施例的方法流程图;图3是根据本发明的一个实施例的sdn域内的会话建立流程图;图4是根据本发明的一个实施例的sdn域内的移动切换流程图;图5是根据本发明的一个实施例的sdn域间的会话建立流程图;图6是根据本发明的一个实施例的sdn域间的移动切换流程图。具体实施方式以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。sdn(softwaredefinednetwork,软件定义网络)作为一种新兴的网络架构,其核心思想是分离网络的控制平面与数据平面。sdn通过提供可编程的网络设备和使用集中式的控制逻辑,使得网络结构、功能和性能能够以一种更简单的方式被定义。因此,sdn技术有利于实现可定制化的移动和无线网络以满足未来移动互联网多样化的目标,比如更优的资源利用率、异构无线网络的互联,更好的qoe(qualityofexperience,用户质量体验)等等。当前方案大多将sdn应用于wlan(wirelesslocalareanetwork,无线局域网)或蜂窝网络,前者包括openroads、openradio和odin等,后者包括softran、openran、cellsdn和softcell等。这些方案都没有将sdn应用于支持互联网移动性。基于sdn来实现互联网的移动性主要有以下两方面的优势。第一,sdn简化了互联网移动性机制的部署问题,因为任意一个可编程的网络设备都可以被用于实现映射机制所需的相关功能,或者说扮演移动锚点的角色。第二,sdn集中式的控制平面有利于获取整个网络范围内的与节点移动相关的信息,如网络拓扑、节点的分布、移动节点的移动模式、与移动节点相关的流量等等,因此有利于得出最优的映射分发策略,并且不受到应用场景的限制。后一优势在数据平面可以具体体现为避免三角路由问题,而在控制平面则可以具体体现为高效率的移动切换,即更短的切换延迟和更小的切换信令开销等。因此,本发明提供了一种基于sdn的在互联网上支持移动性的方法,既可以用于在sdn网络中提供互联网移动性支持,也作为对于传统互联网移动性方案的革新。图1展示了基于sdn的移动性方案的总体设计框架图,该框架图目前已应用于非移动性服务,本发明在已有的这种框架图上实现移动性服务。该总体设计框架包含若干sdn域,其中每个sdn域至少部署一台sdn控制器,sdn域之间通过互相合作形成一个sdn域联盟,向其客户提供跨域的移动性服务。该sdn域联盟可通过不同的方式组成。例如,若这些sdn域分别由不同的isp(internetserviceprovider,互联网服务提供商)运营,则这些isp之间可以签订协议,来允许它们的客户在这些域之间漫游时始终能够获得移动性支持;或者可以由isp之外的第三方(比如一个专门的移动服务提供商)来提供这项服务,在这种情况下,该移动服务提供商可以从各isp租借部分sdn控制器和网络设备的资源,如计算资源和存储空间等,并利用这些资源来提供跨域的移动性服务。为提供跨域的移动性支持,需要在控制平面部署一个为提供移动性服务而设计的sdn应用,该应用通过sdn的北向接口1部署到各域的sdn控制器上,而现有技术中,该北向接口1通常用于部署各自非移动性服务应用。由于该移动性服务应用在物理上分布于不同的域,故需要各域的sdn控制器之间能够通过东西向接口2互通,以实现跨域的移动性操作。此外,还需要通过sdn南向接口3实现控制平面与数据平面的交互,以便控制器能够实现对数据报文转发的指导,以及通过网络中部署的sdn设备获取所需的与移动场景相关的信息。另外,本发明sdn域的控制平面包含两个子功能。第一个子功能是实时地为每个移动节点维护其标识与位置之间的映射,这可以通过令sdn设备实时通知控制平面关于移动节点的接入与断开等事件来实现。第二个子功能是将移动节点的映射下发到所需的sdn设备上。下发映射的场合可进一步划分为两类:其一是某个sdn设备向控制平面请求某个移动节点的映射,以便能够在数据平面将报文转发至该移动节点;其二是当控制平面更新了关于某个移动节点的映射后,主动地将更新的映射下发到某些sdn设备上,以保证当前去向该移动节点的流量能够被重定向至移动节点的新位置。本发明在数据平面的功能则比较简单:对于收到的数据报文,sdn设备检查报文所携带的移动节点的标识,并依据该标识在本地映射表中查找对应的移动节点的位置。若能找到,则依据该地址继续转发报文,否则按上文所述向控制平面索取所需的映射。如图2所示为根据本发明的一个实施例的方法流程图,以下参考图2来对本发明进行详细说明。首先是步骤s110,sdn控制器将sdn域内移动节点所连接的openflow交换机的ip路由地址分配给移动节点。具体的,sdn控制器可以将移动节点所连接第一跳sdn设备(openflow交换机,即开放流交换机)的ip地址作为其定位符,该ip地址是一个可用于路由的ip地址,其地址前缀即所接入子网的地址前缀。由于移动节点的自身ip地址固定不变,而其接入网络的第一跳sdn设备会发生变化,因此,移动节点对应的ip路由地址也会发生变化。这个可路由的ip地址对移动节点不可见,移动节点的第一跳openflow交换机需要负责在作为移动节点标识和定位符的两个ip地址之间进行转换。将位于sdn域内的移动节点的自身ip地址作为其固定不变的标识符。当移动节点漫游到其他网络时,它将保持自身的ip地址不变,即自身标识符不变。为了识别接入的移动节点的身份,一种简单的方法是依靠移动节点的mac地址,然而这种方法的安全性并不够高,因此在对安全性要求较高的场合可以采用如802.1x等认证机制来避免移动节点的身份伪造问题。也就是说,移动节点的自身ip地址可以采用移动节点的mac地址或移动节点的认证身份映射生成。接下来是步骤s120,根据移动节点的自身ip地址与对应ip路由地址的映射关系,建立或更改流表项并存储在本地以及实时通知各sdn域的sdn控制器。当将移动节点与第一跳openflow交换机建立连接时,即可以形成移动节点的自身ip地址与对应ip路由地址的映射关系。当移动节点改变在sdn网络中的位置,改为连接另外一openflow交换机时,移动节点的自身ip地址与对应ip路由地址的映射关系就会发生改变。以上的两种情况,都需要重新形成自身ip地址与对应ip路由地址的映射关系流表项,并且还需要将重新生成的流表项存储在本地的sdn控制器中,以及将移动节点的接入变化情况实时通知各sdn域的sdn控制器。此处,并不需要在所有的sdn域的sdn控制器中存储移动节点的流表项,只需要将移动节点接入更改情况进行通知,在需要该流表项时进行下发。接下来是步骤s130,在sdn域内对端节点所连接的openflow交换机通过sdn控制器下发与移动节点映射相关的流表项。由于对端节点在与移动节点通信时只能得知移动节点的标识符,那么为了维持移动节点的可达性,对端节点的第一跳openflow交换机就需要将移动节点的标识符改写为其可路由的地址,这一地址改写过程是通过从sdn控制器下发一个与移动节点的映射相关的流表项(flowtableentry)来实现的。为此,由若干控制器组成的控制平面需要分布式地维护所有移动节点的标识符与定位符之间的映射,在需要时,对端节点所连接的openflow交换机所属域的sdn控制器从移动节点所在域的sdn控制器获取存储的流表项。对端节点的第一跳openflow交换机从所在域的sdn控制器下发移动节点映射相关的流表项。最后是步骤s140,基于流表项、移动节点的自身ip地址及对应的ip路由地址,建立报文由对端节点路由至移动节点的路。本发明针对移动节点在sdn域内和sdn域间的移动场景进行分别说明。对于移动节点应用在sdn域内的移动场景,可分为会话初始流程(会话建立流程)和移动切换流程两种情况。如图3所示为建立会话的流程示意图,当移动节点接入某sdn域内的openflow交换机(如图3中的s3)后,该交换机将此事件通知所在域的sdn控制器。一旦控制器获知了移动节点与其接入交换机的关系,就可以为其分配一个全局可路由的ip地址,并将移动节点的标识符(即移动节点自身的ip地址)与该地址的映射存储在本地。该全局可路由的ip地址即为移动节点所连接的openflow交换机对应的一个ip路由地址。当对端节点发起对移动节点的会话时,该会话过程包括以下的几个步骤。首先,对端节点所连接的openflow交换机基于流表项将移动节点的自身ip地址转换为对应的ip路由地址。从对端节点发出的报文将首先到达其接入openflow交换机(图3中的s1)。由于报文的目的地址是移动节点的标识符(自身ip地址),故s1需要向控制器请求移动节点当前的位置,该请求通过packet-in报文发送给控制器,而控制器则通过flow-mod报文向s1下发一条流表项,告知其将移动节点的标识符改写为移动节点的全局可路由ip地址。接着,基于ip路由地址将报文由对端节点路由至移动节点所连接的openflow交换机。如图3所示,依据改写后的地址,报文就能够被路由至移动节点的接入交换机s3。最后,基于流表项,移动节点所连接的openflow交换机将ip路由地址转换为移动节点的自身ip地址,从而将报文路由至移动节点。如图3所示,s3需要将报文的目的地址改写回移动节点的标识符,这也是由s3上存储的一条流表项所实现,而该流表项是在控制器得知移动节点接入s3这一事件时向s3下发的。在移动节点所连接的openflow交换机改变以及移动节点与对端节点的会话存在时,在对端节点到移动节点的原路径上的至少一台openflow交换机通过sdn控制器下发更新后的流表项,以对对端节点到移动节点的原路径进行修正,从而将报文路由至移动节点。具体的,如图4所示的会话的移动切换流程示意图,假设移动节点与s3断开并接入交换机s4。类似地,s4向控制器汇报移动节点的接入。由于控制器知道对端节点与移动节点间存在会话,故控制器需要将去向移动节点的流量重定向至s4。为达成这个目的,控制器必须向对端节点到移动节点的路径上的至少一台交换机下发流表项,比如,在图4中控制器通过在交换机s2上下发流表,将原s1-s2-s3的路径修正为s1-s2-s4。事实上这一过程就对应于方案的映射分发策略,而s2在这里则扮演的是移动锚点的角色。但与传统的移动锚点的概念不同,此处移动锚点的功能并非固定于某些节点上,而是可以由控制器通过软件定义的方式灵活地放置在任意的openflow交换机上。这样,就完全可以为每一次的移动事件单独计算最佳的移动锚点放置策略,这就为实现方案的核心目标,即对于任意移动场景寻找最优的策略以权衡路径延展和映射更新代价提供了基础。以上给出的方案是一个sdn域内存在单个控制器的情形。如果对端节点和移动节点归属不同的控制器管理,或者移动节点在移动过程中进入了另一个控制器的控制范围,则在这些场景下需要考虑由多个控制器参与的通信流程和移动切换流程。若这些参与的控制器属于同一个管理域,则依然属于域内的场景,现有的一些sdn多控制器体系结构比如onix和hyperflow等已经给出了多控制器之间信息传递和视图共享的机制,由于域内多控制器均可以获取域内的全局信息,因此在处理方式上与单控制器没有本质区别,仅仅在下发流表项这个操作上,由相关openflow交换机所直接对应的控制器来控制。如果对端节点和移动节点归属的控制器位于不同的sdn管理域,那么适用移动节点应用在sdn域间的移动场景,该场景也可分为会话初始流程(会话建立流程)和移动切换流程两种情况。其中,sdn域间的会话建立过程包括以下几个步骤。首先,对端节点所连接的openflow交换机向其所属sdn域的sdn控制器询问不位于其所在sdn域的移动节点的ip路由地址。此时,对端节点与移动节点位于不同的sdn域,两者通过各自对应的交换机和控制器进行通信。接着,对端节点所连接的openflow交换机所在sdn域的sdn控制器根据自身存储的其他sdn域的移动节点的间接位置信息,询问移动节点当前所在sdn域的sdn控制器。接着,移动节点当前所在sdn域的sdn控制器将移动节点相关的流表项信息转发给对端节点所连接的openflow交换机所在sdn域的sdn控制器。接着,对端节点所连接的openflow交换机从其所在sdn域的sdn控制器收到移动节点映射相关的流表项。接着,基于ip路由地址将报文由对端节点路由至移动节点所连接的openflow交换机。最后,基于流表项,移动节点所连接的openflow交换机将ip路由地址转换为移动节点的自身ip地址,从而将报文路由至移动节点。如图5所示,假设对端节点和移动节点分别归控制器c1和c2管理。此域间场景和域内场景的主要区别在于,c1不适合于获知移动节点的精确位置,因为否则的话移动节点的每一次移动事件都需要扩散至该sdn联盟内所有的成员域,从而产生大量的映射更新开销。因此,只有移动节点当前所处的域对应的控制器(即图5中的c2)需要实时掌握该移动节点的准确位置,而其他域的控制器(比如图5中的c1)则为该移动节点存储一个间接的位置信息,该信息可以是移动节点当前所处的域或所归属的控制器的标识。当这些控制器需要获取移动节点的精确位置时,比如在对端节点发起会话时其第一跳交换机会向c1询问移动节点的可路由地址,则可以通过进一步询问移动节点当前所在的控制器来实现。sdn域间的移动切换过程具体包括以下的几个步骤。首先,在移动节点所连接的openflow交换机改变以及移动节点与对端节点的会话存在时,对端节点所连接的openflow交换机下发更新后的流表项,并基于更新的流表项将报文在对端节点处重新定向对端节点至移动节点之间的路由。具体的,如图6所示,若节点移动至其他域比如从s3对应的域移动至s4对应的域,则需要触发控制器的域间信令交互。与域内场景不同,控制器c3事先并不知道对端节点与移动节点之间的域间流量所走的路径,故无法直接实现流量的重定向。考虑到让所有的控制器都获取域间拓扑和路径信息并不是一个合理的方法,本发明在此处选择一种更为简单的方式,即在域间流量的源头处(即对端节点处理)将其重定向,其关键点在于源头处如何获知移动节点所连接的openflow交换机并下发更新后的流表项。从源头处获知移动节点所连接的openflow交换机并下发更新后的流表项的一种方法包括以下几个步骤。首先,移动节点由一sdn域移动至另一sdn域内,并连接接入sdn域的openflow交换机后,该接入sdn域的sdn控制器将移动节点接入事件广播至所有sdn域;接着,对端节点所在sdn域的sdn控制器获知移动节点接入事件,并从移动节点接入的sdn域的sdn控制器处获取移动节点映射更新后的流表项;最后,对端节点所在sdn域的sdn控制器向其所连接的openflow交换机下发移动节点映射更新后的流表项。具体的,在图6所示的移动场景中,当c3在获知移动节点接入本域后,将此事件广播至所有其他sdn联盟的成员域,故作为流量源头的域所对应的控制器c1也将收到该通知,并进而通过在s1处下发一条流表项,将域间流量重定向至s4。考虑到移动节点发生跨域移动的频率并不高,这种广播机制是可行的。然而,随着sdn联盟成员的增加,若认为广播机制的代价较高,可以选择其他机制将其代替。因此,从源头处获知对端节点所连接的openflow交换机下发更新后的流表项的另一种方法包括以下几个步骤。首先,移动节点由一sdn域移动至另一sdn域时,并连接接入sdn域内的openflow交换机后,接入sdn域的sdn控制器询问移动节点所离开sdn域的sdn控制器,以获知对端节点所在sdn域的sdn控制器;接着,接入sdn域的sdn控制器将移动节点接入的当前位置通知对端节点所属sdn域的sdn控制器;接着,对端节点所在sdn域的sdn控制器从移动节点接入的sdn域的sdn控制器处收到移动节点映射更新后的流表项;最后,对端节点所在sdn域的sdn控制器向其所连接的openflow交换机下发移动节点映射更新后的流表项。对应图6,先令c3询问移动节点之前所归属的控制器c2,再从c2处获得对端节点所对应的控制器c1,之后c3将移动节点当前的位置直接通知c1,从而达成同样的目的。虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属
技术领域
:内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1