CN104038566A - 一种虚拟交换设备地址学习的方法、装置及系统 - Google Patents

一种虚拟交换设备地址学习的方法、装置及系统 Download PDF

Info

Publication number
CN104038566A
CN104038566A CN201410260416.7A CN201410260416A CN104038566A CN 104038566 A CN104038566 A CN 104038566A CN 201410260416 A CN201410260416 A CN 201410260416A CN 104038566 A CN104038566 A CN 104038566A
Authority
CN
China
Prior art keywords
mac address
list item
vsd
exchange chip
management engine
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
Application number
CN201410260416.7A
Other languages
English (en)
Other versions
CN104038566B (zh
Inventor
吴兰萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ruijie Networks Co Ltd
Original Assignee
Fujian Star Net Communication Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Star Net Communication Co Ltd filed Critical Fujian Star Net Communication Co Ltd
Priority to CN201410260416.7A priority Critical patent/CN104038566B/zh
Publication of CN104038566A publication Critical patent/CN104038566A/zh
Application granted granted Critical
Publication of CN104038566B publication Critical patent/CN104038566B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例提供了一种虚拟交换设备VSD地址学习的方法、装置及系统,用以解决因为VSD间地址相互学习导致的报文转发异常。该方法应用于包括:管理引擎和至少一个VSD的物理交换设备,管理引擎对至少一个VSD进行管理,每个VSD中包含至少一个交换芯片,该方法包括:管理引擎确定物理交换设备是否有多个VSD;在管理引擎确定物理交换设备有多个VSD的情况下,管理引擎关闭物理交换设备中的所有交换芯片相互进行地址学习的能力,并控制VSD内各交换芯片间相互进行地址学习。本发明实施例适用于VSD内MAC地址相互学习的场景。

Description

一种虚拟交换设备地址学习的方法、装置及系统
技术领域
本发明涉及数据通信领域,尤其涉及一种虚拟交换设备(VSD,Virtual Switch Device)地址学习的方法、装置及系统。
背景技术
VSD是通过虚拟化将一台物理设备(例如交换机)划分为多台逻辑设备,每个逻辑设备称为VSD。每个VSD中包含使用一个或多个交换芯片,每个交换芯片上都有面板端口和HiGig(通常称为HiGigTM,Broadcom博通公司的私有串行总线互联方案)接口,各交换芯片之间有HiGig通道。一个交换芯片通过自身的面板端口接收报文,获得源MAC(Media Access Control,媒体访问控制)地址和对应的VLAN(VirtualLocal Area Network,虚拟局域网)信息,并根据源MAC地址和VLAN信息在自身的MAC地址表中进行学习查找,若查找失败,则根据源MAC地址与接收到该报文的面板端口完成自身的地址学习;若查找成功,则比较MAC地址表中存储的该MAC地址对应的端口是否为接收到该报文的端口,在MAC地址表中存储的该MAC地址对应的端口不是接收到该报文的端口的情况下,则将该MAC地址表中存储的该MAC地址对应的端口更新为接收该报文的端口,并通过与其他交换芯片之间的HiGig通道将该报文传输至该物理设备所有交换芯片,其他交换芯片接收到该报文后,进行各自的地址学习,最终使得该物理设备上所有交换芯片的MAC地址表中都存储有该报文携带的MAC地址和接收该报文芯片的该面板端口的信息。
发明人发现在上述实现各交换芯片间地址学习的过程中,至少存在以下问题:对于用户来说,每个VSD就是一台独立的交换设备,VSD之间的业务不能相互干扰,但是上述交换芯片间地址学习的过程中,存在进行地址学习的交换芯片与接收到该报文的交换芯片分别属于不同的VSD的情况,这样会使得交换芯片将接收到的报文转发至其他交换芯片,最终导致各VSD不能独立进行转发报文,造成VSD间的报文转发异常。
发明内容
本发明的实施例提供一种虚拟交换设备地址学习的方法、装置及系统,通过限制交换芯片在VSD内相互进行地址学习,使得各VSD能够独立转发报文,最终解决因为VSD间地址相互学习导致的报文转发异常。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种虚拟交换设备VSD地址学习的方法,应用于物理交换设备,物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,管理引擎对至少一个VSD进行管理,该方法包括:管理引擎确定物理交换设备是否有多个VSD;在管理引擎确定物理交换设备有多个VSD的情况下,管理引擎关闭物理交换设备中的所有交换芯片相互进行地址学习的能力,并控制VSD内各交换芯片间相互进行地址学习。
在第一方面的第一种可能的实现方式中,对于物理交换设备的每一VSD,管理引擎控制VSD内各交换芯片间相互进行地址学习包括:管理引擎创建待同步链;待同步链用于存储VSD内所有交换芯片进行地址学习的媒体访问控制MAC地址表项;管理引擎确定同步周期;同步周期是管理引擎向所述VSD内所有交换芯片发送待同步链中存储的MAC地址表项的周期;管理引擎创建MAC数据库;MAC数据库用于存储VSD内交换芯片上报的添加消息中携带的MAC地址表项与源交换芯片间的映射关系;源交换芯片是上报添加消息的交换芯片;管理引擎接收交换芯片上报的添加消息,将添加消息中携带的MAC地址表项添加至待同步链中,并将添加消息中携带的MAC地址表项与源交换芯片间的映射关系添加至所述MAC数据库中;管理引擎等待同步周期到期;在同步周期到期时,所述管理引擎依次将所述待同步链中存储的MAC地址表项发送至VSD内的所有交换芯片,并删除待同步链中存储的所有MAC地址表项。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在管理引擎等待同步周期到期之前,还包括:管理引擎接收交换芯片上报的携带MAC地址表项的老化消息;管理引擎根据MAC数据库,确定老化消息携带的MAC地址表项对应的源交换芯片;管理引擎确定上报老化消息的交换芯片是否为老化消息携带的MAC地址表项对应的源交换芯片;在上报老化消息的交换芯片是老化消息携带的MAC地址表项对应的源交换芯片的情况下,管理引擎向VSD内除上报老化消息的交换芯片之外的交换芯片发送删除消息,以使得VSD内的所有交换芯片同时从各自MAC地址表中将与老化消息携带的MAC地址表项对应的表项删除;删除消息携带老化消息携带的MAC地址表项;管理引擎从MAC数据库中删除与老化消息携带的MAC地址表项对应的表项;管理引擎确定待同步链中是否存储有与老化消息携带的MAC地址表项相同的MAC地址表项;在待同步链中存储有与老化消息携带的MAC地址表项相同的MAC地址表项的情况下,管理引擎将待同步链中与所述老化消息携带的MAC地址表项相同的MAC地址表项删除;在上报老化消息的交换芯片不是老化消息携带的MAC地址表项对应的源交换芯片的情况下,管理引擎将老化消息携带的MAC地址表项添加至待同步链中;。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,管理引擎确定同步周期包括:管理引擎根据公式计算出同步周期;其中,T表示同步周期;T′表示预设同步周期;R表示预设中央处理器CPU利用率;R′表示实际可接受CPU利用率。
第二方面,本发明实施例提供了一种虚拟交换设备VSD地址学习的方法,应用于物理交换设备,物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,管理引擎对所述至少一个VSD进行管理,该方法包括:交换芯片接收报文,并将学习到的MAC地址与端口信息作为MAC地址表项添加至交换芯片的MAC地址表中;交换芯片将MAC地址表项添加至添加消息,并将添加消息上报至管理引擎,以使得管理引擎将MAC地址表项发送至VSD内除交换芯片之外所有交换芯片进行地址学习。
在第二方面的第一种可能的实现方式中,交换芯片接收管理引擎发送的MAC地址表项;交换芯片确定交换芯片的MAC地址表中是否存储有与MAC地址表项对应的表项;在交换芯片确定交换芯片的MAC地址表中没有存储与MAC地址表项对应的表项的情况下,交换芯片将MAC地址表项添加至交换芯片的MAC地址表中。
在第二方面的第二种可能的实现方式中,还包括:交换芯片的MAC地址表中的发生地址老化,交换芯片将老化的MAC地址表项删除;交换芯片将老化的MAC地址表项添加至老化消息,并将老化消息发送至管理引擎,以使得管理引擎将VSD内每一交换芯片中存储的与老化的MAC地址表项对应的表项进行删除或更新。
在第二方面的第三种可能的实现方式中,还包括:交换芯片接收管理引擎发送的携带MAC地址表项的删除消息;交换芯片将交换芯片的MAC地址表中存储的与删除消息携带的MAC地址表项对应的表项删除。
第三方面,本发明实施例提供了一种管理引擎,应用于物理交换设备,物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,管理引擎对所述至少一个VSD进行管理,该管理引擎包括:确定单元,用于确定物理交换设备是否有多个VSD;处理单元,用于在确定单元确定物理交换设备有多个VSD的情况下,关闭物理交换设备中的所有交换芯片相互进行地址学习的能力,并控制VSD内各交换芯片间相互进行地址学习。
在第三方面的第一种可能的实现方式中,对于物理交换设备的每一VSD,处理单元具体用于:创建待同步链;待同步链用于存储VSD内所有交换芯片进行地址学习的媒体访问控制MAC地址表项;确定同步周期;同步周期是管理引擎向VSD内所有交换芯片发送待同步链中存储的MAC地址表项的周期;创建MAC数据库;MAC数据库用于存储VSD内交换芯片上报的添加消息中携带的MAC地址表项与源交换芯片间的映射关系;源交换芯片是上报添加消息的交换芯片;接收交换芯片上报的添加消息,将添加消息中携带的MAC地址表项添加至待同步链中,并将添加消息中携带的MAC地址表项与源交换芯片间的映射关系添加至MAC数据库中;等待同步周期到期;在同步周期到期时,依次将待同步链中存储的MAC地址表项发送至VSD内的所有交换芯片,并删除待同步链中存储的所有MAC地址表项。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,还包括:接收单元和发送单元;接收单元,用于接收交换芯片上报的携带MAC地址表项的老化消息;确定单元,还用于根据MAC数据库,确定老化消息携带的MAC地址表项对应的源交换芯片;确定单元,还用于确定上报老化消息的交换芯片是否为老化消息携带的MAC地址表项对应的源交换芯片;发送单元,用于在确定单元确定上报老化消息的交换芯片是老化消息携带的MAC地址表项对应的源交换芯片的情况下,向VSD内除上报老化消息的交换芯片之外的交换芯片发送删除消息,以使得VSD内的所有交换芯片同时从各自MAC地址表中将与老化消息携带的MAC地址表项对应的表项删除;删除消息携带老化消息携带的MAC地址表项;处理单元,还用于从MAC数据库中删除与老化消息携带的MAC地址表项对应的表项;确定单元,还用于确定待同步链中是否存储有与老化消息携带的MAC地址表项相同的MAC地址表项;处理单元,还用于在确定单元确定待同步链中存储有与老化消息携带的MAC地址表项相同的MAC地址表项的情况下,将待同步链中与老化消息携带的MAC地址表项相同的MAC地址表项删除;处理单元,还用于在确定单元确定出上报老化消息的交换芯片不是老化消息携带的MAC地址表项对应的源交换芯片的情况下,将老化消息携带的MAC地址表项添加至待同步链中。
结合第三方面的第一种可能的实现方式,在第三方面的第三种可能的实现方式中,确定单元,具体用于根据公式计算出同步周期;其中,T表示同步周期;T′表示预设同步周期;R表示预设中央处理器CPU利用率;R′表示实际可接受CPU利用率。
第四方面,本发明实施例提供了一种交换芯片,应用于物理交换设备,物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,管理引擎对所述至少一个VSD进行管理,该交换芯片包括:接收单元,用于接收报文;处理单元,用于将学习到的MAC地址与端口信息作为MAC地址表项添加至交换芯片的MAC地址表中;处理单元,还用于将MAC地址表项添加至添加消息;发送单元,用于将添加消息上报至管理引擎,以使得管理引擎将MAC地址表项发送至VSD内除交换芯片之外所有交换芯片进行地址学习。
在第四方面的第一种可能的实现方式中,还包括:确定单元;接收单元,还用于接收管理引擎发送的MAC地址表项;确定单元,用于确定交换芯片的MAC地址表中是否存储有与MAC地址表项对应的表项;处理单元,还用于在确定单元确定交换芯片的MAC地址表中没有存储与MAC地址表项对应的表项的情况下,将MAC地址表项添加至交换芯片的MAC地址表中。
在第四方面的第二种可能的实现方式中,处理单元,还用于在交换芯片的MAC地址表中的发生地址老化的情况下,将老化的MAC地址表项删除;处理单元,还用于将老化的MAC地址表项添加至老化消息;发送单元,还用于将老化消息发送至管理引擎,以使得管理引擎将VSD内每一交换芯片中存储的与老化的MAC地址表项对应的表项进行删除或更新。
在第四方面的第三种可能的实现方式中,接收单元,还用于接收管理引擎发送的携带MAC地址表项的删除消息;处理单元,还用于将交换芯片的MAC地址表中存储的与删除消息携带的MAC地址表项对应的表项删除。
第五方面,本发明实施例提供了一种物理交换设备,物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,管理引擎对所述至少一个VSD进行管理,该物理交换设备包括:管理引擎为上述实施例中的管理引擎;交换芯片为上述实施例中的交换芯片。
本发明实施例提供了一种虚拟交换设备地址学习的方法、装置及系统,该方法包括:管理引擎确定物理交换设备是否有多个VSD,在管理引擎确定物理交换设备有多个VSD的情况下,管理引擎关闭物理交换设备中的所有交换芯片相互进行地址学习的能力,并开启VSD内各交换芯片间相互进行地址学习的能力,这样使得同一VSD内所有交换芯片存储的MAC地址表一致,属于不同VSD的交换芯片存储的MAC地址表不一致,从而不会发生将一个VSD的接收到的报文转发到同一物理交换设备中的其他VSD的情况,最终使得物理交换设备内的各VSD实现能够进行报文的独立转发,最终解决因为VSD间地址相互学习导致的报文转发异常。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种虚拟交换设备地址学习的方法的流程示意图;
图2为本发明实施例提供的另一种虚拟交换设备地址学习的方法的流程示意图;
图3为本发明实施例提供的一种虚拟交换设备内新地址学习的流程示意图;
图4为本发明实施例提供的一种虚拟交换设备内非源交换芯片地址老化的流程示意图;
图5为本发明实施例提供的一种虚拟交换设备源内交换芯片地址老化的流程示意图;
图6为本发明实施例提供的一种管理引擎的功能示意图;
图7为本发明实施例提供的另一种管理引擎的功能示意图;
图8为本发明实施例提供的一种交换芯片的功能示意图;
图9为本发明实施例提供的另一种交换芯片的功能示意图;
图10为本发明实施例提供的一种物理交换设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种VSD(Virtual Switch Device,虚拟交换设备)地址学习的方法,所述方法应用于物理交换设备,物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,管理引擎对所述至少一个VSD进行管理。
如图1所示,所述方法包括:
需要说明的是,物理交换设备可以为一个独立的交换机,但是不限于交换机。该交换机被分为多个VSD。物理设备中的VSD是逻辑设备,VSD的个数是可以根据管理引擎的设置动态变化的;物理设备中的交换芯片是物理存在的,交换芯片的个数是固定的。管理引擎对至少一个VSD进行管理包括:管理引擎不仅可以对每一VSD进行管理,并且还可以对每个VSD中的每一交换芯片进行管理。
101、管理引擎确定物理交换设备是否有多个VSD。
需要说明的是,管理引擎最初会将物理交换设备分为多个VSD。但是使用过程中会动态调整VSD的个数,例如添加或删除VSD,也就是说,管理引擎管理的VSD可能是多个也可能是一个。管理引擎可以在每次对VSD进行删除后都判断管理的VSD的个数;管理引擎也可以设置判断周期,每一周期对管理的VSD的个数进行判断。
102、在管理引擎确定物理交换设备有多个VSD的情况下,管理引擎关闭物理交换设备中的所有交换芯片相互进行地址学习的能力,并控制VSD内各交换芯片间相互进行地址学习。
需要说明的是,为了避免属于不同VSD的交换芯片相互进行地址学习导致个VSD不能独立转发而造成的转发异常,在有多个VSD的情况下,管理引擎为了将交换芯片相互进行地址学习的范围限制在VSD内,首先需要关闭所有交换芯片间相互进行地址学习的能力,然后开启VSD内各交换芯片间相互进行地址学习的能力。
具体的,当交换芯片为broadcom芯片时,管理引擎关闭物理交换设备中的所有交换芯片相互进行地址学习的能力包括:管理引擎关闭物理交换设备中的所有交换芯片与HiGig通道连接的HiGig接口。
具体的,管理引擎控制VSD内各交换芯片间相互进行地址学习可以利用现有技术中交换芯片将学习到的地址发送至管理引擎,管理引擎将该地址下发至与该交换芯片属于同一个VSD内的其他交换芯片,以使得VSD内的交换芯片间相互进行地址学习;管理引擎控制VSD各交换芯片间相互进行地址学习还可以利用本发明提供的VSD内的交换芯片间相互进行地址学习的方法。
本发明实施例提供了一种虚拟交换设备地址学习的方法,管理引擎确定物理交换设备是否有多个VSD,在管理引擎确定物理交换设备有多个VSD的情况下,管理引擎关闭物理交换设备中的所有交换芯片相互进行地址学习的能力,并开启VSD内各交换芯片间相互进行地址学习的能力,这样使得同一VSD内所有交换芯片存储的MAC(Media AccessControl,媒体访问控制)地址表一致,属于不同VSD的交换芯片存储的MAC地址表不一致,从而不会发生将一个VSD的接收到的报文转发到同一物理交换设备中的其他VSD的情况,最终使得物理交换设备内的各VSD实现能够进行报文的独立转发,最终解决因为VSD间地址相互学习导致的报文转发异常。
本发明实施例提供了一种虚拟交换设备地址学习的方法,所述方法应用于物理交换设备,该物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,管理引擎对所述至少一个VSD进行管理。
如图2所示,所述方法包括:
201、管理引擎确定物理交换设备是否有多个VSD。
需要说明的是,管理引擎最初会将物理交换设备分为多个VSD。但是使用过程中会动态调整VSD的个数,例如添加或删除VSD,也就是说,管理引擎管理的VSD可能是多个也可能是一个。管理引擎可以在每次对VSD进行添加或者删除后都判断管理的VSD的个数;管理引擎也可以设置判断周期,每一周期对管理的VSD的个数进行判断。
需要说明的是,在所述管理引擎确定所述物理交换设备有多个VSD的情况下,执行步骤202-221;在所述管理引擎确定所述物理交换设备只有一个VSD的情况下,管理引擎开启物理交换设备中所有交换芯片相互进行地址学习的能力.
在所述管理引擎确定所述物理交换设备只有一个VSD的情况下,所有交换芯片属于同一VSD,不会存在属于不同VSD的交换芯片相互进行地址学习的情况,所以可以根据现有技术使所有交换芯片相互进行地址学习,也可以依照本发明提供的在物理交换设备有多个VSD的情况下,同一VSD内的交换芯片之间相互进行地址学习的方法使所有交换芯片相互进行地址学习。
具体的,当交换芯片为broadcom芯片时,管理引擎开启物理交换设备中所有交换芯片相互进行地址学习的能力包括:管理引擎开启物理交换设备中所有交换芯片与HiGig通道连接的HiGig接口。
202、在管理引擎确定物理交换设备有多个VSD的情况下,管理引擎关闭物理交换设备中的所有交换芯片相互进行地址学习的能力。
具体的,可参考步骤102,在此不再赘述。
需要说明的是,步骤203-205是管理引擎对VSD进行初始化的过程
203、对于物理交换设备的每一VSD,管理引擎创建待同步链。
其中,待同步链用于存储VSD内所有交换芯片进行地址学习的MAC地址表项。
具体的,待同步链可以为带头结点的链表,管理引擎设定向待同步链中添加MAC地址表项就是依次将MAC地址表项中的数据存储于头结点后的结点中,或者是依次将MAC地址表项在MAC数据库中的存储地址存储于头结点后的结点中。待同步链还可以只是管理引擎在存储空间中分配连续的存储空间,将需要进行学习的MAC地址表项或者MAC地址表项在数据库中的存储地址存储到分配的存储空间中。
进一步的,管理引擎可以根据HASH算法,建立多条待同步链,相同HASH值的MAC地址表项存储在同一条待同步链中。
需要说明的是,管理引擎将物理设备划分为多个VSD,对每一个VSD分别进行管理,所有VSD处于同等地位。本发明实施例只描述了物理交换设备中一个VSD对地址学习和地址老化的处理过程,但是相同的方法同样适用于该物理交换设备中的其他VSD。
需要说明的是,MAC地址表项中包含MAC地址、端口号、VLAN号以及MAC地址类型的信息。
204、管理引擎确定同步周期。
其中,同步周期是管理引擎向VSD内所有交换芯片发送待同步链中存储的MAC地址表项的周期。
需要说明的是,同步周期控制管理引擎处理待同步链频率,同时控制的是本VSD内所有交换芯片添加新的MAC地址表项的频率。如果同步周期设置过小,则会使得管理引擎的负荷过大;如果同步周期设置过大,则会使VSD内交换芯片进行地址更新的时间过长,会使得不必要的广播流持续时间过长。所以同步周期的设定需要根据管理引擎的负荷和交换芯片地址更新频率两个方面动态进行调整。
具体的,管理引擎可以根据将预设同步周期确定为同步周期。
优化的,为了将同步周期根据具体情况动态调整,管理引擎还可以根据公式计算出同步周期。
其中,T表示同步周期;T′表示预设同步周期;R表示预设CPU(Central Processing Unit,中央处理器)利用率;R′表示实际可接受CPU利用率。
需要说明的是,预设同步周期是根据经验设定的一个值,预设CPU利用率是预先设定的用户能够接受的CPU利用率,实际可接受CPU利用率是根据当前CPU运行情况设定的利用率。
具体的,同步周期可以用定时器,或者时间戳的方式来设置。同步周期到期是定时器清零重新开始计时,或者重置时间戳开始新的计时。
205、管理引擎创建MAC数据库。
其中,MAC数据库用于存储VSD内交换芯片上报的添加消息中携带的MAC地址表项与源交换芯片间的映射关系。源交换芯片是上报添加消息的交换芯片。
进一步的,MAC数据库不仅可以存储MAC地址表项与源交换芯片间的映射关系,还可以存储该项是否存储于待同步链的标识,以及在待同步链中的存储位置。
需要说明的是,MAC数据库存储MAC地址与源交换芯片间的映射关系是用于判断接收到老化消息是源交换芯片上发生地址老化,还是除源交换芯片外的其他交换芯片上发生地址老化。
需要说明的是,步骤206-207是VSD内学习一个新的地址时执行的步骤,步骤208-217是VSD内发生一个地址老化时执行的步骤。VSD内进行新地址学习的过程与发生地址老化的过程是相互独立的。在同一个同步周期中,VSD内进行新地址的学习和地址老化的次数是不确定的,VSD内可能只进行新地址的学习,也可能只发生地址老化;可能有多次新地址的学习,也可能发生多次地址老化。本实施例是站在任一次进行新地址学习和任一次发生地址老化的角度进行描述。
需要说明的是,图3是以步骤206-207和步骤219-221描述VSD内一个完整的新地址学习的过程。
206、交换芯片接收报文,并将学习到的MAC地址与端口信息作为MAC地址表项添加至交换芯片的MAC地址表中。
需要说明的是,此处的交换芯片是该VSD内的任意一个交换芯片。交换芯片中有MAC地址表,该MAC地址表中存储了多个MAC地址表项。交换芯片根据MAC地址表对接收到的报文进行转发。
交换芯片自身进行地址学习的方法与现有技术中交换芯片自身进行地址学习的方法相同。具体的,交换芯片接收到其他物理交换设备发送的报文后,解析报文获得源MAC地址,然后查找自身的MAC地址表中是否存储有与源MAC地址对应的表项,在查找成功的情况下,确定查找到的表项中的端口是否为接收到该报文的面板端口,在查找到的表项中的端口不是接收该报文的端口的情况下,将查找到的表项中的端口更新为接收该报文的端口,完成本交换芯片的MAC地址学习;在查找失败的情况下,根据源MAC地址与接收到该报文的面板端口在MAC地址表中添加一个MAC地址表项,完成本交换芯片的MAC地址学习。
207、交换芯片将MAC地址表项添加至添加消息,并将添加消息上报至管理引擎,管理引擎接收交换芯片上报的添加消息,将添加消息中携带的MAC地址表项与源交换芯片间的映射关系添加至MAC数据库中,并将添加消息中携带的MAC地址表项添加至待同步链中。
需要说明的是,管理引擎与交换芯片之间会预先设置添加消息的格式,标识符等。添加消息中包含MAC地址表项中的所有数据和标记自身为添加消息的标识符。
具体的,交换芯片完成自身的MAC地址学习后,创建一个携带该MAC地址表项的添加消息,并把此添加消息发送至管理引擎,管理引擎在接收到交换芯片发送的添加消息后,从添加消息中解析出MAC地址表项,并将该MAC地址表项与发送该添加消息的交换芯片的芯片标识做为MAC数据库中的一项存储于MAC数据库中,同时将该MAC地址表项添加至待同步链,或者将MAC地址表项在MAC数据库中存储的地址存储于待同步链中。
需要说明的是,图4是以步骤208-212和步骤218-221描述了VSD内非源芯片上发生地址老化的过程。图5是以步骤208-211和步骤213-217描述了VSD内源交换芯片上发生地址老化的过程。
208、交换芯片的MAC地址表中的发生地址老化,交换芯片将老化的MAC地址表项删除。
具体的,交换芯片设置有老化周期,如果MAC地址表中的某一MAC地址表项在老化周期时间内没有被使用过,那么交换芯片就会将该MAC地址表项从MAC地址表中删除。
209、交换芯片将老化的MAC地址表项添加至老化消息,并将老化消息发送至管理引擎,管理引擎接收交换芯片上报的携带MAC地址表项的老化消息。
需要说明的是,管理引擎与交换芯片之间会预先设置老化消息的格式,标识符等。老化消息中的标识符与添加消息中的标识符不同,管理引擎根据标识符区分接收到的是添加消息还是老化消息。
具体的,交换芯片创建一个携带该老化的MAC地址表项的老化消息,并把此老化消息发送至管理引擎,管理引擎接收交换芯片发送的老化消息。
210、管理引擎根据MAC数据库,确定老化消息携带的MAC地址表项对应的源交换芯片。
一般情况下,MAC数据库中的MAC表项与源交换芯片间的映射关系可以按照HASH算法进行存储,相同HASH值的MAC地址表项与对应的源交换芯片,存储在一个bucket(桶)。一般查找只需在HASH值相同的bucket中进行。管理引擎根据老化消息中携带的MAC地址的HASH值在对应的bucket中查找,直到查找出与老化消息中携带的MAC地址对应的项,根据查找出来项的得到老化的MAC地址对应的源交换芯片。
211、管理引擎确定上报老化消息的交换芯片是否为老化消息携带的MAC地址表项对应的源交换芯片。
需要说明的是,管理引擎根据查找到的源交换芯片与上报该老化消息的交换芯片确定该MAC地址是在源交换芯片中发生老化,还是非源交换芯片中发生老化。若上报老化消息的交换芯片不是老化消息携带的MAC地址表项对应的源交换芯片,则说明是非源交换芯片中发生地址老化,此时步骤212-217中只执行步骤212;若上报老化消息的交换芯片是老化消息携带的MAC地址表项对应的源交换芯片,则说明是源交换芯片中发生地址老化,此时步骤212-217中只执行步骤213-217。
212、在上报老化消息的交换芯片不是老化消息携带的MAC地址表项对应的源交换芯片的情况下,管理引擎将老化消息携带的MAC地址表项添加至待同步链中。
需要说明的是,在管理引擎确定不是源交换芯片上报的老化消息的情况下,需要将该MAC地址表项重新添加至待同步链表中,以便在同步周期到期时,能够将该MAC地址表项重新添加至上报该老化消息的交换芯片的MAC地址表中,以使得该VSD内所有交换芯片的MAC地址中保存的MAC地址表项相同。
213、在上报老化消息的交换芯片是老化消息携带的MAC地址表项对应的源交换芯片的情况下,管理引擎向VSD内除上报老化消息的交换芯片之外的交换芯片发送删除消息,交换芯片接收管理引擎发送的携带MAC地址表项的删除消息。
其中,删除消息携带所述老化消息携带的MAC地址表项。
具体的,在管理引擎确定是源交换芯片上报的老化消息的情况下,不用等到同步周期到期,而是立即将该老化的MAC地址添加到删除消息中,然后将该删除消息发送至VSD内的所有非源交换芯片,以使得在源交换芯片已经将自身的MAC地址表中该老化的MAC地址表项删除的情况下,VSD内的其他交换芯片也能够将各自MAC地址表中的与该MAC地址表项相同的表项进行删除,最终保证了VSD内所有交换芯片中保存的MAC地址表项删除。
需要说明的是,管理引擎也可以将删除消息发送至VSD内的所有交换芯片,此种情况下,源交换芯片也会接收到该删除消息,只是在根据删除消息中携带的MAC地址在自身的MAC地址表中查找时,查找不到对应的MAC地址表项,所以不做处理。
214、交换芯片将交换芯片的MAC地址表中存储的与删除消息携带的MAC地址表项对应的表项删除。
需要说明的是,对于同一个老化的MAC地址来说,步骤208-209中的交换芯片是该老化MAC地址的源交换芯片,步骤214中的交换芯片是该老化MAC地址的非源交换芯片。
具体的,交换芯片在接收到删除消息后,在自身的MAC地址表中查找到与删除消息中携带的MAC地址相同的表项,并将该表项删除。
215、管理引擎从MAC数据库中删除与老化消息携带的MAC地址表项对应的表项。
需要说明的是,MAC数据库中存储的MAC地址表项和对应的源交换芯片,与VSD内交换芯片存储的MAC地址表项是一致的,也就是说,VSD内交换芯片上存储有哪些MAC地址表项,MAC数据库中就一定存储有该MAC地址表项和对应的源交换芯片。为了保证交换芯片和管理引擎存储的MAC地址的一致性,所以需要在VSD内的交换芯片都将该老化MAC地址删除的同时将MAC数据库中对应的MAC地址表项和对应的源交换芯片信息进行删除。
216、管理引擎确定待同步链中是否存储有与老化消息携带的MAC地址表项相同的MAC地址表项。
需要说明的是,在源交换芯片发生地址老化的情况下,管理引擎需要确定准备发送至交换芯片进行地址学习的MAC地址表项中是否存储有该老化的MAC地址表项,以避免在源交换芯片已经确定该MAC地址表项老化的情况下,VSD内的所有交换芯片还需要对该MAC地址表项进行地址学习。
具体的,在管理引擎根据HASH算法,把相同HASH值的MAC地址表项存储在同一条待同步链的情况下,管理引擎可以计算出老化消息中携带的MAC地址表项的HASH值,然后在所有待同步链中查找到与计算出的HASH值相同的待同步链,接着在查找出的待同步链中依次查找是否有与老化消息携带的MAC地址相同的MAC地址表项;或者,在MAC数据库中存储有MAC地址表项与源交换芯片间的映射关系,该项是否存储于待同步链的标识,以及在待同步链中的存储位置的情况下,管理引擎在MAC数据库中查找到与删除消息携带的MAC地址表项对应的表项的同时,能够知道该表项是否在待同步链中存储,在待同步链中存储有该项的情况下,直接到待同步链中将该项删除。此种情况下,不需要在待同步链中重新进行查找。
217、在待同步链中存储有与老化消息携带的MAC地址表项相同的MAC地址表项的情况下,管理引擎将待同步链中与老化消息携带的MAC地址表项相同的MAC地址表项删除。
218、管理引擎等待同步周期到期。
需要说明的是,同步周期到期的意思就是一个同步周期结束。触发管理引擎下发待同步链的条件是同步周期到期。
需要说明的是,一个同步周期到期后,管理引擎需要对计时器清零或者重置时间戳的方式,开始下一个同步周期的循环。
需要说明的是,本发明实施例只描述了一个同步周期内发生一次新地址的学习和一次地址老化,实际上,可以在步骤205之后,且步骤218之前存在多次的地址学习和地址老化的过程。
219、在同步周期到期时,管理引擎依次将待同步链中存储的MAC地址表项发送至VSD内的所有交换芯片,并删除待同步链中存储的所有MAC地址表项;交换芯片接收管理引擎发送的MAC地址表项。
具体的,待同步周期到期触发管理引擎遍历待同步链,依次读取待同步周期链中存储的MAC地址表项,或者依次读取待同步链中存储的地址,并根据该地址从MAC数据库中查找MAC地址表项,然后依次将MAC地址表项发送至VSD内的所有交换芯片,并依次将待同步链中存储的MAC地址表项删除,或者在将所有的MAC地址表项发送至各交换芯片后,依次将待同步链中存储的所有MAC地址表项删除。
需要说明的是,步骤219-221中描述的交换芯片是VSD内的所有交换芯片中的一个,不论交换芯片在本同步周期内是否进行过地址学习或者地址老化都会接收到管理引擎发送需要进行地址学习的MAC地址表项。
220、交换芯片确定交换芯片的MAC地址表中是否存储有与MAC地址表项对应的表项。
需要说明的是,由于上报添加消息的交换芯片已经进行过地址的学习,不用再次对相同地址进行学习,所以需要判断是否已经进行存储有与MAC地址表项对应的表项,存储有的话就说明已经学习过该地址,则不用再次学习;相同的,在非源交换芯片发生地址老化时,除了上报删除消息外的交换芯片将该老化地址删除,其他交换芯片没有将该老化地址删除,所以其他交换芯片不用对该地址进行学习。
具体的,交换芯片在接收到管理引擎发送的MAC地址表项后,将自己的MAC地址表每一项与接收到的MAC地址表项对比,确定两者是否相同,在确定自身的MAC地址表中存储有与接收到的MAC地址表项对应的表项的情况下,不做任何处理;在确定自身的MAC地址表中没有存储与接收到的MAC地址表项对应的表项的情况下,执行步骤221,对接收到的MAC地址表项进行学习。
221、在交换芯片确定交换芯片的MAC地址表中没有存储与MAC地址表项对应的表项的情况下,交换芯片将MAC地址表项添加至交换芯片的MAC地址表中。
具体的,在交换芯片确定需要对接收到的MAC地址表项需要学习的情况下,将接收到的MAC地址表项存储于自己的MAC地址表中,完成MAC地址表项的学习。
本发明实施例提供了一种虚拟交换设备地址学习的方法,管理引擎将物理交换设备中所有交换芯片将相互进行地址学习的能力关闭,然后为每个VSD创建MAC数据库和待同步链,并确定同步周期,将需要进行地址学习的MAC地址表项存储于待同步链中,然后在同步周期到期时将待同步中的所有MAC地址表项发送至VSD内的所有交换芯片,以使得在VSD间的交换芯片不能相互进行地址学习的情况下,保证VSD内的所有交换芯片中存储的MAC地址表项相同,从而不会发生将一个VSD的接收到的报文转发到同一物理交换设备中的其他VSD的情况,最终使得物理交换设备内的各VSD实现能够进行报文的独立转发,最终解决因为VSD间地址相互学习导致的报文转发异常。同时,因为设定同步周期时考虑了交换芯片地址更新频率,可以减少同一VSD内广播风暴,节约带宽资源。
本发明实施例提供了一种管理引擎,应用于物理交换设备,物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,管理引擎对所述至少一个VSD进行管理,如图6所示,该管理引擎包括:确定单元601和处理单元602。
确定单元601,用于确定物理交换设备是否有多个VSD。
处理单元602,用于在确定单元601确定物理交换设备有多个VSD的情况下,关闭物理交换设备中的所有交换芯片相互进行地址学习的能力,并控制VSD内各交换芯片间相互进行地址学习。
进一步的,对于物理交换设备的每一VSD,处理单元602具体用于:
创建待同步链;待同步链用于存储VSD内所有交换芯片进行地址学习的媒体访问控制MAC地址表项;
确定同步周期;同步周期是管理引擎向所述VSD内所有交换芯片发送待同步链中存储的MAC地址表项的周期;
创建MAC数据库;MAC数据库用于存储VSD内交换芯片上报的添加消息中携带的MAC地址表项与源交换芯片间的映射关系;源交换芯片是上报添加消息的交换芯片;
接收交换芯片上报的添加消息,将添加消息中携带的MAC地址表项添加至待同步链中,并将添加消息中携带的MAC地址表项与源交换芯片间的映射关系添加至MAC数据库中;
等待同步周期到期;
在同步周期到期时,依次将待同步链中存储的MAC地址表项发送至所述VSD内的所有交换芯片,并删除待同步链中存储的所有MAC地址表项。
可选的,确定单元601,具体用于根据公式计算出所述同步周期;其中,T表示所述同步周期;T′表示预设同步周期;R表示预设中央处理器CPU利用率;R′表示实际可接受CPU利用率。
进一步的,该管理引擎如图7所示,还包括:接收单元603和发送单元604。
接收单元603,用于接收交换芯片上报的携带MAC地址表项的老化消息。
确定单元601,还用于根据MAC数据库,确定老化消息携带的MAC地址表项对应的源交换芯片。
确定单元601,还用于确定上报老化消息的交换芯片是否为老化消息携带的MAC地址表项对应的源交换芯片。
处理单元602,还用于在确定单元601确定出上报老化消息的交换芯片不是老化消息携带的MAC地址表项对应的源交换芯片的情况下,将老化消息携带的MAC地址表项添加至待同步链中。
发送单元604,用于在确定单元601确定上报老化消息的交换芯片是老化消息携带的MAC地址表项对应的源交换芯片的情况下,向VSD内除上报老化消息的交换芯片之外的交换芯片发送删除消息,以使得VSD内的所有交换芯片同时从各自MAC地址表中将与老化消息携带的MAC地址表项对应的表项删除;删除消息携带老化消息携带的MAC地址表项。
处理单元602,还用于从MAC数据库中删除与老化消息携带的MAC地址表项对应的表项。
确定单元601,还用于确定待同步链中是否存储有与老化消息携带的MAC地址表项相同的MAC地址表项。
处理单元602,还用于在确定单元601确定待同步链中存储有与老化消息携带的MAC地址表项相同的MAC地址表项的情况下,将待同步链中与老化消息携带的MAC地址表项相同的MAC地址表项删除。
本发明实施例提供了管理引擎,管理引擎确定物理交换设备是否有多个VSD,在管理引擎确定物理交换设备有多个VSD的情况下,管理引擎关闭物理交换设备中的所有交换芯片相互进行地址学习的能力,并开启VSD内各交换芯片间相互进行地址学习的能力,这样使得同一VSD内所有交换芯片存储的MAC(Media Access Control,媒体访问控制)地址表一致,属于不同VSD的交换芯片存储的MAC地址表不一致,从而不会发生将一个VSD的接收到的报文转发到同一物理交换设备中的其他VSD的情况,最终使得物理交换设备内的各VSD实现能够进行报文的独立转发,最终解决因为VSD间地址相互学习导致的报文转发异常。
本发明实施例提供了一种交换芯片,应用于物理交换设备,该物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,管理引擎对所述至少一个VSD进行管理。如图8所示,该交换芯片包括:接收单元801、处理单元802和发送单元803。
接收单元801,用于接收报文。
处理单元802,用于将学习到的MAC地址与端口信息作为MAC地址表项添加至交换芯片的MAC地址表中。
处理单元802,还用于将MAC地址表项添加至添加消息。
发送单元803,用于将添加消息上报至管理引擎,以使得管理引擎将MAC地址表项发送至VSD内除交换芯片之外所有交换芯片进行地址学习。
处理单元802,还用于在交换芯片的MAC地址表中的发生地址老化的情况下,将老化的MAC地址表项删除。
处理单元802,还用于将老化的MAC地址表项添加至老化消息。
发送单元803,还用于将老化消息发送至管理引擎,以使得管理引擎将VSD内每一交换芯片中存储的与老化的MAC地址表项对应的表项进行删除或更新。
接收单元801,还用于接收管理引擎发送的携带MAC地址表项的删除消息。
处理单元802,还用于将交换芯片的MAC地址表中存储的与删除消息携带的MAC地址表项对应的表项删除。
进一步的,如图9所示,该交换芯片还包括:确定单元804。
接收单元801,还用于接收管理引擎发送的MAC地址表项。
确定单元804,用于确定交换芯片的MAC地址表中是否存储有与MAC地址表项对应的表项。
处理单元802,还用于在确定单元804确定交换芯片的MAC地址表中没有存储与MAC地址表项对应的表项的情况下,将MAC地址表项添加至交换芯片的MAC地址表中。
本发明实施例提供了交换芯片,管理引擎将物理交换设备中所有交换芯片将相互进行地址学习的能力关闭,然后交换芯片根据管理引擎下发的消息进行地址学习或地址删除,保证VSD内的所有交换芯片中存储的MAC地址表项相同,从而不会发生将一个VSD的接收到的报文转发到同一物理交换设备中的其他VSD的情况,最终使得物理交换设备内的各VSD实现能够进行报文的独立转发,最终解决因为VSD间地址相互学习导致的报文转发异常。同时,因为设定同步周期时考虑了交换芯片地址更新频率,可以减少同一VSD内广播风暴,节约带宽资源。
本发明实施例提供了一种物理交换设备,包括:如图10所示,物理交换设备包括:管理引擎1001和至少一个VSD,每个VSD中包含至少一个交换芯片,管理引擎1001对至少一个VSD进行管理。本图是以n个交换芯片被分配到m个VSD中为例。
所述管理引擎1001为上述实施例所述的管理引擎1001。
所述交换芯片为上述实施例所述的交换芯片。
本发明实施例提供了一种物理交换设备,物理交换设备包括:管理引擎和至少一个交换芯片。管理引擎将物理交换设备中所有交换芯片将相互进行地址学习的能力关闭,然后为每个VSD创建MAC数据库和待同步链,并确定同步周期,将需要进行地址学习的MAC地址表项存储于待同步链中,然后在同步周期到期时将待同步中的所有MAC地址表项发送至VSD内的所有交换芯片,以使得在VSD间的交换芯片不能相互进行地址学习的情况下,保证VSD内的所有交换芯片中存储的MAC地址表项相同,从而不会发生将一个VSD的接收到的报文转发到同一物理交换设备中的其他VSD的情况,最终使得物理交换设备内的各VSD实现能够进行报文的独立转发,最终解决因为VSD间地址相互学习导致的报文转发异常。同时,因为设定同步周期时考虑了交换芯片地址更新频率,可以减少同一VSD内广播风暴,节约带宽资源。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (16)

1.一种虚拟交换设备VSD地址学习的方法,应用于物理交换设备,所述物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,所述管理引擎对所述至少一个VSD进行管理,其特征在于,包括:
所述管理引擎确定所述物理交换设备是否有多个VSD;
在所述管理引擎确定所述物理交换设备有多个VSD的情况下,所述管理引擎关闭所述物理交换设备中的所有交换芯片相互进行地址学习的能力,并控制VSD内各交换芯片间相互进行地址学习。
2.根据权利要求1所述的方法,其特征在于,对于所述物理交换设备的每一VSD,所述管理引擎控制VSD内各交换芯片间相互进行地址学习包括:
所述管理引擎创建待同步链;所述待同步链用于存储VSD内所有交换芯片进行地址学习的媒体访问控制MAC地址表项;
所述管理引擎确定同步周期;所述同步周期是所述管理引擎向所述VSD内所有交换芯片发送所述待同步链中存储的MAC地址表项的周期;
所述管理引擎创建MAC数据库;所述MAC数据库用于存储所述VSD内交换芯片上报的添加消息中携带的MAC地址表项与源交换芯片间的映射关系;所述源交换芯片是上报所述添加消息的交换芯片;
所述管理引擎接收交换芯片上报的添加消息,将所述添加消息中携带的MAC地址表项添加至所述待同步链中,并将所述添加消息中携带的MAC地址表项与源交换芯片间的映射关系添加至所述MAC数据库中;
所述管理引擎等待所述同步周期到期;
在所述同步周期到期时,所述管理引擎依次将所述待同步链中存储的MAC地址表项发送至所述VSD内的所有交换芯片,并删除所述待同步链中存储的所有MAC地址表项。
3.根据权利要求2所述的方法,其特征在于,在所述管理引擎等待所述同步周期到期之前,还包括:
所述管理引擎接收交换芯片上报的携带MAC地址表项的老化消息;
所述管理引擎根据所述MAC数据库,确定所述老化消息携带的MAC地址表项对应的源交换芯片;
所述管理引擎确定上报所述老化消息的交换芯片是否为所述老化消息携带的MAC地址表项对应的源交换芯片;
在上报所述老化消息的交换芯片是所述老化消息携带的MAC地址表项对应的源交换芯片的情况下,所述管理引擎向所述VSD内除上报所述老化消息的交换芯片之外的交换芯片发送删除消息,以使得所述VSD内的所有交换芯片同时从各自MAC地址表中将与所述老化消息携带的MAC地址表项对应的表项删除;所述删除消息携带所述老化消息携带的MAC地址表项;
所述管理引擎从所述MAC数据库中删除与所述老化消息携带的MAC地址表项对应的表项;
所述管理引擎确定所述待同步链中是否存储有与所述老化消息携带的MAC地址表项相同的MAC地址表项;
在所述待同步链中存储有与所述老化消息携带的MAC地址表项相同的MAC地址表项的情况下,所述管理引擎将所述待同步链中与所述老化消息携带的MAC地址表项相同的MAC地址表项删除;
在上报所述老化消息的交换芯片不是所述老化消息携带的MAC地址表项对应的源交换芯片的情况下,所述管理引擎将所述老化消息携带的MAC地址表项添加至所述待同步链中。
4.根据权利要求2所述的方法,其特征在于,所述管理引擎确定同步周期包括:
所述管理引擎根据公式计算出所述同步周期;
其中,T表示所述同步周期;T′表示预设同步周期;R表示预设中央处理器CPU利用率;R′表示实际可接受CPU利用率。
5.一种虚拟交换设备VSD地址学习的方法,应用于物理交换设备,所述物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,所述管理引擎对所述至少一个VSD进行管理,其特征在于,包括:
交换芯片接收报文,并将学习到的MAC地址与端口信息作为MAC地址表项添加至所述交换芯片的MAC地址表中;
所述交换芯片将所述MAC地址表项添加至添加消息,并将所述添加消息上报至所述管理引擎,以使得所述管理引擎将所述MAC地址表项发送至所述VSD内除所述交换芯片之外所有交换芯片进行地址学习。
6.根据权利要求5所述的方法,其特征在于,还包括:
所述交换芯片接收所述管理引擎发送的MAC地址表项;
所述交换芯片确定所述交换芯片的MAC地址表中是否存储有与所述MAC地址表项对应的表项;
在所述交换芯片确定所述交换芯片的MAC地址表中没有存储与所述MAC地址表项对应的表项的情况下,所述交换芯片将所述MAC地址表项添加至所述交换芯片的MAC地址表中。
7.根据权里要求5所述的方法,其特征在于,还包括:
所述交换芯片的MAC地址表中的发生地址老化,所述交换芯片将老化的MAC地址表项删除;
所述交换芯片将所述老化的MAC地址表项添加至老化消息,并将所述老化消息发送至所述管理引擎,以使得所述管理引擎将所述VSD内每一交换芯片中存储的与所述老化的MAC地址表项对应的表项进行删除或更新。
8.根据权利要求5所述的方法,其特征在于,还包括:
所述交换芯片接收所述管理引擎发送的携带MAC地址表项的删除消息;
所述交换芯片将所述交换芯片的MAC地址表中存储的与所述删除消息携带的MAC地址表项对应的表项删除。
9.一种管理引擎,应用于物理交换设备,所述物理交换设备包括:所述管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,所述管理引擎对所述至少一个VSD进行管理,其特征在于,包括:
确定单元,用于确定所述物理交换设备是否有多个VSD;
处理单元,用于在所述确定单元确定所述物理交换设备有多个VSD的情况下,关闭所述物理交换设备中的所有交换芯片相互进行地址学习的能力,并控制VSD内各交换芯片间相互进行地址学习。
10.根据权利要求9所述的管理引擎,其特征在于,对于所述物理交换设备的每一VSD,所述处理单元具体用于:
创建待同步链;所述待同步链用于存储VSD内所有交换芯片进行地址学习的媒体访问控制MAC地址表项;
确定同步周期;所述同步周期是所述管理引擎向所述VSD内所有交换芯片发送所述待同步链中存储的MAC地址表项的周期;
创建MAC数据库;所述MAC数据库用于存储所述VSD内交换芯片上报的添加消息中携带的MAC地址表项与源交换芯片间的映射关系;所述源交换芯片是上报所述添加消息的交换芯片;
接收交换芯片上报的添加消息,将所述添加消息中携带的MAC地址表项添加至所述待同步链中,并将所述添加消息中携带的MAC地址表项与源交换芯片间的映射关系添加至所述MAC数据库中;
等待所述同步周期到期;
在所述同步周期到期时,依次将所述待同步链中存储的MAC地址表项发送至所述VSD内的所有交换芯片,并删除所述待同步链中存储的所有MAC地址表项。
11.根据权利要求10所述的管理引擎,其特征在于,还包括:接收单元和发送单元;
所述接收单元,用于接收交换芯片上报的携带MAC地址表项的老化消息;
所述确定单元,还用于根据所述MAC数据库,确定所述老化消息携带的MAC地址表项对应的源交换芯片;
所述确定单元,还用于确定上报所述老化消息的交换芯片是否为所述老化消息携带的MAC地址表项对应的源交换芯片;
所述发送单元,用于在所述确定单元确定上报所述老化消息的交换芯片是所述老化消息携带的MAC地址表项对应的源交换芯片的情况下,向所述VSD内除上报所述老化消息的交换芯片之外的交换芯片发送删除消息,以使得所述VSD内的所有交换芯片同时从各自MAC地址表中将与所述老化消息携带的MAC地址表项对应的表项删除;所述删除消息携带所述老化消息携带的MAC地址表项;
所述处理单元,还用于从所述MAC数据库中删除与所述老化消息携带的MAC地址表项对应的表项;
所述确定单元,还用于确定所述待同步链中是否存储有与所述老化消息携带的MAC地址表项相同的MAC地址表项;
所述处理单元,还用于在所述确定单元确定所述待同步链中存储有与所述老化消息携带的MAC地址表项相同的MAC地址表项的情况下,将所述待同步链中与所述老化消息携带的MAC地址表项相同的MAC地址表项删除;
所述处理单元,还用于在所述确定单元确定出上报所述老化消息的交换芯片不是所述老化消息携带的MAC地址表项对应的源交换芯片的情况下,将所述老化消息携带的MAC地址表项添加至所述待同步链中。
12.一种交换芯片,应用于物理交换设备,所述物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,所述管理引擎对所述至少一个VSD进行管理,其特征在于,包括:
接收单元,用于接收报文;
处理单元,用于将学习到的MAC地址与端口信息作为MAC地址表项添加至所述交换芯片的MAC地址表中;
所述处理单元,还用于将所述MAC地址表项添加至添加消息;
发送单元,用于将所述添加消息上报至所述管理引擎,以使得所述管理引擎将所述MAC地址表项发送至所述VSD内除所述交换芯片之外所有交换芯片进行地址学习。
13.根据权利要求12所述的交换芯片,其特征在于,还包括:确定单元;
所述接收单元,还用于接收所述管理引擎发送的MAC地址表项;
所述确定单元,用于确定所述交换芯片的MAC地址表中是否存储有与所述MAC地址表项对应的表项;
所述处理单元,还用于在所述确定单元确定所述交换芯片的MAC地址表中没有存储与所述MAC地址表项对应的表项的情况下,将所述MAC地址表项添加至所述交换芯片的MAC地址表中。
14.根据权里要求12所述的交换芯片,其特征在于,
所述处理单元,还用于在所述交换芯片的MAC地址表中的发生地址老化的情况下,将老化的MAC地址表项删除;
所述处理单元,还用于将所述老化的MAC地址表项添加至老化消息;
所述发送单元,还用于将所述老化消息发送至所述管理引擎,以使得所述管理引擎将所述VSD内每一交换芯片中存储的与所述老化的MAC地址表项对应的表项进行删除或更新。
15.根据权利要求12所述的交换芯片,其特征在于,
所述接收单元,还用于接收所述管理引擎发送的携带MAC地址表项的删除消息;
所述处理单元,还用于将所述交换芯片的MAC地址表中存储的与所述删除消息携带的MAC地址表项对应的表项删除。
16.一种物理交换设备,所述物理交换设备包括:管理引擎和至少一个VSD,每个VSD中包含至少一个交换芯片,所述管理引擎对所述至少一个VSD进行管理,其特征在于,包括:
所述管理引擎为权利要求9-11任一项所述的管理引擎;
所述交换芯片为权利要求12-15任一项所述的交换芯片。
CN201410260416.7A 2014-06-12 2014-06-12 一种虚拟交换设备地址学习的方法、装置及系统 Active CN104038566B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410260416.7A CN104038566B (zh) 2014-06-12 2014-06-12 一种虚拟交换设备地址学习的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410260416.7A CN104038566B (zh) 2014-06-12 2014-06-12 一种虚拟交换设备地址学习的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN104038566A true CN104038566A (zh) 2014-09-10
CN104038566B CN104038566B (zh) 2017-11-03

Family

ID=51469153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410260416.7A Active CN104038566B (zh) 2014-06-12 2014-06-12 一种虚拟交换设备地址学习的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN104038566B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104506462A (zh) * 2014-12-16 2015-04-08 福建星网锐捷网络有限公司 一种分布式交换机中mac地址管理方法及设备
CN108111637A (zh) * 2017-12-25 2018-06-01 锐捷网络股份有限公司 一种老化mac地址的方法、线卡和交换设备
CN110247852A (zh) * 2019-07-08 2019-09-17 无锡锐格思信息技术有限公司 减少广播报文对以太网交换设备cpu影响的方法与设备
CN110572487A (zh) * 2019-08-21 2019-12-13 烽火通信科技股份有限公司 一种交换机任意端口虚拟化的方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100508496C (zh) * 2005-03-01 2009-07-01 杭州华三通信技术有限公司 对介质访问控制地址学习进行策略管理的方法
CN101098291B (zh) * 2006-06-29 2010-04-14 中兴通讯股份有限公司 在接入设备上防止介质访问控制地址表扰乱的方法
CN101217492A (zh) * 2008-01-04 2008-07-09 福建星网锐捷网络有限公司 地址信息处理方法和装置及系统
CN101656676B (zh) * 2009-09-18 2013-03-20 杭州华三通信技术有限公司 一种媒体访问控制mac地址表项更新方法和装置
CN103684965B (zh) * 2013-12-06 2017-07-14 新华三技术有限公司 基于虚拟设备配置的交换设备和报文转发方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104506462A (zh) * 2014-12-16 2015-04-08 福建星网锐捷网络有限公司 一种分布式交换机中mac地址管理方法及设备
CN104506462B (zh) * 2014-12-16 2017-12-26 福建星网锐捷网络有限公司 一种分布式交换机中mac地址管理方法及设备
CN108111637A (zh) * 2017-12-25 2018-06-01 锐捷网络股份有限公司 一种老化mac地址的方法、线卡和交换设备
CN110247852A (zh) * 2019-07-08 2019-09-17 无锡锐格思信息技术有限公司 减少广播报文对以太网交换设备cpu影响的方法与设备
CN110572487A (zh) * 2019-08-21 2019-12-13 烽火通信科技股份有限公司 一种交换机任意端口虚拟化的方法及系统

Also Published As

Publication number Publication date
CN104038566B (zh) 2017-11-03

Similar Documents

Publication Publication Date Title
CN103248711B (zh) 一种文件上传的方法和服务器
US10209908B2 (en) Optimization of in-memory data grid placement
US20150304212A1 (en) Method and apparatus for matching flow table, and switch
CN103019960B (zh) 分布式缓存方法及系统
EP2863310B1 (en) Data processing method and apparatus, and shared storage device
JP5594171B2 (ja) 通信処理装置、アドレス学習プログラムおよびアドレス学習方法
WO2017088705A1 (zh) 数据处理方法和装置
CN111475483B (zh) 数据库迁移方法、装置及计算设备
CN104168222A (zh) 一种报文传输方法和设备
WO2016066108A1 (zh) 路由访问方法、路由访问系统及用户终端
US8935567B1 (en) Network addressable storage controller with storage drive profile comparison
US20120246163A1 (en) Hash table storage and search methods and devices
CN112887229B (zh) 一种会话信息同步方法及装置
CN104038566A (zh) 一种虚拟交换设备地址学习的方法、装置及系统
CN105371420A (zh) 一种制冷控制方法、装置及系统
US20150052575A1 (en) Steering Traffic Among Multiple Network Services Using a Centralized Dispatcher
CN104811473A (zh) 一种创建虚拟非易失性存储介质的方法、系统及管理系统
US9749271B2 (en) Automatic isolation and detection of outbound spam
CN105490843A (zh) 一种信息处理方法及系统
CN102073733B (zh) 哈希表管理方法及装置
CN103873464A (zh) 报文处理的方法及转发设备
CN109063070B (zh) 一种数据库的操作方法及数据库服务器
CN111708763B (zh) 分片集群的数据迁移方法、装置和分片集群系统
CN103746768A (zh) 一种数据包的识别方法及设备
US11301436B2 (en) File storage method and storage apparatus

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
CP01 Change in the name or title of a patent holder

Address after: 350002 19 19, Jinyuan Chau Industrial Park, 618 Jinshan Road, Cangshan District, Fuzhou, Fujian

Patentee after: RUIJIE NETWORKS CO., LTD.

Address before: 350002 19 19, Jinyuan Chau Industrial Park, 618 Jinshan Road, Cangshan District, Fuzhou, Fujian

Patentee before: Fujian Xingwangruijie Network Co., Ltd.

CP01 Change in the name or title of a patent holder