一种VLAN注册方法和装置与流程

文档序号:14559673阅读:391来源:国知局
一种VLAN注册方法和装置与流程

本申请涉及通信技术领域,尤其是涉及一种vlan注册方法和装置。



背景技术:

stp(spanningtreeprotocol,生成树协议)是一种二层拓扑计算协议,通过选择性地阻塞网络中的冗余链路,从而消除二层转发环路。在stp的基础上,提出了mstp(multiplespanningtreeprotocol,多实例生成树协议),mstp可以将交换网络划分成多个域,在每个域内形成多个实例,并将vlan(virtuallocalareanetworks,虚拟局域网)关联到对应的实例中,每个vlan只关联到一个实例中。这样,每个实例可以形成一个逻辑上的树拓扑结构,各个vlan内的数据在不同的实例内进行转发,从而可以提供负载均衡的功能。

为了实现mstp,则需要在网络设备的端口配置相应的vlan,配置工作量很大。例如,若网络设备1、网络设备2、网络设备3和网络设备4组成实例1,网络设备1、网络设备2、网络设备3和网络设备5组成实例2,且实例1对应vlan1-10、实例2对应vlan11-20时,则需要在网络设备1、网络设备2、网络设备3和网络设备4的端口配置vlan1-10,并在网络设备1、网络设备2、网络设备3和网络设备5的端口配置vlan11-20。因此,当实例的数量很多,网络设备的数量很多时,则需要配置大量的vlan,配置工作量很大。



技术实现要素:

本申请提供一种vlan注册方法,应用于网络设备,所述方法包括:

在通过第一端口收到注册消息后,为第一端口添加注册消息携带的vlan;

当所述注册消息是正向注册消息时,若本设备是根节点或中间节点,则在映射表中记录所述vlan与第一端口的对应关系;若本设备是叶子节点,则生成携带所述vlan的反向注册消息,并通过第一端口发送所述反向注册消息;

当所述注册消息是反向注册消息时,若本设备是根节点或中间节点,则从映射表中查询出所述vlan对应的端口,并通过查询出的端口发送所述反向注册消息。

本申请提供一种vlan注册装置,应用于网络设备,所述装置包括:

添加模块,用于在通过第一端口接收到注册消息后,为所述第一端口添加所述注册消息中携带的vlan;

处理模块,用于当所述注册消息是正向注册消息时,若所述网络设备是根节点或者中间节点,则在映射表中记录所述vlan与第一端口的对应关系;若所述网络设备是叶子节点,则生成携带所述vlan的反向注册消息,并通过第一端口发送所述反向注册消息;当所述注册消息是反向注册消息时,若所述网络设备是根节点或者中间节点,则从映射表中查询出所述vlan对应的端口,并通过查询出的端口发送所述反向注册消息。

基于上述技术方案,本申请实施例中,基于正向注册消息和反向注册消息,可以为接收到正向注册消息或者反向注册消息的端口添加vlan,实现了vlan的自动部署,并实现了vlan的动态注册,减少了vlan的配置工作量。此外,某个叶子节点上的vlan属性,可以自动地部署到整个网络,减轻配置工作量。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1a-图1c是本申请一种实施方式中的应用场景示意图;

图2是本申请一种实施方式中的vlan注册方法的流程图;

图3是本申请一种实施方式中的vlan注册的振荡示意图;

图4是本申请一种实施方式中的vlan注册装置的结构图;

图5是本申请一种实施方式中的网络设备的硬件结构图。

具体实施方式

在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请实施例中提出一种vlan注册方法,该方法可以应用于mstp网络,mstp网络可以包括多个域,每个域存在多个实例(也可以称为多实例、或者生成树实例、或者msti(multiplespanningtreeinstance,多生成树实例)实例)。对于每个实例来说,可以关联一个或者多个vlan,且每个vlan只关联到一个实例中,这样,每个实例就可以形成一个逻辑上的树拓扑结构。

