在削减的接口上的多播流量转发的制作方法

文档序号:7794829阅读:251来源:国知局
在削减的接口上的多播流量转发的制作方法
【专利摘要】本发明的实施例涉及在系统中转发用于链路聚合组的流量。一个实施例包括一种系统,该系统具有第一模块,第一模块接收分组并且基于分组来同步组成员资格。第二模块从第一模块接收同步的组成员资格,并且创建用于主交换机和次交换机的链路聚合组(LAG)条目。路由器从第二模块接收用于向路由器添加第一接口链路和第二接口链路的加入请求。源发送用于LAG的流量。第二接口链路基于主交换机和次交换机从第二模块接收的独立于协议的多播(PIM)确立消息而置于削减状态中。次链路在主链路故障时在削减状态中向接入交换机转发流量。
【专利说明】在削减的接口上的多播流量转发
【技术领域】
[0001]本发明涉及网络交换机和交换,并且更具体而言,本发明涉及提供在用于如下系统的削减的交换机接口上的多播流量(traffic)转发,该系统运用与虚拟链路聚合组(vLAG)拓扑组合的独立于协议的多播(PM)的特征。
【背景技术】
【发明内容】

[0002]本发明的实施例涉及在系统中转发用于链路聚合组的流量。一个实施例包括一种系统,该系统具有第一模块,第一模块接收分组并且基于分组来同步组成员资格。第二模块从第一模块接收同步的组成员资格,并且创建用于主交换机和次交换机的链路聚合组(LAG)条目。路由器从第二模块接收用于向路由器添加第一接口链路和第二接口链路的加入请求。源发送用于LAG的流量。第二接口链路基于由主交换机和次交换机从第二模块接收的独立于协议的多播(PIM)确立消息而置于削减状态中。次链路在主链路故障时在削减状态中向接入交换机转发流量。
[0003]另一实施例包括一种用于转发链路聚合组(LAG)流量的非瞬态计算机可用存储介质。计算机可用存储介质具有计算机可读程序。程序在计算机上被处理时使计算机实施:处理由第一模块接收的分组,其中处理包括同步组成员资格;向第二模块发送同步的组成员资格;基于同步的组成员资格创建用于主交换机和次交换机的链路聚合组(LAG)条目;从第二模块向路由器发送用于向路由器添加第一接口链路和第二接口链路的一个或者多个加入请求;并且基于主交换机和次交换机从第二模块接收的独立于协议的多播(PM)确立消息将第二接口链路置于削减状态中;并且在主接口链路故障时经由在削减状态中的次接口链路向接入交换机转发网络流量。
[0004]一个实施例包括一种方法,该方法包括处理第一模块接收的分组,处理包括同步组成员资格。向第二模块发送同步的组成员资格。基于同步的组成员资格创建用于主交换机和次交换机的链路聚合组(LAG)条目。从第二模块向路由器发送用于向路由器添加第一接口链路和第二接口链路的一个或者多个加入请求。基于独立于协议的多播(PIM)确立消息将第二接口链路置于削减状态中。使用次接口链路用于在主接口链路故障时在削减状态中向接入交换机转发网络流量。
[0005]本发明的其它方面和实施例将根据以下具体描述中变得清楚,该具体描述在与附图结合进行时举例说明本发明的原理。
【专利附图】

