卫星设备处的本地分组交换的制作方法

文档序号:12071708阅读:182来源:国知局
卫星设备处的本地分组交换的制作方法与工艺

本公开一般地涉及电子数据网络中的分组交换,该电子数据网络包括父交换设备和相关联的卫星或远程交换设备。



背景技术:

云计算可以被定义为基于因特网的计算,其中从通过因特网或其他电子网络可通信地获得的资源池将共享的资源、软件和信息按需提供给客户端或用户计算机或其他设备。云计算被设想为是使对资源和服务的访问民主化的方式,使得用户有效地购买与他们需要和/或能够负担的资源一样多的资源。

在一些可能的实现方式中,云计算包括链接后端资源(例如,存储器、处理器等等)以提供基于web的服务、应用和数据存储。该方法具有以下效果,以比其他选项(例如,本地企业)更低的成本提供服务,并且具有较少的复杂性、较大的可扩展性和较宽的范围。然而,将这样的后端系统的功能彼此链接以及链接至客户端或用户设备可能是艰巨的,尤其是考虑到可能有成千上万的这样的后端系统、客户端和主机需要彼此互连。

附图说明

图1是根据示例实施例的数据中心中的包括父交换设备和远程交换设备的组件的框图。

图2是根据示例实施例的父交换设备、远程交换设备和连接的主机设备的更详细的框图。

图3A和3B是描绘用于实现示例实施例的一系列操作的示例流程图。

图4是根据示例实施例的父交换设备的框图。

图5是根据示例实施例的卫星或远程交换设备的框图。

具体实施方式

本文提出了使能卫星或远程交换设备处的本地交换的技术,该卫星或远程交换设备用作父交换设备的端口或架构扩展器。一种方法包括:在父交换设备处通过远程交换设备从第一主机设备接收数据分组,该数据分组具有至少第一源媒体访问控制(MAC)地址和相关联的信息,该第一源MAC地址与第一主机设备相对应,该相关联的信息指示数据分组经由第一端口通过远程交换设备;在父交换设备的存储器中存储的父交换表中添加条目,该父交换表被配置为将第一MAC地址与远程交换设备的第一端口相互关联;以及向远程交换设备发送交换表条目更新消息,该交换表条目更新消息包括指示第一MAC地址与第一端口相互关联的信息,以使得去往第一主机设备并在远程交换设备处被接收的后续数据分组能够被直接交换到第一主机设备,而不是后续数据分组被转发到父交换设备。还公开了一种被配置为执行本方法的装置。

在另一实施例中,一种方法包括:在卫星交换设备处从父交换设备接收交换表条目更新消息,该交换表条目更新消息包括指示第一MAC地址与卫星交换设备的第一端口相互关联的信息;用指示第一MAC地址与远程交换设备的第一端口相互关联的信息来更新本地交换表;在远程交换设备处接收去往第一MAC地址的数据分组;查询本地交换表并确定第一MAC地址与远程交换设备的第一端口相互关联;以及将在远程交换设备处接收到的数据分组直接转发到第一端口,而不将数据分组转发到父交换设备。还公开了一种被配置为执行本方法的装置。

示例实施例

图1是根据示例实施例的数据中心1中的组件的框图。如图所示,数据中心1包括聚合交换机10,该聚合交换机10与网络15(例如因特网)进行通信。聚合交换机10可以与诸如边缘路由器(未示出)之类的中间设备进行通信,还可以与其他中间设备进行通信。但是为了说明的目的,如上所述,聚合交换机10与外部网络15进行通信。网络15使得各个客户端18能够与数据中心1进行通信。客户端18可以是台式或膝上型计算机、智能电话、平板电脑、或可以通过网络15与数据中心1进行通信的任意其他计算设备。

聚合交换机10还与第一服务器机架20进行通信。第一服务器机架20包括例如,机架顶(ToR)交换机或父交换设备200、和多个服务器28。父交换设备200与第二服务器机架30进行通信。第二服务器机架30包括卫星或远程交换设备300、和多个服务器38,该多个服务器38连接到远程交换设备300。

