发明内容
本发明提供了一种VPLS中的网络隔离方法及其装置,用以实现在VPLS实例内进行灵活的接入控制。
本发明提供的VPLS中的网络隔离方法,其中,PE上配置有本地隔离组,其成员包括连接于该PE设备且属于同一VPLS实例但需要彼此隔离的AC,该方法包括:
PE设备从AC侧接收到报文后,根据转发表查找该报文的出接口;
PE设备判断该报文的出接口AC与该报文的入接口AC是否属于同一本地隔离组,若是则放弃从该出接口转发该报文,否则从该出接口转发该报文。
本发明提供的PE设备,包括:
隔离组配置模块,用于配置本地隔离组,其成员包括连接于该PE设备且属于同一VPLS实例但需要彼此隔离的AC;
转发处理模块,用于在本设备从AC侧接收到报文后,根据转发表查找该报文的出接口,判断该报文的出接口AC与该报文的入接口AC是否属于同一本地隔离钮,若是则放弃从该出接口转发该报文,否则从该出接口转发该报文。
本发明的有益技术效果包括:
在PE设备上配置本地隔离组,将PE设备本地的属于同一VPLS实例但又需要隔离的AC加入同一本地隔离组,这样,在进行报文转发处理时,可利用VPLS的源过滤原理,在该报文的出接口AC与该报文的入接口AC属于同一本地隔离组时,限制该报文的转发,从而实现了PE设备本地AC间的隔离。本发明实施例在VPLS网络中实现了整系统的接入侧隔离,支持本地AC之间的隔离,拓扑了VPLS的业务使用,使得VPLS域内的用户接入更加灵活。
本发明提供的另一种VPLS中的网络隔离方法,其中,PE设备上配置有全局隔离组,其成员包括连接于该PE设备和对端PE设备,且属于同一VPLS实例但需要彼此隔离的AC,该方法包括:
源PE设备从AC侧接收到报文并根据转发表查找到PW侧的出接口后,在该报文中封装VC标签和用于标识报文来源AC的隔离组标签,并将封装有VC标签和隔离组标签的报文从该出接口转发;
目的PE设备从PW接收到封装有VC标签和隔离组标签的报文后删除VC标签和隔离组标签,根据转发表查找报文的出接口,并判断该报文的出接口AC与所述隔离组标签所标识的AC是否属于同一全局隔离组,若是则放弃从该出接口转发该报文,否则从该出接口转发该报文。
本发明提供的另一种PE设备,包括:
隔离组配置模块,用于在本设备上配置全局隔离组,其成员包括连接于本设备和对端PE设备,且属于同一VPLS实例但需要彼此隔离的AC;
第一转发处理模块,用于在本设备从AC侧接收到报文并根据转发表查找到PW侧的出接口后,在该报文中封装VC标签和用于标识报文来源AC的隔离组标签,并将封装有VC标签和隔离组标签的报文从该出接口转发;
第二转发处理模块,用于在本设备从PW接收到封装有VC标签和隔离组标签的报文后删除VC标签和隔离组标签,根据转发表查找报文的出接口,并判断该报文的出接口AC与所述隔离组标签所标识的AC是否属于同一全局隔离组,若是则放弃从该出接口转发该报文,否则从该出接口转发该报文。
本发明的有益技术效果包括:
在本端和对端PE设备上分别配置全局隔离组,将本端和对端PE设备上属于同一VPLS实例但又需要隔离的AC加入同一本地隔离组,这样,在进行报文转发处理时,可利用VPLS的源过滤原理,在报文接收端PE设备上,当该报文的出接口AC与该报文在发送端PE的入接口AC属于同一全局隔离组时限制该报文的转发,从而实现了PE设备本端和远端AC间的隔离。本发明实施例在VPLS网络中实现了整系统的接入侧隔离,支持本地AC之间的隔离以及远端AC间的隔离,拓扑了VPLS的业务使用,使得VPLS域内的用户接入更加灵活。
具体实施方式
本发明实施例提供了一种在VPLS整网范围内的隔离方法,包括本地接入AC与远端接入AC之间的隔离,实现了在VPLS实例内灵活的接入控制。
下面结合附图对本发明实施例进行详细描述。
参见图1,为本发明实施例一提供的VPLS中的本地AC间的网络隔离实现流程示意图。PE设备上预先配置有本地隔离组,其成员包括连接于该PE设备且属于同一VPLS实例但需要彼此隔离的AC。该流程包括:
步骤101,当该PE设备的AC侧入接口接收到单播报文后,PE设备根据MAC地址转发表查找该报文的出接口;
步骤102,若查找到出接口,则转入步骤103,否则转入步骤106;
步骤103,PE设备判断该出接口AC与该报文的入接口AC是否属于同一本地隔离组,若属于同一本地隔离组,则转入步骤104,否则转入步骤105;
步骤104,PE设备放弃从该出接口转发该报文,如丢弃该报文;
步骤105,PE设备从该出接口转发该报文;
步骤106,PE设备根据广播转发表查找该报文的出接口,即查找该入接口所属实例内的其它接口,然后将报文复制到查找到的出接口,并判断报文的出接口AC与该报文的入接口AC是否属于同一本地隔离组,若属于同一本地隔离组,则转入步骤107,否则转入步骤108;
步骤107,PE设备放弃从该出接口转发该报文,如丢弃复制到该出接口的报文;
步骤108,PE设备从该出接口转发该报文,如将复制到该出接口的报文从该接口转发。
如果PE设备接收到的是广播报文,则按照上述流程的步骤106~108执行,即,针对复制到每个出接口的报文,都逐一判断该报文的出接口AC与该报文的入接口AC是否属于同一本地隔离组,并根据判断结果进行相应处理。
为更清楚的说明本发明实施例一的实现过程,下面结合附图2所示的组网结构进行详细说明。
图2示出了一种VPLS组网结构,其中,PE1的AC侧连接有多个CE,对应存在多个AC。在VPLS实例中,有时需要对某些特定的接入AC进行相互隔离,针对这种情况,可以创建一个本地隔离组并为该本地隔离组分配隔离组号,将需要彼此隔离的接入AC加入到同一本地隔离组中,如图2中将连接CE10的AC1、连接CE11的AC2和连接CE12的AC3加入到本地隔离组1中。一个VPLS实例内允许创建多个本地隔离组,本地隔离组号在一个VPLS实例内有效,不同VPLS实例可以使用相同的本地隔离组号,一个接入AC只能加入到该AC所属实例的某个本地隔离组中,且一个接入AC只能加入到一个本地隔离组。处于同一个本地隔离组内的接入AC,VPLS控制层为其分配相同的LINK-ID(该ID唯一的标识了VPLS实例内的接入设置,用户侧的AC和网络侧的PW都有唯一的LINK-ID,此为协议现有实现,不再赘述)。
基于上述本地隔离组,本发明实施例利用VPLS的源过滤原理,限制本地隔离组内的报文转发,如图2所示:
从CE10进入的未知单播报文或广播报文,首先触发VPLS转发,并根据入接口属性为报文指定LINK-ID,用以标识报文的接入AC来源。若MAC地址转发表未命中出接口,则按照现有协议会在VPLS实例内广播,此时报文会通过广播转发表向实例内所有接入AC和网络侧PW进行复制。在下行的AC出接口复制时,会将出接口AC的LINK-ID和最初指定给报文的LINK-ID进行比较,若下行出接口的LINK-ID和上行AC的LINK-ID相同,则表明报文入接口AC和出接口AC处于同一个本地隔离组,此时执行源过滤,报文无法从该AC出接口转发出去。
从CE10进入的已知单播报文,若触发VPLS查找后目标MAC地址能够命中,则比较MAC地址转发表中该报文的出接口的LINK-ID与入接口AC的LINK-ID,若入接口AC的LINK-ID和MAC表中出接口的LINK-ID相同,则执行VPLS源过滤,报文直接就被丢弃了。对于从本地隔离组的AC侧学习到的MAC地址,其MAC地址转发表中的LINK-ID都设置成相同的值,这样对于单播报文,比如从CE12学习到MAC12,从本地隔离组1内的一个AC入接口进入的报文其目的MAC地址为MAC12时,由于入接口AC(AC1)的LINK-ID和MAC表中的LINK-ID相同,因此执行VPLS源过滤,报文直接就被丢弃了。
对于从非本地隔离组进入的单播报文或广播报文,入接口AC的LINK-ID和本地隔离组内的任意一个AC出接口的LINK-ID都不相同,因此单播报文和广播报文都不会被过滤。
对于从本地隔离组进入且出接口为普通AC出接口的报文,本地隔离组内入接口AC的LINK-ID和普通AC出接口的LINK-ID都不相同,因此单播报文和广播报文都不会被过滤。
通过本发明实施例一的上述描述可以看出,在PE设备上配置本地隔离组,将PE设备本地的属于同一VPLS实例但又需要隔离的AC加入同一本地隔离组,这样,在进行报文转发处理时,可利用VPLS的源过滤原理,在该报文的出接口与该报文的入接口属于同一本地隔离组时,限制该报文的转发,从而实现了PE设备本地AC间的隔离。本发明实施例在VPLS网络中实现了整系统的接入侧隔离,支持本地AC之间的隔离,拓扑了VPLS的业务使用,使得VPLS域内的用户接入更加灵活。
参见图3,为本发明实施例二提供的VPLS中远端AC间的网络隔离实现流程示意图。PE设备(此处为PE1)和与其具有PW连接的对端PE设备(此处为PE2)上预先配置有全局隔离组,其成员包括分别连接于PE1和PE2,且属于同一VPLS实例但需要彼此隔离的AC。以PE1向PE2发送单播报文为例,如图所示,该流程可包括:
步骤301,PE1从AC侧接收到单播报文后,根据MAC地址转发表查找出接口。
步骤302,若查找到出接口,则转入步骤303,否则转入步骤304。
步骤303,此流程中由于PE1向PE2发送报文,因此若查找到出接口,则该出接口为PE1上PW侧的接口。PE1将VC标签和用于标识该报文来源AC的隔离组标签封装在该报文中,并从该出接口发送到PW。具体实施时,可将隔离组标签封装在VC标签之后。
步骤304,PE1根据广播转发表查找出接口(即该入接口所属实例内的其它接口),该出接口通常包括PE1上的AC侧接口和PW侧接口。对于PW侧出接口,PE1将VC标签和用于标识该报文来源AC的隔离组标签封装在该报文中,并从该出接口发送到PW;对于AC侧出接口,PE1判断该出接口AC与该报文的入接口是否属于同一全局隔离组,若属于同一全局隔离组,则放弃从该出接口转发该报文,否则从该出接口转发该报文。
步骤305,报文从PE1的PW侧接口通过PW发送到PE2后,PE2的PW侧接口接收到报文弹掉报文中的AC标签和隔离组标签,根据VC标签找到VSI实例,根据隔离组标签获取报文所属的全局隔离组,然后根据MAC地址转发表查找出接口。
步骤306,若查找到出接口,则转入步骤307,否则转入步骤310;
步骤307~309,PE2判断该报文的出接口AC与该报文的来源AC是否属于同一全局隔离组(即根据隔离组标签所获取报文所属的全局隔离组是否与该出接口AC所在的全局隔离组相同),若是则放弃从该出接口转发该报文,否则从该出接口转发该报文。
步骤310~312,PE2根据广播转发表查找出接口,即查找该报文所属实例内的其它接口,PE2判断该报文的出接口AC与该报文的来源AC是否属于同一全局隔离组(即根据隔离组标签所获取报文所属的全局隔离组是否与该出接口AC所在的全局隔离组相同),若是则放弃从该出接口转发该报文,否则从该出接口转发该报文。
如果PE1接收到的是广播报文,则按照上述流程的步骤304执行,PE2的处理流程与上述流程中的相应步骤相同,在此不再赘述。
为更清楚的说明本发明实施例二的实现过程,下面结合附图4所示的组网结构进行详细说明。
图4示出了一种VPLS组网结构,其中,PE1和PE2的AC侧分别连接有多个CE,对应存在多个AC。在所有创建了相同VPLS实例的各个PE设备上创建全局隔离组,针对每个实例分配隔离组号,此时全局隔离组在整个VPLS域的同一个实例内唯一,所有PE设备的全局隔离组号都相同,将不同PE设备上的接入AC加入到全局隔离组中,实现跨设备的本地AC和远程AC之间的隔离。值得注意的是,全局隔离组号只是在VPLS实例内唯一,不同实例的全局隔离组号可以相同。
在整系统配置了全局隔离组后,VPLS控制层面为全局隔离组分配全局的LINK-ID,即所有PE设备上加入该全局隔离组的AC接口分配的LINK-ID相同,为了保证这个LINK-ID,可以在所有PE设备上执行相同的全局隔离组号到LINK-ID的映射,无论在哪一个设备,只要全局隔离组号相同则得到的LINK-ID就相同。全局隔离组号可以在控制层面静态指定。如图4所示,在PE1上和PE2上分别建立全局隔离组1,其成员AC包括:PE1侧连接CE10的AC11、连接CE11的AC12和连接CE12的AC13,以及PE2侧连接CE20的AC21、连接CE21的AC22和连接CE22的AC23。
在创建了VPLS实例的PE设备上,全局隔离组内的成员若包含本地AC,则本地AC之间的隔离与前述实施例一描述的处理方式相同。同时,为了将本地AC的隔离组信息带到远端PE上,需要为全局隔离组分配VPLS网络系统内VPLS实例内唯一的隔离组标签(Separate Label,隔离组标签),该标签将和VC标签一起封装到用户数据报文中,如图5所示,可封装在VC标签之后。
从CE10进入PE1的未知单播报文或广播报文,首先触发VPLS转发,并根据入接口属性为报文指定LINK-ID,用以标识报文的接入AC来源,此时报文来自于全局隔离组AC1,向公网侧广播时携带隔离组标签(SeparateLABEL)。MAC地址未命中时会在VPLS实例内广播,此时报文会通过广播转发表向实例内所有接入AC和网络侧PW进行复制。在下行的AC出接口复制时,会将出接口AC的LINK-ID和最初指定给报文的LINK-ID进行比较,当下行出接口的LINK-ID和上行AC的LINK-ID相同时,表明报文入接口AC和出接口AC处于同一个全局隔离组,此时执行源过滤,报文无法从该AC出接口转发出去。公网侧PW的LINK-ID和全局隔离组的LINK-ID不相同,不被过滤,同时由于源接口为全局隔离组接口,则封装报文时在VC标签后增加隔离组标签(Separate LABEL)。
从CE10进入PE1的单播报文,若触发VPLS查找后目的MAC地址能够命中,则比较MAC地址转发表中的LINK-ID与入接口AC的LINK-ID。对于从全局隔离组的AC侧学习到的MAC地址,其MAC地址转发表中的LINK-ID都设置成相同的值,这样对于单播报文,比如从CE12学习到MAC12,从全局隔离组内的一个AC入接口进入的报文其目的MAC为MAC12时,由于入接口AC的LINK-ID和MAC地址转发表中的LINK-ID相同,因此执行VPLS源过滤,报文直接就被丢弃了。若目的MAC地址为从远端PE学习到的MAC地址,其MAC地址转发表中的LINK-ID为普通PW的LINK-ID,不会被过滤,由于源接口为全局隔离组,封装报文时在VC标签后增加隔离组标签(SeparateLABEL)。
从公网侧进入PE2的报文,分为携带VC标签、隔离组标签(SeparateLABEL)的报文和只携带VC标签的报文。对于只携带VC标签的报文,弹掉VC标签后按照原有流程进行VPLS MAC查找;对于携带VC标签和隔离组标签(Separate LABEL)的报文,弹掉两个标签后该报文被标识为公网侧全局隔离组的报文,之后执行VPLS MAC查找,若MAC地址不能命中则会在VPLS实例内广播,由于是公网侧进入的报文,不会被广播到公网侧,此为现有VPLS水平分割功能,广播到用户侧时,若PE2的用户侧接入AC为该全局隔离组内的AC,则被过滤,若是其他普通AC则正常转发出去。若MAC地址能够命中,则判断目的MAC地址出接口属性,若MAC地址来自于该全局隔离组,则过滤该报文,否则按照AC属性封装报文后转发出去。
通过本发明实施例二的上述描述可以看出,在本端和对端PE设备上分别配置全局隔离组,将本端和对端PE设备上属于同一VPLS实例但又需要隔离的AC加入同一本地隔离组,这样,在进行报文转发处理时,可利用VPLS的源过滤原理,在报文发送端PE设备上,当该报文的出接口与该报文的入接口属于同一全局隔离组时限制该报文的转发,在报文接收端PE设备上,当该报文的出接口与该报文在发送端PE的源AC属于同一全局隔离组时限制该报文的转发,从而实现了PE设备本端和远端AC间的隔离。本发明实施例在VPLS网络中实现了整系统的接入侧隔离,支持本地AC之间的隔离以及远端AC间的隔离,拓扑了VPLS的业务使用,使得VPLS域内的用户接入更加灵活。
基于相同的技术构思,本发明实施例还提供了一种可应用于上述流程的PE设备。
参见图6,为本发明实施例三提供的PE设备的结构示意图,该PE设备可应用于上述实施例一的流程。该PE设备可包括:
隔离组配置模块601,用于配置本地隔离组,其成员包括连接于该PE设备且属于同一VPLS实例但需要彼此隔离的AC;
转发处理模块602,用于在本设备从AC侧接收到报文后,根据转发表查找该报文的出接口,判断该报文的出接口AC与该报文的入接口AC是否属于同一本地隔离组,若是则放弃从该出接口转发该报文,否则从该出接口转发该报文。
上述PE设备,隔离组配置模块601为同一本地隔离组的成员AC配置相同的LINK-ID,为不同本地隔离组的成员AC配置不同的LINK-ID;相应的,转发处理模块602在本设备接收到报文后,将该报文的入接口的LINK-ID指定给该报文。转发处理模块602在判断该报文的出接口AC与该报文的入接口AC是否属于同一本地隔离组时,可判断该报文的出接口的LINK-ID是否与指定给该报文的LINK-ID相同,若相同,则表明该报文的出接口AC与该报文的入接口AC属于同一本地隔离组,否则表明不属于同一本地隔离组。
上述PE设备,转发处理模块602可在本设备接收到的报文为单播报文时根据MAC地址转发表查找出接口,若未查找到出接口,则根据广播转发表查找出接口,在本设备接收到的报文为广播报文时根据广播转发表查找出接口;以及,在根据广播转发表查找到出接口后,将报文复制到查找到的出接口,在判断该报文的出接口AC与该报文的入接口AC属于同一本地隔离组时,将复制到出接口的报文从该出接口删除。
上述PE设备中,隔离组配置模块602可在一个VPLS实例中配置一个或多个本地隔离组,并使连接于所述PE的一个AC仅加入其所属VPLS实例中的一个本地隔离组。隔离组配置模块602还可为每个本地隔离组在其所属VPLS实例内配置唯一标识。
参见图7,为本发明实施例四提供的PE设备的结构示意图,该PE设备可应用于上述实施例二的流程。该PE设备可包括:
隔离组配置模块701,用于在本设备上配置全局隔离组,其成员包括连接于本设备和对端PE设备,且属于同一VPLS实例但需要彼此隔离的AC;
第一转发处理模块702,用于在本设备从AC侧接收到报文并根据转发表查找到PW侧的出接口后,在该报文中封装VC标签和用于标识报文来源AC的隔离组标签,并将封装有VC标签和隔离组标签的报文从该出接口转发;具体的,第一转发处理模块702可将隔离组标签封装于VC标签之后;
第二转发处理模块703,用于在本设备从PW接收到封装有VC标签和隔离组标签的报文后删除VC标签和隔离组标签,根据转发表查找报文的出接口,并判断该报文的出接口AC与所述隔离组标签所标识的AC是否属于同一全局隔离组,若是则放弃从该出接口转发该报文,否则从该出接口转发该报文。
上述PE设备中,隔离组配置模块701可为同一全局隔离组的成员AC配置相同的LINK-ID,为不同全局隔离组的成员AC配置不同的LINK-ID。相应的,第二转发处理模块703可在本设备从PW接收到封装有VC标签和隔离组标签的报文后,为该报文指定与所述隔离组标签对应的LINK-ID。第二转发处理模块703在进行是否属于同一全局隔离组判断时,可判断报文的出接口的LINK-ID是否与本设备指定给该报文的LINK-ID相同,若相同,则表明该报文的出接口AC与所述隔离组标签所标识的AC属于同一全局隔离组,否则表明不属于同一全局隔离组。
上述PE设备中,第二转发模块702具体用于,根据MAC地址转发表查找出接口,若未查找到出接口,则根据广播转发表查找报文的出接口,并将报文复制到查找到的出接口;若判断该报文的出接口AC与所述隔离组标签所标识的AC属于同一全局隔离组,则将复制到该出接口的报文从该出接口删除。
上述PE设备中,隔离组配置模块701所配置的全局隔离组中还包括同一PE设备上的多个AC。相应的,第一转发处理模块702具体用于,当接收到的报文为单播报文且根据MAC地址转发表未查找到该报文的出接口时,根据广播转发表查找出接口,并将报文复制到查找到的出接口;若根据广播转发表查找到的出接口包括本设备的出接口,则源PE设备判断该报文在源PE设备上的出接口AC与该报文的入接口AC是否属于同一全局隔离组,若是则删除复制到该出接口上的报文,否则从该出接口转发复制到该出口的报文。
上述PE设备中,隔离组配置模块701可为同一全局隔离组的成员AC配置相同的LINK-ID,为不同全局隔离组的成员AC配置不同的LINK-ID。相应的,第一转发处理模块702可从AC侧接收到报文后,将该报文的入接口的LINK-ID指定给该报文。第一转发处理模块在进行是否属于同一全局隔离组判断时,可判断报文的出接口的LINK-ID是否与指定给该报文的LINK-ID相同,若相同,则表明该报文的出接口AC与该报文的入接口AC属于同一全局隔离组,否则表明不属于同一全局隔离组。
上述PE设备中,隔离组配置模块701可在一个VPLS实例中配置一个或多个全局隔离组。隔离组配置模块701还可为每个全局隔离组在其所属VPLS实例内配置唯一标识。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。