【附图说明】
[0006]图1是根据本发明的一个实施例的网络架构;
[0007]图2示出根据本发明的一个实施例的可以与图1的服务器和/或客户端关联的代表性硬件环境;[0008]图3是示例数据中心系统的图;
[0009]图4是根据本发明的一个实施例的系统的框图;并且
[0010]图5是示出根据本发明的一个实施例的用于转发vLAG流量的过程的框图。
【具体实施方式】
[0011]所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在任何一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序代码。
[0012]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置、器件或者任意以上的组合。计算机可读存储介质的更具体的示例(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0013]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0014]计算机可读介质上包含的计算机代码可以用任何适当的介质传输,包括一但不限于——无线、有线、光缆、射频(RF)等等,或者上述的任意合适的组合。
[0015]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java?、Smalltalk?、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0016]下面将参照根据本发明示例实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0017]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)0
[0018]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0019]现在参照附图,图1图示根据一个实施例的网络架构100。如图1中所示,提供包括第一远程网络104和第二远程网络106的多个远程网络102。网关101可以耦合于远程网络102与邻近网络108之间。在本网络架构100的环境中,网络104、106可以各自采用包括但不限于LAN、WAN (如因特网)、公共交换电话网络(PSTN)、内部电话网络等的任何形式。
[0020]在使用中,网关101用作从远程网络102到邻近网络108的进入点。这样,网关101可以充当路由器和交换机,该路由器能够指引到达网关101的给定数据分组,该交换机为给定分组提供进入和离开网关101的实际路径。
[0021]还包括耦合到邻近网络108的至少一个数据服务器114,该邻近网络可经由网关101从远程网络102访问。应当注意数据服务器114可以包括任何类型的计算设备/组件。多个用户设备116耦合到每个数据服务器114。这样的用户设备116可以包括桌面计算机、膝上计算机、手持计算机、打印机和/或任何其它类型的包含逻辑的设备。应当注意用户设备111也可以在一些实施例中直接耦合到网络中的任何网络。
[0022]外围设备120或者外围设备120系列、例如传真机、打印机、扫描仪、硬盘驱动、联网和/或本地存储单元或者系统等可以耦合到网络104、106、108中的一个或者多个网络。应当注意数据库和/或附加部件可以与耦合到网络104、106、108的任何类型的网元一起利用或者集成到该任何类型的网元中。在本描述的上下文中,网元可以指代网络的任何部件。
[0023]根据一些方式,可以用虚拟系统和/或模拟一个或者多个其它系统的系统和/或在该虚拟系统和/或模拟一个或者多个其它系统的系统上实施这里描述的方法和系统,该一个或者多个其它系统比如是模拟IBM z/OS环境的UNIX系统、虚拟托管MICROSOFTWINDOWS环境的UNIX系统、模拟IBM z/0S环境的MICROSOFT WINDOWS系统等。可以在一些实施例中通过使用VMWARE软件来增强这一虚拟化和/或模拟。
[0024]在其它示例中,一个或者多个网络104、106、108可以代表常称为“云”的系统群集。在云计算中,诸如处理能力、外围设备、软件、数据、服务器等之类的共享资源以按需关系被提供给云中的任何系统,因此允许跨许多计算系统来访问和分布服务。云计算通常涉及到在云中操作的系统之间的因特网连接,但是如本领域已知的那样,也可以使用连接系统的其它技术。
[0025]图2示出根据一个实施例的与图1的用户设备116和/或服务器114关联的代表性的硬件环境。在一个示例中,硬件配置包括具有中央处理单元210 (比如微处理器)的工作站和经由系统总线212互连的多个其它单元。图2中所示工作站可以包括随机存取存储器(RAM)214、只读存储器(R0M)216、用于将外围设备、比如盘存储单元220连接到总线212的I/O适配器218、用于将键盘224、鼠标226、扬声器228、麦克风232和/或其它用户接口设备(比如触屏、数字相机(未示出)等)连接到总线212的用户接口适配器222、用于将工作站连接到通信网络235 (例如数据处理网络)的通信适配器234和用于将总线212连接到显示设备238的显示适配器236。
[0026]在一个示例中,工作站可以具有在其上驻留的操作系统、比如MICROSOFT WINDOWS操作系统(0S)、MAC 0S、UNIX OS等。将理解也可以在除了提到的平台和操作系统之外的平台和操作系统上实施其它示例。这样的其它示例可以包括使用JAVA、XML、C和/或C++语言或者其它编程语言,连同向对象的编程方法一起编写的操作系统。也可以使用面向对象的编程(00P),该OOP已经变得越来越被用于开发复杂应用。
[0027]根据本发明的一个实施例,一种系统包括第一模块,该第一模块同步组成员资格,并且基于接收的分组设置路由器处理标志。第二模块从第一模块接收路由器处理标志和基于同步的组成员资格的信息、基于处理独立于路由器处理标志的信息来创建LAG条目,并且向主交换机和次交换机发送包括LAG条目的接口列表。在这一实施例中,可以将相同传出接口列表用于主交换机和次交换机二者来创建多播LAG条目,该传出接口列表同步主交换机和次交换机。
[0028]在数据中心中,在图3中示出该数据中心的示例,每个接入交换机306通常出于冗余性而连接到两个聚合交换机、例如主交换机302和次交换机304。VLAG是使用所有可用带宽而未牺牲冗余性和连通性的特征。vLAG在聚合层跨交换机边界延伸链路聚合。因此,接入交换机306具有LAG312中的所有上行链路,而聚合交换机302、304相互配合以维护这—vLAG。
[0029]由于VLAG是对标准链路聚合的延伸,所以可以在vLAG上面支持第2层和第3层特征。在图3所示系统300中,主聚合器交换机302和次聚合器交换机304让因特网组管理协议(IGMP)侦听被启用。在连接到接入交换机306的网际协议(IP)多播接收器310在分组中发送IGMP报告时,该分组被转发至聚合器交换机中的仅一个聚合器交换机(主聚合交换机302或者次聚合交换机304),并且将在向其发送分组的交换机中创建IP多播组条目。
[0030]在常规方法中,经由使用交换机间链路(ISL) 308在对等设备(主交换机302与次交换机304)之间发送的专门同步分组来实现这些多播组条目的同步,这向经过系统300的业务流添加延时。
[0031]在设置主交换机302和次交换机304以让PM被启用时,PM确立机制将出现以便选择用于流量转发的接口,以便防止冗余的流量以及带宽成本和处理能力。PIM确立结果,其到次交换机304的接口被削减,以支持与主交换机302的接口。因此,流量通信将仅在主交换机302之上出现。如果与主交换机302的主链路停用,则将防止任何下游接收器接收任何流量。
[0032]图4示出根据一个实施例的系统400。在系统400中,接入交换机或者设备420从多播接收器410接收所有因特网组管理协议(IGMP)分组。在一个实施例中,接入交换机朝着主聚合器交换机430和/或次聚合器交换机435发送IGMP报告分组,其中IGMP报告分组由IGMP模块422和独立于协议的多播(PM)模块424处理。在一个示例中,IGMP模块和PM模块可以:设置于接入交换机420内、设置于接入交换机420外部并且与接入交换机420稱合、设置于主聚合器交机430和次聚合器交换机435内等。
[0033]在一个实施例中,IGMP模块422通过在主聚合器交换机430与次聚合器交换机435之间同步vLAG组成员资格来处理IGMP报告分组。在一个实施例中,从IGMP模块422向PM模块424发送关于同步的vLAG组成员资格的指示/信息。
[0034]在一个实施例中,PIM模块424通过处理LAG成员资格指示来创建LAG/vLAG条目,并且向主聚合器交换机430和次聚合器交换机435发送包括LAG/vLAG条目的接口列表。在一个示例中,接入交换机420使用IGMP模块422和PM模块424在vLAG域470中的与第一虚拟LAG (vLAG)端口对应的第一 vLAG或者vLAG域470中的与第二 vLAG端口对应的第二 vLAG上发送出分组。
[0035]在一个实施例中,主聚合器交换机430和次聚合器交换机435提供在多播接收器410与上游多播路由器460之间的冗余连接。主聚合器交换机430和次聚合器交换机435可以允许跨多个交换机拆分多个以太网链路,从而防止任何单个故障点并且还允许从接入交换机420跨主聚合交换机430和次聚合器交换机435负荷平衡所有交换机。
[0036]在一个实施例中,在主聚合器交换机430和/或次聚合器交换机435从一个或者多个虚拟链路聚合组(vLAG)端口(比如主聚合器交换机430的vLAG端口或者次聚合器交换机435的vLAG端口)接收IGMP分组时,可以修改接收的IGMP分组的源介质访问控制(MAC)地址为与在其上接收IGMP分组的vLAG端口关联的聚合器交换机的交换机MAC地址,并且向ISL440的端口转发IGMP分组。
[0037]源MAC地址的最后字节(LSB)包括用于在其上接收IGMP分组的vLAG端口的干线标识符(用于vLAG端口)和/或干线ID标识。在一个示例中,这一干线标识符可以用来对用于数据转发的对等交换机上的接收器vLAG干线标识符编程。在另一示例中,未修改在非vLAG端口上接收的IGMP报告。
[0038]在一个示例中,由于PM模块424向主聚合器交换机430和次聚合器交换机435发送包括LAG/vLAG条目的接口列表,并且第一聚合器交换机430和次聚合器交换机435分别学习vLAG端口 431和436上的接口条目。因此,在一个实施例中,无需ISL408通信以便同步与IGMP报告关联的条目,并且不再需要在主交换机430与次交换机435之间通过单独交换机处理显式地同步IP多播组条目。
[0039]在一个实施例中,多播路由器460从PIM模块424接收朝着多播路由器460的会合点(RP)发送的一个或者多个加入请求,该加入请求用于添加主或者转发接口链路450和次接口链路455用于与多播路由器460通信。在一个示例中,连接到多播路由器460的多播源480发送用于LAG/vLAG的流量,并且主聚合器交换机430和次聚合器交换机435通过ISL440从彼此接收流量。在一个实施例中,PIM确立消息由PM模块424发出用于选择主聚合器交换机430或者次聚合器交换机435。在一个示例中,选择主聚合器交换机430作为确立获胜者,并且次接口链路455基于确立机制变成削减的接口链路。
[0040]在一个实施例中,在主vLAG接口链路450故障(即链路由于故障、交换出等而停用)时,即使次接口链路455被确立机制置于削减状态中,也启用其以向接入交换机420转发流量。由次接口链路455在削减状态中转发流量保证流量通信即使在主接口链路450已经停用时仍然继续。[0041]图5示出根据一个实施例的用于vLAG条目同步的过程500的框图。可以在各种实施例中根据图1-4中描绘的环境以及其它环境中的任何环境中执行过程500。过程500的块510-550中的每个块可以由操作系统的任何适当部件执行。在一个示例中,过程500可以部分或者完全由聚合器交换机、IGMP模块、PIM模块等执行。
[0042]如图5中所示,在过程块510中,分组由第一模块例如从接入交换机(例如接入交换机420)或者多播接收器、比如多播接收器410接收并且通过同步组成员资格(例如LAG/vLAG)来处理。在一个实施例中,分组包括IGMP报告,并且第一模块可以是IGMP模块、比如IGMP模块422。在一个实施例中,在处理块520中,向第二模块、比如PM模块424发送基于同步的组成员资格的信息。
[0043]在过程块530中,第二模块基于处理在块520中发送的信息来创建LAG/vLAG条目。在过程块540中,从第二模块朝着多播路由器、比如多播路由器460的RP发送一个或者多个加入请求。在过程块550中,基于确立机制选择第一接口链路、比如主接口链路450作为转发接口链路将第二接口链路、比如次接口链路455置于削减状态中。在过程块560中,在第一接口链路出故障时,在处于削减状态的第二接口链路上转发流量。
[0044]在一个实施例中,如果传入多播网络流量在次聚合器交换机上到达并且主转发接口链路停用,则使用削减的接口链路来转发多播流量。
[0045]根据各种实施例,过程500可以如本领域技术人员将在阅读本描述时理解的那样由能够执行命令、逻辑等的系统、计算机或者某个其它设备执行。
[0046]在以上描述的实施例中,除了识别在连接到多播路由器的接口上接收分组之外,在对等节点或者交换机对于这些分组无需特殊处理,其中接口链路之一被削减并且确立获胜者转发接口链路停用。
[0047]这里所用术语仅为了描述具体实施例而未旨在于限制公开内容的示例实施例。如这里所用,除非上下文另有明示,单数形式“一个”和“该”旨在于也包括复数形式。还将理解术语“包括”在说明书中使用时指定存在陈述的特征、整件、步骤、操作、单元和/或部件、但是未排除存在或者添加一个或者多个其它特征、整件、步骤、操作、单元、部件和/或其组