参见图1a所示,为本实施例的应用场景示意图,图1a示出了mstp网络中某个域的结构,假设该域存在实例1和实例2,实例1对应vlan11-vlan20,实例2对应vlan21-vlan30,实例1由网络设备101、网络设备102、网络设备103、网络设备104、网络设备105组成,实例2由网络设备101、网络设备102、网络设备103、网络设备104组成。则网络设备101、网络设备102、网络设备103、网络设备104,配置实例1与vlan11-vlan20的对应关系,实例2与vlan21-vlan30的对应关系;网络设备105配置实例1与vlan11-vlan20的对应关系。基于此,vlan11-vlan20的流量可以在网络设备101、网络设备102、网络设备103、网络设备104、网络设备105传输;vlan21-vlan30的流量可以在网络设备101、网络设备102、网络设备103、网络设备104传输。

为了方便描述,后续以实例1的处理过程为例进行说明,而实例2的处理过程与此类似,后续不再赘述。参见图1b所示,为实例1对应的树拓扑结构的示意图,在该树拓扑结构中,可以存在根桥、指定端口、根端口、替换端口。

其中,树拓扑结构中有且仅有一个树根节点,这个树根节点为根桥,网络设备103为根桥。指定端口是指向下游网络设备的、且处于转发状态(forwarding)的下行端口,根桥上的所有端口(如端口1031和端口1032)均为指定端口,端口1021和端口1022为指定端口,端口1042和端口1043也为指定端口。

根端口是非根桥设备上指向根桥的最优路径上的端口,是指向根桥的上行端口,根端口处于转发状态,并负责与根桥进行通信,非根桥设备上有且只有一个根端口。例如,端口1023、端口1041、端口1011、端口1051均为根端口。

替换端口是非根桥设备上指向根桥的备选路径上的端口,也是指向根桥的上行端口,替换端口处于阻塞状态(discarding),可以阻断替换端口转发的流量,非根桥设备上有一个或多个替换端口。如端口1012、端口1052为替换端口。

参见图1b所示,对于网络设备101来说,端口1013也是指向下游设备的、且处于转发状态的下行端口,即端口1013也是指定端口。而且,由于网络设备101的下游设备是用户设备106,因此,端口1013还是与用户设备连接的边缘端口。同理,端口1053可以是指定端口,也是与用户设备连接的边缘端口。

在一个例子中,还可以将各网络设备划分为如下设备角色:叶子节点、中间节点、根节点,且各网络设备可以确定自身的设备角色。例如,若本网络设备存在根端口和/或替换端口,且不存在指定端口,则确定本网络设备是叶子节点;或者,若本网络设备存在根端口和/或替换端口,且存在指定端口,但指定端口是连接用户设备的边缘端口,则确定本网络设备是叶子节点。此外,若本网络设备存在根端口和指定端口,则确定本网络设备是中间节点。此外,若本网络设备只存在指定端口,则确定本网络设备是根节点,也就是上述根桥。

参见图1c所示,由于网络设备101存在根端口和替换端口,且存在指定端口,但是指定端口是边缘端口,因此网络设备101可以确定本设备是叶子节点。同理,网络设备105是叶子节点。由于网络设备102存在根端口和指定端口,因此网络设备102确定本设备是中间节点。同理,网络设备104是叶子节点。由于网络设备103只存在指定端口,因此网络设备103确定本设备是根节点。

在上述应用场景下,基于实例1的树拓扑结构,假设用户设备106和用户设备107之间需要传输vlan15的流量,则可以手工为网络设备101-网络设备105的各端口配置vlan15,配置工作量很大。针对上述发现,本申请实施例中,可以在网络设备101-网络设备105之间传输正向注册消息和反向注册消息,并可以为接收到正向注册消息或者反向注册消息的端口添加vlan,实现了vlan的自动部署,并实现了vlan的动态注册,减少了vlan的配置工作量。

在一个例子中,正向注册消息和反向注册消息均可以是基于mvrp(multiplevlanregistrationprotocol,多vlan注册协议)消息,当然,正向注册消息和反向注册消息也可以是其它类型的消息,如的gvrp(genericvlanregistrationprotocol,vlan通用注册协议)消息,对此不做限制,以mvrp消息为例进行说明。其中,mvrp消息用于在网络设备间发布并学习vlan信息,通过mvrp消息,网络设备可以自动同步vlan信息,极大地减少了vlan配置工作。

