虚拟专用局域网业务报文处理方法及系统
技术领域
本发明涉及局域网技术,特别涉及虚拟专用局域网技术。
背景技术
虚拟专用局域网业务VPLS(Virtual Private LAN Service)是一种基于多协议标签交换MPLS(Multiple Protocol Label Switch)和以太网技术的二层虚拟专用网络VPN(Virtual Private Network)技术,可以使用户从多个地理位置分散的点同时接入网络,相互访问,就像这些地理位置分散的用户直接接入到局域网一样。
QinQ(tag in tag)协议基于802.1Q,这个协议最初提出的主要目的是为了屏蔽用户内部使用的虚拟局域网VLAN(Virtual Local Area Network),从而减少服务提供商网络上的VLAN数目,它的核心思想就是只分配给每个用户一个公网VLAN号,当带标签tag的用户报文进入服务提供商的核心网络时,都统一的再强行加上这个新分配的公网VLAN号,用这个新的公网VLAN号来穿过核心网络。
交换机在处理二层数据包的时候一般都采用集成ASIC芯片来完成,也就是转发流程都由硬件自动完成,但是不易实现一些比如VPLS的高级功能。为了要交换模块能够实现一些普通ASIC芯片不支持的二层特殊功能,VPLS就必须对数据进行特殊处理,保证端口收到一个不属于本端口VLAN的二层数据包依然能够处理。另外,随着交换路由一体化的推进,很多功能需要在原有的架构体系上进行优化处理,也会面临很多类似的问题,而这些问题不能通过更换芯片来解决,需要软件层面进行特殊处理。
举例如下,参见图1,从VPN用户一的边缘设备CE1发送数据给VPN用户二的边缘设备CE2,其携带的用户标签tag为100,而实际服务提供商的边缘设备一PE1上连接用户一边缘设备CE1的端口所属VLAN为200,当CE1数据发送到PE1时,PE1的交换芯片的接口由于收到VLAN tag为100的数据,找不到本地对应的VLAN,会直接将该报文丢弃。
而VPLS的服务特点是,当用户使用VPLS业务,接入方式为以太,那么PE1就应该不关心用户标签tag,直接将CE1发送的数据通过PW(Pseudo Wire伪线)透传给服务提供商的边缘设备二PE2,然后发送给CE2。如果因为携带的tag与接口所属VLAN不一致就被丢弃,在正常的二层数据转发处理上是合理的,但是由于是VPLS业务的需求,就不合理。
发明内容
本发明的目的就是克服目前发送报文中所携带的tag与服务提供商的边界路由器上的port所属VLAN不一致就会被丢弃的缺点,提供一种虚拟专用局域网业务报文处理方法及设备。
本发明解决其技术问题,采用的技术方案是,虚拟专用局域网业务报文处理方法,其特征在于,包括以下步骤:
虚拟专用局域网业务报文处理方法,其特征在于,包括以下步骤:
步骤1、用户边缘CE设备接入服务提供商边缘PE设备,选择VPLS业务;
步骤2、所述PE设备在连接CE设备的三层VLAN接口配置绑定VPLS实例,并判断所述CE设备接入方式是否为以太端口,若是则进入步骤3,否则进入正常处理流程;
步骤3、所述PE设备查询到接收该CE设备数据的物理端口的端口号,并将该端口设置为QinQ模式;
步骤4、所述PE设备接收到所述CE设备发送的报文,在该报文二层头部添加一层tag,该tag值为该端口号对应的虚拟局域网号VLAN ID;
步骤5、所述PE设备通过VPLS业务数据转发模块发送该报文。
进一步的,步骤2中,所述VPLS实例包括指定与之建立伪线(PW,Pseudo Wire)的对端服务提供商边缘设备(PE,Provider Edge)地址及其VPN ID,VPLS实例是指以太网桥功能实体,根据MAC与VLAN tag进行二层报文的转发。
具体的,步骤3中,所述PE设备查询到接收该CE设备数据的物理端口的端口号,并将该端口设置为QinQ模式的具体方法为:
步骤31、查询获取到接收CE设备数据的物理端口的VLAN ID;
步骤32、通过该VLAN ID获取对应物理端口的端口号;
步骤33、将该端口设置为QinQ模式。
进一步的,步骤31包括如下具体步骤:
步骤311、判断接收CE设备数据的接口是否为VLAN接口,若是则进入步骤312,若不是则进入步骤314;
步骤312、获取该接口名称;
步骤313、通过接口名称获得VLAN ID,进入步骤32;
步骤314、从用户连接的物理端口上收到报文,判断该收到报文的物理端口的端口号是否有效,若是则进入下一步,若不是则退出,不进行处理;
步骤315、查找VLAN ID与端口的对应表,获取该VLAN ID,进入步骤33。
具体的,步骤32包括如下具体步骤:
步骤321、判断该VLAN ID是否有效,若是则进入步骤322,若不是则退出,不进行处理;
步骤322、查找VLAN ID与端口的对应表,获取该VLAN ID对应的VLAN所属端口的端口号。
本发明的另一个目的,提供一种虚拟专用局域网业务报文处理系统,包括用户边缘CE设备和接入服务提供商边缘PE设备,
所述CE设备,用于接入PE设备,并选择VPLS业务;通过所述PE设备发送VPLS业务报文;
所述PE设备,用于在其三层VLAN接口配置绑定VPLS实例,并判断所述CE设备接入方式是否为以太,若是,则查询到接收该CE设备数据的物理端口的端口号,并将该端口设置为QinQ模式;并接收到所述CE设备发送的报文,在该报文二层头部添加一层tag,该tag值为该端口号对应的虚拟局域网号VLAN ID;通过VPLS业务数据转发模块发送该报文。
所述PE设备包括控制模块、端口动态设置模块及VPLS业务数据转发模块,
所述控制模块,用于在CE设备接入该PE设备,且CE设备选择VPLS业务时,在VLAN接口配置绑定VPLS实例,并判断CE设备接入方式是否为以太端口,若是则查询到接收该CE设备数据的物理端口的端口号,且命令端口动态设置模块对端口进行设置,当接收到CE设备发送的报文,在该报文二层头部添加一层tag,该tag值为该端口号对应的VLAN ID,再将该添加了tag的报文传输给所述VPLS业务数据转发模块;否则进入正常处理流程;
所述端口动态设置模块,用于根据控制模块的命令对端口进行QinQ模式的动态设置;
所述VPLS业务数据转发模块,用于将需要转发出去的VPLS业务中的数据报文转发出去。
进一步的,所述VPLS实例包括指定与之建立伪线(PW,Pseudo Wire)的对端PE设备地址及其VPN ID,VPLS实例是指以太网桥功能实体,根据MAC与VLAN tag进行二层报文的转发。
再进一步的,所述控制模块包括VPLS接口绑定配置扩展模块、VLAN ID获取单元及端口号获取单元,
所述VPLS接口绑定配置扩展模块,用于在三层接口配置绑定VPLS实例或解除绑定VPLS实例,在配置绑定了VPLS实例后判断用户边缘设备接入方式是否为Ethernet,若不是则进入正常处理流程,若是则交由VLAN ID获取单元获取VLAN ID;
所述VLAN ID获取单元,用于判断接收用户边缘设备数据的接口是否为VLAN接口,若是则获取该接口名称,并通过接口名称获得VLAN ID,若不是则从用户连接的物理端口上收到报文,判断该物理端口的端口号是否有效,若端口号无效则退出,不进行处理,若端口号有效则查找VLAN ID与端口的对应表,获取该VLAN ID;
所述端口号获取单元,用于判断该VLAN ID是否有效,若是则查找VLAN ID与端口的对应表,获取该VLAN ID对应的VLAN所属端口的端口号,若不是则退出,不进行处理。
本发明的有益效果是,通过上述虚拟专用局域网业务提供商边缘节点报文处理方法及设备,在VPLS业务时,可以在不更换芯片及不更新路由器架构的情况下,保证透传用户携带任意tag报文,可以在网络中其他设备不感知,不作任何配合的情况下利用QinQ特性,规避交换芯片的常规处理方法,达到数据透传的效果。
附图说明
图1是VPLS组网示意图。
图2是本发明实施例中VPLS接口绑定配置扩展单元中处理流程图。
图3是本发明实施例中VLAN ID获取单元中处理流程图。
图4是本发明实施例中端口号获取单元中处理流程图。
图5为本发明实施例中虚拟专用局域网业务提供商边缘设备的系统框图。
其中,CE1为VPN用户一的边缘设备,CE2为VPN用户二的边缘设备,CE3为VPN用户三的边缘设备,PE1为服务提供商的边缘设备一,PE2为服务提供商的边缘设备二,PW为伪线。
具体实施方式
下面结合实施例及附图,详细描述本发明的技术方案。
本发明的虚拟专用局域网业务报文处理方法为:首先用户边缘设备接入服务提供商的边缘设备,选择VPLS业务,然后服务提供商边缘设备在其三层接口配置绑定VPLS实例,再判断用户边缘设备接入方式是否为以太端口(Ethernet),若不是则进入正常处理流程,若是则查询到接收该用户边缘设备数据的物理端口的端口号,并将该端口设置为QinQ模式,当服务提供商的边缘设备接收到用户边缘设备发送的报文时,在该报文二层头部添加一层tag,该tag值为该端口号对应的VLAN ID,最后通过VPLS业务数据转发模块发送该报文。
本发明的虚拟专用局域网业务报文处理系统,包括用户边缘CE设备和接入服务提供商边缘PE设备,所述CE设备,用于接入PE设备,并选择VPLS业务;通过所述PE设备发送VPLS业务报文;所述PE设备,用于在其三层VLAN接口配置绑定VPLS实例,并判断所述CE设备接入方式是否为以太,若是,则查询到接收该CE设备数据的物理端口的端口号,并将该端口设置为QinQ模式;并接收到所述CE设备发送的报文,在该报文二层头部添加一层tag,该tag值为该端口号对应的虚拟局域网号VLAN ID;通过VPLS业务数据转发模块发送该报文。所述PE设备包括控制模块、端口动态设置模块及VPLS业务数据转发模块,
PE设备包括控制模块、端口动态设置模块及VPLS业务数据转发模块。所述控制模块,用于在CE设备接入该PE设备,且CE设备选择VPLS业务时,在VLAN接口配置绑定VPLS实例,并判断CE设备接入方式是否为以太端口,若是则查询到接收该CE设备数据的物理端口的端口号,且命令端口动态设置模块对端口进行设置,当接收到CE设备发送的报文,在该报文二层头部添加一层tag,该tag值为该端口号对应的VLAN ID,再将该添加了tag的报文传输给所述VPLS业务数据转发模块;否则进入正常处理流程;所述端口动态设置模块,用于根据控制模块的命令对端口进行QinQ模式的动态设置;所述VPLS业务数据转发模块,用于将需要转发出去的VPLS业务中的数据报文转发出去。
实施例
参见图5,为本例的虚拟专用局域网业务提供商边缘设备的系统框图,其包括服务提供商边缘设备本体、控制模块、端口动态设置模块及VPLS业务数据转发模块,其中,控制模块用于在用户边缘设备接入该服务提供商边缘设备,且用户边缘设备选择VPLS业务时,配置绑定VPLS实例,VPLS实例包括指定与之建立伪线(PW,Pseudo Wire)的对端服务提供商边缘设备(PE,Provider Edge)地址及其VPN ID,VPLS实例是指以太网桥功能实体,根据MAC与VLAN tag进行二层报文的转发,并判断用户边缘设备接入方式是否为Ethernet,若不是则进入正常处理流程,若是则查询到接收该用户边缘设备数据的物理端口的端口号,且命令端口动态设置模块对端口进行设置,当接收到用户边缘设备发送的报文,在该报文二层头部添加一层tag,该tag值为该端口号对应的VLAN ID,再将该添加了tag的报文传输给服务提供商边缘设备本体;端口动态设置模块,用于根据控制模块的命令对端口进行QinQ模式的动态设置,包括将端口设置为QinQ模式及在解除VPLS业务后解除端口的QinQ模式;VPLS业务数据转发模块元,用于处理需要转发出去的VPLS业务中的数据报文。
其中,控制模块包括VPLS接口绑定配置扩展模块、VLAN ID获取单元及端口号获取单元,VPLS接口绑定配置扩展模块用于在三层接口配置绑定VPLS实例或解除绑定VPLS实例,在配置绑定了VPLS实例后判断用户边缘设备接入方式是否为Ethernet,若不是则进入正常处理流程,若是则交由VLAN ID获取单元获取VLAN ID;VLAN ID获取单元用于判断接收用户边缘设备数据的接口是否为VLAN接口,若是则获取该接口名称,并通过接口名称获得VLAN ID,若不是则从用户连接的物理端口上收到报文,判断该物理端口的端口号是否有效,若端口号无效则退出,不进行处理,若端口号有效则查找VLAN ID与端口的对应表,获取该VLAN ID,端口号获取单元用于判断该VLAN ID是否有效,若是则查找VLAN ID与端口的对应表,获取该VLAN ID对应的VLAN所属端口的端口号,若不是则退出,不进行处理。
将本发明使用在如图1所示的VPLS组网中,该组网包括VPN用户一的边缘设备CE1、VPN用户二的边缘设备CE2、VPN用户三的边缘设备CE3及服务提供商核心网络,服务提供商核心网络包括服务提供商的边缘设备一PE1、服务提供商的边缘设备二PE2及核心路由器,该VPN用户一的边缘设备CE1及VPN用户三的边缘设备CE3分别与服务提供商的边缘设备一PE1连接,VPN用户二的边缘设备CE2与服务提供商的边缘设备二PE2连接,服务提供商的边缘设备一PE1通过核心路由器与服务提供商的边缘设备二PE2连接。
举例为:从VPN用户一的边缘设备CE1发送数据给VPN用户二的边缘设备CE2,其需要经过服务提供商的边缘设备一PE1与服务提供商的边缘设备二PE2,在服务提供商的边缘设备一PE1中,其具体处理步骤如下:
A、VPN用户一的边缘设备CE1接入服务提供商的边缘设备一PE1,选择VPLS业务,即用户与服务提供商约定采用VPLS业务。
B、参见图2,服务提供商的边缘设备一PE1在其三层接口配置绑定VPLS实例,并判断VPN用户一的边缘设备CE1接入方式是否为Ethernet,若是则进入C步骤,若不是则进入正常处理流程。
本步骤中,VPLS实例中包括有指定与之建立伪线的对端服务提供商边缘设备(即本例中的PE2)地址及其VPN ID,VPLS实例是指以太网桥功能实体,根据MAC与VLAN tag进行二层报文的转发。
C、服务提供商的边缘设备一PE1查询到接收VPN用户一的边缘设备CE1数据的物理端口的端口号,并将该端口设置为QinQ模式。
本步骤中,查询到VPN用户一的边缘设备接收CE1数据的物理端口的端口号,并将该端口设置为QinQ模式的具体方法为:
步骤1、查询获取到接收VPN用户一的边缘设备CE1数据的接口的VLAN ID,其具体流程参见图3,首先判断接收VPN用户一的边缘设备CE1数据的接口是否为VLAN接口,若是则获取该接口名称,再通过接口名称获得VLAN ID,进入步骤2,若不是则从VPN用户一的边缘设备CE1连接的物理端口上收到报文时,判断该收到报文的物理端口的端口号是否有效,若该端口号无效则退出,不进行处理,若该端口号有效则查找VLAN ID与端口的对应表,获取该VLAN ID,此时VLAN ID用于后续步骤D中使用,不再进入步骤2;
步骤2、通过该VLAN ID获取对应物理端口的端口号,其具体流程参见图4,先判断该VLAN ID是否有效,若是则查找VLAN ID与端口的对应表,获取该VLAN ID对应的VLAN所属端口的端口号,若不是则退出,不进行处理;
步骤3、将该端口设置为QinQ模式。
D、服务提供商的边缘设备一PE1收到VPN用户一的边缘设备CE1发送的报文,在该报文二层头部添加一层tag,该tag值为该端口号对应的VLAN ID;
E、服务提供商的边缘设备一PE1通过VPLS业务数据转发模块发送该报文。
此时,即可正常将数据传输给VPN用户二的边缘设备CE2。
当服务提供商不再为该用户提供VPLS服务时,解除所绑定的VPLS实例,并将该端口的QinQ模式取消。
若需要发送数据给VPN用户三的边缘设备CE3,则也需要经过服务提供商的边缘设备一PE1,由于上述发送给VPN用户二的边缘设备CE2的方法流程中并不涉及对服务提供商的边缘设备二PE2的更改,因此发送VPN用户三的边缘设备CE3的流程也相同。