一种灵活可扩展且安全的域间拓扑发现方法

文档序号:7795542阅读:217来源:国知局
一种灵活可扩展且安全的域间拓扑发现方法
【专利摘要】本发明公开了一种灵活可扩展且安全的域间拓扑发现方法,该方法基于现有软件定义网络域间拓扑发现方法,通过改进链路层发现协议数据包,实现分布式软件定义网络中一个软件定义网络域发现与其相邻的软件定义网络域的拓扑连接。本发明采用简单的、安全的方法成功地解决了分布式软件定义网络中多个域之间的域间拓扑发现问题。
【专利说明】一种灵活可扩展且安全的域间拓扑发现方法
【技术领域】
[0001]本发明涉软件定义网络【技术领域】,尤其涉及一种灵活可扩展且安全的域间拓扑发现方法。
【背景技术】
[0002]传统网络中,域间拓扑发现是根据诸如BGP之类的外部网关路由协议实现的,由于传统方法依赖于具体的协议,灵活性和可管理性较差,且拓扑发现和路由计算结合在一起,可扩展性较差。软件定义网络(SDN)中将拓扑发现作为独立的模块向路由管理等业务提供统一的网络视图(Network View)接口,通过使用域间链路层发现协议(LLDP)实现网络拓扑发现;拓扑发现模块实时维护全网一致性网络视图,不需要依赖其他业务,有效地提高了网络管理的灵活性和可扩展性。但现有的方式没有考虑网络中出现的Sybil、RIBPoisoning等网络攻击,将会导致通信过程中通信实体身份不明和信息丢失等安全问题。
[0003]传统网络的域间拓扑结构发生变化时,其数据面更新会依据诸如BGP之类的外部网关路由协议进行。BGP规定,域的边界节点使用TCP协议与相邻域的边界节点建立连接,以构建邻居关系;邻居间相互发送NLRI更新信息,以交换路由表。通过这些方式,边界节点得以及时获得最新的域间路由拓扑。但存在拓扑发现依赖于具体的协议,可管理性与灵活性较差,且由于更新过程依赖于路由算法,收敛过程较慢,导致其他业务无法及时得到网络最新拓扑结构,存在安全漏洞。
[0004]SDN网络架构中,SDN控制器以集中方式控制由多个交换机所构成的域,本域与其他互连域的域间拓扑的一致性维护通过LLDP协议来实现,LLDP协议每隔一定的时间间隔从域内交换机的所有端口发送LLDP数据包。拓扑发现与其他业务相互独立,当域间网络拓扑发生变化时,域间拓扑发现模块更新网络视图,其他业务通过域间拓扑发现模块向外提供的接口来获取最新的一致性网络视图,提高了网络的灵活性和可扩展性。
[0005]本发明涉及使用以下SDN中已有的概念、技术或工具:
SDN控制器是根据OpenFlow协议设计的控制软件,用于管理数据流、配置网络设备、制定流表(Flow Table)、承担网络业务与网络设备间的通讯。一个域可以由一个控制器集中控制,或是由多个控制器分布式控制。
[0006]SDN中的交换机服从OpenFlow协议,称OpenFlow交换机(OFS)。OFS由SDN控制器管控,其流表由SDN控制器制定和修改。
[0007]OpenFlow协议支持的安全通道实现OFS和SDN控制器之间的通信。
[0008]网络视图(Network View)是SDN网络中实时维护的域内和域间的物理链路状态信息及每个OFS节点状态信息。
[0009]OpenFlow 协议参见:0penFlow Switch Specification Version 1.0.2 (WireProtocol 0x01), December 31, 2009。

【发明内容】
[0010]本发明的目的是克服现有技术的不足,提供一种灵活可扩展且安全的域间拓扑发现方法。
[0011]本发明的目的是通过以下技术方案来实现的:一种灵活可扩展且安全的域间拓扑发现方法,包括如下步骤:
步骤1:初始网络中,每个OpenFlow交换机(OFS)都和一个软件定义网络(SDN)控制器相连,由同一个SDN控制器管理的所有OFS组成一个域,每个OFS有全网唯一的标识符(DataPathld),每个域有全网唯一的域编号(Domain ID),每个控制器拥有一对公钥/私钥对,私钥保密,每个SDN控制器维护一个密钥库,密钥库中包含本域的公钥/私钥对和其他域的公钥,公钥通过域的唯一域编号查找密钥库获得。
[0012]步骤2:SDN控制器在收到OFS发来的连接信息后,生成扩充的LLDP数据包,扩充的LLDP数据包除包括LLDP要求的基本信息(包括Chassis ID、Port ID、TTL及EndTLV)之外,还包括域编号(Domain ID)、发送序号(TimeStamp)和签名(Signature),其中Domain ID为每个域的唯一标识,TimeStamp是为了验证收到的LLDP包是否为最新的一个,Signature为用本控制器的私钥校验LLDP数据包的其他所有字段;
步骤3 =SDN控制器将步骤2生成的扩充LLDP数据包,每隔一定时间间隔从OFS所有端口发送出去;
步骤4 =SDN控制器收到本域OFS发送来的扩充LLDP数据包,根据数据包中携带的DataPathld,SDN控制器在本域的OFS信息库中查找该DataPathld ;若查找到相应的DataPathld,说明是本域的扩充LLDP数据包,则忽略;若没有查找到相应的DataPathld,则说明是本域收到其他域的扩充LLDP数据包,SDN控制器从扩充LLDP数据包中获取Signature、TimeStamp 和 Domain ID ;
步骤5:根据步骤4获得的Domain ID查找密钥库获取到发送该扩充LLDP数据包域的公钥;
步骤6:根据步骤5获得的公钥使用RSA加密算法来验证步骤4获得的Signature ;步骤7:若步骤6验证Signature不通过,则丢弃该数据包;若验证Signature通过,SDN控制器获得本域内发送该扩充LLDP数据包的OFS的交换机端口元组(SwitchPortTuple),在本SDN控制器维护的交换机端口元组与TimeStamp映射表中查找该SwitchPortTuple ;步骤8:若步骤7查找到该SwitchPortTuple,则根据映射表返回的TimeStamp,与步骤4获得的TimeStamp值进行比较,若比较的结果是TimeStamp小,说明之前已收到过更大的TimeStamp,则丢弃;若步骤7没有查找到该SwitchPortTuple,则说明这是建立连接后收到的第一个扩充LLDP数据包,将该SwitchPortTuple和序号TimeStamp更新至映射表中,同时更新域间网络视图(Network View)。
[0013]本发明的有益效果是:
首先,对比其他的SDN控制器域间拓扑发现方法,本发明使用与域内拓扑发现相同的LLDP协议,增加了域编号(Domain ID)、发送序号(TimeStamp)和签名(Signature),控制器的域编号与其公钥具有对应关系,数据与验证信息均包含在LLDP包内,域控制器之间的公钥是通过域编号查找密钥库获得。同时由于使用控制器本身已有的公钥/私钥对、签名验证域间拓扑发现过程,本发明在不增加系统复杂性的前提下,提高了域间一致性网络视图维护的安全性。[0014]其次,对比现有的域间网络安全方案,本发明基于软件定义网络(SDN),拓扑发现与路由计算相互独立,获取到统一的域间拓扑后,可提供给各种不同的路由协议,而无须由每个路由协议实例独自获取域间拓扑、并各自实现安全方案,从而改进了控制策略的灵活性,同时增强了系统的可扩展性。
【专利附图】

