一种VPLS报文处理方法及设备与流程

文档序号:18059585发布日期:2019-07-03 02:58阅读:279来源:国知局
一种VPLS报文处理方法及设备与流程
本发明涉及网络
技术领域
,尤其涉及一种虚拟专用局域网业务(VirtualPrivateLANService,VPLS)报文处理方法及设备。
背景技术
:VPLS在传统多协议标签交换(Multi-ProtocolLabelSwitch,MPLS)L2VPN(Layer2VirtualPrivateNetwork,二层虚拟专用网络)方案的基础上发展而成,其核心思想是利用信令协议在VPLS实例中的服务提供商边缘(ProviderEdge,PE)设备之间建立及维护伪线(PseudoWire,PW),将二层协议帧封装后在PW上传输、交换,使广域范围内多个局域网(LocalAreaNetwork,LAN)在数据链路层面被整合为一张网络,向用户提供虚拟的以太网(Ethernet)服务。图1为现有VPLS组网示意图,如图1所示,VPLS网络可以包含:多个PE设备和用户网络边缘(CustomerEdge,CE)设备,每个PE设备可以连接一个或多个CE设备,每个CE设备和其下挂的大量的个人电脑(PrivateComputer,PC)和服务器等设备通过各自的PE设备接收同一个虚拟专用网络(VirtualPrivateNetwork,VPN)的报文,这个VPN称为一个VPLS实例,每个PE设备上可以配置多个虚拟转发实例(VirtualSwitchingInstance,VSI),任意两个PE设备上处于同一VPLS网络的VSI间建立有PW,PE设备可以接收CE设备发送的以太报文,并将收到的以太报文通过PW进行VPLS报文转发。其中,为了增强VPLS网络的转发性能,现有技术人员通常借助虚拟网络功能(VirtualNetworkFunction,VNF)技术,将其中一个PE设备作为一台VNF服务器,在该服务器中采用分布式系统VNF,虚拟出多个虚拟机(VirtualMachine,VM)(如:控制面VM和转发面VM),每个转发面VM可以连接多个用户,多个转发面VM可共用同一个VSI,且该VSI可与其他PE设备的VSI建立PW,各转发面VM可以通过建立起来的PW与其他PE设备进行VPLS报文转发。例如,图2为采用VNF技术的VPLS组网示意图,如图2所示,在PE1中采用分布式系统VNF,虚拟出控制面VM和两个转发面VM:VM1和VM2,且VM1连接家庭1的用户设备,VM2连接家庭2的用户设备,VM1和VM2共用VSI,该VSI可与PE2设备的VSI建立伪线PW1,此时,从家庭2到PE1的转发路径可以有两条:家庭2-VM2-VM1-PW1-PE2、家庭2-VM2-PW1-PE2。由上可知,在现有采用VNF的VPLS组网中,VNF系统整个看作一个VSI,多个VM通过该VSI接入到同一个VPLS广播域,因此,这些VM与远端PE只能建立一条PW,VM接入的流量可能会通过VNF系统内部的其他VM转发至远端PE,导致VPLS转发流量的迂回,例如,图2中家庭2到PE1的转发路径可能为:家庭2-VM2-VM1-PW1-PE2。由于VNF系统中不同VM间管理接口的带宽承载能力有限,当大量的数据流量通过管理接口从其他VM转发至远端PE时,很容易出现丢包现象,进而导致流量转发性能低下。技术实现要素:本发明的实施例提供一种VPLS报文处理方法及设备,以解决现有采用VNF技术的VPLS组网中,多个VM共用一个VSI,导致的VPLS转发流量迂回,流量转发性能低下的问题。为达到上述目的,本发明的实施例采用如下技术方案:第一方面,本发明实施例提供一种VPLS报文处理方法,应用于一服务器,该服务器可以包括:至少一个转发面虚拟机VM,每个转发面VM连接至少一个用户,每个转发面VM上设置一个虚拟转发实例VSI,所述至少一个转发面VM上的VSI属于同一VPLS网络,所述报文处理方法可以包括:第一转发面VM接收第一用户发送的包含:所述第一用户的媒体接入层MAC地址、第二用户的MAC地址、所述第一用户所在的第一虚拟局域网vlan标识的报文,所述第一转发面VM为所述服务器中的任一转发面VM,所述第一用户与所述第一转发面VM连接,所述第二用户与第一对端设备连接,所述第一转发面VM的VSI与所述第一对端设备的VSI属于所述VPLS网络;查询与所述VSI对应的媒体接入控制MAC转发表,获取所述MAC转发表中与所述第二用户的MAC地址对应的包含:所述第二用户的MAC地址、与所述第二用户的MAC地址对应的所述第一转发面VM上的第一接口的MAC转发表项;将所述报文封装上所述第一转发面VM的VSI与所述第一对端设备的VSI间建立的伪线PW的第一私网标签和第一公网隧道标签;将封装标签后的报文封装上所述接口的MAC地址、所述第一对端设备的MAC地址,形成第一VPLS报文,将所述第一VPLS报文通过所述第一接口发送出去。如此,在采用VNF技术的服务器中每个VM上均配置VSI,使每个VM均可以通过自身的VSI与其他设备(如远端服务器或其他VM)直接进行报文转发,避免了转发流量的内部迂回,提高了流量转发的性能,同时,不再占用VM间管理接口带宽,提高了采用NFV技术的设备的健壮性。可选的,在第一方面的一种可实现方式中,所述第一对端设备可以为PE设备,也可以为所述服务器中除所述第一转发面VM之外的VM,即对端设备可以为服务器自身,还可以为除该服务器之外的其他服务器上的任一转发面VM。如此,使转发面VM不仅可以与远端设备间收发VPLS报文,还可以与本地的转发面VM间收发VPLS报文。可选的,在第一方面的又一种可实现方式中,在第一转发面VM接收第一用户发送的报文之前,方法还可以包括:第一转发面VM与第一对端设备间建立标签分发协议会话ldpsession,通过ldpsession,获取第一转发面VM的VSI与第一对端设备的VSI间建立的PW的私网标签和公网隧道标签。具体的,当第一对端设备为第二转发面VM时,第一转发面VM与第二转发面VM间建立标签分发协议会话ldpsession可以包括:在第一转发面VM和第二转发面VM上分别运行标签分发协议LDP进程,通过内部网关协议路由互相学习对方的回环网络协议IP地址、内联口IP地址、以及外联口IP地址,将第一转发面VM的内联口IP地址和第二转发面VM的内联口IP地址作为传输transport地址建立ldpsession。当第一对端设备为第二转发面VM时,服务器还可以包括:主控VM,第一转发面VM与第二转发面VM间建立标签分发协议会话ldpsession可以包括:在主控VM上运行LDP进程,通过内部网关协议IGP路由服务器中每个转发面VM的回环IP地址、内联口IP地址以及外联口IP地址,主控VM将第一转发面VM的内联口IP地址和第二转发面VM的内联口IP地址作为传输transport地址建立ldpsession。作为发送VPLS报文的逆过程,第一转发面VM还可以接收VPLS报文,具体实现如下:第一转发面VM接收第三用户发送的包含:目的接口的MAC地址、第二对端设备的MAC地址、第二公网隧道标签、第二私网标签、目的用户的MAC地址、第三用户的MAC地址、第三用户所在虚拟局域网的第二vlan标识以及负载的第二VPLS报文,第三用户与第二对端设备连接,第二对端设备的VSI和第一转发面VM的VSI属于VPLS网络,第二私网标签和第二公网隧道标签为:第一转发面VM的VSI与第二对端设备的VSI间建立的PW的私网标签和公网隧道标签;查询MAC地址表,若所述MAC地址表中目的接口的MAC地址与所述第一转发面VM的接口的MAC地址相同,则确定所述第二VPLS报文为发送给自身的VPLS报文;解封装第二VPLS报文,若发现所述第二VPLS报文为MPLS报文,则查询入标签映射ilm表,找到与第二公网隧道标签对应的第一ilm表项,若第一ilm表项中的动作为下一跳pop,则依次弹出第二VPLS报文中的第二公网隧道标签、以及第二私网标签,在ilm表中查询与第二私网标签对应的第二ilm表项,获取第二ilm表项中与第二私网标签相对应的第一转发面VM的VSI;查询与VSI对应的MAC转发表,获取与目的用户的MAC地址对应的MAC转发表项,与目的用户的MAC地址对应的MAC转发表项包含:目的用户的MAC地址、与目的用户的MAC地址对应的第一转发面VM上的第二接口、目的用户所在的虚拟局域网的第三vlan标识;将弹出第二私网标签后的第二VPLS报文中的第二vlan标识替换为第三vlan标识,将替换后的报文通过第二接口发往目的用户。如此,通过自身VSI与对端设备VSI间建立的通道,实现VPLS报文,并对接收到的VPLS报文进行处理。第二方面,本发明实施例还提供一种服务器,该服务器可以包括:至少一个转发面虚拟机VM,每个转发面VM连接至少一个用户,每个转发面VM上设置一个虚拟转发实例VSI,所述至少一个转发面VM上的VSI属于同一虚拟专用局域网业务VPLS网络,所述至少一个转发面VM中的任一转发面VM包括:接收单元,用于接收第一用户发送的包含:所述第一用户的媒体接入层MAC地址、第二用户的MAC地址、所述第一用户所在的第一虚拟局域网vlan标识的报文,所述第一用户与所述转发面VM连接,所述第二用户与第一对端设备连接,所述转发面VM的VSI与所述第一对端设备的VSI属于所述VPLS网络;查询单元,用于查询与所述VSI对应的媒体接入控制MAC转发表,获取所述MAC转发表中与所述第二用户的MAC地址对应的MAC转发表项,所述与所述第二用户的MAC地址对应的MAC转发表项包含:所述第二用户的MAC地址、与所述第二用户的MAC地址对应的所述转发面VM上的第一接口;封装单元,用于将所述接收单元接收到的报文封装上第一私网标签和第一公网隧道标签,所述第一私网标签为:所述转发面VM的VSI与所述第一对端设备的VSI间建立的伪线PW的私网标签,所述第一公网隧道标签为:所述转发面VM的VSI与所述第一对端设备的VSI间建立的伪线PW的公网隧道标签;以及,将封装标签后的报文封装上所述接口的MAC地址、所述第一对端设备的MAC地址,形成第一VPLS报文;发送单元,用于将封装单元封装后的第一VPLS报文通过所述第一接口发送出去。具体的,上述接收单元、查询单元、封装单元以及发送单元的执行过程可以参照第一方面所述方法中的执行过程,在此不再详细赘述。需要说明的是,第二方面中接收单元、发送单元可以集成为服务器的通信单元,第二方面中的查询单元、封装单元可以为单独设立的处理器,也可以集成在处理设备的某一个处理器中实现,此外,也可以以程序代码的形式存储于处理设备的存储器中,由处理设备的某一个处理器调用并执行以上查询单元、封装单元的功能。这里所述的处理器可以是一个中央处理器(CentralProcessingUnit,CPU),或者是特定集成电路(ApplicationSpecificIntegratedCircuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。由上可知,本发明实施例提供一种VPLS报文处理方法及设备,第一转发面VM接收第一用户发送的包含第一用户的MAC地址、第二用户的MAC地址的报文,查询MAC转发表,获取所述MAC转发表中与第二用户的MAC地址对应的MAC转发表项,将所述报文封装上与私网标签和公网隧道标签,将封装后的报文封装上所述第一接口的MAC地址、第一对端设备的接口的MAC地址,形成VPLS报文,将封装后的VPLS报文通过所述第一接口发送出去。如此,可以通过在每个VM中均配置VSI,使每个VM均可以通过自身的VSI与其他设备(如远端PE设备或其他VM)直接进行报文转发,避免了转发流量的内部迂回,提高了流量转发的性能,同时,不再占用VM间管理接口带宽,提高了采用NFV技术的设备的健壮性。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有VPLS组网示意图;图2为现有采用VNF技术的VPLS组网示意图;图3为本发明实施例提供的采用VNF技术的VPLS组网示意图;图4为本发明实施例提供的一种服务器的结构图;图5为本发明实施例提供的一种VPLS报文处理方法的流程图;图6为本发明实施例提供的采用VNF技术的VPLS组网示意图;图7为本发明实施例提供的一种VPLS报文处理方法的流程图;图8为本发明实施例提供的一种服务器的结构图。具体实施方式本发明的核心思想是:在采用VNF技术的设备中将原有的一个VSI进行VSI多实例化,在每个VM中均设置有VSI,通过本VM的VSI与远端PE的VSI建立PW,在建立的PW上传输VPLS报文,不再通过其他VM来转发本VM上的报文,避免了流量转发的迂回。下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要理解的是,在本发明的描述中,术语“第一”、“第二”、“另一”等指示的系统或元件为基于实施例描述的具有一定功能的系统或元件,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的系统或元件必须有此命名,因此不能理解为对本发明的限制。为了便于实施例的描述,下面先简单介绍一下本发明实施例的应用场景。参见图3,为本发明实施例提供的采用VNF技术的VPLS组网示意图,如图3所示,该VPLS组网可以包含:采用VNF技术的服务器10、PE设备20和CE设备30,每个服务器10、PE设备20可以连接一个或多个CE设备30,每个CE设备30和其下挂的大量的个人电脑(PrivateComputer,PC)、用户终端和服务器等设备可以通过各自连接的设备接收来自同一个虚拟专用网络(VirtualPrivateNetwork,VPN)的报文,这个VPN称为一个VPLS网络。在如3所示的VPLS组网中,服务器10可以为PE设备,譬如交换机等,它可以借助VNF技术,采用大容量服务器(X86服务器)来实现,在该服务器10上可以配置多个虚拟机VM101,如:控制面VM102和多个转发面VM101,每个转发面VM101可以通过CE设备30与多个用户连接,每个转发面VM101上可以配置一个VSI,与转发面VM101连接的用户可以与转发面VM101上的VSI建立相对应的绑定关系,VM101上的VSI可以与远端的任一PE设备20上的VSI建立伪线PW,用户可以通过该PW与远端PE设备20进行VPLS报文转发。需要说明的是,在图3所示的VPLS组网中,当服务器10与远端PE设备20间的距离比较远时,可以在二者之间设置多个中心节点P(如交换设备)来将VPLS报文转发至对端设备。其中,在VPLS网络中,PE设备20可以表示服务提供商边缘设备,譬如交换机等,使用VSI进行VPLS转发。CE设备20可以表示客户网络边缘设备,其可以通过接入电路(AccessCircuit,AC)与服务器10、PE设备20等设备连接,在CE设备30下可以下挂属于同一VPN网络的多个用户设备,如:个人电脑、移动终端等设备。VSI表示虚链路(即伪线PW),是为一对PE设备之间、VM与PE设备之间每一个提供的服务所建立起来的点到点连接,多条虚链路可以承载在一对PE设备之间、VM与PE设备之间的一个公共网络隧道内,VPLS网络中任意两个PE、服务器之间都存在这样的隧道,是一个全连接网络。虚拟机VM101可以是通过专用的虚拟化软件管理,如VMware,在一台物理服务器上虚拟出的具有自己的操作系统、应用程序、虚拟的硬件环境(包括:虚拟中央处理器(CentralProcessingUnit,简称为CPU)、内存、输入输出(InputOutput,IO)设备、虚拟交换机等)的服务器,可以为物理服务器中的主控板或者线路板。其中,控制面VM102主要控制转发面VM101的流量转发、参数设置等工作,转发面VM101可以作为一个虚拟路由器,实现VPLS报文的转发。具体的,如图4所示,本发明实施例提供的采用VNF技术的服务器10可以包括:硬件层、运行在该硬件层之上的控制面VM102、以及至少一个转发面VM101,该硬件层可以包括:处理器1011、通信接口1012、存储器1013、至少一个通信总线1014,通信总线1014用于实现这些装置之间的连接和相互通信;控制面VM102作为管理层,用以完成硬件资源的管理、分配;为转发面VM101呈现虚拟硬件平台,实现转发面VM101的调度和隔离。处理器1011可能是一个中央处理器(CentralProcessingUnit,简称为CPU),也可以是特定集成电路(ApplicationSpecificIntegratedCircuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(DigitalSignalProcessor,DSP),或,一个或者多个现场可编程门阵列(FieldProgrammableGateArray,FPGA)。通信接口1012可能是远程直接数据存取(RemoteDirectMemoryAccess,RDMA)网卡,可用于与外部网元之间进行数据交互。存储器1013,可以是易失性存储器(VolatileMemory),例如随机存取存储器(Random-AccessMemory,RAM);或者非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-OnlyMemory,ROM),快闪存储器(FlashMemory),硬盘(HardDiskDrive,HDD)或固态硬盘(Solid-StateDrive,SSD);或者上述种类的存储器的组合。通信总线1014可以分为地址总线、数据总线、控制总线等,可以是工业标准体系结构(IndustryStandardArchitecture,ISA)总线、外部设备互连(PeripheralComponentInterconnect,PCI)总线或扩展工业标准体系结构(ExtendedIndustryStandardArchitecture,EISA)总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。可选的,处理器1011可以通过专用的虚拟化软件管理,在服务器10上虚拟出多个转发面VM101,并为每个转发面VM101配置至少一个VSI,其中,转发面VM101可用于将用户的报文通过自身的VSI转发至与PE设备20连接的其他用户,或者,接收其他用户的报文,将接收到的报文转发至与自身连接的用户,具体实现如下:转发面VM101接收第一用户发送的包含:第一用户的MAC地址、第二用户的MAC地址、第一虚拟局域网(virtuallocalnetwork,vlan)标识的报文后,可以查询与VSI对应的媒体接入控制MAC转发表,获取MAC转发表中与第二用户的MAC地址对应的MAC转发表项,该MAC转发表项可以包含与第二用户的MAC地址对应的第一接口;转发面VM101将接收到的报文先封装上与VSI对应的第一私网标签和第一公网隧道标签,然后再将封装后的报文封装上第一接口的MAC地址、对端设备的接口的MAC地址,形成第一VPLS报文,将封装后的第一VPLS报文通过第一接口发送出去。其中,第一私网标签和第一公网隧道标签为:转发面VM101的VSI与对端设备的VSI间建立的伪线PW的私网标签和公网隧道标签,且转发面VM101的VSI与对端设备的VSI属于同一个VPLS网络。需要说明的是,上述对端设备可以为不同与该转发面VM101所在的服务器的远端的PE设备,也可以为与该转发面VM101同在一个服务器的其他转发面VM或者不同于该服务器的其他服务器上的转发面VM;当对端设备为PE设备时,可以通过转发面VM101上的外联口向PE设备发送报文,当对端设备为其他转发面VM时,可以通过该转发面VM101的内联口向其他转发面VM发送报文。作为报文发送过程的逆过程,当转发面VM101接收到第三用户发送的包含:目的接口的MAC地址、所述第二对端设备的MAC地址、第二公网隧道标签、第二私网标签、目的用户的MAC地址、所述第三用户的MAC地址、第二虚拟局域网标识以及负载的第二VPLS报文时,转发面VM101可以解封装该第二VPLS报文;所述第三用户与第二对端设备连接,所述第二对端设备的VSI和转发面VM101的VSI属于同一VPLS网络,所述第二私网标签为:转发面VM101的VSI与所述第二对端设备的VSI间建立的PW的私网标签,所述第二公网隧道标签为:转发面VM101的VSI与所述第二对端设备的VSI间建立的PW的公网隧道标签;查询MAC地址表,若发现目的接口的MAC地址与转发面VM101的接口的MAC地址相同,则确定所述第二VPLS报文为发送给自身的VPLS报文;解封装所述第二VPLS报文,若发现所述第二VPLS报文为MPLS报文,则查询入标签映射ilm表,找到与第二公网隧道标签对应的第一ilm表项,若ilm表项中的动作为下一跳pop,则依次弹出该VPLS报文中的第二公网隧道标签、以及第二私网标签;在ilm表中查询与第二私网标签对应的第二ilm表项,获取第二ilm表项中与第二私网标签相对应的VSI,查询与所述VSI对应的MAC转发表,获取与目的用户的MAC地址对应的包含:与目的用户的MAC地址对应的第二接口,与目的用户的MAC地址对应的第三虚拟局域网标识的MAC转发表项,将弹出第二私网标签后的第二VPLS报文中的第二虚拟局域网标识替换为第三虚拟局域网标识,将替换后的报文通过第二接口发送出去。如此,在采用VNF技术的服务器中每个VM上均配置VSI,使每个VM均可以通过自身的VSI与其他设备(如远端服务器或其他VM)直接进行报文转发,避免了转发流量的内部迂回,提高了流量转发的性能,同时,不再占用VM间管理接口带宽,提高了采用NFV技术的设备的健壮性。为了便于描述,以下实施例一以步骤的形式示出并详细描述了本发明提供的VPLS报文处理过程,其中,示出的步骤也可以在VM中执行,也可以在一组可执行指令的计算机系统中执行。此外,虽然在图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。实施例一图5为本发明实施例提供的一种报文处理方法,应用于服务器,该服务器可以为图3中采用VNF技术的设备,该服务器可以包括:至少一个转发面VM,每个转发面VM可预先配置有回环IP地址、内联口IP地址以及外联口IP地址,内联口为服务器中转发面VM之间传输报文的接口,外联口可以为服务器中的转发面VM与远端设备(PE设备)之间传输报文的接口,每个转发面VM可以连接至少一个用户,且这些用户可以如图3所示直接下挂在CE设备下面,由CE设备通过AC链路与该转发面VM连接,每个转发面VM上可设置一个VSI,且所有转发面VM上的VSI可以属于同一个VPLS网络;如图5所示,所述报文处理方法可以包括以下步骤:S101:第一转发面VM接收第一用户发送的报文,所述报文包含:第一用户的MAC地址、第二用户的MAC地址、第一vlan标识。其中,第一转发面VM可以为服务器中的任一转发面VM。第一用户可以为通过CE设备与第一转发面VM连接的任一用户,为发送报文的源端,且该第一用户与第一转发面VM的VSI相绑定,即第一用户的报文可以通过与第一转发面VM的VSI对应的PW发送出去。第一vlan标识为第一用户所处虚拟局域网的标识,用于确定第一用户与第一转发面VM之间连接的接口。第二用户可以为通过CE设备与第一对端设备连接的任一用户,为接收报文的目的端,所述第二用户与第一对端设备的VSI关联,即第二用户的报文可以通过与第一对端设备的VSI对应的PW收发VPLS报文。可选的,第一对端设备可以为与不同于服务器的远端设备(如PE设备),可以为服务器中不同于第一转发面VM的第二转发面VM,即第一转发面VM可以与服务器内部的其他转发面VM之间收发VPLS报文,也可以与远端PE设备之间收发VPLS报文。需要说明的是,第一转发面VM的VSI和第一对端设备的VSI属于同一VPLS网络。可理解的是,本发明实施例所述的用户可以是指该用户手持的用户终端,是一个设备,为了便于描述,本发明将该用户终端简称为用户。S102:第一转发面VM查询与所述VSI对应的MAC转发表,获取与第二用户的MAC地址对应的MAC转发表项,所述MAC转发表项包含:第二用户的MAC地址、与第二用户的MAC地址对应的第一接口。其中,在VPLS网络中,转发面VM或PE设备可以接收VPLS广播域中的广播报文,学习接收到的广播报文中所有本地、远端连接的用户的MAC地址,建立与该转发面VM或PE设备中的VSI对应的MAC转发表。MAC转发表可以包含多个MAC转发表项,每个MAC转发表项可以包含:MAC地址、与该MAC地址对应的接口(即传输接口),当然,在实际应用中,MAC转发表项包括但不限于与MAC地址对应的接口,如果MAC地址是从某个vsi(广播域)学到的,则MAC地址转发表项还可以包含与MAC地址对应的vsi;如果MAC地址是从PW或者从lsp(可以是ldp、te隧道)进来的,则MAC地址转发表项中包含令牌(token);如果MAC地址是从带虚拟局域网(vlan)的接口进来的,则MAC地址转发表项还可以包含虚拟局域网标识(vlanid),即MAC地址转发表项除与MAC地址对应的接口之外,还可以根据实际情况包含:与MAC地址对应的VSI标识(vid)、vlanid、token等多个信息。例如,下表1为MAC地址转发表,如图1所示,MAC地址111-1所在的MAC地址转发表项可以包含:MAC地址111-1、广播域vsi、虚拟局域网标识10、以及接口G1/0/0,不包含token信息,这表示MAC地址111-1是从广播域vsi学习到的,且该MAC地址是从虚拟局域网10的接口G1/0/0进来的,不是从PW或者lsp链路上进来的。表1MAC地址vidvlanidtransporttoken111-1vsi10G1/0/0—111-2vsi—G2/0/0100需要说明的是,若在MAC地址表中未找到与报文中的目的MAC地址对应的MAC地址,则表示该报文可能是未知单播地址、组播地址或广播地址的以太报文,则可以采用洪泛方式,将该以太报文复制多份,分别从与本地VSI关联的所有接口和PW广播出去。S103:第一转发面VM将报文封装上第一私网标签和第一公网隧道标签。其中,所述第一私网标签为:所述第一转发面VM的VSI与所述第一对端设备的VSI间建立的伪线PW的私网标签,所述第一公网隧道标签为:所述第一转发面VM的VSI与所述第一对端设备的VSI间建立的伪线PW的公网隧道标签。可选的,第一转发面VM可以在第一转发面VM接收第一用户发送的报文之前,与第一对端设备建立标签分发协议会话ldpsession;通过建立起来的ldpsession,学习第一转发面VM的VSI与第一对端设备的VSI间建立的PW的私网标签和公网隧道标签。具体的,在创建VSI、ldpsession之后,本端可以给对端分配ldp标签(即私网标签),同时发送携带有VSI标识的消息给对端,对端接收到该消息后,发现自身VSI的标识与该消息中的标识相同,则与本端之间建立起PW,对建立起来的PW分配公网隧道标签。可理解的是,当第一对端设备为不同于第一转发面VM所在的服务器的PE设备时,第一转发面VM与PE设备建立的ldpsession可以为远端标签分发协议会话remote-ldpsession;此时,可以在第一转发面VM和PE设备中分别运行LDP进程,通过内部网关协议路由双方互相学习对方的回环IP地址、内联口IP地址、外联口IP地址,由回环IP地址较大的一端将第一转发面VM的外联口IP地址和第二PE的外联口IP地址作为传输transport地址,主动呼叫对端,建立起该remote-ldpsession,根据建立起来的remote-ldpsession为第一转发面VM的VSI与PE设备的VSI间的PW分配私网标签和公网隧道标签。需要说明的是,在本发明实例中,VPLS网络中的转发面VM具有各自的回环(loopback)地址、内联口IP地址、外联口IP地址,在建立ldp-session之前,转发面VM可以将自身的内联口IP地址、外联口IP地址均发布到共网(InternalGatewayProtocol,IGP)路由上,由IGP路由学习每个转发面VM的内联口IP地址、外联口IP地址。当所述第一对端设备为第二转发面VM时,第一转发面VM与第二转发面VM建立的ldpsession为本地标签分发协议会话(local-ldpsession),其中,第一转发面VM与第二转发面VM建立local-ldpsession可以包括下述两种方式:一、在第一转发面VM和第二转发面VM上分别运行标签分发协议LDP进程,通过IGP路由互相学习对方的回环网络协议IP地址、内联口IP地址、以及外联口IP地址;由回环IP地址较大的一端将所述第一转发面VM的内联口IP地址和所述第二转发面VM的内联口IP地址作为传输transport地址,主动呼叫对端,建立local-ldpsession。具体的,第一转发面VM和第二转发面VM需要协商出主从关系,决定谁来发起TCP链接,使用要建立TCP连接的源地址和目的地址比较大小来决定主从,地址大的为主,源地址大于目的地址,则本地为主;源地址小于目的地址,则本地为从。由主设备来发起TCP连接,从设备永远不会主动发起TCP连接。第一转发面VM和第二转发面VM之间建立TCP连接之后,主LSR发起initialization消息,开始协商ldp参数(准备建立ldpsession),协商的参数包括ldp协议版本、标签分发方式、keepalive时间、VPI/VCI/DLCI标签空间范围、是否启用环路避免等参数,协商成功后,就可以建立ldpsession。二、服务器还可以包括:主控VM;在所述主控VM上运行LDP进程,通过IGP路由学习服务器上所有转发面VM的回环IP地址、内联口IP地址以及外联口IP地址;主控VM将所述第一转发面VM的内联口IP地址和所述第二转发面VM的内联口IP地址作为传输transport地址建立该local-ldpsession。S104:第一转发面VM将封装后的报文封装上第一接口的MAC地址、第一对端设备的接口的MAC地址,形成第一VPLS报文,将第一VPLS报文通过第一接口发送出去。其中,第一对端设备的接口的MAC地址可以从下一跳标记转发条目(nhlfe)表中查找到,所述nhlfe表可以包含至少一个nhlfe表项,每个nhlfe表项可以包含:token、公网隧道标签、私网隧道标签以及目的MAC地址。具体的,可以查找在MAC地址转发表项中查看与第二用户的MAC地址相对应的token,然后根据查到的token值,在nhlfe表中查找与该token值对应的nhlfe表项,在该nhlfe表项中找到目的MAC地址作为第一对端设备的接口的MAC地址。进一步可选的,作为发送VPLS报文的逆过程,当第一转发面VM接收到VPLS报文时,所述方法还可以包括:第一转发面VM接收第三用户发送的第二VPLS报文,所述第三用户与第二对端设备连接,所述第二对端设备的VSI和所述第一转发面VM的VSI属于所述VPLS网络,所述第二VPLS报文包含:目的接口的MAC地址、所述第二对端设备的MAC地址、第二公网隧道标签、第二私网标签、目的用户的MAC地址、所述第三用户的MAC地址、所述第三用户所在虚拟局域网的第二vlan标识以及负载,所述第二私网标签为:所述第一转发面VM的VSI与所述第二对端设备的VSI间建立的PW的私网标签,所述第二公网隧道标签为:所述第一转发面VM的VSI与所述第二对端设备的VSI间建立的PW的公网隧道标签;所述第一转发面VM查询MAC地址表,若所述目的接口的MAC地址与所述第一转发面VM的接口的MAC地址相同,则确定所述第二VPLS报文为发送给自身的VPLS报文;解封装所述第二VPLS报文,若发现所述第二VPLS报文为MPLS报文,则查询入标签映射ilm表,找到与所述第二公网隧道标签对应的第一ilm表项,若所述第一ilm表项中的动作为下一跳pop,则依次弹出所述第二VPLS报文中的第二公网隧道标签、以及第二私网标签,在所述ilm表中查询与所述第二私网标签对应的第二ilm表项,获取所述第二ilm表项中与所述第二私网标签相对应的所述第一转发面VM的VSI;查询与所述VSI对应的MAC转发表,获取与所述目的用户的MAC地址对应的MAC转发表项,所述与所述目的用户的MAC地址对应的MAC转发表项包含:所述目的用户的MAC地址、与所述目的用户的MAC地址对应的所述第一转发面VM上的第二接口、所述目的用户所在的虚拟局域网的第三vlan标识;将弹出所述第二私网标签后的第二VPLS报文中的第二vlan标识替换为所述第三vlan标识,将替换后的报文通过所述第二接口发往所述目的用户。其中,所述ilm表为:入标签映射(incominglabelmap)表,在创建ldpsession时生成,ilm表可以包含多个ilm表项,每个ilm表项可以包含:标签(公网隧道标签或私网标签)、VSI标识(vid)、token、以及动作(action)。下面以图6所示的采用VNF技术的VPLS组网场景,对上述报文方法进行说明:如图6所示,该VPLS组网中采用VNF技术的服务器被虚拟化出一个控制VM和两个转发面VM:VM1,VM2,其与远端的PE设备处于同一个VPLS广播域,转发面VM1、转发面VM2和远端PE设备建立全连接的VPLSPW。其中,在转发面VM1、转发面VM2和远端PE设备之间部署有交换机P,每个转发VM有各自的loopback地址,VM的内联接口ip地址,外联接口ip地址均需要发布到公网IGP路由中,VM的内、外联接口需要使能mplsldp。转发面VM1的loopback地址1.1.1.1和远端的PE的loopback地址2.2.2.2建立remote-ldpsession,转发面VM2的loopback地址3.3.3.3和远端的PE的loopback地址2.2.2.2建立remote-ldpsession,VPLS根据不同的remote-ldpseesion分配vplsPW的label;转发VM1,VM2以内联接口作为transport地址建立TCP连接,它们之间通过互相发送hello消息触发local-ldpsession的建立。VPLS根据local-ldpsesison分配VM之间的vplsPW的标签(label)。分配的标签如下表2所示,PE设备分配给VM1的vplsPW标签为1,分配给VM1的公网隧道标签为4,PE设备分配给VM2的vplsPW标签为2,分配给VM2的公网隧道标签为5,VM1分配给VM2的vplsPW标签为1,分配给VM2的公网隧道标签为4,VM1分配给PE设备的vplsPW标签为1,分配给PE设备的公网隧道标签为4,VM2分配给VM1的vplsPW标签为2,分配给VM1的公网隧道标签为5,VM2分配给PE设备的vplsPW标签为2,分配给PE设备的公网隧道标签为5:表2如图7所示,当VM1和PE之间报文交互(如:CE1->CE方向)时,在VM1,对接收到vlan为10、源MAC地址为111-1、目的MAC地址为111-2的报文,查MAC地址表,找到与CE的MAC地址111-2对应的MAC地址表项,获得接口为G2/0/0,公网走MPLS,压上私网标签1,公网隧道标签4,然后根据token100,查nhlfe表,获得目的MAC地址为222-2,封装上目的MAC地址222-2、源MAC地址222-1,将封装后的报文从G2/0/0发送出去。在PE设备侧,接收到报文发现是发给本设备,解封装,发现是MPLS报文,用标签4查ilm表,发现该标签4对应的ilm表项中的动作为pop,则继续用私网标签1查ilm表,发现该私网标签1对应的广播域为vsi,则查看与该vsi对应的MAC地址转发表,找到CE设备的目的地址111-2所在的MAC地址转发表项,确定与111-2对应的接口为:G2/0/0、虚拟局域网标识为:40,则将报文中的vlan标识替换为40,通过G2/0/0发送至用户CE。CE用户收到报文,发现是发给本机的以太报文,接收上送本机处理。其中,CE->CE1方向的转发流程也和上述流程类似,在此不再赘述。由上可知,本发明实施例提供一种VPLS报文处理方法,第一转发面VM接收第一用户发送的包含第一用户的MAC地址、第二用户的MAC地址的报文,查询MAC转发表,获取所述MAC转发表中与第二用户的MAC地址对应的MAC转发表项,将所述报文封装上与私网标签和公网隧道标签,将封装后的报文封装上所述第一接口的MAC地址、第一对端设备的接口的MAC地址,形成VPLS报文,将封装后的VPLS报文通过所述第一接口发送出去。如此,可以通过在每个VM中均配置VSI,使每个VM均可以通过自身的VSI与其他设备(如远端PE设备或其他VM)直接进行报文转发,避免了转发流量的内部迂回,提高了流量转发的性能,同时,不再占用VM间管理接口带宽,提高了采用NFV技术的设备的健壮性。根据本发明实施例,本发明下述实施例还提供了一种服务器10,优选地用于实现上述方法实施例中的方法。实施例二图8为本发明实施例提供的服务器10的结构图,如图8所示,所述服务器10可以包括:至少一个转发面虚拟机VM301,每个转发面VM301可连接至少一个用户,每个转发面VM301上可设置一个虚拟转发实例VSI,所述至少一个转发面VM301上的VSI属于同一虚拟专用局域网业务VPLS网络,所述至少一个转发面VM中的任一转发面VM301可以包括:接收单元3011,用于接收第一用户发送的报文,所述报文包含:所述第一用户的媒体接入层MAC地址、第二用户的MAC地址、所述第一用户所在的第一虚拟局域网vlan标识,所述第二用户与第一对端设备连接,所述转发面VM的VSI与所述第一对端设备的VSI属于所述VPLS网络。其中,所述第一对端设备可以为PE设备,或者,第二转发面VM,所述第二转发面VM为所述至少一个转发面VM中除所述转发面VM之外的任一转发面VM。查询单元3012,用于查询与所述VSI对应的媒体接入控制MAC转发表,获取所述MAC转发表中与所述第二用户的MAC地址对应的MAC转发表项,所述与所述第二用户的MAC地址对应的MAC转发表项包含:所述第二用户的MAC地址、与所述第二用户的MAC地址对应的所述转发面VM上的第一接口。封装单元3013,用于将所述接收单元接收到的报文封装上第一私网标签和第一公网隧道标签;以及,将封装标签后的报文封装上所述接口的MAC地址、所述第一对端设备的MAC地址,形成第一VPLS报文。其中,所述第一私网标签为:所述转发面VM的VSI与所述第一对端设备的VSI间建立的伪线PW的私网标签,所述第一公网隧道标签为:所述转发面VM的VSI与所述第一对端设备的VSI间建立的伪线PW的公网隧道标签。发送单元3014,用于将封装单元3013封装后的第一VPLS报文通过所述第一接口发送出去。可选的,如图8所示,所述转发面VM301还可以包括:会话建立单元3015,用于在接收单元3011接收第一用户发送的报文之前,与所述第一对端设备建立标签分发协议会话ldpsession,通过ldpsession建立与第一对端设备间的lsp隧道,获取转发面301的VSI与第一对端设备VSI之间的第一公网隧道标签,然后,再通过lsp隧道建立VPLS的PW,获取转发面301的VSI与第一对端设备VSI之间的第一私网标签。当所述第一对端设备为第二转发面VM时,所述会话建立单元3015具体可以用于:在第一转发面VM和所述第二转发面VM上分别运行标签分发协议LDP进程,通过IGP路由互相学习对方的回环网络协议IP地址、内联口IP地址、以及外联口IP地址,将所述第一转发面VM的内联口IP地址和所述第二转发面VM的内联口IP地址作为传输transport地址建立所述ldpsession;或者,所述服务器10还可以包括:主控VM302,所述主控VM302用于:在所述主控VM302上运行LDP进程,通过IGP路由学习所述服务器10中每个转发面VM的回环IP地址、内联口IP地址以及外联口IP地址,将所述第一转发面VM的内联口IP地址和所述第二转发面VM的内联口IP地址作为传输transport地址建立所述ldpsession。进一步可选的,作为发送报文的逆过程,所述接收单元3011,还可以用于:接收第三用户发送的第二VPLS报文,所述第三用户与第二对端设备连接,所述第二对端设备的VSI和所述转发面VM的VSI属于所述VPLS网络,所述第二VPLS报文包含:目的接口的MAC地址、所述第二对端设备的MAC地址、第二公网隧道标签、第二私网标签、目的用户的MAC地址、所述第三用户的MAC地址、所述第三用户所在虚拟局域网的第二vlan标识以及负载,所述第二私网标签为:所述转发面VM的VSI与所述第二对端设备的VSI间建立的PW的私网标签,所述第二公网隧道标签为:所述转发面VM的VSI与所述第二对端设备的VSI间建立的PW的公网隧道标签;所述查询单元3012,还用于查询MAC地址表,若所述MAC地址表中目的接口的MAC地址与所述第一转发面VM的接口的MAC地址相同,则确定所述第二VPLS报文为发送给自身的VPLS报文;如图8所示,所述转发面VM301还可以包括:解封装单元3016,用于解封装所述第二VPLS报文;所述查询单元3012,还用于若所述解封装单元3016发现所述第二VPLS报文为MPLS报文,则查询入标签映射ilm表,找到与所述第二公网隧道标签对应的第一ilm表项;所述解封装单元3016,还用于若所述查询单元3012查询到的第一ilm表项中的动作为下一跳pop,则依次弹出所述第二VPLS报文中的第二公网隧道标签、以及第二私网标签;所述查询单元3012,还用于在所述ilm表中查询与所述第二私网标签对应的第二ilm表项,获取所述第二ilm表项中与所述第二私网标签相对应的所述转发面VM的VSI;查询与所述VSI对应的MAC转发表,获取与所述目的用户的MAC地址对应的MAC转发表项,所述与所述目的用户的MAC地址对应的MAC转发表项包含:所述目的用户的MAC地址、与所述目的用户的MAC地址对应的所述转发面VM上的第二接口、所述目的用户所在的虚拟局域网的第三vlan标识;所述发送单元3014,还用于将弹出所述第二私网标签后的第二VPLS报文中的第二vlan标识替换为所述第三vlan标识,将替换后的报文通过所述第二接口发往所述目的用户。由上可知,本发明实施例提供一种服务器,该服务器可以包含至少一个转发面VM,且每个转发面VM上设置有一个VSI,至少一个转发面VM中的任一转发面VM接收到第一用户发送的包含第一用户的MAC地址、第二用户的MAC地址的报文后,查询MAC转发表,获取所述MAC转发表中与第二用户的MAC地址对应的MAC转发表项,将所述报文封装上第一私网标签和第一公网隧道标签,将封装后的报文封装上第一接口的MAC地址、所述第一对端设备的接口的MAC地址,形成VPLS报文,将封装后的VPLS报文通过第一接口发送出去。如此,可以通过在每个VM中均配置VSI,使每个VM均可以通过自身的VSI与其他设备(如远端服务器或其他VM)直接进行报文转发,避免了转发流量的内部迂回,提高了流量转发的性能,同时,不再占用VM间管理接口带宽,提高了采用NFV技术的设备的健壮性。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的单元和系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件(例如处理器)来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘或光盘等。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1