传统的mvrp消息,并没有区分正向mvrp消息和反向mvrp消息,所有网络设备接收到mvrp消息的处理流程相同,导致只有部分端口实现vlan信息的自动注册。例如,网络设备101为端口1013添加vlan15后,通过端口1011发送携带vlan15的mvrp消息。网络设备102通过端口1021收到mvrp消息后,为端口1021添加vlan15,并通过端口1023发送该mvrp消息。网络设备103通过端口1031收到mvrp消息后,为端口1031添加vlan15,并通过端口1032发送该mvrp消息。网络设备104通过端口1041收到mvrp消息后,为端口1041添加vlan15,并通过端口1043发送该mvrp消息。网络设备105通过端口1051收到mvrp消息后,为端口1051添加vlan15。

显然,上述处理可以为端口1013、端口1021、端口1031、端口1041、端口1051添加vlan15,使得用户设备106发送给用户设备107的流量正常传输。无法基于mvrp消息为端口1053、端口1043、端口1032、端口1023、端口1011添加vlan15,导致用户设备107发送给用户设备106的流量,无法正常传输。

针对上述发现,本申请实施例中,可以将mvrp消息区分为正向mvrp消息和反向mvrp消息,且不同角色的网络设备,接收到正向mvrp消息/反向mvrp消息的处理流程也不相同,从而在所有端口实现vlan信息的自动注册。

在一个例子中,由于正向mvrp消息和反向mvrp消息用于自动注册lan信息,因此,将正向mvrp消息称为正向注册消息,并将反向mvrp消息称为反向注册消息。其中,正向注册消息和反向注册消息均可以携带待注册的vlan,且正向注册消息和反向注册消息还可以携带类型标记。当然,正向注册消息和反向注册消息还可以携带其它内容,这些内容与mvrp消息类似,不再赘述。

其中,针对正向注册消息和反向注册消息携带的vlan,是需要为端口注册的vlan。也就是说,网络设备通过某个端口接收到正向注册消息或者反向注册消息后,可以为该端口添加正向注册消息或者反向注册消息携带的vlan。

其中,针对正向注册消息和反向注册消息携带的类型标记,用于表示消息类型。例如,正向注册消息携带的类型标记为第一标识(如0),以表示当前消息是正向注册消息;反向注册消息携带的类型标记为第二标识(如1),以表示当前消息是反向注册消息。综上所述,网络设备在接收到注册消息后,若解析出该注册消息的类型标记为第一标识,则确定该注册消息为正向注册消息;若解析出该注册消息的类型标记为第二标识,则确定该注册消息为反向注册消息。

在上述应用场景下,参见图2所示,为vlan注册方法的流程图,该方法可以应用于网络设备,网络设备可以是任意角色的网络设备,如叶子节点、中间节点、根节点等,且该网络设备支持mvrp和mstp,该方法可以包括:

步骤201,在通过第一端口接收到注册消息后,为该第一端口添加该注册消息携带的vlan,也就是说,可以为该第一端口自动注册该vlan。其中,该第一端口可以是处于转发状态的端口,而不是处于阻塞状态的端口。

步骤202,确定该注册消息是正向注册消息或反向注册消息。若该注册消息是正向注册消息,执行步骤203;若该注册消息是反向注册消息,执行步骤204。

其中,可以解析注册消息的类型标记;若类型标记为第一标识,确定注册消息为正向注册消息;若类型标记为第二标识,确定注册消息为反向注册消息。

步骤203,若本网络设备是根节点或者中间节点,则可以在映射表中记录该vlan与该第一端口的对应关系;若本网络设备是叶子节点,则可以生成携带该vlan的反向注册消息,并通过该第一端口发送该反向注册消息。

具体的,网络设备在接收到正向注册消息后,可以先确定本网络设备的角色,具体确定方式已经在上述过程中介绍,在此不再赘述。若本网络设备是根节点或者中间节点,则可以在映射表中记录该vlan与该第一端口的对应关系,确定处于转发状态的第二端口(即与第一端口不同的第二端口,可以为一个或者多个第二端口),并通过第二端口转发该正向注册消息。若本网络设备是叶子节点,则可以生成携带该vlan的反向注册消息,通过该第一端口发送该反向注册消息,并确定与用户设备连接的边缘端口,为该边缘端口添加该vlan。

步骤204,若本网络设备是根节点或者中间节点,则可以从映射表中查询出该vlan对应的端口,并通过查询出的该端口发送上述反向注册消息。

