发明内容
有鉴于此,本发明的目的在于提供一种MVRP报文沿MSTI转发的方法,该方法能够提高MVRP的灵活性。
为了达到上述目的,本发明提供的技术方案为:
一种MVRP报文沿MSTI转发的方法,应用于属于MSTI的任意一条需要保持连通的链路中的设备,该方法包括:
当前设备接收到MVRP的join报文时,在接收所述join报文的端口注册所述join报文携带的所有虚拟局域网VLAN,并确定所述join报文携带的所有VLAN所在的MSTI;
如果当前设备中不存在属于所述MSTI的除接收所述join报文的端口外的其它端口,则判断是否存在满足所述join报文的一般转发条件的端口,当存在满足所述join报文的一般转发条件的端口时,将所述join报文从符合所述join报文的一般转发条件的端口转发出去;
其中,满足所述join报文的一般转发条件的端口为:开启了MVRP功能且允许所述join报文携带的所有VLAN通过的端口中,除接收所述join报文的端口之外的端口。
较佳地,预先对当前设备进行配置,包括:如果当前设备是所述链路上的端节点,则在当前设备上开启MVRP功能并创建属于所述MSTI的静态VLAN,将当前设备在所述链路上的端口设置为允许属于所述MSTI的所有VLAN通过;如果当前设备是所述链路上的中间节点,则在当前设备上开启MVRP功能并将当前设备在所述链路上的端口设置为允许属于所述MSTI的所有VLAN通过。
所述在接收所述join报文的端口注册所述join报文携带的所有VLAN,并确定所述join报文携带的所有VLAN所在的MSTI之后,进一步包括:从接收所述join报文的端口外的任一其它端口接收到MVRP报文时,将该MVRP报文从属于所述MSTI的包括接收所述join报文的端口在内的所有端口转发出去;所述MVRP报文包含MVRP的join报文和MVRP的leave报文。
本发明还提供了一种MVRP报文沿MSTI转发的设备,该设备为属于MSTI的任意一条需要保持连通的链路中的设备,该设备包括:接收单元、控制单元、发送单元;
所述接收单元,用于接收MVRP的报文;
所述发送单元,用于发送MVRP的报文;
所述控制单元,用于在接收单元接收到MVRP的join报文时,在接收所述join报文的端口注册所述join报文携带的所有虚拟局域网VLAN,并确定所述join报文携带的所有VLAN所在的MSTI,如果不存在属于所述MSTI的除接收所述join报文的端口外的其它端口,则判断是否存在满足所述join报文的一般转发条件的端口,当存在满足所述join报文的一般转发条件的端口时,指令发送单元将所述join报文从满足所述join报文的一般转发条件的端口转发出去。
该装置还包括配置单元;
所述配置单元,用于预先对当前设备进行配置,包括:如果当前设备是所述链路上的端节点,则在当前设备上开启MVRP功能并创建属于所述MSTI的静态VLAN,将当前设备在所述链路上的端口设置为允许属于所述MSTI的所有VLAN通过;如果当前设备是所述链路上的中间节点,则在当前设备上开启MVRP功能并将当前设备在所述链路上的端口设置为允许属于所述MSTI的所有VLAN通过。
在上述装置中,所述控制单元在接收所述join报文的端口注册所述join报文携带的所有VLAN,并确定所述join报文携带的所有VLAN所在的MSTI之后,进一步用于:从接收所述join报文的端口外的任一其它端口接收到MVRP报文时,指令发送单元将该MVRP报文从属于所述MSTI的包括接收所述join报文的端口在内的所有端口转发出去;所述MVRP报文包含MVRP的join报文和MVRP的leave报文。
由上面的技术方案可知,本发明中,接收到MVRP的join报文时,如果不存在属于join报文携带的VLAN所在的MSTI的端口,则无法沿着MSTI转发,若存在满足join报文的一般转发条件的端口,则将join报文从满足join报文的一般转发条件的端口转发出去,在join报文转发过程中,接收join报文的端口将会加入到同一MSTI中,从而使后续的join报文以及其它MVRP的报文能够自动沿着MSTI转发。应用本发明,只需根据网络拓扑在少数设备上进行静态VLAN配置并利用拓扑形成或变化后首个join报文的转发过程,就可以保证链路连通,因此可以减少了网管人员的管理工作量,提高MVRP的灵活性。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。
本发明可以应用于属于MSTI的任意一条需要保持连通的链路中的设备。
在本发明实施例中,为了实现MVRP报文能够沿着MSTI转发,首先需要对属于MSTI的需要保持连通的链路中的设备进行配置。对于属于MSTI的需要保持连通的链路中作为端节点的设备(也即链路两端的设备,例如图1中的设备1和设备4),具体的配置包括:开启MVRP功能并创建属于MSTI的静态VLAN,将设备在所述链路上的端口设置为允许属于所述MSTI的所有VLAN通过;对于属于MSTI的需要保持连通的链路中作为中间节点的设备(也即链路中连通两个端节点的设备,例如图1中的设备2和设备3),具体的配置包括:开启MVRP功能并将设备在链路上的端口(例如图1的设备2中的端口P2、P3)设置为允许属于所述MSTI的所有VLAN通过。在对设备进行配置时,如果设备中已经具有相应的配置,则不需要重新配置。
基于上述对属于MSTI的需要保持连通的链路中的设备的配置,可以采用图2所示本发明实施例实现MVRP报文沿MSTI转发的目的。
图2是本发明实施例MVRP报文沿MSTI转发的方法流程图,包括以下步骤:
步骤201、接收MVRP的join报文。
这里,在属于所述MSTI的需要保持连通的链路中,开启了MVRP功能并创建了静态VLAN的设备会对外发送join报文,报文中携带自己的VLAN信息;链路中接收到该join报文的设备会执行将接收端口加入到join报文携带的所有VLAN中并转发join报文。
步骤202、在接收join报文的端口注册join报文携带的所有VLAN,并确定join报文携带的所有VLAN所在的MSTI。
在接收join报文的端口注册join报文携带的所有VLAN,也即是将接收join报文的端口添加到join报文携带的各VLAN中,成为属于该join报文携带的各VLAN所在的MSTI的端口。
本实施例中,接收到join报文后,需要对join报文进行MSTI转发,因此需要确定join报文携带的VLAN所在的MSTI。
步骤203、判断是否存在属于所述MSTI的除收join报文的端口外的其它端口,如果是,则执行步骤204,否则,转至步骤205执行。
这里,判断一个端口是否是MSTI的端口的方法为:如果该端口尚未加入到该MSTI的任一VLAN,则该端口不是属于该MSTI的端口,否则,该端口是属于该MSTI的端口。
步骤204、将join报文从所述MSTI的除收join报文的端口外的其它端口转发出去,转至步骤207执行。
在确定join报文携带的VLAN所在的MSTI,及判定存在该MSTI的除接收join报文的端口外的其它端口后,走正常的join报文转发流程(沿着MSTI转发join报文),将join报文从该MSTI的除接收join报文的端口外的其它端口转发出去,并转至步骤207结束对join报文的处理。
步骤205、判断是否存在满足join报文的一般转发条件的端口,如果是,则执行步骤206,否则转至步骤207执行。
本实施例中,为了保证链路连通,在确定join报文携带的VLAN所在的MSTI后,并判定不存在该MSTI的除接收join报文的端口外的其它端口后,会继续判断是否存在满足join报文的一般转发条件的端口,如果存在,则对join报文执行一般条件转发。满足join报文的一般转发条件的端口为:开启了MVRP功能,且允许该join报文携带的所有VLAN通过的除接收该join报文的端口之外的端口。满足join报文的一般转发条件的端口可能不存在,也可能存在一个或多个。
步骤206、将join报文从满足join报文的一般转发条件的端口转发出去,join报文处理结束。
对于无法通过MSTI转发的join报文,在确定存在满足join报文的一般转发条件的端口后,对join报文执行一般条件转发:将join报文从满足join报文的一般转发条件的所有端口转发出去。
步骤207、结束join报文处理。
下面结合图1,对应用图2所示本发明实施例后join报文的转发进行举例说明。
仍假设已经在图1中的设备1和设备4上分别创建了静态VLAN2(此时,端口P1、P6加入到了MSTI,端口P2-P5尚未加入MSTI),则设备1和设备4的第一个join报文的转发过程如图3所示,具体过程如下:
1、设备1通过端口P1发送VLAN2的第一个join报文,设备4通过端口P6发送VLAN2的第一个join报文;
2、设备2在端口P2接收到来自设备1的VLAN2的join报文后,会在端口P2注册动态VLAN2,端口P2加入VLAN2,成为MSTI 1的端口;由于端口P3未加入到VLAN2,不在MSTI 1中,因此无法沿MSTI 1转发,然而,由于端口P3开启了MVRP功能,而且允许VLAN2通过,是符合join报文的一般转发条件的端口,因此,将join报文从端口P3转发出去。同样的道理,设备3在端口P5接收到设备4的join报文后,会在端口P5注册动态VLAN2,端口P5加入VLAN2,成为MSTI 1的端口;由于端口P4未加入到VLAN2,不在MSTI 1中,因此无法沿MSTI 1转发,然而,由于端口P4开启了MVRP功能,而且允许VLAN2通过,是符合join报文的一般转发条件的端口,因此,将join报文从端口P4转发出去;
3、设备2在端口p3接收到来自设备3的VLAN2的join报文后,会在端口P3注册动态VLAN2,端口P3加入VLAN2,成为MSTI 1的端口,将join报文从MSTI 1的端口P2转发出去;同样的道理,设备3在端口p4接收到来自设备2的VLAN2的join报文后,会在端口P4注册动态VLAN2,端口P4加入VLAN2,成为MSTI 1的端口,将join报文从MSTI 1的端口P5转发出去。
4、设备1在端口P1接收到来自设备2的VLAN2的join报文后,会在端口P1注册动态VLAN2;同样,设备4在端口P6接收到来自设备3的VLAN2的join报文后,会在端口P6注册动态VLAN2。
至此,端口P1、P2、P3、P4、P5、P6全部加入到MSTI 1。此后,设备1和设备4再发送join报文,以及其它MVRP报文(例如leave报文)时,由于端口P1、P2、P3、P4、P5、P6全部加入到MSTI 1,因此可以直接沿着MSTI 1转发,具体转发过程如图4所示。
由上面的例子可以看出,在网络拓扑形成或变化后,开启了MVRP功能且创建了静态VLAN的设备发送的第一个join报文在经过的每个设备时,需要先进行MSTI转发,如果无法沿MSTI转发,则再进行一般条件转发,如果也无法按照一般条件转发,则不再继续进行转发处理。在首个join报文的转发过程中,无论是接收到按照MSTI转发过来的join报文,或是接收到按照一般条件转发过来的join报文,均会将接收join报文的端口加入到join报文携带的所有VLAN中,使得接收join报文的端口加入到join报文携带的所有VLAN所在的MSTI,从而保证链路连通,且后续的所有MVRP报文能够沿着MSTI转发,这里的MVRP报文包含MVRP的join报文和MVRP的离开(leave)报文。而且,由于可以按照一般条件转发join报文,不需要网管人员对所有设备进行静态VLAN配置,只需根据网络拓扑对部分设备进行静态VLAN配置,因而可以减少网管人员的管理工作量,提高MVRP实现的灵活性。
以上对本发明实施例MVRP报文沿MSTI转发的方法进行了详细说明,本发明还提供了一种MVRP报文沿MSTI转发的设备。
参见图5,图5是本发明实施例MVRP报文沿MSTI转发的设备的结构示意图,该设备为属于MSTI的任意一条需要保持连通的链路中的设备,该设备包括:接收单元501、控制单元502、发送单元503;其中,
接收单元501,用于接收MVRP的报文;
发送单元503,用于发送MVRP的报文;
控制单元502,用于在接收单元501接收到MVRP的join报文时,在接收所述join报文的端口注册所述join报文携带的所有VLAN,并确定所述join报文携带的所有VLAN所在的MSTI,如果不存在属于所述MSTI的除接收所述join报文的端口外的其它端口,则判断是否存在满足所述join报文的一般转发条件的端口,当存在满足所述join报文的一般转发条件的端口时,指令发送单元503将join报文从符合所述join报文的一般转发条件的端口转发出去。
所述满足所述join报文的一般转发条件的端口为:开启了MVRP功能且允许所述join报文携带的所有VLAN通过的端口中,除接收所述join报文的端口之外的端口。
该装置还包括配置单元504;
所述配置单元504,用于预先对本设备进行配置,包括:如果当前设备是所述链路上的端节点,则在当前设备上开启MVRP功能并创建属于所述MSTI的静态VLAN,将设备在所述链路上的端口设置为允许属于所述MSTI的所有VLAN通过;如果当前设备是所述链路上的中间节点,则在当前设备上开启MVRP功能并将当前设备在所述链路上的端口设置为允许属于所述MSTI的所有VLAN通过。
所述控制单元502在接收所述join报文的端口注册所述join报文携带的所有VLAN,并确定所述join报文携带的所有VLAN所在的MSTI之后,进一步用于:接收单元501从接收所述join报文的端口外的任一其它端口接收到MVRP报文时,指令发送单元503将该MVRP报文从所述MSTI的包括接收所述join报文的端口在内的所有端口转发出去,所述MVRP报文包含MVRP的join报文和MVRP的leave报文。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。