一种堆叠系统内部转发表的实现方法

文档序号:7658837阅读:351来源:国知局

专利名称::一种堆叠系统内部转发表的实现方法
技术领域
:本发明涉及数据通信领域的以太网交换机堆叠技术,尤其涉及堆叠系统内部转发表的实现方法。
背景技术
:在网络规划中很难对未来的网络规模进行非常准确的预期,当规划的交换机端口数量不足以满足网络应用需求的时候,最好能在不改变原有网络规划拓扑的情况下增加交换机的端口数,同时又不增加网管的负担。此时交换机的堆叠技术正好能够满足这样的要求。堆叠技术不同于交换机的简单级联,因为级联的设备在逻辑上是相互独立的,而多台交换机堆叠在一起,从逻辑上来说,它们相当于同一设备。因此,堆叠技术能够增加交换机的端口密度,并且,一个堆叠系统只需要一个管理入口,进而能够实现交换机间的高效互联和统一管理,对于实际的网络维护和管理意义重大。堆叠系统最常见的堆叠方式是单环型,即每台设备有两个端口作为堆叠口,设备间用“手拉手”的方式组成一个圆环。每一个堆叠成员有一个唯一的设备号(DeviceID)。由于堆叠系统在逻辑上相当于一台设备,因此存在跨设备芯片级报文转发和协议管理,堆叠交换机(又称堆叠成员)之间传输的信息主要有两大类一类为堆叠系统管理控制信息,负责维护堆叠系统芯片级通信和管理;另一类为跨交换机的用户数据信息。所述这两类信息均可能需要从一个堆叠成员传送到堆叠拓扑上的另一个成员或几个成员,即存在单播和多播两种类型的数据包。这种跨设备的芯片级数据转发是由拓扑决定,芯片控制的。在单环型的堆叠拓扑结构下,单播报文的转发取决于目的设备和端口,如果目的设备不是当前设备本身,那么这个报文要往级联端口上转发,单环型系统的级联口有两个,从不同的级联口上转发,单播到目的设备的路径花费是不一样的。因此单播存在传送最优路径问题。每一个堆叠成员在自身的转发单元中都要有一张路由表,对于收到的单播报文选择最佳出口和最短路径向单播报文的目的设备传送,这张表叫单播路由表(简称UC表)。在单环型的堆叠拓扑结构下,多播存在一个多播最优阻断点的问题,也就是说,多播报文除了要按照最优路径传送到所有接收成员处以外,每一个成员对于收到的多播报文需要根据源设备号判断继续或者停止传送,以防止环路,这张表称作多播源设备号出口过滤表(简称MC表)。由此可见,在堆叠系统中需要根据拓扑建立两个表UC表和MC表,这是堆叠系统传送管理控制信息以及用户数据信息的基础。如果手动建立这两张表的话,效率低且灵活性差,因此需要设计一种机制根据实际的堆叠拓扑结构对UC表和MC表自动进行动态计算、更新和维护。
发明内容本发明的目的是提供一种堆叠系统内部转发表的实现方法,解决现有技术不能对UC表和MC表自动进行动态计算、更新和维护的技术问题。为了实现上述目的,本发明提供了一种堆叠系统内部转发表的实现方法,其中,包括如下步骤步骤一,堆叠系统的所有成员同时发送单播路由探测报文,并在发送或途经的所述探测报文的设备信息列表中添加自身的设备信息,各成员根据收到的探测报文所述设备信息列表中的各设备信息计算到其他成员的最优路径并填写单播路由表,从而建立起各成员对应的单播路由表;步骤二,堆叠系统的各成员在各自具有的堆叠端口上,根据各自的单播路由表向距离该端口最远的成员发送多播可达报文,途经成员根据所述最优路径转发所述多播可达报文,各成员根据到达或途经的多播可达报文的发送或接收端口填写多播源设备号出口过滤表。上述的方法,其中,在所述步骤一中,如果所述探测报文是当前成员自己发起的,则该探测报文发往该当前成员具有的所有堆叠端口;如果所述探测报文是上游成员转发过来的,则所述当前成员处理完之后只向该当前成员的下游成员转发该探测报文。上述的方法,其中,在所述步骤一中,所述探测报文都携带有转发次数计数器,所述计数器的初始值为堆叠系统能支持的成员的最大数目,所述探测报文每被发送或转发一次,所述计数器的值就减1,所述计数器的值为零则停止转发并丢弃所述探测报文。上述的方法,其中,在所述步骤一中,各成员将自身的设备信息添加在所述探测报文的设备信息列表的末尾,所述设备信息包括与成员唯一对应的成员号、成员设备的MAC地址、发送所述探测报文的堆叠端口号、成员的设备类型编号。上述的方法,其中,在所述步骤一中,所述探测报文中还具有一个记录该探测报文所经过的成员总数的字段。上述的方法,其中,在所述步骤一中,计算所述最优路径并填写单播路由表的过程包括步骤A,当前成员收到一个单播路由探测报文;步骤B,计算当前成员到所述探测报文的信息列表中所有成员的路径跳数;步骤C,记录当前成员收到所述探测报文的收包端口号;步骤D,在所述信息列表的成员中按先后顺序选出一个成员作为目标成员;步骤E,察看所述路由表是否包含所述目标成员的路径信息,是则执行步骤F,否则在所述路由表添加所述路径信息并转到步骤I;步骤F,比较当前计算所得的所述目标成员的跳数与所述路由表中已存在的跳数,比较结果为大于则执行步骤I,比较结果为小于则执行步骤H,比较结果为等于则执行步骤G;步骤G,判断当前收包端口号是否小于所述路由表中已存在的收包端口号,是则执行步骤H,否则执行步骤I;步骤H,以当前所得的所述目标成员的路径信息更新所述路由表;步骤I,判断所述信息列表中是否还有未选成员,是则返回步骤D,否则结束流程。上述的方法,其中,在所述步骤一中,所述探测报文的发送时机的确定方式包括定时发送方式和事件触发方式;所述事件触发方式包括成员检测到堆叠系统的拓扑变化立即启动拓扑变化通知,发送和收到拓扑变化通知的成员立即启动发送所述探测报文。上述的方法,其中,所述步骤二中,所述多播可达报文中包含源成员号,为发起多播可达报文的成员的成员号;目的成员号,为距离发送该多播可达报文的源成员堆叠端口最远的成员的成员号;最大转发跳数,初始值设置为源成员距离目的成员的跳数。报文每被转发一次,最大转发跳数减1,当最大转发跳数为0时停止转发该多播可达报文;成员总数的记录字段,记载源成员上保存的整个堆叠设备的成员总数。收到多播可达报文的成员将本成员保存的成员总数与该字段比较,如果不相等,则说明堆叠系统尚未稳定。丢弃该多播可达报文。上述的方法,其中,所述步骤二进一步包括,步骤a,当建立或更新所述单播路由表时,初始化各成员的所述过滤表;步骤b,根据预定的条件判断能够发送多播可达报文后,各源成员在各自具有的堆叠端口上,根据各自的单播路由表向距离该端口最远的目的成员发送多播可达报文;步骤c,途经成员根据该途经成员的单播路由表找到多播可达报文去往目的成员的最优路径,并按照所述最优路径转发所述多播可达报文;步骤d,在途经成员的所述过滤表中,在对应转发的所述多播可达报文的源成员的条目中将收包端口置为阻断状态,转发端口置为转发状态;步骤e,多播可达报文的目的成员收到所述多播可达报文后,在所述目的成员的过滤表的对应所述多播可达报文的源成员的条目中,将所述目的成员的端口全部置为阻断状态。上述的方法,其中,在所述步骤a中,按照以下原则进行初始化各成员在各自的过滤表中,将源成员为该成员本身的条目的所有端口都置为转发状态,将源成员不为该成员本身的条目的所有端口都置为阻断状态。上述的方法,其中,在所述步骤b中,按照以下预定条件确定是否发送所述多播可达报文条件一,设置一个反映单播路由表稳定程度的稳定计数器,如果所述稳定计数器的值大于预定值,则允许发送所述多播可达报文;条件二,针对成员的堆叠端口,判断是否存在距离该堆叠端口的跳数大于或等于2的成员,是则发送所述多播可达报文,否则不发送所述多播可达报文。上述的方法,其中,所述单播路由探测报文和所述多播可达报文都是单播报文,由堆叠成员交换机的CPU负责转发,并具有延时重传机制。上述的方法,其中,对所有成员洪泛发包可进行拓扑收集。本发明的优点在于采用本发明所述方法能够动态跟踪堆叠拓扑结构变化情况,及时自动建立和更新芯片级联下单播路由表和多播出接口过滤表,保证堆叠系统跨设备的芯片级数据能够高效准确的被转发。图1是本发明的典型堆叠拓扑结构图;图2是本发明的单播路由探测报文接收转发流程图;图3是本发明的单播最优路由表建立流程图;图4是本发明的单播最优路径示意图;图5是本发明的MC表建立流程图。具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。图1是本发明方法应用环境的典型堆叠拓扑结构图。这是一个单环形结构,每台设备(成员)有两个堆叠口,分别连接上游设备和下游设备,每一台设备有一个唯一的deviceID(成员号或设备号),如图中所示的A、B、C、D、E、F即为每台设备唯一的deviceID号。图中B设备左右两侧的P25/P11表示B设备的两个堆叠端口的编号,分别为25和11。实际堆叠系统中一般deviceID号也为数字,本文为了更显著的区分设备号与堆叠端口号,将设备号用字母标示。本发明提供的堆叠系统内部转发表的实现方法,主要包括(一)单播路由表的建立过程;(二)多播源设备号出口过滤表的建立过程。(一)单播路由表建立过程的内容如下1)堆叠系统成员必须分配唯一的设备号2)UC路由表建立由所有设备同时发送单播路由探测报文来实现3)发起单播路由探测报文或单播路由探测报文途经的)设备需将自身的信息添加在单播路由探测报文设备信息列表(DeviceInfoList)的末尾4)下游设备收到上游设备发出的单播路由报文需要做如下处理a)从DeviceInfoList中顺序解析报文途经设备的信息,并按照本发明所述最优路径算法填写UC路由表b)根据一定的条件选择丢弃或平行转发上游设备发来的单播路由探测报文单播路由表建立过程的更具体地描述如下为堆叠系统中的成员分配唯一的设备号DeviceID。所有设备同时发送单播路由探测报文,同时平行转发上游设备发来的单播路由探测报文,经过一次堆叠系统成员单播路由探测报文的洪泛过程,来建立UC路由表。单播路由探测报文的发送时机包括定时发送和事件触发两种方式。其中事件触发是指设备检测到拓扑变化立即启动拓扑变化通知,发送拓扑变化通知和收到拓扑变化通知的设备立即启动单播路由探测过程。如果单播路由探测报文是设备自己发起的,那么该报文需要发往本设备所有的堆叠口,如果单播路由探测报文是某上游设备转发过来的,那么本设备处理完之后向自己的下游设备转发,不再发回给上游设备,以减少不必要的转发开销。每一个单播路由探测报文都携带一个转发次数计数器TTL,其初始值为堆叠系统支持的最大成员数目,单播路由探测报文每被发送或转发一次,TTL值就减1,TTL值为0时停止转发,丢弃报文,以减少不必要的转发消耗。单播路由探测报文中携带一个设备信息列表(DeviceInfoList),发起或转发单播路由探测报文的设备都会在报文的DeviceInfoList末尾添加本设备的DeviceInfo信息,DeviceInfoList包含多个设备的deviceInfo,每一个DeviceInfo则主要应包括如下信息1)DeviceID堆叠成员号2)Mac设备的MAC地址3)SendFrmPort发送此报文的堆叠端口号4)SwitchType设备类型编号同时报文中也应携带一个devSum字段,表示该报文经过的设备的总数。收到单播路由探测报文的设备,顺序解析报文的DeviceInfoList,获得转发路径信息,步骤如下首先,计算本设备到deviceInfoList中所有设备的路径,并假设此路径就是最优路径,查询软件UC路由表,如果AddressList中的某设备(假设设备号为N)不存在,那么就在软件UC路由表中增加该设备N的信息,信息包括该设备的设备号N,本设备到设备N的跳数J,本设备接收此报文的端口号P等。如果设备N的信息在软件中已经存在,那么比较原有信息和新信息,得出一个最优路径,主要比较跳数和端口号大小,优选跳数少和端口号小者,具体是1)首先比较本设备到此设备的跳数J与表中原始J0的大小,如果J<J0,也即,更新软件UC路由表中设备N的条目;2)如果J=J0,再比较P与P0的大小,如果P<P0,更新软件UC路由表中设备N的条目;3)如果J>J0,什么都不做。其次,如果在DeviceInfoList中发现本设备的信息,说明是自己发起的拓扑发现报文,丢弃报文,停止转发。最后,判断报文已经被转发的次数,如果被转发的次数超过了堆叠成员最大数目,则丢弃此报文,否则水平转发(即向收此报文以外的其它堆叠口转发)。所有的设备同时发送拓扑发现报文,经过一次洪泛(blood)过程,整个堆叠系统成员间单播报文转发的最优路径就建立起来了。单播路由探测报文是单播报文,由堆叠成员交换机的CPU负责转发。图2是单播路由探测报文接收转发流程。描述了堆叠成员在堆叠端口上收到单播路由探测报文后进行处理、转发和丢弃的策略。具体来说,步骤201接收到路由探测报文。步骤202验证该报文的校验和是否正确,如果校验和不正确,则步骤200丢弃该报文,如果校验和正确,则步骤203顺次解析报文携带的DeviceInfoList中该报文所经过的设备的DeviceInfo。步骤204计算当前设备至DeviceInfoList中的设备的最优路径(具体过程参加后面图3的详细描述)。步骤205将报文的TTL值减一,如果减一之后的TTL值等于0,则表示该报文已经被转发了最大次数,丢弃该报文停止转发;如果TTL值大于0,检查DeviceInfoList中是否已经包含本设备的DeviceInfo(步骤206),如果已经包含本设备的DeviceInfo,那么说明此报文本设备曾经收到过,应当丢弃,防止报文在链路中来回振荡,正常情况下,报文应该是顺序水平传送的,如果DeviceInfoList中包含本设备的DeviceInfo,那么说明此报文是本设备发起的,经过链型拓扑又回到本设备,此时应当丢弃。否则(步骤207)将本设备的信息添加到DeviceInfoList链表的末尾,同时(步骤208)将报文的devSum加一,将此报文向另一个堆叠口转发出去(步骤209)。图3是单播最优路由表建立流程图。描述了单播最优路由表条目的创建和最优化算法流程。具体来说,步骤301某堆叠成员收到一个单播路由探测报文,经过图2中的步骤202和203的处理之后,步骤302计算本设备到DeviceInfoList中某设备N(N从1开始)的跳数J,计算方法是顺次从DeviceInfoList中解析出若干deviceInfo信息块,跳数J=devSum-N+1。步骤303记录下本设备收包堆叠端口号P,步骤304查询UC路由表,看UC路由表中是否已经存在设备N的信息?如果不存在,那么步骤305在UC路由表中增加一条包含设备N信息的条目;如果设备N的信息已经存在,那么需要判断UC表中已经存在的原条目和当前路由探测报文中携带的路径信息哪一个是最优路径信息,因此,步骤306获取UC路由表中设备N原条目中的跳数J0和收包端口号P0,步骤307比较J和J0的大小,以跳数较小者为优。即如果J<J0,执行步骤309用J和P更新UC路由表;如果J和J0相等,则以收包端口好较小者为优,即步骤308如果P<P0,执行步骤309用J和P更新UC路由表;其他情况则不更新UC路由表。重复步骤302到309,直到将DeviceInfoList中携带的所有设备的deviceInfo信息块处理完成为止。图4是单播最优路径示意图。本示意图是根据图2和图3的步骤和算法进行计算所得,其中,设备B的堆叠口11上最优路径的最远跳数为3(到设备E),堆叠口25上最优路径的最远跳数为2(到设备F)。设备D的堆叠口17上最优路径的最远跳数为3(到设备A),堆叠口18上最优路径的最远跳数为2(到设备B)。表1单播路由表(二)多播源设备号出口过滤表建立过程的内容如下MC表建立在UC表的结果之上,即MC表动态阻断算法是基于最优转发路径的。实现的原理是各堆叠系统成员分别查询各自的UC路由表,并分别向UC路由表中各堆叠端口上距离本设备跳数最远的设备发送一个多播可达报文,下游设备收到上游设备发出的多播可达报文需做如下处理a)在该报文发出至到达目的设备的过程中,途经设备根据算法(见详细描述)填写各自的源deviceID出接口过滤表,其中源deviceID为首次发起该报文的设备的deviceID。b)根据UC路由表的最优路径出口将报文向目的设备传送单播路由探测报文和多播可达报文都是单播报文,由堆叠成员交换机的CPU负责转发。多目的地报文(Multi-destination报文)包括广播和组播,在支持堆叠的交换芯片中,有一个硬件源设备号出口过滤表(Source-IDEgressFilterTable,简称MC表),这个表指明在当前芯片中来自某Source-ID设备的多播报文在此芯片的堆叠口上是转发(forward)还是阻断(block),堆叠成员转发多播报文前都需要查询这个表,以保证多播报文在堆叠系统中只到达任意堆叠成员仅仅一次,且不至于引发广播风暴。MC表的建立需要基于UC表的动态计算结果,因为MC表动态阻断是基于最优转发路径的。实现的原理是每一个堆叠系统成员查询自己的UC路由表,并分别向UC路由表中各堆叠端口上距离本设备跳数最远的设备发送一个多播可达报文,该多播可达报文根据UC路由表的最优路径顺次由途经设备进行转发。在该报文发出至到达目的设备的过程中,途经设备填写各自的源deviceID出接口过滤表。即某设备收到上游设备发来的目的地为下游设备的多播可达报文,查询软件UC路由表,找到最优路径的出端口,向下游设备转发,同时在自身的MC表中对应上游设备(Source-ID)的条目中将收包端口置为Block状态,转发端口置为Forward状态。目的设备收到发给自己的多播可达报文后将自己的端口全部置为Block状态,停止转发,丢弃报文。多播可达报文也是单播报文,由堆叠成员交换机的CPU负责转发。多播可达报文中必须包含的信息应该包括1)dstDevID目的设备的deviceID2)TTL多播可达报文的最大转发跳数,初始值被设置为源设备距离目的设备的跳数(来自于UC路由表)。报文每被转发一次,TTL减1,当TTL值为0时,停止转发该报文。3)srcDevID发起多播可达报文的设备的deviceID4)devNumInTP发起多播可达报文的设备上记录的整个堆叠设备的总数。收到此报文的设备将本设备记录的设备总数与此字段比较,如果不相等,则说明堆叠系统尚未稳定。可以丢弃此报文。MC表的建立依赖于UC表的信息,MC表和UC表中的设备信息必须保证完全一致和同步。例如A设备的UC表中有ADEF四个设备,那么A设备的MC表中也必然有ADEF四个设备。当UC表被建立或更新的时候,先按照“Source-ID为本设备的条目的所有出端口都被置Forward,Source-ID非本设备的所有条目都被置为Block”的原则初始化MC表,然后按照以下条件确定是否需要发送MC多播可达报文1)为UC软件表设置一个ucStableCounter计数器。ucStableCounter每tick加1,当UC软件表被更新的时候ucStableCounter置0。如果ucStableCounter>30时(这个数值可以根据具体的系统进行调整),则认为UC软件表已经建好。可以启动MC表的建立过程。2)如果UC表中某端口上有设备距离本设备的跳数的最大值<2时,则无需发送多播可达报文,Source-IDEgressFilterTable的初始化结果就是最终结果。3)如果UC表中某端口上有设备距离本设备的跳数的最大值>=2时,则向此端口上距离本设备跳数最远的设备发送MC多播可达报文。为了保证所述单播路由探测报文和多播可达报文传输的可靠性,设计时均考虑延时重传机制。即发起报文传送的设备上设置延时重传定时器,每一个报文延时一定的时间进行重传。在本发明所描述的方案中,各堆叠系统成员在UC表和MC表的建立过程中不分主次,地位平等。图5是一个MC表建立示意流程图,以所有设备对源设备号为B的出接口过滤表建立过程为例,B设备根据图4的堆叠拓扑结构以及得出的表1设备B的单播路由表结果,向拓扑中各堆叠口上最远的设备E(3跳)和F(2跳)分别发送一个多播可达报文,在最优路径上被转发,具体步骤如下B向E设备发送多播可达报文的过程为(步骤5E01)B向E发送一个路由可达报文,(步骤5E02)B查询自己的UC表发现往E的单播报文的出端口应为P11,因此(步骤5E03)B向P11发送此路有可达报文,(步骤5E04)设备C在P14收到此报文,(步骤5E05)设备C查询自己的UC表发现往E的报文的最优出端口为P51,此时(步骤5E06)C对源设备为B的报文,在本地堆叠口P14上block,P51上forword,即P14/51=N/Y,至此,设备C上完成了对源为B的多播过滤条目设置。同时(步骤5E07)C将此报文从P51转发出去。设备D在P18收到C转发过来的这个报文(步骤5E08)后,(步骤5E09)设备D查询自己的UC表发现往E的报文的出端口为P17,此时(步骤5E10)D对源设备为B的报文,在P18上block,P17上forword,即P17/18=Y/N,至此,设备D上完成了对源为B的多播过滤条目的设置。然后(步骤5E11)D向P17转发报文,(步骤5E12)E在P11收到此报文,E发现报文就是发给自己的,什么都不做,停止转发(步骤5E13),这样E上保留初始化值P18/11=N/N,也完成了对源为B的多播过滤条目设置。B向F设备发送多播可达报文的过程为(步骤5F01)B向F发送一个路由可达报文,(步骤5F02)B查询自己的UC表发现往F的报文的出端口应该为P25,(步骤5F03)B向P25发送此报文,A在P9收到此报文(步骤5F04),(步骤5F05)A查询自己的UC表发现往F的报文的出端口为P3,(步骤5F06)A对源设备为B的报文,在P9上block,P3上forword,这样A上完成了对源为B的多播过滤条目P3/9=Y/N。然后A向P3转发此报文(步骤5F07),(步骤5F08)F在P11收到此报文,F发现报文就是发给自己的,停止转发(步骤5F09),F上保留初始化值P11/33=N/N,也完成了对源为B的多播过滤条目设置。下表为基于上述拓扑结构和算法得出的多播源设备号出口过滤表对于源设备号B、D的条目表2多播源设备号出口过滤表拓扑中的每一个设备都向各自堆叠口上最远的设备发送多播可达报文之后,就可以建立基于完整拓扑的多播源设备号出口过滤表。当拓扑链路发生变化的时候,通过拓扑变化通知来启动系统的单播路由和多播可达探测。为了保证UC表和MC表的一致性和稳定性,需定时进行单播路由和多播可达探测,当UC表或MC表实际被更新时才去更新芯片上的硬件UC转发表和MC过滤表。采用本发明所述方法能够动态跟踪堆叠拓扑结构变化情况,及时自动建立和更新芯片级联下单播路由表和多播出接口过滤表,保证堆叠系统跨设备的芯片级数据能够高效准确的被转发。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。权利要求1.一种堆叠系统内部转发表的实现方法,其特征在于,包括如下步骤步骤一,堆叠系统的所有成员同时发送单播路由探测报文,并在发送或途经的所述探测报文的设备信息列表中添加自身的设备信息,各成员根据收到的探测报文所述设备信息列表中的各设备信息计算到其他成员的最优路径并填写单播路由表,从而建立起各成员对应的单播路由表;步骤二,堆叠系统的各成员在各自具有的堆叠端口上,根据各自的单播路由表向距离该端口最远的成员发送多播可达报文,途经成员根据所述最优路径转发所述多播可达报文,各成员根据到达或途经的多播可达报文的发送或接收端口填写多播源设备号出口过滤表。2.根据权利要求1所述的方法,其特征在于,在所述步骤一中,如果所述探测报文是当前成员自己发起的,则该探测报文发往该当前成员具有的所有堆叠端口;如果所述探测报文是上游成员转发过来的,则所述当前成员处理完之后只向该当前成员的下游成员转发该探测报文。3.根据权利要求2所述的方法,其特征在于,在所述步骤一中,所述探测报文都携带有转发次数计数器,所述计数器的初始值为堆叠系统能支持的成员的最大数目,所述探测报文每被发送或转发一次,所述计数器的值就减1,所述计数器的值为零则停止转发并丢弃所述探测报文。4.根据权利要求3所述的方法,其特征在于,在所述步骤一中,各成员将自身的设备信息添加在所述探测报文的设备信息列表的末尾,所述设备信息包括与成员唯一对应的成员号、成员设备的MAC地址、发送所述探测报文的堆叠端口号、成员的设备类型编号。5.根据权利要求4所述的方法,其特征在于,在所述步骤一中,所述探测报文中还具有一个记录该探测报文所经过的成员总数的字段。6.根据权利要求1、2、3、4或5所述的方法,其特征在于,在所述步骤一中,计算所述最优路径并填写单播路由表的过程包括步骤A,当前成员收到一个单播路由探测报文;步骤B,计算当前成员到所述探测报文的信息列表中所有成员的路径跳数;步骤C,记录当前成员收到所述探测报文的收包端口号;步骤D,在所述信息列表的成员中按先后顺序选出一个成员作为目标成员;步骤E,察看所述路由表是否包含所述目标成员的路径信息,是则执行步骤F,否则在所述路由表添加所述路径信息并转到步骤I;步骤F,比较当前计算所得的所述目标成员的跳数与所述路由表中已存在的跳数,比较结果为大于则执行步骤I,比较结果为小于则执行步骤H,比较结果为等于则执行步骤G;步骤G,判断当前收包端口号是否小于所述路由表中已存在的收包端口号,是则执行步骤H,否则执行步骤I;步骤H,以当前所得的所述目标成员的路径信息更新所述路由表;步骤I,判断所述信息列表中是否还有未选成员,是则返回步骤D,否则结束流程。7.根据权利要求6所述的方法,其特征在于,在所述步骤一中,所述探测报文的发送时机的确定方式包括定时发送方式和事件触发方式;所述事件触发方式包括成员检测到堆叠系统的拓扑变化立即启动拓扑变化通知,发送和收到拓扑变化通知的成员立即启动发送所述探测报文。8.根据权利要求6所述的方法,其特征在于,所述步骤二中,所述多播可达报文中包含源成员号,为发起多播可达报文的成员的成员号;目的成员号,为距离发送该多播可达报文的源成员堆叠端口最远的成员的成员号;最大转发跳数,初始值设置为源成员距离目的成员的跳数。报文每被转发一次,最大转发跳数减1,当最大转发跳数为0时停止转发该多播可达报文;成员总数的记录字段,记载源成员上保存的整个堆叠设备的成员总数。收到多播可达报文的成员将本成员保存的成员总数与该字段比较,如果不相等,则说明堆叠系统尚未稳定。丢弃该多播可达报文。9.根据权利要求8所述的方法,其特征在于,所述步骤二进一步包括,步骤a,当建立或更新所述单播路由表时,初始化各成员的所述过滤表;步骤b,根据预定的条件判断能够发送多播可达报文后,各源成员在各自具有的堆叠端口上,根据各自的单播路由表向距离该端口最远的目的成员发送多播可达报文;步骤c,途经成员根据该途经成员的单播路由表找到多播可达报文去往目的成员的最优路径,并按照所述最优路径转发所述多播可达报文;步骤d,在途经成员的所述过滤表中,在对应转发的所述多播可达报文的源成员的条目中将收包端口置为阻断状态,转发端口置为转发状态;步骤e,多播可达报文的目的成员收到所述多播可达报文后,在所述目的成员的过滤表的对应所述多播可达报文的源成员的条目中,将所述目的成员的端口全部置为阻断状态。10.根据权利要求9所述的方法,其特征在于,在所述步骤a中,按照以下原则进行初始化各成员在各自的过滤表中,将源成员为该成员本身的条目的所有端口都置为转发状态,将源成员不为该成员本身的条目的所有端口都置为阻断状态。11.根据权利要求9所述的方法,其特征在于,在所述步骤b中,按照以下预定条件确定是否发送所述多播可达报文条件一,设置一个反映单播路由表稳定程度的稳定计数器,如果所述稳定计数器的值大于预定值,则允许发送所述多播可达报文;条件二,针对成员的堆叠端口,判断是否存在距离该堆叠端口的跳数大于或等于2的成员,是则发送所述多播可达报文,否则不发送所述多播可达报文。12.根据权利要求9所述的方法,其特征在于,所述单播路由探测报文和所述多播可达报文都是单播报文,由堆叠成员交换机的CPU负责转发,并具有延时重传机制。13.根据权利要求9所述的方法,其特征在于,对所有成员洪泛发包可进行拓扑收集。全文摘要本发明提供一种堆叠系统内部转发表的实现方法,包括堆叠系统的所有成员同时发送单播路由探测报文,并在发送或途经的所述探测报文的设备信息列表中添加自身的设备信息,各成员根据所述设备信息计算到其他成员的最优路径并填写单播路由表;堆叠系统的各成员在各自具有的堆叠端口上,根据单播路由表向距离该端口最远的成员发送多播可达报文,途经成员根据最优路径转发所述可达报文,各成员根据到达或途经的可达报文的发送或接收端口填写多播源设备号出口过滤表。本发明能够动态跟踪堆叠拓扑结构变化情况,及时自动建立和更新芯片级联下单播路由表和多播出接口过滤表,保证堆叠系统跨设备的芯片级数据能够高效准确的被转发。文档编号H04L12/56GK101018180SQ20071013592公开日2007年8月15日申请日期2007年3月12日优先权日2007年3月12日发明者魏月华,曲延锋申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1