具体的,网络设备在接收到反向注册消息后,可以先确定本网络设备的角色,具体确定方式已经在上述过程中介绍,在此不再赘述。若本网络设备是根节点或者中间节点,则可以从映射表中查询出该vlan对应的端口,并通过查询出的该端口发送反向注册消息。若本网络设备是叶子节点,则结束流程。

以下结合图1c所示的应用场景,对步骤201-步骤204的处理进行说明。

假设用户设备106和用户设备107之间需要传输vlan15的流量,则可以为网络设备101的端口1013配置vlan15。然后,网络设备101确定端口1013之外的处于转发状态(forwarding)的端口,即端口1011,而不包括处于阻塞状态的端口1012,因此,通过端口1011发送携带vlan15的正向注册消息。

网络设备102通过端口1021(第一端口)接收到正向注册消息后,为端口1021添加vlan15。由于网络设备102是中间节点,因此,在本地的映射表中记录vlan15与端口1021的对应关系。然后,确定处于转发状态的端口1022和端口1023(第二端口),并通过端口1022和端口1023转发该正向注册消息。

网络设备105通过端口1052接收到正向注册消息后,由于端口1052为阻塞端口,因此,可以丢弃该正向注册消息,结束对这个正向注册消息的处理。

网络设备103在通过端口1031(即第一端口)接收到该正向注册消息之后,可以为端口1031添加vlan15。由于网络设备103是根节点,因此,可以在本地的映射表中记录vlan15与端口1031的对应关系。然后,确定处于转发状态的端口1032(即第二端口),并通过端口1032转发该正向注册消息。

网络设备104通过端口1041(第一端口)接收到正向注册消息后,为端口1041添加vlan15。由于网络设备104是中间节点,因此,在本地的映射表中记录vlan15与端口1041的对应关系。然后,确定处于转发状态的端口1042和端口1043(第二端口),并通过端口1042和端口1043转发该正向注册消息。

网络设备101通过端口1012接收到正向注册消息后,由于端口1012为阻塞端口,因此,可以丢弃该正向注册消息,结束对这个正向注册消息的处理。

网络设备105通过端口1051(第一端口)接收到正向注册消息后,为端口1051添加vlan15。由于网络设备105是叶子节点,因此,确定与用户设备连接的端口1053(即边缘端口),为端口1053添加vlan15(即针对不支持mvrp的用户设备,自动在用户设备的接入端口添加vlan,而不用手工为端口1053配置vlan15),并通过端口1053转发该正向注册消息。此外,生成携带该vlan15的反向注册消息,并通过端口1051(第一端口)发送该反向注册消息。

网络设备104通过端口1043(第一端口)接收到反向注册消息后,为端口1043添加vlan15。由于网络设备104是中间节点,因此,从本地的映射表中查询与vlan15对应的端口1041(正向注册消息传输过程,已经在映射表中记录vlan15与端口1041的对应关系),并通过端口1041转发该反向注册消息。然后,网络设备104还可以从映射表中删除vlan15与端口1041的对应关系。

网络设备103通过端口1032(即第一端口)接收到反向注册消息后,为端口1032添加vlan15。由于网络设备103是根节点,因此,从本地的映射表中查询与vlan15对应的端口1031,并通过端口1031转发该反向注册消息。然后,网络设备103还可以从映射表中删除vlan15与端口1031的对应关系。

网络设备102通过端口1023(即第一端口)接收到反向注册消息后,为端口1023添加vlan15。由于网络设备102是中间节点,因此,从本地的映射表中查询与vlan15对应的端口1021,并通过端口1021转发该反向注册消息。然后,网络设备102还可以从映射表中删除vlan15与端口1021的对应关系。

网络设备101通过端口1011(即第一端口)接收到反向注册消息后,为端口1011添加vlan15。由于网络设备101是叶子节点,因此,结束处理流程。

综上所述,各网络设备可以自动为端口1013、端口1021、端口1031、端口1041、端口1051、端口1053、端口1043、端口1032、端口1023、端口1011添加vlan15,也就是说,针对vlan15所映射的实例,所有处于转发状态的端口,均完成了vlan15的动态注册,完成了该实例的有效拓扑。这样,针对用户设备106与用户设备107交互的针对vlan15的流量,能够正常传输。

基于上述技术方案,本申请实施例中,基于正向注册消息和反向注册消息,可以为接收到正向注册消息或者反向注册消息的端口添加vlan,实现了vlan的自动部署,并实现了vlan的动态注册,减少了vlan的配置工作量。此外,某个叶子节点上的vlan属性,可以自动地部署到整个网络,减轻配置工作量。

在上述实施例中,参见图1c所示,没有为处于阻塞状态的替换端口(如端口1012和端口1052,为了方便描述,本文中将处于阻塞状态的替换端口,称为阻塞端口)添加vlan15,也没有为该阻塞端口的对端端口(如端口1012对应的端口1042、端口1052对应的端口1022)添加vlan15,这样,当实例的树拓扑结构发生变化时,需要重新动态注册vlan,流量切换性能较差。

例如,当端口1012切换为转发状态的根端口,端口1011切换为阻塞状态的替换端口后,可以采用上述流程,重新为端口1012和端口1042添加vlan15,而在重新添加过程中,针对vlan15的流量会发生中断,流量切换性能较差。

针对上述发现,在一个例子中,网络设备在接收到正向注册消息时,若本网络设备是根节点或者中间节点,则判断与本网络设备连接的下游网络设备是否存在阻塞端口;如果是,则确定本网络设备上与该阻塞端口连接的第三端口,并为该第三端口添加正向注册消息携带的vlan;如果否,则结束流程。

在一个例子中,网络设备在通过第四端口接收到正向注册消息后,若第四端口是阻塞端口,则为第四端口添加该正向注册消息携带的vlan,并禁止转发该正向注册消息,即不再通过其它处于转发状态的端口转发该正向注册消息。

在一个例子中,网络设备在获得反向注册消息(例如,对于叶子节点来说,该反向注册消息是本网络设备自身生成的,对于根节点或者中间节点来说,该反向注册消息是本网络设备接收的)时,还可以判断本网络设备是否存在阻塞端口;如果是,则可以通过该阻塞端口发送该反向注册消息。进一步的,与该阻塞端口连接的对端网络设备,在接收到该反向注册消息时,则可以为该反向注册消息的接收端口添加该反向注册消息携带的vlan,并禁止转发该反向注册消息,即可以不再通过其它处于转发状态的端口转发该反向注册消息。

以下结合图1c所示的应用场景,对上述阻塞端口的处理过程进行说明。

网络设备102在接收到正向注册消息时,由于本设备是中间节点,且与本设备连接的网络设备105(即下游网络设备)存在阻塞端口(端口1052),因此,确定本设备上与该阻塞端口连接的第三端口,即端口1022,并为端口1022添加正向注册消息携带的vlan15。同理,网络设备104在接收到正向注册消息时,由于本设备是中间节点,且与本设备连接的网络设备101(即下游网络设备)存在阻塞端口(端口1012),因此,确定本设备上与该阻塞端口连接的第三端口,即端口1042,并为端口1042添加正向注册消息携带的vlan15。

网络设备105在通过端口1052(即第四端口)接收到正向注册消息后,由于端口1052是阻塞端口,因此,为端口1052添加正向注册消息携带的vlan15,而且,网络设备105不再通过其它处于转发状态的端口转发该正向注册消息。网络设备101在通过端口1012(即第四端口)接收到正向注册消息后,由于端口1012是阻塞端口,因此,为端口1012添加正向注册消息携带的vlan15,而且,网络设备101不再通过其它处于转发状态的端口转发该正向注册消息。

网络设备105在生成反向注册消息后,由于本设备存在阻塞端口(即端口1052),因此,网络设备105还可以通过端口1052发送该反向注册消息。而且,网络设备102通过端口1022接收到该反向注册消息时,若还没有为端口1022添加反向注册消息携带的vlan15,则为端口1022添加vlan15,若已经为端口1022添加vlan15,则不再为端口1022添加vlan15。进一步的,网络设备102可以不再通过其它处于转发状态的端口转发该反向注册消息。

网络设备101在接收到反向注册消息后,由于本设备存在阻塞端口(即端口1012),因此,网络设备101还可以通过端口1012发送该反向注册消息。而且,网络设备104通过端口1042接收到该反向注册消息时,若还没有为端口1042添加反向注册消息携带的vlan15,则为端口1042添加vlan15,若已经为端口1042添加vlan15,则不再为端口1042添加vlan15。进一步的,网络设备104可以不再通过其它处于转发状态的端口转发该反向注册消息。

基于上述技术方案,本申请实施例中,在存在阻塞端口的链路上,可以为阻塞端口、阻塞端口的对端端口添加正向注册消息/反向注册消息携带的vlan,这样,完成所有链路上的vlan动态注册,在树拓扑结构发生变化时,不需要重新动态注册vlan,保持各端口vlan的稳定性,实现流量快速切换,提高流量切换性能。例如,当端口1012切换为转发状态的根端口,端口1011切换为阻塞状态的替换端口后,由于端口1012已经对应有vlan15,因此不用重新为端口1012添加vlan15,避免vlan15的流量发生中断,提高流量切换性能。

在上述实施例中,网络设备101-网络设备105对应实例1,且该实例1对应vlan11-vlan20。为了将网络设备101-网络设备105加入到实例1,在一个例子中,可以通过vlan创建实例1,但是其可能导致vlan注册的震荡问题。

以下结合图3所示的应用场景,对vlan注册的震荡问题进行说明。

参见图3所示,网络设备301和网络设备302组成环网,初始状态下,网络设备301和网络设备302没有创建实例1。因此,可以先为网络设备301和网络设备302创建实例1,并生成实例1的树拓扑结构。在创建实例1之后,才可以在树拓扑结构的基础上,通过mvrp协议实现vlan信息的动态注册。

首先,为了在网络设备301和网络设备302创建实例1,则网络设备301和网络设备302的所有端口可以加入到实例1对应的某个vlan,以vlan15为例进行说明。网络设备301可以为端口3011和端口3012配置vlan15,并通过端口3011和端口3012发送携带vlan15的mvrp消息。网络设备302在通过端口3021接收到该mvrp消息后,可以为端口3021添加vlan15,在通过端口3022接收到该mvrp消息后,可以为端口3022添加vlan15。经过上述处理,网络设备301和网络设备302的所有端口就已经添加vlan15。

然后,可以在网络设备301和网络设备302创建实例1,并生成实例1的树拓扑结构,对此实例1的创建过程、树拓扑结构的生成过程不做限制。在该树拓扑结构中,端口3012可以是处于阻塞状态的替换端口。

然后,由于已经在网络设备301和网络设备302创建实例1,并生成实例1的树拓扑结构,在此基础上,可以通过mvrp协议实现vlan信息的动态注册。具体的,在动态注册过程中,由于端口3012处于阻塞状态,因此,网络设备301只为端口3011配置vlan15,并通过端口3011发送携带vlan15的mvrp消息,而不再通过端口3012发送携带vlan15的mvrp消息。网络设备302在通过端口3021接收到该mvrp消息之后,可以为端口3021添加vlan15。

通过上述处理可以看出,没有为端口3012和端口3022注册vlan15,也就是说,需要将vlan15从端口3012/端口3022中删除。由于端口3012/端口3022不具有vlan15,因此基于vlan15创建的实例1失效,即实例1被删除,需要重新在网络设备301和网络设备302创建实例1,并生成实例1的树拓扑结构,以此类推,实例1不断的被创建和删除,从而造成vlan注册的震荡。

针对上述发现,本申请实施例中,在为网络设备301和网络设备302创建实例1时,不再基于vlan信息创建实例1,而是通过cist(commonandinternalspanningtree,公共和内部生成树),为网络设备301和网络设备302创建实例1,这样,由于cist不发生变化,从而使得实例1不会由于vlan信息的变化而失效,实例1不会被删除。在实例1的基础上,在通过mvrp协议实现vlan信息的动态注册时,由于实例1不会反复变化,因此,也就不会造成vlan注册的震荡。

其中,在实例1的基础上,通过mvrp协议实现vlan信息动态注册的过程,也就是上述步骤201-步骤204、上述针对阻塞端口的处理流程,在此不再重复赘述,下面对通过cist,为网络设备创建实例1进行说明。

在一个例子中,网络设备可以通过cist发送多实例建立消息,因此,各网络设备可以通过cist接收到多实例建立消息。网络设备在通过cist接收到多实例建立消息后,从该多实例建立消息中解析出基础vlan,该基础vlan是从多实例对应的多个vlan中选取的;然后,为接收到多实例建立消息的端口添加该基础vlan,并创建该基础vlan对应的实例。

