CN106605392A - 用于使用控制器在网络上进行操作的系统和方法 - Google Patents
用于使用控制器在网络上进行操作的系统和方法 Download PDFInfo
- Publication number
- CN106605392A CN106605392A CN201580045963.6A CN201580045963A CN106605392A CN 106605392 A CN106605392 A CN 106605392A CN 201580045963 A CN201580045963 A CN 201580045963A CN 106605392 A CN106605392 A CN 106605392A
- Authority
- CN
- China
- Prior art keywords
- switch
- network
- controller
- debugging
- packet
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0847—Transmission error
-
- 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/14—Routing performance; Theoretical aspects
-
- 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
- H04L41/0645—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis by additionally acting on or stimulating the network after receiving notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
在计算设备上实现的控制器可以控制网络中的交换机。控制器可以向交换机提供实现网络策略的流表,以控制通过网络的分组转发。控制器可以向交换机提供调试表条目,用于在与流表分离的调试表中使用。调试表条目可以与传入网络分组匹配并增加交换机上的对应的计数器。控制器可以从计数器检索计数信息,以用于在网络上进行调试操作。例如,控制器可以基于检索到的计数信息来识别所选择的流表条目的字段之间的冲突、确定在交换机之间是否存在大象分组流、确定期望的负载平衡是否正在被进行、确定网络路径是否已经变化、确定是否已经发生分组丢失和/或确定网络分组是否正在采取不期望的路径。
Description
本专利申请要求2015年2月19日提交的美国专利申请号14/626,450和2014年7月21日提交的临时专利申请号62/027,238的优先权,其整体通过引用并入本文。
背景技术
本发明涉及通信网络,并且更具体地,涉及具有由控制器控制的网络交换机的通信网络。
诸如因特网之类的基于分组的网络和连接到因特网的本地数据网络包括网络交换机。网络交换机用在将分组从分组源转发到分组目的地中。分组有时可被称为帧。例如,数据在开放系统互连(OSI)模型的第2层上作为帧(例如,以太网帧)而转发,而数据在OSI模型的第3层上作为分组(例如,因特网协议分组)而转发。
使用一个供应商的设备来配置另一供应商的交换机可能是困难或不可能的。这是因为一个供应商的交换设备可以使用与另一供应商的交换设备不同的操作系统和一组控制过程。为了解决与控制不同类型的交换平台相关联的挑战,已经开发了跨平台协议。这些协议允许否则并不兼容的交换机的集中控制。
跨平台控制器客户端可以包含在网络中的交换机上。控制器客户端能够通过网络路径与对应的控制器服务器通信。因为控制器客户端可以在各种交换机硬件上实现,所以单个控制器可以控制否则可能不兼容的交换设备。
控制器高效地控制交换机的网络可能是挑战性的。例如,网络拓扑可以被网络管理员修改或由于装置故障而被修改。在这种情形下,网络修改可能潜在地导致控制器处的无效配置和网络中的低效分组路由或分组丢失。在具有大量交换机的网络中,可能难以精确定位网络中的分组丢失的源或分组路由低效率的源。
因此,将希望为控制器提供改进的网络调试能力。
发明内容
在计算设备上实现的控制器可以用来控制网络中的交换机。交换机可以包括物理交换机和诸如管理程序交换机之类的逻辑交换机。端主机可以耦接到网络中的交换机。交换机可以由控制器控制,用于通过网络转发网络分组(例如,通过经由控制路径向交换机提供与网络分组不同的控制消息)。控制消息可以包括用于在交换机上实现的流表中使用的流表条目。交换机可以将接收到的网络分组与流表条目进行匹配,以通过网络进行分组转发操作。流表条目可以由控制器生成以实现在控制器处识别出的一个或多个期望的网络策略(例如,网络转发策略)。
控制器可以生成调试表条目并将其提供给交换机。交换机可以将调试表条目添加到在交换机上实现的与用来通过网络路由网络分组的流表分离的调试表。调试表条目可以包括匹配信息(在本文中有时称为匹配字段或头部字段)和对应的动作字段,动作字段指示交换机在网络分组对对应的匹配字段进行匹配时进行期望的动作。流表可以具有带有与进行网络转发操作(例如,用于实现期望的网络策略)相关联的动作字段的条目,而调试表可以具有带有指示表所实现于的交换机增加(increment)对应的计数器的动作字段的条目。控制器可以监视保持在交换机上的计数器,用于在网络上进行调试操作。
换句话说,交换机上的流表可以用来实现期望的网络策略(例如,诸如访问控制列表或分组路由策略之类的访问策略),而调试表被用来生成在控制器处被处理以进行网络调试操作的交换机计数器值。如果需要,调试动作字段可以指示交换机将匹配网络分组或匹配网络分组的副本转发到控制器。以这种方式,当网络分组在交换机处被接收到并且对在交换机上实现的调试表中的调试表条目进行匹配时,交换机可以增加该交换机上的一个或多个相关联的计数器,并且如果需要,可以将匹配分组传送到控制器。控制器可以从每个交换机上的计数器检索计数器信息(例如,计数值或计数速率),并且可以使用计数器信息以在网络上进行调试操作(例如,控制器可以基于从交换机检索到的并且响应于网络分组对调试表条目进行匹配而生成的计数信息来进行网络调试操作)。
控制器可以通过基于检索到的计数信息选择流表条目中的给定的一个流表条目并识别所选择的流表条目的匹配字段之间的冲突来进行调试操作。例如,控制器可以从给定交换机上的流表中选择条目以用于调试,可以选择所选择的条目的第一头部(匹配)字段,并且可以为交换机生成具有第一优先级、仅与所选择的第一头部字段匹配并且指示至少一个交换机增加第一计数器值的第一调试表条目。控制器随后可以从所选择的条目中选择与第一头部字段不同的第二头部字段,为交换机生成具有大于第一优先级的第二优先级、与第一和第二所选择的头部字段匹配、并且指示交换机增加第二计数器值的第二调试表条目。控制器可以从至少一个交换机检索第一和第二计数器值,并且至少部分地基于检索到的第一和第二计数器值来从所选择的条目中识别与所选择的条目中的其他头部字段冲突的头部字段。
如果需要,控制器可以通过基于检索到的计数信息确定在网络中的所选择的一对交换机之间是否存在大象分组流来进行调试操作。控制器可以通过向第一和第二交换机提供具有第一优先级并且对一组分组(例如,所有分组)进行匹配的宽调试表条目、将该宽调试表条目分割为与所述一组网络分组的相应的第一和第二子集匹配的至少第一和第二窄调试表条目、以及为第一和第二交换机中的每个提供第一和第二窄调试表条目来确定在第一和第二交换机之间是否存在大象分组流。第一窄调试表条目可以指示第一交换机增加第一计数器并且可以指示第二交换机增加第二计数器,而第二窄调试表条目可以指示第一交换机增加第三计数器并且指示第二交换机增加第四计数器。控制器可以从第一交换机检索第一和第二计数器值并且从第二交换机检索第三和第四计数器值,并且可以基于接收到的第一、第二、第三和第四计数器值(例如,基于四个计数器值中的一个是否显著大于其他三个值)来确定在第一和第二交换机之间是否存在大象流。
控制器可以通过基于检索到的计数信息确定交换机是否正在进行期望的负载平衡操作和/或通过基于检索到的计数信息确定交换机之间的网络路径是否已经随时间变化来进行调试操作。例如,控制器可以通过向至少一个交换机提供宽调试表条目来进行调试操作,该宽调试表条目指示交换机响应于接收到与宽调试表条目匹配的第一网络分组而增加第一计数器。控制器可以从交换机接收第一网络分组并且可以生成窄调试表条目并将其提供给交换机,该窄调试表条目包括比宽调试表条目更窄的匹配信息但仍然与第一网络分组匹配。窄调试表条目可以指示交换机响应于接收到与窄调试表条目匹配的第二网络分组而增加第二计数器。如果需要,控制器可以检索由交换机上的第二计数器生成的计数信息,并且基于检索到的计数信息来确定交换机是否正常地操作用于负载平衡。控制器可以从交换机接收与宽调试表条目匹配而不与窄调试表条目匹配的第二分组,并且可以将接收到的第二分组与窄调试表条目进行比较,以确定网络中路径是否已经变化。
如果需要,控制器可以通过基于检索到的计数信息确定在网络中的一对交换机之间是否已经发生网络分组丢失和/或通过基于检索到的计数信息确定网络分组是否正在采取通过网络的不期望的路径(例如,未被对应流表识别的路径)来进行调试操作。例如,控制器可以从感兴趣的区域中的第一交换机检索第一计数器值、从感兴趣的区域中的第二交换机检索第二计数器值以及从该区域中的第三交换机检索第三计数器值,并且可以基于第一、第二和第三计数器值来确定网络分组是否正在采取通过感兴趣的区域的不正确的路径。控制器可以从感兴趣的区域中的第一交换机检索第一计数器值以及从感兴趣的区域中的第二交换机检索第二计数器值,并且可以基于检索到的第一和第二计数器值确定在感兴趣的区域中是否已经发生分组丢失。
根据附图和下列详细描述,本发明的其他特征、其性质和各种优点将更加明显。
附图说明
图1是根据本发明的一个实施例的包括控制器和分组转发系统的例示性网络的示图。
图2是根据本发明的一个实施例的可以通过网络连接进行通信的控制器服务器和控制器客户端的示图。
图3是根据本发明的一个实施例的可以由分组处理系统使用的类型的例示性流表的示图。
图4是根据本发明的一个实施例的可以由分组处理系统使用的类型的例示性流表的示图,其示出可基于流表中的流表条目来进行的三种例示性类型的分组转发。
图5是根据本发明的一个实施例的在分组处理系统中处理分组所涉及的例示性步骤的流程图。
图6是根据本发明的一个实施例的具有可被控制器控制用于通过网络路由网络分组以及用于在网络上进行网络调试操作的交换机的例示性网络的示图。
图7是根据本发明的一个实施例的实现转发规则的例示性交换机的示图,所述转发规则诸如是用于通过网络转发分组的流表和用于进行基于控制器的网络调试操作的调试表。
图8是根据本发明的一个实施例的可在网络交换机上实现的例示性调试表条目的示图,该调试表条目用于增加由网络控制器使用的交换机处的计数器以在网络上进行调试操作。
图9是根据本发明的一个实施例的可以由控制器在通过监视保持在网络交换机上的分组计数器以确定网络分组是否已经丢失或者是否已经采取通过网络的不正确的路径而进行网络调试操作时进行处理的例示性步骤的流程图。
图10是根据本发明的一个实施例的可以由控制器在进行网络调试操作以确定网络中的路径是否已经随时间变化时使用的例示性步骤的流程图。
图11是根据本发明的一个实施例的可以由控制器在进行网络调试操作以确定在网络中的交换机上实现的流表条目之间是否存在冲突时进行处理的例示性步骤的流程图。
图12是根据本发明的一个实施例的可以由控制器在进行网络调试操作以确定在网络中的交换机之间是否存在大象分组流时进行处理的例示性步骤的流程图。
图13是根据本发明的一个实施例的示出宽调试表条目可以如何被控制器生成并被控制器缩窄以用于检测网络中的交换机之间的大象流的例示图。
具体实施方式
诸如因特网和耦合到因特网的本地和区域网络之类的网络依赖于基于分组的交换机。这些交换机(其在本文中有时被称为网络交换机、分组处理系统或分组转发系统)可以基于地址信息来转发分组。以这种方式,由分组源传送的数据分组可以被传递到分组目的地。在网络术语中,分组源和目的地有时被称为端主机。端主机的示例是个人计算机、服务器和诸如使用有线或无线技术来访问网络的便携式电子装置之类的其他计算设备。
网络交换机在能力方面从相对小的以太网交换机和无线接入点到包括多个线路卡、冗余电源和监控能力的基于大型机架的系统。对于网络,包括来自多个供应商的设备并不罕见。来自不同供应商的网络交换机可以被互连以形成分组转发网络,但是由于它们的操作系统和控制协议之间的不兼容性,可能难以以集中方式管理。
可以通过将公共跨平台控制模块(在本文中有时称为控制器客户端)并入每个网络交换机中来克服这些潜在的不兼容性。诸如控制器服务器或分布式控制器服务器之类的集中式跨平台控制器可以通过相应的网络链路与每个控制客户端交互。使用跨平台控制器和对应的控制器客户端允许集中管理潜在全异的网络交换设备。
对于一种例示性配置(其在本文中有时被描述为示例),由诸如图1的控制器服务器18(有时称为控制器18、交换机控制器18或网络控制器81)之类的一个或多个控制器服务器提供集中控制。控制器服务器18可以实现在独立的计算机上、计算机集群上、分布在多个位置中的一组计算机上、嵌入在网络交换机内的硬件上或者其他合适的计算设备12上。控制器服务器18可以作为单个计算机上的单个进程运行或者可以由于冗余而分布在数个主机上。使用分布式布置可以帮助向网络10针对意外的网络分割(例如,两个校园之间的网络链路被中断的情况)而提供弹性。
在分布式控制器布置中,控制器节点可以使用控制器内协议来交换信息。例如,如果新的端主机连接到仅连接到第一控制器节点的网络硬件(例如,交换机),则第一控制器节点可以使用控制器内协议来向其他控制器节点通知存在新的端主机。如果需要,交换机或其他网络组件可被连接到多个控制器节点。其中单个控制器服务器用来控制相关联的交换机的网络的布置在本文中有时被描述为示例。
图1中的控制器服务器18可以收集关于网络10的拓扑的信息。例如,控制器服务器18可以通过网络发送链路层发现协议(LLDP)探测分组以发现网络10的拓扑。控制器服务器18可以使用关于网络拓扑的信息和关于网络设备的能力的信息来确定分组流经网络的适当路径。一旦已经识别出适当的路径,控制器服务器18可以向网络10中的硬件发送对应的设置数据,以确保分组根据需要流经网络。诸如这些的网络配置操作可以在系统设置操作期间响应于新传送的数据分组(即,尚未为之设立预先存在的路径的分组)的出现而在后台连续地进行,或者在网络操作期间的任何其他期望的时间而在后台连续地进行。
控制器服务器18可以用来实现网络配置规则20。规则20可以指定哪些服务可用于各种网络实体。作为示例,规则20可以指定网络10中的哪些用户(或哪种类型的用户)可以访问特定服务器。作为另一示例,规则20可以包括识别网络流量和要在识别的网络流量上进行的服务的服务插入策略。规则20例如可以被保持在计算设备12处的数据库中。
在相应的网络交换机14处的控制器服务器18和控制器客户端30可以使用网络协议栈来通过网络链路16进行通信。
每个交换机(例如,每个分组转发系统)14可以具有输入—输出端口34(有时被称为网络交换机接口)。线缆可以用来将各件设备连接到端口34。例如,诸如个人计算机、web服务器和其他计算设备之类的端主机可被插入端口34。端口34还可以用来将交换机14中的一个连接到其他交换机14。
分组处理电路32可以用在将分组从端口34中的一个转发到端口34中的另一个中,并且可以用在对传入分组进行其他合适的动作中。分组处理电路32可以使用诸如专用高速交换机电路之类的一个或多个集成电路来实现,并且可以用作硬件数据路径。如果需要,在控制单元24上运行的分组处理软件26可以用在实现软件数据路径中。
控制单元24可以包括用于存储和运行控制软件的处理和存储器电路(例如,一个或多个微处理器、存储器芯片和其他控制电路)。例如,控制单元24可以存储和运行诸如分组处理软件26之类的软件,可以存储流表28,并且可以用来支持控制器客户端30的操作。
控制器客户端30和控制器服务器18可以符合网络交换协议,诸如OpenFlow协议(参见,例如,OpenFlow交换机规范版本1.0.0、1.3.1或OpenFlow协议的其他版本)。控制器客户端30中的一个或多个客户端也可以符合其他协议(例如,简单网络管理协议)。使用OpenFlow协议或其他合适的协议,控制器服务器18可以为控制器客户端30提供确定交换机14如何处理来自输入—输出端口34的传入分组的数据。
利用一个合适的布置,来自控制器服务器18的流表数据可以存储在诸如流表28之类的流表中。流表28的条目可以用在配置交换机14(例如,分组处理电路32和/或分组处理软件26的功能)中。在典型的情形下,流表28用作用于流表条目的高速缓冲储存器,并且这些流表条目的对应版本被嵌入在由分组处理电路32的电路维护的设置内。然而,这仅仅是例示性的。流表28可以用作交换机14中的用于流表条目的专用储存器,或者可以被省略以有利于分组处理电路32内的流表储存资源。一般而言,流表条目可以使用任何合适的数据结构(例如,一个或多个表、列表等)来存储。为了清楚起见,流表28的数据(无论保持在控制单元24中的数据库中还是嵌入在分组处理电路32的配置内)在本文中被称为形成流表条目(例如,流表28中的行)。
存储确定交换机14如何处理传入分组的数据的流表28的示例仅仅是例示性的。如果需要,可以使用任何分组转发决策引擎来代替流表28以帮助分组转发系统14做出关于如何转发网络分组的决定,或者除了流表28之外使用任何分组转发决策引擎来帮助分组转发系统14做出关于如何转发网络分组的决定。作为示例,分组转发决策引擎可以基于网络分组的属性(例如,基于网络协议头部)来引导分组转发系统14将网络分组转发到预定端口。
任何期望的交换机可以设置有与控制器服务器通信并由控制器服务器控制的控制器客户端。例如,交换机14可以使用运行控制软件并省略分组处理电路32的通用处理平台来实现。作为另一个示例,交换机14可以使用耦合到一个或多个高速交换集成电路(“交换机IC”)的控制电路来实现。作为又一示例,交换机14可被实现为具有多个线路卡的基于机架的系统中的线路卡,每个线路卡具有其自己的分组处理电路。如果需要,控制器服务器可以在基于机架的系统中、另一基于机架的系统中的一个或多个线路卡上或在耦合到网络的其他计算设备上实现。
如图2中所示,控制器服务器18和控制器客户端30可以使用诸如网络协议栈58和网络协议栈60之类的网络协议栈,通过网络路径66进行通信。栈58和60例如可以是LinuxTCP/IP栈或VxWorks操作系统中的TCP/IP栈(作为示例)。路径66例如可以是支持交换机14和外部设备之间的网络连接的路径(例如,图1中的网络路径16),或者可以是基于机架的系统中的骨干路径。其中路径66是诸如路径16之类的网络路径的布置在本文中有时被描述为示例。
控制协议栈56用作网络协议栈58和控制软件54之间的接口。控制协议栈62用作网络协议栈60和控制软件64之间的接口。在操作期间,当控制器服务器18与控制器客户端30通信时,控制协议栈56生成并解析控制协议消息(例如,用来激活端口或将特定流表条目安装到流表28中的控制消息)。通过使用图2中所示类型的布置,在控制器服务器18和控制器客户端30之间的链路上形成网络连接。控制器服务器18和控制器客户端30可以使用传输控制协议(TCP)或用户数据报协议(UDP),通过因特网协议(IP)网络连接进行通信。当在控制器服务器18和控制器客户端30之间通过网络连接进行通信时可以使用的控制协议的示例包括SNMP和OpenFlow协议栈版本1.0.0(作为示例)。
流表28包含具有多个字段(有时称为头部字段)的流表条目(例如,表中的行)。已经由交换机14接收的分组中的字段可以与流表中的字段进行比较。每个流表条目可以具有相关联的动作。当分组中的字段与流表条目中的字段之间存在匹配时,可以采取针对该流表条目的对应动作。
图3中示出了例示性的流表。如图3中所示,表28可以具有流表条目(行)68。每个流表条目可以与头部70、动作72和统计74相关联。头部70可以各自包括多个头部字段76。每个流表条目中的动作指示当在分组中的字段和该流表条目的头部中的对应字段之间检测到匹配时交换机14将对分组进行什么动作。交换机14可以将统计数据保持在流表28的统计部分中,当期望获得关于交换机14的性能的信息时,该统计数据可以被控制器服务器18查询。
头部70中的头部字段(以及每个传入分组中的对应字段)可包括以下字段:进入端口(即,交换机14中正在通过其接收分组的物理端口的身份)、以太网源地址、以太网目的地址、以太网类型、虚拟局域网(VLAN)标识(有时称为VLAN标签)、VLAN优先级、IP源地址、IP目的地址、IP协议、IP ToS(服务类型)位、传输源端口/因特网控制消息协议(ICMP)类型(有时称为源TCP端口)以及传输目的地端口/ICMP代码(有时称为目的地TCP端口)。如果需要,可以使用其他字段。例如,可以使用网络协议字段和协议端口字段。
每个流表条目(流条目)与零个或多个动作相关联,所述动作规定交换机如何处理匹配分组。如果不存在转发动作,则优选地丢弃分组。当在流表条目中的头部字段和分组字段之间检测到匹配时可以由交换机14采取的动作可以包括以下动作:转发(例如,ALL用来在不包括传入接口的所有接口上发出分组,CONTROLLER用来封装分组并将其发送到控制器服务器,LOCAL用来将分组发送到交换机的本地联网堆栈,TABLE用来进行流表28中的动作,IN_PORT用来从输入端口发出分组,NORMAL用来利用使用例如传统的级别2的VLAN和级别3处理通过交换机支持的默认转发路径来处理分组,以及FLOOD用来沿着不包括传入接口的最小转发树泛洪分组)。可以由交换机14采取的附加动作包括:通过附接到端口的队列来转发分组的入队动作以及丢弃动作(例如,丢弃与没有指定动作的流表条目匹配的分组)。交换机14还可以支持修改字段动作。可以采取的修改字段动作的示例包括:设置VLAN ID、设置VLAN优先级、剥离VLAN头部、修改VLAN标签、修改以太网源MAC(媒体访问控制)地址、修改以太网目的地MAC地址、修改IPv4源地址、修改IPv4ToS位、修改传输目的地端口。修改字段动作可以用在重写网络分组中与流表条目匹配的部分。
图4是具有三个流表条目的例示性流表。条目包括具有通配符(例如,“*”符号)的字段。当在特定字段中存在通配符时,无论传入分组中的字段的特定值如何,所有传入分组将被认为相对于该字段形成“匹配”。如果需要,流表条目的一个或多个字段可以包括部分通配符。附加字段可以与附加分组信息(例如,网络分组的分组头部信息)匹配。
图4的表的第一行的条目引导流表条目在其中操作的交换机进行以太网交换。具体而言,带有匹配以太网目的地地址的传入分组被转发到端口3。
图4的表的第二行的条目例示出了如何可将交换机配置为进行因特网路由(即,基于分组的目的地IP地址来转发分组)。
图4的表的第三行包含例示出如何可将交换机配置为进行防火墙的条目。当接收到目的地IP端口值为80的分组时,丢弃该分组(即,交换机被配置为用作阻塞端口80流量的防火墙)。
图4中所示类型的流表条目可以在系统设置操作期间由控制器服务器18加载到交换机14中,或者可以响应于在控制器服务器18处对来自诸如交换机14之类的交换机的分组的接收和处理而被从控制器服务器18实时地提供给交换机14。在带有许多交换机14的网络中,每个交换机可以设置有适当的流表条目以形成通过网络的路径(例如,每个交换机可以设置有用于该交换机的相应的流表条目,或者公共流表条目可以被发送到多个交换机)。
可以由交换机14在处理在输入—输出端口34上接收到的分组时进行的例示性步骤在图5中示出。在步骤78处,交换机14在其端口之一(例如,图1的输入—输出端口34之一)上接收分组。
在步骤80处,交换机14将接收到的分组的字段与该交换机的流表28中的流表条目的字段进行比较,以确定是否存在匹配。流表条目中的一些字段可以包含完整值(例如,完整地址)。其他字段可以包含通配符(即,标记有“自由”通配符“*”的字段)。其他字段可以具有部分完整的条目(例如,部分地通配的部分地址)。一些字段可以(例如,通过将TCP端口号限制为1和4096之间的值)使用范围,并且实际上使用该范围来实现一种类型的部分通配。在接收到的分组和流表条目之间进行逐字段比较时,交换机14可以考虑流表条目中的每个字段是否包含没有任何通配的完整值、具有某一通配的部分值或者通配符(即,完全通配字段)。
如果在步骤80的操作期间确定在分组的字段和流表条目的对应字段之间不存在匹配,则交换机14可以通过链路16将分组发送到控制器服务器18(步骤84)。
如果在步骤80的操作期间确定在分组和流表条目之间存在匹配,则交换机14可以进行与该流表条目相关联的动作,并且可以更新该流表条目的统计字段中的计数器值(步骤82)。然后,处理可以循环回到步骤78,使得另一个分组可以被交换机14处理,如线86所示。
图6是其中交换机可以由控制器18控制的例示性网络100的示图。控制器18可以是控制器服务器或跨多个计算装置实现的分布式控制器。如图6中所示,网络100可以包括交换机C1、C2、C3、E1、E2、E3、E4和E5。控制器18可以经由控制路径66耦合到网络100的交换机。控制器18可以使用控制路径66(例如,通过提供诸如图3的流表条目68之类的流表条目)来控制交换机。
交换机包括诸如交换机和端主机之类的其他网络装置连接到的端口。例如,交换机E1包括端口P1-P6,交换机E2包括端口P1-P6,交换机E3包括端口P1、P4、P5和P6,并且交换机E4包括端口P1、P2、P4、P5和P6。网络100可以包括端主机,诸如耦合到网络100的交换机的端口的端主机EH1、EH2、EH3、EH4、EH5和EH6。直接耦合到端主机的交换机有时可被称为边缘交换机,而仅仅使其他交换机互连并且不直接耦合到端主机的交换机可被称为核心交换机。在图6的示例中,交换机E1、E2、E3、E4和E5是边缘交换机,因为它们耦合到端主机。交换机C1、C2和C3是核心交换机,因为交换机C1、C2和C3使边缘交换机E1、E2、E3、E4和E5互连并且不直接耦合到端主机。诸如交换机C1、C3和C2之类的核心交换机可以将网络100耦合到其他网络102(例如,包括交换机和端主机的其他网络)。其中边缘交换机直接耦合到核心交换机的图6的示例仅仅是例示性的。如果需要,可以在边缘和核心交换机之间插入额外的交换机。网络100可以包括由控制器18控制的客户端交换机(诸如交换机C1、C2、C3、E1、E2、E3、E4和E5),并且可以例如包括不由控制器18控制的非客户端交换机。
如果需要,可以使用网络机架的计算设备来实现交换机。例如,网络100中的交换机可以使用诸如对应网络机架的线路卡之类的计算设备来实现。网络机架上的软件交换机有时可被称为管理程序交换机。管理程序交换机可以使用专用电路或使用分立计算设备上的(例如,线路卡上的)软件来实现。然而,这种软件交换机通过插入到软件交换机所实现于的计算设备的专用物理端口的线缆而耦合到网络的其余部分。
特别是在网络上形成大量交换机的情形下,诸如控制器18之类的控制器高效地控制交换机的网络可能是挑战性的。例如,网络拓扑可以被网络管理员修改或由于装置故障而被修改。在这种情形下,网络修改可能潜在地导致控制器处的无效配置和网络中的低效分组路由或分组丢失。在带有大量交换机的网络中,可能难以精确定位网络中的分组丢失的源或分组路由低效率的源(例如,可能有必要识别分组丢失或路由低效率的源/位置以便校正分组丢失或低效率,使得保持高效的网络)。在一些情形下,控制器18可以将测试分组注入网络100中以进行调试。然而,将测试分组注入网络可能不合需要地增加网络上的流量负载,并且可能不完全表示在正常分组转发操作期间网络如何表现的特性。
如果需要,控制器18可以主动监视网络100中的交换机,用于实时地在网络100上进行网络调试(debug)操作。控制器18可以通过为网络中的交换机提供除了用于在交换机上实现的流表中使用的流表条目之外的用于在专用调试表中使用的调试表条目来在网络100上进行调试操作。
图7是诸如物理或管理程序交换机之类的交换机130的例示性框图。交换机130可以例如是诸如图6中的边缘交换机E1、E2、E3或E4之类的边缘交换机,或者可以是诸如交换机C1、C2或C3之类的核心交换机。如图7中所示,交换机130可以包括诸如端口P1、P2、P3、P4、P5、P6等的端口。交换机130可以包括用于通过网络100(例如,从分组源到分组目的地)路由网络分组的流表,诸如流表80(例如,诸如图3中的流表28之类的流表)。交换机130可以包括与流表80分离的调试表,诸如入口调试表82和出口调试表84。交换机130可以包括诸如交换结构84之类的交换电路以及一个或多个计数器88(例如,实现一个或多个硬件和/或软件计数器的计数模块)。
流表80可以包括L2转发模块(例如,与传入分组的以太网地址头部匹配的条目)和/或L3转发模块(例如,与传入分组的IP地址头部匹配的条目)。一般而言,流表80可以包括用于与传入网络分组匹配的任何期望的字段,其引导交换机80将网络分组路由到网络100中的适当的分组目的地(例如,到适当的端口)。交换结构84可被配置为(例如,基于在流表模块80中做出的确定)将网络分组路由到适当的端口,使得网络分组被转发到网络100的期望部分。在交换机端口之一处接收到的网络分组可以由流表模块80在确定如何转发网络分组时进行处理。由流表80进行的操作可以由控制器18(例如,基于表80中的流表条目)控制。流表80中的条目可以由控制器18基于网络100的期望网络策略(例如,期望的分组路由规则、访问控制列表或其他网络策略)而生成,用于控制遍及网络100的分组转发。
调试表82和86可以由控制器18生成并提供给交换机130以用于在网络100上进行调试操作。在网络100的建立期间,当控制器18的管理员或用户期望在网络上发起或进行调试操作时或在任何其他期望的时间,调试表82和86可被与流表80中的流表条目同时提供。交换机130上的调试表可包括与从流表80接收到的网络分组匹配的流表条目(例如,网络分组可以首先对流表80进行匹配,然后可以随后对调试表82进行匹配)。在交换机130上实现的调试表在本文中可被定义为对接收到的网络分组进行匹配的调试表条目(例如,为了进行调试操作而专门生成的流表条目)的流表,其中调试表条目的动作字段指定计数器88中的一个或多个将被增加,和/或引导交换机130将接收的网络分组(或接收到的网络分组的副本)转发到控制器18。与流表80形成对比,调试表82和86不包含与通过网络100(例如,从分组源到分组目的地)转发网络分组相关联的动作字段。
当网络分组对表82或86中的调试表条目进行匹配时,交换机130上的调试表可以增加计数器88以用在调试网络100中,并且如果需要,可以向控制器18提供网络分组以供控制器18分析(例如,用于调试网络100)。调试表82可以用来增加用于入口分组的计数器和/或向控制器18提供入口网络分组(例如,从流表80接收并提供给交换结构84的输入的分组),而调试表84可以用来增加用于出口分组(例如,由交换结构84输出的用于从交换机130的传输的分组)的计数器和/或将出口分组提供给控制器18。调试表82和86可以与流表80分离并且不同(例如,流表80可以与网络转发操作相关联而不进行调试操作,而调试表82和86可以用来进行调试操作而不进行接收到的网络分组的网络转发)。
模块80、82和86可以使用相应的专用电路来实现,可以使用共享的专用电路来实现,或者可以使用处理电路上的软件来实现。例如,这些模块可以使用分组处理电路32和/或图1中的分组处理软件26来实现,并且可以基于由控制器提供的控制消息(例如,流表条目)来进行功能。控制器18可以生成用于交换机130的调试表条目以控制交换机130进行期望的调试操作。
图8是控制器18可以生成并提供给交换机130以用于进行网络调试操作的例示性调试表条目。如图8中所示,流表条目83可以包括源MAC地址字段中的端主机EH1的MAC地址和目的地MAC地址字段中的端主机EH2的MAC地址(例如,调试表条目83可以由控制器18生成以调试网络100中在端主机EH1和EH2之间的一部分)。调试表条目83可以对具有源MAC地址MACEH1和目的地MAC地址MACEH2的所有分组进行匹配,并且可以在接收到匹配分组时增加计数器88中的一个或多个,并且可以可选地经由控制路径66将匹配分组的副本传送到控制器18(例如,如由调试表条目83的动作字段所指定的)。
流表条目83可被提供给网络100中的一个或多个物理或管理程序交换机以用于进行调试操作。例如,流表条目83可被提供给交换机E1。在这种情形下,由交换机E1从端主机EH1(即,具有MAC地址MACEH1)接收到的并且去往端主机EH2(即,具有MAC地址MACEH2)的任何网络分组可以根据网络转发流表80中的匹配流表条目来路由(例如,到如由表80中的适当条目所指示的连接到端主机EH2的端口P2),而交换机E1上的计数器88如从调试表条目83的动作字段确定地被增加(并且如果需要则将网络分组的副本提供给控制器18)。该示例仅仅是例示性的,并且如果需要,调试表条目可以对任何期望的分组头部字段进行匹配。
在控制器18已经生成调试表条目并且将调试表条目提供给网络100中的交换机以用于在调试表82/86中实现之后,控制器18可以从交换机上的计数器88检索计数信息(例如,响应于网络分组对在交换机上实现的调试表中的条目进行匹配而生成的计数信息)。例如,控制器18可以周期性地从网络100中的一些或所有交换机检索计数信息,可以在将条目提供给交换机之后在预定时间检索计数信息,可以响应于确定需要网络上的调试操作而检索计数信息,可以在被指示为是控制器18的管理员时或在任何其他期望的时间检索计数信息。在另一个合适的布置中,交换机130可以周期性地将计数信息传送到控制器18,可以在从控制器18接收到传送计数信息的指令时向控制器18传送计数信息,可以在确定需要调试操作时传送计数信息,或者可以在任何其他期望的时间传送计数信息。
计数器88可以包括一个或多个单独的计数器,所述一个或多个单独的计数器当分组对交换机上的调试表条目进行匹配时可以各自被增加。例如,计数器88可以包括第一计数器和第二计数器。在交换机上实现的调试表条目可以指定在接收到匹配的分组时增加的特定计数器。计数器88可存储与已增加的计数N的数目对应的计数值并且/或者可存储与已增加的计数的速率(例如,在本文中有时被称为计数速率值)对应的值dN/dT(例如,计数值随时间的增加)。控制器18可以从交换机130检索计数值或计数速率值。计数值和计数速率值可以指示计数器88中的一个或多个计数器正在多么快速地增加(例如,指示接收到多少个对对应的调试表条目进行匹配的网络分组)。在另一个合适的布置中,控制器18可以连续地或周期性地从计数器88检索计数值N,并且可以基于检索到的计数值N来计算计数速率值dN/dT。控制器18可以处理计数器信息以用于在网络100上进行调试操作。例如,控制器18可以监视来自一个或多个交换机的计数器信息,以确定网络分组是否正被丢失或正在采取通过网络100的不正确的路径。
当进行网络调试操作时,控制器18可以确定网络分组是否正在采取通过网络100的不正确的(不期望的)路由,或者是否正在发生分组丢失(例如,分组是否正在网络中被不期望地丢弃)。图9示出了可以由控制器18进行以监视网络100中的交换机上的计数器88用于确定是否正在发生分组丢失或分组是否正在采取通过网络的不正确的路径的例示性步骤的流程图。
在步骤200处,控制器18可以识别要在其上进行调试操作的感兴趣的网络区域。例如,控制器18可以将源和目的地(例如,两个端主机)或网络100的区域(例如,网络中可以或可以不相邻的一组交换机和/或端主机)识别为感兴趣的区域。在图6中所示的示例中,控制器18可以选择网络区域70(如由虚线所指示)作为要在其上进行调试操作的感兴趣的区域。控制器18在图6的网络100的区域70上进行调试操作的情形在本文中被描述为示例。一般而言,控制器18可以对任何期望的交换机网络的任何期望的区域进行调试生成。
在步骤202处,控制器18可以通过为区域70中的交换机提供对应的流表条目来配置感兴趣的区域70中的交换机。例如,控制器18可以向交换机提供流表条目80用于进行正常网络路由功能,并且可以以调试表82和86的形式向交换机提供流表条目。提供给交换机的调试表条目可以包括指示交换机在接收到匹配分组时增加计数器88和/或指示交换机将匹配分组路由到控制器18的条目。
控制器18可以根据在交换机中的流表80上实现的网络转发规则来预期网络分组流经感兴趣的区域70。例如,控制器18可以向区域70中的交换机提供流表条目,其指示来自源端主机EH1的分组通过交换机E1、C3和E2到目的地端主机EH2(例如,实现网络转发规则,即从端主机EH1到端主机EH2的分组仅将通过交换机E1、C3和E2而被转发到端主机EH2)。然而,网络分组偶尔可能在感兴趣的区域70上丢失(丢弃),或者可能采取通过网络的不正确的路径。控制器18可以提供指示交换机增加对应的计数器88的调试表条目,并且控制器18可以监视区域70中的交换机上的计数器值,以确定是否正在发生分组丢失或不正确的分组路由(例如,确定分组是否被丢弃或者分组是否没有正在采取在端主机EH1和EH2之间的通过交换机E1、C3和E2的预期转发路径)。
在步骤204处,控制器18可以监视区域70中的交换机上的计数值(例如,计数器值)(例如,响应于将接收到的分组匹配到调试表条目而生成的计数)。例如,控制器18可以检索和监视在区域70中在交换机E1、E2、C3和C1处生成的计数值,以用于进行调试操作。
在步骤206处,控制器18可以分析所监视的计数,以确定是否已经发生分组丢失。例如,控制器18可以比较从区域70中的相邻交换机接收到的计数值,以确定计数值之间是否存在失配。如果存在失配,则控制器18可以确定在这两个交换机之间发生了分组丢失,并且可以向控制器18的用户(例如,网络管理员)通知该分组丢失(例如,警告或其他通知可被提供给用户,其指示已经发生分组丢失和/或指示在其之间已经发生分组丢失的交换机)。例如,如果交换机E1对于在交换机E1和E2之间路由的所选择的匹配网络分组具有计数器值150,并且交换机E2对于该网络分组具有计数值50,则控制器18可以确定在交换机E1和E2之间已经发生分组丢失(例如,因为存在在交换机E1处计数而未在交换机E2处计数的100个匹配分组)。控制器18随后可以向用户或管理员通知已经发生了分组丢失(例如,可以向用户发送识别已经发生分组丢失的警告,可以识别分组丢失的大小(例如,100个分组),并且/或者可以识别与所识别的分组丢失相关联的交换机E1和E2)。
在步骤208处,控制器18可以分析所监视的计数,以确定网络分组是否正在采取通过网络100的不正确的路径。例如,控制器18可以在交换机C1处测量与所选择的旨在经由交换机E1、C3和E2在端主机EH1和EH2之间路由的网络分组对应的计数器值。如果交换机C1通过对所选择的从端主机EH1到端主机EH2的分组匹配对应的调试表条目来生成计数值,则控制器18由此可以确定所选择的网络分组中的一些被不正确地路由到交换机C1,而不是沿着从交换机E1到交换机C3到交换机E2的预期路径被转发(例如,控制器18可以确定对端主机EH1和EH2之间的分组采取了不正确的路径)。如果需要,控制器18可以向系统管理员发出通知,以向管理员通知分组正在采取不正确的路径(例如,可以向管理员警告正在采取不正确的路径,可以识别已被采取的通过交换机C1的不正确的路径,并且/或者可以识别多少分组采取了正确和不正确的路径)。
图9的示例仅仅是例示性的。如果需要,可以仅进行步骤206和208中的一个(例如,可以省略步骤206和208中的一个)。步骤206和208可以以任何期望的次序进行(例如,步骤208可以在步骤206之前进行,与步骤206并行地进行等)。如果需要,控制器18可以监视计数器速率值dN/dT以用于进行调试操作。例如,控制器18可以定义在其间测量计数器速率dN/dT的时间窗口dT,并且可以处理和/或比较计数器值N在所定义的窗口上如何增加,以识别分组丢失或者以用于进行任何其他期望的调试操作。
在另一个合适的布置中,控制器18可以(例如,通过向网络中的交换机提供期望的调试表条目并监视计数器值)进行网络调试操作,所述网络调试操作确定网络路径在网络100中是否已变化。图10示出了可以由控制器18进行以确定网络路径是否已经随时间变化的例示性步骤的流程图。
在步骤210处,控制器18可以向网络100中的所选择的交换机提供宽调试表条目,并且所选择的交换机可以在其对应的调试表(例如,调试表82和86中的一个或两者)中实现该宽调试表条目。例如,控制器18可以向交换机E1提供宽调试表条目。宽调试表条目可以具有动作字段,该动作字段将匹配分组转发到控制器18,并且针对接收到的每个匹配网络分组增加该交换机上的对应的计数器88,并且将匹配分组转发到控制器。例如,宽调试表条目可以对所有传入网络分组进行匹配,并且可以将所有接收到的分组转发到控制器(例如,宽调试表条目可以具有完全通配的字段以及用来增加对应的计数器88并用来将匹配分组发送到控制器18的动作字段)。
在步骤212处,所选择的交换机可以将第一接收到的网络分组转发到控制器18(例如,因为第一分组对宽调试表条目进行匹配)。所选择的交换机可以在将第一接收到的网络分组匹配到宽调试表条目时,增加与宽调试表条目相关联的第一计数器88。
在步骤214处,控制器18可以从所选择的交换机接收第一网络分组,并且可以生成与具有比宽调试表条目更高的优先级的第一接收到的分组匹配的更窄的调试表条目。在网络100中的交换机上实现的调试表条目可以具有指示用于将条目匹配到网络分组的优先级的对应的优先级字段。例如,对同一网络分组的头部字段进行匹配的两个调试表条目可以具有两个不同的对应动作字段。在这种情况下,(例如,如由调试表条目中的优先级字段所指示的)具有较高优先级的调试表条目的动作可被进行。
更窄的调试表条目可以例如在步骤212处对被路由到控制器18的网络分组的头部字段进行匹配,并且可以对由所选择的交换机通过其接收分组的交换机端口进行匹配。例如,在步骤212处接收到的分组可以具有源MAC地址MACEH1和目的地MAC地址MACEH2,并且可以已经由交换机E1通过端口P1接收。在这种情形下,更窄的调试表条目可以对具有源MAC地址MACEH1、目的地MAC地址MACEH2并且在交换机E1处通过端口P1接收的网络分组进行匹配。所生成的更窄的调试表条目可以具有动作字段,该动作字段指示交换机在接收到的网络分组与更窄的调试表条目匹配时增加第二计数器88,而不将匹配分组转发到控制器18。控制器18可以向所选择的交换机提供与第一分组匹配的更窄的调试表条目,并且所选择的交换机可以在其对应的调试表中实现更窄的调试表条目。
在步骤216处,所选择的交换机(例如,在实现宽调试表条目和具有比宽调试表条目更高优先级的更窄的调试表条目之后)可以接收第二网络分组。如果第二网络分组与在所选择的交换机上实现的更窄的调试表条目匹配(例如,如果第二分组具有相同的头部并且通过与第一分组相同的交换机端口被接收),则处理可以进行到步骤220,如由路径218所示。在步骤220处,所选择的交换机可以增加与更窄的调试表条目相关联的第二计数器。
在步骤222处,控制器可以通过在网络上的交换机之间比较计数器速率来确定交换机是否正常地操作用于负载平衡。例如,控制器18可以确定交换机E1和E2是否正在以期望的方式(例如,交换机E1和E2中的每个上的计数器是否以与两个交换机之间的期望的负载平衡方案一致的方式增加)进行负载平衡。如果在步骤216处接收到的第二分组仅与宽调试表条目匹配(但不与更窄的调试表条目匹配),则处理可以进行到步骤226,如由路径224所示。在步骤226处,所选择的交换机可以将分组转发到控制器18,并(例如,根据宽调试表条目的动作字段)增加第一计数器。
在步骤228处,控制器可以将第二分组与更窄的调试表条目(例如,在步骤214处生成的用来匹配第一分组的调试表条目)进行比较,以确定网络路径是否已经变化。例如,控制器18可以将头部字段和关于通过其接收第二分组的交换机端口的信息与更窄的调试表条目进行比较。如果控制器18确定第二分组是由与第一分组相同的源端主机生成的(例如,如果源地址字段在第一分组和第二分组之间是相同的),但是第二分组是通过与第一分组不同的交换机端口接收的(例如,在E1的端口P2处而不是通过其接收第一网络分组的端口P1处接收的),则(例如,由于由相同源端主机EH1生成的分组遵循耦合到交换机上的不同端口的两个不同路径)控制器18可以确定网络100中的路径(路由)已经变化。控制器18随后可以向系统管理员通知网络中的路径已经变化(例如,控制器18可以识别所选择的交换机和/或路径已经如何变化)。
如果需要,处理可以如由路径229所示地循环回到步骤214,并且控制器18可以(例如,基于与在所选择的交换机处接收到的附加网络分组相关联的计数器信息)针对网络中的附加路径变化继续监视交换机。如果需要,可以对网络上的其他交换机重复图10的步骤以检测路径变化。例如,可以对网络100中的所有交换机或网络100中的交换机的子集进行图10的步骤。如果需要,控制器18的系统管理员可以识别要对网络100中的哪些交换机进行路径变化检测操作。
如果需要,控制器18可以使用在交换机上实现的调试表来进行识别在网络100中的交换机上实现的流表条目之间的冲突的网络调试操作。图11示出了可由控制器18进行以识别网络100中的流表条目之间的冲突的例示性步骤的流程图。例如,当在交换机上实现的期望的流表条目没有正常工作时(例如,当分组没有根据期望的流表条目而被路由时),可以例如由控制器18进行图11的步骤,以识别对应流表中的可能防止交换机正常地实现流表条目的任何冲突。
在步骤230处,控制器18可以将当前优先级设置为低(例如,要生成的调试表条目的当前优先级)。
在步骤232处,控制器18可以识别正常网络流表80中的用于测试的流表条目(例如,在所选择的交换机上实现的流表条目)。例如,控制器18可以选择当在交换机上实现时未正常工作的流表条目以用于测试。在这种情形下,在所选择的流表条目和在交换机上实现的防止所选择的流表条目正常工作的其他流表条目之间可能存在冲突。
在步骤234处,控制器18可以选择识别出的流表条目的给定字段(例如,源IP地址字段、目的地MAC地址字段、TCP端口字段等)用于进行处理。作为示例,控制器18可以选择源IP地址字段用于进行处理。
在步骤236处,控制器18可以为调试表82/86生成具有所选择的字段和当前(低)优先级的调试表条目。例如,控制器18可以生成具有所选择的流表条目的源IP地址字段的调试表条目。控制器18可以将所生成的调试表条目提供给所选择的交换机。
在步骤238处,控制器18可以增加当前优先级(例如,到更高的优先级)。
在步骤240处,控制器可以从所选择的流表条目中选择另外的字段用于进行处理。处理可以如由路径241所示循环回到步骤236,以生成具有所选择的流表条目的所有当前选择和先前选择的字段并且具有增加的优先级的附加调试表条目。例如,附加调试表条目可以具有所选择的流表条目的源IP地址字段、所选择的流表条目的源MAC地址字段以及比第一调试表条目更高的优先级。附加调试表条目可被提供给所选择的交换机。
可以重复该处理,直到已经处理了所选择的流表条目的每个字段为止。以这种方式,可以为所选择的交换机生成与所选择的流表条目中的字段的数量对应的调试表条目的数量,其中每个连续的调试表条目包括所选择的流表条目的先前字段和来自所选择的流表条目的一个附加字段。一旦已经处理了所选择的流表条目的所有字段(例如,并且已经生成了对应数量的调试表条目并将其提供给所选择的交换机),则处理可以进行到步骤244,如由路径242所示。每个调试表可以在传入分组上进行匹配,并且当传入分组与该调试表条目匹配时可以增加对应的相应计数器并且可以将传入分组转发到控制器。
在步骤244处,控制器18可以识别关于交换机上的哪些计数器正在增加的信息,并且可以基于识别出的计数器信息来识别所选择的流表条目中与所选择的交换机上的其他流表条目有冲突的流表字段。例如,与被增加的第一计数器值对应的调试表条目可以识别存在冲突的字段(例如,存在冲突的字段可以是最后一个调试表条目中的未增加对应的计数器的附加字段)。控制器18可以向系统管理员通知引起冲突的流表字段(例如,故系统管理员可以生成解决冲突的新的流表条目)。
如果需要,控制器18可以进行网络调试操作,以识别网络100中的两个交换机之间的过大数据流(例如,所谓的“大象流”)。图12示出了可由控制器18进行以识别网络中的大象流的例示性步骤的流程图。
在步骤250处,控制器18可以生成与所有接收到的分组流匹配的具有低优先级的宽调试表条目并将其提供给网络100中的交换机(例如,具有所有通配的匹配字段的调试表条目)。
在步骤252处,控制器18可以监视交换机上的计数器的增加速率dN/dT。例如,控制器18可以从网络100中的第一和第二选择的交换机检索计数器数据,并且可以监视计数器的增加速率(例如,控制器18可以监视来自与宽调试表条目相关联的交换机E1和E2的第一计数器88的计数速率值dN/dT)。
在步骤254处,控制器18可以选择宽调试表条目。
在步骤256处,控制器18可以将所选择的调试表条目分割为具有更高优先级并且各自在所选择的交换机中的每个处具有其自己的关联计数器88的两个或更多个更窄的调试表条目(例如,控制器18可以进行二进制搜索操作或者可以将更宽的条目划分为两个或更多个更窄的调试表条目)。控制器18可以向所选择的交换机提供更窄的调试表条目。例如,如果宽调试表条目与诸如IP地址IP0-IP100之类的源IP地址范围上的分组匹配,则控制器18可以将宽调试表条目分割为与源IP地址IP0-IP50匹配的第一更窄的调试表条目以及与源IP地址IP51-IP100匹配的第二更窄的调试表条目。第一和第二更窄的调试表条目可被提供以比宽调试表条目更高的优先级(例如,比在步骤250处设置的低优先级更高的优先级),并且当接收到的分组与相关联的更窄的调试表条目匹配时可以增加相应的计数器88(例如,第二和第三计数器)。
在步骤258处,控制器18可以从所选择的交换机中的一个或两者检索与更窄的调试表条目相关联的(例如,来自第二和第三计数器的)计数器信息,并且可以识别哪个更窄的调试表条目具有以比其他更窄的调试表条目更大的速率增加的计数。例如,与在IP地址IP0-IP50上匹配的第一更窄的调试表条目相关联的第二计数器88(例如,当接收到的分组与第一更窄的调试表条目匹配时增加的计数器)可以以第一速率增加,并且与在IP地址IP51-IP100上匹配的第二更窄的调试表条目相关联的第三计数器可以以大于第一速率的第二速率增加。处理随后可以进行到步骤262,如由路径260所示。
在步骤262处,控制器18可选择识别出的更窄的调试表条目。随后,处理可以如由路径264所示循环回到步骤256,以将识别出的更窄的调试表条目分割成甚至更窄的调试表条目以用于进行处理。一旦缩窄调试表条目的所有可能性已经用尽,则处理可以进行到步骤268,如由路径266所示。
在步骤268处,控制器18可以基于在交换机处监视到的计数器值来确定在网络中的交换机之间(例如,在所选择的第一和第二交换机之间)是否存在大象流。如果最窄的调试表条目都具有类似的计数器速率,则控制器18可以确定不存在大象流(例如,控制器18可以确定在交换机之间存在许多更小的所谓的“老鼠流”,但是没有过多的大象流)。如果最窄的调试表条目中的一个具有基本大于其他计数器速率(例如,比其他计数器速率大50%以上)的计数器速率,则控制器18可以识别出与该调试条目对应的大象流,并且可以向系统管理员通知大象流(例如,并且可以向管理员提供关于大象流的信息,诸如大象流位于其间的交换机、大象流的大小或者与大象流相关联的匹配字段)。例如,如果与具有源IP地址IP2的调试表条目相对应的计数器速率显著大于与具有源IP地址IP0、IP1和IP3-50等的调试表条目对应的计数器速率,则控制器18可以识别出在源IP地址IP2的网络中的所选择的交换机之间存在大象流。
图13示出了可以在控制器18处生成的用于检测网络中的大象流的宽和窄调试表条目的示例。如图13中所示,宽调试表条目300可以与所有传入分组(例如,所有的源和目的地IP和MAC地址等)匹配,并且可以利用第一优先级增加第一计数器。控制器18(例如,当处理图11的步骤256时)可以将条目300分割成两个更窄的条目302,其中更窄条目中的第一个与IP地址的第一范围0.0.0.0-128.0.0.0匹配,而更窄条目中的第二个与IP地址的第二范围128.0.0.0-255.255.255.255匹配。每个更窄条目可以在接收到匹配分组时增加相应的计数器,并且可以具有比宽条目300的优先级更高的优先级2。控制器18可以监视计数器2和3,以确定哪个更窄条目要进一步分割以用于识别大象流。以这种方式,控制器18可以识别可能与跨网络100的分组转发中的低效率相关联的大象流。图13的示例仅仅是例示性的,并且如果需要,则任何头部字段都可以用于分割以确定在网络中是否存在大象流。
根据一个实施例,提供了一种使用控制器的方法,所述控制器控制网络中的交换机,该方法包括:利用控制器,向交换机提供具有匹配信息的调试表条目,调试表条目指示交换机响应于接收到与匹配信息匹配的网络分组而增加对应的计数器;利用控制器,从交换机检索由交换机上的对应的计数器生成的计数信息;以及利用控制器,基于检索到的计数信息在所述网络上进行调试操作。
根据另一实施例,该方法包括利用控制器,识别与通过网络在交换机上转发网络分组相关联的网络策略规则,以及利用控制器,向交换机提供实现识别出的网络规则的流表条目。
根据另一实施例,进行调试操作包括选择流表条目中的给定的一个流表条目,以及基于检索到的计数信息来识别所选择的流表条目的不同匹配字段之间的冲突。
根据另一实施例,进行调试操作包括基于检索到的计数信息来确定在网络中的所选择的一对交换机之间是否存在大象分组流。
根据另一实施例,确定在所选择的一对交换机之间是否存在大象分组流包括:利用控制器,向第一和第二交换机提供具有第一优先级的宽调试表条目,该宽调试表条目与一组网络分组匹配;以及利用控制器,将该宽调试表条目分割为与所述一组网络分组的相应的第一和第二子集匹配的至少第一和第二窄调试表条目。
根据另一实施例,确定在所选择的一对交换机之间是否存在大象分组流包括:利用控制器,为第一和第二交换机中的每个提供第一和第二窄调试表条目,第一窄调试表条目指示第一交换机增加第一计数器并且指示第二交换机增加第二计数器,并且第二窄调试表条目指示第一交换机增加第三计数器并且指示第二交换机增加第四计数器;利用控制器,接收来自第一交换机的第一和第二计数器值以及来自第二交换机的第三和第四计数器值;以及利用控制器,基于接收到的第一、第二、第三和第四计数器值来确定在第一和第二交换机之间是否存在大象流。
根据另一实施例,进行调试操作包括基于检索到的计数信息来确定交换机是否正在进行期望的负载平衡操作。
根据另一实施例,进行调试操作包括基于检索到的计数信息来确定交换机之间的网络路径是否已经随时间变化。
根据另一实施例,进行调试操作包括基于检索到的计数信息来确定在网络中的一对交换机之间是否已经发生网络分组丢失。
根据另一实施例,进行调试操作包括基于检索到的计数信息来确定网络分组是否正在采取通过网络的不期望的路径。
根据一个实施例,提供了一种使用控制器的方法,该控制器控制具有耦合到交换机的端主机的网络中的交换机,该方法包括:利用控制器,通过向网络中的至少一个交换机提供在所述交换机上实现的流表的条目来引导通过网络的分组转发;以及利用控制器,通过向至少一个交换机提供在交换机上实现的与流表分离的调试表的调试表条目来进行网络调试操作,每个调试表条目包括匹配信息并且指示交换机响应于接收到与匹配信息匹配的网络分组而增加对应的计数器。
根据另一实施例,向至少一个交换机提供调试表条目包括向交换机提供在交换机上实现的出口调试表的出口调试表条目以及在交换机上实现的入口调试表的入口调试表条目。
根据另一个实施例,进行网络调试操作包括:向至少一个交换机提供宽调试表条目,该宽调试表条目指示交换机响应于接收到与宽调试表条目匹配的第一网络分组而增加第一计数器;从交换机接收第一网络分组;以及向交换机提供窄调试表条目,该窄调试表条目包括比宽调试表条目更窄的匹配信息,窄调试表与第一网络分组匹配,并且窄调试表条目指示交换机响应于接收到与窄调试表条目匹配的第二网络分组而增加第二计数器。
根据另一实施例,进行网络调试操作包括检索由交换机上的第二计数器生成的计数信息,以及基于检索到的计数信息来确定交换机是否正常地操作用于负载平衡。
根据另一实施例,进行网络调试操作包括从交换机接收与宽调试表条目匹配而不与窄调试表条目匹配的第二分组,以及将接收到的第二分组与窄调试表条目进行比较以确定在网络中路径是否已经变化。
根据另一实施例,进行网络调试操作包括从至少一个交换机上的流表中选择用于调试的条目,选择所选择的条目的第一头部字段,以及为至少一个交换机生成第一调试表条目,第一调试表条目具有第一优先级、仅与所选择的第一头部字段匹配并且指示至少一个交换机增加第一计数器值。
根据另一实施例,进行网络调试操作包括:从所选择的条目中选择与第一头部字段不同的第二头部字段;为交换机生成第二调试表条目,第二调试表条目具有大于第一优先级的第二优先级、与第一和第二所选择的头部字段匹配并且指示至少一个交换机增加与第一计数器值不同的第二计数器值;从至少一个交换机检索第一和第二计数器值;以及至少部分地基于检索到的第一和第二计数器值,从所选择的条目中识别与所选择的条目中的其他头部字段冲突的头部字段。
根据一个实施例,提供了一种使用控制网络中的交换机的控制器的方法,该方法包括:利用控制器,识别网络上的感兴趣的区域;利用控制器,提供在识别出的感兴趣的区域中的交换机上实现的调试表的调试表条目,调试表条目指示交换机在交换机接收到与调试表条目中的至少一个匹配的网络分组时增加对应的计数器值;利用控制器,从识别出的感兴趣的区域中的交换机检索对应的计数器值;以及利用控制器,基于检索到的计数器值来调试识别出的感兴趣的区域中的交换机。
根据另一实施例,该方法包括:利用控制器,从感兴趣的区域中的第一交换机检索第一计数器值、从感兴趣的区域中的第二交换机检索第二计数器值以及从该区域中的第三交换机检索第三计数器值;以及利用控制器,基于第一、第二和第三计数器值来确定网络分组是否正在采取通过感兴趣的区域的不正确的路径。
根据另一实施例,该方法包括:利用控制器,从感兴趣的区域中的第一交换机检索第一计数器值以及从感兴趣的区域中的第二交换机检索第二计数器值;以及利用控制器,基于检索到的第一和第二计数器值来确定在感兴趣的区域中是否已经发生分组丢失。
根据另一实施例,该方法包括:利用控制器,识别与通过网络转发网络分组相关联的网络策略;以及利用控制器,向感兴趣的区域中的交换机提供实现识别出的网络策略的流表条目,所述流表条目与调试表条目不同。
根据另一实施例,该方法包括:利用控制器,基于检索到的计数器值来确定网络分组是否正在采取未被流表条目识别的通过感兴趣的区域的网络路径。
前述内容仅仅是对本发明的原理的例示,并且在不脱离本发明的范围和精神的情况下,本领域技术人员可以进行各种修改。
Claims (22)
1.一种使用控制器的方法,所述控制器控制网络中的交换机,所述方法包括:
利用所述控制器,向所述交换机提供具有匹配信息的调试表条目,其中所述调试表条目指示所述交换机响应于接收到与所述匹配信息匹配的网络分组而增加对应的计数器;
利用所述控制器,从所述交换机检索由所述交换机上的对应的计数器生成的计数信息;以及
利用所述控制器,基于检索到的计数信息在所述网络上进行调试操作。
2.如权利要求1中所述的方法,还包括:
利用所述控制器,识别与通过所述网络在所述交换机上转发网络分组相关联的网络策略规则;以及
利用所述控制器,向所述交换机提供实现识别出的网络规则的流表条目。
3.如权利要求2中所述的方法,其中进行所述调试操作包括:
选择所述流表条目中的给定的一个条目;以及
基于检索到的计数信息来识别所选择的流表条目的不同匹配字段之间的冲突。
4.如权利要求1中所述的方法,其中进行所述调试操作包括:
基于检索到的计数信息来确定在所述网络中的所选择的一对交换机之间是否存在大象分组流。
5.如权利要求4中所述的方法,其中确定在所选择的一对交换机之间是否存在大象分组流包括:
利用所述控制器,向第一和第二交换机提供具有第一优先级的宽调试表条目,其中所述宽调试表条目与一组网络分组匹配;以及
利用所述控制器,将所述宽调试表条目分割为与所述一组网络分组的相应的第一和第二子集匹配的至少第一和第二窄调试表条目。
6.如权利要求5中所述的方法,其中确定在所选择的一对交换机之间是否存在大象分组流还包括:
利用所述控制器,向第一和第二交换机中的每个提供第一和第二窄调试表条目,其中第一窄调试表条目指示第一交换机增加第一计数器并指示第二交换机增加第二计数器,并且其中第二窄调试表条目指示第一交换机增加第三计数器并且指示第二交换机增加第四计数器;
利用所述控制器,接收来自第一交换机的第一和第二计数器值以及来自第二交换机的第三和第四计数器值;以及
利用所述控制器,基于接收到的第一、第二、第三和第四计数器值来确定在第一和第二交换机之间是否存在所述大象流。
7.如权利要求1中所述的方法,其中进行所述调试操作包括:
基于检索到的计数信息来确定所述交换机是否正在进行期望的负载平衡操作。
8.如权利要求1中所述的方法,其中进行所述调试操作包括:
基于检索到的计数信息来确定所述交换机之间的网络路径是否已经随时间变化。
9.如权利要求1中所述的方法,其中进行所述调试操作包括:
基于检索到的计数信息来确定在网络中的一对交换机之间是否已经发生网络分组丢失。
10.如权利要求1中所述的方法,其中进行所述调试操作包括:
基于检索到的计数信息来确定网络分组是否正在采取通过所述网络的不期望的路径。
11.一种使用控制器的方法,所述控制器控制具有耦合到交换机的端主机的网络中的交换机,所述方法包括:
利用所述控制器,通过向所述网络中的至少一个交换机提供在所述交换机上实现的流表的条目来引导通过所述网络的分组转发;以及
利用所述控制器,通过向所述至少一个交换机提供在所述交换机上实现的与所述流表分离的调试表的调试表条目来进行网络调试操作,其中每个调试表条目包括匹配信息并且指示所述交换机响应于接收到与所述匹配信息匹配的网络分组而增加对应的计数器。
12.如权利要求11中所述的方法,其中向所述至少一个交换机提供所述调试表条目包括向所述交换机提供在所述交换机上实现的出口调试表的出口调试表条目以及在所述交换机上实现的入口调试表的入口调试表条目。
13.如权利要求11中所述的方法,其中进行所述网络调试操作包括:
向所述至少一个交换机提供宽调试表条目,其中所述宽调试表条目指示所述交换机响应于接收到与所述宽调试表条目匹配的第一网络分组而增加第一计数器;
从所述交换机接收第一网络分组;以及
向所述交换机提供窄调试表条目,其中所述窄调试表条目包括比所述宽调试表条目更窄的匹配信息,其中所述窄调试表与第一网络分组匹配,并且其中所述窄调试表条目指示所述交换机响应于接收到与所述窄调试表条目匹配的第二网络分组而增加第二计数器。
14.如权利要求13中所述的方法,其中进行所述网络调试操作还包括:
检索由所述交换机上的第二计数器生成的计数信息;以及
基于检索到的计数信息来确定所述交换机是否正常地操作用于负载平衡。
15.如权利要求13中所述的方法,其中进行所述网络调试操作还包括:
从所述交换机接收与所述宽调试表条目匹配而不与所述窄调试表条目匹配的第二分组;以及
将接收到的第二分组与所述窄调试表条目进行比较,以确定在网络中路径是否已经变化。
16.如权利要求11中所述的方法,其中进行所述网络调试操作还包括:
从所述至少一个交换机上的流表中选择用于调试的条目;
选择所选择的条目的第一头部字段;以及
为所述至少一个交换机生成第一调试表条目,其中第一调试表条目具有第一优先级、仅与所选择的第一头部字段匹配并且指示所述至少一个交换机增加第一计数器值。
17.如权利要求16中所述的方法,其中进行所述网络调试操作还包括:
从所选择的条目中选择与第一头部字段不同的第二头部字段;
为所述交换机生成第二调试表条目,其中第二调试表条目具有大于第一优先级的第二优先级、与第一和第二所选择的头部字段匹配并且指示所述至少一个交换机增加与第一计数器值不同的第二计数器值;
从所述至少一个交换机检索第一和第二计数器值;以及
至少部分地基于检索到的第一和第二计数器值,从所选择的条目中识别与所选择的条目中的其他头部字段冲突的头部字段。
18.一种使用控制器的方法,所述控制器控制网络中的交换机,所述方法包括:
利用所述控制器,识别所述网络上的感兴趣的区域;
利用所述控制器,提供在识别出的感兴趣的区域中的交换机上实现的调试表的调试表条目,其中所述调试表条目指示所述交换机在所述交换机接收到与所述调试表条目中的至少一个匹配的网络分组时增加对应的计数器值;
利用所述控制器,从识别出的感兴趣的区域中的交换机检索对应的计数器值;以及
利用所述控制器,基于检索到的计数器值来调试识别出的感兴趣的区域中的交换机。
19.如权利要求18中所述的方法,还包括:
利用所述控制器,从所述感兴趣的区域中的第一交换机检索第一计数器值,从所述感兴趣的区域中的第二交换机检索第二计数器值,以及从所述区域中的第三交换机检索第三计数器值;以及
利用所述控制器,基于第一、第二和第三计数器值来确定网络分组是否正在采取通过所述感兴趣的区域的不正确的路径。
20.如权利要求18中所述的方法,还包括:
利用所述控制器,从所述感兴趣的区域中的第一交换机检索第一计数器值,以及从所述感兴趣的区域中的第二交换机检索第二计数器值;以及
利用所述控制器,基于检索到的第一和第二计数器值来确定在所述感兴趣的区域中是否已经发生分组丢失。
21.如权利要求18中所述的方法,还包括:
利用所述控制器,识别与通过所述网络转发网络分组相关联的网络策略;以及
利用所述控制器,向所述感兴趣的区域中的交换机提供实现识别出的网络策略的流表条目,其中所述流表条目与所述调试表条目不同。
22.如权利要求21中所述的方法,还包括:
利用所述控制器,基于检索到的计数器值来确定网络分组是否正在采取通过所述感兴趣的区域的未被所述流表条目识别的网络路径。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462027238P | 2014-07-21 | 2014-07-21 | |
US62/027,238 | 2014-07-21 | ||
US14/626,450 US9813312B2 (en) | 2014-07-21 | 2015-02-19 | Systems and methods for performing debugging operations on networks using a controller |
US14/626,450 | 2015-02-19 | ||
PCT/US2015/040933 WO2016014361A1 (en) | 2014-07-21 | 2015-07-17 | Systems and methods for performing operations on networks using a controller |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106605392A true CN106605392A (zh) | 2017-04-26 |
CN106605392B CN106605392B (zh) | 2020-01-03 |
Family
ID=55075512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580045963.6A Expired - Fee Related CN106605392B (zh) | 2014-07-21 | 2015-07-17 | 用于使用控制器在网络上进行操作的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9813312B2 (zh) |
EP (1) | EP3158694B1 (zh) |
CN (1) | CN106605392B (zh) |
WO (1) | WO2016014361A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110380993A (zh) * | 2019-07-12 | 2019-10-25 | 中国电信集团工会上海市委员会 | 一种基于ovsdb的流表保护方法 |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017503405A (ja) * | 2013-12-13 | 2017-01-26 | 華為技術有限公司Huawei Technologies Co.,Ltd. | アドレス解決プロトコルメッセージを処理するための方法、スイッチ及びコントローラ |
US9692684B2 (en) * | 2014-09-05 | 2017-06-27 | Telefonaktiebolaget L M Ericsson (Publ) | Forwarding table precedence in SDN |
US9781004B2 (en) | 2014-10-16 | 2017-10-03 | Cisco Technology, Inc. | Discovering and grouping application endpoints in a network environment |
US10108516B2 (en) * | 2015-01-29 | 2018-10-23 | Knuedge Incorporated | Affinity data collection in a computing system |
KR102265861B1 (ko) * | 2015-03-05 | 2021-06-16 | 한국전자통신연구원 | 플로우 제어 관리방법 및 그 장치 |
US10764162B2 (en) * | 2015-03-25 | 2020-09-01 | Gigamon Inc. | In-fabric traffic analysis |
US10331569B2 (en) | 2016-01-05 | 2019-06-25 | Friday Harbor Llc | Packet router buffer management |
US10484282B2 (en) * | 2016-01-12 | 2019-11-19 | International Business Machines Corporation | Interconnecting multiple separate openflow domains |
US10574555B2 (en) * | 2016-01-28 | 2020-02-25 | Arista Networks, Inc. | Network data stream tracer |
US11507487B2 (en) * | 2016-09-28 | 2022-11-22 | Vmware, Inc. | Control of a computing system to perform network fabric benchmark measurements |
US10938712B2 (en) * | 2017-02-15 | 2021-03-02 | Intel Corporation | Compute node cluster based routing method and apparatus |
US10560354B2 (en) | 2017-03-24 | 2020-02-11 | Cisco Technology, Inc. | End-to-end, in situ packet enrichment for network analytics |
US10826788B2 (en) | 2017-04-20 | 2020-11-03 | Cisco Technology, Inc. | Assurance of quality-of-service configurations in a network |
US10560328B2 (en) | 2017-04-20 | 2020-02-11 | Cisco Technology, Inc. | Static network policy analysis for networks |
US10623264B2 (en) | 2017-04-20 | 2020-04-14 | Cisco Technology, Inc. | Policy assurance for service chaining |
US10581694B2 (en) | 2017-05-31 | 2020-03-03 | Cisco Technology, Inc. | Generation of counter examples for network intent formal equivalence failures |
US10812318B2 (en) | 2017-05-31 | 2020-10-20 | Cisco Technology, Inc. | Associating network policy objects with specific faults corresponding to fault localizations in large-scale network deployment |
US10693738B2 (en) | 2017-05-31 | 2020-06-23 | Cisco Technology, Inc. | Generating device-level logical models for a network |
US10505816B2 (en) | 2017-05-31 | 2019-12-10 | Cisco Technology, Inc. | Semantic analysis to detect shadowing of rules in a model of network intents |
US10554483B2 (en) | 2017-05-31 | 2020-02-04 | Cisco Technology, Inc. | Network policy analysis for networks |
US10623271B2 (en) | 2017-05-31 | 2020-04-14 | Cisco Technology, Inc. | Intra-priority class ordering of rules corresponding to a model of network intents |
US20180351788A1 (en) | 2017-05-31 | 2018-12-06 | Cisco Technology, Inc. | Fault localization in large-scale network policy deployment |
US10439875B2 (en) | 2017-05-31 | 2019-10-08 | Cisco Technology, Inc. | Identification of conflict rules in a network intent formal equivalence failure |
US10587621B2 (en) | 2017-06-16 | 2020-03-10 | Cisco Technology, Inc. | System and method for migrating to and maintaining a white-list network security model |
US11645131B2 (en) | 2017-06-16 | 2023-05-09 | Cisco Technology, Inc. | Distributed fault code aggregation across application centric dimensions |
US11150973B2 (en) | 2017-06-16 | 2021-10-19 | Cisco Technology, Inc. | Self diagnosing distributed appliance |
US10686669B2 (en) | 2017-06-16 | 2020-06-16 | Cisco Technology, Inc. | Collecting network models and node information from a network |
US10904101B2 (en) | 2017-06-16 | 2021-01-26 | Cisco Technology, Inc. | Shim layer for extracting and prioritizing underlying rules for modeling network intents |
US10498608B2 (en) | 2017-06-16 | 2019-12-03 | Cisco Technology, Inc. | Topology explorer |
US10547715B2 (en) | 2017-06-16 | 2020-01-28 | Cisco Technology, Inc. | Event generation in response to network intent formal equivalence failures |
US10574513B2 (en) | 2017-06-16 | 2020-02-25 | Cisco Technology, Inc. | Handling controller and node failure scenarios during data collection |
US11469986B2 (en) | 2017-06-16 | 2022-10-11 | Cisco Technology, Inc. | Controlled micro fault injection on a distributed appliance |
US10560355B2 (en) | 2017-06-19 | 2020-02-11 | Cisco Technology, Inc. | Static endpoint validation |
US10348564B2 (en) | 2017-06-19 | 2019-07-09 | Cisco Technology, Inc. | Validation of routing information base-forwarding information base equivalence in a network |
US10547509B2 (en) | 2017-06-19 | 2020-01-28 | Cisco Technology, Inc. | Validation of a virtual port channel (VPC) endpoint in the network fabric |
US10652102B2 (en) | 2017-06-19 | 2020-05-12 | Cisco Technology, Inc. | Network node memory utilization analysis |
US10623259B2 (en) | 2017-06-19 | 2020-04-14 | Cisco Technology, Inc. | Validation of layer 1 interface in a network |
US10812336B2 (en) | 2017-06-19 | 2020-10-20 | Cisco Technology, Inc. | Validation of bridge domain-L3out association for communication outside a network |
US10505817B2 (en) | 2017-06-19 | 2019-12-10 | Cisco Technology, Inc. | Automatically determining an optimal amount of time for analyzing a distributed network environment |
US10554493B2 (en) | 2017-06-19 | 2020-02-04 | Cisco Technology, Inc. | Identifying mismatches between a logical model and node implementation |
US10432467B2 (en) | 2017-06-19 | 2019-10-01 | Cisco Technology, Inc. | Network validation between the logical level and the hardware level of a network |
US10567229B2 (en) | 2017-06-19 | 2020-02-18 | Cisco Technology, Inc. | Validating endpoint configurations between nodes |
US10341184B2 (en) | 2017-06-19 | 2019-07-02 | Cisco Technology, Inc. | Validation of layer 3 bridge domain subnets in in a network |
US10567228B2 (en) | 2017-06-19 | 2020-02-18 | Cisco Technology, Inc. | Validation of cross logical groups in a network |
US10411996B2 (en) | 2017-06-19 | 2019-09-10 | Cisco Technology, Inc. | Validation of routing information in a network fabric |
US10644946B2 (en) | 2017-06-19 | 2020-05-05 | Cisco Technology, Inc. | Detection of overlapping subnets in a network |
US10333787B2 (en) | 2017-06-19 | 2019-06-25 | Cisco Technology, Inc. | Validation of L3OUT configuration for communications outside a network |
US10218572B2 (en) | 2017-06-19 | 2019-02-26 | Cisco Technology, Inc. | Multiprotocol border gateway protocol routing validation |
US10673702B2 (en) | 2017-06-19 | 2020-06-02 | Cisco Technology, Inc. | Validation of layer 3 using virtual routing forwarding containers in a network |
US10700933B2 (en) | 2017-06-19 | 2020-06-30 | Cisco Technology, Inc. | Validating tunnel endpoint addresses in a network fabric |
US11343150B2 (en) | 2017-06-19 | 2022-05-24 | Cisco Technology, Inc. | Validation of learned routes in a network |
US10437641B2 (en) | 2017-06-19 | 2019-10-08 | Cisco Technology, Inc. | On-demand processing pipeline interleaved with temporal processing pipeline |
US10536337B2 (en) | 2017-06-19 | 2020-01-14 | Cisco Technology, Inc. | Validation of layer 2 interface and VLAN in a networked environment |
US10528444B2 (en) | 2017-06-19 | 2020-01-07 | Cisco Technology, Inc. | Event generation in response to validation between logical level and hardware level |
US11283680B2 (en) | 2017-06-19 | 2022-03-22 | Cisco Technology, Inc. | Identifying components for removal in a network configuration |
US10805160B2 (en) | 2017-06-19 | 2020-10-13 | Cisco Technology, Inc. | Endpoint bridge domain subnet validation |
US10797959B2 (en) * | 2017-08-11 | 2020-10-06 | Quanta Computer Inc. | LLDP based rack management controller |
US10587484B2 (en) | 2017-09-12 | 2020-03-10 | Cisco Technology, Inc. | Anomaly detection and reporting in a network assurance appliance |
US10587456B2 (en) | 2017-09-12 | 2020-03-10 | Cisco Technology, Inc. | Event clustering for a network assurance platform |
US10554477B2 (en) | 2017-09-13 | 2020-02-04 | Cisco Technology, Inc. | Network assurance event aggregator |
US10333833B2 (en) | 2017-09-25 | 2019-06-25 | Cisco Technology, Inc. | Endpoint path assurance |
FR3072236B1 (fr) * | 2017-10-10 | 2020-11-27 | Bull Sas | Dispositif et procede d'acquisition de valeurs de compteurs associes a une tache de calcul |
US10771316B1 (en) * | 2017-11-30 | 2020-09-08 | Amazon Technologies, Inc. | Debugging of a network device through emulation |
US11102053B2 (en) | 2017-12-05 | 2021-08-24 | Cisco Technology, Inc. | Cross-domain assurance |
US10873509B2 (en) * | 2018-01-17 | 2020-12-22 | Cisco Technology, Inc. | Check-pointing ACI network state and re-execution from a check-pointed state |
US10572495B2 (en) | 2018-02-06 | 2020-02-25 | Cisco Technology Inc. | Network assurance database version compatibility |
US10812315B2 (en) | 2018-06-07 | 2020-10-20 | Cisco Technology, Inc. | Cross-domain network assurance |
US11019027B2 (en) | 2018-06-27 | 2021-05-25 | Cisco Technology, Inc. | Address translation for external network appliance |
US10659298B1 (en) | 2018-06-27 | 2020-05-19 | Cisco Technology, Inc. | Epoch comparison for network events |
US10911495B2 (en) | 2018-06-27 | 2021-02-02 | Cisco Technology, Inc. | Assurance of security rules in a network |
US11218508B2 (en) | 2018-06-27 | 2022-01-04 | Cisco Technology, Inc. | Assurance of security rules in a network |
US11044273B2 (en) | 2018-06-27 | 2021-06-22 | Cisco Technology, Inc. | Assurance of security rules in a network |
US10904070B2 (en) | 2018-07-11 | 2021-01-26 | Cisco Technology, Inc. | Techniques and interfaces for troubleshooting datacenter networks |
US10826770B2 (en) | 2018-07-26 | 2020-11-03 | Cisco Technology, Inc. | Synthesis of models for networks using automated boolean learning |
FR3084550B1 (fr) * | 2018-07-27 | 2020-07-24 | Bcom | Procede de traitement d'un paquet de donnees, dispositif, equipement de communication et programme d'ordinateur associes |
US10616072B1 (en) | 2018-07-27 | 2020-04-07 | Cisco Technology, Inc. | Epoch data interface |
US11323324B2 (en) | 2019-02-22 | 2022-05-03 | Extreme Networks, Inc. | Automated closed-loop actions in a network using a distributed ledger |
US11368380B1 (en) * | 2020-06-01 | 2022-06-21 | Amazon Technologies, Inc. | Estimating end-to-end network packet loss |
CN112073256B (zh) * | 2020-06-01 | 2022-07-19 | 新华三信息安全技术有限公司 | 一种丢包处理方法、装置、设备及机器可读存储介质 |
US20230188443A1 (en) * | 2021-12-10 | 2023-06-15 | Arista Networks, Inc. | Packet drop analysis for networks |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102349268A (zh) * | 2009-03-09 | 2012-02-08 | 日本电气株式会社 | OpenFlow通信系统和OpenFlow通信方法 |
US20130010600A1 (en) * | 2011-07-08 | 2013-01-10 | Telefonaktiebolaget L M Ericsson (Publ) | Controller Driven OAM for OpenFlow |
CN103069756A (zh) * | 2010-08-20 | 2013-04-24 | 日本电气株式会社 | 通信系统、控制器、节点控制方法和程序 |
US20130272135A1 (en) * | 2012-04-11 | 2013-10-17 | Gigamon Llc | Traffic visibility in an open networking environment |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7020166B2 (en) | 2000-10-03 | 2006-03-28 | Broadcom Corporation | Switch transferring data using data encapsulation and decapsulation |
GB2413918B (en) | 2003-01-15 | 2006-08-30 | Ciena Corp | A method and apparatus for transporting packet data over an optical network |
KR20050076176A (ko) | 2004-01-19 | 2005-07-26 | 삼성전자주식회사 | IPv6 MANET망에서 외부망과의 통신을 위한 시스템및 방법 |
US8116312B2 (en) | 2006-02-08 | 2012-02-14 | Solarflare Communications, Inc. | Method and apparatus for multicast packet reception |
US20080189769A1 (en) | 2007-02-01 | 2008-08-07 | Martin Casado | Secure network switching infrastructure |
JP5141512B2 (ja) | 2008-11-27 | 2013-02-13 | 富士通株式会社 | 通信制御方法及び伝送装置 |
US7937438B1 (en) | 2009-12-07 | 2011-05-03 | Amazon Technologies, Inc. | Using virtual networking devices to manage external connections |
US9054975B2 (en) | 2010-08-30 | 2015-06-09 | Deutsche Telekom Ag | Virtualization and replay-based system for network debugging |
US9124515B2 (en) | 2010-11-22 | 2015-09-01 | Hewlett-Packard Development Company, L.P. | Elephant flow detection in a computing device |
EP2685667B1 (en) * | 2011-04-25 | 2015-04-08 | Huawei Technologies Co., Ltd. | Measurement method, apparatus and system based on labels |
US8924787B2 (en) | 2012-01-24 | 2014-12-30 | Nec Laboratories America, Inc. | Network debugging |
US8923296B2 (en) | 2012-02-23 | 2014-12-30 | Big Switch Networks, Inc. | System and methods for managing network packet forwarding with a controller |
US9014013B2 (en) | 2012-03-16 | 2015-04-21 | Brocade Communications Systems, Inc. | Packet tracing through control and data plane operations using SNMP trap commands |
US8982727B2 (en) | 2012-10-22 | 2015-03-17 | Futurewei Technologies, Inc. | System and apparatus of generalized network controller for a software defined network (SDN) |
US8964752B2 (en) * | 2013-02-25 | 2015-02-24 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for flow table lookup parallelization in a software defined networking (SDN) system |
US9692775B2 (en) * | 2013-04-29 | 2017-06-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system to dynamically detect traffic anomalies in a network |
US9137165B2 (en) * | 2013-06-17 | 2015-09-15 | Telefonaktiebolaget L M Ericsson (Publ) | Methods of load balancing using primary and stand-by addresses and related load balancers and servers |
US9118567B2 (en) * | 2013-07-15 | 2015-08-25 | Telefonaktiebolaget L M Ericsson (Publ) | Removing lead filter from serial multiple-stage filter used to detect large flows in order to purge flows for prolonged operation |
-
2015
- 2015-02-19 US US14/626,450 patent/US9813312B2/en active Active
- 2015-07-17 EP EP15747664.9A patent/EP3158694B1/en active Active
- 2015-07-17 WO PCT/US2015/040933 patent/WO2016014361A1/en active Application Filing
- 2015-07-17 CN CN201580045963.6A patent/CN106605392B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102349268A (zh) * | 2009-03-09 | 2012-02-08 | 日本电气株式会社 | OpenFlow通信系统和OpenFlow通信方法 |
CN103069756A (zh) * | 2010-08-20 | 2013-04-24 | 日本电气株式会社 | 通信系统、控制器、节点控制方法和程序 |
US20130010600A1 (en) * | 2011-07-08 | 2013-01-10 | Telefonaktiebolaget L M Ericsson (Publ) | Controller Driven OAM for OpenFlow |
CN103765823A (zh) * | 2011-07-08 | 2014-04-30 | 瑞典爱立信有限公司 | 用于开放流的控制器激励的oam |
US20130272135A1 (en) * | 2012-04-11 | 2013-10-17 | Gigamon Llc | Traffic visibility in an open networking environment |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110380993A (zh) * | 2019-07-12 | 2019-10-25 | 中国电信集团工会上海市委员会 | 一种基于ovsdb的流表保护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106605392B (zh) | 2020-01-03 |
WO2016014361A1 (en) | 2016-01-28 |
US9813312B2 (en) | 2017-11-07 |
US20160020993A1 (en) | 2016-01-21 |
EP3158694A1 (en) | 2017-04-26 |
EP3158694B1 (en) | 2020-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106605392A (zh) | 用于使用控制器在网络上进行操作的系统和方法 | |
JP6518697B2 (ja) | コントローラにスイッチモデリングインターフェイスを使用してネットワークスイッチを制御するためのシステム及び方法 | |
US10200279B1 (en) | Tracer of traffic trajectories in data center networks | |
US8347143B2 (en) | Facilitating event management and analysis within a communications environment | |
US9680720B1 (en) | Operations, administration, and maintenance (OAM) engine | |
US9374285B1 (en) | Systems and methods for determining network topologies | |
CN109644141A (zh) | 用于可视化网络的方法和系统 | |
US10778545B2 (en) | Network verification system | |
US9008080B1 (en) | Systems and methods for controlling switches to monitor network traffic | |
CN107431642A (zh) | 用于控制交换机以捕获和监视网络流量的系统和方法 | |
CN107005439A (zh) | 用于在线服务链接的被动性能测量 | |
EP3222003B1 (en) | Inline packet tracing in data center fabric networks | |
US11115346B2 (en) | Systems and methods for generating network flow information | |
US10291533B1 (en) | Systems and methods for network traffic monitoring | |
CN107547293A (zh) | 一种流路径探测方法和装置 | |
Braun et al. | Loop-free alternates with loop detection for fast reroute in software-defined carrier and data center networks | |
Leng et al. | A mechanism for reducing flow tables in software defined network | |
CN106302021A (zh) | 一种网络流转发异常检测方法 | |
Liao et al. | Fast failover with hierarchical disjoint paths in SDN | |
CN110071843B (zh) | 一种基于流路径分析的故障定位方法及装置 | |
WO2017011278A1 (en) | Forwarding table management in computer networks | |
Aljaedi et al. | PathSeer: A centralized tracer of packet trajectories in software-defined datacenter networks | |
WO2017058137A1 (en) | Latency tracking metadata for a network switch data packet | |
CN108616399B (zh) | 一种报文统计方法及装置 | |
US20220294711A1 (en) | Network telemetry |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200103 Termination date: 20200717 |