CN115134193A - 在现有数据中心结构中部署网络管理控制器 - Google Patents

在现有数据中心结构中部署网络管理控制器 Download PDF

Info

Publication number
CN115134193A
CN115134193A CN202110615124.0A CN202110615124A CN115134193A CN 115134193 A CN115134193 A CN 115134193A CN 202110615124 A CN202110615124 A CN 202110615124A CN 115134193 A CN115134193 A CN 115134193A
Authority
CN
China
Prior art keywords
network
operational state
controller
intent
elements
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
Application number
CN202110615124.0A
Other languages
English (en)
Other versions
CN115134193B (zh
Inventor
S·吉瓦拉杰
S·P·克里希南
G·H·文卡塔苏拜亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN115134193A publication Critical patent/CN115134193A/zh
Application granted granted Critical
Publication of CN115134193B publication Critical patent/CN115134193B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • H04L41/0883Semiautomatic configuration, e.g. proposals from system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • H04L41/0856Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information by backing up or archiving configuration information
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一些组织在其数据中心中具有已部署且功能正常的“无控制器”EVPN VxLAN结构。但是最终该组织可以在网络内部署控制器。在一个示例中,本公开描述了一种方法,该方法包括:将控制器配置为与网络中的多个元素中的每个元素通信;由控制器确定网络的初始操作状态;由控制器将网络的初始操作状态转换为基于意图的配置;由控制器将基于意图的配置推送到网络以便以与基于意图的配置一致的方式重新配置网络中的多个元素中的每个元素;由控制器在推送基于意图的配置之后确定网络的已更新的操作状态;以及由控制器将网络的初始操作状态与网络的已更新的操作状态进行比较。

Description

在现有数据中心结构中部署网络管理控制器
相关申请的交叉引用
本申请要求于2021年3月11日提交的申请号为17/249,760的美国专利申请的权益,其全部内容通过引用合并于此。
技术领域
本公开涉及计算机网络,并且更具体地涉及在数据中心结构中使用网络管理控制器。
背景技术
计算机网络是可以交换数据和共享资源的互连计算设备的集合。各种设备操作以促进计算设备之间的通信。例如,计算机网络可以包括路由器、交换机、网关、防火墙以及提供和促进网络通信的各种其他设备。
网络设备通常包括启用本地或远程配置的机制,诸如管理接口。通过与管理接口交互,客户端设备可以执行配置任务以及执行操作命令以收集和查看被管理设备的操作数据。例如,客户端设备可以配置被管理设备的接口卡,调节所支持的网络协议的参数,指定被管理设备内的物理组件,修改由路由器维护的路由信息,访问驻留在被管理设备上的软件模块和其他资源,以及执行其他配置任务。另外,客户端设备可以允许用户查看当前操作参数、系统日志、与网络连接性相关的信息、网络活动或来自设备的其他状态信息,以及查看并且响应从设备接收的事件信息。
通常,软件定义网络包括结构管理工具或控制器。这样的控制器可以用于管理网络结构,并且使得资源能够被虚拟化,使得能够部署新环境,以及使得能够停用现有环境。但是,并非所有网络都使用控制器。
发明内容
一些组织在其数据中心中具有已部署且功能正常的“无控制器”以太网虚拟专用网(EVPN)虚拟可扩展LAN(VxLAN)结构。VXLAN是一种封装协议,其可以使用隧道来提供数据中心连接,以在基础第3层网络上扩展第2层连接。但是,最终,网络的增长、复杂性或其他考虑因素可能会促使组织在网络内部署控制器。当需要将现有的无控制器网络结构迁移到基于控制器的管理时,通常由控制器来吸收(例如,导入)和管理现有网络的IP结构。但是,吸收现有网络的某些配置(诸如网络的底层(underlay)配置和覆盖(overlay)配置)通常很困难。特别是,至少在需要对个体设备配置进行逆向工程的情况下,很难吸收底层(例如,eBGP)和覆盖(例如,EVPN VxLAN)。
此外,在标识出对控制器的需求之前,最初部署的没有控制器的网络可能已经被部署了相当长的一段时间。那时,交换机上可能有数以千计的配置行。通过对个体设备配置进行逆向工程来吸收底层和覆盖可能需要解析大量配置和排列组合,并且正确捕获每个相关参数和字段可能具有挑战性。可以通过读取设备配置的外部脚本来处理转换过程,但是即使有可能,这样的解决方案也将难以实现和/或维护。
根据本文中描述的一种或多种技术,不直接处理每个特定网络设备配置设置,结构管理工具或控制器可以确定现有无控制器网络的基于意图的配置。网络的基于意图的配置可以基于关于网络的操作状态的信息来确定。为了确定网络的操作状态,结构管理工具或控制器可以向网络发出各种查询和/或命令。查询或命令被选择使得对查询或命令的响应趋向于标识网络的操作状态。结构管理工具或控制器将响应转换为操作状态并且然后转换为基于意图的配置。
一旦基于意图的配置被捕获,基于意图的配置就可以被推送回网络,以将现有网络转变或迁移到控制器管理的网络,从而以与基于意图的配置一致的方式重新配置现有网络中的设备或元素。在一些示例中,一旦网络被迁移到新的基于意图的配置,就可以通过将迁移之后的网络的操作状态与迁移之前的网络的操作状态进行比较来验证迁移之后的配置。
在一些实例中,本公开描述了根据本公开的一个或多个方面的由结构管理工具、控制器或其他网络设备执行的操作。在一个特定示例中,本公开描述了一种方法,该方法包括:将控制器配置为与网络中的多个元素中的每个元素通信;由控制器确定网络的初始操作状态;由控制器将网络的初始操作状态转换为基于意图的配置;由控制器将基于意图的配置推送到网络以便以与基于意图的配置一致的方式重新配置网络中的多个元素中的每个元素;由控制器在推送基于意图的配置之后确定网络的已更新的操作状态;以及由控制器将网络的初始操作状态与网络的已更新的操作状态进行比较。
在另一示例中,本公开描述了一种系统,该系统包括存储系统和处理电路系统,其中处理电路系统能够访问存储系统并且被配置为:启用与网络中的多个元素中的每个元素的通信;确定网络的初始操作状态;将网络的初始操作状态转换为基于意图的配置;将基于意图的配置推送到网络以便以与基于意图的配置一致的方式重新配置网络中的多个元素中的每个元素;在推送基于意图的配置之后,确定网络的已更新的操作状态;以及将网络的初始操作状态与网络的已更新的操作状态进行比较。
在另一示例中,本公开描述了一种计算机可读存储介质,该计算机可读存储介质包括指令,该指令在被执行时将计算系统的处理电路系统配置为启用与网络中的多个元素中的每个元素的通信;确定网络的初始操作状态;将网络的初始操作状态转换为基于意图的配置;将基于意图的配置推送到网络以便以与基于意图的配置一致的方式重新配置网络中的多个元素中的每个元素;在推送基于意图的配置之后,确定网络的已更新的操作状态;以及将网络的初始操作状态与网络的已更新的操作状态进行比较。
附图说明
图1A是示出根据本公开的一个或多个方面的使用结构管理工具或控制器将无控制器网络系统转变为可管理网络系统的概念图;
图1B是示出根据本公开的一个或多个方面的由结构管理工具或控制器将部分可管理网络系统转变为完全可管理的概念图;
图2是示出根据本公开的一个或多个方面的示例控制器的框图;
图3是示出根据本公开的一个或多个方面的使用示例控制器将网络系统转变为可管理网络系统的概念图;以及
图4是示出根据本公开的一个或多个方面的由示例控制器执行的操作的流程图。
具体实施方式
图1A是示出根据本公开的一个或多个方面的使用结构管理工具或控制器将无控制器网络系统转变为可管理网络系统的概念图。在图1A所示的示例中,网络系统100A被迁移到可管理网络系统101A中。网络系统100A和可管理网络系统101A都包括结构120和公共网络150,并且在每种情况下,结构120都包括网络元素121A至121G(统称为“元素121”,并且表示任何数目的网络元素)。然而,在可管理网络系统101A中,控制器110被部署在结构120内以管理结构120,从而使得控制器110不仅能够管理结构120的各方面而且还能够管理结构120内的每个元素121的各方面(例如,控制器110与一些元素121之间的带有箭头的虚线表示控制和/或管理)。在一些示例中,一个或多个管理员127可以直接与控制器110交互,或者在其他示例中,这样的管理员127可以通过一个或多个客户端设备或管理员设备125与控制器110交互。
如图1A所示,结构120的元素121包括经由通信链路互连以形成通信拓扑以便交换资源和信息的网络设备。元素121(通常也称为网络设备或远程网络设备)可以包括例如路由器、交换机、网关、网桥、集线器、服务器、防火墙或其他入侵检测系统(IDS)或入侵防御系统(IDP)、计算设备、计算终端、打印机、其他网络设备或这些设备的组合。虽然在本文中被描述为传输、传送或以其他方式支持分组,但是结构120可以根据由任何其他协议定义的任何其他离散数据单元来传输数据。将元素121互连的通信链路可以是物理链路(例如,光、铜等)、无线或其任何组合。
结构120被示出为经由通信链路耦合到公共网络150(例如,互联网)。公共网络150可以包括例如一个或多个客户端计算设备。公共网络150可以提供对网络服务器、应用服务器、公共数据库、媒体服务器、端用户设备以及其他类型的网络资源设备和内容的访问。
在可管理网络系统101A中,控制器110经由结构120通信地耦合到元素121。在一些示例中,控制器110是设备管理系统或结构管理工具或者形成其一部分。为了便于说明,在图1A中示出了一个控制器110,但是控制器110可以具有多个实例和/或跨越多个设备或系统。控制器110可以直接或间接耦合到各种元素121。一旦控制器110被部署在结构120内(参见可管理网络系统101A),一个或多个管理员127就可以使用控制器110(或多个这样的管理设备)来使用设备管理协议来管理元素121。一种示例设备协议是简单网络管理协议(SNMP),该协议允许控制器110遍历和修改在每个可管理元素121中存储配置数据的管理信息库(MIB)。
在通常的实践中,控制器110(也可以称为结构管理工具或网络管理系统)和元素121由与结构120相关联的企业的IT组集中维护。一旦控制器110被配置并且正在管理结构120,一个或多个管理员127就可以与控制器110交互以远程监测和配置元素121。例如,一个或多个管理员127可以从控制器110接收有关任何元素121的警报,查看与元素121相关联的配置数据,修改元素121的配置数据,向结构120添加新的网络设备,从结构120移除现有网络设备,或者以其他方式操纵结构120和其中的网络设备。尽管主要在企业网络的上下文中描述,但是本公开的技术适用于其他网络类型(公共的和私有的),包括LAN、VLAN、VPN等。
一旦控制器110正在管理结构120(参见可管理网络系统101A),一个或多个管理员127就可以使用一个或多个管理员设备125通过各种方式(诸如通过telnet、安全外壳(SSH)或其他这样的通信会话)与控制器110和/或元素121交互。也就是说,元素121通常提供用于直接交互的接口,诸如命令行接口(CLI)、基于网络的接口、图形用户界面(GUI)等,用户可以通过这些接口与设备交互以直接发布基于文本的命令。例如,这些接口通常允许用户例如通过telnet、安全外壳(SSH)、超文本传输协议(HTTP)或其他网络会话直接与设备交互,以根据所定义的语法来输入文本,以向可管理元素提交命令。在一些示例中,管理员127可以使用控制器110直接配置元素121F来发起与元素121中的一个元素(例如,元素121F)的SSH会话。以这种方式,管理员127可以以用于直接执行的格式向元素121F提供命令。
此外,一个或多个管理员127还可以创建可以由控制器110提交给结构120内的任何或所有元素121的脚本。例如,除了CLI接口,元素121还提供用于接收脚本的接口,该脚本根据脚本语言指定命令。从某种意义上,脚本可以由控制器110输出以自动调用可管理元素121上的对应远程过程调用(RPC)。脚本可以符合例如可扩展标记语言(XML)或另一数据描述语言。
管理员127使用控制器110将元素121配置为指定实现管理员127的目标的某些操作特性。例如,管理员127可以为特定元素121指定有关安全性、设备可访问性、流量工程、服务质量(QoS)、网络地址转换(NAT)、分组过滤、分组转发、速率限制的特定操作策略或其他策略。控制器110使用被设计用于管理可管理网络系统101A的可管理元素121内的配置数据的一种或多种网络管理协议来执行配置。这样的管理协议可以包括SNMP协议或网络配置协议(NETCONF)协议或其派生协议、或Juniper设备管理接口。
图1A可以表示一种情况,其中组织的网络(即,网络系统100A)已经变得足够大和/或复杂使得组织希望通过结构管理工具来管理结构120。在这种情况下,组织可以得出结论,即,在结构120内使用控制器(即,控制器110)可以简化结构120的管理方式的各方面。因此,网络系统100A和可管理网络系统101B可以分别表示在迁移之前和之后由组织管理的企业网络。因此,图1A所示的迁移可以对应于组织通过将控制器110部署到组织的现有企业网络(即,控制器110的“棕地(brownfield)部署”)中来将网络系统100A转变到可管理网络系统101A。因为可以使用结构管理工具来配置网络,所以将控制器110部署到新建立的网络中(例如,“绿地(greenfield)部署”场景)趋于更容易。但是,如图1A所示,将控制器110部署到现有无控制器数据中心结构120中通常需要不同方法。例如,在标识出对控制器的需求之前,可以预期现有无控制器数据中心结构(由网络系统100A表示)已经被部署了相当长的一段时间。此外,这样的网络通常将已经远远超出简单拓扑并且超出网络中的交换机和其他网络设备上的少量配置的范围。因此,将网络系统100A转变为可管理网络系统101A可能很复杂,并且通过读取和转换每个元素121上的个体设备配置来吸收现有网络配置的某些方面(例如,底层和覆盖配置)通常并不容易。
根据本文中描述的一种或多种技术,不直接参与重新配置结构120内的每个特定网络设备配置设置的潜在困难且不容易的过程,控制器110可以确定网络的基于意图的配置。一旦基于意图的配置被确定,控制器110就可以基于该基于意图的配置来管理结构120。在一些示例中,控制器110用作网络管理系统(NMS)设备,其可以配置结构120内的业务策略、或简称为“策略”。特别地,设备的用户配置可以称为“意图(intent)”。意图可以被表示为意图模型,可以使用数据结构(例如,诸如但不限于统一图形模型)对意图模型进行建模。
用户意图可以分类为业务意图或无状态意图。业务意图或有状态意图可以基于网络的当前状态来被解决。业务意图可以包括例如数据吞吐量。无状态意图可以是描述预期网络/计算/存储状态的完全声明性方式,而没有关注当前网络状态。无状态意图可以包括例如两个设备之间的虚拟专用网(VPN)连接。应用工作流可以将业务意图转换为无状态意图。控制器设备支持用户意图,使得管理员可以描述网络的期望状态。
为了确定结构120的基于意图的配置,如图1A所示,控制器110被插入结构120中。在一些示例中,这可以涉及一个或多个管理员127将控制器110物理地连接到结构120,使得结构120具有与图1A的可管理网络系统101A相对应的拓扑。控制器210可以通过结构320内的各种网络设备、交换机和/或路由器的端口物理地连接到结构120。
一旦被连接,控制器110就可以收集关于结构120的操作状态的信息。例如,在可以在图1A的上下文中描述的示例中,控制器110向每个元素121输出操作命令。每个元素121响应这样的操作命令。控制器110评估在来自每个元素121的响应中接收的信息以确定结构120的操作状态。在一些示例中,控制器110发布给一些或所有元素121的命令被选择以引出底层和覆盖信息。
控制器110可以将所收集的信息转换为基于意图的配置。例如,继续参考图1A描述的示例,控制器110解析对操作命令的响应。控制器110标识响应字段中的有价值和重要的信息。通常,所标识的信息与在控制器(或其他结构管理器软件)中创建相关的和对应数据库对象所需要的参数有关。然后,如本文中所述,控制器将相关的数据库对象转换为描述网络的基于意图的配置。因此,通过使用通过向现有网络内的设备发出的操作命令或查询而引出的信息,可以将原始设备配置转换为基于意图的配置。
在所描述的示例中,控制器110收集关于现有网络(即,结构120)的操作状态的信息,作为结构120从网络系统100A到可管理网络系统101A的棕地迁移的一部分。然而,这种棕地迁移在某些方面可以类似于绿地部署场景(例如,其中一开始就由控制器110管理新网络)。在绿地场景中,控制器110具有在开始管理新结构时执行的一组特定任务,并且这些任务通常在配置任何新网络时执行。这样的任务可以涉及对一个或多个元素121进行各种配置。然而,在棕地场景中,控制器110可以在吸收现有结构时执行相同的一组任务。然而,代替对这些相同的元素121进行初始配置,控制器110可以在棕地部署中查询现有元素121以标识其操作状态并且创建与每个现有元素121相对应的数据库对象。因此,控制器110可以在绿地场景中执行的该组任务可以相应地在棕地场景中被执行。
一旦控制器110确定结构120的基于意图的配置,控制器110就可以将基于意图的配置推送回网络。例如,再次参考在图1A的上下文中描述的示例,控制器110使用表示结构120的基于意图的配置的数据库对象来输出各种配置命令。每个元素121检测这样的命令并且执行适当配置。一旦被配置,结构120应当具有表示由数据库对象表示的基于意图的配置的操作状态。
控制器110可以验证基于意图的配置。例如,在将基于意图的配置推送到结构120之后,控制器110再次向每个元素121输出操作命令。每个元素121响应这样的操作命令,并且控制器110使用这样的响应来确定已更新或新操作状态。控制器110将已更新的操作状态与结构120的初始操作状态进行比较。如果操作状态充分匹配,则控制器110确定新配置通过验证。
一旦意图被捕获在数据库中,网络上的设备就可以由结构工具或控制器完全托管。在某些情况下,控制器110对结构120和结构120内的元素121的完全设备管理控制可能很重要,因为这将确保在发生故障时的设备恢复。如果这样的操作对于维护、调试或其他目的是必需的,则控制器110可以在任何时间使用基于意图的配置来将任何元素121恢复到其原始状态。
图1B是示出根据本公开的一个或多个方面的由结构管理工具或控制器将部分可管理网络系统转变为完全托管的概念图。图1B类似于图1A,因为网络系统100B和可管理网络系统101B都包括结构120和公共网络150,并且在每种情况下,结构120包括元素121A至121G(统称为“元素121”)。然而,图1B的网络系统100B和可管理网络系统101B都还包括结构130,结构130包括元素131A至131G(统称为“元素131”,并且表示任何数目的元素)。
网络系统100B和可管理网络系统101B都还包括控制器110。最初,在网络系统100B中,结构130由控制器110管理,但是结构120不由控制器110管理。在可管理网络系统101B中(在转变之后)结构130和结构120都由控制器110管理。如图1A所示,管理员127可以直接或通过管理员设备125与控制器110交互。
图1B可以表示一种情况,其中企业网络的一部分由结构管理工具(例如,控制器110)管理,但是企业网络的某些部分不由结构管理工具管理。在图1B的示例中,结构120可以被认为是网络系统100A的无控制器部分,该无控制器部分正在转变为由控制器110来管理。当组织试图将现有结构管理工具部署到企业网络的其他部分时,可能会出现这种情况。因此,在图1B中,控制器110已经是企业网络的一部分,但是在企业网络(例如,结构120)的先前无管理部分之间迁移,从而表示控制器110到现有结构120中的棕地部署。
根据本公开的一个或多个方面,控制器110可以扩展其对结构130的管理以涵盖结构120。例如,在可以参考图1B描述的示例中,控制器110已经物理地连接到结构130,并且可以被配置为使得控制器110能够访问结构120。一旦控制器110可以访问结构120,控制器110就收集有关结构120的操作状态的信息。为此,控制器110向每个元素121输出操作命令。每个元素121响应这样的操作命令。控制器110评估在来自每个元素121的响应中接收的信息以确定结构120的操作状态,包括底层和覆盖信息。控制器110以类似于结合图1A描述的方式将结构120的操作状态转换为基于意图的配置。
控制器110可以将基于意图的配置推送回结构120。例如,再次参考在图1B的上下文中描述的示例,控制器110使用根据结构120的初始操作状态而确定的基于意图的配置来输出各种配置命令。每个元素121检测这样的命令并且执行适当配置,从而将结构120转换为由控制器110推送的基于意图的配置。
如图1A所示,控制器110可以验证图1B中的基于意图的配置。例如,在将基于意图的配置推送到结构120之后,控制器110再次向每个元素121输出操作命令以确定已更新的操作状态。控制器110将结构120的已更新的操作状态(例如,在可管理网络系统101B中)与结构120的初始操作状态(例如,在网络系统100B中)进行比较。控制器110基于比较确定新配置是否通过验证。
本文中描述的技术可以提供某些技术优势。通过收集有关现有无控制器网络(例如,结构120)的操作状态的信息并且使用该信息来确定网络的基于意图的配置,用于发现底层和覆盖配置的明显更容易和更可靠的过程是可能的。这样的解决方案不仅比尝试逆向工程或转换个体网络设备配置更容易,而且这种解决方案是可缩放的,这至少是因为,它较少依赖于设备相关的个体设备配置,而是更多地依赖于设备无关的操作状态。用于确定网络或网络设备的操作状态的命令往往是更加设备无关的,并且对平台、硬件、供应商和/或设备系列的依赖性较小。例如,用于操作状态命令的XML输出的数据模型往往是跨平台一致的,这表示,可以使用给定操作状态查询的输出来解析不同平台的期望值。因此,几乎不需要或不需要任何软件改变或维护过程即可合并在棕地迁移中可能遇到的任何平台、模型或网络设备系列。因此,所提议的解决方案可以由任何结构管理工具或控制器采用。
此外,通过确定基于意图的配置,并且基于基于意图的配置来重新配置网络设备,经常会删除不必要的配置,从而消除了某些遗留配置,否则这些遗留配置可能会长期存在于设备中而无法有效使用。因此,将操作状态模型用于棕地发现将使得管理员能够在迁移期间清理配置。此外,推送基于所确定的操作状态的基于意图的配置使得能够确认操作状态在迁移期间未发生变化。执行这种确认可以仅涉及读取迁移后操作状态并且将该状态与迁移前操作状态进行比较。
图2是示出根据本公开的一个或多个方面的示例控制器的框图。图2的控制器210可以表示图1A和/或图1B的控制器110的示例实现。在图2的示例中,控制器210包括控制单元222、网络接口234和用户接口236。网络接口234表示示例接口,该示例接口可以将控制器110通信地耦合到外部设备,例如图1A的元素121之一。网络接口234可以表示无线和/或有线接口,例如,被配置为根据无线标准进行通信的以太网接口或无线无线电,上述无线标准包括诸如一种或多种IEEE 802.11无线联网协议(诸如802.11a/b/g/n或其他这样的无线协议)。在各种示例中,控制器110可以包括多个网络接口,但是为了便于说明,在图2中示出了一个网络接口。
控制单元222表示用于实现归属于控制单元222及其组成模块和元素的功能的硬件、软件和/或固件的任何组合。当控制单元222包括软件或固件时,控制单元222还包括用于存储和执行软件或固件的任何必要硬件,诸如一个或多个处理器或处理单元。通常,处理单元可以包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或者任何其他等效的集成或离散逻辑电路系统、以及这样的组件的任何组合。此外,处理单元通常使用固定和/或可编程逻辑电路系统来实现。
用户接口236表示一个或多个接口,诸如管理员127(参见图1A或图1B)等用户通过该接口与控制器110交互,例如,以提供输入以及接收输出。例如,用户接口236可以表示显式器、键盘、鼠标、触摸屏、触摸板、触控板、扬声器、相机、麦克风等中的一种或多种。此外,尽管在所示的示例中,控制器110包括用户接口236,但是管理员127或其他用户可以不直接与控制器110交互,而是可以远程地(例如,托管网络接口234经由管理员设备125)访问控制器110。
在图2的示例中,控制单元222包括用户接口模块238、网络接口模块232和管理模块224。控制单元222执行用户接口模块238以从用户接口236接收输入和/或向用户接口236提供输出。控制单元222还执行网络接口模块232以经由网络接口234发送和接收数据(例如,分组)。用户接口模块238、网络接口模块232和管理模块224可以被实现为相应硬件单元,或者以软件或固件来实现,或者其组合。
控制单元222的功能可以被实现为固定或可编程数字逻辑电路系统中的一个或多个处理单元。这样的数字逻辑电路系统可以包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或者任何其他等效的集成或离散逻辑电路系统、以及这样的组件的任何组合。当被实现为可编程逻辑电路系统时,控制单元222还可以包括一个或多个计算机可读存储介质,该计算机可读存储介质存储将由控制单元222的处理单元执行的硬件或固件指令。
控制单元222执行管理模块224以管理各种网络设备,例如图1A和图1B的元素121。网络设备的管理包括例如根据从用户(例如,图1A或图1B的管理员127)接收的指令来配置网络设备以及向用户提供提交用于配置网络设备的指令的能力。网络设备的管理可以包括将基于意图的配置推送到网络设备。在图2的示例中,管理模块224还包括配置模块226和转换模块228。配置模块226和转换模块228可以执行与以下各项有关的功能:以本文中诸如结合图3描述的方式确定网络的基于意图的配置以及将所描述的基于意图的配置推送到网络。转换模块228可以使用一个或多个转换功能230来执行这样的任务。转换模块228还可以采用体现在意图业务逻辑模块229内的意图业务逻辑以帮助确定网络的基于意图的配置。
控制器110还包括配置数据库240,配置数据库240可以包括描述可管理网络设备(例如,元素121)的信息。配置数据库240可以用作意图数据存储库,意图数据存储库可以用于持久化和管理意图数据模型的集合(例如,包括基于意图的配置245)。例如,配置数据库240可以包括指示设备标识符(诸如MAC和/或IP地址)、设备类型、设备供应商、设备种类(例如,路由器、交换机、网桥、集线器等)等的信息。配置数据库240还可以存储一个或多个元素121的配置信息(例如,意图数据模型,或者在某些情况下是意图数据模型和低级配置信息两者)。此外,配置数据库240还可以存储操作状态信息,包括初始操作状态241和迁移后操作状态242,如结合图3进一步描述的。
图2所示的模块(例如,配置模块226、转换模块228、用户接口模块238、网络接口模块232)和/或在本公开中的其他地方示出或描述的操作可以执行使用在一个或多个计算设备中驻留和/或执行的软件、硬件、固件、或硬件、软件和固件的混合而描述的操作。例如,计算设备可以利用多个处理器或多个设备来执行这样的模块中的一个或多个。计算设备可以执行一个或多个这样的模块作为在底层硬件上执行的虚拟机。一个或多个这样的模块可以作为操作系统或计算平台的一个或多个服务来执行。一个或多个这样的模块可以作为一个或多个可执行程序在计算平台的应用层执行。在其他示例中,由模块提供的功能可以由专用硬件设备来实现。
尽管被包括在一个或多个存储设备中的某些模块、数据存储库、组件、程序、可执行文件、数据项、功能单元和/或其他项可以分别示出,但是一个或多个这样的项可以组合并且操作作为单个模块、组件、程序、可执行文件、数据项或功能单元。例如,一个或多个模块或数据存储库可以组合或部分地组合使得它们作为单个模块操作或提供功能。此外,一个或多个模块可以彼此交互和/或协同操作使得例如一个模块用作另一模块的服务或扩展。而且,在存储设备内示出的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以包括多个组件、子组件、模块、子模块、数据存储库、和/或其他组件或模块或数据存储库(未示出)。
此外,在存储设备内示出的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以以各种方式来实现。例如,在存储设备内示出的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以被实现为可下载或预安装的应用或“app”。在其他示例中,在存储设备内示出的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以被实现为在计算设备上执行的操作系统的一部分。
图3是示出根据本公开的一个或多个方面的使用示例控制器将网络系统转变为可管理网络系统的概念图。图3所示的网络类似于图1A的可管理网络系统101A,并且示出了控制器210(其可以对应于图2的控制器210)被部署在现有结构320内。图3的结构320可以表示功能正常的企业网络,诸如EVPN VxLAN架构,该企业网络作为历来是在没有任何结构管理工具或控制器的情况下操作的企业网络来服务于组织。由于多种原因中的任何一种,操作或控制结构320的组织可以决定在结构320内部署结构管理工具(例如,控制器210)。因此,图3表示控制器210到组织的现有数据中心中的棕地部署。
图3的网络系统301内包括结构320、公共网络150、控制器210和管理员设备325。结构320包括元素321A至321G(统称为“元素321”,并且表示任何数目的元素)。这样的元素321可以类似于图1A和图1B的元素121。公共网络150可以对应于图1A和图1B的公共网络150。控制器210可以以图2所示的方式实现。管理员设备325可以由一个或多个管理员来操作,包括例如管理员327。管理员设备325可以呈现一个或多个用户界面336。
根据本公开的一个或多个方面,控制器210可以被插入到结构320中。例如,在可以在图3的上下文中描述的示例中,作为将结构320从无控制器配置转变到可管理配置的一部分,一个或多个网络管理员(例如,用户界面336)可以将控制器210物理地连接到结构320。控制器210可以通过结构320内的各种网络设备、交换机和/或路由器的端口物理地连接。控制器210被连接使得它能够通过结构320与每个元素321通信。
在一些示例中,将控制器210添加到结构320可以涉及如上所述将控制器210的一个或多个端口物理地连接到结构320内的交换机、路由器或其他网络设备。然而,在其他示例中,将控制器210添加到结构320可以在几乎没有或没有物理干预的情况下通过软件执行。例如,控制器210可以被实现为虚拟计算设备,诸如结构320内的容器或虚拟机。在这样的示例中,实现控制器210可以涉及在结构320内的计算节点上(或在其他地方,诸如在云数据中心中)启动和/或配置一个或多个虚拟执行实体以执行控制器210的功能。
一旦控制器210能够与结构321内的每个元素321和其他网络设备通信,控制器210就可以与元素321建立通信。例如,继续参考图3描述的示例,控制器210在结构320上输出信号以启用并且发起与每个元素321的通信。控制器210验证其可以与每个元素321通信。控制器210还验证其可以查询和修改每个元素321的各种配置设置。因此,一旦被连接,控制器210就能够通过结构320向每个元素321输出命令、查询或其他通信,并且还接收对这样的命令、查询或其他通信的响应。通常,控制器210在对结构320和结构320内的元素的完全设备管理控制下操作,因为这确保了在结构320向由控制器210管理的网络迁移期间发生故障的情况下能够回滚或恢复设备设置的能力。在一些示例中,控制器210可能需要将一个或多个元素321恢复到其原始的迁移前状态。
一旦在结构320内建立,控制器210就可以响应开始将结构320迁移到由控制器210管理的网络的命令。例如,在可以在图2和图3的上下文中描述的示例中,控制器210的用户接口模块238检测与用户接口236的交互。用户接口模块238确定该交互对应于将控制器210集成到结构320内作为结构管理工具的请求(例如,由管理员327与用户接口236或管理员设备325交互而引起)。在一些示例中,结构320可以是不使用结构管理工具和/或控制器的功能正常的网络。在其他示例中,结构320可以是使用由不同供应商提供的结构管理工具或控制器的功能正常的网络。在这两种情况下,在所描述的示例中,管理员327(或控制结构320的组织)都试图使用控制器210作为结构管理工具来管理结构320。因此,控制器是首次被引入结构320中,或者正在更换其他控制器。响应于将控制器210集成在结构320内的请求,用户接口模块238向配置模块226输出信息。基于该信息,配置模块226生成可以用于确定结构320的当前操作状态的一系列操作命令。
控制器210可以收集关于结构320的操作状态的信息。例如,继续在图2和图3的上下文中描述的示例,配置模块226向网络接口模块232输出关于一系列操作命令的信息。网络接口模块232引起网络接口234在结构320上输出一系列信号。结构320内的每个元素321检测一个或多个信号。每个元素321将这样的信号解释为关于其操作状态的操作命令或查询。每个元素321通过在结构320上向控制器210输出关于其相应操作状态的信息来响应该信号。网络接口234检测来自元素321的信号,并且向网络接口模块232输出关于该信号的信息。网络接口模块232向配置模块226输出信号的指示。配置模块226确定该信号响应于发给元素321的一系列操作命令。配置模块226解释对操作命令的响应,对与结构320的操作状态相关和/或对其重要的字段建立索引,并且使用该信息来确定结构320和元素321中的每个的操作状态。配置模块226存储初始操作状态241,该初始操作状态241反映结构320和每个元素321的操作状态。因此,初始操作状态241可以表示在控制器210的部署之前的结构320的操作状态。
作为确定有关结构320的操作状态的信息的一部分,控制器210可以收集有关底层和覆盖操作状态两者的信息。捕获底层和覆盖操作状态两者可能是使得结构320能够以与先前配置的结构320的无控制器版本相同的方式进行操作所必需的。为了收集底层和覆盖操作状态,控制器210可以查询结构320的各方面以收集复制结构320的底层和覆盖操作状态两者所需要的信息使得底层和覆盖都可以由控制器210管理。为了获取底层和覆盖操作状态,可以通过适当方法收集信息,诸如通过托管命令行接口发布给控制器的信息。在图2和图3的上下文中描述的示例中,结构320最初可以是无控制器的EVPN VxLAN结构。对于EVPN VxLAN结构,收集关于底层和覆盖的信息可以涉及收集关于底层eBGP和EVPN VxLAN覆盖的信息。
因此,控制器210可以收集关于底层操作状态的信息。例如,在一个特定示例中,可以通过一系列Junos“show”命令来获取底层操作状态。尽管在Junos的上下文中进行说明,但是即使配置可能特定于特定硬件设备、制造商或设备系列,用于获取结构320和元素321的操作状态的命令往往独立于设备型号和设备系列。下表1中所示的Junos命令示出了可以用于标识结构320的底层操作状态的信息。转换模块228从中间列中的值得出表1中最右列中的逻辑实体以确定基于意图的配置。表1的中间列中的值是响应于最左列中的命令而被接收的输出。表1的最左列中的命令是示例结构320的相关操作命令的代表性示例。
表1
Figure BDA0003097741540000181
Figure BDA0003097741540000191
控制器210还可以收集关于覆盖操作状态的信息。例如,以与结合底层操作状态所描述的方式类似的方式,也可以通过一系列Junos“show”命令来获取覆盖操作状态。同样,尽管在Junos的上下文中进行说明,但是即使配置可能特定于特定硬件设备、制造商或设备系列,用于获取结构320和元素321的操作状态的命令往往独立于设备型号和设备系列。下表2中所示的Junos命令示出了可以用于标识结构320的覆盖操作状态的信息。与表1一样,转换模块228从中间列中的值得出表2中最右列中的逻辑实体以确定基于意图的配置。中间列中的值是响应于最左列中的列出的命令而生成的输出。
表2
Figure BDA0003097741540000201
Figure BDA0003097741540000211
Figure BDA0003097741540000221
Figure BDA0003097741540000231
作为本公开的一部分而作为附录提交的是响应于各种操作命令由示例网络(例如,类似于结构320)生成的信息的列表。在某些方面,与表1和表2相比,附录中包含的信息表示的列表更加完整。在附录中,使用Junos“show”命令示例,并且提供了对这样的命令的示例响应。附录详细说明了对发布给两个不同Juniper网络交换机(型号QFX10000和QFX5000)的操作命令的响应,这些交换机可从加利福尼亚州桑尼维尔的Juniper Networks获取。
控制器210可以将关于结构320的操作状态的信息转换为基于意图的配置245。例如,仍然继续在图2和图3的上下文中描述的示例,配置模块226将关于结构320和元素321的操作状态的信息输出给转换模块228。如上所述,这种操作状态信息可以对应于初始操作状态241,并且可以包括关于底层和覆盖操作状态的信息。转换模块228将关于每个元素321的操作状态的信息转换为定义基于意图的配置的一个或多个对象。为了执行从初始操作状态241到基于意图的配置245的转换,转换模块228可以访问一个或多个转换功能230(即,被包括在控制器210中或由控制器210可访问)。通常,转换模块228被设计为知道特定操作命令输出转换为用于定义基于意图的配置的特定数据库对象。例如,转换模块228可以理解,关于网络中的列举的VLAN的信息应当被映射到可以用于确定基于意图的配置的对应虚拟网络对象。转换模块228在配置数据库240中存储与对象相对应的一个或多个数据库对象作为基于意图的配置245。
在一些示例中,当收集关于结构320的操作状态的信息时,当控制器210在试图使用控制器210将结构320转变为可管理网络时,可能遇到一个或多个网络问题。例如,再次参考图2和图3,网络接口模块232可以引起网络接口234与一个或多个元素321通信或尝试与一个或多个元素321通信,同时收集关于结构320的操作状态的信息。网络接口234可以接收响应于这种通信的信号,并且向网络接口模块232输出这样的信号的指示。网络接口模块232可以评估这样的信号的指示,并且确定结构320内的一个或多个链路断开或不可操作,一个或多个元素321或元素321的对等方断开或不可操作,或者结构320中存在其他问题,这些问题表明结构320处于不稳定状态并且在没有重大错误或可操作性问题的情况下无法运行。
在这样的示例中,网络接口模块232将关于其遇到的问题的信息输出给配置模块226。配置模块226使用户接口模块238在用户接口236处给管理员327生成一个或多个用户接口(或使用由管理员327操作的管理员设备325)。这样的用户接口(例如,在图3中示出的用户界面336)可以提示管理员327解决网络问题或者继续进行结构320到由控制器210管理的转变。在一些示例中,用户界面336可以包括由控制器210生成的结构320的拓扑的表示,以帮助管理员327理解和解决结构320中存在的问题。一旦这样的问题得到解决或以其他方式被解决,控制器210的配置模块226就继续进行迁移过程。
在一些示例中,控制器210可以在管理员设备325处向管理员327呈现多个用户界面336,每次呈现一个或多个问题,使得管理员327可以在迁移期间响应众多问题。在其他示例中,控制器210可以收集将由管理员327解决的所有问题的列表,并且通过管理员设备325处的一系列用户界面336一次将该列表呈现给管理员327。
一旦已经收集了初始操作状态241并且已经确定了基于意图的配置245,控制器210就可以将基于意图的配置245推送到结构320。例如,再次参考图2和图3,配置模块226访问关于配置数据库240中的基于意图的配置245的信息。配置模块226将关于基于意图的配置245的信息输出给网络接口模块232,这使网络接口234在结构320上输出一系列信号。每个元素321检测信号,并且确定信号对应于用于配置或重新配置其操作以反映基于意图的配置245的命令。在一些示例中,为了使每个元素321能够配置或重新配置其操作,一个或多个元素321可以清除、重写和/或修改现有配置以适当地反映基于意图的配置245。而且,在一些示例中,一旦每个元素321执行与基于意图的配置245一致的所请求的配置,一个或多个元素321就可以在结构320上输出信号以确认新配置。控制器210的网络接口234检测这样的信号,并且将关于该信号的信息输出给网络接口模块232和配置模块226。配置模块226确定该信号对应于每个元素321确认所请求的配置已经被推送到每个元素321并且被执行。
在将基于意图的配置245推送到结构320之后,控制器210可以确定结构320的新操作状态是否与插入控制器210之前结构320的配置匹配和/或一致。例如,再次参考图2和图3,在基于意图的配置245被推送到结构320之后,配置模块226生成一系列操作命令以确定结构320的操作状态。这样的命令可以对应于或可以类似于用于确定初始操作状态241的命令。配置模块226将关于操作命令的信息输出给网络接口模块232,这使网络接口234在结构320上输出一系列信号。每个元素321检测其中的一个或多个信号并且将这样的信号解释为操作命令。每个元素321通过输出操作状态信息来响应该信号。网络接口234检测来自元素321的信号,并且将关于信号的信息输出给网络接口模块232。配置模块226确定该信息响应于发布给每个元素321的操作命令。配置模块226解释对操作命令的响应,并且确定每个元素321的新操作状态。配置模块226可以将关于新操作状态的信息存储为迁移后操作状态242。配置模块226将迁移后操作状态242与初始操作状态241进行比较,以确认在插入控制器210并且将结构320配置为由控制器210管理之后结构320的操作状态与在插入控制器210之前结构320的操作状态相同。
控制器210可以呈现关于迁移的信息。例如,再次参考图2和图3,配置模块226可以引起用户接口模块238生成关于初始操作状态241和迁移后操作状态242的比较的一个或多个用户接口。这样的用户接口中的每个用户接口可以在管理员设备325处呈现以供管理员327进行评估。这样的用户接口可以类似于用户接口336。在一些示例中,初始操作状态241和迁移后操作状态242相同或基本相同,因此,这样的用户接口仅报告结构320的操作状态没有任何改变,作为结构320向由控制器210管理的迁移的结果。
在其他示例中,初始操作状态241和迁移后操作状态242在某些方面可以不同,并且由用户接口模块238生成的用户接口可以突出初始操作状态241和迁移后操作状态242不同的方式(例如,通过呈现结构320的拓扑)。在某些情况下,管理员327可以确定这种差异不重要也不显著。但是,在其他情况下,管理员327可以确定这样的差异需要补救,这可能涉及对结构320进行某种物理或其他干预,以解决造成初始操作状态241和迁移后操作状态242之间的差异的问题。在干预之后,控制器210可以再次发起上述迁移过程以生成新的迁移后操作状态242。控制器210和/或管理员327可以通过将新的迁移后操作状态242与初始操作状态241进行比较来确定干预是否解决了该问题。
图4是示出根据本公开的一个或多个方面的由示例控制器210执行的操作的流程图。下面在图2的控制器210和图3的网络系统301的上下文中描述图4。在其他示例中,图4中描述的操作可以由一个或多个其他组件、模块、系统或设备执行。此外,在其他示例中,结合图4描述的操作可以被合并,以不同顺序执行,被省略,或者可以包含未具体示出或描述的附加操作。
在图4所示的过程中,并且根据本公开的一个或多个方面,控制器210可以启用与结构320的元素321的通信(401)。例如,控制器210可以在结构320上输出信号以启用和发起与每个元素321的通信。控制器210可以验证它可以与每个元素321通信。控制器210也可以验证它可以查询和修改每个元素321的配置设置。
控制器210可以确定结构320的初始操作状态(402)。例如,配置模块226可以使控制器210向结构320内的元素321输出一系列操作命令。结构320内的每个元素321可以检测一个或多个信号,并且通过在结构320上向控制器210输出关于其相应操作状态的信息来响应该信号。控制器210的配置模块226可以解释对操作命令的响应,并且使用该信息来确定结构320和元素321的操作状态。配置模块226可以将初始操作状态存储在配置数据库240内(例如,作为241)。
控制器210可以提示管理员解决任何网络问题(403)。例如,控制器210可以确定结构320内的一个或多个链路断开或不可操作,一个或多个元素321或元素321的对等方断开或不可操作,或者在结构320中存在其他问题,这些问题表明结构320处于不稳定状态和/或具有可操作性问题。控制器210可以向管理员设备325输出信号,该信号使管理员设备325呈现用户界面336。控制器210可以等待直到问题被解决(404和来自403的“是”路径)。最终,控制器210基于检测到的与用户界面336的交互或以其他方式来确定该问题不再存在(来自403的“否”路径)。
控制器210可以确定基于意图的配置(405)。例如,控制器210的转换模块228将关于结构320和每个元素321的操作状态的信息转换为定义基于意图的配置的一个或多个对象。转换模块228在配置数据库240中存储与对象相对应的一个或多个数据库对象作为基于意图的配置245。
控制器210可以推送基于意图的配置(406)。例如,控制器210可以在结构320上输出一系列信号。每个元素321可以检测这样的信号,并且确定该信号对应于用于配置或重新配置其操作以反映基于意图的配置245的命令。每个元素321执行配置。
控制器210可以确定结构320的已更新的操作状态(407)。例如,配置模块226使控制器210再次在结构320上输出一系列操作命令。控制器210接收对命令的响应并且使用该响应来确定已更新的操作状态。控制器210可以将关于新操作状态的信息存储为迁移后操作状态242。
控制器210可以确认已更新的操作状态(408)。例如,模块226将迁移后操作状态242与初始操作状态241进行比较。配置模块226将在插入控制器210并且将结构320配置为由控制器210管理之后结构320的操作状态与在插入控制器210之前结构320的操作状态进行比较(409)。配置模块226通过验证操作状态242与初始操作状态241充分匹配(来自409的“是”路径)来确认操作状态。如果已更新的操作状态偏离初始操作状态,则控制器210可以提示管理员回滚配置或接受偏离。在某些示例中,管理员可以通过手动或其他干预(来自409的“否”路径)解决问题。
对于本文中描述的过程、装置和其他示例或说明,包括在任何流程图表或流程图中,本文中描述的任何技术中包括的某些操作、动作、步骤或事件可以以不同顺序执行,可以添加、合并或完全省去(例如,并非所有描述的动作或事件对于这些技术的实践都是必需的)。此外,在某些示例中,操作、动作、步骤或事件可以例如通过多线程处理、中断处理或多个处理器同时而不是顺序地执行。即使未明确标识为自动执行,某些其他操作、动作、步骤或事件也可以自动执行。另外,描述为自动执行的某些操作、动作、步骤或事件可以替代地不自动执行,而是,在一些示例中,这样的操作、动作、步骤或事件可以响应于输入或另一事件来执行。
为了便于说明,在本文中引用的说明中示出了有限数目的设备或系统(例如,控制器110、结构120、元素121、结构130、元素131、管理员设备125等)。然而,根据本公开的一个或多个方面的技术可以利用更多这样的系统、组件、设备、模块和/或其他项目来执行,并且对这样的系统、组件、设备、模块和/或其他项目的集体引用可以表示任何数目的这样的系统、组件、设备、模块和/或其他项目。
本文中包括的附图各自示出了本公开的一方面的至少一个示例实现。然而,本公开的范围不限于这样的实现。因此,本文中描述的系统、方法或技术的其他示例或替代实现(除附图所示的以外)在其他情况下可能是合适的。这样的实现可以包括附图中包括的设备和/或组件的子集,和/或可以包括附图中未示出的附加设备和/或组件。
上面阐述的详细描述旨在作为各种配置的描述,而非旨在表示可以实践本文中描述的概念的唯一配置。为了提供对各种概念的充分理解,详细描述包括特定细节。但是,可以在没有这些特定细节的情况下实践这些概念。在某些情况下,在附图中以框图形式示出了公知的结构和组件,以避免使这些概念模糊。
因此,尽管可以参考特定附图描述各种系统、设备和/或组件的一个或多个实现,但是这样的系统、设备和/或组件可以以多种不同方式来实现。例如,本文中示出为单独设备的一个或多个设备可以替代地实现为单个设备;例如,示出为单独组件的一个或多个组件可以替代地实现为单个组件。而且,在一些示例中,在本文中的附图中示出为单个设备的一个或多个设备可以替代地被实现为多个设备;例如,示出为单个组件的一个或多个组件可以替代地实现为多个组件。这样的多个设备和/或组件中的每个可以经由有线或无线通信直接耦合和/或经由一个或多个网络远程耦合。另外,可以在本文中的各个附图中示出的一个或多个设备或组件可以替代地实现为在这样的附图中未示出的另一设备或组件的一部分。以这种和其他方式,本文中描述的一些功能可以通过两个或更多个设备或组件的分布式处理来执行。
此外,某些操作、技术、特征和/或功能在本文中可以描述为由特定组件、设备和/或模块执行。在其他示例中,这样的操作、技术、特征和/或功能可以由不同组件、设备或模块执行。因此,在其他示例中,在本文中可以描述为归因于一个或多个组件、设备或模块的一些操作、技术、特征和/或功能可以归因于其他组件、设备和/或模块,即使本文中没有以这种方式具体描述。
尽管已经结合一些示例的描述确定了特定优点,但是各种其他示例可以包括一些、没有或所有所列举的优点。根据本公开,技术或其他方面的其他优点对于本领域的普通技术人员而言将变得很清楚。此外,尽管本文中已经公开了特定示例,但是本公开的各方面可以使用任何数目的技术来实现,无论当前是否已知,并且因此,本公开不限于本公开中具体描述和/或示出的示例。
在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上和/或在计算机可读介质上传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,该计算机可读存储介质对应于有形介质,诸如数据存储介质、或通信介质,包括有助于将计算机程序从一个地方转移到另一地方(例如,根据通信协议)的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂态有形计算机可读存储介质,或者(2)通信介质,诸如信号或载波。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM或光盘存储、磁盘存储或其他磁性存储设备、闪存、或者可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机访问的任何其他介质。而且,任何连接都可以适当地称为计算机可读介质。例如,如果使用有线(例如,同轴电缆、光纤电缆、双绞线)或无线(例如,红外、无线电和微波)连接从网站、服务器或其他远程源传输指令,则媒体的定义中包括有线或无线连接。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂态介质,而是涉及非暂态有形存储介质。
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路系统。因此,本文中使用的的术语“处理器”或“处理电路系统”可以分别指代任何前述结构或适合于实现所描述的技术的任何其他结构。另外,在一些示例中,所描述的功能可以在专用硬件和/或软件模块内提供。同样,该技术可以完全在一个或多个电路或逻辑元素中实现。
本公开的技术可以在各种各样的设备或装置中实现,包括无线手机、移动或非移动计算设备、可穿戴或不可穿戴计算设备、集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述了各种组件,模块或单元以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同硬件单元来实现。而是,如上所述,各种单元可以组合在硬件单元中,或者由互操作的硬件单元的集合来提供,包括与合适的软件和/或固件结合的如上所述的一个或多个处理器。

Claims (20)

1.一种方法,包括:
将控制器配置为与网络中的多个元素中的每个元素通信;
由所述控制器基于对输出到所述网络中的所述多个元素的至少子集的操作命令的响应来确定所述网络的初始操作状态;
由所述控制器将所述网络的所述初始操作状态转换为基于意图的配置;以及
由所述控制器将所述基于意图的配置推送到所述网络以便以与所述基于意图的配置一致的方式重新配置所述网络中的所述多个元素中的每个元素。
2.根据权利要求1所述的方法,还包括:
由所述控制器在推送所述基于意图的配置之后确定所述网络的已更新的操作状态;以及
由所述控制器将所述网络的所述初始操作状态与所述网络的所述已更新的操作状态进行比较。
3.根据权利要求1至2中任一项所述的方法,其中转换所述初始操作状态包括:
将对从所述多个元素接收的所述操作命令的所述响应转换为表示所述网络的所述初始操作状态的多个基于意图的网络对象;以及
将所述网络对象存储在数据存储库中。
4.根据权利要求1至2中任一项所述的方法,其中推送所述基于意图的配置包括:
基于所存储的网络对象确定用于配置所述网络的命令;以及
通过所述网络输出所述命令以配置所述网络中的所述元素中的每个元素。
5.根据权利要求1所述的方法,其中将所述基于意图的配置推送到所述网络包括:
由所述计算系统呈现用户界面,所述用户界面包括关于针对所述网络的提议的基于意图的配置的信息。
6.根据权利要求5所述的方法,其中将所述基于意图的配置推送到所述网络还包括:
响应于确认针对所述网络的所述提议的基于意图的配置的输入的指示,基于所述提议的基于意图的配置来重新配置所述网络中的所述多个元素中的每个元素。
7.根据权利要求1至6中任一项所述的方法,其中转换所述初始操作状态包括:
对所述初始操作状态进行逆向工程以确定表示所述网络的所述初始操作状态的多个基于意图的网络对象;以及
将所述基于意图的网络对象存储在数据存储库中。
8.根据权利要求2所述的方法,其中将所述网络的所述初始操作状态与所述网络的所述已更新的操作状态进行比较包括:
确定所述网络的所述已更新的操作状态与所述网络的所述初始操作状态一致。
9.根据权利要求2所述的方法,其中将所述网络的所述初始操作状态与所述网络的所述已更新的操作状态进行比较包括:
确定所述网络的所述已更新的操作状态与所述网络的所述初始操作状态不一致;以及
输出用户界面,所述用户界面呈现关于所述网络的所述初始操作状态与所述网络的所述已更新的操作状态之间的差异的信息。
10.根据权利要求1至6中任一项所述的方法,其中重新配置所述网络中的所述多个元素中的每个元素包括:
重写所述网络中的所述多个元素中的至少一些元素的设备级配置。
11.根据权利要求1至6中任一项所述的方法,其中所述控制器系统是结构管理器,其中所述网络中的所述元素是无管理元素,并且其中将所述控制器配置为与所述网络中的所述多个元素中的每个元素通信包括:
在所述网络中部署所述结构管理器;以及
使得所述结构管理器能够与所述网络中的所述多个元素通信。
12.根据权利要求11所述的方法,其中将所述基于意图的配置推送到所述网络包括:
将所述多个无管理元素中的每个无管理元素转换为可管理元素。
13.根据权利要求1至6中任一项所述的方法,其中输出操作命令包括:
输出引出关于与所述网络相关联的底层配置的信息的操作命令。
14.根据权利要求13所述的方法,其中所述关于底层配置的所述信息包括以下至少一项:
与所述网络相关联的底层外部边界网关协议BGP信息、所述网络内的链路层发现协议邻居、所述网络内的接口、BGP邻居、链路层发现协议邻居、BGP组细节和双向转发检测信息。
15.根据权利要求1至6中任一项所述的方法,其中输出操作命令包括:
输出引出关于与所述网络相关联的覆盖配置的信息的操作命令。
16.根据权利要求15所述的方法,其中所述关于覆盖配置的所述信息包括以下至少之一:
以太网虚拟专用网EVPN信息、虚拟可扩展局域网VxLAN信息、虚拟LAN信息、所述网络内的接口、EVPN实例、路由实例、边界网关协议BGP邻居、关于双向转发检测BFD会话的信息和防火墙信息。
17.一种具有存储系统和处理电路系统的计算系统,其中所述处理电路系统能够访问所述存储系统并且被配置为:
启用与所述网络中的多个元素中的每个元素的通信;
确定所述网络的初始操作状态;
将所述网络的所述初始操作状态转换为基于意图的配置;
将所述基于意图的配置推送到所述网络以便以与所述基于意图的配置一致的方式重新配置所述网络中的所述多个元素中的每个元素;
在推送所述基于意图的配置之后,确定所述网络的已更新的操作状态;以及
将所述网络的所述初始操作状态与所述网络的所述已更新的操作状态进行比较。
18.根据权利要求17所述的计算系统,其中为了确定所述网络的所述初始操作状态,所述处理电路系统还被配置为:
向所述网络中的所述多个元素的至少子集输出操作命令;以及
基于对从所述多个元素接收的所述操作命令的响应来确定所述网络的所述初始操作状态。
19.根据权利要求17至18中任一项所述的计算系统,其中为了将所述网络的所述初始操作状态与所述网络的所述已更新的操作状态进行比较,所述处理电路系统还被配置为:
确定所述网络的所述已更新的操作状态与所述网络的所述初始操作状态不一致;以及
输出用户界面,所述用户界面呈现关于所述网络的所述初始操作状态与所述网络的所述已更新的操作状态之间的差异的信息。
20.一种非暂态计算机可读介质,包括指令,所述指令在被执行时将计算系统的处理电路系统配置为:
启用与网络中的多个元素中的每个元素的通信;
确定所述网络的初始操作状态;
将所述网络的所述初始操作状态转换为基于意图的配置;
将所述基于意图的配置推送到所述网络以便以与所述基于意图的配置一致的方式重新配置所述网络中的所述多个元素中的每个元素;
在推送所述基于意图的配置之后,确定所述网络的已更新的操作状态;以及
将所述网络的所述初始操作状态与所述网络的所述已更新的操作状态进行比较。
CN202110615124.0A 2021-03-11 2021-06-02 在现有数据中心结构中部署网络管理控制器的方法和系统 Active CN115134193B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/249,760 US11431567B1 (en) 2021-03-11 2021-03-11 Deploying a network management controller in an existing data center fabric
US17/249,760 2021-03-11

Publications (2)

Publication Number Publication Date
CN115134193A true CN115134193A (zh) 2022-09-30
CN115134193B CN115134193B (zh) 2024-04-16

Family

ID=76269667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110615124.0A Active CN115134193B (zh) 2021-03-11 2021-06-02 在现有数据中心结构中部署网络管理控制器的方法和系统

Country Status (3)

Country Link
US (3) US11431567B1 (zh)
EP (1) EP4057572A1 (zh)
CN (1) CN115134193B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11431567B1 (en) * 2021-03-11 2022-08-30 Juniper Networks, Inc. Deploying a network management controller in an existing data center fabric
US11671282B2 (en) * 2021-05-24 2023-06-06 Hewlett Packard Enterprise Development Lp Method and system for dynamically activating virtual networks in a distributed tunnel fabric

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180139595A1 (en) * 2015-05-28 2018-05-17 Gemalto M2M Gmbh Method for operating a wireless communication device
CN111327452A (zh) * 2018-12-17 2020-06-23 瞻博网络公司 使用消息总线的网络设备配置
US10742501B1 (en) * 2018-12-21 2020-08-11 Juniper Networks, Inc. Automation of maintenance mode operations for network devices
US20200280504A1 (en) * 2017-11-30 2020-09-03 Northeastern University Distributed Wireless Network Operating System

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389464B1 (en) * 1997-06-27 2002-05-14 Cornet Technology, Inc. Device management system for managing standards-compliant and non-compliant network elements using standard management protocols and a universal site server which is configurable from remote locations via internet browser technology
US7995498B2 (en) * 2006-02-13 2011-08-09 Cisco Technology, Inc. Method and system for providing configuration of network elements through hierarchical inheritance
US7710900B2 (en) * 2006-09-05 2010-05-04 Cisco Technology, Inc. Method and system for providing network management based on defining and applying network administrative intents
US10530697B2 (en) * 2015-02-17 2020-01-07 Futurewei Technologies, Inc. Intent based network configuration
US10103902B1 (en) * 2015-03-05 2018-10-16 Juniper Networks, Inc. Auto-discovery of replication node and remote VTEPs in VXLANs
US10985997B2 (en) * 2016-05-06 2021-04-20 Enterpriseweb Llc Systems and methods for domain-driven design and execution of metamodels
US10673736B2 (en) * 2017-04-25 2020-06-02 Cisco Technology, Inc. Traffic reduction in data center fabrics
US10691337B2 (en) * 2018-10-18 2020-06-23 Netapp, Inc. Artificial intelligence and machine learning systems and methods for a storage system
US10924392B2 (en) * 2019-03-15 2021-02-16 Juniper Networks, Inc. Planning and managing network probes using centralized controller
US10992543B1 (en) * 2019-03-21 2021-04-27 Apstra, Inc. Automatically generating an intent-based network model of an existing computer network
US11113120B1 (en) * 2019-05-08 2021-09-07 Amazon Technologies, Inc. Intent-based auto scaling of virtual computing resources
US11025489B2 (en) * 2019-05-23 2021-06-01 Cisco Technology, Inc. Automated discovery of manual configuration changes
EP3754905B1 (en) * 2019-06-18 2024-04-10 Juniper Networks, Inc. Programmable configlets through opaque intents in graph based intent controllers
US10996938B2 (en) * 2019-07-15 2021-05-04 Juniper Networks, Inc. Automated selection of software images for network devices
US11438238B2 (en) * 2020-04-06 2022-09-06 Vmware, Inc. User interface for accessing multi-site logical network
US11431567B1 (en) * 2021-03-11 2022-08-30 Juniper Networks, Inc. Deploying a network management controller in an existing data center fabric

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180139595A1 (en) * 2015-05-28 2018-05-17 Gemalto M2M Gmbh Method for operating a wireless communication device
US20200280504A1 (en) * 2017-11-30 2020-09-03 Northeastern University Distributed Wireless Network Operating System
CN111327452A (zh) * 2018-12-17 2020-06-23 瞻博网络公司 使用消息总线的网络设备配置
US10742501B1 (en) * 2018-12-21 2020-08-11 Juniper Networks, Inc. Automation of maintenance mode operations for network devices

Also Published As

Publication number Publication date
US20220294693A1 (en) 2022-09-15
CN115134193B (zh) 2024-04-16
US11431567B1 (en) 2022-08-30
US20230344709A1 (en) 2023-10-26
US11711266B2 (en) 2023-07-25
EP4057572A1 (en) 2022-09-14
US20220368591A1 (en) 2022-11-17

Similar Documents

Publication Publication Date Title
EP3620920B1 (en) Dynamic intent assurance and programmability in computer networks
US9094299B1 (en) Auto-generation of platform-independent interface and operational scripts for configuring network devices
US11582091B2 (en) Provisioning network devices using a vendor-neutral platform
EP1468371B1 (en) Network configuration management
US8111632B2 (en) Method for logical deployment, undeployment and monitoring of a target IP network
CN112152835B (zh) 管理设备配置图式的多个语义版本
US20230344709A1 (en) Reconfiguring an existing data center fabric
JP6347813B2 (ja) ネットワークスイッチ、デバイス管理システム、およびそのデバイス管理方法
US11489724B1 (en) Processing instructions to configure a network device
US11805011B2 (en) Bulk discovery of devices behind a network address translation device
EP3952212B1 (en) Using a programmable resource dependency mathematical model to perform root cause analysis
US11811601B2 (en) Predictive pipeline analytics for a network management system
US11792069B2 (en) Processing instructions to configure a network device
Cisco Release Notes for the Catalyst 2950 Switch Cisco IOS Release 12.1(9)EA1 (Revised June 17, 2002)
Cisco Managing Clusters of Switches
Cisco Release Notes for the Catalyst 2950 Switch Cisco IOS Release 12.1(9)EA1 (Revised May 20, 2002)
Cisco Release Notes for the Catalyst 2950 Switch Cisco IOS Release 12.1(9)EA1d
Lemay et al. OpenDaylight Cookbook
EP4113938A1 (en) Topology compiler for network management system
Patel Model Driven Approach to Configuration And Telemetry: YANG
Singh Deployment of SDN Controller and configuring Cisco devices using NETCONF
CN113381875A (zh) 支持来自异构数据源的客户端数据模型的服务器
Åberg Automated Deployment of Customer-Premises Equipment

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