CN120345226A - 用于网络拓扑中bgp前缀的遥测监控的方法和设备 - Google Patents
用于网络拓扑中bgp前缀的遥测监控的方法和设备Info
- Publication number
- CN120345226A CN120345226A CN202380087233.7A CN202380087233A CN120345226A CN 120345226 A CN120345226 A CN 120345226A CN 202380087233 A CN202380087233 A CN 202380087233A CN 120345226 A CN120345226 A CN 120345226A
- Authority
- CN
- China
- Prior art keywords
- route
- path
- routing
- network
- memory
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/12—Arrangements for remote connection or disconnection of substations or of equipment thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
- H04L45/3065—Route determination based on the nature of the carried application for real time traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
对网络拓扑中的BGP前缀的遥测监控。一种系统包括多个输入主题流和多个处理器,其中多个处理器中的每一个专用于多个输入主题流中的一个或多个。该系统包括用于存储数据的多个流存储器,其中多个流存储器中的每一个专用于多个输入主题流中的一个或多个。该系统包括与每个流存储器通信的路由处理器,其中路由处理器确定网络拓扑的路由是否与存储在多个流存储器中的至少一个上的现有路由相对应。
Description
技术领域
本公开涉及计算网络,并且特别涉及网络拓扑中的前缀的遥测监控。
背景技术
网络计算是一种多台计算机或节点通过网络协同工作并相互通信的方式。网络包括广域网(WAN)和局域网(LAN)。广域网和局域网都允许计算机之间互连。局域网通常用于规模较小、更本地化的网络,其可以用于家庭、企业、学校等场所。广域网覆盖更大的区域,例如城市,甚至可以允许不同国家的计算机连接。局域网通常比广域网速度更快并且更安全,但广域网能够实现更广泛的连接。局域网通常由其部署的组织内部拥有、控制和管理,而广域网通常需要两个或多个构成局域网通过公共互联网或者通过电信提供方建立的私人连接进行连接。
局域网和广域网使计算机能够相互连接并传输数据和其它信息。对于局域网和广域网,必须有一种方法来确定数据从一个计算实例传递到另一计算实例的路径。这被称为路由。路由是为网络中或者多个网络之间或跨网络的流量选择路径的过程。路由过程通常基于路由表来指导转发,路由表维护到各个网络目的地的路由记录。路由表可以由通过观察网络流量来学习的管理员指定,或者在路由协议的帮助下构建。
小型网络可以使用手动配置的路由表来确定信息应如何从一台计算机传输到另一计算机。路由表可以包括“最佳路径”的列表,其指示起始计算机和目的地计算机之间最有效或最理想的路径。包括连接到公共互联网的网络的大型网络可能依赖于复杂的拓扑结构,这些拓扑结构可能快速变化使得手动构建路由表并不可行。动态路由尝试通过基于路由协议承载的信息自主地构建路由表来解决此问题。动态路由使网络能够近乎自主地避免网络故障和阻塞。目前有多种路由协议提供用于确定联网装置之间最佳路径的规则或指令。动态路由协议和算法的示例包括路由信息协议(RIP)、开放最短路径优先(OSPF)、增强型内部网关路由协议(EIGRP)和边界网关协议(BGP)。
在一些实例中,路径选择涉及将路由度量应用于多条路由,以选择或预测最佳路由。大多数路由算法一次只使用一条网络路径。多路径路由技术支持使用多条备选路径。在计算机网络中,路由算法可以用于预测两个计算实例之间的最佳路径。路由算法可以取决于多种因素,诸如带宽、网络延迟、跳数、路径成本、负载、最大传输单元、可靠性和通信成本。路由表存储最佳路径列表。拓扑数据库可以存储最佳路径列表,并且可以进一步存储其它信息。
在一些网络中,由于没有单个实体负责选择最佳路径,路由变得复杂。相反,多个实体参与选择最佳路径,甚至单个路径的一部分。在互联网计算机网络的背景下,互联网被划分为自治系统(AS),例如互联网服务提供方(ISP)。每个自治系统控制涉及其网络的路由。自治系统级路径基于边界网关协议(BGP)进行选择。每个自治系统级路径包括一系列自治系统,信息流的数据包通过这些自治系统从一个计算实例传输到另一计算实例。每个自治系统可以具有由邻近自治系统提供的多条路径以供选择。
在许多网络路由实施方案中,需要检测网络中的路由事件,包括路由的添加、撤销或修改。在一些情况下,实时跟踪网络拓扑中的一些路由非常重要。
鉴于上述情况,本文公开了基于遥测数据自主跟踪网络拓扑中前缀的系统、方法和装置。
附图说明
本公开的非限制性和非穷举性实施方案将参照以下附图进行描述,其中,除非另有说明,否则在各个视图中,相同的附图标记表示相同的部件。本公开的优点将通过以下描述和附图被更好地理解:
图1是通过互联网通信的联网装置的示例系统的示意图;
图2是基于遥测数据自主跟踪网络拓扑中的前缀的系统的示意图;
图3A是基于遥测数据自主跟踪网络拓扑中的前缀的流程的示意图;
图3B是包括适用于图4至图7所示步骤的路由密钥信息的密钥;
图4是用于识别网络拓扑中的路由状态的流程的示意图;
图5是用于识别网络拓扑中的路径状态的流程的示意图;
图6是用于跟踪网络拓扑中的路径的流程的示意图;
图7是用于跟踪前缀并同步与网络拓扑相关联的前缀跟踪数据存储的流程的示意图;
图8是基于遥测数据自主跟踪网络拓扑中的前缀的方法的示意流程图;并且
图9是示出示例计算装置的组件的示意图。
具体实施方式
本文公开了用于自主检测网络拓扑中的路由事件的系统、方法和装置。本文所述的系统、方法和装置可以具体实现在根据边界网关协议(BGP)路由流量的网络中。如本文所述,发言方(speaker)可以经由BGP与网络可视性和分析平台对等连接,以跟踪网络中的路由,或者将遥测数据直接发送到网络可视性和分析平台。BGP前缀通过匹配诸如社区、扩展社区、大型社区、前缀、邻居地址等的路由属性进行跟踪。
本文描述的BGP前缀跟踪系统用于跟踪特定事件,包括路由/前缀事件和网络范围事件。路由/前缀事件包括例如新增的BGP路由、现有BGP路由的更新以及现有BGP路由的撤销或删除。这包括通过跟踪诸如以下的BGP属性来检测BGP最佳路径的变化:自治系统路径(AS路径)、多出口鉴别器(MED)、本地优先级(LocalPref)、权重、源、下一跳、本地优先级、原子聚合、聚合器、社区、发起方标识符、集群列表、DPA、广告商、多协议可达NLRI、多协议不可达NLRI、扩展社区等。网络范围事件包括例如,检测网络中的前缀的可达性即某个前缀是否不再在网络内所有节点之间可达、通过跟踪最佳路径变更或路由抖动来检测路由不稳定性、路由降级和劫持、通过跟踪下一跳信息来检测路径成本变化等等。本文描述的BGP前缀跟踪器提供以下选项,即通过指定属于跟踪网络的一部分的邻居路由器标识符的列表来指定网络规模,以在前缀级别启用跟踪。此外,本文描述的BGP前缀跟踪器提供以下选项,即通过指定属于网络内待跟踪节点的一部分的邻居路由器标识符的列表,在每个前缀级别筛选待跟踪的节点
前缀跟踪器是实现数据流的实时应用程序。具体地,数据流可以在KafkaStreams等实时流传输框架中实现,其中输入和输出数据存储在ApacheKafka®集群中。所有前缀的实时数据通过本地遥测馈送的方式从BGP发言方提供给前缀跟踪器。前缀跟踪器跟踪网络拓扑中所有BGP发言方的状态,包括BGP对等体、BGP前缀和路径。前缀跟踪器使用状态存储器来存储状态,状态存储器可以包括数据流提供的内存哈希映射。状态数据存储器可以由流处理应用程序实现,以存储和查询数据。数据流为本地状态存储提供容错和自动恢复功能。前缀跟踪器应用程序中的每个流任务都可以嵌入多个状态存储器,以跟踪网络范围状态。状态存储器可以包括例如装置存储器、配置存储器、对等体存储器、路由存储器和前缀跟踪器存储器。通过一个或多个数据流接收的相关输入源数据,使用各自的源处理器存储在不同的状态存储器中。
以下内容作为本文公开的进一步背景介绍。在计算机网络环境中,可以使用诸如交换机或路由器的网络装置将信息从一个目的地传输到另一目的地。在实施例中,可以在诸如个人家中的计算机的第一位置处生成数据包和消息。数据包和消息可以由个人与网络浏览器交互并向可通过互联网访问的远程服务器请求信息或提供信息而生成。在示例中,数据包和消息可以是个人在互联网的网页上输入到表单中的信息。数据包和消息可能需要发送到地理位置上远离用户计算机的远程服务器。个人家中的路由器和远程服务器之间可能没有直接通信。因此,数据包和消息必须“跳跃”到不同的网络装置,直到到达远程服务器的目的地。个人家中的路由器必须确定路由,以便数据包和消息能够通过连接到互联网的多个不同装置进行传输,直到数据包和消息到达远程服务器的目的地。
确定从第一位置到目的地的最佳路径并将数据包和消息转发到下一目的地是诸如交换机或路由器的网络装置执行的重要功能。网络中的网络装置之间的连接称为网络拓扑。网络拓扑是通信网络中诸如链路和节点的元素的排列方式。网络拓扑可以包括网络中节点之间的有线链路、无线链路或者有线和无线链路的组合。有线链路的一些示例包括同轴电缆、电话线、电力线、带状电缆、光纤等。无线链路的一些示例包括卫星、蜂窝信号、无线电信号、自由空间光通信等。网络拓扑包括网络中所有节点(例如,计算机、路由器、交换机和其它装置)的指示以及节点之间的链路的指示。本文公开了用于改进网络拓扑和网络路由的系统、方法和装置。
为了加深对本公开的理解,将对众多网络计算装置和协议进行一些解释。
BGP实例是用于在网络中路由信息的装置。BGP实例可以采用路由反射器装置的形式。BGP实例可以在交换机、路由器或交换机上的BGP发言方上运行。在较高层级,BGP实例将其学习到的针对某个前缀的所有路径发送给最佳路径控制器。最佳路径控制器从这些路径之中选出一组最佳路径作为响应。最佳路径控制器可以修改任意路径的下一跳(next-hop)和属性。一旦接收到最佳路径,BGP实例会更新本地路由信息库(RIB),并将最佳路径通告给其邻居。
交换机(可以替代地被称为交换集线器、桥接集线器或MAC桥)会创建网络。大多数内部网络使用交换机连接建筑物或园区内的计算机、打印机、电话、摄像机、照明和服务器。交换机充当控制器,其使联网装置能够高效地相互通信。交换机使用数据包交换技术连接计算机网络上的装置,以接收、处理数据并转发到目的地装置。网络交换机是一种多端口网桥,其使用硬件地址在开放系统互连(OSI)模型的数据链路层(第2层)处理和转发数据。一些交换机还可以通过附加路由功能在网络层(第3层)处理数据。这类交换机通常被称为三层交换机或多层交换机。
路由器连接网络。交换机和路由器执行类似的功能,但在网络上各自执行不同功能。路由器是一种在计算机网络之间转发数据包的网络装置。路由器在互联网上执行流量引导功能。通过互联网发送的诸如网页、电子邮件或其它形式的信息的数据以数据包的形式发送。数据包通常通过构成互联网络(例如,互联网)的网络从一个路由器转发到另一路由器,直到到达其目的地节点。路由器连接到来自不同网络的两条或多条数据线路。当数据包从其中一条线路进入时,路由器读取数据包中的网络地址信息以确定最终目的地。然后,使用路由器的路由表或路由策略中的信息,路由器将数据包定向到其旅程中的下一网络。BGP发言方是启用边界网关协议(BGP)的路由器。
客户边缘路由器(CE路由器)是位于客户场所的路由器,其提供客户局域网(LAN)和提供方核心网络之间的接口。CE路由器、提供方路由器和提供方边缘路由器都是多协议标签交换架构的组件。提供方路由器位于提供方或运营方网络的核心。提供方边缘路由器位于网络边缘。客户边缘路由器连接到提供方边缘路由器,并且提供方边缘路由器又通过提供方路由器连接到其它提供方边缘路由器。
路由表或路由信息库(RIB)是存储在路由器或联网计算机中的数据表,其列出通往特定网络目的地的路由。在一些情况下,路由表包括路由的度量,例如距离、权重等。路由表包括存储路由表的路由器周围网络的拓扑信息。路由表的构建是路由协议的主要目标。静态路由是通过非自主方式在路由表中生成的条目,并且是固定的,而不是一些网络拓扑发现过程的结果。路由表至少包括三个信息字段,包括网络ID、路由度量和下一跳。网络ID是目的地子网。该度量是发送数据包的路径的路由度量。路由将沿着最低度量的网关的方向进行。下一跳是数据包在到达目的地途中待发送到的下一站的地址。路由表可以进一步包括与路由相关联的服务质量、与路由相关联的过滤条件列表的链路、以太网卡的接口等等。
为了说明路由表的概念,路由表可以类比为使用地图来递送包裹。路由表就像使用地图将包裹递送到最终目的地一样。当节点需要将数据发送到网络上的另一节点时,该节点必须首先知道将数据发送到哪里。如果节点无法直接连接到目标节点,则该节点必须沿着正确的路由将数据发送到其它节点,直至到达目标节点。大多数节点不会尝试确定哪些路由可能有效。相反,节点会将IP数据包发送到局域网中的网关,然后网关决定如何将数据路由到正确的目的地。每个网关都需要跟踪各种数据包的递送路径,并且为此使用路由表。路由表是数据库,其像地图一样跟踪路径,并且使用这些路径来确定转发流量的路径。网关还可以与请求信息的其它节点共享其路由表的内容。
对于逐跳(hop-by-hop)路由,每个路由表都会列出所有可达目的地,以及到达该目的地路径上的下一装置的地址,即下一跳。假设路由表是一致的,那么将数据包中继到其目的地下一跳的算法足以将数据递送到网络中的任何地方。逐跳是IP互联网络层和开放系统互连(OSI)模型的特性。
开放系统互连(OSI)模型是概念模型,其描述并标准化计算系统的通信功能,而不考虑其底层的内部结构和技术。OSI模型的目标在于实现具有标准通信协议的各种通信系统的互操作性。OSI模型将通信系统划分为多个抽象层。每个层服务其上一层,并由其下一层提供服务。例如,提供跨网络无差错通信的层级为其上层应用程序提供所需的路径,同时调用下一层来发送和接收构成该路径内容的数据包。同一层的两个实例被可视化为通过该层中的水平连接进行连接。通信协议使一台主机中的实体能够与另一台主机同一层中的相应实体进行交互。例如OSI模型的服务定义抽象地描述(N-1)层向(N)层提供的功能,其中N是本地主机中运行的协议层之一。
路由控制是一种网络管理,其旨在改善互联网连接,并降低带宽成本和降低整体互联网络运营。一些路由控制服务包括一套基于硬件和软件的产品和服务,其协同工作,以最低成本提升互联网的整体性能,并优化可用互联网带宽的使用。在网络或自治系统从多个提供方获取互联网带宽的场景下,路由控制可以成功。路由控制可以帮助选择最佳的数据传输路径。
一些网络通信系统是拥有数千个处理节点的大型企业级网络。数千个处理节点共享来自多个互联网服务提供方(ISP)的带宽,并可处理大量互联网流量。此类系统可能极其复杂,并且必须进行合理配置才能获得可接受的互联网性能。如果系统未正确配置以实现最佳数据传输,互联网访问速度可能降低,并且系统可能出现高带宽消耗和高流量。为了解决这个问题,可以实施一组服务来消除或减少这些问题。这组服务可以称为路由控制。
路由控制机制的实施例由硬件和软件组成。路由控制机制通过其与互联网服务提供方(ISP)的连接监控所有传出流量。路由控制机制旨在选择高效传输数据的最佳路径。路由控制机制可以计算所有ISP的性能和效率,并仅选择在适用区域内表现最佳的ISP。路由控制装置可以根据与成本、性能和带宽相关的定义参数进行配置。
一种用于确定数据传输最佳路径的已知算法称为边界网关协议(BGP)。BGP是一种为互联网上的自治系统提供路由信息的路径向量协议。当BGP配置不正确时,可能导致严重的可用性和安全性问题。进一步地,修改BGP路由信息可能允许攻击方重定向大量流量,从而使流量在到达预定目的地之前先传输到特定路由器。可以实施BGP最佳路径算法来确定在互联网协议(IP)路由表中安装用于流量转发的最佳路径。BGP路由器可以被配置为接收到同一目的地的多条路径。
BGP最佳路径算法将第一有效路径指定为当前最佳路径。BGP最佳路径算法会将最佳路径与列表中的下一路径进行比较,直到BGP到达有效路径列表的末尾。该列表提供用于确定最佳路径的规则。例如,该列表可以包括以下指示:优先选择权重最高的路径、优先选择没有本地优先级的路径、优先选择通过网络或聚合BGP本地发起的路径、优先选择最短路径、优先选择多出口标识符最低的路径等等。BGP最佳路径选择过程可以自定义。
在BGP路由的背景下,每个路由域称为自治系统(AS)。BGP协助选择通过互联网连接两个路由域的路径。BGP通常选择遍历最少自治系统的路由,其被称为最短AS路径。在实施例中,一旦启用BGP,路由器将从可能是ISP的BGP邻居处获取互联网路由的列表。然后,BGP仔细检查该列表,以查找具有最短AS路径的路由。这些路由可能被录入路由器的路由表。通常,路由器会选择到某个AS的最短路径。BGP使用路径属性来确定如何将流量路由到特定网络。
等价多路径(ECMP)路由是一种路由策略,在该路由策略中,下一跳数据包可以通过多条“最佳路径”转发到单个目的地。基于路由度量计算,多条最佳路径是等效的。因为路由是仅限于单个路由器的单跳决策,所以多条路径路由可以与许多路由协议结合使用。多路径路由可以通过在多条路径上平衡流量来显著增加带宽。然而,在实际部署该策略时,ECMP路由存在许多已知问题。本文公开了用于改进ECMP路由的系统、方法和装置。
在电信领域可以部署克洛斯网络(Clos network)。克洛斯网络是一种多级电路交换网络,其是理想化的多级交换系统。克洛斯网络包括三级:输入级、中间级和输出级。每个级由多个交叉开关组成。每个信元进入输入交叉开关,该输入交叉开关可以通过任何可用的中间级交叉开关路由到相关的输出交叉开关。如果连接输入交换机和中间级交换机的链路以及连接中间级交换机和出口交换机的链路均空闲,则中间级交叉开关可用于特定的新呼叫。
可以部署叶脊网络拓扑来连接计算机网络中的节点。叶脊拓扑包括两层,包括叶层和脊层。叶层由连接到例如服务器、防火墙、负载均衡器和边缘路由器的装置的接入交换机组成。脊层由执行路由的交换机组成,并形成网络的主干,其中每个叶交换机都与每个脊交换机互连。在叶脊拓扑结构中,所有装置之间的链路数量相同,并且传输信息的延迟或时延量可预测且一致。
虚拟局域网(VLAN)是在数据链路层在计算机网络中划分和隔离的广播域。VLAN可以将标签应用于网络帧,并且在网络系统中处理这些标签,以创建网络流量的外观和功能,使其物理上位于单个网络上,但行为却像是被拆分到不同的网络之间。VLAN可以使网络应用程序保持独立,即使连接到同一物理网络,也无需部署多套布线和网络装置。
交换虚拟接口(SVI)是用于发送托管交换机的未标记VLAN数据包的虚拟接口和端口。传统地,交换机仅向同一广播域(单个VLAN)内的主机发送流量,而路由器则处理不同广播域(不同VLAN)之间的流量。在这种实施方案中,不同广播域中的网络装置如果没有路由器就无法通信。当实施SVI时,交换机可以使用虚拟三层接口将流量路由到其它三层接口。这样就无需使用物理路由器。VLAN通过将LAN划分为更小的网段并将本地流量限制在VLAN内来减轻网络负载。然而,由于每个VLAN都有自身的域,因此需要VLAN能够将数据传递到其它VLAN而无需经过路由器的机制。SVI就是这种机制。SVI通常位于交换机(例如,三层和二层交换机)上。当SVI实现时,交换机可以识别目的地位于发送方所属VLAN本地的数据包,并可以交换发往目的地属于不同VLAN的数据包。在实施例中,VLAN和SVI之间存在一对一映射。在这种实施例中,只有单个SVI可以映射到VLAN。
为了促进对本公开的原理的理解,现在将参照附图中所示的实施例,并使用特定语言来描述这些实施例。然而,应当理解的是,这并非旨在限制本公开的范围。对于本领域技术人员和本公开的所有者来说,对本文所示的发明特征的任何改变和进一步修改以及本文所示的本公开的原理的任何额外应用,通常是可以想到的,均应被视为在所要求保护的公开内容的范围内。
在公开和描述用于跟踪网络计算环境中对象生命周期的结构、系统和方法之前,应理解的是,本公开不限于本文公开的特定结构、配置、工艺步骤和材料,因为这些结构、配置、工艺步骤和材料可能略有不同。还应理解的是,本文中使用的术语仅用于描述特定实施例,并非旨在限制本发明,因为本公开的范围仅受所附权利要求书及其等效方案的限制。
在描述和声明本公开的主题时,将根据下文所述的定义使用以下术语。
必须注意的是,除非上下文另有明确规定,否则在本说明书和所附权利要求书中使用的单数形式“一”、“单”和“该”也包括复数指代。
本文中使用的术语“包括”、“包含”、“含有”、“特征在于”及其语法等同词是包容性或开放式术语,不排除未列举的额外元件或方法步骤。
本文中使用的短语“由……组成”及其语法等同词排除权利要求中未指定的任何元件或步骤。
本文中使用的短语“基本上由……组成”及其语法等同词将权利要求的范围限制于指定的材料或步骤,以及那些不会对所要求保护的公开内容的基本和新颖特性产生实质性影响的材料或步骤。
现在参照附图,图1示出用于将装置连接到互联网的系统100的示意图。系统100包括多个通过交换机106连接的局域网160。每个局域网160都可以通过路由器162通过公共互联网相互连接。在图1所示的示例系统100中,存在两个局域网160。然而,需要注意的是,可能存在通过公共互联网相互连接的多个局域网160。每个局域网160包括多个通过交换机106相互连接的计算装置108。多个计算装置108可以包括例如台式计算机、笔记本计算机、打印机、服务器等。局域网160可以通过路由器162的方式通过公共互联网与其它网络通信。路由器162将多个网络彼此连接。路由器162连接到互联网服务提供方102。互联网服务提供方102连接到一个或多个网络服务提供方104。如图1所示,网络服务提供方104与其它本地网络服务提供方104通信。
交换机106使用数据包交换技术连接局域网160中的装置,以接收、处理数据并将其转发到目的地装置。交换机106可以被配置为例如从计算机接收目的地发往打印机的数据。交换机106可以接收数据、处理数据并将数据发送到打印机。交换机106可以是第1层交换机、第2层交换机、第3层交换机、第4层交换机、第7层交换机等等。第一层网络装置传输数据,但不管理任何经过第一层网络装置的流量。第一层网络装置的示例是以太网集线器。第二层网络装置是使用硬件地址在数据链路层(第二层)处理和转发数据多端口装置。第三层交换机可以执行由路由器通常执行的部分或全部功能。然而,一些网络交换机仅限于支持单一类型的物理网络,通常是以太网,而路由器可以通过不同的端口支持各种类型的物理网络。
路由器162是一种在计算机网络之间转发数据包的网络装置。在图1所示的示例系统100中,路由器162在局域网160之间转发数据包。然而,路由器162不一定用于在局域网160之间转发数据包,并且可以用于在广域网之间转发数据包等等。路由器162在互联网上执行流量定向功能。路由器162可以具有用于各种物理层连接的接口,例如铜缆、光纤或无线传输。路由器162可以支持不同的网络层传输标准。每个网络接口用于将数据包从一个传输系统转发到另一传输系统。路由器162还可以用于连接被称为子网的计算机装置的两个或多个逻辑组,每个具有不同的网络前缀。路由器162可以在企业内部、企业与互联网之间或互联网服务提供方网络之间提供连接,如图1所示。一些路由器162被配置为连接不同的互联网服务提供方,或者可以用于大型企业网络。小型路由器162通常为家庭和办公网络提供到互联网的连接。图1所示的路由器162可以代表任何适用于网络传输的路由器,例如边缘路由器、用户边缘路由器、提供方间边界路由器、内核路由器、互联网主干网、端口转发、语音/数据/传真/视频处理路由器等等。
互联网服务提供方(ISP)102是提供访问、使用或参与互联网服务的组织。ISP102可以采用多种组织形式,例如商业、社区所有、非营利或私有。ISP102通常提供的互联网服务包括互联网接入、互联网传输、域名注册、网站托管、Usenet服务和主机托管。图1所示的ISP102可以表示任何合适的ISP,例如托管ISP、转接ISP、虚拟ISP、免费ISP、无线ISP等等。
网络服务提供方(NSP)104是通过向互联网服务提供方提供直接的互联网主干网接入来提供带宽或网络接入的组织。网络服务提供方可以提供对网络接入点(NAP)的接入。网络服务提供方104有时被称为主干网提供方或互联网提供方。网络服务提供方104可以包括提供高速互联网接入的电信公司、数据运营商、无线通信提供方、互联网服务提供方和有线电视运营商。网络服务提供方104还可以包括信息技术公司。
需要注意的是,图1所示的系统100仅为示例,并且可以创建许多不同的配置和系统来在网络和计算装置之间传输数据。因为网络形成时存在大量的可定制性,所以希望在确定计算机之间或网络之间传输数据的最佳路径时能够提供更高的可定制性。鉴于上述情况,本文公开了用于将最佳路径计算卸载到外部装置的系统、方法和装置,以便在确定最适合特定计算机组或特定企业的最佳路径算法时实现更高的可定制性。
图2是用于实现如本文所述的前缀跟踪器应用程序的拓扑200的示意图。具体地,前缀跟踪器应用程序可以被实现为跟踪实施边界网关协议(BGP)的网络内的事件。
拓扑200包括多个输入主题流202。输入主题流202包括例如配置流204、装置流206、对等体流208和路由流210。具体地,对等体流208可以接收与BGP对等体相关的数据。具体地,路由流210可以接收与BGP路由相关的数据。需要注意的是,输入主题流202可以根据需要包括其它数据流。输入主题流202由独立的处理资源管理并馈入。例如,配置流204馈入配置处理器205。同样地,装置流206馈入装置处理器207,并且对等体流208馈入对等体处理器209。路由流210可以直接馈入路由处理器220。
在实施方案中,输入主题流202是实时流框架(例如,Kafka®)内的输入主题流。实时流框架是用于构建应用程序和微服务的客户端库,其中输入和输出数据存储在集群中。Kafka流将在客户端编写和部署标准Java和Scala应用程序的简便性与服务器端集群技术的优势相结合。实时流传输框架基于由存储层和消息传递层提供的功能,实现状态处理功能、容错和处理保证。
拓扑200包括多个独立的状态存储器,包括例如配置存储器212、装置存储器214、对等体存储器216、路由存储器218和前缀跟踪器存储器220。状态存储器212至220可以实现为实时流传输框架中流内的持久哈希映射。拓扑200包括用于不同信息的不同状态存储器212至220。状态存储器212至220利用容错和自动恢复功能实现。
通过配置流204接收的数据由配置处理器205处理,然后存储在配置存储器212中。类似地,通过装置流206接收的数据由装置处理器207处理,然后存储在装置存储器214中,并且通过对等体流208接收的数据由对等体处理器209处理,然后存储在对等体存储器216中。路由流210接收的数据由路由处理器222处理,然后存储在路由存储器218中。路由处理器222与配置存储器212、装置存储器214、对等存储器216和路由存储器218中的每一个通信。路由处理器222进一步与前缀跟踪器存储器220通信,其中前缀跟踪器应用程序的数据存储在该存储器中。路由处理器222与警报接收器224通信,警报接收器224充当存储警报消息的通知队列。前缀跟踪器检测到的事件被发送到警报接收器224并在警报接收器224存储,直到被北向应用程序使用,从而作为通知发送或用于进一步的数据处理。
前缀跟踪器应用程序运行多个不同任务。在本文中,这些任务中的每一个都可以称为“流任务”。每个流任务与一个或多个流存储器212至220相关联。网络拓扑中的每个前缀和/或装置都可以分配给一组特定的流任务,这些任务可以包括212至220中提到的每种类型的流存储器。诸如装置、路由、对等点、配置等的网络资源的遥测数据可以根据装置或其它分区方案拆分到212至220中提到的每种类型的多个流任务中。随着网络拓扑的增长,前缀跟踪器可以进行修改,以为新路由、装置或其它网络资源添加额外的流任务。
装置存储器212至220被实现为哈希映射。配置存储器212存储关于不同前缀属性的配置信息,前缀跟踪器使用这些信息将前缀与这些属性进行匹配,然后跟踪这些前缀。如果路径与配置存储器中的任何属性条目匹配,则该路径对前缀跟踪器感兴趣。装置存储器214存储网络中的装置列表,在该装置列表中还包括将其前缀发送到前缀跟踪器的装置。对等体存储器216跟踪网络内BGP发言方之间的对等体数据。对等体存储器216中的数据用于确定哪个对等体正在发送路由。在确定网络拓扑中添加、更新或撤销前缀时哪些装置将受到影响时,这些数据可能特别重要。路由存储器218存储网络拓扑的所有路由,包括当前未被跟踪但将来可能被跟踪的路由。前缀跟踪器存储器220跟踪感兴趣的路由(即,当前正在使用前缀跟踪器应用程序跟踪的路由)。
处理器205、207、209、220负责从相应的输入主题流202中检索数据,将数据转换为正确的格式,然后将数据存储在正确的状态存储器212至218中。当状态存储器212至220已更新时,路由处理器222将更新状态存储器212至220中的每一个中的数据,并更新警报接收器224。当网络拓扑更新或修改时,状态存储器212至220经由从网络装置接收的遥测数据自动更新。路由处理器222处理从网络装置接收的遥测路由和前缀更新。路由处理器使用来自其它状态存储器的信息,并更新前缀跟踪器存储器和警报接收器。
前缀跟踪器应用程序可以被配置为跟踪不同的路由属性。具体地,前缀跟踪器可以被实施为跟踪社区属性、扩展社区属性、大型社区属性、前缀属性、邻居地址属性等。前缀跟踪器可以被配置为跟踪不同的事件,包括路由特定事件和网络事件。路由特定事件包括,例如,网络拓扑中已添加一条或多条路由的指示、网络拓扑中已更新一条或多条路由的指示、或者网络拓扑中已撤销或删除一条或多条路由的指示。
网络事件可以包括监控前缀的网络可达性、通过跟踪最佳路径变化和路由抖动来确保路由稳定性、路由降优先级或劫持以及下一跳跟踪的事件。当路由的最佳路径发生变化时,最佳路径标记将识别新的路径。在经由遥测接收到新的路由更新之后,可以跟踪此信息。在跟踪路由最佳路径的变化时,还可以跟踪其它网络范围的事件,诸如路由的稳定性、路由是否被降低优先级或被劫持以及路由的下一跳。
系统可以通过对最佳路径随时间的改变进行计数来跟踪路由稳定性。如果在给定时段内,路由改变超过阈值量,则该时段内的路由稳定性将降低。前缀跟踪器可以跟踪随时间变化的抖动次数或最佳路径改变次数,以确定路由是否稳定。如果前缀跟踪器确定路由不稳定,则前缀跟踪器可能触发警报通知,以指示路由不稳定。此信息可以跨网络跟踪,以指示路由不稳定且可达性不稳定的区域。
前缀跟踪器可以跟踪路由降优先级或劫持。由于新路径优先于旧路径,路由的最佳路径可能发生变化。在当前最佳路径的属性更新为较低的优先级或优先值,或者新的最佳路径的属性具有较高的优先级或优先值时,可能发生这种情况。前缀跟踪器检测并记录路由的哪些属性发生变化,并提供路由被降优先级的原因。前缀跟踪器确定路由是否被恶意劫持降优先级。
前缀跟踪器执行下一跳跟踪,其提供关于将用于将流量转发到特定目的地的下一跳IP地址的信息。下一跳提供关于路由器转发流量所需链路的信息。有时,优选地,利用成本较低的下一跳链路。在一些情况下,特定下一跳IP地址可能经由配置被列入黑名单,并且如果路由使用该下一跳,则前缀跟踪器可以触发警报。类似地,前缀跟踪器可以跟踪下一跳的本地前缀和/或IGP度量,以检查路由被降优先级的原因。
前缀跟踪器应用程序可以通过配置流204的方式接收配置指令。这些配置设置随后可以存储在配置存储器212中,并由配置处理器205进行处理。配置存储器212可以以密钥值格式存储配置设置。在此实施方案中,密钥是属性类型的元组,并且值是属性值,以便在处理路由时轻松查找。路由处理器222使用配置存储器212检查是否需要跟踪前缀。前缀跟踪器可以在初始化后随时进行配置和重新配置。这些配置设置还可以包含多个属性值对,以过滤和跟踪前缀,这些属性值将转换为配置存储器中的多个密钥值对。
路由处理器222接收从遥测数据馈入流传输的路由。每当网络路径更新时,该馈入都会持续更新数据。路由处理器222识别路径改变。路径改变包括一条或多条新增路径、一条更新路径或一条撤销路径。因为网络拓扑的所有前缀都存储在路由存储器218中,所以路由处理器222能够识别路径改变。路由处理器222基于路径是否包括与配置存储器212中的数据匹配的任何属性,确定前缀跟踪器是否对路径改变感兴趣。如果前缀跟踪器对路径改变感兴趣,则与路径改变相关的改变后的前缀将存储在前缀跟踪器存储器220中。如果路径改变触发事件,则前缀跟踪器将针对该事件生成警报。
前缀跟踪器应用程序以内联方式处理遥测更新。在一些实施方案中,在配置之后无需对路由进行后处理。相反,任何路由更新都以内联方式处理,并且在路由更新到达时存储上下文/状态。后处理创建窗口,其中数据可能在实时系统中不同步。该步骤降低数据同步和跟踪任何BGP发言方中可能已存在的前缀的复杂性。这确保前缀跟踪器可以作为完整的实时应用程序运行。
前缀跟踪器的处理器拓扑200可以通过将其分解为多个流任务来扩展。输入数据流可以基于诸如装置标识符的属性拆分成单独的分区,并基于输入流分区创建固定数量的流任务。流任务中的每一个都从输入流中分配分区的列表。这些任务的分区的分配不会改变,因此流任务是前缀跟踪器的固定并行单元。这些任务针对分配的分区实例化自身的处理器拓扑,并且独立并行地处理数据。
图3A是本文描述的前缀跟踪器应用程序的处理流程300的示意图。流程300至少在302接收到路由和操作时实施。前缀跟踪器应用程序被配置为在304识别路由状态,在306识别路径状态,在308跟踪路径,并在310进行同步。
图3B包括识别适用于流程300的路由密钥信息的密钥。如本文所述,路由存储器(RS)存储所有接收到的路由以供查找。配置存储器(CS)存储客户配置的所有路径配置密钥(PCK)以供查找。路径配置密钥(PCK)格式化装置标识符、BGP路径属性类型和BGP路径属性值。客户可以配置PCK以指定待跟踪的BGP前缀。路由密钥(r)包括(装置、前缀、vrf、af)。RS(路由密钥(r))等于本文所述的r’。本文所述的r’包括旧路由,即路由存储器中已存在的路由。本文所述的r包括新路由,即接收到的新路由。
在304处,前缀跟踪器应用程序识别路由状态。图4进一步示出该过程,该过程基于图3B中包括的随附路由密钥信息表。此识别过程包括确定是否存在旧(现有)路由,以及旧路由是否与在302处接收到的新路由相对应。
如果操作指示应添加路由,则前缀跟踪器将确定路由存储器218中是否存在新路由。如果新路由存在于路由存储器中(RS中的r=真),则路由状态将被更新。路由存储器218进行更新,以反映新路由(r)和旧路由(r’)。如果路由存储器中不存在新路由(RS中的r=假),则将添加新路由。
如果操作指示应删除路由,则前缀跟踪器将确定路由存储器218中是否存在新路由。如果新路由存在于路由存储器中(RS中的r=真),则路由状态将被删除。在前缀跟踪器处理完路由后,路由存储器218将进行更新,以反映新路由为空。如果路由存储器中不存在新路由(RS中的r=假),则不会更新路由存储器218。
在306处,前缀跟踪器应用程序识别路径状态。该过程在图5中进一步说明。前缀跟踪器会确定哪些路径被添加、哪些路径被撤销以及哪些路径被更新。
前缀跟踪器会比较旧路径和新路径。在图5所示的示例中,前缀跟踪器对新路径p1与旧路径p1’进行比较。如果新路径p1是根据旧路径p1’修改的,则前缀跟踪器会确定该路径已更新。如果旧路径p1’和新路径p1相同,则前缀跟踪器确定该路径未改变。进一步的示例为,如果前缀跟踪器未找到与新路径p2等效的旧路径,则前缀跟踪器确定已添加新路径p2。进一步的示例为,如果前缀跟踪器未找到与旧路径p3’等效的新路径,则前缀跟踪器确定已删除旧路径p3’。
在308处,前缀跟踪器应用程序在308处跟踪路径。该过程在图6中进一步说明。前缀跟踪器将每条路径与其存储在配置存储器212中的相关属性进行匹配。这些配置可以直接从想要管理网络拓扑的客户处接收。前缀跟踪器基于新路径及其相应的旧路径(如果有)或者任何其它没有对应新路径的旧路径,生成路径配置密钥(PCK)列表。PCK与配置存储器212重叠,以确定是否匹配。如果前缀跟踪器识别到匹配,则前缀跟踪器将指示需要跟踪该路径。PCK是元组,其格式为装置ID、bgp路径属性类型、bgp路径属性值。
在图6所示的示例中,示出配置存储器中配置的条目的列表。每个条目指示装置和BGP路径属性的类型和值,任何与其匹配的路径都是客户感兴趣的路径,并且将被前缀跟踪器跟踪。例如,CS中的第一条目表示装置d1中所有具有值为“路由-目标:1:1”的扩展社区值的路径都必须被跟踪。已配置PCK的该列表与从旧路径和新路径生成的PCK列表重叠,如0081中所述,如果存在任何匹配的条目,则前缀跟踪器将跟踪该路径。第二条目表示必须跟踪装置d1中所有具有100:1社区属性的路径。第三条目表示必须跟踪装置d2中所有前缀为100.1.1.0/24的前缀。
前缀跟踪器应用程序在310处同步。该过程在图7中进一步说明。如果前缀跟踪器应用程序在308跟踪路径时识别出感兴趣的路径,则前缀跟踪器应用程序将继续在310处进行同步。如果多个属性值对被配置为跟踪前缀,则前缀跟踪器会确保该配置中的所有属性匹配,同时在此步骤中识别是否存在感兴趣的路径。
同步310过程包括:如果前缀跟踪器存储器220中不存在任何条目,则使用来自路由存储器218的现有相关路由数据更新前缀跟踪器存储器220。同步310过程包括:处理匹配路径,即处理前缀跟踪器存储器220中存储的跟踪路径,处理匹配路径配置密钥,并相应地更新前缀跟踪器存储器220。首先,作为前缀跟踪器同步过程310的一部分,如果前缀跟踪器存储器中不存在感兴趣的路由数据,前缀跟踪器存储器从路由存储器中同步这些数据。即使此前缀之前未跟踪过,或者最近添加配置来跟踪此前缀,此操作也会用于维护/同步路由上下文。这允许内联处理更新。然后,将上一步骤中跟踪的路径和匹配的PCK与前缀跟踪器存储器中的数据结合使用,以检测事件。
配置存储器还会指示已配置PCK条目的订阅事件,这些事件可以包括路由事件或网络事件,如下所述。如果配置存储器中匹配PCK已订阅任何路由事件,则跟踪路径的通知将发送到警报接收器进行通知或进一步处理。
如果配置存储器中的匹配PCK订阅任何网络事件,例如路由清除等,则根据网络事件进行进一步处理以检测此类事件是否发生。例如,在路由清除等网络范围事件中,如果某条路径被撤销,则会检查前缀跟踪器存储器中该路由和PCK的路径总数量。如果在最终路径撤销后该数量变为0,则表示该前缀在网络中不再可达,并且因此向警报接收器发送路由清除通知。如果在最终路径撤销后该数量不为0,则不会生成通知。
图8是基于遥测数据跟踪网络拓扑中的前缀的方法800的示意流程图。方法800包括在802处接收网络拓扑的新路由。方法800包括在804处确定新路由是否与路由存储器中存储的现有路由相对应。方法800包括,在806处响应于确定新路由与现有路由相对应,确定现有路由和新路由之间是否有任何网络路由路径被修改。方法800包括,在808处响应于确定现有路由和新路由之间有至少一条网络路由路径被修改,为该至少一条网络路由路径分别生成路径配置密钥。
现在参照图9,示出示例计算装置900的框图。计算装置900可以用于执行诸如本文所讨论的那些的各种过程。在一个实施例中,计算装置900可以执行异步对象管理器的功能,并且可以运行一个或多个应用程序。计算装置900可以是各种各样的计算装置,例如台式计算机、车载计算机、车辆控制系统、笔记本计算机、服务器计算机、手持式计算机、平板计算机等。
计算装置900包括一个或多个处理器902、一个或多个存储器装置904、一个或多个接口906、一个或多个大容量存储装置908、一个或多个输入/输出(I/O)装置902以及显示装置930,所有这些装置都联接到总线912。处理器902包括一个或多个处理器或控制器,其运行存储在存储器装置904和/或大容量存储装置908中的指令。处理器902还可以包括多种类型的计算机可读介质,诸如缓存存储器。
存储器装置904包括各种计算机可读介质,诸如易失性存储器(例如,随机存取存储器(RAM)914)和/或非易失性存储器(例如,只读存储器(ROM)916)。存储器装置904还可以包括可重新写入ROM,例如闪速存储器。
大容量存储装置908包括各种计算机可读介质,例如磁带、磁盘、光盘、固态存储器(例如,闪速存储器)等。如图9所示,特定的大容量存储装置是硬盘驱动器924。各种驱动器也可以包括在大容量存储装置908中,以使能够读取和/或写入各种计算机可读介质。大容量存储装置908包括可移动介质926和/或不可移动介质。
输入/输出(I/O)装置902包括允许数据和/或其他信息被输入到计算装置900或从计算装置800检索的各种装置。示例I/O装置902包括光标控制装置、键盘、小键盘、麦克风、监视器或其它显示装置、扬声器、打印机、网络接口卡、调制解调器等。
显示装置930包括能够向计算装置900的一个或多个用户显示信息的任意类型的装置。显示装置930的示例包括监视器、显示终端、视频投影装置等。
接口906包括允许计算装置900与其他系统、装置或计算环境交互的各种接口。示例接口906可以包括任意数量的不同网络接口920,例如到局域网(LAN)、广域网(WAN)、无线网络和互联网的接口。其它接口包括用户接口918和外围装置接口922。接口906还可以包括一个或多个用户接口元件918。接口906还可以包括一个或多个外围接口,诸如用于打印机、指触装置(鼠标、触控板或本领域普通技术人员现在已知或后来发现的任何合适的用户界面)、键盘等的接口。
总线912允许处理器902、存储器装置904、接口906、大容量存储装置908和I/O装置902相互通信,以及与联接到总线912的其他装置或组件通信。总线912表示若干类型的总线结构中的一种或多种,例如系统总线、PCI总线、IEEE总线、USB总线等等。
出于说明的目的,程序和其它可运行程序组件在本文中被示为离散块,但应理解的是,这种程序和组件可在不同时间驻留在计算装置900的不同存储组件中,并由处理器902运行。可选地,本文描述的系统和程序可以以硬件或硬件、软件和/或固件的组合来实现。例如,一个或多个专用集成电路(ASIC)可以被编程以执行本文中描述的一个或多个系统和过程。
示例
以下示例涉及进一步的实施例。
示例1是一种方法。该方法包括接收网络拓扑的路由,并确定该路由是否与路由存储器中存储的现有路由相对应。该方法包括,响应于确定该路由与现有路由相对应,确定现有路由和该路由之间是否有任何网络路由路径被修改。该方法包括,响应于确定现有路由和该路由之间至少一条网络路由路径被修改,为该至少一条网络路由路径中的每一个生成路径配置密钥。
示例2是根据示例1的方法,其中,接收网络拓扑的路由包括直接从专用于接收网络拓扑的更新路由信息的输入主题流接收更新。
示例3是根据示例1至2中任一项的方法,其中,确定路由是否与路由存储器中存储的现有路由相对应包括,基于与该路由相关联的数据进行确定,并且其中数据包括前缀、虚拟路由和转发(VRF)地址或装置中的一个或多个。
示例4是根据示例1至3中任一项的方法,进一步包括,接收与该路由相关联的添加或删除操作,并且其中该方法进一步包括根据添加或删除操作更新路由存储器。
示例5是根据示例1至4中任一项的方法,进一步包括响应于该路由与添加操作相关联;并且进一步响应于识别路由存储器中的现有路由,更新路由存储器以更新现有路由来反映该路由;或者进一步响应于确定路由存储器中没有存储与该路由对应的现有路由,更新路由存储器以添加该路由。
示例6是根据示例1至5中任一项的方法,进一步包括,响应于该路由与删除操作相关联;并且进一步响应于识别路由存储器中的现有路由,更新该路由以删除现有路由来反映该路由;或者进一步响应于确定路由存储器中没有存储与该路由对应的现有路由,结束与路由相关联的处理操作。
示例7是根据示例1至5中任一项的方法,其中,确定现有路由与该路由之间是否有任何网络路由路径被修改包括:确定是否有任何现有路由中不存在的路由路径被添加到该路由;确定是否有任何现有路由中存在的路由路径在该路由中被修改;以及确定是否有任何现有路由中存在的路由路径在该路由中被撤销。
示例8是根据示例1至7中任一项所述的方法,其中,路径配置密钥包括装置标识符、边界网关协议(BGP)路径属性类型或BGP路径属性值中的一个或多个。
示例9是根据示例1至8中任一项所述的方法,其中,路径配置密钥包括待跟踪的一个或多个BGP前缀的指示。
示例10是根据示例1至9中任一项所述的方法,其中,生成路径配置密钥包括生成多个路径配置密钥,并且其中,多个路径配置密钥中的每一个与现有路由和该路由之间已修改的一条网络路由路径相关联。
示例11是根据示例1至10中任一项所述的方法,进一步包括,识别多个路径配置密钥中与新路径的配置数据匹配的至少一个路径配置密钥,其中,配置数据存储在配置存储器中。
示例12是根据示例1至11中任一项所述的方法,其中,配置存储器包括与新路径相关联的属性,并且其中,这些属性包括扩展社区属性、社区属性或前缀属性中的一个或多个。
示例13是根据示例1至12中任一项所述的方法,进一步包括,基于用户输入确定是否应跟踪路由。
示例14是根据示例1至13中任一项所述的方法,进一步包括,响应于确定应跟踪该路由,确定该路由是否已存储在前缀跟踪器存储器中;并且响应于确定该路由尚未存储在前缀跟踪器存储器中,写入前缀跟踪器存储器以包括该路由。
示例15是根据示例1至14中任一项所述的方法,进一步包括:处理至少一条网络路由路径中的每一条的路径配置密钥;以及写入前缀跟踪器存储器以包括至少一条网络路由路径中的每一条的路径配置密钥。
示例16是根据示例1至15中任一示例所述的方法,进一步包括:响应于确定该路由的至少一个元素已从前缀跟踪器存储器中删除,检测路由清除。
示例17是根据示例1至16中任一项所述的方法,其中,接收网络拓扑的路由包括通过实时流框架内的流接收更新。
示例18是根据示例1至17中任一项的方法,其中,路由存储器是与路由处理器通信的流存储器,并且其中,路由处理器与实时接收数据的多个输入主题流通信。
示例19是根据示例1至18中任一项所述的方法,其中,接收网络拓扑的路由进一步包括,接收与该路由相关联的操作,并且其中,该操作包括添加或删除中的一个。
示例20是根据示例1至19中任一项的方法,其中,该方法由前缀跟踪器应用程序执行,该前缀跟踪器应用程序在与被配置为管理网络拓扑的网络平台相关联的一个或多个服务器上运行。
示例21是一种系统。该系统包括多个输入主题流。该系统包括多个处理器,其中多个处理器中的每一个专用于多个输入主题流中的一个。该系统包括用于存储数据的多个流存储器,其中,多个流存储器中的每一个专用于多个输入主题流中的一个。该系统包括与多个流存储器中的每一个通信的路由处理器。该系统使得路由处理器确定网络拓扑的路由是否与存储在多个流存储器中的至少一个上的现有路由相对应。
示例22是根据示例21的系统,其中多个流存储器包括配置存储器,并且其中,该配置存储器由专用配置处理器处理,并且其中,该专用配置处理器与多个输入主题流中的配置流通信。
示例23是根据示例21至22中任一项所述的系统,其中,配置存储器包括网络拓扑中多个路由的属性信息,并且其中,属性信息包括社区属性、扩展社区属性或大型社区属性中的一个或多个。
示例24是根据示例21至23任一项所述的系统,其中,多个流存储器包括装置存储器,并且其中,装置存储器由专用装置处理器处理,并且其中,专用装置处理器与多个输入主题流中的装置流通信。
示例25是根据示例21至24任一项所述的系统,其中,装置存储器包括网络拓扑中的哪些装置正在跟踪该网络拓扑的前缀的指示。
示例26是根据示例21至25任一项所述的系统,其中,多个流存储器包括路由存储器,并且其中,路由存储器由路由处理器处理,并且其中,路由存储器包括网络拓扑的多条路由的信息。
示例27是根据示例21至26中任一项所述的系统,其中,多个输入主题流中的一个或多个是实时流传输框架的流。
示例28是根据示例21至27中任一项所述的系统,其中,多个输入主题流中的一个或多个是实时流传输框架的流。
示例29是根据示例21至28中任一项所述的系统,其中,多个输入主题流中的每一个都实时接收与网络拓扑相关的数据。
示例30是根据示例21至29中任一项的系统,其中,路由处理器被配置为执行基于遥测数据跟踪网络拓扑内前缀的指令。
示例31是根据示例21至30中任一项的系统,其中指令包括:通过多个输入主题流中的路由流的方式接收网络拓扑的路由;以及确定该路由是否与多个流存储器中的路由存储器上存储的现有路由相对应。
示例32是根据示例21至31中任一项的系统,其中指令进一步包括:响应于确定该路由与现有路由相对应,确定现有路由与该路由之间是否有任何网络路由路径被修改;以及响应于确定现有路由与该路由之间至少一条网络路由路径被修改,为至少一条网络路由路径中的每一条生成路径配置密钥。
示例33是根据示例21至32中任一项的系统,进一步包括:将至少一条网络路由路径中的每一条的路径配置密钥存储在前缀跟踪器存储器上,其中,前缀跟踪器存储器不专用于输入主题流并且独立于多个输入主题流。
示例34是根据示例21至33中任一项的系统,其中,指令使得确定路由是否与路由存储器中存储的现有路由相对应包括,基于与该路由相关联的数据进行确定,并且其中,数据包括前缀、虚拟路由和转发(VRF)地址或装置中的一个或多个。
示例35是根据示例21至34中任一项的系统,其中,指令进一步包括,接收与该路由相关联的添加或删除操作,其中,该方法进一步包括根据添加或删除操作更新路由存储器。
示例36是根据示例21至35中任一项的系统,其中,指令使得确定现有路由与该路由之间是否有任何网络路由路径被修改包括:确定是否有任何现有路由中不存在的路由路径被添加到该路由;确定是否有任何现有路由中存在的路由路径在该路由中被修改;以及确定是否有任何现有路由中存在的路由路径在该路由中被撤销。
示例37是根据示例21至36中任一项所述的系统,其中,路径配置密钥包括装置标识符、边界网关协议(BGP)路径属性类型或BGP路径属性值中的一个或多个。
示例38是根据示例21至37中任一项所述的系统,其中,路径配置密钥包括待跟踪的一个或多个BGP前缀的指示。
示例39是根据示例21至38中任一项所述的系统,其中,指令使得生成路径配置密钥包括:生成多个路径配置密钥,并且其中,多个路径配置密钥中的每一个与现有路由和该路由之间已修改的一条网络路由路径相关联。
示例40是根据示例21至39中任一项所述的系统,其中,指令进一步包括:识别多个路径配置密钥中与新路径的配置数据匹配的至少一个路径配置密钥,其中,配置数据存储在配置存储器中。
示例41是根据示例21至40中任一项所述的系统,其中,指令进一步包括:根据用户输入确定是否应跟踪路由;响应于确定应跟踪路由,确定该路由是否已存储在前缀跟踪器存储器中;响应于确定该路由尚未存储在前缀跟踪器存储器中,写入前缀跟踪器存储器以包括该路由;处理至少一个网络路由路径中每条路径的路径配置密钥;以及写入前缀跟踪器存储器以包括至少一个网络路由路径中的每一条的路径配置密钥。
前述描述仅用于说明和描述。其并非旨在详尽无遗,也并不是旨在将本公开限制于所公开的精确形式。考虑到上述教导,可以进行许多修改和变型。此外,应当注意的是,可以以任何所需的组合使用任何或所有替代实施方案,以形成本公开的其它混合实施方案。
此外,尽管已经描述和说明了本公开的具体实施方案,但本公开不限于如此描述和说明的部件的具体形式或布置。本公开的范围由所附权利要求书,本文及不同申请中提交的任何未来如果存在的权利要求书及其等同方案限定。
应当理解的是,上述布置、示例和实施例的任何特征均可组合成单个实施例,包括取自任何公开的布置、示例和实施例的特征的组合。
应当理解的是,本文公开的各种特征为本领域带来了显著的优势和进步。以下权利要求书仅举例说明了其中一些特征。
在前述的本公开的具体实施方式中,为了简化本公开,本公开的各种特征被组合在单个实施例中。这种公开方式不应被理解为反映要求保护的公开需要比每项权利要求中明确列举的特征更多的意图。相反,创造性方面在于少于单个前述公开实施例的所有特征。
应当理解的是,上述布置仅用于说明本公开原理的应用。本领域技术人员可以在不脱离本公开内容的精神和范围的情况下设计出许多修改和替代布置,并且附加的权利要求旨在涵盖此类修改和布置。
因此,虽然本公开已在附图中示出并在上面进行了详细而具体的描述,但本领域技术人员应当理解的是,在不脱离本文所述的原理和概念的情况下,可以进行多种修改,包括但不限于尺寸、材料、形状、形式、功能以及操作、组装和使用方式的变化。
进一步地,在适当的情况下,本文所述的功能可以在以下一个或多个组件中执行:硬件、软件、固件、数字组件或模拟组件。例如,一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)可以被编程以执行本文中描述的一个或多个系统和过程。在以下说明书和权利要求书中,特定术语用于指代特定的系统组件。本领域技术人员应当理解的是,组件可能使用不同的名称来指代。本文献不旨在区分名称不同但不区分功能不同的组件。
前述描述仅用于说明和描述。其并非旨在详尽无遗,也并不是旨在将本公开限制于所公开的精确形式。考虑到上述教导,可以进行许多修改和变型。此外,应当注意的是,可以以任何所需的组合使用任何或所有替代实施方案,以形成本公开的其它混合实施方案。
此外,尽管已经描述和说明了本公开的具体实施方案,但本公开不限于如此描述和说明的部件的具体形式或布置。本公开的范围由所附权利要求书,本文及不同申请中提交的任何未来权利要求书及其等同方案限定。
Claims (19)
1.一种系统,包括:
多个输入主题流;
多个处理器,其中所述多个处理器中的每一个专用于所述多个输入主题流中的一个或多个;
多个流存储器,用于存储数据,其中所述多个流存储器中的每一个专用于所述多个输入主题流中的一个或多个;以及
路由处理器,与所述多个流存储器中的每一个通信;
其中,所述路由处理器确定网络拓扑的路由是否与所述多个流存储器中的至少一个存储的现有路由相对应。
2.根据权利要求1所述的系统,其中,所述多个流存储器包括配置存储器,并且其中,所述配置存储器由专用配置处理器处理。
3.根据权利要求2所述的系统,其中,所述配置存储器包括网络拓扑的多个路由的属性信息,并且其中,所述属性信息包括一个或多个BGP路由属性或前缀,并且其中,所述BGP路由属性包括社区属性、扩展社区属性或大社区属性中的一个或多个。
4.根据权利要求1所述的系统,其中,所述多个流存储器包括装置存储器,并且其中,所述装置存储器由专用装置处理器处理,并且其中,所述专用装置处理器与所述多个输入主题流中的装置流通信。
5.根据权利要求4所述的系统,其中,所述装置存储器包括网络拓扑中的哪些装置正在跟踪所述网络拓扑的前缀的指示。
6.根据权利要求1所述的系统,其中,所述多个流存储器包括路由存储器,并且其中,所述路由存储器由所述路由处理器处理,并且其中,所述路由存储器包括网络拓扑的多条路由的信息。
7.根据权利要求1所述的系统,其中,所述多个输入主题流中的一个或多个是实时流传输框架内的流。
8.根据权利要求1所述的系统,其中,所述多个输入主题流中的每一个都实时接收与网络拓扑相关的数据。
9.根据权利要求1所述的系统,其中,所述路由处理器被配置为执行指令以基于遥测数据跟踪网络拓扑内的前缀。
10. 根据权利要求9所述的系统,其中,所述指令包括:
通过所述多个输入主题流中的路由流接收所述网络拓扑的路由;以及
确定所述路由是否与所述多个流存储器中的路由存储器存储的现有路由相对应。
11. 根据权利要求10所述的系统,其中,所述指令进一步包括:
响应于确定所述路由与所述现有路由相对应,确定所述现有路由和所述路由之间是否有任何网络路由路径被修改;并且
响应于确定所述现有路由和所述路由之间至少一条网络路由路径被修改,为所述至少一条网络路由路径中的每一条生成路径配置密钥。
12.根据权利要求11所述的系统,进一步包括:将所述至少一条网络路由路径中的每一条的路径配置密钥存储在前缀跟踪器存储器上,其中,所述前缀跟踪器存储器不专用于输入主题流,并且独立于所述多个输入主题流。
13.根据权利要求12所述的系统,其中所述指令使得确定所述路由是否与所述路由存储器中存储的现有路由相对应包括:基于与所述路由相关联的数据进行确定,并且其中所述数据包括前缀、虚拟路由和转发地址即VRF地址或装置中的一个或多个。
14.根据权利要求11所述的系统,其中,所述指令进一步包括:接收与所述路由相关联的添加、更新或删除操作,其中所述方法进一步包括:根据所述添加、更新或删除操作更新所述路由存储器。
15.根据权利要求11所述的系统,其中,所述指令使得确定所述现有路由与所述路由之间是否有任何网络路由路径被修改包括:
确定是否有任何所述现有路由中不存在的路由路径被添加到所述路由;
确定是否有任何现有路由中存在的路由路径在所述路由内被修改;以及
确定是否有任何现有路由中存在的路由路径在所述路由内被撤销。
16.根据权利要求11所述的系统,其中,所述路径配置密钥包括装置标识符、边界网关协议路径属性类型即BGP路径属性类型或BGP路径属性值中的一个或多个。
17.根据权利要求11所述的系统,其中,所述路径配置密钥包括待跟踪的一个或多个BGP前缀的指示。
18.根据权利要求11所述的系统,其中,所述指令使得生成所述路径配置密钥包括:生成多个路径配置密钥,并且其中,所述多个路径配置密钥中的每一个与所述现有路由和所述路由之间已修改的一条网络路由路径相关联。
19.根据权利要求11所述的系统,其中,所述指令进一步包括:
基于用户输入确定是否应跟踪所述路由;
响应于确定应跟踪所述路由,确定所述路由是否已存储在前缀跟踪器存储器中;
响应于确定所述路由尚未存储在所述前缀跟踪器存储器中,写入所述前缀跟踪器存储器以包括所述路由;
处理所述至少一条网络路由路径中的每一条的路径配置密钥;以及
写入所述前缀跟踪器存储器以包括所述至少一条网络路由路径中的每一条的路径配置密钥。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/084,845 US12294510B2 (en) | 2022-12-20 | 2022-12-20 | Method and apparatus for telemetry monitoring of BGP prefixes in a network topology |
| US18/084,845 | 2022-12-20 | ||
| US18/084,828 | 2022-12-20 | ||
| US18/084,828 US12113700B2 (en) | 2022-12-20 | 2022-12-20 | Method and apparatus for telemetry monitoring of BGP prefixes in a network topology |
| PCT/US2023/083597 WO2024137282A1 (en) | 2022-12-20 | 2023-12-12 | Method and apparatus for telemetry monitoring of bgp prefixes in a network topology |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN120345226A true CN120345226A (zh) | 2025-07-18 |
Family
ID=91589847
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202380087233.7A Pending CN120345226A (zh) | 2022-12-20 | 2023-12-12 | 用于网络拓扑中bgp前缀的遥测监控的方法和设备 |
| CN202380087234.1A Pending CN120569945A (zh) | 2022-12-20 | 2023-12-12 | 用于遥测监控网络拓扑中的bgp前缀的方法和设备 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202380087234.1A Pending CN120569945A (zh) | 2022-12-20 | 2023-12-12 | 用于遥测监控网络拓扑中的bgp前缀的方法和设备 |
Country Status (3)
| Country | Link |
|---|---|
| KR (2) | KR20250126090A (zh) |
| CN (2) | CN120345226A (zh) |
| WO (2) | WO2024137280A1 (zh) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180262454A1 (en) * | 2017-03-08 | 2018-09-13 | Linkedin Corporation | Network routing using a publish-subscribe messaging system |
| US10999189B2 (en) * | 2018-11-20 | 2021-05-04 | Cisco Technology, Inc. | Route optimization using real time traffic feedback |
| US11025522B2 (en) * | 2019-05-04 | 2021-06-01 | Juniper Networks, Inc. | Path monitoring system (PMS) controller or ingress node based multiprotocal label switching (MPLS) ping and traceroute in inter- autonomous system (AS) segment routing (SR) networks |
-
2023
- 2023-12-12 CN CN202380087233.7A patent/CN120345226A/zh active Pending
- 2023-12-12 KR KR1020257024110A patent/KR20250126090A/ko active Pending
- 2023-12-12 WO PCT/US2023/083582 patent/WO2024137280A1/en active Pending
- 2023-12-12 WO PCT/US2023/083597 patent/WO2024137282A1/en active Pending
- 2023-12-12 CN CN202380087234.1A patent/CN120569945A/zh active Pending
- 2023-12-12 KR KR1020257024109A patent/KR20250126780A/ko active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2024137280A1 (en) | 2024-06-27 |
| CN120569945A (zh) | 2025-08-29 |
| KR20250126090A (ko) | 2025-08-22 |
| KR20250126780A (ko) | 2025-08-25 |
| WO2024137282A1 (en) | 2024-06-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11972306B2 (en) | Routing optimizations in a network computing environment | |
| US12113700B2 (en) | Method and apparatus for telemetry monitoring of BGP prefixes in a network topology | |
| US12294510B2 (en) | Method and apparatus for telemetry monitoring of BGP prefixes in a network topology | |
| US20240056359A1 (en) | Automated Scaling Of Network Topologies Using Unique Identifiers | |
| CN120345226A (zh) | 用于网络拓扑中bgp前缀的遥测监控的方法和设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication |