交换机自动部署的软件定义网络系统及其方法与流程

文档序号:17048803发布日期:2019-03-05 19:49阅读:318来源:国知局
本发明关于一种软件定义网络交换机的自动部署方法。
背景技术
::现今大部分的网络架构仍建立于扩展树协议(spanningtreeprotocol,stp)上的三层式体系结构,透过各种传输协议传送封包。然而,随着云端应用服务及巨量数据需求日益增加,封包传送所用的路由表愈来愈复杂,使得目前的网络架构愈来愈不敷使用。为实现各种传输协议,交换机(switch)或是路由器(router)经常需要拆分及重组封包,导致传输效率不佳,无法有效利用网络带宽。软件定义网络(softwaredefinednetworking,sdn)是一种网络控制虚拟化的概念,sdn将网络设备中的控制平面(controlplane)与转发平面(forwardingplane)分离,通过一个称为控制器(controller)的软件统一管理控制平面,在不更动硬件装置的前提下,以中央控制方式,用程序重新规划网络,为控制网络流量提供了新的方法,也提供了核心网络及应用创新的良好平台。sdn的集中控管与可程序化等特性,可大幅提升网络运作的弹性与效能,同时降低营运与管理成本。开放流(openflow)是专为sdn所设计的一种网络协议。openflow提供统一的接口使控制平面和转送平面能正确沟通,并且让控制器设定交换机的转送平面,从而改变封包所走的路径。openflow已被广泛的应用于sdn网络设备中。对于大型数据中心而言,在网络设备布建初期,每台交换机都有大量配置参数需要设定,例如此交换机的网络地址、可用的端口号。而在openflow运行的sdn架构中,还需要在交换机上设置对应此交换机的控制器网络地址与控制器端口号、连接协议类型、控制器连接模式及openflow版本等。当网络管理人员设定各种网络参数时,通常需要逐一登入每台交换机,然后使用命令执行接口(command-lineinterface,cli)设定参数。这种方式不仅相当麻烦也费时,此外,这种方式也无法因应网络架构变动而迅速作出适应性调整。并且人为设置相当容易失误,一旦网络管理人员输入错误的指令或遗漏某项设定参数,将提升造成网络服务瘫痪的风险。虽然,在sdn中已经有交换机主动请求配置的方法,例如交换机使用动态主机设定协议(dynamichostconfigurationprotocol,dhcp)、以太网上的对等协议(point-to-pointprotocoloverethernet,pppoe)或地址解析协议(addressresolutionprotocol,arp)向控制器要求设定交换机的网络地址时,交换机透过上述协议封包格式的扩充字段,要求控制器回传其他配置参数。但是这种交换机主动的方式往往只有一次性,当控制器想要更改配置参数的时候,又需要透过别的方式与交换机取得联系,前后配置方式的不一致将增加管理上的不便。另外,若网络管理人员为了向下兼容而采取软件定义网络和传统分布式网络通过路由器(router)或网关(gateway)连接组成的混合型网络架构时,前述在局域网络(localareanetwork,lan)中使用的通信协议,若交换机与控制器使用频内(in-band)连接,则无法让配置封包跨越路由器或网关抵达另一个子网(subnet),这也增加了实现网络中所有交换机自动配置的困难度。技术实现要素:有鉴于此,本发明提出一个交换机自动部署的软件定义网络系统及其方法,从而解决人工设定交换机配置参数容易出错的问题、提升更改配置参数的便利性,让配置参数的设定能够跨越不同的子网,并适用于多控制器的软件定义网络。依据本发明的一实施例所叙述的交换机自动部署方法,适用于软件定义网络系统,软件定义网络系统包括控制器通信连接交换机,所述的自动部署方法包括:控制器发送配置信息至交换机,配置信息包括控制器的网络地址及多个配置参数,配置参数包括控制器的端口号及连接协议类型;交换机接收配置信息,以及交换机依据网络地址及配置参数与控制器建立连接。依据本发明的另一实施例所叙述的一种交换机自动部署方法,其中交换机属于交换机网络,交换机网络具有多个交换机彼此通信连接,且在交换机与控制器建立连接之后,该控制器发送绕送规则至该交换机,该交换机依据该绕送规则发送或不发送该配置信息,其中该绕送规则包括交换机输入端口号及动作指令。依据本发明的另一实施例所叙述的一种交换机自动部署方法,其中交换机具有配置列表用以记录网络地址及配置参数,交换机依据网络地址及配置参数与该控制器建立连接时,交换机执行连接程序,连接程序包括:当配置列表为空,则交换机将配置信息新增至配置列表并依据网络地址及配置参数建立连接至控制器,且将控制器设成交换机的主要控制器;当配置列表不为空且配置列表中不存在配置信息的网络地址时,则交换机将配置信息新增至配置列表并依据新增的网络地址及配置参数建立连接至控制器,且将控制器设成交换机的从属控制器;当配置列表不为空且配置列表中存在配置信息的网络地址时,则交换机依据配置参数的值更新配置列表。依据本发明的另一实施例所叙述的一种交换机自动部署方法,其中在控制器发送配置信息之后,控制器发送另一配置信息至交换机,另一配置信息包括控制器的网络地址及配置参数。在交换机接收另一配置信息及绕送规则之后,交换机执行转发程序,转发程序包括:交换机比对另一配置信息的输入端口号与绕送规则的交换机输入端口号是否相同,当另一配置信息的输入端口号与绕送规则的交换机输入端口号相同时,交换机依据动作指令以广播封包格式发送另一配置信息至邻接交换机的其他交换机,当另一配置信息的输入端口号与绕送规则的交换机输入端口号不相同时,交换机依据动作指令舍弃另一配置信息或回传另一配置信息至控制器。依据本发明的一实施例所叙述的一种交换机自动部署的软件定义网络系统,适用于软件定义网络,包括:控制器,控制器发送配置信息,配置信息包括控制器的网络地址及多个配置参数,配置参数包括控制器的端口号及连接协议类型;以及交换机,交换机通信连接控制器,交换机接收配置信息并依据网络地址及配置参数与控制器建立连接。依据本发明的另一实施例所叙述的一种交换机自动部署的软件定义网络系统,其中交换机属于交换机网络,交换机网络具有多个交换机彼此通信连接,且在交换机与控制器建立连接之后,控制器发送绕送规则至交换机,交换机依据绕送规则发送或不发送配置信息,其中绕送规则包括一交换机输入端口号及动作指令。依据本发明的另一实施例所叙述的一种交换机自动部署的软件定义网络系统,其中交换机具有配置列表用以记录网络地址及配置参数,交换机依据网络地址及配置参数与控制器建立连接时,交换机执行连接程序,连接程序包括:当配置列表为空,则交换机将配置信息新增至配置列表并依据网络地址及配置参数建立连接至控制器,且控制器成为交换机的主要控制器;当配置列表不为空且配置列表中不存在配置信息的网络地址时,则交换机将配置信息新增至配置列表并依据新增的网络地址及配置参数建立连接至控制器,且控制器成为交换机的从属控制器;当配置列表不为空且配置列表中存在配置信息的网络地址时,则交换机依据配置参数的值更新配置列表。依据本发明的另一实施例所叙述的一种交换机自动部署的软件定义网络系统,其中在控制器发送配置信息之后,控制器发送另一配置信息至交换机,另一配置信息包括控制器的网络地址及配置参数。在该交换机接收另一配置信息及绕送规则之后,交换机执行转发程序,转发程序包括:交换机比对另一配置信息的输入端口号与绕送规则的交换机输入端口号是否相同,当另一配置信息的输入端口号与绕送规则的交换机输入端口号相同时,交换机依据动作指令以广播封包格式发送另一配置信息至邻接交换机的其他交换机,当另一配置信息的输入端口号与绕送规则的交换机输入端口号不相同时,交换机依据动作指令舍弃另一配置信息或回传另一配置信息至控制器。控制器具有时间设定值,时间设定值可以是常数或变量,时间设定值用以调整控制器发送配置信息及另一配置信息的间隔时间。依据本发明的一实施例所叙述的一种自动配置交换机的方法,适用于多个交换机且该些交换机通信连接至控制器,包括:这些交换机其中的一交换机接收配置信息,配置信息包括控制器的网络地址及多个配置参数,配置参数包括控制器的端口号及连接协议类型;以及接收配置信息的交换机依据网络地址及配置参数与控制器建立连接。依据本发明的另一实施例所叙述的一种自动配置交换机的方法,其中在接收配置信息的交换机与控制器建立连接之后,接收配置信息的交换机接收控制器所发送的绕送规则并依据绕送规则发送或不发送配置信息,其中绕送规则包括交换机输入端口号及动作指令。依据本发明的另一实施例所叙述的一种自动配置交换机的方法,其中接收配置信息的交换机具有配置列表用以记录网络地址及配置参数,接收配置信息的交换机依据网络地址及配置参数与控制器建立连接时,接收配置信息的交换机执行连接程序,连接程序包括:当配置列表为空,则接收配置信息的交换机将配置信息新增至配置列表并依据网络地址及配置参数建立连接至控制器,且将控制器设为接收配置信息的交换机的主要控制器;当配置列表不为空且配置列表中不存在配置信息的网络地址时,则接收配置信息的交换机将配置信息新增至配置列表并依据新增的网络地址及配置参数建立连接至控制器,且将控制器设为接收配置信息的交换机的从属控制器;当配置列表不为空且配置列表中存在配置信息的网络地址时,则接收配置信息的交换机依据配置参数的值更新配置列表。依据本发明的另一实施例所叙述的一种自动配置交换机的方法,其中在接收配置信息的交换机接收配置信息之后,此交换机接收另一配置信息,另一配置信息包括控制器的网络地址及配置参数。在接收配置信息的交换机接收另一配置信息及该绕送规则之后,此交换机执行转发程序,转发程序包括:接收配置信息的交换机比对另一配置信息的输入端口号与绕送规则的交换机输入端口号是否相同,当另一配置信息的输入端口号与绕送规则的交换机输入端口号相同时,此交换机依据动作指令以广播封包格式发送另一配置信息至与此交换机邻接的其他交换机,当另一配置信息的输入端口号与绕送规则的交换机输入端口号不相同时,接收配置信息的交换机依据动作指令舍弃另一配置信息或回传另一配置信息至控制器。依据本发明的一实施例所叙述的一种自动配置的交换机,适用于软件定义网络系统,软件定义网络系统包括控制器通信连接交换机,所述的自动配置的交换机包括:信号收发器用以接收配置信息,其中配置信息包括该控制器的网络地址及多个配置参数,配置参数包括控制器的端口号及连接协议类型;储存装置用以储存网络地址及配置参数;以及运算处理器用以依据网络地址及配置参数建立连接至控制器。依据本发明的另一实施例所叙述的一种自动配置的交换机,其中交换机属于交换机网络,交换机网络具有多个交换机彼此通信连接,储存装置更用以储存绕送规则,运算处理器更用以依据绕送规则控制信号收发器发送或不发送配置信息,其中绕送规则包括交换机输入端口号及动作指令。依据本发明的另一实施例所叙述的一种自动配置的交换机,其中储存装置更包括配置列表用以记录网络地址及配置参数,交换机依据配置信息与控制器建立连接时,运算处理器执行连接程序,连接程序包括:当配置列表为空,运算处理器将配置信息新增至配置列表并依据网络地址及该配置参数控制信号收发器建立连接至控制器,且将控制器设为交换机的主要控制器;当配置列表不为空且配置列表中不存在配置信息的网络地址时,运算处理器将配置信息新增至配置列表并依据新增的网络地址及配置参数控制信号收发器建立连接至控制器,且将控制器设为交换机的从属控制器;当配置列表不为空且配置列表中存在网络地址时,运算处理器依据这些配置参数更新配置列表。依据本发明的另一实施例所叙述的一种自动配置的交换机,其中在信号收发器接收控制器发送的另一配置信息之后,运算处理器执行转发程序,转发程序包括:运算处理器比对信号收发器接收另一配置信息的输入端口号与绕送规则的交换机输入端口号是否相同,当信号收发器接收另一配置信息的输入端口号与绕送规则的交换机输入端口号相同时,运算处理器依据动作指令以广播封包格式透过信号收发器发送另一配置信息至邻接交换机的其他交换机,当信号收发器接收另一配置信息的输入端口号与绕送规则的交换机输入端口号不相同时,运算处理器依据动作指令舍弃另一配置信息或回传另一配置信息至控制器。通过上述本发明所揭露的交换机自动部署的软件定义网络系统及交换机的自动部署方法,由于从控制器主动发送配置信息及绕送规则至交换机,交换机可依据配置信息设置相关配置参数,并依据绕送规则自动转发配置信息至其他交换机或回传配置信息至控制器,从而实现网络中所有交换机的自动部署;并且容易透过控制器更改交换机的各项配置参数,节省人力手动连接至交换机设定配置参数的时间,消除人为设置发生失误的可能;而且通过控制器将配置信息封包透过特定的网络协议以已群播方式发送,可让配置信息跨越连接两个子网的路由器,达成更高的自动部署配置比率。以上的关于本揭露内容的说明及以下的实施方式的说明是用以示范与解释本发明的精神与原理,并且提供本发明的权利要求更进一步的解释。附图说明图1是本发明一实施例中的软件定义网络系统的通信连接示意图。图2是本发明另一实施例中的交换机自动部署方法流程图。图3是本发明另一实施例中的连接程序方法流程图。符号说明1软件定义网络系统12信号收发器14储存装置16运算处理器c控制器sn交换机网络s1~s5交换机e1~e6通信连接s21~s25、s40~s47步骤具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。以下在实施方式中详细叙述本案的详细特征,其内容足以使本领域技术人员了解本发明的技术内容并据以实施,且根据本说明书所揭露的内容、权利要求及附图,本领域技术人员可轻易地理解本案。以下的实施例是进一步详细说明本案,但非用以限制本案的范畴。在后面实施例中,为便于叙述,所提及的“控制器”是指软件定义网络(softwaredefinednetwork,sdn)控制器(controller)。所提及的“交换机”是可为支持开放流(openflow)通信协议、netconf通信协议、ovsdb通信协议或xmpp通信协议的交换机(switch)。本案一种交换机自动部署的软件定义网络系统的一实施例,适用于运行上述通信协议的一软件定义网络。如图1所示,此交换机的自动部署系统包括:一控制器c及一交换机网络sn,且控制器c通信连接至交换机网络sn,交换机网络sn包括多个交换机s1~s5,且交换机s1~s5彼此通信连接。然而本发明并未限制控制器c及交换机网络sn的数量。在其他实施例中,本发明所适用的交换机自动部署的软件定义网络系统亦可以仅具有控制器c及单一个交换机。实际中,网络管理人员可根据sdn应用场景,建立一个或多个控制器通信连接至一个或多个交换机网络的软件定义网络系统。建立通信连接的双方可互相发送/接收信息,所述通信连接是泛指可互相传递电信信息的连接关系。例如在交换机网络sn中,信息传送的路径可以是两台交换机间的直接连接,如图1中的交换机s1经由实体连接e1通信连接至交换机s2;然而信息传送的路径也可以是透过若干台交换机的转接形成的间接连接,如交换机s1经由实体连接e1、e2并透过交换机s2的转接连接到交换机s3。实际中,控制器c是软件定义网络中的应用程序,运行于一服务器、一个人计算机或其他可执行此应用程序并具有网络通信功能的电子装置。交换机s1~s5例如是一高效能硬件交换机、一商用芯片交换机或一运行于服务器上的交换机软件。在本发明实施例中,并未限制控制器或交换机的硬件种类。在一实施例中,控制器c多次输出配置信息以配置交换机网络sn中的所有交换机s1~s5。控制器c更透过改变发送间隔时间以调整配置信息输出频率。本实施例交换机网络sn的硬设备已布建完成,当控制器c启动后随即周期性地发送配置信息;在实际sdn应用场景,交换机网络sn可视需求新增交换机,控制器c在侦测到新交换机上线时发送配置信息,而非仅受限于间隔时间的规范。配置信息的内容包括此控制器c的因特网协议(internetprotocol,ip)地址及多个配置参数。配置参数包括控制器端口号及连接协议类型。连接协议类型例如:传输控制协议(transmissioncontrolprotocol,tcp)、传输层安全协议(transportlayersecurity,tls)、串流控制传输协议(streamcontroltransmissionprotocol,sctp)或安全通信协议(securesocketslayer,ssl)等。在其他实施例中,配置参数除前述三者,更包括控制器连接模式及通信协议版本号,实际中,网络管理人员可根据sdn应用场景而增删配置参数类型,本发明的配置信息的内容不以上述信息为限。在一实施例中,控制器c将配置信息封装成广播封包或群播封包的格式。广播封包格式例如是sdn中广泛使用的链路层发现协议数据单元(linklayerdiscoveryprotocoldataunit,lldpdu),控制器将本身的ip地址及多个配置参数组织成不同的tlv(type/length/value,类型/长度/值)然后写入lldpdu的可选(optional)tlvs字段,并将此广播封包发送至交换机网络sn中邻接此控制器的交换机,如图1中控制器c经由e1将广播封包发送给邻接的交换机s1。群播封包例如是ip头文件(header),控制器c将本身的ip地址及多个配置参数写入ipheader的options字段,并将此群播封包发送至交换机网络sn中邻接此控制器的交换机s1。在一实施例中,控制器c使用ip群播封包发送配置信息,因此可确保控制器c发送的配置信息不被路由器或网关区分的子网挡住。在控制器c以固定周期发送配置信息的时候,若控制器c接收到来自交换机s1的一连接请求,则此连接请求可使控制器c与交换机s1执行连接程序以建立连接(connection),在交换机s1确认与控制器c连接成功后,交换机s1将控制器c设定为主要控制器(master)或是从属控制器(slave),两者的区别在于主要控制器具有完整控制的交换机权限,而从属控制器仅具有读取交换机状态的权限。在控制器c主动发送配置信息至交换机的前提下,若接收配置信息的交换机为交换机网络sn中的任一交换机(以下以交换机s1为例),则交换机s1可依据此配置信息中的网络地址及配置参数送出连接请求至控制器c,且此时控制器c的角色为交换机s1的主要控制器。此外,交换机s1亦将此配置信息发送至邻接交换机s1的其他交换机;或者,在交换机s1未邻接任何其他交换机时,交换机s1将配置信息回传至控制器c。控制器c可在连接建立后将一绕送规则发送至交换机s1。于一实施例中,当运行的通信协议为openflow协议时,此绕送规则为flowmod信息格式,且绕送规则为流表项(flowentry)的一部分。流表项包括匹配区域(matchfield)、优先序(priority)、计数器(counter)、指令(instruction)、逾时(timeout)及小型文本文件(cookie)等字段。在一实施例中,绕送规则包括matchfield字段中的以太类型(ethernettype,eth_type)、交换机输入端口号(ingressport,in_port)及指令字段中的动作指令(applyaction),此外绕送规则还可进一步包括控制器的网络地址(ipaddress或macaddress)。此绕送规则用以指示当交换机s1收到配置信息封包时应如何处理,以提升配置信息在交换机网络sn中的传送效率。后文述及一实施例中接收到绕送规则的交换机s1时,将更详细叙述交换机s1应用此绕送规则的方式。另须注意的是:在一实施例中,控制器c发送一适用于配置信息的绕送规则;实际中,在连接建立后,网络管理人员可根据应用场景指示控制器c一次发送多个绕送规则,其中除了用于配置信息的绕送规则之外,其他绕送规则可例如是一般数据封包的处理方式。换言之,本发明并不限制控制器c发送绕送规则的数量及绕送规则所针对的封包类型。另需注意的是:在一实施例中,交换机s1并非必须在取得绕送规则之后,才将所接收的配置信息发送至邻接交换机s1的其他交换机。例如交换机s1也可在接收本次配置信息的当下(尚未取得绕送规则)即先发送此一配置信息,而在接收下一次的配置信息时(已取得绕送规则),才依据绕送规则发送配置信息。请参考图1。在一实施例中,交换机网络sn包括多个彼此通信连接且结构相同的交换机s1~s5。详言之,每台交换机具有信号收发器12、储存装置14及运算处理器16(于此仅绘示于交换机s1为例),其中信号收发器12用于接收或转发封包(例如前述的配置信息或绕送规则),储存装置14用于储存数据(例如前述的配置信息或绕送规则),而运算处理器16则用于依据配置信息中的网络地址及配置参数产生并送出连接请求,以与控制器c连接。于一实施例中,每台交换机可各自储存一配置列表于储存装置14中,用以记录各控制器c的建立连接的相关信息,也就是交换机依据各控制器传送的配置信息对配置列表进行信息记录或更新。配置列表储存于交换机s1~s5中,此表格包括多个字段分别对应配置信息中的控制器ip地址及多个配置参数。实际中,网络管理人员可根据sdn应用场景设计配置列表的储存方式,本发明不设限配置列表储存的方式或形式。在控制器c与交换机s1之间的连接建立之后,控制器c发送绕送规则至交换机s1,并且交换机s1将已储存的绕送规则应用于接收到的配置信息封包。详言之,当交换机s1以信号收发器12接收到配置信息时,交换机s1的运算处理器16是依据ip地址及配置参数执行前述的连接程序,判断配置列表是否为空,以及判断储存于储存装置14的配置列表中是否存在发出此配置信息的控制器的ip地址,并依比对结果执行下列3种作动内容:(1)配置列表为空的情况下,交换机s1的运算处理器16将配置信息的控制器ip地址及配置参数新增至配置列表,并且根据控制器ip地址与配置参数控制信号收发器12发送一连接请求至控制器c。在交换机s1与控制器c成功建立连接后,例如建立openflow连接,交换机s1将控制器c设置为主要控制器。换言之,交换机s1在启动后接收到第一个配置信息时,交换机s1将发送此配置信息的控制器c设为主要控制器。(2)配置列表不为空的情况下,交换机s1的运算处理器16搜寻与比对配置列表的控制器ip字段,判断其中是否存在与配置信息相同的控制器ip地址。在配置列表不存在与配置信息相同的控制器ip地址的情况下,交换机s1的运算处理器16将本次配置信息的控制器ip地址及配置参数新增至配置列表。换言之,本次发送配置信息的控制器例如c’(未绘制于图1)相异于先前若干次发送配置信息的控制器c,因此交换机s1将控制器c’的相关信息新增至配置列表。同时,交换机s1根据对应于控制器c’的控制器ip地址与配置参数控制信号收发器12发送一连接请求至控制器c’。交换机s1在与控制器c’成功建立连接后,交换机s1将控制器c’设为从属控制器。承(2)所述,在交换机s1已经和主要控制器建立连接之后,再接收到其他控制器发送的配置信息时,交换机s1将这些控制器设定为从属控制器。另外必须强调的是:在一实施例中,交换机s1在启动后,将第一次接收到配置信息的来源控制器设为主要控制器,其后收到来自于其他控制器的配置信息时,将非主要控制器的其他控制器设为从属控制器,然而本发明并不限定这种设置方式。实际中,网络管理人员可根据sdn应用场景,决定何时收到的配置信息的来源控制器为主要控制器。(3)若配置列表不为空,且在配置列表中存在与配置信息相同的控制器ip地址的情况下,交换机s1依据配置信息更新配置列表中的配置参数,也就是该配置信息对应的控制器,其相关信息已存在配置列表中,交换机的运算处理器16依据该配置信息更新对应于该控制器的信息,例如全部或部分的配置参数,亦即更新配置列表中有变动的部分。在控制器c与交换机s1建立连接并发送一绕送规则至交换机s1后,交换机s1接收此绕送规则并予以储存。绕送规则包括以太类型、交换机输入端口号及动作指令。补充说明的是,在多个控制器的系统中,该绕送规则还可进一步包括控制器地址。当交换机s1接收到配置信息封包时,交换机s1依据该配置信息封包对应的交换机输入端口号与储存的绕送规则,来判断是否转传该配置信息封包,也就是交换机s1的运算处理器16依据绕送规则来执行一转发程序。此外,在本案的软件定义网络系统具有多个控制器的情况下,绕送规则进一步包括相异的控制器c、c’的网络地址。详言之,对交换机s1而言,在此种多个控制器的网络系统中,一旦与各个控制器建立连接,即会接收到各个控制器所传送的绕送规则,而这些绕送规则即依各自记录的控制器地址(例如matchfield字段中的控制器地址)区隔出所对应的控制器。具体而言,前述的转发程序首先是由运算处理器16比对本次接收的封包与绕送规则两者中的以太类型(eth_type)是否相符,例如皆为lldp的以太类型定义数值(0x88cc),从而交换机s1可确认本次接收的封包属于配置信息封包或一般数据封包。接着,交换机s1的运算处理器16再比对本次接收封包所使用的输入端口号与绕送规则中的输入端口号两者是否相符,从而交换机s1可确认发送封包的控制器是否存在对应的绕送规则,并基于上述比对结果,而执行下列作动内容:(1)若该交换机s1的运算处理器16判断接收的封包为配置信息封包,且其所使用的输入端口号与绕送规则中的输入端口号相符的情况下,亦即交换机s1中存在与发送配置信息封包的控制器对应的绕送规则,则交换机s1的运算处理器16执行绕送规则中的动作指令。在一实施例中,此动作指令为ofpp_flood,意为将配置信息封包以信号收发器12发送到openflow协定所规范的flood保留端口(reservedport)。一般来说,flood保留端口代表此配置信息封包输入端口及被最小生成树(minimumspanningtree,mst)协议禁用的端口(标示为ofpps_blocked)之外的所有输出端口。当然交换机s1也可以指定在虚拟局域网(virtuallocalareanetwork,vlan)中进行flooding这种广播用的动作。实际中,网络管理人员可根据应用场景,让控制器c指示交换机s1使用all保留端口达成类似于使用flood保留端口的广播效果,本发明不以为限。而在多个控制器的系统中,交换机s1除了比对接收配置信息封包所使用的输入端口号之外,还进一步比对接收配置信息封包来源的控制器地址,在接收的封包的输入端口号与绕送规则中的输入端口号相符,并且接收的配置信息封包的来源的控制器地址与绕送规则中的控制器地址相符的情况下,则交换机s1执行绕送规则中的动作指令。(2)若该交换机s1判断接收的封包为配置信息封包,且其所使用的输入端口号与绕送规则中的输入端口号不相符的情况下,则交换机s1的运算处理器16将此配置信息封包封装成packet-in信息并发送至控制器c。在其他实施例中,交换机s1亦可直接丢弃(drop)这种封包。而在多个控制器的系统中,交换机s1除了比对接收配置信息封包所使用的输入端口号之外,还进一步比对接收配置信息封包来源的控制器地址,在接收的配置信息封包的输入端口号与绕送规则中的输入端口号不相符,或者接收的配置信息封包的来源的控制器地址与绕送规则中的控制器地址不相符的情况下,则交换机s1将此封包封装成packet-in信息并发送至控制器或丢弃。(3)若交换机s1判断本次接收到的封包不为配置信息封包,则交换机s1进一步搜寻流表(flowtable)中的其他流表项,检查是否有matchfield与本次接收到的封包信息相符。若有,则交换机s1依照matchfield对应的指令处理此封包;若无,则交换机s1依照table-missflowentry对应的指令处理此封包或是透过流水线(pipeline)寻找下一个流表。在大型网络中,基于布建成本考虑,一控制器仅与地理位置相近的一台或数台交换机具有通信连接;对于那些远距离的交换机,控制器透过中继交换机转发封包至目标交换机,例如在图1中,控制器c透过交换机s1和交换机s5发送封包至交换机s4。在一实施例中,一控制器c通信连接至一交换机网络sn。为了实现交换机网络sn中所有交换机s1~s5的自动部署,控制器c主动发送配置信息封包与绕送规则至邻接的交换机s1,再透过邻接的交换机s1以flood动作指令逐层广播配置信息封包至整个交换机网络,从而完成所有交换机的初始化配置。相较已知由交换机s1主动向控制器c请求配置的方式,一实施例提出“控制器主动广播配置信息”的概念无疑更符合sdn分离控制平面的精神。承上所述,大型网络的网络拓朴(topology)往往容易出现交换机回路(switchingloop),即两交换机之间的通信途径不只一条,例如在图1中,交换机s1可透过e3、e4连接到交换机s4,交换机s1也可透过e5、e6连接到交换机s4。另一种交换机回路则为一交换机的两个端口互相对接。在具有回路的交换机网络中广播配置信息封包时,可能导致此封包在回路中被重复发送,进而形成广播风暴(broadcaststorm),占用大量网络带宽,造成网络瘫痪,同时耗尽所有网络设备的资源。在一实施例中,为避免控制器c发送的配置信息造成广播风暴,交换机s1执行转发程序时,对于不是来自控制器的配置信息封包,将其视为经由某条交换机回路抵达本交换机的封包。交换机将此封包封装成packet-in信息并回传发送至控制器,让控制器决定如何处理这种封包。在其他实施例中,控制器c发送一包括丢弃动作指令(drop)的绕送规则,指示交换机s1直接丢弃不是来自控制器的配置信息封包。从而降低配置信息封包的流量,以避免广播风暴。另一实施例中,述及一种适用于软件定义网络系统的交换机自动部署方法,此系统如图1所示,包括一交换机网络sn通信连接一控制器c。请再参考图2,此自动部署方法在交换机s1接获控制器c发送的配置信息(步骤s21)之后,大致可分为关联于转发程序的部分及关联于连接程序的部分。关联于转发程序的部分基本上会因交换机s1中是否已储存绕送规则而选择直接转发或依绕送规则转发,是为能更有效避免广播风暴产生,后续讨论主要是着重于交换机s1依据绕送规则执行转发程序(步骤s22)。而关联于连接程序的部分则大致包含二个阶段:第一阶段为交换机s1根据配置信息封包执行连接程序,如步骤s23~s24所示;第二阶段为控制器c经由与交换机s1建立的连接发送绕送规则;如步骤s25所示。下文将详细叙述各阶段的具体实现方式。请参考图2的步骤s21,控制器c主动发送配置信息封包至一交换器s1。配置信息封包格式例如用于广播封包的lldpdu或用于广播或群播封包的ipheader,其中,配置信息包括控制器的ip地址和多个配置参数,配置参数例如包括控制器端口号、连接协议类型、控制器连接模式及通信协议版本号。在控制器c建立连接至交换机s1之前,控制器c亦可通过配置参数中将控制器端口号预先告知交换机s1,交换机s1记录此端口号以便在转发程序中使用。连接协议类型例如tcp、tls、sctp或ssl等常见的网络协议。控制器连接模式包括主动式(active)及被动式(passive),主动式代表交换机s1主动跟控制器c建立连接(因为当交换机收到配置信息后,交换机便取得控制器ip地址);被动式代表交换机s1被动等待控制器c发送建立连接用的信息。当sdn系统所使用的通信协议版本变动时,控制器c可透过通信协议版本号这个配置参数告知交换机s1。请一并参考图2的步骤s23~s25及图3。在交换机s1收到配置信息封包后,交换机s1搜寻储存于交换机s1的配置列表。此配置列表记录了交换机s1曾经接收的配置信息的信息。若配置列表不存在与此控制器c发送的配置信息完全相同的记录,则代表下列几种情况:(1)交换机s1第一次接收到配置信息封包;(2)交换机s1曾接收到其他控制器的配置信息封包,但第一次接收到来自控制器c的配置信息封包;(3)交换机第二次(以上)接收到来自同一控制器c的配置信息封包,但配置封包中的配置参数的至少一部分与当前配置列表所储存的存在差异。上述(1)、(2)两种情况对于交换机s1而言都属于收到新控制器的配置信息,而(3)的情况则需要更新配置列表的内容。因此,交换机s1与新控制器之间需建立连接,具体方式为交换机s1执行连接程序。若交换机s1搜寻出与本次接收的配置信息封包完全相同的记录,代表交换机第二次(以上)接收到此控制器c发送的配置信息,换言之:此控制器c重复发送相同的配置信息封包,其中至少两次被同一交换机接收到。因此,交换机需转发重复的配置信息封包至可能尚未被配置的其他交换机s2~s5,具体方式为交换机s1执行转发程序。请参考图3,其是另一实施例中连接程序的流程图。在交换机s1确认配置列表中并未储存与配置信息封包完全相同的信息且配置列表为空的情况下,也就是交换机s1在启动电源后未曾收到任何一个控制器传来的配置信息,则交换机s1将此配置信息内的信息写入至配置列表,也就是将配置信息的控制器ip地址与配置参数新增至配置列表,并根据配置列表中记录的控制器ip地址与配置参数向控制器发送一连接请求,以建立连接。交换机s1在确认成功建立连接后,将此控制器c设为主要控制器。上述连接程序的一流程可对应至图3的步骤s40~s43。接下来请参考图3的步骤s44~s46。在交换机s1确认配置列表不为空,且配置列表中并未记录与配置信息相同的控制器ip地址,代表本次配置信息是来自另一个控制器。此情况下,交换机s1将此配置信息内的信息写入至配置列表,也就是将配置信息的控制器ip地址与配置参数新增至配置列表,并根据配置列表中新增的控制器ip地址与配置参数向控制器发送一连接请求,以建立连接。交换机s1在确认成功建立连接后,将新建立连接的此控制器设为从属控制器。一般而言,相较于主要控制器,从属控制器仅具有写入关于此从属控制器的绕送规则、读取交换机状态或被动收取交换机信息的权限。前述连接程序是假设多个控制器先后发送各自的配置信息至交换机网络sn中的同一台交换机s1。在另一实施例中,此交换机s1根据先收到的配置信息中的控制器ip认定主要控制器,即交换机s1将第一次建立连接的控制器设为主要控制器;交换机s1将第二次(含之后)建立连接的控制器设为从属控制器。然而,本发明并不限制上述主从控制器的认定方式。另外,在一实施例中,当运用的通信协议为openflow协议时,亦允许多个从属控制器在主要控制器故障或断线时,透过选举或其他方式得出下一任主要控制器,然后由主要控制器向交换机s1发送角色申请(role-request)信息。请参考图3,在配置列表不为空而已经存有记录,且配置列表中存有与本次配置信息相同的控制器ip地址,但配置列表中对应于控制器ip地址的配置参数与本次配置信息不同的情况下,即代表交换机s1先前接收过来自同一控制器的配置信息,因此如步骤s47所示,交换机s1在配置列表找出对应配置信息中控制器ip地址的记录,并依据本次配置信息的配置参数值更新此记录。请参考图2的步骤s24~s25。在交换机s1执行连接程序后,若交换机s1不是和发送配置信息的控制器建立连接(即交换机s1系执行图3中的步骤s47),则回到步骤s21,交换机s1等待下一次的配置信息封包。然而,对于sdn系统而言,交换机网络sn中可能尚有其他交换机例如s2~s4尚未配置,故已配置的交换机s1需协助转发控制器c的配置信息封包,以完成所有交换机的自动部署。因此,于另一方面,在交换机s1执行连接程序后,若交换机s1接着和配置信息的控制器c建立连接(即交换机s1系执行图3中的步骤s43或s46),则此控制器c透过此连接发送一绕送规则至交换机,如步骤s25所示。然后,对于交换机s1而言,同样回到步骤s21,等待下一次的配置信息封包。请回到图2的步骤s21,控制器发送另一配置信息封包。实际中,网络管理人员可根据sdn应用场景,指示控制器c每隔一固定时间发送完全相同的配置信息封包,以广播或群播方式扩散至所有通信连接的交换机,达成sdn系统中交换机s1~s5的自动部署任务。在交换机s1储存有绕送规则,且接收到另一配置信息封包时,交换机s1可依据绕送规则执行转发程序。交换机s1执行的转发程序的一实施例为:交换机s1将来自控制器c的配置信息封包转发至其他交换机,从而配置交换机网络sn中未与控制器直接连接的多个交换机。例如图1中,交换机s1执行转发程序,将控制器c的配置信息封包转发至未与控制器直接通信连接的交换机s2~s5。此外,交换机s1执行的转发程序的另一实施例为:交换机s1将来自其他交换机的配置信息封包舍弃或回传至控制器。请参考图1,绕送规则来自控制器c,并且绕送规则包括:以太类型、交换机输入端口号及动作指令。交换机s1根据绕送规则中定义的动作指令处理收到的配置信息封包。在另一实施例中,步骤s25发送的绕送规则用于配置信息封包,然而本发明并未限制控制器c只能发送针对配置信息封包的绕送规则。举例来说,在openflow协议中采用预先建立模式(proactive)的控制器c,在发送配置信息封包用的绕送规则之后,继续发送一般数据封包用的绕送规则或流表项,以节省交换机s1以packet-in信息询问控制器c如何处理封包的时间。接下来叙述转发程序。交换机s1根据封包的以太类型及封包的交换机输入端口号来决定是否执行转发程序。详言之,交换机s1接收到封包后,是依据封包的以太类型判断此封包属于配置信息封包或一般数据封包。配置信息封包可以是使用lldpdu的广播格式或ipheader的群播格式,这两种格式各自具有不同的以太类型。另,在交换机s1与控制器c建立连接之后,交换机s1将本身用以连接控制器的端口号告知控制器c,使得控制器c在发送绕送规则时得以指定此端口号。如此当交换机s1经由此端口接收到封包时,可通过绕送规则得知此封包是否来自本交换机s1的主要控制器。当交换机s1在绕送规则中寻找到符合封包的前述两项信息(配置信息封包的以太类型、配置信息封包的交换机输入端口号)时,交换机执行动作指令,也就是以flood指令将此配置信息封包广播或群播至其他交换机s2~s5。若交换机s1根据绕送规则的比对结果,发现配置信息封包只符合以太类型,但不符合交换机输入端口号时,此时交换机s1以packetin信息将此配置信息封包发送给控制器询问如何处理,或依据绕送规则执行丢弃此封包。综合以上所述,本案提出一种交换机自动部署的sdn系统及一种sdn系统的交换机自动部署方法,自动部署的sdn系统中包括一控制器主动发送配置信息封包至交换机,以及多个交换机根据配置信息封包和控制器建立连接并接收控制器指示的绕送规则;从而交换机可以继续接收配置信息封包并将其转发至交换机网络中的其他交换机,实现所有交换机的自动部署。通过绕送规则的设置,避免了配置信息可能造成的广播风暴。另外,当交换机的配置参数需要调整时,通过本案提出的交换机自动部署方法,控制器随时可以发送新配置参数的封包至交换机,交换机接收到此封包后可自动更新配置参数。因此,对于需要设定众多参数的大型网络中,本案一实施例中所提出的交换机自动部署方法节省对每台交换机一一配置的时间及人力成本,同时避免手动设定的失误,提升网络设备布建后初始化设定的效率。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1