CN106797670B - 一种物理交换机初始化方法的和装置 - Google Patents
一种物理交换机初始化方法的和装置 Download PDFInfo
- Publication number
- CN106797670B CN106797670B CN201580055735.7A CN201580055735A CN106797670B CN 106797670 B CN106797670 B CN 106797670B CN 201580055735 A CN201580055735 A CN 201580055735A CN 106797670 B CN106797670 B CN 106797670B
- Authority
- CN
- China
- Prior art keywords
- network device
- logical switch
- communication
- network
- communication protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0686—Additional information in the notification, e.g. enhancement of specific meta-data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0846—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on copy from other elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
通过使用表征状态转移(representational state transfer,REST)业务框架,本发明实施例能够通过使用从SDN控制器加载的动态创建的逻辑交换机来提高所述SDN控制器与不同供应商的网络设备(例如物理交换机、路由器等)之间的互操作性。本发明实施例支持所述SDN控制器为多个不同网络设备类型直接提供逻辑交换机,或者可以将它们重定向到另一控制器/仓库,例如以便负载均衡。
Description
技术领域
本发明大体上涉及计算机网络领域,尤其涉及一种物理交换机初始化方法的和装置。
背景技术
在软件定义网络(software-defined network,SDN)架构中,实施重要网络路由和交换功能的控制平面与数据转发平面解耦。SDN中的控制平面能够逻辑上集中并在架构不同的各种计算机硬件中实施。因此,SDN中的数据平面可以利用与控制器硬件组件分隔的网络设备(例如交换机和路由器)。这种分隔的结果是,数据平面和控制平面可独立发展,在这两个平面的协议不能互操作时,尤其是在网络通过软件虚拟化时,可能损害这两个平面之间的通信。
例如,如果OpenFlow交换机升级OpenFlow版本而SDN控制器不升级,那么该交换机与SDN控制器之间的通信就会中断。当添加到网络的SDN交换机存在各种尚不支持的API时,控制器无法按预期控制交换机。类似地,如果SDN控制器部署了一个交换机不支持的新南向API,那么交换机就不受SDN控制器的控制。因此,需要一种架构和协议来更好地促进SDN框架中的控制平面与数据平面之间的互操作性。
发明内容
因此,提供一种在控制和数据平面独立发展时以允许SDN控制器有效地控制和监控网络的方式来促进SDN控制器与网络设备(例如物理交换机、路由器等)之间的互操作性的协议将是有利的。
通过使用表征状态转移(representational state transfer,REST)业务框架,本发明实施例能够通过使用从SDN控制器加载的动态创建的逻辑交换机来提高所述SDN控制器与不同供应商的网络设备之间的互操作性。本发明实施例支持所述SDN控制器为多个不同网络设备类型直接提供逻辑交换机,或者可以将它们重定向到另一控制器/仓库,例如以便负载均衡。
以本发明实施例描述的方式在所述网络设备上加载所述逻辑交换机之后,网络管理员能够远程调用所述逻辑交换机中定义的各种业务,这样还使得所述管理员自动配置网络设备。通过以这种方式提高网络设备之间的互操作性,SDN控制器能够以一种节省内存并提高网络安全性的方式来动态地发展或改变网络设备上的业务。
附图说明
附图包含在并且构成本说明书的一部分,其中相同的数字描绘相同的元件,附图说明本发明的实施例,并且与描述内容一起用于解释本发明的原理。
图1A描绘了根据本发明实施例的在用于为REST业务执行SDN网络设备(例如交换机和路由器)初始化的SDN控制器系统上实施的示例硬件配置。
图1B描绘了根据本发明实施例的驻留在内存中的由用于为REST业务执行SDN网络设备初始化的SDN控制器系统执行的示例组件。
图2A描绘了根据本发明实施例的在用于为REST业务执行SDN网络设备初始化的网络设备上实施的示例硬件配置。
图2B描绘了根据本发明实施例的驻留在内存中的由用于为REST业务执行SDN网络设备初始化的网络设备执行的示例组件。
图3A描绘了根据本发明实施例的用于为REST业务执行SDN网络设备初始化的SDN控制器模块与SDN控制代理模块之间的示例HTTP请求消息和响应消息。
图3B描绘了根据本发明实施例的用于为REST业务执行SDN网络设备初始化的逻辑交换机表示的示例组件。
图3C描绘了根据本发明实施例的用于为REST业务执行SDN网络设备初始化的示例逻辑交换机组。
图4A描绘了根据本发明实施例的用于REST业务的SDN网络设备初始化的示例计算机实施方法的一个流程图。
图4B描绘了根据本发明实施例的用于REST业务的SDN网络设备初始化的示例计算机实施方法的另一流程图。
具体实施方式
现将详细地对本发明的优选实施例、附图示出的示例做出参考。虽然结合优选实施例描述本发明,但应该理解它们不是旨在将本发明限制于这些实施例。相反,本发明旨在覆盖可以包括在由所附权利要求书限定的本发明的精神和范围内的替代物、修改和等同物。另外,在以下本发明实施例的详细描述中,阐述了许多特定细节以便提供对本发明的透彻理解。然而,所属领域的普通技术人员将认识到,可以在没有这些具体细节的情况下实践本发明。在其它实例中没有详细描述众所周知的方法、流程、部件和电路,以免对本发明实施例的各方面造成不必要地模糊。尽管为了清楚起见可以将一种方法描绘为一系列经编号步骤,但所述编号未必指定步骤的次序。应理解,所述步骤中的一些可以跳过、并行执行、或在没有维持严格序列顺序的要求下执行。示出本发明的实施例的图式是半图解的且不按比例,且特别地,尺寸中的一些是为了呈现的清晰性且在绘制的图式中放大示出。类似地,尽管在用于易于描述的图式中的视图大体上示出类似的定向,但在图式中的此描述大部分是任意的。通常,本发明可以在任何定向中操作。
符号和术语:
然而,应牢记,所有这些和类似术语与适当物理量相关联,且仅为应用于这些量的方便标签。除非确切地陈述为从以下论述显而易见,否则应了解,遍及本发明,利用例如“接收”、“执行”或“加载”等的术语的论述是指将表示为计算机系统的寄存器和存储器以及其它计算机可读媒体内的物理(电子)量的数据操纵和变换为类似地表示为计算机系统存储器或寄存器或其它此类信息储存、传输或显示设备内的物理量的其它数据的计算机系统或类似电子计算设备的动作和进程。当某一组件出现在若干实施例中时,使用相同的参考标号表示所述组件与原始实施例中所图示的组件相同。
示例SDN控制器系统配置
图1A描绘了根据本发明实施例的能够为REST业务执行SDN网络设备(例如网络交换机、路由器等)初始化流程的SDN控制器系统100的示例配置。本文中的术语“表征”可以对应文档、HTML页面、文件、图像、HTTP消息实体、实例或变体。表征的类型可以是本领域众所周知的任意媒体类型,例如XML、文本/HTML、JSON、MIME多部分、图像、视频或二进制文件。将认识到,本发明不限于通过网络分发表征的任何特定通信协议。
尽管图1A公开了具体组件,但是应了解,此类组件是示例性的。也就是说,本发明实施例非常适合拥有各种其它硬件组件或图1A列举的组件的变体。应意识到,图1A的硬件组件能够与除了示出的组件之外的其它组件一起操作,并不需要图1A所描述的所有硬件组件来实现本发明的目标。
SDN控制器系统100可以实施为能够通过数据通信网络与其它远程计算机系统通信的电子设备(例如远程控制器设备或其它远程网络设备)。其上可以实施本发明实施例的示例SDN控制器系统100包括通用计算系统环境。在其最基本的配置中,SDN控制器系统100通常包括至少一个处理单元110和内存存储单元(例如计算机可读存储介质135)。根据设备的具体配置和类型,计算机可读存储介质135可以是易失性的(例如RAM)、非易失性的(例如ROM、闪存等),或者两者的某个组合。计算机可读存储介质135的各部分在执行时促进内存操作或线程组请求的有效执行。
处理器110可以是用于执行本文描述的SDN控制器功能的电路。或者,处理器110可以用于执行计算机可读存储介质135中存储的SDN控制器程序,并用于执行本文描述的功能(例如,参见下文论述的图1B的SDN控制器模块138)。SDN控制器系统100还可包括可选图形子系统141,该图形子系统用于例如通过在可选显示设备111上显示信息来向计算机用户呈现信息。
根据本发明实施例,可选图形子系统141可以通过视频电缆直接耦合到可选显示设备111。在替代性实施例中,可选显示设备111可以集成到计算系统(例如膝上型电脑或上网本显示板)中并且将不需要视频电缆。SDN控制器系统100还包括可选的字母数字输入/输出设备108。输入/输出设备108可以包括可选的光标控制或指挥设备,以及一个或多个信号通信接口(例如网卡)。输入/输出设备108还可以用作收发器并为SDN控制器系统100执行发送和接收流程。这样,输入/输出设备108使得SDN控制器系统100经由电子通信网络,包括有线和/或无线通信网络并且包括互联网,与REST框架内的其它计算机系统(例如网络设备200)通信。
此外,SDN控制器系统100还可具有其它特征和功能。例如,SDN控制器系统100还可包括其它存储介质(可移动和/或不可移动的),包括但不限于,磁盘或光盘或磁带。计算机存储介质包括以任意方法或技术实现的用于存储计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。
图1B描绘了本发明各实施例使用的示例计算机存储介质组件。尽管图1B公开了具体组件,但是应了解,此类计算机存储介质组件是示例性的。也就是说,本发明实施例非常适合拥有各种其它组件或图1B列举的计算机存储介质组件的变体。应了解,图1B中的组件可以与除了示出的组件之外的其它组件一起操作,而且不需要图1B所描述的所有计算机存储介质组件来实现本发明的目标。
如图1B所描绘,计算机可读存储介质135包括操作系统112。在SDN控制器系统100被初始化时,操作系统112加载到处理器110。此外,在由处理器110执行时,操作系统112用于为SDN控制器系统100提供程序化接口。通信接口还包括无线通信机制。SDN控制器系统100可以使用这类通信接口通过通信网络,例如互联网或企业内部网(例如局域网),以通信方式耦合到其它计算机系统,或者可以接收数据(例如数字电视信号)。
此外,如图1B所示,计算机可读存储介质135包括SDN控制器模块138,其向处理器110提供指令以经由内部总线105进行处理。SDN控制器模块138包括动态创建多个不同逻辑交换机的功能,随后这些逻辑交换机可以存储在数据库(未示出)等数据结构上。存储逻辑交换机的数据结构可驻留于与SDN控制器模块138相同的计算机系统上,或者驻留于SDN控制器模块138可以访问的另一计算机系统上。SDN控制器模块138创建的逻辑交换机用于配置网络设备端口和/或网络适配器(例如,图2B的端口配置模块239和/或适配器配置模块244)的属性。SDN控制器模块138包括以下功能:选择性地将一组配置设置应用到给定逻辑交换机的一组需要的网络适配器和/或端口。此外,SDN控制器模块138使用一个用于应用程序的北向API提供网络功能的抽象,该北向API驻留于动态配置计算机网络的SDN控制器系统上。
SDN控制器模块138创建的逻辑交换机基于各种网络设备(例如,图2B的网络设备200)的不同硬件和/或软件配置文件和/或这些网络设备各自的SDN控制代理模块238。随后,SDN控制代理模块238基于它们各自的本地网络设备的计算环境(例如硬件和/或软件设置,比如CPU能力、存储能力、驻留操作系统等)选择SDN控制器模块138创建的逻辑交换机。
一旦SDN控制代理模块238在网络设备上执行并安装逻辑交换机,SDN控制器模块138就与转发平面交互,并且实时调整多个网络设备,无需直接了解各个独立网络设备的特定硬件和/或软件配置文件。这样,逻辑交换机中表示的配置使SDN控制器模块138能够使用众所周知的通信协议(例如OpenFlow、x86指令集、MPLS、点击软件路由器模块、功能编程模型等)通过南向API控制底层数据转发元件(例如交换机和路由器)的行为。
SDN控制器模块138通过数据通信网络(例如SDN)使用通信接口与远程网络设备的SDN控制代理模块238通信。例如,SDN控制器模块138使用信号通信接口通过TCP/IP连接与多个不同远程网络设备的SDN控制代理模块238(例如,参见下文论述的图2B)通信。因此,SDN控制器模块138从不同远程网络设备的SDN控制代理模块238接收通信,并收集与这些网络设备各自的本地计算环境(例如硬件和/或软件设置,包括CPU能力、存储能力、驻留操作系统等)有关的信息。
然后,使用SDN控制器模块138收集的信息动态创建和/或更新可以在各个独立网络设备上恰当执行的逻辑交换机。这样,SDN控制器模块138允许若干不同的远程网络设备访问可以在这些网络设备各自的环境上执行的逻辑交换机。此外,基于与SDN控制代理模块238的通信,SDN控制器模块138还识别和/或跟踪多个不同的远程网络设备并将它们在网络上的身份传送给第三方计算机系统,例如主机计算机系统或服务器。
SDN控制器模块138还向SDN控制代理模块238发送消息以加载SDN控制器模块创建的逻辑交换机表征。这样,新增加的网络设备使用SDN控制器模块138创建的逻辑交换机来促进通信协议的安装和/或初始化流程,其中这些通信协议使SDN控制器系统能够与网络设备(例如路由器、交换机)通信。另外,已存在的网络设备还接收新创建的逻辑交换机中表示的已更新配置。
此外,SDN控制器模块138创建的逻辑交换机可以建模为REST业务架构内的资源表征。因此,逻辑交换机包括资源提供的不同REST业务(例如启动、停止、更新、删除等)。业务通过URI识别,以便业务客户端访问业务。访问逻辑交换机URI后,业务客户端获取表征中的超链接以访问业务。此外,不同远程网络设备的SDN控制代理模块238可以共享SDN控制器模块138创建的同一逻辑交换机URI,或者可以基于它们各自的本地计算环境各自具有不同的逻辑交换机URI。
示例SDN网络设备配置
图2A描绘了根据本发明实施例的能够为REST业务执行SDN网络设备初始化流程的网络设备200的示例配置。虽然图2A和2B中描述的网络设备200中的组件包括参照SDN控制器系统100描述的类似组件,但是网络设备200可以包括更少或更多组件。尽管图2A公开了具体组件,但是应了解,此类组件是示例性的。也就是说,本发明实施例非常适合拥有各种其它硬件组件或图2A列举的组件的变体。应意识到,图2A的硬件组件能够与除了示出的组件之外的其它组件一起操作,而且不需要图2A所描述的所有硬件组件来实现本发明的目标。
网络设备200可以实施为能够通过数据通信网络(例如SDN)与其它远程计算机系统(例如SDN控制器系统100)通信的电子设备。其上可以实施本发明实施例的示例网络设备200包括通用计算系统环境。在其最基本的配置中,网络设备200通常包括至少一个处理单元210和内存存储单元(例如计算机可读存储介质235)。
根据网络设备的具体配置和/或类型,计算机可读存储介质235可以是易失性的(例如RAM)、非易失性的(例如ROM、闪存等),或者两者的某个组合。计算机可读存储介质235的各部分在执行时促进内存操作或线程组请求的有效执行。处理器210可以是用于执行本文描述的控制代理模块功能的电路。或者,处理器210可以用于执行网络设备200的计算机可读存储介质235中存储的SDN控制器程序,并用于执行本文描述的功能。
网络设备200还包括可选图形子系统241,用于例如通过在可选显示设备211上显示信息来向计算机用户呈现信息。根据本发明实施例,可选图形子系统241可以通过视频电缆直接耦合到可选显示设备211。在替代性实施例中,可选显示设备211可以集成到计算系统(例如膝上型电脑或上网本显示板)中并且将不需要视频电缆。网络设备200还包括可选的字母数字输入/输出设备208。输入/输出设备208可以包括可选的光标控制或指挥设备,以及一个或多个信号通信接口(例如网卡、图2B的适配器配置模块244)。输入/输出设备208还可以用作收发器并为网络设备200执行发送和接收流程。这样,输入/输出设备208使得网络设备200经由电子通信网络,包括有线和/或无线通信网络并且包括互联网,与REST框架内的其它计算机系统(例如SDN控制器系统100)通信。
此外,网络设备200还可具有其它特征和功能。例如,网络设备200还可包括其它存储介质(可移动和/或不可移动的),包括但不限于,磁盘或光盘或磁带。计算机存储介质包括以任意方法或技术实现的用于存储计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。
图2B描绘了本发明各实施例使用的示例计算机存储介质组件。尽管图2B公开了具体组件,但是应了解,此类计算机存储介质组件是示例性的。也就是说,本发明实施例非常适合拥有各种其它组件或图2B列举的计算机存储介质组件的变体。应了解,图2B中的组件可以与除了示出的组件之外的其它组件一起操作,而且不需要图2B所描述的所有计算机存储介质组件来实现本发明的目标。
如图2B所描绘,计算机可读存储介质235包括操作系统212。在网络设备200被初始化时,操作系统212加载到处理器210。此外,在由处理器210执行时,操作系统212用于为网络设备200提供程序化接口。例如,操作系统212通过端口配置模块239和/或适配器配置模块244提供信号通信接口。通信接口还包括无线通信机制。网络设备200使用这类通信接口通过数据通信网络,例如互联网或企业内部网(例如局域网),以通信方式耦合到其它计算机系统,或者可以接收数据(例如数字电视信号)。
此外,如图2B所示,计算机可读存储介质235包括SDN控制代理模块238,其向处理器210提供指令以经由内部总线205进行处理。例如,SDN控制代理模块238使用通信接口初始化到SDN控制器模块138或另一计算机系统的TCP/IP连接以访问由SDN控制器模块138创建的和/或加载到SDN控制器模块138上的逻辑交换机表征。如本文所述,逻辑交换机表征中标识的各个逻辑交换机可以使用不同的硬件和/或软件配置文件来执行。因此,在建立与SDN控制器模块138的连接后,SDN控制代理模块238访问和/或解析表征中包含的一个或多个逻辑交换机。
SDN控制代理模块238基于逻辑交换机表征中指定的硬件和/或软件配置文件确定可以在SDN控制代理模块238的本地网络设备上安装逻辑交换机表征中的哪个或哪些逻辑交换机。SDN控制代理模块238进行的确定可以基于本地网络设备的当前硬件和/或软件设置,例如CPU能力、存储能力、驻留操作系统等。
如果SDN控制代理模块238基于当前硬件和/或软件设置确定所解析的逻辑交换机表征中没有逻辑交换机可以本地安装,那么SDN控制代理模块238向SDN控制器模块138和/或具有网络管理能力的计算机系统传送实时错误消息。传送可以指定对于安装逻辑交换机,网络设备在哪方面有缺陷(例如硬件和/或软件缺陷)。因此,SDN控制器模块138基于所传送的缺陷动态创建其它逻辑交换机和/或更新现有逻辑交换机,这可以使逻辑交换机在先前的有缺陷的网络设备200上成功实施。
或者,如果SDN控制代理模块238基于当前硬件和/或软件设置确定所解析的逻辑交换机表征中有逻辑交换机可以本地安装,那么SDN控制代理模块238确定本地计算机系统是否具有执行与该逻辑交换机相关联的一组指令或脚本所需要的合适的软件包或模块。例如,SDN控制代理模块238可以确定本地计算机系统当前是否具有立即执行指定的脚本所需要的一组合适的软件模块或库,或者其是否需要指示本地计算机系统从主机计算机系统或另一计算机系统下载逻辑交换机表征中指定的合适的软件包和/或脚本。
因此,一旦在网络设备200上执行脚本,具有网络管理能力的客户端计算机系统就远程调用脚本中定义的业务以执行各种网络管理任务。任务可以包括在网络设备200上更新和/或卸载逻辑交换机。此外,如上文所述,一旦执行并安装逻辑交换机,SDN控制器模块138就使用众所周知的通信协议(例如OpenFlow、x86指令集、MPLS、点击软件路由器模块、功能编程模型等)通过南向API控制网络设备200的转发平面行为。在一项实施例中,可以使用HTTP客户端脚本自动配置网络设备。
图3A描绘了根据本发明实施例的使用REST架构的SDN控制器模块与SDN控制代理模块之间的示例HTTP请求消息330和响应消息340。请求消息330包括“获取(Get)”请求331,用于使用特定URI(例如logical_switch_URI)从SDN控制器模块138提取逻辑交换机表征。消息330的形式可以是REST资源请求。响应于消息330,SDN控制器模块138返回可以包括表征的响应消息340,该表征包含一组已定义的逻辑交换机。网络设备中的SDN控制器模块138与SDN控制代理模块238之间的通信协议可以通过以下方式标准化:使不同供应商(例如HTTP 1.1、HTTP 2.0、CORE等)的SDN控制代理模块238都能够与SDN控制器模块138通信。这样,SDN控制器模块138和SDN控制代理模块238可以通过各种内容协商机制选择最佳逻辑交换机表征(例如JSON、XML等)。
图3B描绘了根据本发明实施例的逻辑交换机表示的示例组件。例如,逻辑交换机组350可以包括在一个逻辑交换机表征内编码的多个逻辑交换机(例如逻辑交换机354)。因此,SDN控制代理模块238可以通过以下方式从SDN控制器模块138加载逻辑交换机354:解析逻辑交换机组350并加载各种元件或组件,例如需求元件352、脚本元件351和/或包元件353。这样,SDN控制代理模块238可以指示驻留于本地计算机系统上的程序(例如rpm、atp、yum、git等)和/或操作系统(例如Linux、Windows)执行逻辑交换机表征中指定的一组指令(例如主脚本)。
需求元件352可以指定网络设备需要的特定硬件和/或软件配置文件等(例如CPU能力、存储能力、驻留操作系统等),以便在本地成功执行逻辑交换机354。脚本元件351可以指定如旨在使逻辑交换机354要在本地计算机系统上执行的流程自动化的一组指令。包元件353可以指定,例如,可提供本地计算机系统支持执行脚本元件351和/或其它流程所需的功能的特定软件模块或库。
图3C描绘了根据本发明实施例的示例逻辑交换机组。如本文所述,逻辑交换机组350可以包括一个或多个逻辑交换机(例如逻辑交换机354)。另外,如本文所述,逻辑交换机354可以包括若干组件,例如需求元件352、脚本元件351a和/或351b,和/或包元件353。虽然图3C中以XML格式描绘逻辑交换机编码,但是也可以使用其它格式。
需求元件352可以指定网络设备执行部分逻辑交换机354所需的特定硬件和/或软件配置文件。例如,需求元件352可以包括网络设备执行脚本元件351a和/或脚本元件351b所需的特定硬件和/或软件配置文件。执行脚本元件351a和351b所需的特定硬件和/或软件配置文件可以相同或者可以不同。例如,在一项实施例中,脚本元件351a可能需要针对Linux操作系统设计的硬件和/或软件配置文件,而脚本元件351b可能需要针对Windows操作系统设计的硬件和/或软件配置文件。另外,需求元件352还可以包括详列各种端口和/或网络适配器配置细节的指令。
此外,脚本元件351a和/或351b可旨在执行各种操作,包括安装、验证、编译、测试、发布、删除和更新操作。如图3C所描绘,脚本元件351a可表示旨在使网络设备200上的通信协议(例如OpenFlow、x86指令集、MPLS、点击软件路由器模块、功能编程模型等)的安装过程自动化的一组“主要”指令。例如,在图3C所描绘的示例中,网络设备的SDN控制代理模块238可以用于定位并执行脚本元件351a以启动网络设备上的OpenFlow通信协议的安装流程。
或者,脚本元件351a可包括有助于在网络设备200上安装另一通信协议,例如x86指令集、MPLS、点击软件路由器模块、功能编程模型等的指令。这样,网络设备200与SDN控制器模块138之间的通信可以支持替代性抽象,这些替代性抽象支持不使用限定指令和动作固定的包处理模型,限定指令和动作即固定的IPv4/IPv6字段、固定的表和条目格式等。
此外,如图3C所描绘,脚本元件351b可旨在执行独立于脚本元件351a的任务或操作。例如,脚本元件351b可旨在对网络设备200执行更新操作。因此,脚本元件351b可包括更新网络设备200上的当前硬件和/或软件设置的操作。此外,包元件353(未示出)可以包括各种软件库或模块,这些软件库或模块可提供支持执行脚本元件351a和/或351b和/或网络设备200要执行的其它流程所需的功能。在一项实施例中,脚本元件351a和351b可配置为并行工作或依赖于彼此的执行而工作。
因此,可以自定义本发明实施例以支持更广泛的SDN控制器供应商。通过使用本文描述的方式从SDN控制器模块138加载逻辑交换机354,而不是直接向网络设备200预加载逻辑交换机354,本发明实施例提高了逻辑交换机与SDN控制器之间的互操作性,同时允许各个网络设备(例如路由器、物理交换机等)动态发展或改变其业务。这样,SDN控制器模块138与网络设备200之间不需要其它TCP/IP连接。
图4A描绘了根据本发明实施例的用于REST业务的SDN交换机和/或路由器初始化的示例计算机实施方法的一个流程图。
在步骤405处,网络设备(例如物理交换机)的SDN控制代理模块初始化到SDN控制器设备的SDN控制器模块的TCP/IP连接。SDN控制器设备可以是以通信方式耦合到SDN控制代理模块的主机计算机系统设备或者另一远程网络计算机系统。网络设备可以是与SDN控制器模块相同的物理数据网络层的成员,或者可以是不同物理数据网络层的成员。在一项实施例中,可存在一个启动下载的配置管理器。管理器可以由控制器、网络设备或另一计算机执行。
在步骤406处,SDN控制器模块向客户端计算机系统传送SDN控制代理模块和/或网络设备的标识。SDN控制代理的标识可以用于网络管理目的。例如,通过使用SDN控制器模块确定的一列SDN控制代理模块,网络管理系统可以创建和/或更新多个逻辑交换机。
在步骤407处,SDN控制器模块向步骤405的SDN控制代理模块发送消息以加载SDN控制器模块创建的逻辑交换机表征,以便促进通信协议的安装和/或初始化流程,其中这些通信协议使SDN控制器模块能够控制网络数据转发平面。该消息包括URI信息,该URI信息使得网络设备从SDN控制器模块确定和/或加载逻辑交换机。
在步骤408处,SDN控制代理模块接收在步骤407中发送的消息,并发送REST资源请求以从SDN控制器模块接收和/或加载逻辑交换机表征,以进一步在网络设备上进行处理。逻辑交换机表征可以包括SDN控制代理模块可以确定和/或执行的一个或多个逻辑交换机。
图4B描绘了根据本发明实施例的用于REST业务的SDN网络设备初始化的示例计算机实施方法的另一流程图。操作408(参见图4A)的细节在图4B中概述。
在步骤409处,SDN控制代理模块解析逻辑交换机表征以基于网络设备的硬件和/或软件配置文件确定网络设备可以执行哪个逻辑交换机。每个逻辑交换机可包括能够由SDN控制代理模块解析的若干组件(例如需求元件、脚本元件、包元件等)。因此,逻辑交换机表征中标识的各个逻辑交换机可以由具有不同的硬件和/或软件配置文件的网络设备来执行。
在步骤410处,SDN控制代理模块基于在步骤409处解析的数据确定网络设备是否具有合适的硬件和/或软件配置来当前在本地安装逻辑交换机表征中的逻辑交换机。SDN控制代理模块进行的确定可以基于当前硬件和/或软件设置(例如CPU能力、存储能力、驻留操作系统等)。如果SDN控制代理模块确定逻辑交换机表征中没有逻辑交换机可以安装于网络设备上,那么SDN控制代理模块将向SDN控制器模块发送错误消息,该错误消息指定对于安装逻辑交换机,网络设备在哪方面有缺陷(例如硬件和/或软件缺陷),如步骤411所详述。如果SDN控制代理模块确定逻辑交换机表征中有逻辑交换机可以安装于网络设备上,那么SDN控制代理模块确定网络设备是否具有执行与步骤410中确定的逻辑交换机相关联的一组指令或脚本所需的合适的软件包或模块,如步骤412所详述。
在步骤411处,SDN控制代理模块确定网络设备当前没有合适的硬件和/或软件设置来在本地安装逻辑交换机,因此SDN控制代理模块向SDN控制器模块发送错误消息,该错误消息指定对于安装逻辑交换机表征,网络设备在哪方面有缺陷(例如硬件和/或软件缺陷)。
在步骤412处,SDN控制代理模块确定网络设备当前是否具有合适的硬件和/或软件设置来在本地安装逻辑交换机,因此,SDN控制代理模块确定网络设备是否具有执行与步骤410中确定的逻辑交换机相关联的一组指令或脚本所需的合适的软件包或模块。如果SDN控制代理模块确定网络设备当前没有合适的软件包和/或脚本,那么SDN控制代理模块指示网络设备从主机设备或另一计算机系统下载逻辑交换机表征中指定的合适的软件包和/或脚本用于脚本执行,如步骤413所详述。如果SDN控制代理模块确定网络设备当前具有合适的软件包和/或脚本,那么SDN控制代理模块指示网络设备执行步骤410中确定的逻辑交换机所指定的脚本,如步骤414所详述。
在步骤413处,SDN控制代理模块确定网络设备当前没有合适的软件包和/或脚本,因此SDN控制代理模块指示网络设备从主机设备或另一计算机系统下载逻辑交换机表征中指定的合适的软件包和/或脚本用于脚本执行。一旦SDN控制代理模块收到合适的软件包和/或脚本,那么SDN控制代理模块就指示网络设备执行步骤410中确定的逻辑交换机所指定的脚本,如步骤414所详述。
在步骤414处,SDN控制代理模块确定网络设备当前具有合适的软件包和/或脚本,因此SDN控制代理模块指示网络设备执行步骤410中确定的逻辑交换机中所指定的脚本。该脚本可包括安装、更新、移除等指令、众所周知的通信协议。指令还可以包括详列各种端口和/或网络适配器配置细节的指令。
在步骤415处,脚本执行完成后,SDN控制器模块就准备好使用众所周知的通信协议通过南向API控制网络设备的转发平面行为。具有网络管理能力的计算机系统可以远程调用脚本中定义的业务以执行涉及网络设备的各种网络管理任务。
尽管本文中已经揭示某些优选实施例和方法,但所属领域的技术人员将从前述揭示内容显而易见,在不脱离本发明的精神和范围的情况下可以对此类实施例和方法进行变化和修改。希望本发明将仅限于所附权利要求书以及可适用法律的规则和原理所需的范围。
Claims (19)
1.一种物理交换机初始化装置,其特征在于,包括:
通信接口,用于通过网络与远程网络控制器通信;以及
处理器,耦合到所述通信接口并用于:
从所述远程网络控制器生成对逻辑交换机的表征状态转移业务资源请求以在所述装置上安装通信协议,用于接收指令以控制与所述装置对应的数据转发平面行为的操作;
基于所述装置的计算环境从所述逻辑交换机中指定的多个不同通信协议中选择所述通信协议;以及
执行所述逻辑交换机中指定的指令以在所述装置本地安装所述通信协议;
所述通信接口用于初始化与所述远程网络控制器的TCP/IP连接以发送所述表征状态转移业务资源请求。
2.根据权利要求1所述的装置,其特征在于,所述逻辑交换机包括可扩展标记语言(Extensible Markup Language,XML)媒体类型,其中所述逻辑交换机包括用于定义执行所述指令的脚本的XML元素。
3.根据权利要求1所述的装置,其特征在于,所述通信协议是OpenFlow。
4.根据权利要求1所述的装置,其特征在于,所述指令指定预先确定的通信信道,用于使用所述通信协议参与所述装置与所述远程网络控制器之间的通信。
5.根据权利要求1所述的装置,其特征在于,所述装置是软件定义网络物理交换机。
6.根据权利要求1所述的装置,其特征在于,所述装置是软件定义网络路由器。
7.一种具有计算机可执行指令的非瞬时性计算机可读存储介质,其特征在于,所述指令在执行时使网络设备执行一种方法,所述方法包括:
通过网络向远程网络控制器发送表征状态转移业务资源请求以加载用于在所述网络设备上安装通信协议的逻辑交换机,其中所述通信协议使所述远程网络控制器能够控制与所述网络设备对应的数据转发平面的操作;
基于所述网络设备的计算环境从所述逻辑交换机中指定的多个不同通信协议中选择所述通信协议;以及
执行所述逻辑交换机中指定的指令以在所述网络设备本地安装所述通信协议;
所述发送还包括初始化与所述远程网络控制器的TCP/IP连接以发送所述表征状态转移业务资源请求。
8.根据权利要求7所述的非瞬时性计算机可读存储介质,其特征在于,所述选择还包括确定所述网络设备的当前硬件和软件设置并基于所述当前硬件和软件设置选择所述通信协议。
9.根据权利要求7所述的非瞬时性计算机可读存储介质,其特征在于,所述执行还包括下载所述逻辑交换机中指定的脚本以在所述网络设备上安装所述通信协议。
10.根据权利要求7所述的非瞬时性计算机可读存储介质,其特征在于,还包括在所述网络设备上安装所述通信协议后通过所述通信协议与所述远程网络控制器通信,并从所述远程网络控制器接收指令以调整所述网络设备的所述数据转发平面行为。
11.根据权利要求7所述的非瞬时性计算机可读存储介质,其特征在于,所述通信协议是OpenFlow。
12.根据权利要求7所述的非瞬时性计算机可读存储介质,其特征在于,所述通信协议是x86指令集。
13.一种物理交换机初始化装置,其特征在于,包括:
通信接口,用于通过网络与远程网络设备通信;以及
处理器,耦合到所述通信接口并用于:
通过数据通信网络从远程网络设备接收对逻辑交换机的表征状态转移业务资源请求以在所述远程网络设备上安装通信协议,其中所述通信协议使所述装置能够控制所述远程网络设备的数据转发平面行为;以及
收到所述表征状态转移业务资源请求后,通过所述数据通信网络向所述远程网络设备传送所述逻辑交换机。
14.根据权利要求13所述的装置,其特征在于,所述处理器用于通过为多个不同通信协议创建多个不同配置来生成所述逻辑交换机,其中所述生成的逻辑交换机包括使所述远程网络设备基于所述远程网络设备的计算环境在所述远程网络设备上安装所述多个通信协议之一的指令。
15.根据权利要求13所述的装置,其特征在于,所述逻辑交换机包括可扩展标记语言(Extensible Markup Language,XML)媒体类型,其中所述逻辑交换机包括用于定义执行指令的脚本的XML元素。
16.根据权利要求13所述的装置,其特征在于,所述逻辑交换机包括执行以下操作的指令:指定预先确定的通信信道,用于使用所述通信协议参与所述装置与所述远程网络设备之间的通信。
17.根据权利要求13所述的装置,其特征在于,所述装置是软件定义网络控制器设备。
18.根据权利要求13所述的装置,其特征在于,所述远程网络设备是软件定义网络物理交换机。
19.根据权利要求13所述的装置,其特征在于,所述网络是软件定义网络。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/512,918 US20160105534A1 (en) | 2014-10-13 | 2014-10-13 | Physical switch initialization using representational state transfer services |
US14/512,918 | 2014-10-13 | ||
PCT/CN2015/091861 WO2016058519A1 (en) | 2014-10-13 | 2015-10-13 | Physical switch initialization using representational state transfer services |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106797670A CN106797670A (zh) | 2017-05-31 |
CN106797670B true CN106797670B (zh) | 2020-04-03 |
Family
ID=55656308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580055735.7A Active CN106797670B (zh) | 2014-10-13 | 2015-10-13 | 一种物理交换机初始化方法的和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160105534A1 (zh) |
CN (1) | CN106797670B (zh) |
WO (1) | WO2016058519A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101703088B1 (ko) * | 2015-04-10 | 2017-02-22 | 쿨클라우드(주) | Sdn 기반의 통합 라우팅 방법 및 그 시스템 |
US9792163B1 (en) * | 2016-06-28 | 2017-10-17 | Vmware, Inc. | Decentralized control plane for a computing system |
US10848432B2 (en) * | 2016-12-18 | 2020-11-24 | Cisco Technology, Inc. | Switch fabric based load balancing |
US10749751B2 (en) * | 2018-05-02 | 2020-08-18 | Nicira, Inc. | Application of profile setting groups to logical network entities |
US10742503B2 (en) | 2018-05-02 | 2020-08-11 | Nicira, Inc. | Application of setting profiles to groups of logical network entities |
US10778639B2 (en) | 2018-11-28 | 2020-09-15 | Vmware, Inc. | Link local address assignment for interfaces of overlay distributed router |
KR102286913B1 (ko) * | 2019-12-13 | 2021-08-05 | 주식회사 엘지유플러스 | 네트워크 관리 장치 및 그 제어방법 |
US11700179B2 (en) | 2021-03-26 | 2023-07-11 | Vmware, Inc. | Configuration of logical networking entities |
CN115277422B (zh) * | 2022-07-21 | 2024-04-16 | 浪潮思科网络科技有限公司 | 一种sdn组网生成方法、装置、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104009871A (zh) * | 2014-06-06 | 2014-08-27 | 中国科学院声学研究所 | Sdn控制器实现方法及sdn控制器 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7751416B2 (en) * | 2003-09-18 | 2010-07-06 | Cisco Technology, Inc. | Virtual network device |
EP2745208B1 (en) * | 2011-08-17 | 2018-11-28 | Nicira, Inc. | Distributed logical l3 routing |
US20150249587A1 (en) * | 2012-09-20 | 2015-09-03 | Ntt Docomo, Inc. | Method and apparatus for topology and path verification in networks |
CN104685935B (zh) * | 2012-09-27 | 2019-01-15 | 交互数字专利控股公司 | 虚拟化网络中的端到端架构、api框架、发现以及接入 |
US8953618B2 (en) * | 2012-10-10 | 2015-02-10 | Telefonaktiebolaget L M Ericsson (Publ) | IP multicast service leave process for MPLS-based virtual private cloud networking |
US9106515B2 (en) * | 2012-10-22 | 2015-08-11 | Futurewei Technologies, Inc. | System and apparatus of a software-service-defined-network (SSDN) |
US8964752B2 (en) * | 2013-02-25 | 2015-02-24 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for flow table lookup parallelization in a software defined networking (SDN) system |
US9912521B2 (en) * | 2013-03-13 | 2018-03-06 | Dell Products L.P. | Systems and methods for managing connections in an orchestrated network |
US9210074B2 (en) * | 2013-05-03 | 2015-12-08 | Alcatel Lucent | Low-cost flow matching in software defined networks without TCAMs |
WO2014208538A1 (ja) * | 2013-06-25 | 2014-12-31 | 日本電気株式会社 | 通信システムと装置と方法とプログラム |
US9407580B2 (en) * | 2013-07-12 | 2016-08-02 | Nicira, Inc. | Maintaining data stored with a packet |
US9363190B2 (en) * | 2013-07-31 | 2016-06-07 | Manjrasoft Pty. Ltd. | System, method and computer program product for energy-efficient and service level agreement (SLA)-based management of data centers for cloud computing |
US20160254959A1 (en) * | 2013-10-11 | 2016-09-01 | Hewlett Packard Enterprise Development Lp | Provisioning a network for network traffic during a session |
CN103761102B (zh) * | 2014-01-26 | 2017-05-31 | 中国联合网络通信集团有限公司 | 一种统一数据服务平台及其实现方法 |
US10200258B2 (en) * | 2014-08-14 | 2019-02-05 | Juniper Networks, Inc. | Transaction integrity for network services configuration |
US9398081B2 (en) * | 2014-08-20 | 2016-07-19 | Futurewei Technologies, Inc. | Automating client development for network APIs |
US9468014B2 (en) * | 2014-10-02 | 2016-10-11 | Palo Alto Research Center Incorporated | Utility-based cross layering |
-
2014
- 2014-10-13 US US14/512,918 patent/US20160105534A1/en not_active Abandoned
-
2015
- 2015-10-13 CN CN201580055735.7A patent/CN106797670B/zh active Active
- 2015-10-13 WO PCT/CN2015/091861 patent/WO2016058519A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104009871A (zh) * | 2014-06-06 | 2014-08-27 | 中国科学院声学研究所 | Sdn控制器实现方法及sdn控制器 |
Also Published As
Publication number | Publication date |
---|---|
WO2016058519A1 (en) | 2016-04-21 |
US20160105534A1 (en) | 2016-04-14 |
CN106797670A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106797670B (zh) | 一种物理交换机初始化方法的和装置 | |
EP3454213B1 (en) | Function library build architecture for serverless execution frameworks | |
US9715380B2 (en) | Techniques for enabling dynamic update of device data models | |
US20150074659A1 (en) | Methods and Apparatus to Perform Web-Based Installations and/or Upgrade Architectures for Enterprise Software | |
US20170155569A1 (en) | Test case based virtual machine (vm) template generation | |
KR102158754B1 (ko) | 스마트 네트워크 인터페이스 카드의 조작 방법 및 조작 장치 | |
US8332490B2 (en) | Method, apparatus and program product for provisioning a computer system | |
US11636016B2 (en) | Cloud simulation and validation system | |
US20220353327A1 (en) | State management for device-driven management workflows | |
EP3382942A1 (en) | Network service configuration method and network management device | |
US20170126490A1 (en) | Method and system for configuring network devices | |
CN111309279A (zh) | 多屏互动显示方法及装置 | |
US20160149987A1 (en) | Methods, systems, and computer readable media for automatic generation of programming-language-neutral representation of web application protocol interactions that implement network test | |
KR101977401B1 (ko) | 동적 모드버스 프로토콜 매핑을 지원하는 통신 장치 | |
JP6195465B2 (ja) | 同期サーバ側スクリプティングを用いた遠隔カードコンテンツ管理 | |
US20190386886A1 (en) | Method and system for virtual network service activation | |
EP3321808B1 (en) | Verification system and verification method | |
US20200007340A1 (en) | Internet of things security module | |
KR20150088462A (ko) | 클라우드 환경에서 네트워크 장치의 연동 방법 및 장치 | |
CN112000378A (zh) | Vr设备管理方法、系统 | |
US10445201B2 (en) | System and method for automated integration and stress testing of hardware and software service in management controller using containerized toolbox | |
CN112910956B (zh) | 一种资源创建方法、装置及电子设备 | |
EP3582440B1 (en) | Method and system for virtual network service activation | |
KR102250138B1 (ko) | 마이크로서비스 기반의 기기 제어 인터페이스 제공 시스템 및 그 방법 | |
CN101895415A (zh) | 一种对不同类型设备的管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |