CN111327452A - 使用消息总线的网络设备配置 - Google Patents
使用消息总线的网络设备配置 Download PDFInfo
- Publication number
- CN111327452A CN111327452A CN201910579814.8A CN201910579814A CN111327452A CN 111327452 A CN111327452 A CN 111327452A CN 201910579814 A CN201910579814 A CN 201910579814A CN 111327452 A CN111327452 A CN 111327452A
- Authority
- CN
- China
- Prior art keywords
- configuration
- network device
- network
- data
- configuration change
- 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.)
- Granted
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/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- 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/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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
-
- 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/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- 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/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0859—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions
-
- 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/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0859—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions
- H04L41/0863—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions by rolling back to previous configuration versions
-
- 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/0866—Checking the configuration
- H04L41/0873—Checking configuration conflicts between network 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/0893—Assignment of logical groups to network 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/0894—Policy-based network configuration management
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例涉及控制器、网络设备和计算系统。总体上描述了用于利用针对计算机网络的网络控制器使用一个或多个消息总线来管理计算机网络内的网络设备的配置的技术。在一些示例中,控制器包括被耦合到存储器的处理电路。处理电路被配置为生成用于实现针对网络设备的配置更改的数据,并且将用于实现针对网络设备的配置更改的数据存储到配置数据库。处理电路还被配置为将由与控制器分开的一个或多个计算设备执行的消息总线的消息队列添加到针对网络设备的配置更改的指示,以使网络设备从配置数据库获得用于实现针对网络设备的配置更改的数据。
Description
技术领域
本公开涉及计算机网络,并且更具体地,涉及配置计算机网络的网络设备。
背景技术
计算机网络是交换数据和共享资源的互连计算设备的集合。在基于分组的网络中,计算设备通过将数据划分成被称为分组的小块来进行数据的通信,这些小块被独立地在网络上从源设备路由到目的地设备。目的地设备从分组中提取数据并将数据组合成其原始形式。计算机网络可以包括多个网络设备,其中多个网络设备中的每个网络设备被配置为与网络内的其他设备交换信息(例如,分组、数据包、容器、服务或其他数据)。在某些情况下,网络内的通信可以根据网络配置发生。
基于意图的网络系统(IBNS)是用于管理计算机网络配置的方法。在IBNS内,用户可以向控制器指定预期配置,并且控制器可以确定针对网络设备的相应网络配置,并使用诸如网络配置协议(NETCONF)、安全外壳(SSH)和远程程序调用(RPC)之类的协议将相应配置“推送”给网络设备。
发明内容
总体上描述了用于利用针对计算机网络的网络控制器、使用一个或多个消息总线来管理计算机网络内的网络设备的配置的技术。例如,控制器可以使用消息总线来发布对网络设备的配置的待决更改的通知。网络设备可以经由消息总线来检测通知,并且响应地获得用于配置网络设备的配置数据。在一些示例中,消息总线可以是轻量级消息代理(例如,RabbitMQ、Kafka等),并且可以被用来在控制器和网络设备之间分发通知和/或配置数据。在一些示例中,每个网络设备订阅到消息总线以接收通知。网络设备可以订阅到不同的、相应消息队列,或者多个网络设备可以订阅到相同的消息队列,并且每个消息可以识别要拉取通知的网络设备。
在一些示例中,网络设备可以响应于经由消息总线的可用于网络设备的新配置的通知,获得并比较针对网络设备的新抽象配置与针对网络设备的当前抽象配置。如果存在差异,则网络设备可以确定用于配置网络设备的配置命令或配置数据,以实现差异,并且以此方式,使网络设备符合由新抽象配置所表示的预期配置。抽象配置是结合网络的当前状态评估意图的结果。
在一些示例中,网络设备可以使用消息总线向控制器通知对网络设备的配置的更改。例如,网络设备可以检测网络设备的配置的修改,并且响应地向消息总线发布通知。控制器可以订阅到消息总线以获得通知,并且响应于该通知,可以获得网络设备的配置。由控制器应用于所获得的配置的策略可以确定将要由控制器应用的一个或多个动作(或无动作/无操作),以解决对网络设备的配置的修改。
本公开的技术可以提供一个或多个技术改进或优点。例如,向网络设备下达命令以检索配置数据的消息总线发布通知可以增加网络设备配置可扩展性。由于控制器的网络带宽、处理能力、内存等资源可能是配置数百甚至数千个网络设备的瓶颈,因此可能有益的是命令网络设备从配置数据存储中检索配置数据,而不是使用控制器直接将配置数据推送到网络设备。这些技术可以减少在大量网络设备中分发和应用配置更改所需的时间量,并降低了控制器故障的可能性。另外,通过生成针对网络设备的抽象配置,该技术可以改善控制器的通用性,以与由使用许多不同格式的操作配置的多个不同供应方所制造的网络设备互操作。每个网络设备可以负责将可以适用于任何网络设备的抽象配置转换为其操作配置数据。作为另一示例,使用用于在网络设备和控制器之间传递的消息和配置的消息总线也可以增加控制器的通用性并简化控制器,因为控制器可以实现更少的协议,否则这些协议将需要与由不同供应方制造的不同类型网络设备进行通信。
在一些情况下,控制器可以将版本号指派给应用于网络设备的每个配置更改,并且存储指示与每个版本号相关联的配置的数据。这可以使网络设备能够检索与网络设备的配置的先前版本相关联的数据。
另外或替代地,通过向控制器通知对网络设备做出的修改,在某些情况下,这些技术可以增加针对多个网络设备的预期网络配置与网络设备的实际网络配置之间的一致性的可能性。这可以减少网络设备的例如关于网络分组转发或其他处理的错误配置和非预期操作。
在一些示例中,控制器包括被耦合到存储器的处理电路。处理电路被配置为生成用于实现针对网络设备的配置更改的数据,将用于实现针对网络设备的配置更改的数据存储到配置数据库,并且将针对网络设备的配置更改的指示添加到由与控制器分开的一个或多个计算设备执行的消息总线,以使网络设备从配置数据库获得用于实现针对网络设备的配置更改的数据。
在其他示例中,网络设备包括耦合到存储器的处理电路。处理电路被配置为从一个或多个计算设备执行的消息总线的消息队列接收针对网络设备的配置更改的指示,所述一个或多个计算设备与由管理网络设备的控制器分开,响应于该指示,从配置数据库获取用于实现针对网络设备的配置更改的数据,并基于该数据实现配置更改,以修改网络设备的配置。
在其他示例中,计算系统包括控制器,包括被耦合到第一存储器的第一处理电路。第一处理电路被配置为生成用于实现针对网络设备的配置更改,将用于实现针对网络设备的配置更改的数据存储到配置数据库,以及将针对网络设备的配置更改的指示添加到由与控制器分开的一个或多个计算设备执行的消息总线的消息队列。另外,网络设备包括被耦合到第二存储器的第二处理电路。第二处理电路被配置为从消息总线的消息队列接收针对网络设备的配置更改的指示,响应于该指示从配置数据库中获得用于实现针对网络设备的配置更改的数据,并基于该数据实现配置更改,以修改网络设备的配置。
发明内容旨在提供本公开中描述的主题的概述。其并不旨在提供在下面的附图和描述中详细描述的系统、设备和方法的排他性或详尽的解释。在附图中和在以下描述中阐述了本公开的一个或多个示例的进一步细节。根据说明书和附图以及权利要求,其他特征、目的和优点将是显而易见的。
附图说明
图1图示出了根据本公开的一种或多种技术的示例网络系统。
图2是图示出根据本公开的一种或多种技术的软件定义联网(SDN)控制器的示例实例的框图。
图3是图示出根据本公开的一种或多种技术的示例网络设备的框图。
图4是图示出根据本发明的一种或多种技术的示例操作的流程图。
图5是图示出根据本发明的一种或多种技术的另一示例操作的流程图。
在整个附图和文本中,相同的附图标记标注相同的元件。
具体实施方式
图1图示出了根据本公开的一种或多种技术的示例网络系统。图1的示例网络系统包括服务提供方网络2,其使用网络设备16A-16N(统称为“网络设备16”)向订户设备18提供基于分组的网络服务。即,服务提供方网络2为订户设备18提供网络接入的认证和建立,使得订户设备可以与分组数据网络(PDN)12交换数据分组,该分组数据网络可以表示诸如因特网之类的内部或外部基于分组的网络或者可以表示使用基于分组的网络服务的边缘网络9。虽然关于操作服务提供方网络2的服务提供方进行了描述,但是在一些示例中,网络2可以表示由大型企业所管理的企业网络。因此,对“服务提供方”或“提供方”的引用可以类似地指代“企业管理者”、“网络管理者”或“运营方”。此外,尽管主要描述了意味着服务提供方网络服务中的最终用户的“订户”,但是本文中所描述的技术类似地适用于服务提供方的“客户”以及诸如蜂窝塔、多租户单元(MTU)、住宅聚合点等等之类的客户设备。客户的示例可以包括大学、企业或者任何其他购买、租赁或以其他方式使用由服务提供方网络2提供的服务的实体。
网络设备16至少部分地由SDN控制器20管理,SDN控制器20与服务提供方网络2合作提供软件定义联网,以用于配置网络设备16,以根据经由接口26编程到SDN控制器20的意图来进行操作。意图是指针对服务提供方网络2的高级操作要求,其指定服务提供方网络2将实现什么服务或策略。如此,服务提供方网络2实现基于意图的网络系统(IBNS),以用于管理服务提供方网络2的配置,并且更具体地,管理各个网络设备16的配置。在IBNS内,用户、服务提供方网络2运营方/管理员、软件代理或其他实体可以向SDN控制器20指定预期的配置(即,“意图”),并且SDN控制器20可以确定用于一个或多个网络设备16的相应低级网络配置。因此,SDN控制器20可以将经由接口26接收的意图转换为针对服务提供方网络2的期望状态,并且然后可以为一个或多个网络设备16生成配置数据(或“配置状态”)。SDN控制器20是用于网络的网络控制器或控制器的示例。
网络设备16经由通信链路(为了便于说明而未示出)互连以形成通信拓扑,以便交换分组数据。网络设备16可以包括例如路由器、交换机、网关、网桥、集线器、服务器、防火墙或其他入侵检测系统(IDS)或入侵预防系统(IDP)、另一类型的计算设备或网络设备、或者这些设备的组合。虽然在本公开中描述为传送、传达或以其他方式支持分组,但是服务提供方网络2可以根据由任何其他协议所定义的任何其他离散数据单元来传送数据,诸如由异步传输模式(ATM)协议所定义的单元、或由用户数据报协议(UDP)所定义的数据报。互连网络设备16的通信链路可以是物理链路(例如,光学、铜等)或者是无线的。
在图1的示例中,服务提供方网络2包括接入网络6(“接入网络6”),其经由服务提供方核心网络7和网关8来提供到PDN 12和边缘网络9的连接性。服务提供方核心网络7和PDN 12提供可供订户设备18请求和使用的基于分组的服务。例如,服务提供方核心网络7和/或PDN 12可以提供例如批量数据递送、因特网协议语音(VoIP)、因特网协议电视(IPTV)、短消息收发服务(SMS)、无线应用协议(WAP)服务或客户特定应用程序服务。PDN 12可以包括例如局域网(LAN)、广域网(WAN)、因特网、虚拟LAN(VLAN)、企业LAN、层3虚拟专用网(VPN)、由操作接入网络6的服务提供方所操作的因特网协议(IP)内联网、企业IP网络或其某种组合。在各种实施例中,PDN 12连接到公共WAN、因特网或其他网络。PDN 12执行一个或多个分组数据协议(PDP),诸如IP(IPv4和/或IPv6)、X.25或点对点协议(PPP)以实现PDN12服务的基于分组的传输。
订户设备18经由接入网络6连接到网关8,以接收到由网络设备16托管的应用的订户服务的连接性。订户可以表示例如企业、住宅订户或移动订户。订户设备18可以是例如个人计算机、膝上型计算机或与订户相关联的其他类型的计算设备。另外,网络设备16可以包括经由无线电接入网络(RAN)4接入服务提供方网络2的数据服务的移动设备。示例移动订户设备包括具有例如3G无线卡的移动电话、膝上型或台式计算机、具有无线功能的上网本、视频游戏设备、寻呼机、智能电话、个人数据助理(PDA)等。每个订户设备18可以运行各种软件应用,诸如文字处理和其他办公室支持软件、网络浏览软件、支持语音呼叫的软件、视频游戏、视频会议和电子邮件等。订户设备18经由包括有线和/或无线通信链路的接入链路而连接到接入网络6。本文所使用的术语“通信链路”包括任何形式的有线或无线传输介质,并且可以包括诸如网络设备之类的中间节点。每个接入链路可以包括例如非对称DSL网络、WiMAX、T-1线路、综合业务数字网络(ISDN)、有线以太网或蜂窝无线电链路的各方面。
在一些示例中,可以将网络设备配置应用于网络设备16的每个网络设备。针对网络设备16的网络设备配置指定网络设备16的操作配置。网络设备配置可以指定用于控制、转发和服务的配置。网络设备的可配置特征可以包括接口、机箱组件、管理、安全性、协议、网络地址转换(NAT)、诸如虚拟专用网络之类的服务、服务质量等。应用于网络设备16A的配置更改可以改变服务提供方网络2内的网络设备16A的操作。
另外,网络设备16的配置可以包括选择一个或多个网络设备16为“管理”状态。例如,被选择为管理状态的一个或多个网络设备16可以在服务提供方网络2内具有特殊权限。网络设备16的配置还可以包括安全规则和通信协议的确定。例如,服务提供方网络2可以更新确定与网络设备16的安全通信的一个或多个安全规则。服务提供方网络2可以选择用于在服务提供方网络2内执行安全通信的一个或多个加密算法,诸如Rivest-Shamir-Adleman(RSA)、高级加密标准(AES)、椭圆曲线集成加密方案(ECIES)、数据加密标准(DES)、双鱼加密、三鱼加密或密钥交换方法。
接入网络6的传输节点将接入节点连接到能够实现进行区域间分组传输的边界节点。边界节点可以包括区域边界路由器和自主系统边界路由器(ASBR)。在所图示的示例中,边界节点(未示出)将接入网络6耦合到核心网络7。
服务提供方核心网络7可以表示由服务提供方拥有和操作以互连多个网络的网络,所述多个网络可以包括接入网络6、PDN 12和边缘网络9。服务提供方核心网络7可以实现多协议标签交换(MPLS)转发并且在这种情形中可以被称为MPLS网络或MPLS骨干。PDN 12可以表示例如通过诸如客户边缘交换机或路由器之类的客户边缘设备耦合到核心网络7的边缘网络。边缘网络9可以包括数据中心。
接入网络6、核心网络7和边缘网络9可以包括将服务应用于订户分组的服务节点。服务节点示例包括L2提供方边缘(PE)或L3 PE路由器、宽带网络网关(BNG)、对等路由器、内容服务器、媒体网关、基站控制器等。图示的网关8包括服务节点的示例。
在包括有线/宽带接入网络的网络2的示例中,网关8例如可以表示宽带网络网关(BNG)、宽带远程接入服务器(BRAS)、MPLS提供方边缘(PE)路由器、核心路由器、L2/L3 PE路由器或网关。在包括蜂窝接入网络作为接入网络6的网络2的示例中,网关8可以表示移动网关,例如,网关通用分组无线电服务(GPRS)服务节点(GGSN)、接入网关(aGW)或者分组数据网络(PDN)网关(PGW)。在其他示例中,可以在交换机、服务卡或其他网络元件或组件中实现关于网关8描述的功能性。
边缘网络9可以表示例如商业边缘网络、宽带用户管理边缘网络、移动边缘网络、诸如企业分支机构之类的客户站点或其组合。在一些示例中,边缘网络9可以提供服务提供方管理的网络托管的增值服务(VAS),包括例如应用感知和用户感知服务和计费。图1的接入网络6也是用于服务提供方网络2的边缘网络的示例。边缘网络9可以替代地表示由计算环境提供服务的数据中心/增值服务复合体,该计算环境包括例如通用计算设备的可扩展集群,诸如基于x86处理器的服务器。作为另一示例,计算环境可以包括通用计算设备和专用设备的组合。服务提供方核心网络7可以耦合到多个边缘网络,诸如边缘网络9的任何前述示例。
在被虚拟化时,由数据中心的服务节点所提供的各个网络服务可以通过虚拟化存储器的分配、处理器利用率、储存和网络策略以及通过添加另外的负载平衡虚拟机来进行扩展。在一个示例中,边缘网络9可以包括数据中心,该数据中心包括实现工业标准协议的一组互连的、高性能的、现成的基于分组的路由器和交换机。
在一个示例中,软件定义联网(SDN)控制器20可以包括被配置为实现功能性和/或执行指令的一个或多个处理器。SDN控制器20可以由诸如真实或虚拟服务器之类的一个或多个计算设备执行。SDN控制器20可以包括例如微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或等效的分立或集成逻辑电路、或任何前述设备或电路的组合。在图1中所图示的示例中,SDN控制器20包括存储设备22、意图和策略引擎24以及接口26。
存储设备22可以被配置为在操作期间在SDN控制器20内存储信息。存储设备22可以包括计算机可读储存介质或计算机可读存储设备。存储设备22可以包括例如一个或多个硬盘。存储设备22可以表示设备上或设备外配置数据库,用以存储针对网络设备16的抽象(或高级)配置、意图、针对网络设备16的低级(或实际)配置、针对网络设备16的配置片段、和/或针对网络设备16的其他配置数据。
根据本公开中描述的技术,在一些示例中,SDN控制器20的意图和策略引擎24可以确定并驱动对网络设备16的配置更改。例如,意图和策略引擎24分析指示针对网络设备16的预期配置的数据,并将指示预期配置的数据与指示网络设备16的当前配置的数据进行比较,其可以作为抽象配置而被存储到存储设备22。以这种方式,意图和策略引擎24确定网络设备16的实际配置与针对网络设备16的预期配置之间的差异,其可以由用户作为意图输入。意图和策略引擎24可以响应于确定配置更改是必要的而经由消息总线30向网络设备16输出指令。另外,在一些情况下意图和策略引擎24经由消息总线30从网络设备16接收数据。
接口26可以表示北向接口,用以根据针对接口26的一个或多个定义或模式以命令、语句、标记语言的形式接收意图。接口26可以是REST应用编程接口(API)。接口26可以与自动化堆栈集成,诸如Puppet、Chef、Ansible、CFEngine或SaltStack。接口26可以与编排堆栈集成,诸如Kubernetes、OpenStack、vCloudDirector、Contrail、Tungsten Fabric或CloudStack。接口26可以包括命令行接口(CLI)、图形用户接口(GUI),或者可选地包括另一种类型的接口。例如,用户可以经由接口26向SDN控制器20输入预期的配置,并且SDN控制器20可以确定要对网络设备16进行的配置更改,以便实现预期的配置。
根据本公开中所描述的技术,用于服务提供方网络2的SDN控制器20使用一个或多个消息总线来管理网络设备16的配置。在图1的示例中,SDN控制器20使用消息总线30向网络设备16递送新网络配置数据的指示,并且在一些情况下,接收由不是SDN控制器20的实体所引起的网络设备16的新配置的指示。消息总线30表示实现消息总线以使SDN控制器20和网络设备能够交换消息的一个或多个计算设备。消息总线30可以包括由一个或多个计算设备执行的消息代理软件,诸如RabbitMQTM、ActiveMQ、Apache Kafka、StormMQ。消息总线30可以根据多个不同消息协议中的一个或多个来进行通信,例如,高级消息队列协议(AMQP)、面向流传输文本消息协议(STOMP)、消息队列遥测传输(MQTT)和/或超文本传输协议(HTTP)。
在一些示例中,消息总线30包括消息队列,其在发送设备和接收设备之间组织和传输信息。消息队列可以按照信息被放置在消息队列中的顺序来组织信息。单个消息队列的一般操作如下:第一设备可以将消息添加(或“发送”或“发布”)到消息队列的顶部,并且第二设备可以从消息队列的底部检索(或“消费”)消息。第二设备可以按照第一设备将消息添加到消息队列的顺序来检索消息。因此,在这样的示例中,单个消息队列可以允许消息在从第一设备到第二设备的单个方向上行进。另一消息队列可以使第二设备能够向第一设备传送消息。发送设备可以从消息总线30请求消息队列,一个或多个接收设备可以订阅该消息队列以便接收推送消息,或者一个或多个接收设备可以轮询该消息以便获得由发送设备添加到消息队列的消息。发送设备也可以被称为生产者,接收设备也可以被称为消费者。
消息总线30包括消息队列32A-32N和34(统称为“消息队列32”)。在一些示例中,消息总线30包括与每个网络设备16相对应的分开的消息队列32。例如,消息队列32A可以接收由SDN控制器20添加并且预期针对网络设备16A的消息,消息队列32B可以接收由SDN控制器20添加并且预期针对网络设备16B的消息,并且消息队列32N可以接收由SDN控制器20添加并且预期针对网络设备16N的消息。在一些情况下,SDN控制器20可以使用消息总线30的消息队列来向多个网络设备16发送消息。在这种情况下,每个这样的消息可以识别作为预期接收者的一个或多个网络设备16。
消息总线30还包括消息队列34,其接收来自用于SDN控制器20的预期针对网络设备16的消息。如此,消息队列34在消息队列32A-32N的相反方向上递送消息。当网络设备16的网络设备(例如,网络设备16A)将消息发布到消息队列34时,网络设备16A可以将标识符附加到该消息,指示该消息是由网络设备16A所添加的。网络设备16的每个网络设备可以将标识符附加到被发布到消息队列34的数据,从而使SDN控制器20能够确定SDN控制器20从消息队列34中检索的数据的源。在一些情况下,一个或多个网络设备16可以具有用于向SDN控制器20发送消息的消息队列34的不同的相应实例。
在一些示例中,消息总线30产生确认接收,其通知源设备:消息已经由相应目的地设备接收到。例如,如果SDN控制器20将消息发布到预期针对网络设备16A的消息队列32A,则当由网络设备16A从消息队列32A检索到消息时,消息总线30可以向SDN控制器20发出确认接收。
消息总线30经由意图和策略引擎24来与SDN控制器20交互。因此,在一些示例中,意图和策略引擎24可以生成由SDN控制器20发布到消息总线30的信息。在其他示例中,SDN控制器20可以将信息发布到消息总线30,其由SDN控制器20经由接口26接收。
在一些情况下,服务提供方网络2可以包括与SDN控制器20分开的用于配置网络设备16的设备管理系统。运营方/管理员可以使用到设备管理系统的接口来配置网络设备16而不使用SDN控制器20。
SDN控制器20确定并指引网络设备16中的配置更改的实现。在一些示例中,SDN控制器20的意图和策略引擎24更新抽象配置,以反映配置更改,其中抽象配置和配置更改与网络设备16的网络设备(诸如网络设备16A)相关联。可以将抽象配置存储在存储设备22中。在一些情况下,配置更改可以由SDN控制器20确定。
例如,SDN控制器20可以经由接口26接收指示用于一个或多个网络设备16的预期配置的数据,诸如意图。SDN控制器20可以将指示预期配置的数据与已经由存储设备22存储的网络的状态进行比较。在一些示例中,SDN控制器20可以确定指示预期配置的数据与网络的状态之间存在差异。响应于确定差异,意图和策略引擎24可以确定是否需要将配置更改应用于网络设备16A(例如)。如果是,则意图和策略引擎24可以生成针对网络设备16A的新抽象配置,并且可以将针对网络设备16A的新抽象配置存储到存储设备22。
在生成应用网络设备16A的新抽象配置之后,SDN控制器20向消息总线30发布对针对网络设备16A的新抽象配置的指示。例如,SDN控制器20可以将该指示发布到与网络设备16A唯一关联的消息队列32A或者发布到具有包括在指示中的网络设备16A的标识符的共用消息队列。网络设备16A通过从消息总线30(例如,从消息队列32A)检索指示来接收新抽象配置的指示。
在一些示例中,从SDN控制器20发送到网络设备16A的新抽象配置的指示包括获得存储到存储设备22的新配置数据的通知。响应于新抽象配置的指示,网络设备图16A从存储设备22获得新抽象配置。例如,网络设备16A可以查询由存储设备22存储的配置数据库以获得新抽象配置。
网络设备16A可以基于新抽象配置确定是否需要对网络设备16A的配置更改。例如,网络设备16A可以将由网络设备16A存储的、表示现有实际设备配置的现有抽象配置与新抽象配置进行比较。如果存在差异,则网络设备16A可以确定并执行一组命令或确定新配置数据,以利用该新配置数据来修改针对网络设备16A的操作配置数据。
在一些示例中,不是新抽象配置的指示包括新配置数据或用于由网络设备16A执行的一组配置命令。在一些这样的示例中,配置更改可以表示可以在相对少量的数据中表示的相对较小的配置更改。网络设备16A可以从消息队列32A获得一组配置命令,并执行配置命令以修改其操作配置数据。网络设备16A可以替代地存储新配置数据,以修改其操作配置数据。可以执行用于修改网络设备16A配置的其他技术。在执行配置更新之后,网络设备16A可以向消息队列34发布指示配置更改已实现的验证消息。反过来,SDN控制器20可以从消息队列34检索验证消息,以至少关于网络设备16A验证运营方/管理员或其他实体的意图已被实现。SDN控制器20可以关于网络设备16B-16N中的一个或多个执行类似的配置相关操作以实现意图。
在一些情况下,网络设备16A可以存储网络设备16A的配置的至少一个先前版本。每个先前版本可以与唯一版本号相关联。例如,如果SDN控制器20使网络设备16A或任何网络设备16进行初级配置修改,则SDN控制器20可以将版本号与初级配置修改相关联。在网络设备16A实现初级配置修改之后,网络设备16A可以存储指示由初级配置修改所导致的配置的数据,并且将版本号附加到指示该配置的数据上。
尽管使用SDN控制器20将配置更改引导到网络设备16可能是有益的,但是在一些示例中,在不使用SDN控制器20的情况下,诸如通过GUI/CLI或通过使用与SDN控制器20分开的设备管理系统,运营方/管理员或其他实体可以导致对一个或多个网络设备16的配置更改。在本文中可以将使用SDN控制器20发起的配置更改称为“初级配置修改”。替代地,在本文中可以将使用网络设备16发起的配置更改称为“次级配置更改”。形容词“主要”和“次级”并不旨在描述配置更改中的任何顺序或偏好。
网络设备16A可以接收指示次级配置更改的数据,其中次级配置更改表示由网络设备16A的用户做出的预期配置更改。网络设备16A可以基于数据来修改网络设备16A的配置,并且网络设备16A可以根据次级配置更改来发送其配置已经修改的指示。例如,网络设备16A可以将指示发布到消息总线34,并且SDN控制器20可以消耗来自消息总线34的指示。在一些示例中,网络设备16A被配置为经由连接28将指示次级配置更改的数据发送到SDN控制器20。连接28可以是管理网络或ip结构(ip-fabric)连接的一部分。
可能有益的是,SDN控制器20评估由网络设备16发起的次级配置更改并确定每个相应的次级配置更改是否是可允许的。例如,SDN控制器20可以经由连接28向网络设备16A接收指示次级配置更改的数据,并且SDN控制器20被配置为将指示次级配置更改的数据与和网络设备16A相关联的抽象配置进行比较,以确定次级配置更改是否是可允许的。因为抽象配置可以反映由SDN控制器20的用户输入到接口26的网络设备16的预期配置。
在一些示例中,SDN控制器20确定对网络设备16A的次级配置更改是可允许的。在这样的示例中,意图和策略引擎24被配置为更新与网络设备16A相关联的抽象配置。在一些示例中,在SDN控制器20确定次级配置更改是可允许的之后,意图和策略引擎24被配置为向消息队列32A发布确认消息,该确认消息确认次级配置更改被批准并被记录。
在一些示例中,SDN控制器20确定对网络设备16A的次级配置更改是不可允许的。响应于确定次级配置更改是不可允许的,SDN控制器20被配置为经由消息总线30向网络设备16A发送包括回滚次级配置更改的指令在内的通知。换句话说,SDN控制器20被配置为向网络设备16A发送通知以将网络设备16A的配置恢复到在实施次级配置更改之前存在的状态。例如,恢复配置的通知可以包括版本号以及更新网络设备16A的配置以反映与版本号相关联的配置的指令。在一些示例中,网络设备16A被配置为经由连接28来请求指示与版本号相关联的配置的数据,并且SDN控制器20可以经由连接28来提供指示与版本号相关联的配置的数据。在其他示例中,网络设备16A被配置为存储指示与版本号相关联的配置的数据。
虽然网络设备16、SDN控制器20和消息总线30在本文中被描述为部署在服务提供方网络2内,但是本公开的一种或多种技术可以在专用网络、一个或多个数据中心、校园区域网络(CAN)、企业网络或者在其中SDN控制器或其他网络控制器配置了一个或多个网络设备的其他类型的网络的任何组合内使用。
图2是图示出根据本发明的一种或多种技术的SDN控制器20的示例实例的框图。SDN控制器20是针对网络的逻辑上集中但在一些情况下物理上分布的控制器,其可以被配置为管理一个或多个网络设备的配置,诸如图1的网络设备16。在该示例中,SDN控制器20包括意图和策略引擎24,其被配置为确定并驱动对网络设备16的配置更改。SDN控制器20可以是图1的SDN控制器20的示例。意图和策略引擎24可以是图1的意图和策略引擎24的示例。存储设备22可以是图1的存储设备22的示例。
SDN控制器20可以包括处理电路75。处理电路75可以包括一个或多个处理器,其被配置为实现用于在SDN控制器20内执行的功能性和/或处理指令。例如,处理电路75可以能够处理由存储设备22存储的指令。处理电路75可以包括例如微处理器、DSP、ASIC、FPGA或等效的分立或集成逻辑电路、或任何前述设备或电路的组合。
为了易于说明的目的,未示出SDN控制器20的一些组件。这些组件可以包括用以执行SDN控制器20的模块的硬件和指令。SDN控制器20呈现北向接口72,其可以由控制器的分层布置中的其他控制器或者由协调器、管理员或其他实体调用,以修改配置状态78(“配置状态78”)或提取SDN控制器20的描述了服务数据模型74的操作状态96。北向接口72可以表示图1的接口26的示例实例。北向接口72可以被用于与诸如OpenStack之类的编排系统集成;北向接口72还可以或替代地由其他应用或运营方的操作支持系统(OSS)/业务支持系统(BSS)使用。在某些情况下,北向接口72可以呈现RESTful应用编程接口(API)。
服务数据库76存储表示正式服务数据模型74内的实例化服务的对象。高级服务数据模型74可以包括例如在由提供方/企业所指导的网络上的需求日历和约束。翻译引擎86将服务数据库76中的服务对象从高级服务数据模型74变换为技术数据模型90中的对应的较低级对象。翻译引擎86可以包括模式变换器。在这个意义上,翻译引擎86操作为服务数据模型74到技术数据模型90的编译器。高级服务数据模型74描述先前请求和实例化或正被处理的服务以用于在SDN控制器20的控制下对网络分段进行最终实例化,而低级技术数据模型90描述了如何在网络内实现或将要实现这些服务,如配置数据库92中所表示的。配置数据库92可以包括例如描述在服务数据库76中至少部分地实现服务的TE-LSP的对象。配置数据库92还包括由SDN控制器20管理的网络的网络资源的标识符,诸如服务提供方网络2的网络资源5。技术数据模型90包括描述了网络设备的相应配置的配置状态94以及描述了网络设备的相应操作特性的操作状态96,诸如负载、可用带宽等等。配置数据库92和服务数据库76各自可以表示例如SQL、POSTGRESQL或NoSQL数据库诸如Cassandra,或者其他类型的结构化或非结构化的数据库。
换句话说,使用直接映射到提供给最终用户的服务(例如,虚拟网络、连接性策略或安全性策略)的对象,高级服务数据模型74在SDN控制器20的控制下描述在非常高抽象级别处的网络的期望状态。另一方面,使用映射到特定网络协议构造(诸如BGP路由目标或VxLAN网络标识符)的对象,低级技术数据模型90描述在非常低抽象级别处的网络的期望状态。因此,南向接口100执行一个或多个南向协议102A-102K(统称为“南向协议102”),利用该协议,SDN控制器20可以从网络分段中获得配置状态94和操作状态96并且在SDN控制器20的控制下将配置状态94和操作状态96注入网络分段中,其中配置状态94和操作状态96存储可被南向协议102理解并映射到南向协议102的构造的对象。以这种方式,意图和策略引擎24可以在SDN控制器20的控制下使得网络的状态与由意图和策略引擎24经由北向接口72接收并且由服务数据模型74表示的网络的期望状态匹配。南向协议102可以包括用于路径供应以及用于拓扑发现的协议。例如,南向协议102可以包括路径计算单元(PCE)通信协议(PCEP)、具有流量工程扩展的开放最短路径优先(OSPF-TE)、具有流量工程扩展的中间系统到中间系统(ISIS-TE)、BGP链路状态(BGP-LS)、NETCONF/Yang、路由系统接口(I2RS)协议、网络设备的CLI和SNMP。南向协议102还可以包括用于与消息总线通信的协议。
根据本公开中描述的技术,北向接口72可以接收意图并将意图存储到服务数据库76,服务数据库76存储对应于网络服务的一个或多个意图。可以使用任何语言或模式来表达意图,诸如XML或JSON。翻译引擎86可以使用意图来为由SDN控制器20所管理的一个或多个网络设备生成新抽象配置,并将新抽象配置存储到配置数据库92。翻译引擎86可以使用存储到服务数据库76的多个意图来生成新抽象配置,或者另外或替代地,可以使用现有的抽象配置来帮助从新意图生成新抽象配置。
南向接口100可以使用一个或多个南向协议102来将针对网络设备16A(例如)的新抽象配置的指示添加到消息总线32A。网络设备16A从消息总线32A接收指示,并从配置数据库92获得针对网络设备16A的新抽象配置。
图3是图示出根据本发明的一种或多种技术的示例网络设备16A的框图。网络设备16A包括处理电路110、存储设备112、接口114、管理守护进程118、用户接口124和电源126。存储设备112可以包括配置数据116。管理守护进程118可以包括配置评估引擎120和翻译引擎122。每个网络设备16包括执行类似功能性的类似组件,在下文中关于网络设备16A对所述组件和功能性进行描述。
网络设备16A包括一个或多个处理器(例如,处理电路110),其被耦合到包括表示一个或多个软件进程的指令的存储器,软件进程包括用户接口124和管理守护进程118。管理守护进程118或用户接口124可以经由诸如NETCONF会话之类的网络管理协议会话来接收配置数据。网络设备16A存储用于在配置数据(CONFIG.DATA)116中转发网络分组的运行配置。管理守护进程118包括配置评估引擎120和翻译引擎122。配置数据116可以被存储到存储设备112并且可以在一个或多个表、数据库、链表、基数树或其他合适的数据结构的形式。
处理电路110可以包括执行软件指令的一个或多个处理器,所述软件指令诸如被用来定义软件或计算机程序的、存储到计算机可读储存介质的那些软件指令,所述计算机可读储存介质诸如存储设备(例如,磁盘驱动器或光驱动器)或存储器(诸如闪存、随机存取存储器或RAM)或任何其他类型的易失性或非易失性存储器,其存储使可编程处理器执行本文所述技术的指令。替代地或另外地,处理电路110可以包括用于执行本文描述的技术的诸如一个或多个集成电路、一个或多个ASIC、一个或多个专用特殊处理器(ASSP)、一个或多个FPGA之类的专用硬件,或者专用硬件的一个或多个前述示例的任何组合。
存储设备112可以被配置为在操作期间在网络设备16A内存储信息。存储设备112可以包括计算机可读储存介质或计算机可读存储设备。在一些示例中,存储设备112包括短期存储器或长期存储器中的一个或多个。存储设备112可以包括例如硬盘、RAM、DRAM、SRAM、磁盘、光盘、闪存或EPROM或EEPROM的形式。在一些示例中,存储设备112被用来存储程序指令以供处理电路110执行。存储设备112可以由在网络设备16A上运行的软件或应用(例如,管理守护进程118)使用,以在程序执行期间存储信息。
网络设备16A可以使用接口114经由一个或多个网络例如图1的接入网络6来与外部系统通信。接口114可以是网络接口(诸如以太网接口、光学收发器、射频(RF)收发器、Wi-Fi或蓝牙无线电等)、电话接口或可以发送和接收信息的任何其他类型的设备。在一些示例中,网络设备16A使用接口114来与外部系统例如来自图1的SDN控制器20和消息总线30进行通信。
在图3的示例中,管理守护进程118可以包括在网络设备16A上操作的计算机程序。在一些示例中,管理守护进程118是后台进程,其在不受用户控制的情况下在网络设备16A的“幕后”操作。在某些方面,管理守护进程118用于管理网络设备16A的配置和重新配置。例如,管理守护进程118可以执行“语义”检查,其验证:网络设备16A的配置或建议配置是连贯且可理解的。如果管理守护进程118识别出网络设备16A的配置或建议配置有问题,则管理守护进程118可以向用户接口124输出指示该问题的通知。可以对由SDN控制器20驱动的“初级配置修改”和由运营方/管理员使用用户接口124或其他管理接口(未示出)驱动的“次级配置更改”两者执行语义检查以配置网络设备16A。
在图3的示例中,管理守护进程118包括配置评估引擎120。配置评估引擎120是被配置为经由接口114来与SDN控制器20进行通信以从SDN控制器20获得抽象配置的模块。另外,配置评估引擎120被配置为确定从SDN控制器20获得的抽象配置与网络设备16A的当前配置之间的差异。配置评估引擎120可以被配置为确定网络设备16A的任何两个或更多个配置之间的差异。任何两个或更多个配置可以包括网络设备16A或另一网络设备的当前、过去或新配置的任何组合,以及网络设备16A或另一网络设备的潜在配置的任何表示。
为了确定两个或更多个配置之间的差异,配置评估引擎120可以使用翻译引擎122来解析指示两个或更多个配置的数据,使得数据可以由配置评估引擎120来分析。例如,翻译引擎122可以解析指示两个或更多个配置的数据,并确定由数据所指示的两个或更多个配置内的组织层级。翻译引擎122可以采用语言解析技术。换句话说,翻译引擎122可以采取指示两个或更多个配置的数据并构建数据结构。在一些示例中,翻译引擎122可以由用户编程。在其他示例中,可以使用编译器生成器来创建翻译引擎122。数据结构可以包括解析树、抽象语法树、流程图或另一视觉表示中的至少一个。如此,配置评估引擎120被配置为比较与两个或更多个配置中的每一个相对应的数据结构,以确定两个或更多个配置之间的差异。
在一些示例中,网络设备16A被配置为经由接口114接收配置更改的指示。在一些示例中,在接口114处经由消息总线30从SDN控制器20接收配置更改的指示。配置更改可以被反映在存储于SDN控制器20的存储设备中的抽象配置中。管理守护进程118可以根据配置更改来修改网络设备16A的配置。在一些情况下,配置更改的指示包括使得管理守护进程118能够应用配置更改的一组指令,其中配置更改包括预期配置和网络设备16A的配置之间的差异。如此,该一组指令可以足够小以通过消息总线30从SDN控制器20中继到网络设备16A。在一些示例中,该一组指令包括按照YAML、JSON和OpenConfig中的至少一项来编码的计算机可读文件。
在其他示例中,用于应用配置更改的信息可能太大而不能被包含在由消息总线30中继的通知内。在这样的示例中,配置更改的指示包括应用配置更改的通知。响应于接收到配置更改的指示,网络设备16A被配置为经由接口114和连接28向SDN控制器20发送获取抽象配置的请求。网络设备16A可以经由连接28从SDN控制器20接收抽象配置。另外,配置评估引擎120被配置为将抽象配置与指示网络设备16A的当前配置的数据(例如,配置数据116)进行比较,以确定抽象配置和配置数据116之间的差异。响应于确定差异,管理守护进程118可以基于该差异来更新网络设备16A的配置。
在一些情况下,配置评估引擎120表示使用Python、Ruby、GO或其他编程语言开发的小客户端程序;脚本;或程序和脚本的组合。
电源126被配置为将操作功率递送到网络设备16A的组件。电源126可以包括电池和功率生成电路以产生操作功率。在一些示例中,电池可以是可再充电的以允许延长的操作。可以通过将电源126电耦合到连接到交流(AC)插座的支架或插头来完成再充电。另外,可以通过外部充电器和网络设备16A内的感应充电线圈之间的近端感应交互来完成再充电。在其他示例中,可以使用传统电池(例如,镍镉或锂离子电池)。另外,网络设备16A可以直接耦合到交流电插座以进行操作。
在一些示例中,网络设备16A被配置为经由用户接口124接收指示对网络设备16A的次级配置更改的数据。随后,管理守护进程118可以基于指示次级配置更改的数据来修改网络设备16A的配置。网络设备16A被配置为经由接口114发送根据次级配置更改来修改配置的指示。另外,网络设备16A被配置为经由接口114发送指示次级配置更改的数据。
在一些情况下,响应于发送根据次级配置更改来修改网络设备16A的配置的指示,网络设备16A经由接口114接收通知,其中该通知指示次级配置更改是不可允许的,并且其中通知包括“回滚”次级配置更改的指令。替代地,在一些情况下,在发送根据次级配置更改来修改网络设备16A的配置的指示之后,网络设备16A经由接口114接收允许次级配置更改的通知。
在通知包括回滚次级配置更改的指令的情况下,通知还可以包括第一版本号。回滚次级配置更改的指令可以包括改变网络设备16A的配置以反映与第一版本号相关联的配置的指令。例如,配置评估引擎120被配置为确定与网络设备16A的当前配置相关联的第二版本号,并将第一版本号与第二版本号进行比较。响应于确定第一版本号与第二版本号不同,网络设备16A被配置为经由接口114发送对指示与第一版本号相关联的配置的数据的请求。网络设备16A可以经由接口114接收指示与第一版本号相关联的配置的数据,并且管理守护进程118可以根据指示与第一版本号相关联的配置的数据来修改网络设备16A的配置。
图4是图示出根据本发明的一种或多种技术的示例操作的流程图。关于图1-图3的SDN控制器20、消息总线30和网络设备16及其组件来描述示例操作。
SDN控制器20被配置为接收指示预期配置的数据(402)。在一些示例中,预期配置由SDN控制器20经由接口26接收。例如,接口26可以包括或连接到用户接口,这使得用户能够提供表示预期配置的输入。预期配置指示网络设备16中的至少一个的配置的期望状态,并且预期配置可以至少部分地由SDN控制器20来实现。在一些示例中,预期配置为每个网络设备指定相同的配置。在其他示例中,预期配置为至少一个网络设备16指定唯一配置。
在SDN控制器20接收到预期配置之后,SDN控制器20将预期配置与抽象配置进行比较以确定差异(404)。在一些情况下,抽象配置可以是至少一个网络设备16的当前配置的表示。可以将抽象配置以及表示其余网络设备16的当前配置的其他抽象配置存储在SDN控制器20的存储设备22中。以这种方式,SDN控制器20被配置为确定每个网络设备16的预期配置和当前配置之间的差异。SDN控制器20更新抽象配置(405)以虑及预期配置与当前配置之间的差异。因此,抽象配置反映了预期配置。另外,在确定网络设备(例如,网络设备16A)的预期配置和当前配置之间的差异之后,SDN控制器20输出配置更改的指示(406),其中配置更改的指示预期到达网络设备16A。
消息总线30从SDN控制器20接收配置更改的指示(408),并将该指示放置在多个消息队列(例如,消息队列32)的消息队列(410)中。消息总线30可以被配置为将配置更改的指示放置在对应于网络设备16A的消息队列32A中。出于同样的原因,消息总线30可以被配置为将预期用于特定网络设备的指示、通知和消息放置到对应的消息队列中。消息队列32B对应于网络设备16B,消息队列32C对应于网络设备16C,以此类推。
网络设备16A从消息队列32A检索配置更改的指示(412)。在一些示例中,消息队列32A充当“堆栈”,其中SDN控制器20被配置为在堆栈的“顶部”上发布消息、指示和通知(统称为“数据段”)的序列。网络设备16A被配置为以与由SDN控制器20将数据段序列放置在堆栈顶部的相同顺序从堆栈的“底部”检索数据段序列。以这种方式,消息队列32A在从SDN控制器20到网络设备16A的单个方向上中继数据段序列。出于同样的原因,消息队列32B-32N在从SDN控制器20到相应的网络设备16B-16N的单个方向上中继数据段。在一些示例中,消息总线30包括开源消息代理软件程序,诸如RabbitMQTM。消息总线30被配置为根据诸如AMQP、STOMP、MQTT和HTTP之类的多个不同消息协议进行通信。
在一些示例中,网络设备16A的管理守护进程118基于配置更改的指示来修改网络设备16A的配置(414)。在一些这样的示例中,配置更改表示网络设备16A的当前配置与对应于网络设备16A的预期配置之间的差异,并且差异可以由足够小以由消息总线30的消息队列32A来中继的数据段来表示。通过修改网络设备16A的配置,管理守护进程118可以实现该差异,使得在网络设备16A中实现预期配置。
在其他示例中,在从消息队列32A检索指示时,网络设备16A向SDN控制器20发送对抽象配置的请求(416),该抽象配置表示网络设备16A的预期配置。网络设备16A可以通过与消息总线30分开的连接28来发送请求。在这些示例中,网络设备16A的预期配置和当前配置之间的差异可以不是由足够小以由消息总线30来中继的数据段来表示。SDN控制器20可以接收对抽象配置的请求(418)并通过连接28将抽象配置(420)发送到网络设备16A。如此,SDN控制器20不向网络设备16A“推送”预期配置。而是,网络设备16A响应于经由消息总线30接收到指示而检索预期配置。
网络设备16A接收抽象配置(422),并且网络设备16A的管理守护进程118将网络设备16A的当前配置与抽象配置进行比较以确定差异(424)。在一些情况下,由网络设备16A确定的该差异可以是由SDN控制器20确定的相同差异(404)。随后,管理守护进程118可以基于差异来修改网络设备16A的配置(426)。
尽管关于网络设备16A描述了图4的技术,但是该技术可以应用于确定、管理或更新网络设备16的任何组合的配置。
图5是图示出根据本发明的一种或多种技术的另一示例操作的流程图。关于图1-图3的SDN控制器20、消息总线30和网络设备16及其组件来描述示例操作。
网络设备16A的用户接口124接收指示配置更改的数据(502)。在一些示例中,指示配置更改的数据可以由网络设备16A的用户输入到用户接口124中。以这种方式,用户可以经由用户接口124向网络设备16A提供预期配置,并且网络设备16A可以被配置为基于网络设备16A的当前配置和预期配置来确定配置更改。例如,配置评估引擎120可以将在用户接口124处接收的预期配置与网络设备16A的当前配置进行比较,以确定差异。网络设备16A的管理守护进程118基于配置更改来修改网络设备16A的配置(504)。随后,网络设备16A向消息总线30发送配置修改的指示(506)。
消息总线30包括消息队列32,其使得能够在SDN控制器20和网络设备16之间交换数据段。例如,消息队列34被配置为将数据段从每个网络设备16中继到SDN控制器20。网络设备16A可以将一系列数据段放置在消息队列34上,其中数据段序列的每个数据段将相应的数据段标识为源自网络设备16A。同样,网络设备16B-16N可以将数据段放置在消息队列34上,每个数据段标识相应的始发网络设备。如此,消息总线30接收配置修改的指示(508)并将配置修改的指示放置在消息队列34中(510)。
SDN控制器20可以从消息队列34检索配置修改的指示(512)。另外,网络设备16A(例如,经由连接28)将指示配置更改的数据发送(514)到SDN控制器20。SDN控制器20经由连接28从网络设备16A接收指示配置更改的数据(516)。SDN控制器20可以存储指示配置更改的数据,该数据与响应于接收到的意图而生成的抽象配置数据分开。SDN控制器20的意图和策略引擎24可以将指示配置更改的数据与抽象配置进行比较,该抽象配置指示由SDN控制器20驱动的网络设备16A的预期配置。例如,在SDN控制器20向网络设备16A发送指示使得管理守护进程118实现预期配置之后,可以由SDN控制器20创建抽象配置来表示输入到接口26的网络设备16A的预期配置。
意图和策略引擎24将指示配置更改的数据与和网络设备16A相关联的抽象配置进行比较(518)。以这种方式,意图和策略引擎24被配置为确定由网络设备16A进行的配置修改(504)。随后,意图和策略引擎24可以评估配置修改。在一些示例中,SDN控制器20确定配置更改是可允许的(520)。在这样的示例中,SDN控制器20被配置为更新与网络设备16A相关联的抽象配置以反映配置更改(522)。通过确定配置更改是可允许的,SDN控制器20可以确定配置更改与在接口26处由SDN控制器20接收的网络设备16A的预期配置兼容。在其他示例中,SDN控制器20确定配置更改是不可允许的(524)并且SDN控制器20发送通知以回滚配置更改(526)。SDN控制器20可以存储一个或多个策略,其确定响应于网络设备16上的配置更改而要采取的动作。例如,动作可以包括无操作、提高错误/警告和回滚。消息总线30接收通知以回滚配置更改(528)并将通知放置在消息队列32A中(530)。网络设备16A从消息队列32A检索通知(532)并修改配置以回滚配置更改(534)。
在一些情况下,回滚配置更改的通知包括第一版本号,其中回滚配置更改的指令包括改变网络设备16A的配置以反映与第一版本号相关联的配置的指令。网络设备16A被配置为确定与网络设备16A的配置相关联的第二版本号,并将第一版本号与第二版本号进行比较。响应于确定第一版本号与第二版本号不同,网络设备16A被配置为经由连接28向SDN控制器20发送对指示与第一版本号相关联的配置的数据的请求并且接收指示与第一版本号相关联的配置的数据。随后,管理守护进程118可以根据指示与第一版本号相关联的配置的数据来修改网络设备16A的配置。
尽管关于网络设备16A描述了图5的技术,但是该技术可以应用于确定、管理或更新网络设备16的任何组合的配置。
本文描述的技术可以用硬件、软件、固件或其任何组合来实现。被描述为模块、单元或组件的各种特征可以在集成逻辑设备中一起而被实现,或者可以作为离散的但可互操作的逻辑设备或其他硬件设备而被分开实现。在一些情况下,可以将电子电路的各种特征实现为一个或多个集成电路设备,诸如集成电路芯片或芯片组。
如果以硬件来实现,则本发明可以涉及一种装置,如处理器或集成电路设备,诸如集成电路芯片或芯片组。另外或替代地,如果以软件或固件来实现,则技术可以至少部分地由包括指令的计算机可读数据储存介质来实现,所述指令在被执行时使处理器执行上述方法中的一个或多个。例如,计算机可读数据储存介质可以存储这样的指令以供处理器执行。
计算机可读介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。计算机可读介质可以包括计算机数据储存介质,诸如RAM、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、EEPROM、闪存、磁或光数据储存介质等。在一些示例中,制品可以包括一个或多个计算机可读储存介质。
在一些示例中,计算机可读储存介质可以包括非暂时性介质。术语“非暂时性”可以指示储存介质未被体现在载波或传播信号中。在某些示例中,非暂时性储存介质可以(例如,在RAM或高速缓存中)存储可随时间变化的数据。
代码或指令可以是由包括一个或多个处理器的处理电路执行的软件和/或固件,处理电路诸如是一个或多个DSP、通用微处理器、ASIC、FPGA或其他等效的集成或离散逻辑电路。因此,本文所使用的术语“处理器”可以是指任何前述结构或适合于实现本文所述技术的任何其他结构。另外,在一些方面中,可以在软件模块或硬件模块内提供本公开中描述的功能性。
Claims (20)
1.一种控制器,包括:
处理电路,被耦合到存储器,其中所述处理电路被配置为:
生成用于实现针对网络设备的配置更改的数据;
将用于实现针对所述网络设备的所述配置更改的所述数据存储到配置数据库;以及
将针对所述网络设备的所述配置更改的指示添加到由与所述控制器分开的一个或多个计算设备执行的消息总线的消息队列,以使得所述网络设备从所述配置数据库获取用于实现针对所述网络设备的所述配置更改的所述数据。
2.根据权利要求1所述的控制器,其中用于实现所述配置更改的所述数据包括用于由所述网络设备执行的一组指令。
3.根据权利要求1所述的控制器,其中用于实现所述配置更改的所述数据包括按照以下中的至少一项被编码的配置数据:
YAML Ain't标记语言(YAML),
JavaScript对象表示法(JSON),以及
OpenConfig。
4.根据权利要求1所述的控制器,
其中用于实现针对所述网络设备的所述配置更改的所述数据包括针对所述网络设备的新抽象配置,以及
其中针对所述网络设备的所述新抽象配置适用于由多个供应商制造的网络设备。
5.根据权利要求1-4中任一项所述的控制器,其中所述处理电路被配置为:
接收针对网络的意图;
基于针对所述网络的所述意图来生成针对所述网络设备的配置;
将针对所述网络设备的配置与被存储到用于实现针对所述网络设备的所述配置更改的所述配置数据的、针对所述网络设备的现有配置进行比较,以确定针对所述网络设备的配置和针对所述网络设备的所述现有配置之间的差异;以及
响应于确定所述差异,基于所述差异来生成用于实现针对所述网络设备的所述配置更改的所述数据。
6.根据权利要求1-4中任一项所述的控制器,其中针对所述网络设备的所述配置更改是初级配置修改,并且其中所述处理电路被配置为:
从所述消息总线的另一消息队列接收次级配置更改已经被应用于所述网络设备的指示,其中所述次级配置更改不是由所述控制器引导的;
接收指示所述次级配置更改的数据;以及
将指示所述次级配置更改的所述数据与被存储到所述配置数据的、针对所述网络设备的现有配置进行比较,以识别所述次级配置更改与针对所述网络设备的所述现有配置之间的差异;
响应于将策略应用到所述差异以确定所述次级配置更改是否是可允许的,执行动作。
7.根据权利要求6所述的控制器,其中所述动作包括:经由所述消息总线的所述消息队列向所述网络设备发送包括回滚所述次级配置更改的指令的通知。
8.根据权利要求7所述的控制器,
其中所述通知还包括版本号,
其中回滚所述次级配置更改的所述指令包括用于将所述网络设备的所述配置更新为与所述版本号相关联的先前配置的指令,并且其中所述处理电路被配置为:
从所述网络设备接收针对指示与所述版本号相关联的所述先前配置的数据的请求;以及
向所述网络设备发送指示与所述版本号相关联的所述先前配置的所述数据。
9.根据权利要求6所述的控制器,其中所述动作包括经由所述消息总线的所述消息队列向所述网络设备发送包括指令的通知,所述指令用于更新所述网络设备的抽象配置,以反映所述次级配置更改。
10.根据权利要求1-4中任一项所述的控制器,其中用于实现针对所述网络设备的所述配置更改的所述数据包括与所述配置更改相关联的版本号。
11.根据权利要求1-4中任一项所述的控制器,其中所述处理电路被配置为:
从所述网络设备、从所述消息总线的另一消息队列接收所述配置更改被应用在所述网络设备中的指示。
12.一种网络设备,包括:
处理电路,被耦合到存储器,其中所述处理电路被配置为:
从由一个或多个计算设备执行的消息总线的消息队列接收针对所述网络设备的配置更改的指示,所述一个或多个计算设备与管理所述网络设备的控制器分开;
响应于所述指示,从配置数据库获取用于实现针对所述网络设备的所述配置更改的数据;以及
基于所述数据来实现所述配置更改,以修改所述网络设备的配置。
13.根据权利要求12所述的网络设备,
其中用于实现所述配置更改的所述数据包括一组指令,以及
其中为了实现所述配置更改,所述处理电路被配置为执行所述指令。
14.根据权利要求12所述的网络设备,其中所述配置更改的所述指示包括用于应用所述配置更改的通知,并且其中响应于接收到所述配置更改的所述指示,所述网络设备还被配置为:
向所述控制器发送获取所述抽象配置的请求;
从所述控制器接收所述抽象配置;
将所述抽象配置与指示所述网络设备的当前配置的数据进行比较,以确定所述抽象配置与指示所述当前配置的所述数据之间的差异;以及
响应于确定所述差异,使用管理守护进程基于所述差异来更新所述网络设备的配置。
15.根据权利要求12-14中任一项所述的网络设备,
其中用于实现针对所述网络设备的所述配置更改的所述数据包括针对所述网络设备的新抽象配置,
其中为了实现所述配置更改,所述一个或多个处理器被配置为:
确定针对所述网络设备的所述新抽象配置与针对所述网络设备的现有抽象配置之间的差异;
基于所确定的所述差异来生成用于修改所述网络设备的操作配置的指令;以及
执行所述指令。
16.根据权利要求12-14中任一项所述的网络设备,其中所述处理电路被配置为:
经由与除所述控制器之外的计算设备的网络管理协议会话,接收指示对所述网络设备的次级配置更改的数据;
基于指示所述次级配置更改的所述数据来修改所述网络设备的所述配置;
经由所述消息总线的另一消息队列向所述控制器发送所述次级配置更改已经被应用于所述网络设备的指示;以及
向所述控制器发送指示所述次级配置更改的所述数据。
17.根据权利要求16所述的网络设备,其中所述处理电路被配置为:
经由所述消息总线的所述消息队列接收包括用于回滚所述次级配置更改的指令的通知;以及
响应于所述通知,回滚所述次级配置更改。
18.根据权利要求17所述的网络设备,
其中所述通知还包括第一版本号,
其中用于回滚所述次级配置更改的所述指令包括用于将所述网络设备的所述配置更新为与所述第一版本号相关联的先前配置的指令,并且其中所述处理电路被配置为:
确定与所述网络设备的所述配置相关联的第二版本号;
使用配置评估引擎将所述第一版本号与所述第二版本号进行比较;
响应于确定所述第一版本号与所述第二版本号不同,向所述控制器发送针对指示与所述第一版本号相关联的配置的数据的请求;
接收指示与所述第一版本号相关联的所述配置的所述数据;以及
根据指示与所述第一版本号相关联的所述配置的所述数据来修改所述网络设备的所述配置。
19.根据权利要求12-14中任一项所述的网络设备,其中针对所述网络设备的配置更改的所述指示包括与所述配置更改相关联的版本号。
20.一种计算系统,包括:
控制器,包括被耦合到第一存储器的第一处理电路,其中所述第一处理电路被配置为:
生成用于实现针对网络设备的配置更改的数据;
将用于实现针对所述网络设备的所述配置更改的所述数据存储到配置数据库;以及
将针对所述网络设备的所述配置更改的指示添加到由与所述控制器分开的一个或多个计算设备执行的消息总线的消息队列;以及
所述网络设备,包括被耦合到第二存储器的第二处理电路,其中所述第二处理电路被配置为:
从所述消息总线的所述消息队列接收针对所述网络设备的所述配置更改的所述指示;
响应于所述指示,从所述配置数据库获取用于实现针对所述网络设备的所述配置更改的数据;以及
基于所述数据来实现所述配置更改,以修改所述网络设备的配置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/221,698 US10972342B2 (en) | 2018-12-17 | 2018-12-17 | Network device configuration using a message bus |
US16/221,698 | 2018-12-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111327452A true CN111327452A (zh) | 2020-06-23 |
CN111327452B CN111327452B (zh) | 2022-11-01 |
Family
ID=67180496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910579814.8A Active CN111327452B (zh) | 2018-12-17 | 2019-06-28 | 使用消息总线的网络设备配置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10972342B2 (zh) |
EP (1) | EP3672157B1 (zh) |
CN (1) | CN111327452B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970158A (zh) * | 2020-08-31 | 2020-11-20 | 网易(杭州)网络有限公司 | 边缘接入的处理系统、方法、装置及设备 |
CN115037624A (zh) * | 2021-03-06 | 2022-09-09 | 瞻博网络公司 | 全局网络状态管理 |
CN115134193A (zh) * | 2021-03-11 | 2022-09-30 | 瞻博网络公司 | 在现有数据中心结构中部署网络管理控制器 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11892996B1 (en) | 2019-07-16 | 2024-02-06 | Splunk Inc. | Identifying an indexing node to process data using a resource catalog |
US10917339B2 (en) | 2018-12-21 | 2021-02-09 | Juniper Networks, Inc. | System and method for user customization and automation of operations on a software-defined network |
WO2020224753A1 (de) * | 2019-05-06 | 2020-11-12 | Siemens Aktiengesellschaft | Verfahren zum konfigurieren eines kommunikationsnetzwerks für das zyklische übertragen von nachrichten |
US11108636B2 (en) * | 2019-10-23 | 2021-08-31 | Cisco Technology, Inc. | Integrity verification for managing network configurations |
US11582290B2 (en) * | 2020-01-23 | 2023-02-14 | Hewlett Packard Enterprise Development Lp | Switch event ordering |
US11829415B1 (en) | 2020-01-31 | 2023-11-28 | Splunk Inc. | Mapping buckets and search peers to a bucket map identifier for searching |
CN111708608B (zh) * | 2020-06-19 | 2023-04-25 | 浪潮云信息技术股份公司 | 一种基于ansible的容器大集群快速部署方法及系统 |
US11449371B1 (en) | 2020-07-31 | 2022-09-20 | Splunk Inc. | Indexing data at a data intake and query system based on a node capacity threshold |
US11615082B1 (en) | 2020-07-31 | 2023-03-28 | Splunk Inc. | Using a data store and message queue to ingest data for a data intake and query system |
US11165649B1 (en) * | 2020-09-21 | 2021-11-02 | Cradlepoint, Inc. | Filter-based composition of networking device configuration |
US11609913B1 (en) | 2020-10-16 | 2023-03-21 | Splunk Inc. | Reassigning data groups from backup to searching for a processing node |
US11283691B1 (en) * | 2020-10-21 | 2022-03-22 | Juniper Networks, Inc. | Model driven intent policy conflict detection and resolution through graph analysis |
US11784883B2 (en) * | 2021-03-30 | 2023-10-10 | At&T Intellectual Property I, L.P. | Automation agent for network equipment configuration |
US20220393942A1 (en) * | 2021-04-26 | 2022-12-08 | NetBrain Technologies, Inc. | Network intent management and automation |
US11777800B2 (en) * | 2021-06-24 | 2023-10-03 | Juniper Networks, Inc. | Identifying out-of-band configuration changes to validate intent files |
US11809395B1 (en) | 2021-07-15 | 2023-11-07 | Splunk Inc. | Load balancing, failover, and reliable delivery of data in a data intake and query system |
CN113656147B (zh) * | 2021-08-20 | 2023-03-31 | 北京百度网讯科技有限公司 | 一种集群部署方法、装置、设备及存储介质 |
US11803496B2 (en) * | 2021-10-29 | 2023-10-31 | Lenovo (Singapore) Pte. Ltd. | Systems, apparatus, and methods for electing a new broker for a channel on an MQTT bus |
JP2023109114A (ja) * | 2022-01-26 | 2023-08-07 | トヨタ自動車株式会社 | 通信制御装置、車両、通信制御方法及び通信制御プログラム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030149756A1 (en) * | 2002-02-06 | 2003-08-07 | David Grieve | Configuration management method and system |
WO2008119267A1 (fr) * | 2007-04-03 | 2008-10-09 | Huawei Technologies Co., Ltd. | Système de distribution de média, appareil et procédé de lecture de média en continu |
WO2011075885A1 (zh) * | 2009-12-22 | 2011-06-30 | 中兴通讯股份有限公司 | 一种光网络单元集成装置 |
EP2879330A1 (en) * | 2013-11-27 | 2015-06-03 | Coriant Oy | A method, network element and controller for managing the network element in a SDN |
WO2016106867A1 (zh) * | 2014-12-29 | 2016-07-07 | 中国科学院信息工程研究所 | 一种在虚拟化环境中保护根ca证书的方法与系统 |
WO2016110263A1 (zh) * | 2015-01-08 | 2016-07-14 | 北京京东尚科信息技术有限公司 | 高并发数据存储方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838907A (en) | 1996-02-20 | 1998-11-17 | Compaq Computer Corporation | Configuration manager for network devices and an associated method for providing configuration information thereto |
US6286038B1 (en) | 1998-08-03 | 2001-09-04 | Nortel Networks Limited | Method and apparatus for remotely configuring a network device |
US6684241B1 (en) | 1999-09-29 | 2004-01-27 | Nortel Networks Limited | Apparatus and method of configuring a network device |
US20070268516A1 (en) | 2006-05-19 | 2007-11-22 | Jamsheed Bugwadia | Automated policy-based network device configuration and network deployment |
US20080086545A1 (en) * | 2006-08-16 | 2008-04-10 | Motorola, Inc. | Network configuration using configuration parameter inheritance |
US10594731B2 (en) * | 2016-03-24 | 2020-03-17 | Snowflake Inc. | Systems, methods, and devices for securely managing network connections |
US10666639B2 (en) | 2016-05-20 | 2020-05-26 | Avaya, Inc. | Customer-centric workflow for initial on-boarding of an OpenFlow enabled switch |
US10868742B2 (en) | 2017-03-29 | 2020-12-15 | Juniper Networks, Inc. | Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control |
-
2018
- 2018-12-17 US US16/221,698 patent/US10972342B2/en active Active
-
2019
- 2019-06-18 EP EP19180809.6A patent/EP3672157B1/en active Active
- 2019-06-28 CN CN201910579814.8A patent/CN111327452B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030149756A1 (en) * | 2002-02-06 | 2003-08-07 | David Grieve | Configuration management method and system |
WO2008119267A1 (fr) * | 2007-04-03 | 2008-10-09 | Huawei Technologies Co., Ltd. | Système de distribution de média, appareil et procédé de lecture de média en continu |
WO2011075885A1 (zh) * | 2009-12-22 | 2011-06-30 | 中兴通讯股份有限公司 | 一种光网络单元集成装置 |
EP2879330A1 (en) * | 2013-11-27 | 2015-06-03 | Coriant Oy | A method, network element and controller for managing the network element in a SDN |
WO2016106867A1 (zh) * | 2014-12-29 | 2016-07-07 | 中国科学院信息工程研究所 | 一种在虚拟化环境中保护根ca证书的方法与系统 |
WO2016110263A1 (zh) * | 2015-01-08 | 2016-07-14 | 北京京东尚科信息技术有限公司 | 高并发数据存储方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970158A (zh) * | 2020-08-31 | 2020-11-20 | 网易(杭州)网络有限公司 | 边缘接入的处理系统、方法、装置及设备 |
CN111970158B (zh) * | 2020-08-31 | 2023-05-30 | 网易(杭州)网络有限公司 | 边缘接入的处理系统、方法、装置及设备 |
CN115037624A (zh) * | 2021-03-06 | 2022-09-09 | 瞻博网络公司 | 全局网络状态管理 |
CN115134193A (zh) * | 2021-03-11 | 2022-09-30 | 瞻博网络公司 | 在现有数据中心结构中部署网络管理控制器 |
CN115134193B (zh) * | 2021-03-11 | 2024-04-16 | 瞻博网络公司 | 在现有数据中心结构中部署网络管理控制器的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US10972342B2 (en) | 2021-04-06 |
EP3672157B1 (en) | 2021-11-03 |
US20200195501A1 (en) | 2020-06-18 |
EP3672157A1 (en) | 2020-06-24 |
CN111327452B (zh) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111327452B (zh) | 使用消息总线的网络设备配置 | |
AU2019307597B2 (en) | Multi-cloud connectivity using SRv6 and BGP | |
CN105765921B (zh) | 用于利用软件定义网络功能进行diameter路由的方法、系统和设备 | |
CN105376087B (zh) | 用于网络服务配置的事务完整性 | |
US9705815B2 (en) | Graph database for services planning and configuration in network services domain | |
US8094575B1 (en) | Routing protocol extension for network acceleration service-aware path selection within computer networks | |
US10756945B2 (en) | Virtualized network management protocols | |
US9461877B1 (en) | Aggregating network resource allocation information and network resource configuration information | |
WO2018194839A1 (en) | Policy assurance for service chaining | |
US10291462B1 (en) | Annotations for intelligent data replication and call routing in a hierarchical distributed system | |
CN110476453A (zh) | 用于向客户提供网络切片的服务发放 | |
EP3632044B1 (en) | Generating device-level logical models for a network | |
US11936520B2 (en) | Edge controller with network performance parameter support | |
WO2018222428A1 (en) | Generating a network-wide logical model for network policy analysis | |
US11736410B1 (en) | Synchronizing device resources for element management systems | |
CN110784333B (zh) | 跨网络服务的有关网络配置协议装置的并发事务 | |
Nguyen et al. | Toward a programmable software-defined IoT architecture for sensor service provision on demand | |
Corici et al. | A solution for provisioning reliable M2M infrastructures using SDN and device management | |
Gadre et al. | Centralized approaches for virtual network function placement in SDN-enabled networks | |
WO2022089169A1 (zh) | 计算路由信息发送方法、装置、设备及存储介质 | |
Lee et al. | A scalable and highly available network management architecture on consistent hashing | |
US20190199577A1 (en) | Oss dispatcher for policy-based customer request management | |
US11425221B1 (en) | Runtime extensible application programming interface server | |
US11196668B2 (en) | End user premises device controller | |
Gammel et al. | Ambassador Project |
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 |