【附图说明】
[0015]图1是一种灵活可扩展且安全的域间拓扑发现方法的流程图;
图2是软件定义网络域间网络拓扑结构示意图。
【具体实施方式】
[0016]下面结合附图详细描述本发明,本发明的目的和效果将变得更加明显。
[0017]本发明基于现有SDN网络中的域间拓扑发现方法,提出了一种灵活可扩展且安全的域间拓扑发现方法,包括以下步骤:
步骤1:初始网络中,每个OpenFlow交换机(OFS)都和一个软件定义网络(SDN)控制器相连,由同一个SDN控制器管理的所有OFS组成一个域,每个OFS有全网唯一的标识符(DataPathld);每个域有全网唯一的域编号(Domain ID);每个控制器拥有一对公钥/私钥对,私钥保密;每个SDN控制器维护一个密钥库,密钥库中包含本域的公钥/私钥对和其他域的公钥,其他域的公钥通过其域编号获得。图2中0FS1-0FS12为OpenFlow交换机,0FS1-0FS4组成一个域Dl,由SDN控制器Cl控制,0FS5-0FS8组成一个域D2,由SDN控制器C2控制,0FS9-0FS12组成一个域D3,由SDN控制器C3控制。
[0018]步骤2 =SDN控制器在收到OFS发来的连接信息后,生成扩充的LLDP数据包,即除了包括LLDP要求的基本信息(包括Chassis ID, Port ID、TTL及End TLV)之外,增加了域编号(Domain ID)、发送序号(TimeStamp)和签名(Signature),其中Domain ID为每个域的唯一标识,TimeStamp是为了验证收到的LLDP包是否为最新的一个,Signature为用本控制器的私钥校验LLDP数据包内的其他所有字段;
步骤3 =SDN控制器将步骤2生成的扩充LLDP数据包,每隔一定时间间隔从OFS所有端口发送出去;
此处的时间间隔由网络管理员或研究人员自行设定,如5s、15s等均可。
[0019]步骤4:SDN控制器收到本域OFS发送来的扩充LLDP数据包,根据数据包中携带的DataPathld,SDN控制器在本域的OFS信息库中查找该DataPathld ;若查找到相应的DataPathld,说明是本域的扩充LLDP数据包,则忽略;若没有查找到相应的DataPathld,则说明是本域收到其他域的扩充LLDP数据包,SDN控制器从扩充LLDP数据包中获取Signature、TimeStamp 和 Domain ID ;
步骤5:根据步骤4获得的Domain ID查找密钥库获取到发送该扩充LLDP数据包域的公钥;
步骤6:根据步骤5获得的公钥使用RSA加密算法来验证步骤4获得的Signature ;步骤7:若步骤6验证Signature不通过,则丢弃该数据包;若验证Signature通过,SDN控制器获得本域内发送该扩充LLDP数据包的OFS的交换机端口元组(SwitchPortTuple),在本SDN控制器维护的交换机端口元组与TimeStamp映射表中查找该SwitchPortTuple ; 步骤8:若步骤7查找到该SwitchPortTuple,则根据映射表返回的TimeStamp,与步骤4获得的TimeStamp值进行比较,若比较的结果是TimeStamp小,说明之前已收到过更大的TimeStamp,则丢弃;若步骤7没有查找到该SwitchPortTuple,则说明这是建立连接后收到的第一个扩充LLDP数据包,将该SwitchPortTuple和序号TimeStamp更新至映射表中,同时更新域间网络视图(Network View)。
[0020]本发明通过采用一种灵活可扩展且安全的域间拓扑发现方法来实现分布式软件定义网络(SDN)控制域之间的拓扑发现,基于现有SDN网络域间拓扑发现方法,增加签名验证过程,该方法实现简单、更加安全,有效地解决了分布式SDN域之间安全的域间拓扑发现问题。
【权利要求】
1.一种灵活可扩展且安全的域间拓扑发现方法,其特征在于,包括如下步骤: 步骤1:初始网络中,每个OpenFlow交换机都和一个软件定义网络控制器相连,由同一个软件定义网络控制器管理的所有OpenFlow交换机组成一个域,每个OpenFlow交换机有全网唯一的标识符DataPathId,每个域有全网唯一的域编号Domain ID,每个控制器拥有一对公钥/私钥对,私钥保密,每个软件定义网络控制器维护一个密钥库,密钥库中包含本域的公钥/私钥对和其他域的公钥,公钥通过域的唯一域编号查找密钥库获得; 步骤2:软件定义网络控制器在收到OpenFlow交换机发来的连接信息后,生成扩充的LLDP数据包,扩充的LLDP数据包除包括LLDP要求的基本信息(包括Chassis ID,Port ID、TTL及End TLV)之外,还包括域编号Domain ID、发送序号TimeStamp和签名Signature,其中Domain ID为每个域的唯一标识,TimeStamp是为了验证收到的LLDP包是否为最新的一个,Signature为用本控制器的私钥校验LLDP数据包的其他所有字段; 步骤3:软件定义网络控制器将步骤2生成的扩充LLDP数据包,每隔一定时间间隔从OpenFlow交换机所有端口发送出去; 步骤4:软件定义网络控制器收到本域OpenFlow交换机发送来的扩充LLDP数据包,根据数据包中携带的DataPathId,软件定义网络控制器在本域的OpenFlow交换机信息库中查找该DataPathId ;若查找到相应的DataPathld,说明是本域的扩充LLDP数据包,则忽略;若没有查找到相应的DataPathld,则说明是本域收到其他域的扩充LLDP数据包,软件定义网络控制器从扩充LLDP数据包中获取Signature、TimeStamp和Domain ID ; 步骤5:根据步骤4获得的Domain ID查找密钥库获取到发送该扩充LLDP数据包域的公钥; 步骤6:根据步骤5获得的公钥使用RSA加密算法来验证步骤4获得的Signature ;步骤7:若步骤6验证Signature不通过,则丢弃该数据包;若验证Signature通过,软件定义网络控制器获得本域内发送该扩充LLDP数据包的OpenFlow交换机的交换机端口元组SwitchPortTuple,在本软件定义网络控制器维护的交换机端口元组与TimeStamp映射表中查找该 SwitchPortTuple ; 步骤8:若步骤7查找到该SwitchPortTuple,则根据映射表返回的TimeStamp,与步骤4获得的TimeStamp值进行比较,若比较的结果是TimeStamp小,说明之前已收到过更大的TimeStamp,则丢弃;若步骤7没有查找到该SwitchPortTuple,则说明这是建立连接后收到的第一个扩充LLDP数据包,将该SwitchPortTuple和序号TimeStamp更新至映射表中,同时更新域间网络视图Network View。
【文档编号】H04L12/751GK103825825SQ201410023762
【公开日】2014年5月28日 申请日期:2014年1月18日 优先权日:2014年1月18日
【发明者】吴春明, 赵珊珊, 周伯阳 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1