其中,对于cist的建立方式,在此不再赘述,在此cist的基础上,网络设备可以发送用于建立多实例的多实例建立消息(即mvrp消息,为了与注册过程的mvrp消息进行区分,将这个用于建立多实例的mvrp消息称为多实例建立消息)。进一步的,网络设备在发送多实例建立消息之前,还可以从实例1对应的所有vlan中选择一个vlan,将该vlan确定为基础vlan。因此,在网络设备发送的多实例建立消息中,可以携带基础vlan。

这样,网络设备在通过cist接收到多实例建立消息后,可以从多实例建立消息中解析出该基础vlan,为接收到该多实例建立消息的端口添加该基础vlan,并创建该基础vlan对应的实例1,这样,可以成功创建实例1。

其中,在上述过程中已经介绍,网络设备可以配置实例与vlan的对应关系,如实例1与vlan11-vlan20的对应关系,因此网络设备可以从实例1对应的vlan11-vlan20中选择一个vlan,如选择最小的vlan或者选择最大的vlan,对此选择策略不做限制,后续以选择最小的vlan为例进行说明。

以下结合图1c所示的应用场景,对上述创建实例1的过程进行说明。

某个网络设备(如网络设备102)从实例1对应的vlan11-vlan20中选择最小的vlan11,即vlan11是基础vlan。然后,网络设备102在cist发送多实例建立消息,该多实例建立消息可以携带vlan11。而且,cist上的所有网络设备均可以接收到该多实例建立消息。由于cist由网络中的所有网络设备组成,因此所有网络设备均可以接收到多实例建立消息。

网络设备101通过端口1011接收到多实例建立消息后,为端口1011添加vlan11,通过端口1012接收到多实例建立消息后,为端口1012添加vlan11。此外,网络设备101还可以创建vlan11对应的实例1。对于其它网络设备的处理过程,与网络设备101的处理过程类似,在此不再重复赘述。

经过上述处理,各网络设备可以为自身端口添加vlan11,并创建vlan11对应的实例1,最终生成的树拓扑结构可以参见图1b所示。进一步的,在图1b的基础上,由于已经完成vlan11的动态注册,不再对动态注册进行动态注册,针对实例1对应的vlan12-vlan20,可以通过mvrp协议实现vlan信息动态注册的过程,也就是上述步骤201-步骤204,在此不再重新赘述。

基于上述技术方案,本申请实施例中,基于cist创建实例1,由于cist的建立不依赖于vlan,因此,通过cist创建的实例1,也不依赖于vlan,实例1创建之后不会反复变化,可以保持稳定。进一步的,在实例1的基础上,在通过mvrp协议实现vlan信息的动态注册时,由于实例1不会反复变化,因此,也就不会造成vlan注册的震荡。

在上述实施例中,涉及第一端口、第二端口、第三端口和第四端口,命名为第一端口、第二端口、第三端口和第四端口是为了方便区分。第一端口、第二端口、第三端口和第四端口均可以是网络设备的根端口、或者替换端口、或者指定端口、或者边缘端口,对此不做限制。

在上述实施例中,已经详细介绍vlan的注册过程,在vlan的注册过程之后,还可以涉及vlan注销过程,以下对vlan注销过程进行详细说明。

在一个例子中,网络设备在通过第五端口接收到注销消息后,可以从该第五端口中删除该注销消息携带的vlan,即该第五端口不再配置有该vlan。

进一步,当该注销消息是正向注销消息时,若本网络设备是根节点或者中间节点,则网络设备可以在映射表中记录该vlan与该第五端口的对应关系;若本网络设备是叶子节点,则网络设备可以生成携带该vlan的反向注销消息,并通过该第五端口发送该反向注销消息。此外,当该注销消息是反向注销消息时,若本网络设备是根节点或者中间节点,则网络设备可以从映射表中查询出该vlan对应的端口,并通过查询出的该端口发送该反向注销消息。

在一个例子中,当该注销消息是正向注销消息时,若本网络设备是根节点或者中间节点,则网络设备还可以确定处于转发状态的第六端口,并通过该第六端口转发该正向注销消息。若本网络设备是叶子节点,则还可以确定与用户设备连接的边缘端口,并从该边缘端口中删除该正向注销消息携带的vlan。

