具体实施方式
本发明实施例提供一种基于流的VPLS实现技术,可以根据用户报文的某些特征将其分类到不同的数据流,并将该数据流重定向到为其分配的VSI。这里用户报文的特征可以包括但不限于:MAC(MediumAccess Control,媒体接入控制)地址、以太网类型或优先级以及IP五元组信息等。其中,IP五元组信息包括:IP地址,IP头中的Protocol,IP服务等级,TCP/UDP的源端口、目的端口,ICMP(Internet Control Message Protocol,网际控制消息协议)的Type/Code(类型/码)等。
下面结合附图对本发明实施例进行详细描述。
为了实现基于流的VPLS多实例交换,本发明实施例中在PE设备上预先进行如下处理:
(1)在某一AC侧接口上配置ACL(本实施例中将该接口称为主接口),用于基于用户报文的特征将从该AC侧接口进入的流进行分类。ACL可根据报文中的以下信息之一或任意组合进行分类:目的MAC地址、源MAC地址、以太网类型、UP(User Priority,用户优先级)、源IP地址、目的IP地址、三层协议、DSCP(Differentiated Services Code Point,差分服务代码点)、TTL(TimeTo Live,生存时间)、TCP/UDP源端口、TCP/UDP目的端口、ICMP Type/Code。
(2)为每个类别的流分别配置VSI,以及相应的转发表,不同类别的流对应不同的VSI;
(3)对应主接口配置多个虚拟接口,在每个虚拟接口上绑定相应类别的流所对应的VSI。
当PE设备的主接口从AC侧接收到报文后,执行如图2所示的流程:
步骤201,通过ACL将报文分类并映射到对应的虚拟接口;
步骤202,根据该虚拟接口所绑定的VSI确定对应的转发表,根据确定出的转发表匹配不同的转发表项转发该报文。
其中,步骤202的具体实现可以包括:根据虚拟接口所绑定的VSI获取该VSI对应的VPNID(VPN编号),并根据该VPNID和报文的目的MAC地址查VSI对应的目的MAC地址表(即查询目的MAC地址表中对应该VPNID是否存在该报文的目的MAC地址);如果命中目的MAC地址表项,则根据命中的目的MAC地址表项转发该报文;如果未命中目的MAC地址表项,则根据该VPNID查广播表,并根据匹配到的广播表项转发该报文。
通常,在报文处理过程中还要进行MAC地址学习。针对上述流程,PE设备在接收到报文,通过ACL对报文分类并映射到对应的虚拟接口,以及根据虚拟接口所绑定的VSI获取该VSI对应的VPNID后,可进一步根据该VPNID和该报文的源MAC地址查该VSI对应的源MAC地址表(即查询源MAC地址表中对应该VPNID是否存在该报文的源MAC地址);如果命中源MAC地址表项,则不必进行MAC地址学习;如果未命中源MAC地址表项,则根据该VPNID和源MAC地址在主接口上进行该VSI的MAC地址学习。
进一步的,为了通过主接口处理其它流,还可在主接口上绑定缺省VSI。这样,当PE设备的主接口接收到报文后,若通过ACL未能匹配报文,则报文不会被分类并映射到对应的虚拟接口,此时根据该主接口上绑定的缺省VSI确定对应的转发表,根据确定出的转发表匹配相应的转发表项转发所述报文。
为了更清楚的说明本发明实施例的实现过程,下面以图3所示的典型应用为例,并结合图2,对本发明实施例进行更详细的说明。
如图3所示,PE1通过端口g1/1/1与CE1连接。假设用户侧有以SIP(源IP地址)区分的3条流,该3条流的源IP地址分别为10.5.x.x,10.6.x.x,10.7.x.x。需要配置的VSI个数与流的个数相同,3个VSI分别表示为VSI1、VSI2、VSI3。现希望SIP=10.5.x.x的报文进VSI1,SIP=10.6.x.x的报文进VSI2,SIP=10.7.x.x的报文进VSI3。
为实现上述目的,在PE1设备上进行如下配置:
(1)在PE1设备上与CE1连接的端口g1/1/1(本实施例中称为主接口)上配置与VSI个数相同的3个子接口g1/1/1.1、g1/1/1.2和g1/1/1.3(这3个接口为虚拟接口),分别绑定VSI1、VSI2、VSI3。本实施例中为了使VPLS广播源端口过滤功能有效,将所有AC侧的PWID均设为0,以防止报文从源端口返回,并将报文发往PW(虚连接)侧。
(2)进一步的,在允许上述3种流之外的流进入该AC侧接口的情况下,还可在主接口g1/1/1上配置缺省VSI,假设为VSI0。所有需要映射VSI的流之外的数据报文均使用缺省VSI。缺省VSI的AC侧PWID也设为0。
(3)在PE1上配置ACL规则以区分不同的流并通过重定向的方式映射到对应的VSI。ACL匹配报文的源IP地址,将相应的IP地址映射到对应的VSI,如,将SIP=10.5.x.x的报文重定向到VSI1,将SIP=10.6.x.x的报文重定向到VSI2,以此类推。
根据以上配置,以SIP=10.5.x.x的流为例,其报文的处理流程可如图4所示,包括:
步骤401,从g1/1/1进入的SIP=10.5.x.x的报文经过NP(网络处理器)转发芯片进行ACL匹配动作后重定向到VSI1。
步骤402,获取VSI1对应的VPNID,使用VPNID和报文的DMAC(目的MAC地址)查VSI1对应的DMAC表,若DMAC表命中,则转入步骤403,否则转入步骤404。
步骤403,按照DMAC表结果转发报文,转发过程与常规的VPLS单播相同。然后转入步骤505。
步骤404,根据VPNID查广播表,并根据广播表广播该报文。报文广播过程与常规的VPLS广播过程相同。然后转入步骤405。
在广播过程中,为了防止报文从源端口返回以及将报文发往PW侧,需要对二层转发进行源端口过滤。二层转发源端口过滤可使用两种方式:发往AC侧时,使用VPNID+端口号过滤,当目的VPNID、目的端口号与源VPNID、源端口号相同时过滤报文,防止报文从源端口返回;发往PW侧时,使用PWID过滤,由于AC侧PWID为特殊值0,从而发往PW的报文不会被过滤。
步骤405,使用VPNID和报文的SMAC(源MAC地址)查VSI对应的SMAC表,若SMAC表未命中,则转入步骤406,否则转入步骤407。
步骤406,使用VPNID和SMAC在主接口上进行VSI的MAC地址学习。由于报文从主接口进入,则MAC学习在主接口上,这样反方向的报文会直接从主接口发送。
步骤407,不需要MAC地址学习。
此后,报文经过PW到达PE2后,转发过程与常规的VPLS转发相同。
上述流程中,查VSI对应的DMAC表以及根据查询结果进行相应处理的步骤,与查VSI对应的SMAC表以及根据查询结果进行相应处理的步骤,在具体实现时没有严格的时序要求。
上述流程中,PW信令协议配置处理与常规的VPLS相同。虽然使用ACL重定向数据流所属的VSI,但由于AC侧使用虚拟子接口绑定了VSI,所以可以使用LDP(label distribution protocol,标签分发协议)或者BGP(BorderGateway Protocol,边界网关协议)方式的VPLS协商VSI的状态并创建PW。
本发明的上述实施例,虽然以路由口为例进行了说明,但若端口为交换口,也同样适用,只要将路由子接口(即上述的虚拟接口,或称虚拟路由口)换成VLAN虚接口即可。此时,需要配置该交换口为Trunk(汇聚)口,同时Trunk多个VLAN,每个VLAN绑定一个VSI。在该交换口上配置ACL规则分类用户数据流,并重定向到相应的VSI。达到的效果与使用路由子接口相同。
通过本发明的上述实施例可以看出,通过ACL可以匹配报文的IP五元组、MAC地址、以太网类型等字段,用于用户流的分类,PE设备可通过配置虚拟接口并绑定对应的VSI,划分用户报文的VPN实现基于流的VPLS处理。VPN的划分脱离了对端口和VLAN资源的依赖,仅受限于设备能够支持的ACL的数量,这个数量一般在几十K甚至上百K。使单台设备能够接入的用户和业务更多,为运营商网络节约了成本。另外,支持本发明技术的PE设备不需要对下游CE设备进行特殊配置,有利于运营商网络的扁平化管理,节约管理成本。对现有VPLS方案改动少,可以在相同接口上同时部署普通的VPLS。
基于相同的技术构思,本发明实施例还提供了一种能够应用于上述流程的PE设备。
参见图5,为本发明实施例提供的PE设备的结构示意图。如图所示,该PE设备可包括:
配置模块501,用于配置ACL以对报文进行分类,各类别报文对应不同的VSI,在PE设备与用户侧设备连接的端口上配置不同的虚拟接口,在不同的虚拟接口上绑定不同的VSI。其中,所述与用户侧设备连接的端口为路由口,所述虚拟接口为虚拟路由子接口;或者,所述与用户侧设备连接的端口为交换口,所述虚拟接口为VLAN虚接口;
报文分类模块502,用于当与用户侧设备连接的端口接收到报文后,通过ACL对报文进行分类并将不同类别的报文对应到不同的虚拟接口;
报文转发模块503,用于根据该虚拟接口所绑定的VSI确定对应的转发表,根据确定出的转发表匹配不同的转发表项转发所述报文。
上述PE设备中,报文转发模块503可根据虚拟接口所绑定的VSI获取该VSI对应的虚拟专用网络VPN编号,并使用该VPN编号和所述报文的目的媒体接入控制MAC地址查所述VSI对应的目的MAC地址表;如果命中目的MAC地址表项,则根据命中的目的MAC地址表项转发所述报文;如果未命中目的MAC地址表项,则根据所述VPN编号查广播表项,并根据匹配的广播表项转发所述报文。
上述PE设备中,报文转发模块503还可当转发报文过程中进行源端口过滤时,用户侧源端口根据VPN编号和端口号进行过滤,PW侧源端口根据PWID进行过滤;其中,所有接入电路AC和虚拟接口的PWID设置为0。
上述PE设备中,还可进一步包括地址学习模块504。该模块可在本设备与用户侧设备连接的端口接收到报文,并通过ACL对报文进行分类并将不同类别的报文对应到不同的虚拟接口后,根据虚拟接口所绑定的VSI获取该VSI对应的VPN编号,并使用该VPN编号和所述报文的源MAC地址查所述VSI对应的源MAC地址表;如果命中源MAC地址表项,则放弃MAC地址学习;如果未命中源MAC地址表项,则根据VPN编号和源MAC地址,在该端口上进行MAC学习。
上述PE设备中,配置模块501还可在与用户侧设备连接的端口上绑定缺省VSI;相应的,报文转发模块503还可当与用户侧设备连接的端口接收到报文后,若通过ACL未能将报文映射到对应的虚拟接口,则根据该端口上绑定的缺省VSI确定对应的转发表项,根据确定出的转发表项转发所述报文。
上述PE设备中,配置模块501根据报文的特征配置ACL,其具体配置依据可如前所述,在此不再赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。