发明内容
本公开鉴于上述问题,提供了一种基于SDN的服务链的配置方法、设备、系统和介质。通过将服务链提供的服务划分为N类,为每一类服务提供N个逻辑服务节点,当任一服务上线时,其对应的逻辑服务节点关联至所述服务,并接收数据链中的数据流,当任一服务下线时,其对应的逻辑服务节点成为空节点,不接收数据链中的数据流,提高了服务链的自动化程度及实用性。
本公开的一个方面提供了一种基于SDN的服务链的配置方法,方法包括:将所述服务链提供的服务划分为N类;向所述服务链中添加N个逻辑服务节点,其中,所述N个逻辑服务节点与所述N类服务一一对应;根据所述服务链的当前服务将所述当前服务对应的所述逻辑服务节点设置为第一节点,将其他所述逻辑服务节点设置为第二节点;当所述服务链有新增服务时,将所述新增服务对应的所述逻辑服务节点设置为所述第一节点,当所述服务链的所述当前服务下线时,将下线的所述当前服务对应的所述逻辑服务节点设置为所述第二节点。
可选地,所述方法还包括:设置N个分类接口,所述N个分类接口与所述N类服务一一对应;设置服务链接口,其中,所述分类接口和服务链接口用于将所述逻辑服务节点关联至所述服务。
可选地,所述将所述新增服务对应的所述逻辑服务节点设置为所述第一节点还包括:操作人员通过所述逻辑服务节点对应的分类接口与所述服务链接口将所述逻辑服务节点与所述新增服务关联;或者所述新增服务自动与所述逻辑服务节点关联。
可选地,所述方法还包括:当所述服务链有新增服务时,通过自动调度,所述服务链中的第一节点自动关联至所述新增服务。
可选地,所述第一节点为有效节点,所述第二节点为空节点。
可选地,所述方法还包括,设置查询接口,用于对所述服务链的运行状态进行监控查询。
可选地,所述方法还包括:当所述服务链有新增服务时,产生一种及以上的上线通知。
本公开另一方面还提供了一种基于SDN的服务链的配置电子设备,包括:处理器;存储器,其存储有计算机可执行程序,所述程序在被所述处理器执行时,使得所述处理器执行上述基于SDN的服务链的配置方法。
本公开另一方面还提供了一种基于SDN的服务链的配置系统,所述基于SDN的服务链的配置系统包括:分类模块,用于将所述服务链提供的服务划分为N类;添加模块,用于向所述服务链中添加N个逻辑服务节点,其中,所述N个逻辑服务节点与所述N类服务一一对应;设置模块,用于根据所述服务链的当前服务将所述当前服务对应的所述逻辑服务节点设置为第一节点,将其他所述逻辑服务节点设置为第二节点;新增及删减模块,用于当所述服务链有新增服务时,将所述新增服务对应的所述逻辑服务节点设置为所述第一节点,当所述服务链的所述当前服务下线时,将下线的所述当前服务对应的所述逻辑服务节点设置为所述第二节点。
本公开另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述基于SDN的服务链的配置方法。
具体实施方式
根据结合附图对本公开示例性实施例的以下详细描述,本公开的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。
在本公开中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。
在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制公开的范围。参照附图的下述描述用于帮助全面理解本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相似功能和操作。
图1示意性示出了根据本公开实施例提供的基于SDN的服务链的配置方法应用场景架构图。
服务链由若干服务节点组成,例如防火墙、DPI、IPS、WAF、LB等,用于源终端和目的终端之间的数据流传输。
软件定义网络(SDN)是一种新型的网络架构,其通过将网络设备的控制面和数据面分离开,从而可以实现网络虚拟化。传统服务链相对固定,扩容较为麻烦,而基于SDN的服务链可以解决这一问题。
例如,服务链创建之时,该服务链可以提供的服务包括防火墙、DPI、IPS……,实际应用中未使用DPI服务,此时DPI逻辑服务节点为空节点,如图1(a)所示;当DPI服务上线时,服务链中的DPI逻辑服务节点生效,此时不再为空节点,如图1(b)所示;当DPI服务下线时,服务链中的DPI节点再次变成空节点,如图1(c)所示,其中,空节点不影响服务链,即数据流会自动跳过空节点。
图2示意性示出了根据本公开实施例提供的基于SDN的服务链的配置方法的流程图。如图2所示,该方法包括如下操作。
S1,将服务链提供的服务划分为N类。
首先,根据服务链的功能将服务链提供的服务划分为N类。例如,当服务链提供的服务包括防火墙、DPI、IPS、WAF、LB这五类时,N=5。
然后,设置N个分类接口,该N个分类接口与该N类服务一一对应。
S2,向服务链中添加N个逻辑服务节点,其中,N个逻辑服务节点与N类服务一一对应。
首先,创建服务链,向服务链中添加N个逻辑服务节点。
然后,设置服务链接口。接口是计算机系统中两个独立的部件进行信息交换的共享边界,通过服务链接口和分类接口将逻辑服务节点关联至服务,将逻辑服务节点关联至有效服务节点。
S3,根据服务链的当前服务将当前服务对应的逻辑服务节点设置为第一节点,将其他逻辑服务节点设置为第二节点。
第一节点为有效节点,第二节点为空节点。数据流流经有效节点,并且数据流不经过空节点。
根据服务链的当前服务对N个逻辑服务节点进行设置,当前服务对应的逻辑服务节点设置为有效节点,同时,系统自动推荐一个默认管理的服务至该有效节点。
除有效节点之外的服务链中的其他逻辑服务节点设置为空节点,空节点不参与服务链中的数据传输。
S4,当服务链有新增服务时,将新增服务对应的逻辑服务节点设置为第一节点,当服务链的当前服务下线时,将下线的当前服务对应的逻辑服务节点设置为第二节点。
新的服务上线时,将新上线的服务对应的逻辑服务节点设置为有效节点,有三种方法实现这一操作。
(1)人工操作,操作人员通过该逻辑服务节点对应的分类接口与服务链接口将逻辑服务节点与新上线服务进行关联,该逻辑服务节点变为有效节点,服务链中的数据流需流经该逻辑服务节点。此时,真实的流量路径中增加了一个节点。
(2)开启自动关联,一旦开启,新的服务上线时,新增服务会自动与其对应的逻辑服务节点关联,该逻辑服务节点变为有效节点,服务链中的数据流需流经该逻辑服务节点。此时,真实的流量路径中增加了一个节点。
(3)开启自动调度,新的服务上线后,服务链中会根据负载自动调整关联关系,服务链中的有效节点(如负载最小的有效节点)自动关联至新增服务,此时,真实的流量路径中的节点不变。
新的服务上线时,产生一种及以上的新服务上线通知,例如Email通知、websocket通知等。
当服务下线时,服务链中该下线服务对应的逻辑服务节点变成空节点,该逻辑服务节点的服务状态变成空服务,但是其服务类型不会变,此时,真实的流量路径中减少了一个节点。
此外,还设置有查询接口,用于对服务链的运行状态及配置状态等进行监控查询。
如图3所示,电子设备300包括处理器310、计算机可读存储介质320。该电子设备300可以执行上面参考图2描述的方法,以进行消息处理。
具体地,处理器310例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器310还可以包括用于缓存用途的板载存储器。处理器310可以是用于执行参考图2描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质320,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质320可以包括计算机程序321,该计算机程序321可以包括代码/计算机可执行指令,其在由处理器310执行时使得处理器310执行例如上面结合图2所描述的方法流程及其任何变形。
计算机程序321可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序321中的代码可以包括一个或多个程序模块,例如包括321A、模块321B……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器310执行时,使得处理器310可以执行例如上面结合图2所描述的方法流程及其任何变形。
根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。
图4示意性示出了本公开实施例的基于SDN的服务链的配置系统的框图。
如图4所示,基于SDN的服务链的配置系统400包括分类模块410、添加模块420、设置模块430、新增及删减模块440。
具体地,分类模块410,用于根据服务链的功能将服务链提供的服务划分为N类,并设置N个分类接口,该N个分类接口与该N类服务一一对应。
添加模块420,用于创建服务链,向服务链中添加N个逻辑服务节点,并设置服务链接口。
设置模块430,用于根据服务链的当前服务对N个逻辑服务节点进行设置,当前服务对应的逻辑服务节点设置为第一节点,同时,系统自动推荐一个默认管理的服务至该第一节点,除第一节点之外的服务链中的其他逻辑服务节点设置为第二节点。
新增及删减模块440,用于当服务链有新增服务时,操作人员通过该逻辑服务节点对应的分类接口与服务链接口将逻辑服务节点与新上线服务进行关联,或者通过开启自动关联将新增服务自动关联至其对应的逻辑服务节点,该逻辑服务节点设置为第一节点,或者通过开启自动调度将服务链中的第一节点自动关联至新增服务,并且当服务下线时,将该下线服务对应的逻辑服务节点设置为第二节点。
可以理解的是,分类模块410、添加模块420、设置模块430、新增及删减模块440可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,分类模块410、添加模块420、设置模块430、新增及删减模块440中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,分类模块410、添加模块420、设置模块430、新增及删减模块440中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已参照本公开的特定示例性实施例示出并描述本公开,但是本领域技术人员应该理解,在不背离本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例。