口 ο
[0048]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0049]应当强调本发明的以上描述的实施例、具体为任何“优选”实施例仅为可能实现方式示例,阐述这些实现方式示例仅为了清楚理解本发明的原理。
[0050]可以对本发明的以上描述的实施例进行许多变化和修改而未机制是脱离本发明的精神实质和原理。所有这样的修改和变化旨在于这里包含于本公开内容和本发明的范围内并且由所附权利要求保护。
【权利要求】
1.一种系统,包括: 第一模块,接收分组,并且基于所述分组来同步组成员资格; 第二模块,从所述第一模块接收同步的所述组成员资格,并且基于同步的所述组成员资格创建用于主交换机和次交换机的链路聚合组(LAG)条目; 路由器,从所述第二模块接收用于向所述路由器添加第一接口链路和第二接口链路的一个或者多个加入请求;以及 耦合到所述路由器的源,发送用于所述LAG的流量,其中所述主交换机和所述次交换机通过交换机间链路(ISL)端口接收流量; 其中所述第二接口链路基于由所述主交换机和所述次交换机从所述第二模块接收的独立于协议的多播(PM)确立消息而被置于削减状态中,并且所述次链路在所述主链路故障时在所述削减状态中向接入交换机转发流量。
2.根据权利要求1所述的系统,其中所述LAG条目包括虚拟LAG(VLAG)条目。
3.根据权利要求2所述的系统,其中所述分组包括因特网组管理协议(IGMP)更新报生口 ο
4.根据权利要求3所述的系统,其中所述第一模块包括IGMP模块,并且所述第二模块包括独立于协议的多播 (PM)模块。
5.根据权利要求4所述的系统,其中所述第一接口链路和所述第二接口链路均为vLAG接口链路。
6.根据权利要求4所述的系统,其中所述路由器包括多播路由器,并且所述第二模块朝着所述多播路由器的会合点发送所述加入请求。
7.根据权利要求6所述的系统,其中所述PIM模块在所述主接口链路已经故障时向所述次接口发送所述流量。
8.一种方法,包括: 处理由第一模块接收的分组,所述处理包括同步组成员资格; 向第二模块发送同步的所述组成员资格; 基于同步的所述组成员资格创建用于主交换机和次交换机的链路聚合组(LAG)条目;从所述第二模块向路由器发送用于向所述路由器添加第一接口链路和第二接口链路的一个或者多个加入请求; 基于独立于协议的多播(PM)确立消息将所述第二接口链路置于削减状态中;以及使用所述次接口链路用于在所述主接口链路故障时在所述削减状态中向接入交换机转发网络流量。
9.根据权利要求8所述的方法,其中所述LAG条目包括虚拟LAG(VLAG)条目。
10.根据权利要求9所述的方法,其中所述分组包括因特网组管理协议(IGMP)更新报生口 ο
11.根据权利要求10所述的方法,其中所述第一模块包括IGMP模块,并且所述第二模块包括独立于协议的多播(PM)模块。
12.根据权利要求11所述的方法,其中所述第一接口链路和所述第二接口链路均为vLAG接口链路。
13.根据权利要求12所述的方法,其中所述路由器包括多播路由器,并且所述第二模块朝着所述多播路由器的会合点发送所述加入请求。
14.根据权利要求13所述的方法,其中 所述PIM模块在所述主接口链路已经故障时向所述次接口发送所述流量。
【文档编号】H04L12/761GK103944836SQ201410008593
【公开日】2014年7月23日 申请日期:2014年1月8日 优先权日:2013年1月18日
【发明者】S·阿鲁穆加姆, C·博哈加瓦蒂佩鲁玛尔, A·K·M·索默森达拉姆 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1