专利名称:一种基于dht的控制网络实现方法、系统和网络控制器的制作方法
技术领域:
本发明涉及计算机网络领域,尤其是涉及一种基于分布式哈希(DistributedHash Table, DHT)的控制网络实现方法、系统和网络控制器。
背景技术:
美国斯坦福大学于2008年提出了 OpenFlow (开放流表控制)协议,该协议采用转发/控制分离架构,外置控制面实体采用OpenFlow协议控制转发面设备,实现各种转发逻辑。而转发面设备主要功能就是根据OpenFlow网络控制器下发的流表执行受控转发,其行为是标准化的收到一条报文,取出其头部L2/L3/L4相关字段值,以其作为关键字查找流表,匹配到一个表项后,根据表项内容中的指令集对报文字段进行变换,完毕后根据指示转发到某一逻辑或物理端口。此协议进一步演进,成为软件定义网络(Software DefinedNetwork, SDN)技术的基础,即可以在控制面采用软件编程实现各种复杂的网络应用,而转发面设备无需任何改变,由于控制面采用通用服务器+通用操作系统,并且可以使用通用的软件编程工具,也可以使用 Python (—种面向对象、直译式计算机程序设计语言)这样的脚本编程语言实现,这使得新的网络协议的支持变得非常简单,而且新技术部署周期大大缩短。一个基本的OpenFlow网络包括网络控制器和交换机两个主要的控制实体。通常地,在网络中部署一个集中的网络控制器,负责整个网络域中所有的OpenFlow交换机的管理域控制。然而,单个集中式的网络控制器会成为网络规模化的瓶颈,如与网络控制器距离较远的交换机建立流的时延增加,单个网络控制器处理交换路径请求的吞吐量受限,端到端的路径带宽可控性差等。为此,学术界提出分布式网络网络控制器方案,如HyperFlow(超级流管理)、0ΝΙΧ等,这些方案一般是在网络上部署多个网络控制器共同管理与控制SDN网络。公开号为US20110261722的美国专利申请公开的技术方案中将路由路径信息放在流的首个数据报文头部中,路径上的交换机在进行报文转发时根据报文头部的路由路径信息建立转发流表。对于这种大规模的网络,交换机和网络控制器之间的连接选择与维护、路径的计算与下发,经常涉及多个交换机、多个网络控制器,大大增加了网络维护的成本。由此可见,在现有SDN的分布式网络控制器方案中,路径建立过程中经常涉及多个网络控制器、多个交换机的流表下发,复杂的交互过程增加了事务维护的复杂性,且不利于管理面和转发面的状态统一,大大增加了网络的维护成本。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于DHT的控制网络实现方法和系统,使得网络控制器网络实现自组织、交换机自动接入,同时使得网络路径的计算与下发容
易管理。为达到上述目的,本发明的技术方案是这样实现的
本发明提供了一种基于DHT的控制网络实现方法,该方法包括交换机与分布式对等网络中指定的网络控制器建立路由控制通道;接收到路径创建请求的网络控制器作为首节点网络控制器进行路径计算,生成P2P路径创建请求消息,并沿路径转发所述P2P路径创建请求消息;所述路径上接收到所述P2P路径创建请求消息的网络控制器,向自身管理的交换机下发所述P2P路径创建请求消息中携带的转发流表,完成各自的本地路径创建;其中,所述路径上的中间节点网络控制器在完成本地路径创建后,沿所述路径转发所述P2P路径创建请求消息,所述路径上的末节点网络控制器在完成本地路径创建后沿相反路径返回P2P路径创建响应消息;接收到所述P2P路径创建响应消息的中间节点网络控制器,结合本地路径创建结果,更新所述P2P路径创建响应消息,并沿所述相反路径转发更新后的P2P路径创建响应消息;首节点网络控制器接收到P2P路径创建响应消息后,结合本地路径创建结果,确定所述路径是否创建成功。优选地,所述交换机与分布式对等网络中指定的网络控制器建立路由控制通道,包括交换机与引导服务器直接返回的指定的网络控制器列表中的网络控制器建立路由控制通道;或者,引导服务器将交换机引导到任意的网络控制器,交换机根据所述任意的网络控制器返回的信息重定向到指定的网络控制器、并与该指定的网络控制器建立路由控制通道。优选地,所述路由控制通道为OpenFlow协议通道、SNMP通道或DIAMATER通道。优选地,所述路径计 算得到路径上网络控制器的顺序和路径上交换机的顺序。优选地,所述P2P路径创建请求消息的目的节点为所述路径上的末节点网络控制器;所述P2P路径创建请求消息的路由路径头部由所述路径上除了末节点网络控制器之外的其他网络控制器的标识组成;所述P2P路径创建请求消息的消息体由所述路径上向各个交换机下发的转发流表组成。优选地,所述其他网络控制器的标识按所述路径上的所述其他网络控制器的顺序排列;所述向各个交换机下发的转发流表按照所述路径上的交换机的顺序排列。优选地,所述首节点网络控制器生成P2P路径创建请求消息后,该方法还包括所述首节点网络控制器向自身管理的交换机下发所述P2P路径创建请求消息中携带的转发流表。优选地,所述路径上的末节点网络控制器在完成本地路径创建后沿相反路径返回P2P路径创建响应消息,为若本地路径创建成功,所述末节点网络控制器返回成功的P2P路径创建响应消息;若本地路径创建失败,所述末节点网络控制器返回失败的P2P路径创建响应消息。优选地,接收到所述P2P路径创建响应消息的中间节点网络控制器,结合本地路径创建结果,更新所述P2P路径创建响应消息,并沿所述相反路径转发更新后的P2P路径创建响应消息,为若本地路径创建成功、且接收到的为成功的P2P路径创建响应消息,则沿所述相反路径转发更新后的、成功的P2P路径创建响应消息;若本地路径创建成功、且接收到的为失败的P2P路径创建响应消息,则沿所述相反路径转发更新后的、失败的P2P路径创建响应消息;若本地路径创建失败,且接收到的为失败或成功的P2P路径创建响应消息,则沿所述相反路径转发更新后的、失败的P2P路径创建响应消息。优选地,首节点网络控制器接收到P2P路径创建响应消息后,结合本地路径创建结果,确定所述路径是否创建成功,为首节点网络控制器接收到成功的P2P路径创建响应消息、且本地路径创建成功时,确认所述路径创建成功;首节点网络控制器接收到失败的P2P路径创建响应消息或者本地路径创建失败时,确认所述路径创建失败,并重新进行路径计算。优选地,所述路径上的网络控制器接收到P2P路径创建响应消息后该方法还包括若接收到为失败的P2P路径创建响应消息或者本地路径创建失败时,网络控制器对本地已下发的转发流表进行回滚操作。本发明还提供了一种基于DHT的控制网络实现系统,该系统包括交换机和网络控制器,其中 所述交换机,用于与分布式对等网络中指定的网络控制器建立路由控制通道;所述网络控制器,用于接收到路径创建请求时作为首节点网络控制器进行路径计算,生成P2P路径创建请求消息,并沿路径转发所述P2P路径创建请求消息;还用于接收到所述P2P路径创建请求消息时,向自身管理的交换机下发所述P2P路径创建请求消息中携带的转发流表,完成本地路径创建;还用于作为所述路径上的中间节点网络控制器在完成本地路径创建后,沿所述路径转发所述P2P路径创建请求消息;还用于,作为所述路径上的末节点网络控制器在完成本地路径创建后沿相反路径返回P2P路径创建响应消息;还用于作为路径上的中间节点网络控制器接收到所述P2P路径创建响应消息时,结合本地路径创建结果,更新所述P2P路径创建响应消息,并沿所述相反路径转发更新后的P2P路径创建响应消息;还用于作为首节点网络控制器接收到P2P路径创建响应消息后,结合本地路径创建结果,确定所述路径是否创建成功。优选地,该系统还包括引导服务器,用于向所述交换机指定的网络控制器列表;或者,将所述交换机引导到任意的网络控制器;相应的,所述交换机,还用于与所述引导服务器直接返回的指定的网络控制器列表中的网络控制器建立路由控制通道;或者,根据所述任意的网络控制器返回的信息重定向到指定的网络控制器、并与该指定的网络控制器建立路由控制通道。优选地,所述网络控制器,还用于作为首节点网络控制器生成P2P路径创建请求消息后,向自身管理的交换机下发所述P2P路径创建请求消息中携带的转发流表。优选地,所述网络控制器,还用于作为末节点网络控制器,若本地路径创建成功,沿相反路径返回成功的P2P路径创建响应消息;若本地路径创建失败,沿相反路径返回失败的P2P路径创建响应消息。
优选地,所述网络控制器,还用于作为中间节点网络控制器接收到所述P2P路径创建响应消息时,若本地路径创建成功、且接收到的为成功的P2P路径创建响应消息,则沿所述相反路径转发更新后的、成功的P2P路径创建响应消息;若本地路径创建成功、且接收到的为失败的P2P路径创建响应消息,则沿所述相反路径转发更新后的、失败的P2P路径创建响应消息;若本地路径创建失败,且接收到的为失败或成功的P2P路径创建响应消息,则沿所述相反路径转发更新后的、失败的P2P路径创建响应消息。优选地,所述网络控制器,还用于作为首节点网络控制器接收到P2P路径创建响应消息后,若接收到的为成功的P2P路径创建响应消息、且本地路径创建成功时,确认所述路径创建成功;若接收到的为失败的P2P路径创建响应消息或者本地路径创建失败时,确认所述路径创建失败,并重新进行路径计算。优选地,所述网络控制器,还用于在接收到P2P路径创建响应消息后,若接收到为失败的P2P路径创建响应消息或者本地路径创建失败时,对本地已下发的转发流表进行回滚操作。本发明还提供了一种网络控制器,包括路由控制协议模块、分布式处理模块、路由控制与下发模块和分布式路由协议模块,其中所述路由控制协议模块,用于负责网络控制器与交换机之间路由控制通道的建立以及网络控制器与交换机之间信息的交互;所述分布式处理模块,用于根据所述路由控制与下发模块提供的路径信息生成P2P路径创建请求消息,提供给所述分布式路由协议模块进行转发;还用于根据所述路由控制与下发模块提供的本地路径创建结果生成P2P路径创建响应消息,提供给分布式路由协议模块进行转发;还用于接收所述分布式路由协议模块提供的P2P路径创建请求消息,并将其中携带的转发流表提供给所述路由控制与下发模块;还用于接收所述分布式路由协议模块提供的P2P路径创建响应消息,并根据所述路由控制与下发模块提供的本地路径创建结果对接收的P2P路径创 建响应消息进行更新后,提供给所述分布式路由协议模块进行转发;还用于根据路由控制与下发模块提供的本地路径创建结果和所述分布式路由协议模块提供的P2P路径创建响应消息,确定路径是否创建成功;路由控制与下发模块,用于在首节点网络控制器接收到路径创建请求时进行路径计算,得到路径信息,并提供给所述分布式处理模块;还用于将所述分布式处理模块提供的转发流表通过所述路由控制协议模块下发给对应的交换机,完成本地路径创建,并将本地路径创建结果提供给所述分布式处理模块;所述分布式路由协议模块,用于沿路径转发或接收P2P路径创建请求消息;还用于相反路径转发或接收所述P2P路径创建响应消息;还用于将接收到的P2P路径创建请求消息或P2P路径创建响应消息提供给所述分布式处理模块。优选地,所述分布式处理模块,还用于确定路径创建失败时,通知所述路由控制与下发模块执行转发流表回滚操作;所述路由控制与下发模块,还用于通过所述路由控制协议模块,对下发的转发流表执行回滚操作。本发明基于DHT的控制网络实现方法和系统交换机与分布式对等网络中指定的网络控制器建立路由控制通道;接收到路径创建请求的网络控制器作为首节点网络控制器进行路径计算,生成P2P路径创建请求消息,并沿路径转发P2P路径创建请求消息;路径上接收到P2P路径创建请求消息的网络控制器,向自身管理的交换机下发P2P路径创建请求消息中携带的转发流表,完成各自的本地路径创建;其中,路径上的中间节点网络控制器在完成本地路径创建后,沿路径转发P2P路径创建请求消息,路径上的末节点网络控制器在完成本地路径创建后沿相反路径返回P2P路径创建响应消息;接收到P2P路径创建响应消息的中间节点网络控制器,结合本地路径创建结果,更新P2P路径创建响应消息,并沿相反路径转发更新后的P2P路径创建响应消息;首节点网络控制器接收到P2P路径创建响应消息后,结合本地路径创建结果,确定路径是否创建成功,使得网络路径的计算与下发容易管理。另外,交换机与分布式对等网络中指定的网络控制器建立路由控制通道,使得网络控制器网络实现自组织、交换机自动接入。
图1为本发明实施例提供的基于DHT的SDN网络系统架构示意图;图2为本发明实施例提供的基于DHT的控制网络实现方法;图3为本发明实施例提供的交换机与指定的网络控制器建立路由控制通道的示意
图4为本发明实施例提供的网络控制器进行路径计算与转发的流程;图5为本发明实施例提供的网络控制器处理P2P路径创建请求消息的流程图;图6为本发明实施例提供的网络控制器处理P2P路径创建请求消息的流程图;图7为本发明实施例中网络控制器的结构示意图;图8为本发明实施例中交换机的结构示意图。
具体实施例方式下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。本发明基于DHT的控制网络实现方案基于的网络架构如图1所示。图1是本发明实施例提供的基于DHT的SDN网络系统架构示意图,SDN网络包括交换机网络101、分布式对等网络103和引导服务器105,其中交换机网络101,由多个物理上互连的交换机102组成,交换机102之间通过物理链路进行互联,每个交换机102根据MAC地址或DPID等信息通过哈希(HASH)算法、MID5算法等生成固定长度的交换机标识(ID)。交换机102在上电时通过引导服务器105与指定的网络控制器104之间建立可靠的路由控制通道,进行相关的安全验证、基本信息上报、交换机配置等操作。交换机102完全受网络控制器104控制,对于收到的数据报文,交换机102根据网络控制器104下发的转发流表进行处理,对于查找本地流表无命中的数据报文,交换机102上报给网络控制器104进行处理。分布式对等网络103,是由至少一个网络控制器104组成的分布式DHT网络,如单跳(One-Hop) DHT, Pastry网络等。网络控制器104之间运行分布式路由协议(如资源定位与发现协议(REsource LOcation And Discovery,简称RELOAD协议))进行通信。其中,每个网络控制器104根据IP地址等信息通过哈希(HASH)算法、MID5算法等生成固定长度的网络控制器标识(ID)。需要指出的是网络控制器标识和交换机标识的均为同一固定长度的字符串,例如,对交换机的DPID或MAC地址进行HASH或MID5运算,得到128位的字符串作为标识;对网络控制器的IP地址进行HASH或MID5运算,得到128位的字符串作为标识。每个网络控制器104负责管理一个或多个交换机102 (即一个或多个交换机102分别与一个网络控制器104建立路由控制通道),两者之间的对应关系的建立可以通过分布式算法来确定相关的原则,例如,两者的标识距离最近的交换机102和网络控制器104建立路由控制通道,或者,两者的标识距离大于预定的阈值,且距离最小时,对应的交换机102和网络控制器104建立路由控制通道。当然,网络控制器104和交换机102之间对应关系的建立所依据的原则并不限于上述两种方式,只要通过分布式算法确定的均可应用。每个网络控制器104对所管理的交换机102上报的数据报文进行路由计算,并通过分布式路由协议向所管理的交换机102下发转发流表以完成数据交换。引导服务器105,负责引导交换机102与指定的网络控制器104建立路由控制通道。引导服务器105可以是普通的DNS服务器,负责将交换机102引导到任意的网络控制器104,交换机102再通过该网络控制器104返回的信息重定向到·指定的网络控制器104 ;引导服务器105还可以与分布式对等网络103进行交互,直接将分布式算法确定的网络控制器104通知给交换机102,交换机102直接与该网络控制器104进行路由控制通道建立。本发明实施例提供的基于DHT的控制网络实现方法如图2所示,包括如下步骤步骤201,交换机与分布式对等网络中指定的网络控制器建立路由控制通道。步骤202,接收到路径创建请求的网络控制器作为首节点网络控制器进行路径计算,生成P2P路径创建请求消息,并沿路径转发P2P路径创建请求消息。步骤203,路径上接收到P2P路径创建请求消息的网络控制器,向自身管理的交换机下发P2P路径创建请求消息中携带的转发流表,完成各自的本地路径创建;其中,路径上的中间节点网络控制器在完成本地路径创建后,沿路径转发P2P路径创建请求消息,路径上的末节点网络控制器在完成本地路径创建后沿相反路径返回P2P路径创建响应消息。步骤204,接收到P2P路径创建响应消息的中间节点网络控制器,结合本地路径创建结果,更新P2P路径创建响应消息,并沿相反路径转发更新后的P2P路径创建响应消息;首节点网络控制器接收到P2P路径创建响应消息后,结合本地路径创建结果,确定路径是否创建成功。下面结合附图及具体实施例对本发明上述的方案进行详细说明。步骤201的实现方式包括交换机与引导服务器直接返回的网络控制器列表中的网络控制器建立路由控制通道;或者,引导服务器将交换机引导到任意的网络控制器,交换机根据所述任意的网络控制器返回的信息重定向到指定的网络控制器、并与该指定的网络控制器建立路由控制通道。图3是本发明实施例提供的交换机与指定的网络控制器建立路由控制通道的示意图。其中,如图3 (a)描述的是在交换机加入网络过程中,交换机与引导服务器直接返回的网络控制器列表中的网络控制器建立路由控制通道;图3 (b)描述的是引导服务器执行普通的DNS服务器功能,负责将交换机引导到任意的网络控制器,交换机根据任意的网络控制器返回的信息重定向到指定的网络控制器、并与该指定的网络控制器建立路由控制通道。优选地,本发明实施例所述的路由控制通道可以为OpenFlow协议通道、简单网络管理协议(SNMP, Simple Network Management Protocol)通道或 DIAMATER 通道。
如图3 (a)所示,交换机加入网络的具体步骤描述如下步骤301a、交换机向引导服务器请求与网络控制器建立连接。步骤302a、引导服务器根据分布式算法选择负责管理该交换机的一个网络控制器,并该网络控制器的信息返回给交换机。这里,引导服务器还可根据分布式算法选择负责管理该交换机的一个或多个备份网络控制器,并将备份网络控制器的信息也返回给交换机。优选地,网络控制器的信息可以以列表的形式发送给交换机。该步骤中,选择负责管理该交换机的网络控制器即为上述的依据网络控制器和交换机之间对应关系的建立原则,选择可与当前交换机建立对应关系的网络控制器。步骤303a)、交换机根据引导服务器返回的网络控制器列表,与网络控制器列表中的一个或多个网络控制器建立路由控制通道。引导服务器在返回网络控制器列表时,一般会将根据分布式算法确定的最合适的网络控制器排列在第一位,将其他备份网络控制器依次向后排列。优选地,交换机可以按照排列顺序优先与排列最靠前的一个网络控制器建立路由控制通道。如果与排列在第一位的网络控制器不能建立路由控制通道,则尝试与第二位的网络控制器建立路由控制通道,依次类推。优选地,根据分布式算法,交换机还可以与列表中的多个网络控制器建立路由控制通道,具体如何从列表中选择,通过分布式算法确定。
步骤304a)、网络控制器与交换机建立路由控制通道,将交换机信息及交换机的网络邻居拓扑关系在分布式对等网络中进行更新。如图3 (b)所示,交换机加入网络的具体步骤描述如下步骤301b、交换机向引导服务器请求与网络控制器建立连接。步骤302b、引导服务器执行DNS重定向功能,返回一个网络控制器列表I给交换机。步骤303b、交换机从网络控制器列表I中任意选择一个网络控制器Ci发送OpenFlow协议通道建立请求。步骤304b、网络控制器Ci根据分布式算法选择负责管理该交换机的一个或多个网络控制器,生成网络控制器列表2。(该步骤选择网络控制器的实现与步骤202a相同)步骤305b、网络控制器Ci向交换机返回重定向响应,指示交换机与网络控制器列表2中的网络控制器建立OpenFlow协议通道。步骤306b、交换机根据重定向响应,与网络控制器列表2中的一个或多个网络控制器建立OpenFlow协议通道。该实施例中假设交换机与网络控制器列表2中网络控制器Cj建立OpenFlow协议通道。步骤307b、网络控制器Cj与交换机建立OpenFlow协议通道,将交换机信息及交换机的网络邻居拓扑关系在分布式对等网络中进行更新。上述步骤202的实现方式包括通过路径计算可得到以下的路径信息路径上网络控制器的顺序和路径上交换机的顺序。进行路径计算的网络控制器(首节点网络控制器)生成P2P路径创建请求消息,该消息的目的节点为路径上的最后一个网络控制器、即末节点网络控制器;该消息的路由路径头部由路径上除了末节点网络控制器之外的其他网络控制器的标识组成,优选地,其他网络控制器的标识按路径上的其他网络控制器的顺序排列;该消息的消息体由路径上向各个交换机下发的转发流表组成,优选地,向各个交换机下发的转发流表按照路径上的交换机的顺序排列。在转发时,按照P2P路径创建请求消息的路由路径头部,向下一个网络控制器转发P2P路径创建请求消息。图4是本发明实施例提供的网络控制器进行路径计算与转发的流程。路径计算节点Cl根据网络拓扑信息和主机位置信息计算得到路由路径,根据分布式算法获取路径上各交换机标识和各网络控制器标识生成P2P路径创建请求消息,进行路由路径的转发。具体步骤描述如下步骤401、网络控制器Cl收到路径{src, dst}创建请求,计算路径{src, dst}上的交换机顺序和网络控制器顺序,假设交换机顺序为{SI,S2, S3, S4, S6, S7, S9},网络控制器顺序为{Cl,C2, C3};步骤402、网络控制器Cl根据分布式算法获取路径{src,dst}上的交换机标识序列{H(S1),H(S1),*",H(S9)},并获取路径{src,dst}上的网络控制器标识序列{Ctl_IDl, Ctl_ID2, Ctl_ID3};步骤403、网络控制器CI生成P2P路径创建请求消息,该消息的路由路径头部为{Ctl_IDl,Ctl_ID2};该消息的目的节点为Ctl_ID3 ;该消息的消息体为路径{src, dst}上向各个交换机下发的转发流表{S1:FlowEntry list, S2:FlowEntry list,…,S9:FlowEntry list};步骤404、网络控制器Cl根据路由路径头部{Ctl_IDl,Ctl_ID2},向网络控制器C2转发P2P路径创建请求消息;网络控制器C2根据该消息的目的节点向网络控制器C3转发P2P路径创建请求消息。上述步骤203的实现方式为路径上接收到P2P路径创建请求消息的网络控制器首选向自身管理的交换机下发 P2P路径创建请求消息中携带的转发流表,完成本地路径创建;然后,该网络控制器根据P2P路径创建请求消息的目的节点部判断本节点是否为末节点网络控制器,如果否,按照路由路径头部将P2P路径创建请求消息转发给下一个网络控制器;如果是,即末节点网络控制器沿相反路径向上一个网络控制器返回P2P路径创建响应消息。承接图4所示的实施例,图5是本发明实施例提供的网络控制器处理P2P路径创建请求消息的流程图。网络控制网络收到P2P路径创建请求消息后,对于需要本节点负责的转发流表下发,并根据向下一节点继续转发P2P路径创建请求消息。具体步骤描述如下步骤501,网络控制器C2收到网络控制器Cl转发的P2P路径创建请求消息;步骤502,网络控制器C2首先向所负责的交换机下发对应的转发流表,如网络控制器C2向交换机S2下发转发流表S2:FlowEntry list,向S7下发转发流表S7:FlowEntrylist,完成本地路径创建;步骤503,完成本地路径创建后,网络控制器C2根据P2P路径创建请求消息的目的节点判断本节点是否为路径{src,dst}上的末节点网络控制器;步骤504,由于网络控制器C2不是路径{src,dst}上的末节点网络控制器,因此,网络控制器C2根据目的节点向网络控制器C3转发P2P路径创建请求消息;步骤505,网络控制器C3首先向所负责的交换机下发对应的转发流表,如网络控制器C3向交换机S3下发转发流表S3:FlowEntry list,向S4下发转发流表S4:FlowEntrylist,完成本地路径创建;步骤506,完成本地路径创建后,网络控制器C3根据P2P路径创建请求消息的目的节点判断本节点是否为路径{src,dst}上的末节点网络控制器;步骤507,由于网络控制器C3是路径{src,dst}上的末节点网络控制器,因此,网络控制器C3向上一个节点、即网络控制器C2返回P2P路径创建响应消息。进一步地,在上述步骤203的实现方式中对于路径上的末节点网络控制器,在完成本地路径创建后,若本地路径创建成功,则向上一个网络控制器返回成功的P2P路径创建响应消息;如果本地路径创建失败,向上一个网络控制器返回失败的P2P路径创建响应消息。对于步骤204的实现对路径上的中间节点网络控制器,接收到P2P路径创建响应消息时,根据本地路径创建结果,若本地路径创建成功、且接收到了成功的P2P路径创建响应消息,则相反路径转发更新后的成功的P2P路径创建响应消息;若本地路径创建成功、且接收到的为失败的P2P路径创 建响应消息,则沿相反路径转发更新后的、失败的P2P路径创建响应消息;若本地路径创建失败,且接收到的为失败或成功的P2P路径创建响应消息,则沿相反路径转发更新后的、失败的P2P路径创建响应消息。对于首节点网络控制器,接收到成功的P2P路径创建响应消息、且本地路径创建成功时,确认路径创建成功;接收到失败的P2P路径创建响应消息或者本地路径创建失败时,确认路径创建失败,并重新进行路径计算。承接图4、图5的实施例,图6是本发明实施例提供的网络控制器处理P2P路径创建请求消息的流程图。具体步骤描述如下步骤601,网络控制器C2收到路径{src,dst}上的末节点网络控制器C3发送的失败的P2P路径创建响应消息;步骤602,因为网络控制器C2接收到的为失败的P2P路径创建响应消息,且网络控制器C2不是生成P2P路径创建请求消息的节点,所以,不管网络控制器C2本节点的路径创建是否成功,网络控制器C2都向网络控制器Cl返回失败的P2P路径创建响应消息,同时,网络控制器C2对本地已经下发的转发流表进行回滚操作;步骤603,网络控制器Cl接收到失败的P2P路径创建响应消息,因为网络控制器Cl为生成P2P路径创建请求消息的节点,所以网络控制器Cl确定路径创建失败,则需要重新进行路径计算,同时,网络控制器Cl对本地已经下发的转发流表进行回滚操作。步骤604,网络控制器C2收到路径{src,dst}上的末节点网络控制器C3发送的成功的P2P路径创建响应消息;步骤605,网络控制器C2不是生成P2P路径创建请求消息的节点,网络控制器C2判断本地路径创建是否成功,若成功,执行步骤606 ;若失败,执行步骤607。步骤606,网络控制器C2向上一个网络控制器Cl返回成功的P2P路径创建响应消息,后续的流程包括步骤6061,网络控制器Cl是生成P2P路径创建请求消息的节点,在接收到成功的P2P路径创建响应消息时,判断本地路径创建是否成功,若成功,执行步骤6062,路径创建成功;若失败,执行步骤6063,路径创建失败,需要重新进行路径计算,同时,对本地已经下发的转发流表进行回滚操作。步骤607 ;网络控制器C2向上一个网络控制器Cl返回失败的P2P路径创建响应消息,同时,对本地已经下发的转发流表进行回滚操作,后续的流程包括步骤6071,因为网络控制器Cl是生成P2P路径创建请求消息的节点、即首节点,在接收到失败的P2P路径创建响应消息时,不论本地路径创建是否成功,均确定为路径创建失败,需要重新进行路径计算,同时对本地已经下发的转发流表进行回滚操作。为了实现上述方法,图1中所示各个部分执行的操作为交换机,用于与分布式对等网络中指定的网络控制器建立路由控制通道;网络控制器,用于接收到路径创建请求时作为首节点网络控制器进行路径计算,生成P2P路径创建请求消息,并沿路径转发P2P路径创建请求消息;还用于接收到P2P路径创建请求消息时,向自身管理的交换机下发P2P路径创建请求消息中携带的转发流表,完成本地路径创建;还用于作为路径上的中间节点网络控制器在完成本地路径创建后,沿路径转发P2P路径创建请求消息;还用于,作为路径上的末节点网络控制器在完成本地路径创建后沿相反路径返回P2P路径创建响应消息;还用于作为路径上的中间节点网络控制器接收到P2P路径创建响应消息时,结合本地路径创建结果,更新P2P路径创建响应消息,并沿相反路径转发更新后的P2P路径创建响应消息;还用于作为首节点网络控制器接收到P2P路径创建响应消息后,结合本地路径创建结果,确定路径是否创建成功。引导服务器,用于向交换机指定的网络控制器列表;或者,将交换机引导到任意的网络控制器;相应的,交换机,还用于与引导服务器直接返回的指定的网络控制器列表中的网络控制器建立路由控制通道;或者,根据任意的网络控制器返回的信息重定向到指定的网络控制器、并与该指定的网 络控制器建立路由控制通道。网络控制器,还用于作为首节点网络控制器生成P2P路径创建请求消息后,向自身管理的交换机下发P2P路径创建请求消息中携带的转发流表。网络控制器,还用于作为末节点网络控制器,若本地路径创建成功,沿相反路径返回成功的P2P路径创建响应消息;若本地路径创建失败,沿相反路径返回失败的P2P路径创建响应消息。网络控制器,还用于作为中间节点网络控制器接收到P2P路径创建响应消息时,若本地路径创建成功、且接收到的为成功的P2P路径创建响应消息,则沿相反路径转发更新后的、成功的P2P路径创建响应消息;若本地路径创建成功、且接收到的为失败的P2P路径创建响应消息,则沿相反路径转发更新后的、失败的P2P路径创建响应消息;若本地路径创建失败,且接收到的为失败或成功的P2P路径创建响应消息,则沿相反路径转发更新后的、失败的P2P路径创建响应消息。网络控制器,还用于作为首节点网络控制器接收到P2P路径创建响应消息后,若接收到的为成功的P2P路径创建响应消息、且本地路径创建成功时,确认路径创建成功;若接收到的为失败的P2P路径创建响应消息或者本地路径创建失败时,确认路径创建失败,并重新进行路径计算。网络控制器,还用于在接收到P2P路径创建响应消息后,若接收到为失败的P2P路径创建响应消息或者本地路径创建失败时,对本地已下发的转发流表进行回滚操作。
具体的,本发明实施例中网络控制器的结构如图7所示,主要功能模块包括路由控制协议模块701、路由控制与下发模块702、分布式处理模块703、分布式路由协议模块704和信息存储模块705,其中路由控制协议模块701,主要负责网络控制器与交换机之间的路由控制通道的建立与维护,以及网络控制器和交换机之间的信息传递。例如在处理交换机的路由控制通道的建立请求时,若交换机标识与网络控制器标识的对应关系不符合分布式算法时,则通过路由控制与下发模块702向分布式处理模块703查询管理所述交换机的网络控制器列表,并通过重定向响应将该网络控制器列表返回给交换机。网络控制器和交换机之间的交互信息包括通信安全验证、交换机信息上报、交换机基本配置功能、交换机数据报文上报、交换机流表的下发与管理等。路由控制与下发模块702,负责执行路径计算和转发流表的下发、回滚等操作。对网络拓扑变化事件或用户数据的转发请求,路由控制与下发模块702根据信息存储模块705中的网络拓扑和/或主机位置信息,进行路径计算,并与分布式处理模块703交互生成P2P路径创建请求消息。对来自分布式处理模块703的P2P路径创建请求消息,路由控制与下发模块702向本节点负责的交换机通过路由控制协议模块701下发相关转发流表。对来自分布式处理模块703的P2P路径创建响应消息,若为失败,路由控制与下发模块702向本节点负责的交换机通过路由控制协议模块701删除下发的转发流表、即回滚操作。具体的路由控制与下发模块702在·首节点网络控制器接收到路径创建请求时进行路径计算,得到路径信息,并提供给分布式处理模块703.;还用于将分布式处理模块703提供的转发流表通过路由控制协议模块701下发给对应的交换机,完成本地路径创建,并将本地路径创建结果提供给分布式处理模块703。分布式处理模块703,负责分布式对等网络的业务处理,如P2P路径创建请求消息的处理。当进行路径创建时,根据路由控制与下发模块702提供的路径信息,生成P2P路径创建请求消息;处理P2P路径创建请求消息时,将转发流表提供给路由控制与下发模块702进行下发;处理P2P路径创建响应消息是,对于失败响应,通知路由控制与下发模块702将对下发的转发流表执行回滚操作。具体的分布式处理模块703根据路由控制与下发模块702提供的路径信息生成P2P路径创建请求消息,提供给分布式路由协议模块704进行转发;还用于根据路由控制与下发模块702提供的本地路径创建结果生成P2P路径创建响应消息,提供给分布式路由协议模块704进行转发;还用于接收分布式路由协议模块704提供的P2P路径创建请求消息,并将其中携带的转发流表提供给路由控制与下发模块703 ;还用于接收分布式路由协议模块704提供的P2P路径创建响应消息,并根据路由控制与下发模块702提供的本地路径创建结果对接收的P2P路径创建响应消息进行更新后,提供给分布式路由协议模块704进行转发;还用于根据路由控制与下发模块702提供的本地路径创建结果和分布式路由协议模块704提供的P2P路径创建响应消息,确定路径是否创建成功;分布式路由协议模块704,负责与其它网络控制器进行消息交互,包括分布式路由表的维护、P2P路径创建请求消息和P2P路径创建响应消息的路由等。信息存储模块,负责网络控制器上相关数据的存储,主要包括本节点管理的交换机状态及对应的转发流表,以及根据分布式算法本节点负责管理的主机位置数据、全局网络拓扑数据的存储等。
具体的,本发明实施例中交换机的结构如图8所示,主要功能模块包括路由控制协议模块801、交换机控制模块802和报文转发功能模块803。其中路由控制协议模块801,负责网络控制器与交换机之间的路由控制通道的建立与维护,以及网络控制器和交换机之间的信息传递。在向网络控制器发送路由控制通道的建立请求时,对于网络控制器返回的重定向响应,可以向新的网络控制器重新发起路由控制通道建立请求。网络控制器和交换机之间的交互信息包括通信安全验证、交换机信息上报、交换机基本配置功能、交换机数据报文上报、交换机流表的下发与管理等。交换机控制模块802,负责将相关的转发面数据报文通过路由控制协议模块801上报给网络控制器,将网络控制器下发的转发流表映射为报文转发功能模块803的硬件要求的格式,下发到报文转发功能模块803。报文转发功能模块803,负责维护硬件上的转发流表,并对数据报文进行匹配处理与转发。以上所述,仅 为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种基于DHT的控制网络实现方法,其特征在于,该方法包括 交换机与分布式对等网络中指定的网络控制器建立路由控制通道; 接收到路径创建请求的网络控制器作为首节点网络控制器进行路径计算,生成P2P路径创建请求消息,并沿路径转发所述P2P路径创建请求消息; 所述路径上接收到所述P2P路径创建请求消息的网络控制器,向自身管理的交换机下发所述P2P路径创建请求消息中携带的转发流表,完成各自的本地路径创建;其中,所述路径上的中间节点网络控制器在完成本地路径创建后,沿所述路径转发所述P2P路径创建请求消息,所述路径上的末节点网络控制器在完成本地路径创建后沿相反路径返回P2P路径创建响应消息; 接收到所述P2P路径创建响应消息的中间节点网络控制器,结合本地路径创建结果,更新所述P2P路径创建响应消息,并沿所述相反路径转发更新后的P2P路径创建响应消息;首节点网络控制器接收到P2P路径创建响应消息后,结合本地路径创建结果,确定所述路径是否创建成功。
2.根据权利要求1所述基于DHT的控制网络实现方法,其特征在于,所述交换机与分布式对等网络中指定的网络控制器建立路由控制通道,包括 交换机与引导服务器直接返回的指定的网络控制器列表中的网络控制器建立路由控制通道;或者,引导服务器将交换机引导到任意的网络控制器,交换机根据所述任意的网络控制器返回的信息重定向到指定的网络控制器、并与该指定的网络控制器建立路由控制通道。
3.根据权利要求2所述基于DHT的控制网络实现方法,其特征在于,所述路由控制通道为OpenFlow协议通道、SNMP通道或DIAMATER通道。
4.根据权利要求1所述基于DHT的控制网络实现方法,其特征在于,所述路径计算得到路径上网络控制器的顺序和路径上交换机的顺序。
5.根据权利要求4所述基于DHT的控制网络实现方法,其特征在于, 所述P2P路径创建请求消息的目的节点为所述路径上的末节点网络控制器; 所述P2P路径创建请求消息的路由路径头部由所述路径上除了末节点网络控制器之外的其他网络控制器的标识组成; 所述P2P路径创建请求消息的消息体由所述路径上向各个交换机下发的转发流表组成。
6.根据权利要求5所述基于DHT的控制网络实现方法,其特征在于, 所述其他网络控制器的标识按所述路径上的所述其他网络控制器的顺序排列; 所述向各个交换机下发的转发流表按照所述路径上的交换机的顺序排列。
7.根据权利要求1至6任一所述基于DHT的控制网络实现方法,其特征在于,所述首节点网络控制器生成P2P路径创建请求消息后,该方法还包括所述首节点网络控制器向自身管理的交换机下发所述P2P路径创建请求消息中携带的转发流表。
8.根据权利要求7所述基于DHT的控制网络实现方法,其特征在于,所述路径上的末节点网络控制器在完成本地路径创建后沿相反路径返回P2P路径创建响应消息,为 若本地路径创建成功,所述末节点网络控制器返回成功的P2P路径创建响应消息;若本地路径创建失败,所述末节点网络控制器返回失败的P2P路径创建响应消息。
9.根据权利要求8所述基于DHT的控制网络实现方法,其特征在于,接收到所述P2P路径创建响应消息的中间节点网络控制器,结合本地路径创建结果,更新所述P2P路径创建响应消息,并沿所述相反路径转发更新后的P2P路径创建响应消息,为 若本地路径创建成功、且接收到的为成功的P2P路径创建响应消息,则沿所述相反路径转发更新后的、成功的P2P路径创建响应消息; 若本地路径创建成功、且接收到的为失败的P2P路径创建响应消息,则沿所述相反路径转发更新后的、失败的P2P路径创建响应消息; 若本地路径创建失败,且接收到的为失败或成功的P2P路径创建响应消息,则沿所述相反路径转发更新后的、失败的P2P路径创建响应消息。
10.根据权利要求9所述基于DHT的控制网络实现方法,其特征在于,首节点网络控制器接收到P2P路径创建响应消息后,结合本地路径创建结果,确定所述路径是否创建成功,为 首节点网络控制器接收到成功的P2P路径创建响应消息、且本地路径创建成功时,确认所述路径创建成功; 首节点网络控制器接收到失败的P2P路径创建响应消息或者本地路径创建失败时,确认所述路径创建失败,并重新进行路径计算。
11.根据权利要求10所述基于DHT的控制网络实现方法,其特征在于,所述路径上的网络控制器接收到P2P路径创建响应消息后该方法还包括若接收到为失败的P2P路径创建响应消息或者本地路径创建失败时,网络控制器对本地已下发的转发流表进行回滚操作。
12.—种基于DHT的控制网络实现系统,其特征在于,该系统包括交换机和网络控制器,其中 所述交换机,用于与分布式对等网络中指定的网络控制器建立路由控制通道; 所述网络控制器,用于接收到路径创建请求时作为首节点网络控制器进行路径计算,生成P2P路径创建请求消息,并沿路径转发所述P2P路径创建请求消息;还用于接收到所述P2P路径创建请求消息时,向自身管理的交换机下发所述P2P路径创建请求消息中携带的转发流表,完成本地路径创建;还用于作为所述路径上的中间节点网络控制器在完成本地路径创建后,沿所述路径转发所述P2P路径创建请求消息;还用于,作为所述路径上的末节点网络控制器在完成本地路径创建后沿相反路径返回P2P路径创建响应消息;还用于作为路径上的中间节点网络控制器接收到所述P2P路径创建响应消息时,结合本地路径创建结果,更新所述P2P路径创建响应消息,并沿所述相反路径转发更新后的P2P路径创建响应消息;还用于作为首节点网络控制器接收到P2P路径创建响应消息后,结合本地路径创建结果,确定所述路径是否创建成功。
13.根据权利要求12所述基于DHT的控制网络实现系统,其特征在于,该系统还包括引导服务器,用于向所述交换机指定的网络控制器列表;或者,将所述交换机引导到任意的网络控制器; 相应的,所述交换机,还用于与所述引导服务器直接返回的指定的网络控制器列表中的网络控制器建立路由控制通道;或者,根据所述任意的网络控制器返回的信息重定向到指定的网络控制器、并与该指定的网络控制器建立路由控制通道。
14.根据权利要求12或13所述基于DHT的控制网络实现系统,其特征在于,所述网络控制器,还用于作为首节点网络控制器生成P2P路径创建请求消息后,向自身管理的交换机下发所述P2P路径创建请求消息中携带的转发流表。
15.根据权利要求14所述基于DHT的控制网络实现系统,其特征在于, 所述网络控制器,还用于作为末节点网络控制器,若本地路径创建成功,沿相反路径返回成功的P2P路径创建响应消息;若本地路径创建失败,沿相反路径返回失败的P2P路径创建响应消息。
16.根据权利要求15所述基于DHT的控制网络实现系统,其特征在于, 所述网络控制器,还用于作为中间节点网络控制器接收到所述P2P路径创建响应消息时,若本地路径创建成功、且接收到的为成功的P2P路径创建响应消息,则沿所述相反路径转发更新后的、成功的P2P路径创建响应消息;若本地路径创建成功、且接收到的为失败的P2P路径创建响应消息,则沿所述相反路径转发更新后的、失败的P2P路径创建响应消息;若本地路径创建失败,且接收到的为失败或成功的P2P路径创建响应消息,则沿所述相反路径转发更新后的、失败的P2P路径创建响应消息。
17.根据权利要求16所述基于DHT的控制网络实现系统,其特征在于, 所述网络控制器,还用于作为首节点网络控制器接收到P2P路径创建响应消息后,若接收到的为成功的P2P路径创建响应消息、且本地路径创建成功时,确认所述路径创建成功;若接收到的为失败的P2P路径创建响应消息或者本地路径创建失败时,确认所述路径创建失败,并重新进行路径计算。
18.根据权利要求17所述基于DHT的控制网络实现系统,其特征在于, 所述网络控制器,还用于在接收到P2P路径创建响应消息后,若接收到为失败的P2P路径创建响应消息或者本地路径创建失败时,对本地已下发的转发流表进行回滚操作。
19.一种网络控制器,其特征在于,包括路由控制协议模块、分布式处理模块、路由控制与下发模块和分布式路由协议模块,其中 所述路由控制协议模块,用于负责网络控制器与交换机之间路由控制通道的建立以及网络控制器与交换机之间信息的交互; 所述分布式处理模块,用于根据所述路由控制与下发模块提供的路径信息生成P2P路径创建请求消息,提供给所述分布式路由协议模块进行转发;还用于根据所述路由控制与下发模块提供的本地路径创建结果生成P2P路径创建响应消息,提供给分布式路由协议模块进行转发;还用于接收所述分布式路由协议模块提供的P2P路径创建请求消息,并将其中携带的转发流表提供给所述路由控制与下发模块;还用于接收所述分布式路由协议模块提供的P2P路径创建响应消息,并根据所述路由控制与下发模块提供的本地路径创建结果对接收的P2P路径创建响应消息进行更新后,提供给所述分布式路由协议模块进行转发;还用于根据路由控制与下发模块提供的本地路径创建结果和所述分布式路由协议模块提供的P2P路径创建响应消息,确定路径是否创建成功; 路由控制与下发模块,用于在首节点网络控制器接收到路径创建请求时进行路径计算,得到路径信息,并提供给所述分布式处理模块;还用于将所述分布式处理模块提供的转发流表通过所述路由控制协议模块下发给对应的交换机,完成本地路径创建,并将本地路径创建结果提供给所述分布式处理模块; 所述分布式路由协议模块,用于沿路径转发或接收P2P路径创建请求消息;还用于相反路径转发或接收所述P2P路径创建响应消息;还用于将接收到的P2P路径创建请求消息或P2P路径创建响应消息提供给所述分布式处理模块。
20.根据权利要求19所述网络控制器,其特征在于, 所述分布式处理模块,还用于确定路径创建失败时,通知所述路由控制与下发模块执行转发流表回滚操作; 所述路由控制与下发模块,还用于通过所述路由控制协议模块,对下发的转发流表执行回滚操作。
全文摘要
本发明公开了一种基于DHT的控制网络实现方法和系统,包括交换机与分布式对等网络中指定的网络控制器建立路由控制通道;首节点网络控制器生成P2P路径创建请求消息,并沿路径转发,直到末节点网络控制器;路径上的每个网络控制器根据P2P路径创建请求消息,向自身管理的交换机下发P2P路径创建请求消息中携带的转发流表,完成各自的本地路径创建;首节点网络控制器根据接收到的P2P路径创建响应并结合本地路径创建结果确定路径是否创建成功。本发明还公开了一种网络控制器。通过本发明使得网络控制器网络实现自组织、交换机自动接入,同时使得网络路径的计算与下发容易管理。
文档编号H04L29/08GK103051539SQ20121054359
公开日2013年4月17日 申请日期2012年12月14日 优先权日2012年12月14日
发明者胡永生 申请人:中兴通讯股份有限公司