如上所述,所描绘的配置中的远程交换设备300可以被称为“卫星”交换设备,并且有效地用作父交换设备200的交换结构或端口扩展器。更具体地,父交换设备200包括多个端口,分别与各个服务器28进行通信。然而,一个或多个所述端口可以与远程交换设备300进行通信。因此,父交换设备200的给定端口也可以通过远程交换设备300及其相应端口与服务器机架30中的每个服务器38有效地进行通信。

如下面将更全面地解释的,远程交换设备300可以被配置为在某些方面离开父交换设备200自主地进行操作。这样的自主操作可以节省通常在远程交换设备300和父交换设备200之间的连接50上消耗的带宽,由此还可以改善通过远程交换设备300本身处理的数据通信的延迟。

本领域技术人员将理解,虽然图1和数据中心1仅描绘了两个服务器机架,即第一服务器机架20和第二服务器机架30,但是典型的数据中心可以包括数百或甚至数千个类似的服务器机架。然而,为了说明的目的,两个所描绘的服务器机架是足够的。

图2是根据示例实施例的父交换设备200、远程交换设备300和连接的主机设备38的更详细的框图。该附图描绘了分层拓扑中相互连接的父交换设备200、远程交换设备300和服务器38。服务器28(其与父交换设备200直接进行通信)没有被描绘,因为它们不与以下描述特别相关。如上所述,父交换设备200可以是如图1所示的ToR交换机,或可以是另一交换机。父交换设备200包括转发引擎240和父交换表250。远程交换设备300包括转发代理340和本地交换表350。三个主机设备或服务器38连接到远程交换设备300的相应端口P1、P2和P3。

每个主机设备或服务器38分别具有分配的媒体访问控制(MAC)地址M1,M2和M3。MAC地址可以是硬编码的,或可以是可配置的。可以采用网络接口卡来实现给定服务器与远程交换设备300之间所指示的连接性。(父交换设备200也可以包括网络接口卡)。每个MAC地址可以支持多个虚拟局域网(VLAN),被描述或被指定为例如VLAN1、VLAN2等等。即,服务器38可以支持多个虚拟LAN,其通信通过使用例如以太网分组报头中的VLAN标签来指定。如进一步所示,每个服务器38通过连接251、252或253与远程交换设备300进行通信。这样的连接可以用例如以太网电缆来实现。

转发引擎240和父交换表250负责“学习”给定MAC地址和VLAN正在通过哪个端口进行通信,并且之后,用于将去往给定MAC地址和VLAN的数据通信转发至学习到的端口。更具体地,假定来自VLAN VLAN1上的MAC地址M1的通信去往MAC地址M2。该通信首先在远程交换设备300的端口P1处被接收。然后,根据实施例,该通信被直接传递到父交换设备300以用于转发到适当的目的地端口,由此转发到期望的MAC地址/VLAN。在接收到通信时,转发引擎240“学习”到端口P1与MAC地址M1和VLAN VLAN1相关联,并且相应地在父交换表250中添加条目。即,父交换表240被更新以包括元组:MAC地址、VLAN、端口号的条目。作为结果,如果后续通信(即,数据分组)被接收到并且去往该MAC地址/VLAN对,则父交换设备200可以使用转发引擎240和父交换表250将接收到的通信转发到远程交换设备300上的端口PI。

前述场景假设通过远程交换设备300上的端口接收到的所有通信被传递到父交换设备200,以用于适当的表更新、查找和转发操作。然而,根据本文描述的实施例,远程交换设备300被配置为,使得在其端口之一上接收到的去往由远程交换设备300的另一端口服务的给定MAC地址/VLAN对的通信,被立即转发到远程交换设备300上的该另一端口,而不将通信传递到父交换设备200。

为了实现远程交换设备300的这种自主转发操作,在实施例中,父交换设备200被配置为向远程交换设备300提供足以使得远程交换设备300能够在服务器38(该服务器38连接到远程交换设备300上的端口)之间转发数据通信(即,分组)的转发信息,因此避免了将通信传递到父交换设备200并导致连接280上的带宽使用的操作,由此避免与额外距离相关联的延迟。

在许多情况下,当服务器首次上线时,该服务器将发送地址解析协议(ARP)消息或随后的周期性免费ARP(GARP)消息,以指示服务器的(和关联的MAC地址的)存在。根据实施例,如果在远程交换设备300处接收到任何这样的ARP或GARP消息,则自动并立即传递到父交换设备200。这样,父交换设备200中的父交换表250可以通过在其中添加条目被适当地更新,该条目关联该ARP/GARP分组的MAC地址、VLAN和端口号元组。

在将这样的条目添加到父交换表250时,转发引擎240被配置为向远程交换设备300发送“交换表条目更新消息”,该“交换表条目更新消息”包括学习到的端口的MAC地址、VLAN和端口号元组,以使得本地交换表350可以用相同的信息进行更新。即,关于通过远程交换设备300上的端口支持的MAC地址和VLAN,本地交换表350被配置为与父交换表250同步。

在刚刚描述的场景中,MAC地址M1和VLAN VLAN1与端口P1相关联。如上所述,该元组信息被布置为驻留在本地交换表350中。作为结果,当例如在端口P3处接收到来自MAC地址M3并去往MAC地址M1和VLAN VLAN 1的通信时,远程交换设备300中的转发代理340首先查阅本地交换表350以确定MAC地址M1和VLAN1是否被列在其中。如果是这样(并且在本场景下,它是这样),转发代理340能够自主地(即,不需要父交换设备200的进一步帮助)将接收到的通信(数据分组)直接转发到端口P1。

在本地交换表350中未找到目的地MAC地址/VLAN对的情况下,分组被简单地传递到父交换设备200,使得父交换表250可以被适当地更新(于是,该更新将从父交换设备200经由交换表条目更新消息被传递到本地交换表350)。

在一个实施例中,父交换表250被实现为静态表管理器(STM),并且本地交换表350被实现为三元内容可寻址存储器(TCAM)。TCAM实现方式的一个优点是,数据搜索或查询以及返回结果具有相对快的速度。

前面的解释描述了父交换表250中的表条目是如何提供给本地交换表350的。为了维持父交换表250和本地交换表350之间的同步,从父交换表250中移除的表条目同样应该从本地交换表350中移除。因此,在实施例中,在适当的时候,可以由父交换设备200发送指示给定表条目应当从本地交换表350中移除的交换表条目更新消息。

注意,表条目的移除可以因为给定条目已经超时而被触发。例如,如果父交换设备200在预定量的时间(例如,30秒、5分钟、30分钟等)内没有检测到针对给定MAC地址/VLAN组合的通信(即,分组),则这可以意味着该MAC地址/VLAN组合不再可操作,由此不需要维护表中的相应条目。当将要从父交换表250移除表条目时,通过发送指示移除动作的交换表条目更新消息,也从本地交换表350中移除相同条目。以这种方式,两个表保持同步,其中父交换表250有效地充当主表。

在另一场景下,MAC地址可以在同一远程交换设备上从一个端口移动到另一端口,或者完全地移动到另一个远程交换设备。当这样的移动发生时,已移动的服务器(MAC地址)将最终发送ARP消息或GARP消息,以引起对父交换表250的更新(由此引起对本地交换表350的相应更新)。之后可以执行由远程交换设备300进行的自主本地分组转发。

图3A是描绘用于实现示例实施例的一系列操作的示例流程图3000。在3010处,在父交换设备处从第一主机接收分组。在3012处,在父交换表中添加与MAC地址、VLAN和端口号(尽管VLAN值不是必需的)相关联的条目。在3014处,将交换表更新消息发送到远程交换设备。上述操作一般地由连接到远程或卫星交换设备的父交换设备执行。

图3B是描绘用于实现示例实施例的一系列操作的示例流程图3100。在3015处,在远程交换设备处接收在3014处发送的交换表条目更新消息。在3016处,用在操作3012中添加到父交换设备的类似表条目(例如,MAC地址、VLAN、端口号元组)来更新远程交换设备的本地交换表。在3018处,在远程交换设备处从第二主机接收数据分组,该分组具有目的地MAC地址和VLAN指定。

在3020处,确定数据分组是否是ARP或GARP消息、或ARP或GARP消息的一部分。如果是,则在3022处,该数据分组被立即发送到父交换设备。如果数据分组不是ARP或GARP消息、或ARP或GARP消息的一部分,则执行操作3024。在3024处,在本地交换表中查找MAC地址和VLAN指定,以识别分组的目的地端口号。如果在本地交换表中找到MAC地址和VLAN,则可以识别端口号以用于转发分组。这样,在3026处,分组被转发到远程交换设备中识别的端口,而不必将该分组传递到父交换设备。在3028处,如果在本地交换表中没有找到MAC地址和VLAN,则将分组转发到父交换设备以用于转发和/或端口学习。

根据实施例,可以使用控制平面(其可以是带内的或带外的)将上述交换表表项更新消息(并且本地交换表350是通过该交换表条目更新消息被更新的)从父交换设备200传输到远程交换设备300。控制平面可以是集中式的或分布式的。控制平面可以通过图2中所示的连接280来实现。

在可能的实现中,父交换设备200可以具有32-64个端口。远程交换设备300可以具有大约64个端口。因此,本领域技术人员将理解,远程交换设备可以显着地扩展父交换设备的交换能力。通过实现本文所描述的技术,可以减少在父交换设备与端口/结构扩展器与远程交换设备之间的链路280上的带宽使用。作为去往和来自父交换装置的附加行程的结果而可能出现的延迟同样减少。

图4是根据示例实施例的父交换设备200的框图。父交换设备200包括处理器260和存储器210,该存储器210存储各种数据和软件指令,包括转发引擎逻辑220(例如,用于图3A的操作)。存储器210还存储父交换表250。父交换设备200还包括网络接口单元280(例如一个或多个端口或网络接口卡),父交换设备200可以通过网络接口单元280与网络和/或其他交换设备进行通信。

存储器210可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质设备、光存储介质设备、闪存设备、电的、光的或其他物理的/有形的(例如,非暂态)存储器存储设备。处理器260可以是例如执行用于实现本文描述的过程的指令的微处理器或微控制器。因此,一般来说,存储器210可以包括一个或多个有形(非暂态)计算机可读存储介质(例如,存储器设备),其用包括计算机可执行指令的软件进行编码,并且当(由处理器260)执行软件时,可操作以执行本文描述的操作。

图5是根据示例实施例的远程交换设备300的框图。远程交换设备300包括处理器360和存储器310,该存储器310存储各种数据和软件指令,包括转发代理逻辑320(例如,用于图3B的操作)。存储器310还存储本地交换表350。远程交换设备300还包括网络接口单元380(例如一个或多个端口),远程交换设备300可以通过网络接口单元380与父交换设备200和其他设备进行通信。

存储器310可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质设备、光存储介质设备、闪存设备、电的、光的或其他物理的/有形的(例如,非暂态)存储器存储设备。处理器360可以是例如执行用于实现本文描述的过程的指令的微处理器或微控制器。因此,一般来说,存储器310可以包括一个或多个有形(非暂态)计算机可读存储介质(例如,存储器设备),其用包括计算机可执行指令的软件进行编码,并且当(由处理器360)执行软件时,可操作以执行本文描述的操作。

如上所述,在包括父网络设备和具有有限控制平面能力的卫星或远程网络(即,结构扩展器)设备的网络环境中,来自连接到卫星设备的主机设备并去往连接到同一卫星设备的另一主机设备的数据流量通过父设备进行交换,而不管目的地在同一卫星设备中。该附加跳引入了延迟,这在某些低延迟期望的环境中是不可忽略的。在卫星设备中维持MAC地址表并实现MAC地址学习(类似于父设备中的那些功能)以在端主机之间交换帧或分组的成本可能是非常高的。另外,从卫星到父交换机的上行链路带宽通常是有限的,并且可能是网络中的拥塞点。然而,根据本文描述的实施例,卫星设备包括基本上自主的本地交换,可以帮助减轻上行链路带宽使用的负担。