在一个例子中,当该注销消息是正向注销消息时,若本网络设备是根节点或者中间节点,则网络设备还可以判断与本网络设备连接的下游网络设备是否存在阻塞端口;如果是,则网络设备可以确定本网络设备上与所述阻塞端口连接的第七端口,并从该第七端口中删除该正向注销消息携带的vlan。

在一个例子中,网络设备在通过第八端口接收到正向注销消息后,若该第八端口是阻塞端口,则从第八端口中删除该正向注销消息携带的vlan,并禁止转发该正向注销消息,即不从处于转发状态的端口转发该正向注销消息。

在一个例子中,网络设备在获得反向注销消息时,还可以判断本网络设备是否存在阻塞端口;如果是,则通过所述阻塞端口发送该反向注册消息。

其中,vlan注销过程与上述vlan注册过程类似,不同之处在于:vlan注册过程用于为端口添加vlan,而vlan注销过程用于删除端口的vlan,因此,vlan注销过程的详细流程,也可以参见图1c及相关内容,不再赘述。

基于与上述方法同样的申请构思,本申请实施例中还提出一种vlan注册装置,可以应用于网络设备,如图4所示,为该装置的结构图,该装置包括:

添加模块401,用于在通过第一端口接收到注册消息后,为所述第一端口添加所述注册消息中携带的vlan;处理模块402,用于当所述注册消息是正向注册消息时,若所述网络设备是根节点或者中间节点,在映射表中记录所述vlan与第一端口的对应关系;若所述网络设备是叶子节点,则生成携带所述vlan的反向注册消息,并通过第一端口发送所述反向注册消息;当所述注册消息是反向注册消息时,若所述网络设备是根节点或者中间节点,则从映射表中查询出所述vlan对应的端口,并通过查询出的端口发送所述反向注册消息。

在一个例子中,vlan注册装置还包括(图4中未示出):确定模块,用于当所述网络设备存在根端口和/或替换端口,且不存在指定端口时,确定所述网络设备是叶子节点;或者,当所述网络设备存在根端口和/或替换端口,且存在指定端口,但所述指定端口是连接用户设备的边缘端口时,确定所述网络设备是叶子节点;当所述网络设备存在根端口和指定端口时,确定所述网络设备是中间节点;当所述网络设备只存在指定端口时,确定所述网络设备是根节点。

在一个例子中,所述处理模块402,还用于当所述注册消息是正向注册消息时,若所述网络设备是根节点或者中间节点,则判断与所述网络设备连接的下游网络设备是否存在阻塞端口;如果是,则确定所述网络设备上与所述阻塞端口连接的第三端口,并为所述第三端口添加所述vlan;所述处理模块402,还用于在通过第四端口接收到正向注册消息后,若该第四端口是阻塞端口,则为所述第四端口添加该正向注册消息携带的vlan,并禁止转发该正向注册消息;所述处理模块402,还用于在获得反向注册消息时,判断所述网络设备是否存在阻塞端口;如果是,则通过所述阻塞端口发送所述反向注册消息。

所述处理模块402,还用于通过cist接收到多实例建立消息后,从所述多实例建立消息中解析出基础vlan;其中,所述基础vlan是从多实例对应的多个vlan中选取的;为接收到所述多实例建立消息的端口添加所述基础vlan,并创建所述基础vlan对应的实例。

在一个例子中,所述vlan注册装置还包括(图4中未示出):

删除模块,用于在通过第五端口接收到注销消息后,则从所述第五端口删除所述注销消息中携带的vlan;

所述处理模块402,还用于当所述注销消息是正向注销消息时,若所述网络设备是根节点或者中间节点,则在映射表中记录所述vlan与所述第五端口的对应关系;若所述网络设备是叶子节点,则生成携带所述vlan的反向注销消息,并通过所述第五端口发送所述反向注销消息;当所述注销消息是反向注销消息时,若所述网络设备是根节点或者中间节点,则从映射表中查询出所述vlan对应的端口,并通过查询出的端口发送所述反向注销消息。

本申请实施例提供的网络设备,从硬件层面而言,其硬件架构示意图具体可以参见图5所示。可以包括:机器可读存储介质和处理器,其中:

机器可读存储介质:存储指令代码。

处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的vlan注册操作。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1