CN1946064A - 报文转发方法及设备 - Google Patents
报文转发方法及设备 Download PDFInfo
- Publication number
- CN1946064A CN1946064A CNA2006101528797A CN200610152879A CN1946064A CN 1946064 A CN1946064 A CN 1946064A CN A2006101528797 A CNA2006101528797 A CN A2006101528797A CN 200610152879 A CN200610152879 A CN 200610152879A CN 1946064 A CN1946064 A CN 1946064A
- Authority
- CN
- China
- Prior art keywords
- list item
- mac
- port information
- topological
- arp
- 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
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种报文转发方法,包括:当网络拓扑发生变化时,在MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项,并设定该表项的优先级高于单播MAC地址表项和未知目的MAC广播表项,按照各表项的优先级的从高到低顺序,在MAC转发表中查找待转发报文对应的表项,根据查找到的表项转发该报文。本发明同时公开了一种报文转发设备,包括:拓扑变化检测模块和MAC转发处理模块。本发明使得在网络拓扑发生变化时,与拓扑发生变化的端口相关的报文能够及时广播出去,降低了报文转发错误或转发失败的几率,加速了流量的收敛。
Description
技术领域
本发明涉及数据传输技术领域,具体涉及一种报文转发方法及设备。
背景技术
二层转发技术的基本原理是学习和转发。学习和转发的原理是,二层交换机在一个端口上收到一个报文后,首先对该报文的源MAC地址进行学习,并且将学习结果即:该报文的源MAC地址与该报文的入端口信息的对应关系保存在单播MAC地址表中。这样交换机此后收到目的MAC地址为所述源MAC地址的报文后,就可在单播MAC地址表中,查找到该目的MAC地址对应的端口信息,从而将该报文从对应端口转发出去。但是,当网络拓扑变化时,会导致单播MAC地址表项的更改,此时,为了避免报文转发错误或失败,需要及时删除更改的单播MAC地址表项。
以下以以太网环为例,对网络拓扑的变化引起单播MAC地址表项的更改的情况进行说明。
图1为运行快速环网保护协议(RRPP)的交换机组成的二层转发以太网环的结构示意图,如图1所示,由四台以太网交换机A、B、C、D组成一个纯二层转发的以太网环,四台交换机都运行RRPP协议,交换机A为RRPP环的主节点,媒体访问控制(MAC)地址为mac a的客户端a与交换机A相连,根据RRPP协议将主节点交换机A的端口A2设置为禁止转发状态,MAC地址为mac b的客户端b与交换机D相连。如果客户端a需要访问客户端b,报文将会依次通过端口A3、A1、B1、B2、C1、C2、D1、D3的路线到达客户端b;同样客户端b会沿着相反的路线访问客户端a。
四台交换机学习到的单播MAC地址表如表1所示:
交换机A | mac a | 端口A3 |
mac b | 端口A1 | |
交换机B | mac a | 端口B1 |
mac b | 端口B2 | |
交换机C | mac a | 端口C1 |
mac b | 端口C2 | |
交换机D | mac a | 端口D1 |
mac b | 端口D3 |
表1单播MAC地址表
两台客户端之间交互的报文在每台交换机上转发时,在单播MAC地址表中查找目的MAC地址对应的端口,从该端口将报文转发出去。当在单播MAC地址表中未查找到目的MAC地址时,报文将会从发送该报文的客户端所属的虚拟局域网(VLAN)内的所有端口广播出去。
当环网上的某条链路断掉时,环路上就同时存在有两个断点,环上的设备之间将无法正常访问。例如:若图1中的交换机B和C之间的链路断掉,则此时的环网结构如图2所示,根据RRPP协议,端口A2的状态会及时从禁止转发状态切换到转发状态,以保证环上的设备仍然能够互相访问。然而,由于报文在交换机中的转发是按照目的MAC地址查找单播MAC地址表转发的,若交换机A不删掉单播MAC地址表中的mac b表项,则目的MAC地址为mac b的报文仍将从端口A1转发出去,报文将无法到达客户端b;若交换机A及时删除了mac b表项,则交换机A无法在单播MAC地址表中查找到mac b表项,这样发往客户端b的报文将在VLAN内广播,报文就可以从端口A2转发出去,到达客户端b。
对于RRPP协议来说,拓扑变化的收敛时间在50ms以内,即当以太网环上的一条链路断掉时,以太网上任意两台设备之间的通信最多中断50ms,这样就要求设备删除单播MAC地址表项的速度要非常快,或者使报文能够及时被广播出去。其它支持以太网环的协议如:生成树协议(STP),如果对收敛时间有严格要求,也会有同样需求。
对于三层转发的报文,交换机通过目的IP地址找到对应的地址解析协议(ARP)表项,以ARP表项中的二层报文头替换该报文的二层头,然后根据ARP表项中的出端口信息,将该报文从对应的出端口发送出去。当以太网的拓扑变化时,如果ARP表项不能及时更新出端口信息,报文还会从拓扑变化前学习到的端口转发出去,使得转发错误或失败。
综上所述,现有技术的缺点如下:
1、对于二层转发,当存放单播MAC地址表项的转发芯片不支持硬件瞬时清除表项的功能时,尤其当设备支持的单播MAC地址表项非常多时,将单播MAC地址表项一条条地删除需耗费较大时长,无法保证拓扑变化的收敛时间,导致转发错误或失败。
2、对于三层转发,当网络拓扑发生变化时,交换机可以保持原有ARP表项不变或删除原有的ARP表项,然后通过ARP表项重学习过程,更新转发芯片中的ARP表项。由于ARP表项学习需要发送ARP请求、接收ARP应答、更新ARP表项等过程,耗时较长,无法满足收敛时间的要求,导致转发错误或失败。
发明内容
本发明提供一种报文转发方法及设备,以在网络拓扑发生变化时,降低报文转发错误或失败的几率。
本发明的技术方案是这样实现的:
一种报文转发方法,包括:当网络拓扑发生变化时,在MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项,并设定该表项的优先级高于单播MAC地址表项和未知目的MAC广播表项;
按照各表项的优先级的从高到低顺序,在MAC转发表中查找待转发报文对应的表项,根据查找到的表项转发该报文。
所述在MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项之后进一步包括:
删除拓扑发生变化的端口对应的单播MAC地址表项,删除添加的拓扑发生变化的端口所在VLAN的广播表项。
所述在MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项的同时进一步包括:停止MAC地址学习;
且,所述删除所述添加的广播表项之后进一步包括:恢复MAC地址学习。
所述MAC转发表中的各表项的优先级以各表项的排列顺序区分,且排列在前的表项的优先级高于排列在后的表项的优先级;
所述设定添加的广播表项的优先级高于单播MAC地址表项和未知目的MAC广播表项为:在MAC转发表的单播MAC地址表项之前添加所述拓扑发生变化的端口所在VLAN的广播表项。
所述在MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项为:在以ACL表形式存储的MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项。
所述待转发报文为三层报文,
所述在MAC转发表中添加拓扑发生变化的端口所在虚拟局域网VLAN的广播表项之前进一步包括:设置内部环回端口,
所述在MAC转发表中添加所述广播表项的同时进一步包括:在所有地址解析协议ARP表中的出端口信息中,查找与所述拓扑发生变化的端口信息一致的出端口信息,将查找到的所有出端口信息替换为内部环回端口信息;
所述根据MAC转发表查找待转发报文对应的表项之前进一步包括:在ARP表项中查找该待转发报文对应的表项,根据表项中的内部环回端口信息将报文转发出去,从内部环回端口接收该报文。
所述将查找到的所有出端口信息替换为内部环回端口信息的同时进一步包括:
对出端口信息被替换为内部环回端口信息的ARP表项重新进行学习,并以重新学习到的ARP表项更新当前的ARP表项。
一种报文转发设备,包括:拓扑变化检测模块和MAC转发处理模块,其中:
拓扑变化检测模块,用于检测网络拓扑的变化,在网络拓扑发生变化时,向MAC转发处理模块发送拓扑发生变化的端口信息;
MAC转发处理模块,用于存储MAC转发表,根据拓扑变化检测模块发来的拓扑发生变化的端口信息,在MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项,并设定添加的表项的优先级高于MAC转发表中的单播MAC地址表项和未知目的MAC广播表项的优先级;按照各表项的优先级的从高到低顺序,在MAC转发表中查找待转发报文对应的表项,根据查找到的表项转发该报文。
所述设备进一步包括:MAC地址学习模块,用于在收到拓扑变化检测模块发来的停止学习指示后,停止MAC地址的学习;并在收到MAC转发处理模块发来的重启学习指示后,重新开始MAC地址的学习;
且,所述拓扑变化检测模块进一步用于,在网络拓扑发生变化时,向MAC地址学习模块发送停止学习指示;
所述MAC转发处理模块进一步用于,在删除完所述添加的拓扑发生变化的端口所在VLAN的广播表项后,向MAC地址学习模块发送重启学习指示。
所述设备进一步包括:内部环回端口设置模块和ARP表存储模块,其中:
内部环回端口设置模块,用于将部分端口设置为内部环回端口,将该内部环回端口信息发送给ARP表存储模块;
ARP表存储模块,用于在收到拓扑变化检测模块发来的更改端口指示后,在自身的所有ARP表项的出端口信息中,查找与所述更改端口指示携带的拓扑发生变化的端口信息一致的出端口信息,将查找到的所有出端口信息替换为内部环回端口信息设置模块发来的内部环回端口信息;
且,所述拓扑变化检测模块进一步用于,在网络拓扑发生变化时,向ARP表存储模块发送携带拓扑发生变化的端口信息的更改端口指示。
所述设备进一步包括:ARP表项学习模块,用于在收到ARP表存储模块发来的重启学习指示后,对该指示中携带的ARP表项重新进行学习;
且,所述ARP表存储模块进一步用于,将查找到的所有出端口信息替换为内部环回端口信息设置模块发来的内部环回端口信息后,向ARP表项学习模块发送重启学习指示,该指示携带出端口信息被替换为内部环回端口信息的ARP表项。
与现有技术相比,本发明通过在网络拓扑发生变化时,在MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项,并设定该表项的优先级高于单播MAC地址表项和未知目的MAC转发表项,根据MAC转发表中各表项的优先级的从高到低顺序,依次在各表项中查找待转发报文的二层头对应的表项,这样若该报文携带的VLAN标识为拓扑发生变化的端口所在的VLAN标识,则该报文会在该VLAN内的所有端口广播,从而降低了二层报文转发错误或转发失败的几率,加速了二层流量的收敛;
进一步地,本发明通过在网络拓扑发生变化时,将ARP表项的所有出端口信息中,与拓扑发生变化的端口信息一致的出端口信息替换为内部环回端口信息,使得此时收到的三层报文,若在ARP表项中查找的出端口信息会为内部环回端口信息,则报文会被重新转发回交换机,交换机收到该报文后,对该报文作二层转发处理,从而降低了三层报文转发错误或转发失败的几率,加速了三层流量的收敛。
在6502V3设备上应用本发明提出的流量快速收敛方案后,RRPP环网的收敛时间从500ms降到50ms以内。
附图说明
图1为RRPP树结构示意图一;
图2为RRPP树结构示意图二;
图3为本发明提供的在网络拓扑变化时,转发报文的流程图;
图4为本发明实施例一提供的在网络拓扑变化时,更改MAC转发表的流程图;
图5为在本发明实施一提供的在网络拓扑变化时,基于图4所示的实施例进行的二层报文转发的流程图;
图6为本发明实施例一提供的在网络拓扑变化时,更改MAC转发表和ARP表的流程图;
图7为本发明实施例一提供的在网络拓扑变化时,基于图6所示的实施例进行的三层报文转发流程图;
图8为本发明实施例二提供的在网络拓扑变化时,更改MAC转发表的流程图;
图9为在本发明实施二提供的在网络拓扑变化时,基于图8所示的实施例进行的二层报文转发的流程图;
图10为本发明实施例二提供的在网络拓扑变化时,更改MAC转发表和ARP表的流程图;
图11为本发明实施例二提供的在网络拓扑变化时,基于图10所示的实施例进行的三层报文转发流程图;
图12为本发明实施例提供的在网络拓扑变化时,进行二层报文转发的设备组成图;
图13为本发明实施例提供的在网络拓扑变化时,进行三层报文转发的设备组成图。
具体实施方式
图3是本发明提供的在网络拓扑变化时,转发报文的流程图,如图3所示,其具体步骤如下:
步骤301:交换机接收拓扑变化事件,该事件包含拓扑发生变化的端口信息。
步骤302:交换机在自身保存的MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项,并设定该表项的优先级高于MAC转发表中的单播MAC地址表项和未知目的MAC广播表项的优先级。
拓扑发生变化的端口所在VLAN的广播表项中保存的是:拓扑发生变化的各端口所在的VLAN标识与该VLAN内的所有出端口信息的对应关系。
步骤303:交换机收到报文,确定该报文为二层报文,则根据MAC转发表中各表项的优先级的从高到低顺序,在MAC转发表的各表项中,依次查找该报文对应的表项,根据查找到的表项,转发该报文。
从图3所示流程可以看出,当网络拓扑发生变化时,本发明首先要对MAC转发表进行更改,此后根据更改后的MAC转发表转发报文;以下分别对MAC转发表的更改过程和根据更改后的MAC转发表转发报文的过程进行详细说明。
图4是本发明实施例一提供的在网络拓扑变化时,更改MAC转发表的流程图,如图4所示,其具体步骤如下:
步骤401:交换机收到拓扑变化事件,该事件包含拓扑发生变化的端口信息,交换机停止MAC地址的学习。
步骤402:交换机在自身保存的MAC转发表的单播MAC地址表项之前增加拓扑发生变化的端口所在VLAN的广播表项。
步骤403:交换机将拓扑发生变化的端口所在VLAN的广播表项添加完毕,开始删除与拓扑发生变化的端口对应的单播MAC地址表项。
步骤404:交换机删除所述单播MAC地址表项完毕,开始删除所添加的所有拓扑发生变化的端口所在VLAN的广播表项。
步骤405:交换机删除完所有拓扑发生变化的端口所在VLAN的广播表项后,恢复MAC地址的学习,并以学习到的单播MAC地址表项更新自身当前的单播MAC地址表项。
根据图4所示流程,当交换机在网络拓扑变化之后、恢复MAC地址学习之前收到二层报文时,对该二层报文的转发流程如图5所示,其具体步骤如下:
步骤501:交换机收到二层报文,根据MAC转发表中各表项的优先级首先在拓扑发生变化的端口所在VLAN的广播表项中,查找该报文携带的VLAN标识对应的表项。
步骤502:交换机判断是否查找到步骤501所述表项,若是,执行步骤503;否则,执行步骤504。
步骤503:交换机根据查找到的表项中的出端口信息列表,将该报文广播出去,本流程结束。
步骤504:交换机在单播MAC地址表项中查找该报文的目的MAC地址对应的表项。
步骤505:交换机判断是否查找到步骤504所述表项,若是,执行步骤506;否则,执行步骤507。
步骤506:交换机根据该表项中的出端口信息,将该报文转发出去,本流程结束。
步骤507:交换机在未知目的MAC广播表项中,查找到该报文携带的VLAN标识对应的广播表项,根据该广播表项中的出端口信息列表,将该报文广播出去。
在正常情况下,MAC转发表依次包括:单播MAC地址表项和未知目的MAC广播表项。此时,交换机收到二层报文时,查找表项的顺序是:先查找单播MAC地址表项、后查找未知目的MAC广播表项。
本实施例中,由于当网络拓扑发生变化时,将拓扑发生变化的端口所在VLAN的广播表项添加在单播MAC地址表项之前。这样,交换机收到二层报文后,按照顺序会先在拓扑发生变化的端口所在VLAN的广播表项中查找该报文携带的VLAN标识对应的表项,若未查找到,再继续在单播MAC地址表项、未知目的MAC广播表项中查找。很明显,当将所有拓扑发生变化的端口所在的VLAN的广播表项都添加完毕时,就可完全避免报文转发错误和失败。
图4、5给出的是在网络拓扑变化时,对二层报文的转发处理;以下给出在网络拓扑变化时,对三层报文的转发处理。与二层报文转发只需更改MAC转发表相比,三层报文转发还需更改ARP表。
图6是本发明实施例一提供的在网络拓扑发变化时,更改MAC转发表和ARP表的流程图,如图6所示,其具体步骤如下:
步骤601:交换机在自身设置内部环回端口。
交换机可通过内部环回端口将自身发出的报文重新转发回交换机。
步骤602:交换机收到网络拓扑变化事件,该事件包含拓扑发生变化的端口信息,交换机停止MAC地址的学习。
步骤603:交换机在MAC转发表的单播MAC地址表前添加拓扑发生变化的端口所在VLAN的广播表。
步骤604:交换机在自身保存的所有ARP表项的出端口信息中,查找与所述拓扑发生变化的端口信息一致的出端口信息,将查找到的所有出端口信息替换为自身的内部环回端口信息,然后启动该出端口信息被替换为内部环回端口信息的ARP表项的重学习过程,并以学习到的ARP表项更新当前的ARP表项。
步骤605:交换机将所有拓扑发生变化的端口所在VLAN的广播表项添加完毕,开始删除单播MAC地址表中、与拓扑发生变化的端口对应的单播MAC地址表项。
步骤606:交换机删除单播MAC地址表项完毕,开始删除所添加的所有拓扑发生变化的端口所在VLAN的广播表项。
步骤607:交换机删除完所有拓扑发生变化的端口所在VLAN的广播表项后,恢复MAC地址的学习,并以学习到的单播MAC地址表项更新自身的单播MAC地址表。
根据图6所示流程,当交换机在拓扑发生变化之后、恢复MAC地址学习和更新ARP表项之前收到三层报文时,对该三层报文的转发流程如图7所示,其具体步骤如下:
步骤701:交换机收到三层报文,根据该报文的目的IP地址,查找到对应的ARP表项。
步骤702:交换机以ARP表项中的二层报文头替换该报文的二层头后,根据ARP表项中的出端口信息,将该报文从对应的端口发送出去。
步骤703:交换机从内部环回端口收到该报文后,将该报文作二层转发处理,根据该报文的二层头中携带的VLAN标识,首先在MAC转发表的拓扑发生变化的端口所在VLAN的广播表中查找该VLAN标识对应的表项。
若ARP表项中的原出端口信息为拓扑发生变化的端口信息,则该出端口信息会被更改为内部环回端口信息,当交换机根据报文的目的IP地址查找到该ARP表项后,报文会通过内部环回端口转发回交换机。
步骤:704~709与步骤502~507相同。
从图6、7所示流程可以看出:通过将ARP表项中拓扑发生变化的出端口信息更改为内部环回端口信息,可以使得三层报文重新发回交换机,作二层转发处理,降低了报文转发错误和失败的几率。
通常情况下,MAC转发表中存储的转发表项,其优先级级别是以各表项在MAC转发表中的排列顺序来决定的,排列在前的表项的优先级高于排列在后的表项的优先级,例如:单播MAC地址表项位于未知目的MAC广播表项之前,则单播MAC地址表项的优先级高于未知目的MAC广播表项,图4~7所示实施例正是基于该特点,通过在网络拓扑发生变化时,将拓扑发生变化的端口所在VLAN的广播表项添加在单播MAC地址表项和未知目的MAC广播表项之前,实现交换机收到二层报文时,先查找拓扑发生变化的端口所在VLAN的广播表项,再依次查找单播MAC地址表项、未知目的MAC广播表项,从而降低报文转发错误和失败的几率的。而在实际应用中,MAC转发表项也可以以访问控制列表(ACL)表项的形式存储在交换机中,各表项配置有一个优先级,各表项的执行先后根据为其配置的优先级来确定,优先级高的表项会先被执行。以下给出在MAC转发表以ACL表项的形式存储时,本发明实施例提出的二层和三层报文转发的方案。
图8是本发明实施例二提供的在网络拓扑变化时,更改MAC转发表的流程图,如图8所示,其具体步骤如下:
步骤801:交换机收到网络拓扑变化事件,该事件包含拓扑发生变化的端口信息,交换机停止MAC地址的学习。
步骤802:交换机在自身保存的ACL表中添加拓扑发生变化的端口所在VLAN的广播表项,并将该拓扑发生变化的端口所在VLAN的广播表项的优先级设定为高于单播MAC地址表项和未知目的MAC广播表项。
同样,拓扑发生变化的端口所在VLAN的广播表项中保存的是:拓扑发生变化的端口所在的VLAN标识与该VLAN内的所有出端口信息的对应关系。
步骤803~805与步骤403~405相同。
根据图8所示流程,当交换机在拓扑发生变化之后、恢复MAC地址学习之前收到二层报文时,对该二层报文的转发流程如图9所示,其具体步骤如下:
步骤901:交换机收到二层报文,根据优先级级别,首先在ACL表的拓扑发生变化的端口所在VLAN的广播表项中,查找该报文携带的VLAN标识对应的表项。
步骤902~907与步骤502~507相同。
图10是本发明实施例二提供的在网络拓扑变化时,更改MAC转发表和ARP表的流程图,如图10所示,其具体步骤如下:
步骤1001:交换机在自身设置内部环回端口。
步骤1002:交换机收到拓扑变化事件,该事件包含网络拓扑发生变化的端口信息,交换机停止MAC地址的学习。
步骤1003:交换机在ACL表中添加拓扑发生变化的端口所在VLAN的广播表项,并设定该拓扑发生变化的端口所在VLAN的广播表项的优先级高于单播MAC地址表项和未知目的MAC广播表项。
步骤1004~1007与步骤604~607相同。
根据图10所示流程,当交换机在拓扑发生变化之后、恢复MAC地址学习和更新ARP表项之前收到三层报文时,对该三层报文的转发流程如图11所示,其具体步骤如下:
步骤1101:交换机收到三层报文,根据该报文的目的IP地址,查找到对应的ARP表项。
步骤1102:交换机以ARP表项中的二层报文头替换该报文的二层头后,根据ARP表项中的出端口信息,将该报文从对应的端口发送出去。
步骤1103:交换机从内部环回端口收到该报文后,将该报文作二层转发处理,根据该报文携带的VLAN标识,首先在ACL表中的拓扑发生变化的端口所在VLAN的广播表项中查找该VLAN标识对应的表项。
步骤:1104~1109与步骤502~507相同。
基于图3~11所示的方法,本发明给出实现该方法的设备。
图12是本发明实施例提供的二层报文转发的设备组成图,如图12所示,其主要包括:拓扑变化检测模块121、MAC转发处理模块122和MAC地址学习模块123,其中:
拓扑变化检测模块121:用于在收到外部发来的拓扑变化事件后,向MAC转发处理模块122发送携带拓扑发生变化的端口信息的添加指示,并向MAC地址学习模块123发送停止学习指示。
MAC转发处理模块122:用于在收到拓扑变化检测模块121发来的携带拓扑发生变化的端口信息的添加指示后,在自身添加所述拓扑发生变化的端口所在VLAN的广播表项,并设定添加的表项的优先级高于自身保存的单播MAC地址表项和未知目的MAC广播表项的优先级;添加完毕,删除自身保存的与拓扑发生变化的端口对应的单播MAC地址表项,并在删除所述单播MAC地址表项完毕时,删除所述添加的所有拓扑发生变化的端口所在VLAN的广播表项;在删除完所有拓扑发生变化的端口所在VLAN的广播表项后,向MAC地址学习模块123发送重启学习指示,并根据MAC地址学习模块123发来的单播MAC地址表项,更新自身的单播MAC地址表;接收到外部发来的二层报文,首先在自身的拓扑发生变化的端口所在VLAN的广播表项中,查找该报文携带的VLAN标识对应的表项,若查找到,则根据该表项中的出端口信息列表,将该报文广播出去;若未查找到,则继续在自身的单播MAC地址表中,查找与该报文的目的MAC地址对应表项,若查找到,则根据该表项中的出端口信息,转发该报文;否则,根据该报文携带的VLAN标识,在未知目的MAC广播表中查找到对应的表项,根据该表项中的出端口信息列表,将该报文广播出去。
MAC地址学习模块123:用于在收到拓扑变化检测模块121发来的停止学习指示后,停止MAC地址的学习;并在收到MAC转发处理模块122发来的重启学习指示后,重新开始MAC地址的学习,并将学习到的单播MAC地址表项发送到MAC转发处理模块122。
图13是本发明实施例提供的三层报文转发的设备组成图,如图13所示,该设备与图12所示的设备相比,该设备进一步包括:内部环回端口设置模块124、ARP表存储模块125和ARP表项学习模块126,其中:
内部环回端口设置模块124:用于将交换机的部分端口设置为内部环回端口,将该内部环回端口信息发送给ARP表存储模块125。
ARP表存储模块125:用于在收到拓扑变化检测模块121发来的更改端口指示后,在自身的所有ARP表项的出端口信息中,查找与所述更改端口指示携带的拓扑发生变化的端口信息一致的出端口信息,将查找到的所有出端口信息替换为内部环回端口信息设置模块124发来的内部环回端口信息,然后向ARP表项学习模块126发送携带出端口信息被替换为内部环回端口信息的ARP表项的重启学习指示,并以ARP表项学习模块126发来的ARP表项更新自身当前的ARP表项。
对应地,拓扑变化检测模块121用于,在收到拓扑变化事件后,向ARP表存储模块125发送携带拓扑发生变化的端口信息的更改端口指示。
ARP表项学习模块126:用于在收到ARP表存储模块125发来的重启学习指示后,对该指示中携带的ARP表项重新进行学习,并将学习到的ARP表项发送给ARP表存储模块125。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1、一种报文转发方法,其特征在于,包括:
当网络拓扑发生变化时,在媒体访问控制MAC转发表中添加拓扑发生变化的端口所在虚拟局域网VLAN的广播表项,并设定该表项的优先级高于单播MAC地址表项和未知目的MAC广播表项;
按照各表项的优先级的从高到低顺序,在MAC转发表中查找待转发报文对应的表项,根据查找到的表项转发该报文。
2、如权利要求1所述的方法,其特征在于,所述在MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项之后进一步包括:
删除拓扑发生变化的端口对应的单播MAC地址表项,删除添加的拓扑发生变化的端口所在VLAN的广播表项。
3、如权利要求2所述的方法,其特征在于,所述在MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项的同时进一步包括:停止MAC地址学习;
且,所述删除所述添加的广播表项之后进一步包括:恢复MAC地址学习。
4、如权利要求1所述的方法,其特征在于,所述MAC转发表中的各表项的优先级以各表项的排列顺序区分,且排列在前的表项的优先级高于排列在后的表项的优先级;
所述设定添加的广播表项的优先级高于单播MAC地址表项和未知目的MAC广播表项为:在MAC转发表的单播MAC地址表项之前添加所述拓扑发生变化的端口所在VLAN的广播表项。
5、如权利要求1所述的方法,其特征在于,所述在MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项为:在以ACL表形式存储的MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项。
6、如权利要求1~5中任一项所述的方法,其特征在于,所述待转发报文为三层报文,
所述在MAC转发表中添加拓扑发生变化的端口所在虚拟局域网VLAN的广播表项之前进一步包括:设置内部环回端口,
所述在MAC转发表中添加所述广播表项的同时进一步包括:在所有地址解析协议ARP表中的出端口信息中,查找与所述拓扑发生变化的端口信息一致的出端口信息,将查找到的所有出端口信息替换为内部环回端口信息;
所述根据MAC转发表查找待转发报文对应的表项之前进一步包括:在ARP表项中查找该待转发报文对应的表项,根据表项中的内部环回端口信息将报文转发出去,从内部环回端口接收该报文。
7、如权利要求6所述的方法,其特征在于,所述将查找到的所有出端口信息替换为内部环回端口信息的同时进一步包括:
对出端口信息被替换为内部环回端口信息的ARP表项重新进行学习,并以重新学习到的ARP表项更新当前的ARP表项。
8、一种报文转发设备,其特征在于,包括:拓扑变化检测模块和MAC转发处理模块,其中:
拓扑变化检测模块,用于检测网络拓扑的变化,在网络拓扑发生变化时,向MAC转发处理模块发送拓扑发生变化的端口信息;
MAC转发处理模块,用于存储MAC转发表,根据拓扑变化检测模块发来的拓扑发生变化的端口信息,在MAC转发表中添加拓扑发生变化的端口所在VLAN的广播表项,并设定添加的表项的优先级高于MAC转发表中的单播MAC地址表项和未知目的MAC广播表项的优先级;按照各表项的优先级的从高到低顺序,在MAC转发表中查找待转发报文对应的表项,根据查找到的表项转发该报文。
9、如权利要求8所述的设备,其特征在于,所述设备进一步包括:MAC地址学习模块,用于在收到拓扑变化检测模块发来的停止学习指示后,停止MAC地址的学习;并在收到MAC转发处理模块发来的重启学习指示后,重新开始MAC地址的学习;
且,所述拓扑变化检测模块进一步用于,在网络拓扑发生变化时,向MAC地址学习模块发送停止学习指示;
所述MAC转发处理模块进一步用于,在删除完所述添加的拓扑发生变化的端口所在VLAN的广播表项后,向MAC地址学习模块发送重启学习指示。
10、如权利要求8或9所述的设备,其特征在于,所述设备进一步包括:内部环回端口设置模块和ARP表存储模块,其中:
内部环回端口设置模块,用于将部分端口设置为内部环回端口,将该内部环回端口信息发送给ARP表存储模块;
ARP表存储模块,用于在收到拓扑变化检测模块发来的更改端口指示后,在自身的所有ARP表项的出端口信息中,查找与所述更改端口指示携带的拓扑发生变化的端口信息一致的出端口信息,将查找到的所有出端口信息替换为内部环回端口信息设置模块发来的内部环回端口信息;
且,所述拓扑变化检测模块进一步用于,在网络拓扑发生变化时,向ARP表存储模块发送携带拓扑发生变化的端口信息的更改端口指示。
11、如权利要求10所述的设备,其特征在于,所述设备进一步包括:ARP表项学习模块,用于在收到ARP表存储模块发来的重启学习指示后,对该指示中携带的ARP表项重新进行学习;
且,所述ARP表存储模块进一步用于,将查找到的所有出端口信息替换为内部环回端口信息设置模块发来的内部环回端口信息后,向ARP表项学习模块发送重启学习指示,该指示携带出端口信息被替换为内部环回端口信息的ARP表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101528797A CN100444586C (zh) | 2006-11-06 | 2006-11-06 | 报文转发方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101528797A CN100444586C (zh) | 2006-11-06 | 2006-11-06 | 报文转发方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1946064A true CN1946064A (zh) | 2007-04-11 |
CN100444586C CN100444586C (zh) | 2008-12-17 |
Family
ID=38045282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101528797A Expired - Fee Related CN100444586C (zh) | 2006-11-06 | 2006-11-06 | 报文转发方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100444586C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110772B (zh) * | 2007-08-13 | 2010-06-09 | 杭州华三通信技术有限公司 | 一种处理报文的设备和方法 |
CN103441866A (zh) * | 2013-08-13 | 2013-12-11 | 北京华为数字技术有限公司 | 一种虚拟局域网的通信方法、系统及控制设备 |
CN103546595A (zh) * | 2013-10-31 | 2014-01-29 | 烽火通信科技股份有限公司 | 一种基于xPON的主机路由维护方法 |
CN104394083A (zh) * | 2014-09-22 | 2015-03-04 | 华为技术有限公司 | 转发表项处理的方法、报文转发的方法及其装置和系统 |
CN105991795A (zh) * | 2015-07-31 | 2016-10-05 | 杭州迪普科技有限公司 | Arp表项更新方法以及装置 |
CN106411784A (zh) * | 2016-10-28 | 2017-02-15 | 杭州华三通信技术有限公司 | 全局资源分配方法和装置 |
CN107547348A (zh) * | 2017-07-25 | 2018-01-05 | 新华三技术有限公司 | 防止数据流中断方法和装置 |
CN112954067A (zh) * | 2018-08-03 | 2021-06-11 | 中国有色金属长沙勘察设计研究院有限公司 | 一种数据终端 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1194508C (zh) * | 2002-05-15 | 2005-03-23 | 华为技术有限公司 | 一种基于二层交换设备的组播报文转发方法 |
EP1758305A1 (en) * | 2004-05-18 | 2007-02-28 | Matsushita Electric Industrial Co., Ltd. | Access network system, connection station device, radio base station device, and packet loss reducing method |
CN100442772C (zh) * | 2005-10-19 | 2008-12-10 | 华为技术有限公司 | 一种桥接转发方法 |
-
2006
- 2006-11-06 CN CNB2006101528797A patent/CN100444586C/zh not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110772B (zh) * | 2007-08-13 | 2010-06-09 | 杭州华三通信技术有限公司 | 一种处理报文的设备和方法 |
CN103441866A (zh) * | 2013-08-13 | 2013-12-11 | 北京华为数字技术有限公司 | 一种虚拟局域网的通信方法、系统及控制设备 |
CN103546595A (zh) * | 2013-10-31 | 2014-01-29 | 烽火通信科技股份有限公司 | 一种基于xPON的主机路由维护方法 |
CN103546595B (zh) * | 2013-10-31 | 2017-01-25 | 烽火通信科技股份有限公司 | 一种基于xPON的主机路由维护方法 |
CN104394083A (zh) * | 2014-09-22 | 2015-03-04 | 华为技术有限公司 | 转发表项处理的方法、报文转发的方法及其装置和系统 |
CN104394083B (zh) * | 2014-09-22 | 2017-12-15 | 华为技术有限公司 | 转发表项处理的方法、报文转发的方法及其装置和系统 |
CN105991795A (zh) * | 2015-07-31 | 2016-10-05 | 杭州迪普科技有限公司 | Arp表项更新方法以及装置 |
CN106411784A (zh) * | 2016-10-28 | 2017-02-15 | 杭州华三通信技术有限公司 | 全局资源分配方法和装置 |
CN107547348A (zh) * | 2017-07-25 | 2018-01-05 | 新华三技术有限公司 | 防止数据流中断方法和装置 |
CN107547348B (zh) * | 2017-07-25 | 2020-07-07 | 新华三技术有限公司 | 防止数据流中断方法和装置 |
CN112954067A (zh) * | 2018-08-03 | 2021-06-11 | 中国有色金属长沙勘察设计研究院有限公司 | 一种数据终端 |
CN112954067B (zh) * | 2018-08-03 | 2022-06-24 | 中国有色金属长沙勘察设计研究院有限公司 | 一种数据终端 |
Also Published As
Publication number | Publication date |
---|---|
CN100444586C (zh) | 2008-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1946064A (zh) | 报文转发方法及设备 | |
CN1057415C (zh) | 维护所选网络站和移动站之间的路由路径的方法 | |
CN100352240C (zh) | 控制二层以太环网设备mac地址学习数目的方法 | |
CN1968184A (zh) | 区域网络的链路层通信方法及其应用的网络设备 | |
CN1921457A (zh) | 一种网络设备和基于多核处理器的报文转发方法 | |
CN1777149A (zh) | 在三层交换机上实现组播转发的方法 | |
CN1929444A (zh) | 运营商边界节点、虚拟专用局域网服务通信方法及系统 | |
CN1725761A (zh) | 网络设备实现链路聚合的方法 | |
CN101030943A (zh) | 一种发送报文的方法和路由器 | |
CN1791054A (zh) | 一种虚拟路由器方式的虚拟专用网络的组播方法 | |
CN1866863A (zh) | 一种网络设备的邻居发现方法及系统 | |
CN1453963A (zh) | 蓝牙按请求路由方法和网络形成和蓝牙组网络的通信方法 | |
CN1585366A (zh) | 无线基站,网络系统,通信方法和基站控制程序 | |
CN101047583A (zh) | 支持虚拟局域网服务的无源光网络系统及相应方法 | |
CN101051951A (zh) | 一种保证服务器接入可靠性的方法及装置 | |
CN1881935A (zh) | 移动互联网协议路由处理方法和系统及路由器 | |
CN100350779C (zh) | 网络系统、控制设备、路由器装置、接入点和移动终端 | |
CN1716915A (zh) | 模块型分组通信节点设备 | |
CN1929447A (zh) | 地址前缀查找方法和装置以及报文转发方法和系统 | |
CN1878139A (zh) | 三层转发方法、装置及地址解析协议信息表更新方法 | |
CN1595912A (zh) | 通信系统,通信终端,路由控制方法和路由器 | |
CN101047598A (zh) | 环形网络,通信设备及用于两者的操作管理方法 | |
CN1777150A (zh) | 隔离用户虚拟局域网的实现方法及其应用的网络设备 | |
CN1921432A (zh) | 报文发送方法及其装置 | |
CN1852256A (zh) | 一种无线网状网中数据传输的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081217 Termination date: 20191106 |
|
CF01 | Termination of patent right due to non-payment of annual fee |