即,根据本文描述的实施例,提供了一种在具有有限控制平面能力的卫星设备中实现本地交换的系统。父设备在学习卫星设备上的MAC地址/端口配对时,动态地向卫星设备中的转发代理发送请求消息,以编程或更新与目的地MAC地址和VLAN匹配的TCAM,并且将流量重定向到目的地端口(在该目的地端口上学习到MAC)。作为结果,去往该学习到的MAC地址的任意进一步的数据流量(也是指定的VLAN的一部分)将被重定向到被编程的端口,而不必到达父交换机以用于交换。

如本领域技术人员将理解的,本实现方式在本质上是分布式的,其中卫星设备不需要具有MAC学习能力,而是依赖于对TCAM进行编程的父交换机。当父交换机检测到MAC超时时,父交换机向卫星设备发送请求消息以从TCAM中移除访问控制。父交换机和卫星交换机之间的同步是通过依赖于端主机发送周期性GARP消息的事实来实现的,并且卫星设备被配置为使得任何这样的GARP(或ARP)流量立即到达父交换机。这使得父交换机能够刷新它的MAC地址表,并避免MAC超时。一般地,由于建议在MAC超时定时器期满之前进行GARP通告,所以在通常场景下系统不会过早地淘汰MAC。

当父交换机检测到MAC移动时,父交换机可以向卫星设备发送请求消息以更新目的地端口。

因此,所描述的实施例实现卫星设备中的交换,即使当这样的卫星设备可能受限于没有源(即,端口)学习时。依赖于父交换机来更新卫星或远程设备中的交换表的方法使得整个系统能够实现有效的交换,而不必向卫星交换机添加完整的MAC源学习。此外,与类似于基于策略的路由的方法(其也可以使用TCAM实现方式来路由流量)不同,本文描述的实施例本质上是动态的,并且在不依赖于用户静态地配置转发或路由表的情况下执行交换。

总的来说,提供了一种方法,包括:在父交换设备处通过远程交换设备从第一主机设备接收数据分组,该数据分组具有至少第一源媒体访问控制(MAC)地址和相关联的信息,该第一源MAC地址与第一主机设备相对应,该相关联的信息指示数据分组经由第一端口通过远程交换设备;在父交换设备的存储器中存储的父交换表中添加条目,该父交换表被配置为将第一MAC地址与远程交换设备的第一端口相互关联;以及向远程交换设备发送交换表条目更新消息,该交换表条目更新消息包括指示第一MAC地址与第一端口相互关联的信息,以使得去往第一主机设备并在远程交换设备处被接收的后续数据分组能够被直接交换到第一主机设备,而不是后续数据分组被转发到父交换设备。

类似地,提供了一种装置,包括:网络接口单元,被配置为使能通过网络的通信;存储器,被配置为存储逻辑指令;以及处理器,当执行逻辑指令时,被配置为:通过远程交换设备从第一主机设备接收数据分组,该数据分组具有至少第一源媒体访问控制(MAC)地址和相关联的信息,第一源MAC地址与第一主机设备相对应,相关联的信息指示数据分组经由第一端口通过远程交换设备;在存储器中存储的父交换表中添加条目,父交换表被配置为将第一MAC地址与远程交换设备的第一端口相互关联;以及向远程交换设备发送交换表条目更新消息,交换表条目更新消息包括指示第一MAC地址与第一端口相互关联的信息,以使得去往第一主机设备并在远程交换设备处被接收的后续数据分组流量能够被直接交换到第一主机设备,而不是后续数据分组被转发到网络接口单元。

在另一形式中,提供了一种方法,包括:一种方法,包括:在卫星交换设备处从父交换设备接收交换表条目更新消息,该交换表条目更新消息包括指示第一MAC地址与卫星交换设备的第一端口相互关联的信息;用指示第一MAC地址与远程交换设备的第一端口相互关联的信息来更新本地交换表;在远程交换设备处接收去往第一MAC地址的数据分组;查询本地交换表并确定第一MAC地址与远程交换设备的第一端口相互关联;以及将在远程交换设备处接收到的数据分组直接转发到第一端口,而不将数据分组转发到父交换设备。还公开了一种被配置为执行本方法的装置。

上述描述旨在是示例性的。在不脱离本文所描述的概念的范围并且在权利要求的等同物的范围内,可以进行各种修改和结构改变。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1