CN105052092B - 在包含虚拟网络设备的网络环境中优化路径的方法、网络设备和计算机可读介质 - Google Patents
在包含虚拟网络设备的网络环境中优化路径的方法、网络设备和计算机可读介质 Download PDFInfo
- Publication number
- CN105052092B CN105052092B CN201480015113.7A CN201480015113A CN105052092B CN 105052092 B CN105052092 B CN 105052092B CN 201480015113 A CN201480015113 A CN 201480015113A CN 105052092 B CN105052092 B CN 105052092B
- Authority
- CN
- China
- Prior art keywords
- network device
- physical network
- physical
- virtual
- adjacent
- 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.)
- Expired - Fee Related
Links
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- 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/66—Layer 2 routing, e.g. in Ethernet based MAN's
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了在包含虚拟网络设备的网络环境中优化路径的方法和网络设备,虚拟网络设备包括使用虚拟网络设备层链路连接的第一物理网络设备和第二物理网络设备。方法包括:响应于在第一物理网络设备处通过虚拟网络设备层链路从第二物理网络设备接收属于第一数据流的第一数据分组:第一物理网络设备确定第二物理网络设备从其接收第一数据分组的相邻网络设备;第一物理网络设备确定连接第一物理网络设备和相邻网络设备的一个或多个链路;从第一物理网络设备将网络消息发送到相邻网络设备,网络消息指定所确定的一个或多个链路,并且,响应于接收到网络消息,相邻网络设备仅使用所确定的一个或多个链路将属于第一数据流的后续数据分组发送到虚拟网络设备。
Description
相关申请的交叉引用
本申请要求于2013年3月15日提交的序号为No.13/839,159的美国专利申请的利益,该申请通过引用并入本文。
技术领域
在本公开中提出的实施例一般性地涉及虚拟化,并且更具体地涉及用于配置由两个或更多个物理网络设备构成的虚拟网络设备的优化路径的技术。
背景技术
计算机网络中的数据通信涉及在通过通信链路和子网络互连的两个或更多个实体之间的数据交换。局域网(LAN)是提供了在互连的站点之间进行相对短距离通信的子网络的一个示例。与此相反,广域网(WAN)有利于在公共或私人电信设施提供的链路上进行长距离通信。实体通常是在硬件计算机平台上执行的软件程序,取决于其在网络中的角色,它可以作为端站或中间站。中间站的示例包括互连通信链路和子网络的路由器、网桥和交换机,而端站可以是位于子网络中的一个上的计算机。更一般地,端站意味着通常不向网络上的其它计算机提供路由或其它服务的数据的源或目标。
端站通常通过根据预定义的协议交换离散分组或数据帧进行通信。在这种情况下,协议表示定义站如何彼此交互来传输数据的一组规则。流入例如路由器、交换机、网桥、服务器等网络设备的流量一般是由多个抽象层(例如,开放系统互连(OSI)模型)构成的。这些逻辑层中的每一个逻辑层一般涉及具有类似性质的通信功能。例如,OSI模型的第2层被称为数据链路层,并使用物理寻址(例如,介质访问控制(MAC)地址)转换流量。第2层封装通常提供了用于在网络实体之间传送数据的机制,并且也可以用于第1层的误差校正。作为另一示例,第3层的流量被称为网络层流量,并使用逻辑寻址(例如,互联网协议(IP)地址)用于路由流量。第3层的封装通常提供用于在第一网络上的源主机和位于第二网络上的目标主机之间传送数据的机制。
发明内容
根据本公开的一方面,提供一种在包含虚拟网络设备的网络环境中优化路径的方法,其中虚拟网络设备包括使用虚拟网络设备层链路连接的第一物理网络设备和第二物理网络设备。方法包括:响应于在第一物理网络设备处通过虚拟网络设备层链路从第二物理网络设备接收属于第一数据流的第一数据分组:第一物理网络设备确定第二物理网络设备从其接收第一数据分组的相邻网络设备;第一物理网络设备确定连接第一物理网络设备和相邻网络设备的一个或多个链路;以及从第一物理网络设备将网络消息发送到所述相邻网络设备,其中网络消息指定所确定的一个或多个链路,并且其中,响应于接收到网络消息,相邻网络设备被配置为仅使用所确定的一个或多个链路将属于第一数据流的后续数据分组发送到虚拟网络设备。
根据本公开的另一方面,提供一种在包含虚拟网络设备的网络环境中的第一物理网络设备,其中虚拟网络设备包括使用虚拟网络设备层链路连接的第一物理网络设备和第二物理网络设备。网络设备包括:处理器;以及存储器,存储器包括程序,当由所述处理器执行时,程序执行用于在网络环境中优化路径的操作,操作包括:响应于在第一物理网络设备处通过虚拟网络设备层链路从第二物理网络设备接收属于第一数据流的第一数据分组:第一物理网络设备确定第二网络设备从其接收所述第一数据分组的相邻网络设备;第一物理网络设备确定连接网络设备和相邻网络设备的一个或多个链路;以及从第一物理网络设备将网络消息发送到相邻网络设备,其中网络消息指定所确定的一个或多个链路,并且其中,响应于接收到所述网络消息,相邻网络设备被配置为仅使用所确定的一个或多个链路将属于第一数据流的后续数据分组发送到虚拟网络设备。
根据本公开的又一方面,提供一种非易失性计算机可读介质,该非易失性计算机可读介质存储有用于在包含虚拟网络设备的网络环境中优化路径的计算机程序,其中虚拟网络设备包括使用虚拟网络设备层链路连接的第一物理网络设备和第二物理网络设备。计算机程序在被处理器运行时使得处理器:响应于在第一物理网络设备通过虚拟网络设备层链路从第二物理网络设备接收属于第一数据流的第一数据分组:通过第一物理网络设备确定第二物理网络设备从其接收所述第一数据分组的相邻网络设备;通过第一物理网络设备确定连接第一物理网络设备和相邻网络设备的一个或多个链路;从第一物理网络设备将网络消息发送到相邻网络设备,其中网络消息指定所确定的一个或多个链路,并且其中,响应于接收到网络消息,所述相邻网络设备被配置成仅使用所确定的一个或多个链路将属于第一数据流的后续数据分组发送到虚拟网络设备。
附图说明
为使本公开的上述特征可得到详细理解,可以参考实施例对以上简要总结的本公开进行更具体的描述,其中一些实施例在附图中示出。然而,应该指出的是,附图只是示出了本公开的典型实施例,因此不应被视为对其范围的限制,因为本公开可以容许其它等同效果的实施例。
图1示出了根据本文描述的一个实施例的配置为具有路径优化组件的网络设备。
图2示出了根据本文描述的一个实施例的配置为具有路径优化组件的网络环境。
图3A至图3C示出了根据本文描述的一个实施例的通过图2中所示的网络环境的示例性路径。
图4是示出了根据本文描述的一个实施例的配置相邻网络设备来优化通过虚拟网络设备的路径的方法的流程图。
图5是示出了根据本文描述的一个实施例的配置相邻网络设备来优化通过虚拟网络设备的路径的方法的流程图。
示例性实施例说明
综述
实施例提供了用于在包含虚拟网络设备的网络环境中优化路径的方法、网络设备和计算机程序产品。虚拟网络设备包括使用虚拟网络设备层链路连接的第一物理网络设备和第二物理网络设备。该方法、网络设备和计算机程序产品包括在第一物理网络设备通过虚拟网络设备层链路从第二物理网络设备接收属于第一数据流的第一数据分组。该方法、网络设备和计算机程序产品还包括确定所述第二物理网络设备从其接收第一数据分组的相邻网络设备。另外,该方法、网络设备和计算机程序产品包括确定连接第一物理网络设备和相邻网络设备的一个或多个链路。该方法、网络设备和计算机程序产品还包括发送网络消息到相邻网络设备,其中所述相邻网络设备被配置为响应于接收网络消息,仅使用所确定的一个或更多链路,将来自第一数据流的后续数据分组发送到虚拟网络设备。
示例性实施例
一般而言,网络设备(例如,网络交换机)是连接网段的计算机设备。网络设备可以在包括例如物理层、数据链路层、网络层和/或传输层的一个或多个层进行操作。在对四个层进行了描述的同时,应当理解,在不同的示例中,交换机可以在开放系统互连(OSI)栈的所有七层进行操作。例如,网络设备可以在接收数据分组时检查数据分组。在这样做时,网络设备可确定分组的源和目的地,并可以相应地转发它。此外,网络设备可以包含一些超出检查和转发逻辑的智能。这种智能利于使网络设备执行一些管理功能。例如,网络设备可以有选择地把一些端口范围打开或关闭,可以有选择地建立和/或保持端口的优先级设置,可以执行介质访问控制(MAC)过滤以防止MAC泛洪,可以使用生成树协议,可以执行链路聚合,等等。通常,当执行这些管理功能时,它们是在实际(例如,物理) 网络设备中执行的。
通常,网络设备通过通信链路互连,以通过物理端口发送数据分组。为了提供增加的网络可靠性,冗余交换机(和链路)常常被包括在网络内。在交换机(或链路)出现故障的情况下,已经置于网络内的冗余交换机 (或链路)可被快速地启用,以代替出现故障的交换机(或链路)。由于与发生故障的组件可被更换或维修相比,冗余交换机或链路通常可被更迅速启用作为替换,因此具有冗余链路和/或交换提供了更可靠的网络。
此外,为了提供冗余或带宽,一些网络将多个物理链路绑在一起,以作为单个虚拟链路或逻辑信道操作。虚拟链路中的这样一组物理链路在本文中被称为端口信道、链路聚合束和链路束。可以使用多种协议来将两个或更多个物理链路或端口捆绑在一起形成单一的逻辑信道。这些协议的示例包括端口聚合协议(PAgP)和IEEE 802.1AX链路聚合控制协议(LACP)。这些协议在本文一般被称为链路聚合协议,可以理解,在不脱离实施例的范围的情况下可以使用其它协议。
为了进一步提高网络可靠性,两个或更多个网络设备可以一起分组 (或捆绑)到单个逻辑网络设备中。在这样的实施例中,分组的网络设备通常充当单个的虚拟网络设备。而且,这样的虚拟网络设备(如,虚拟交换机)可以对网络中的网络设备而言看起来是单个网络设备。用于捆绑网络设备的协议的示例包括但不限于虚拟端口信道(vPC)和虚拟交换系统 (VSS)。另外,虚拟网络设备内的网络设备通过一个或多个链路(本文称为交换机间链路)进行通信。
例如,在根据VSS协议而配置的网络系统中,两个或更多的底座式第三层交换机(在下文称为物理交换机)可以作为一个虚拟交换机被操作 (在下文称为虚拟交换机)。在这样的示例中,两个物理交换机的控制平面(例如,用于执行设备控制和协议处理)可以被划分成活跃的和备用的,用于任一个的数据平面(例如,用于执行分组转发)可以是在活动状态中使用。
此外,虚拟交换机可以提供各种服务,例如但不限于防火墙服务、负载平衡服务和服务质量(QoS)功能。通常,这些服务可以通过服务模块在虚拟交换机上提供,服务模块可大致细分为内化服务模块和外部服务模块。服务模块可通过一个或多个端口可通信地耦接到虚拟交换机。如本文所定义的那样,连接虚拟交换机和服务模块的端口被称为“服务端口”。更一般地,“服务端口”指的是可用于服务模块和虚拟交换机之间的通信的任何连接机构。例如,服务端口的一个示例可以是用于与外部服务模块进行通信的外部以太网端口,同时另一个服务端口可以是用于与内部服务模块连接的内部连接(例如,作为诸如PCIe连接的底板的一部分)。当然,是以非限制性的和仅出于说明的目的来提供这样的示例,本领域的普通技术人员将很快认识到,“服务端口”可以指可与本公开一致使用的 (已知和未知的)众多其它类型的连接。
内化服务模块可以使用在其上运行虚拟交换机的物理交换机内的硬件和固件来实现。作为一个示例,一个内化服务模块可以作为在物理交换机 (例如,网络交换机的服务卡)内的专用集成电路(ASIC)上运行的逻辑来实现。ASIC(或在其上装有ASIC的卡)可以通过一个或多个服务端口连接到虚拟交换机。例如,对于具有增强的安全性要求和需要专用的内部服务模块(例如,遵守特定政府法规)的虚拟交换机而言,这种内化服务模块可以是优选的。
在另一方面,外部服务模块可以由外部设备提供。例如,这样的外部服务模块可以使用硬件、固件、软件或这三者的某种组合来实现,并可以通过一个或多个服务端口可通信地耦接到虚拟交换机。例如,当外部服务模块的功能可以更容易可扩展并用于降低成本时,这样的外部服务模块可以是优选的。
虽然网络设备编组(例如,根据vPC协议创建的虚拟交换机)有许多优点,但也有挑战。例如,某些服务模块(例如,防火墙服务模块)可以被配置为对数据流进行操作,以使得属于特定数据流(例如,TCP流)的所有数据分组都应该使用单一服务处理模块被处理。然而,在由多个物理交换机连接在一起以形成一个单一逻辑交换机的虚拟交换机中,数据分组可以由相邻的交换机传送给多个物理交换机中的任一个。这样,当这样的服务模块被用于处理在物理交换机中的一个特定交换机上的特定数据流时,在特定数据流中的、被传送给其它物理交换机的数据分组可以被转发给具有服务模块的特定物理交换机。虽然物理交换机可以使用可用来转发这样的数据分组的虚拟交换机层链路进行互连,但一般优选避免在虚拟交换机层链路上发送数据平面流量(例如,如在该示例中被转发的数据分组)。也就是说,这样的数据平面流量的转发可能导致虚拟交换机层链路上的拥堵,这延迟或阻碍在整个虚拟交换机层链路上的控制平面流量的传输。此外,当服务模块的处理能力不断提高时,转发的数据平面流量的量可能会超过该虚拟交换机层链路的带宽。
因此,实施例提供了用于在具有虚拟网络设备的网络环境中优化路径的技术,该虚拟网络设备包括使用虚拟网络设备层链路连接的第一物理网络设备和第二物理网络设备。实施例在第一物理网络设备通过虚拟网络设备层链路从第二物理网络设备接收属于第一数据流的第一数据分组。在这里,第二物理网络设备上的逻辑可响应于第一数据分组属于当前正被第一物理网络设备上的服务模块处理的数据流的判定,将第一数据分组转发给第一物理网络设备。
实施例还可确定第二物理网络设备从其接收第一数据分组的相邻网络设备。例如,实施例可以识别在其上在第二物理网络设备上最初接收到数据分组的第二物理网络设备的端口,并且可以访问邻居信息数据库,以确定有关所识别的端口和与该端口连接的相邻网络设备的信息。实施例还可确定连接第一物理网络设备和相邻网络设备的一个或多个链路。例如,在确定了有关第二物理网络设备从其接收数据分组的相邻网络设备的信息时,实施例可确定连接到相邻网络设备的第一物理网络设备的一个或多个端口。实施例可随后将网络消息发送到相邻网络设备(例如,使用第一个物理网络设备的所确定的端口中的一个或多个)。
在接收到信息时,相邻网络设备上的逻辑可以被配置为仅使用所确定的一个或多个链路将来自第一数据流的后续数据分组发送给虚拟网络设备。例如,在一个实施例中,相邻网络设备上的逻辑可更新用于使第一数据流中的数据分组负载平衡的哈希函数,以使哈希函数对于在第一数据流中的数据分组仅生成对应于在第一物理网络设备和相邻网络设备之间的链路的哈希值。有利的是,这样做有助于通过使流过虚拟交换机中的物理网络设备之间的虚拟交换机层链路的数据平面流量最小化来优化虚拟交换机内的路径。
图1示出了根据本文描述的一个实施例的被配置为具有路径优化组件的网络设备。如图所示,网络环境100包括网络设备110和相邻网络设备 140。网络设备110包括一个或多个处理器115、通信端口120、存储器 125和一个或多个服务模块。处理器115可以是能够执行本文描述的功能的任何处理元件。处理器115代表了单处理器、多处理器、具有多个内核的处理器以及它们的组合。存储器125可以是易失性存储器或非易失性存储器,并且包括RAM、闪存、缓存、磁盘驱动器等。此外,存储器125 包含路径优化组件150。如上文所讨论的,路径优化部件150一般被配置为检测数据分组何时跨越虚拟交换机层链路(例如通过未示出的第二网络设备)被转发。当接收到这样的数据分组时,路径优化部件150可以配置相邻网络设备(例如,相邻网络设备140)以将来自数据流的后续数据分组仅跨越链路的子集(例如,跨越连接相邻网络设备140和网络设备110 的一个或多个链路)转发。此外,存储器125还可以包含网络逻辑-例如内容可寻址存储器,以用于在通信网络中转发数据。装置110还可以包括用于配置和管理转发逻辑的控制平面。
图2示出了根据本文描述的一个实施例的被配置为具有路径优化组件的网络环境。如图所示,网络环境200包括交换机210、215、220和230。交换机210包括在端口2251-2连接到交换机220的端口2453-4,并且还包括在端口2351连接到交换机230的端口2451。同样,交换机215包括在端口 2253-4连接到交换机220的端口2405-6,并且还包括在端口2352连接到交换机230的端口2402。这里,交换机210和215各自被配置有对应的路径优化组件1501-2。
对于这个示例来说,假定交换机210和215被配对,以形成单个虚拟交换机,并且交换机220和230被配置为将交换机210和215作为单一的逻辑实体来看待和处理。也就是说,如果交换机230接收到要转发给虚拟交换机的数据分组,则交换机230可以采用负载平衡算法来选择端口2351-2中的一个,并可以使用所选择的端口发送数据分组。因此,即使取决于选择了哪个端口2351-2,数据分组被发送给了不同的物理交换机(即,交换机210或215),交换机210和215被配置为起到单个虚拟交换机的作用,无论选择了哪个端口,数据分组仍被传送到单个虚拟交换机。
另外,交换机210和215由虚拟交换机层链路205互连。在所描绘的示例中,虚拟交换机层链路205包括多个链路,它们连接在一起成为一个单一的逻辑链路(例如,端口信道)。通常,虚拟交换机层链路205可用于在交换机210和215之间传送控制平面流量。如上所述,虚拟交换机层链路205也可以被用来在交换机210和215之间转发数据平面流量,尽管由于可用的带宽有限和延迟的担忧,它通常被认为是不希望的。
如以上所讨论的,在交换机230处将数据分组转发给虚拟交换机时,交换机230上的逻辑可以选择连接虚拟交换机的端口2351-2中的一个(例如,使用基于哈希的负载平衡算法),并且可以跨过所选端口传送数据分组。对于该示例而言,假设交换机230上的逻辑选择端口2351并将数据分组发送到交换机210。在这点上,在交换机210上的一个或多个服务模块可以为数据分组及其对应的数据流开始执行一个或多个操作(例如,防火墙服务)。假设数据分组接着去往交换机220,则交换机210上的逻辑可以采用负载平衡算法来选择端口2453-4中的一个,并可在所选择的端口上发送数据分组。然后,交换机220可以将数据分组上转发到其目的地(未示出)。
图3A至图3C示出了根据本文描述的实施例的通过图2中所示的网络环境的示例性路径。上述路径的可视描绘在图3A中示出。在此,图300 示出了数据分组到达交换机230(路径310),被传送给交换机210(路径 315),被传送给交换机220(路径320),然后被转发到它的目的地(路径325)。
一旦数据分组到达其目的地,响应数据流可被发送回到数据分组的源。由于交换机220将交换机210和215视为单个逻辑实体(即,虚拟交换机),交换机220可能不一定将响应数据流中的数据分组转发给交换机 210,并且替代地,这些数据分组可能被转发到交换机215。即,交换机 220可配置为将所有使交换机220与交换机210和215连接的链路捆束起来,并采用负载平衡算法来选择束内的链路用于转发数据分组。然而,由于交换机210上的服务模块当前正在处理数据流,所以转发到交换机215 的数据分组(即,数据平面流量)可跨越连接交换机210和215的虚拟交换机层链路进行发送。
这种情况的一个示例在图3B中示出。在此,示图330示出了响应数据流中的数据分组到达交换机220(路径340)、被发送到交换机215(路径345)、穿过虚拟交换机层链路被转发到交换机210(路径350)、以及被发送到交换机230(路径355)。然后,交换机230将数据分组转发到其目的地(路径360)。然而,如上文所讨论的,虚拟交换机层链路通常旨在用于虚拟交换机内的交换机210和215之间的控制平面流量,并且通常认为通过虚拟交换机层链路转发这样的数据平面流量是不希望的。
这样,在交换机210上的路径优化部件1501可以检测何时属于特定数据流的数据分组通过虚拟网络设备层链路205在交换机210从交换机215 被接收到。然后,路径优化部件1501可以识别交换机215从其接收到数据分组的相邻网络设备。例如,路径优化部件1501可以识别交换机215在其上接收到数据分组的交换机215的端口,可以识别对应于所识别的端口的相邻网络设备(例如,通过查询交换机215的邻居信息数据库)。因此,在所描绘的示例中,路径优化部件1501可以确定交换机215从交换机220 接收到了数据分组。
路径优化部件1501可随后确定连接到相邻网络设备(例如,交换机 220)的交换机210的一个或多个端口。因此,在该示例中,路径优化部件1501可确定端口2453-4连接到交换机220。路径优化部件1501可随后将网络消息发送到交换机220,指示交换机220仅使用在交换机210和交换机220之间的链路,将来自特定数据流的后续数据分组发送给虚拟网络设备。这里,路径优化部件1501可以指示交换机220仅使用交换机220的端口2251-2传送后续数据分组。有利的是,这样做有助于使穿过虚拟交换机层链路205流动的数据平面流量的量最小化。
图3C示出了在特定的数据流中的后续数据分组的优化路径的可视描绘。在此,示图370示出了数据分组到达交换机220(路径375)和被转发到交换机210(路径380)。例如,交换机220上的逻辑可以采用负载平衡来仅选择端口2251-2中的一个,而不是选择整个链路束中的端口(即,端口2251-4)中的一个。然后,交换机210将数据分组转发给交换机230 (路径385),交换机230将数据分组转发到其目的地(路径390)。因此,在框图370中所示的示例性路径中,没有数据平面流量穿过交换机 210和215之间的虚拟交换机层链路205来被传送。
在一个实施例中,相邻网络交换机220被配置为响应接收指令,更新用于使第一数据流中的平衡数据分组负载平衡的哈希函数。例如,假设交换机220使用哈希函数来选择端口2251-4中的一个来用于将数据分组转发到虚拟交换机,其中每个端口2251-4对应于由哈希函数生成的各自的哈希值。在这样的示例中,在接收到指令要将来自特定流的后续数据分组限制在仅交换机220和交换机210之间的链路时,相邻网络交换机220上的逻辑可以重新配置哈希函数,以仅产生对应于端口2251-2的哈希值。有利的是,这样做确保来自特定数据流的后续数据分组将被转发至交换机210而不是交换机215,并且还保留了对于端口2251-2的负载平衡功能性。
图4是示出了根据本文描述的一个实施例的配置相邻网络设备来优化通过虚拟网络设备的路径的方法的流程图。如图所示,方法400开始于框 410,其中在第一网络设备的路径优化部件150从第二网络设备并穿过在第一第二网络设备和第二网络设备之间的虚拟交换机层链路接收到数据分组。例如,在图2所示的网络环境200中,路径优化部件1501可通过虚拟交换机层链路205从交换机215接收数据分组。这样,在该示例中,通过负载平衡,交换机220将数据分组发送到了由交换机210和215构成的虚拟交换机。
当接收到数据分组时,路径优化组件150确定与数据分组相关联的数据流(框415)。例如,路径优化组件150可以用数据分组检查头部信息,并能确定唯一标识该数据分组对应的数据流(例如,TCP流)的流标识符。路径优化部件150还确定第二网络设备在其上最初接收到数据分组的第二网络设备的一个或多个链路(框420)。此外,路径优化部件150确定相对于第二网络设备的对应于所确定的一个或多个链路的相邻网络设备(框 425)。例如,路径优化组件150可以维持(或检索)描述第二网络设备的相邻网络设备的邻居信息,并可以使用该邻居信息来识别第二网络设备从其接收该数据分组的相邻网络设备。
一旦相邻网络设备被识别,路径优化部件150即确定将第一网络设备和相邻网络设备连接的一个或多个链路(框430)。例如,在网络环境 200中,路径优化组件150可确定交换机215通过端口2405从相邻网络设备接收数据分组,并且可以进一步确定,交换机210上的端口2453-4也连接到相邻网络设备。然后,路径优化组件150可指示相邻网络设备对于所确定的数据流中的后续数据分组,仅使用在第一网络设备和相邻网络设备之间的所确定的一个或多个链路(框435),方法400结束。
如上所讨论的,一种用于配置相邻网络设备以对于数据流中的后续数据分组仅使用链路束内的链路子集的技术,是通过重新配置用于相邻网络设备上的数据分组的负载平衡哈希函数。例如,相邻网络设备可以配置为具有路径优化部件150,在某些情况下,该路径优化部件修改相邻网络设备的哈希函数。这种实施例的一个示例在图5中示出,图5是示出了根据本文描述的一个实施例的配置相邻网络设备来优化通过虚拟网络设备的路径的方法的流程图。如图所示,方法500开始于框510,其中相邻网络设备接收到要使用链路束传送的属于特定数据流的数据分组。一般地,链路束可使用与本文描述的功能性一致的任何资源编组协议来创建。这样的协议的一个示例是(但不限于)链路聚合控制协议(LACP)。
然后,相邻网络设备上的逻辑基于数据分组计算哈希值(框515)。一般地,这样的哈希值被用于在相邻网络设备上负载平衡的目的。更具体地说,哈希值用于在传送链路的链路束中选择一个链路(框520)。然后,相邻网络设备在所选择的链路上发送数据分组(框525)。例如,在图2 所示的网络环境200中,交换机220可以代表相邻网络设备,并且可以使用数据分组的计算的哈希值选择端口2253。然后,交换机220可以使用在端口2253和2405之间的链路将数据分组发送到交换机215。
在之后的某个时间点,在相邻网络设备上的路径优化部件150接收仅使用链路束中的链路子集发送来自特定数据流的后续数据分组的指示(框 530)。例如,在从相邻网络设备接收到数据分组时,交换机215上的路径优化部件150可能已经确定该特定的数据流已经由驻留在交换机210上的服务模块处理。相应地,在交换机215上的路径优化组件150可以使用虚拟交换机层链路205将数据分组转发到交换机210。在通过虚拟交换机层链路接收到数据分组时,在交换机210上的路径优化组件150可以给邻接网络设备220传送指示,指示相邻网络设备应当只使用在相邻网络设备 220和交换机210之间的链路转发属于该特定数据流的后续数据分组。也就是说,在环境200中,交换机220可被指示只使用其端口2251-2(而不是链路束中的所有端口2251-4)转发后续数据分组。
例如,相邻网络设备可以保持它的每个端口到虚拟交换机的相应的物理网络设备的映射。作为示例,假设相邻网络设备具有连接到虚拟交换机的端口1、2、3和4。在这样的示例中,相邻网络设备能够保持一个映射,其表示端口1和2映射到虚拟交换机内的第一物理网络设备,并且端口3 和4映射到虚拟交换机内的第二物理网络设备。如果相邻网络设备然后从第一物理网络设备接收到上述指示,在相邻网络设备上的逻辑可随后确定端口1和2映射到第一物理网络设备(即,使用端口到虚拟交换机内的相邻网络设备的映射),只有端口1和2应该用于将属于特定数据流的后续数据分组转发到虚拟交换机。
在接收到该指示时,相邻网络设备上的路径优化部件150为该特定数据流配置相邻网络设备上的路由逻辑,以使得用于负载平衡目的的哈希函数仅生成对应于链路束内的链路子集的哈希值(框535)。例如,在网络环境200中,假设交换机220被配置成具有生成1和4之间的值的哈希函数,其中值1对应于端口2251,值2对应于端口2252,值3对应于端口2253,值4对应于端口2254。在这样的示例中,当接收到指示时,路径优化部件150可以被配置为改变哈希函数以仅生成哈希值1和2,由此,使得仅端口2251和2252之间的该特定数据流的流量负载平衡,因此,只将与该特定数据流有关的流量转发给交换机210。
相应地,方法500继续进行,其中相邻网络设备接收属于该特定数据流的后续数据分组(框540),并使用修改的哈希函数基于后续数据分组计算哈希值(框545)。在这个示例中,作为修改的哈希函数的结果,基于后续数据分组的哈希值将涉及到链路束的链路子集中的一个。相邻网络设备然后使用对应于该哈希值的链路发送后续数据分组(框550),方法500结束。有利的是,方法500通过使穿过在虚拟交换机中的物理交换机之间的虚拟交换机层链路的数据平面流量最小化,提供了虚拟交换机(例如,在网络环境200中由交换机210和215构成的虚拟交换机)内的更为有效的路径。
此外,通过把数据流固定在从其接收到指示的网络设备的所有链路的哈希,实施例使相邻交换机上的转发功能能够运行,而没有任何功能上的影响。即,调整相邻网络设备上的哈希函数可以不改变相邻网络设备的功能,这是因为相邻网络可能已经被配置为在使得穿过连接相邻网络设备和虚拟网络设备的链路束的数据分组负载平衡时使用哈希。相应地,相邻网络设备仍保持使用基于哈希的负载平衡技术来转发数据分组的优点。这些优点包括在相邻网络设备和虚拟网络设备之间的链路冗余,这在链路中断或等价多路径(ECMP)的路径变化时可以是特别有用的。
另外,特别考虑到实施例可以通过云计算基础设施提供给最终用户。云计算一般是指作为通过网络的服务来提供可扩展的计算资源。更形式化地,云计算可以定义为提供在计算资源和它的基本技术架构(例如服务器、存储器、网络)之间的抽象,以使得能对可以通过最小的管理工作或服务提供商交互来快速配置和发布的可配置计算资源的共享池进行便利和按需的网络访问的计算能力。因此,云计算允许用户访问“云”中的虚拟计算资源(例如,存储、数据、应用程序、甚至整个虚拟化的计算系统),而不必考虑用于提供计算资源的底层物理系统(或这些系统的位置)。
云计算资源可以在付费使用的基础上提供给用户,其中只按实际使用的计算资源向用户收费(例如,用户使用的存储空间量或用户实例化的虚拟系统的个数)。用户可以随时通过互联网从任何地方访问驻留在云中的任何资源。在本公开内容的上下文中,云内的路径优化组件150可以为云中的虚拟网络设备优化路径,该虚拟网络设备包括使用虚拟网络设备层链路连接的第一物理网络设备和第二物理网络设备。路径优化部件150可以在第一物理网络设备通过虚拟网络设备层链路从第二物理网络设备接收属于第一数据流的第一数据分组。路径优化组件150可随后确定第二物理网络设备从其接收第一数据分组的相邻网络设备,路径优化组件150还可确定连接第一物理网络设备和相邻网络设备的一个或多个链路。路径优化部件150可以发送网络消息到相邻网络设备,其中所述相邻网络设备被配置为响应接收网络消息,仅使用所确定的一个或多个链路将来自第一数据流的后续数据分组发送给虚拟网络设备。有利的是,这样做有助于确保云的数据中心中的虚拟网络设备的有效的通信流。
在先前的讨论是针对本公开的实施例的同时,可以在不脱离其基本范围的情况下设计出本公开的其它和进一步的实施例。例如,本公开的各方面可以在硬件、软件或硬件和软件的组合中实现。本公开的一个实施例可以实现为用于与计算机系统一起使用的程序产品。该程序产品的程序定义了实施例(包括本文所描述的方法)的功能,并且可以包含在各种计算机可读存储介质上。说明性的计算机可读存储介质包括但不限于:(i)在其上永久地存储信息的不可写存储介质(例如,计算机内的只读存储设备,如CD-ROM驱动器可读的CD-ROM盘、闪速存储器、ROM芯片或任何类型的固态非易失性半导体存储器);和(ii)在其上存储可变信息的可写存储介质(例如,在软磁盘驱动器或硬盘驱动器内的软盘或任何类型的固态随机存取半导体存储器)。这样的计算机可读存储介质在装有指示本公开的功能的计算机可读指令时,是本发明的实施例。
在附图中的流程图和框图说明了根据各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能性和操作。在这点上,在流程图或框图中的每个块可以表示代码的模块、分段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。还应当指出的是,在一些替代实现中,块中提到的功能可以不以图中示出的顺序出现。例如,连续示出的两个块实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能性。还将指出的是,框图和/或流程图中的每个块以及框图和/或流程图中的块的组合,可以由执行指定功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合来实现。
鉴于上述内容,该公开的范围由随后的权利要求书确定。
Claims (17)
1.一种在包含虚拟网络设备的网络环境中优化路径的方法,所述虚拟网络设备包括使用虚拟网络设备层链路连接的第一物理网络设备和第二物理网络设备,所述方法包括:
响应于在所述第一物理网络设备处通过所述虚拟网络设备层链路从所述第二物理网络设备接收属于第一数据流的第一数据分组:
所述第一物理网络设备确定相邻网络设备,其中所述第二物理网络设备从所述相邻网络设备接收所述第一数据分组;
所述第一物理网络设备确定连接所述第一物理网络设备和所述相邻网络设备的一个或多个链路;以及
从所述第一物理网络设备将网络消息发送到所述相邻网络设备,其中所述网络消息指定所确定的一个或多个链路,并且其中,响应于接收到所述网络消息,所述相邻网络设备被配置为仅使用所确定的一个或多个链路将属于所述第一数据流的后续数据分组发送到所述第一物理网络设备。
2.如权利要求1所述的方法,其中所述相邻网络设备被配置为在接收到所述网络消息时,在所述相邻网络设备上配置哈希函数,以在处理来自所述第一数据流的所述后续数据分组时仅返回对应于所述一个或多个链路的哈希值。
3.如权利要求1所述的方法,其中确定所述相邻网络设备还包括:
确定所述第二物理网络设备上接收到所述第一数据分组的链路;以及基于所述第二物理网络设备的所述链路,识别所述相邻网络设备。
4.如权利要求1所述的方法,其中所述第一物理网络设备被配置有服务模块,并且其中所述服务模块被配置为针对所述第一物理网络设备上的数据流执行预定的操作。
5.如权利要求4所述的方法,其中所述第二物理网络设备被配置为:
确定所述第一数据分组属于所述第一数据流,以及
响应于确定所述第一数据流正在被所述第一物理网络设备上的所述服务模块处理,通过所述虚拟网络设备层链路将所述第一数据分组发送到所述第一物理网络设备。
6.如权利要求1所述的方法,其中使用(ⅰ)虚拟交换系统(VSS)协议和(ii)虚拟端口信道(VPC)协议之一,所述第一物理网络设备和所述第二物理网络设备被一起结合到所述虚拟网络设备中。
7.一种在包含虚拟网络设备的网络环境中的第一物理网络设备,所述虚拟网络设备包括使用虚拟网络设备层链路连接的所述第一物理网络设备和第二物理网络设备,所述第一物理网络设备包括:
处理器;以及
存储器,所述存储器包括程序,当由所述处理器执行时,所述程序执行用于在所述网络环境中优化路径的操作,所述操作包括:
响应于在所述第一物理网络设备处通过所述虚拟网络设备层链路从所述第二物理网络设备接收属于第一数据流的第一数据分组:
所述第一物理网络设备确定相邻网络设备,其中所述第二网络设备从所述相邻网络设备接收所述第一数据分组;
所述第一物理网络设备确定连接所述第一物理网络设备和所述相邻网络设备的一个或多个链路;以及
从所述第一物理网络设备将网络消息发送到所述相邻网络设备,其中所述网络消息指定所确定的一个或多个链路,并且其中,响应于接收到所述网络消息,所述相邻网络设备被配置为仅使用所确定的一个或多个链路将属于所述第一数据流的后续数据分组发送到所述第一物理网络设备。
8.如权利要求7所述的第一物理网络设备,其中所述相邻网络设备被配置为在接收到所述网络消息时,在所述相邻网络设备上配置哈希函数,以在处理来自所述第一数据流的所述后续数据分组时仅返回对应于所述一个或多个链路的哈希值。
9.如权利要求7所述的第一物理网络设备,其中确定所述相邻网络设备还包括:
确定所述第二物理网络设备上接收到所述第一数据分组的链路;以及
基于所述第二物理网络设备的所述链路,识别所述相邻网络设备。
10.如权利要求7所述的第一物理网络设备,其中所述第一物理网络设备被配置有服务模块,并且其中所述服务模块被配置为针对所述第一物理网络设备上的数据流执行预定的操作。
11.如权利要求10所述的第一物理网络设备,其中所述第二物理网络设备被配置为:
确定所述第一数据分组属于所述第一数据流,以及
响应于确定所述第一数据流正在被所述第一物理网络设备上的所述服务模块处理,通过所述虚拟网络设备层链路将所述第一数据分组发送到所述第一物理网络设备。
12.如权利要求7所述的第一物理网络设备,其中使用(ⅰ)虚拟交换系统(VSS)协议和(ii)虚拟端口信道(VPC)协议之一,所述第一物理网络设备和所述第二物理网络设备被一起结合到所述虚拟网络设备中。
13.一种非易失性计算机可读介质,该非易失性计算机可读介质存储有用于在包含虚拟网络设备的网络环境中优化路径的计算机程序,其中所述虚拟网络设备包括使用虚拟网络设备层链路连接的第一物理网络设备和第二物理网络设备,所述计算机程序在被处理器运行时使得所述处理器:
响应于在所述第一物理网络设备通过所述虚拟网络设备层链路从所述第二物理网络设备接收属于第一数据流的第一数据分组:
通过所述第一物理网络设备确定相邻网络设备,其中所述第二物理网络设备从所述相邻网络设备接收所述第一数据分组;
通过所述第一物理网络设备确定连接所述第一物理网络设备和所述相邻网络设备的一个或多个链路;
从所述第一物理网络设备将网络消息发送到所述相邻网络设备,其中所述网络消息指定所确定的一个或多个链路,并且其中,响应于接收到所述网络消息,所述相邻网络设备被配置成仅使用所确定的一个或多个链路将属于所述第一数据流的后续数据分组发送到所述第一物理网络设备。
14.如权利要求13所述的非易失性计算机可读介质,其中所述相邻网络设备被配置为在接收到所述网络消息时,在所述相邻网络设备上配置哈希函数,以在处理来自所述第一数据流的所述后续数据分组时仅返回对应于所述一个或多个链路的哈希值。
15.如权利要求13所述的非易失性计算机可读介质,其中所述计算机程序在被所述处理器运行时还使得所述处理器:
确定所述第二物理网络设备上接收到所述第一数据分组的链路;以及
基于所述第二物理网络设备的所述链路识别所述相邻网络设备。
16.如权利要求13所述的非易失性计算机可读介质,其中所述第一物理网络设备被配置为具有服务模块,其中所述服务模块被配置为针对所述第一物理网络设备上的数据流执行预定的操作,并且其中所述第二物理网络设备被配置为:
确定所述第一数据分组属于所述第一数据流,以及
响应于确定所述第一数据流正在被所述第一物理网络设备上的所述服务模块处理,通过所述虚拟网络设备层链路将所述第一数据分组发送到所述第一物理网络设备。
17.如权利要求13所述的非易失性计算机可读介质,其中使用(ⅰ)虚拟交换系统(VSS)协议和(ii)虚拟端口信道(VPC)协议之一,所述第一物理网络设备和所述第二物理网络设备被一起结合到所述虚拟网络设备中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/839,159 US9219687B2 (en) | 2013-03-15 | 2013-03-15 | Path optimization in multi-node virtual switch with orphan ports |
US13/839,159 | 2013-03-15 | ||
PCT/US2014/022085 WO2014150068A1 (en) | 2013-03-15 | 2014-03-07 | Path optimization in multi-node virtual switch with orphan ports |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105052092A CN105052092A (zh) | 2015-11-11 |
CN105052092B true CN105052092B (zh) | 2019-05-07 |
Family
ID=50442636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480015113.7A Expired - Fee Related CN105052092B (zh) | 2013-03-15 | 2014-03-07 | 在包含虚拟网络设备的网络环境中优化路径的方法、网络设备和计算机可读介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9219687B2 (zh) |
EP (1) | EP2974173B1 (zh) |
CN (1) | CN105052092B (zh) |
WO (1) | WO2014150068A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9219687B2 (en) * | 2013-03-15 | 2015-12-22 | Cisco Technology, Inc. | Path optimization in multi-node virtual switch with orphan ports |
KR101534566B1 (ko) * | 2014-05-09 | 2015-07-24 | 한국전자통신연구원 | 클라우드 가상 데스크탑 보안 통제 장치 및 방법 |
US10257049B2 (en) * | 2015-06-30 | 2019-04-09 | International Business Machines Corporation | Dynamic highlight |
DE102016118614A1 (de) * | 2016-09-30 | 2018-04-05 | Endress+Hauser Gmbh+Co. Kg | Verfahren zum manipulationssicheren Speichern von Daten eines Feldgeräts |
CN108234321B (zh) * | 2016-12-14 | 2021-02-23 | 中兴通讯股份有限公司 | 一种报文转发的方法及系统 |
EP4116833A4 (en) * | 2020-03-25 | 2023-04-26 | Huawei Technologies Co., Ltd. | COMMUNICATION METHOD AND ASSOCIATED APPARATUS |
US11442703B2 (en) * | 2020-09-22 | 2022-09-13 | Cisco Technology, Inc. | Domain-specific language for serverless network functions |
US11625230B2 (en) | 2020-09-22 | 2023-04-11 | Cisco Technology, Inc. | Identifying execution environments for deploying network functions |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990430B2 (en) * | 2004-02-19 | 2015-03-24 | Cisco Technology, Inc. | Interface bundles in virtual network devices |
US8325630B2 (en) | 2008-02-29 | 2012-12-04 | Cisco Technology, Inc. | Distributed spanning tree protocol on a multi chassis port channel |
US8401026B2 (en) * | 2009-05-18 | 2013-03-19 | Cisco Technology, Inc. | Achieving about an equal number of active links across chassis in a virtual port-channel environment |
US8335236B2 (en) * | 2010-05-06 | 2012-12-18 | Cisco Technology, Inc. | FCoE isolated port channels and FCoE session resynchronization in vPC/MCEC environments using DCBXP |
JP5135383B2 (ja) | 2010-05-27 | 2013-02-06 | アラクサラネットワークス株式会社 | ネットワークシステム及びネットワーク装置 |
US9219687B2 (en) * | 2013-03-15 | 2015-12-22 | Cisco Technology, Inc. | Path optimization in multi-node virtual switch with orphan ports |
-
2013
- 2013-03-15 US US13/839,159 patent/US9219687B2/en active Active
-
2014
- 2014-03-07 EP EP14716091.5A patent/EP2974173B1/en active Active
- 2014-03-07 CN CN201480015113.7A patent/CN105052092B/zh not_active Expired - Fee Related
- 2014-03-07 WO PCT/US2014/022085 patent/WO2014150068A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP2974173A1 (en) | 2016-01-20 |
US9219687B2 (en) | 2015-12-22 |
US20140269329A1 (en) | 2014-09-18 |
EP2974173B1 (en) | 2020-05-20 |
WO2014150068A1 (en) | 2014-09-25 |
CN105052092A (zh) | 2015-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105052092B (zh) | 在包含虚拟网络设备的网络环境中优化路径的方法、网络设备和计算机可读介质 | |
US10771389B2 (en) | Virtual tunnel endpoints for congestion-aware load balancing | |
JP7417825B2 (ja) | スライスベースルーティング | |
CN104937885B (zh) | 用于结构交换机的全局vlan | |
US9294396B2 (en) | Port extender | |
CN104303467B (zh) | 一种交换机及其操作方法 | |
US10193810B2 (en) | Congestion-aware load balancing | |
CN105706398B (zh) | 重叠网络中的虚拟端口信道弹回的方法和系统 | |
CN104580024B (zh) | 扩展的以太网互联结构交换机 | |
CN106105130B (zh) | 一种在源路由中提供熵源的方法和设备 | |
US20140071987A1 (en) | Systems and methods providing reverse path forwarding compliance for a multihoming virtual routing bridge | |
Bolotin et al. | Routing table minimization for irregular mesh NoCs | |
US20130343396A1 (en) | Information processing system, relay device, information processing device, and information processing method | |
WO2019108148A2 (en) | System and method for convergence of software defined network (sdn) and network function virtualization (nfv) | |
CN107211036B (zh) | 一种数据中心网络组网的方法以及数据中心网络 | |
EP3328008B1 (en) | Deadlock-free routing in lossless multidimensional cartesian topologies with minimal number of virtual buffers | |
CN104782104B (zh) | 使用站点虚拟mac地址的otv缩放 | |
EP3559833B1 (en) | Best-efforts database functions | |
JP6946470B2 (ja) | 伝送パスを決定する方法およびノード | |
US11563698B2 (en) | Packet value based packet processing | |
CN105812257A (zh) | 业务链路由管理系统及其使用方法 | |
US11451494B2 (en) | Packet order recovery in a programmable edge switch in a data center network | |
US10033666B2 (en) | Techniques for virtual Ethernet switching of a multi-node fabric | |
WO2022057810A1 (zh) | 业务报文的转发方法、sr策略的发送方法、设备及系统 | |
US20190394115A1 (en) | Area abstraction extensions to routing protocols |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20190507 Termination date: 20210307 |