一种VPWS报文穿越三层IP网络的方法及设备与流程

文档序号:17320912发布日期:2019-04-05 21:32阅读:386来源:国知局
一种VPWS报文穿越三层IP网络的方法及设备与流程

本发明涉及计算机网络数据通信领域,具体涉及一种vpws报文穿越三层ip网络的方法及设备。



背景技术:

vpws(virtualprivatewireservice),指建设在mpls网络的基础设施之上,在两个路由器的一对端口之间提供高速的二层透传,可将本端pe设备的原始的以太网报文透明传送到远端pe设备,是一种二层的vpn协议。

gre(genericroutingencapsulation)即通用路由封装协议,是vpn第三层隧道协议,即在协议层之间采用了一种被称之为tunnel(隧道)的技术,是对某些网络层协议(如ip、ipx、mpls等)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如ip)中传输。定义gre头中protocoltype为0x8847时,后面的封装报文为mpls类型报文。

通常情况下,vpws包承载在lsp(labelswitchingpath)上面,在运营商网络上是通过mpls标签交换进行报文传送。随着网络技术的发展,有的运营商要求vpws包能够穿越三层ip网络,从ip公网透传出去。对于这种需求,一般都是采用vpws包封装在gre中,从ip公网中传输。对于这种pw(pseudo-wire伪线)overgre的数据包处理,目前业界主流的交换芯片例如broadcom或marvel,都只能对用户包做一次pw标签封装或ip封装,不能对用户包做pw标签封装后再次做ip封装,同样的,交换芯片也不能完成对pwovergre这种数据包做剥掉ip头后再次剥掉pw标签的动作;对于这种pwovergre的数据包处理,如果用cpu软转发来处理,虽然代码灵活,但是转发能力太差,端口无法线速。

因此有必要提供一种vpws报文穿越三层ip网络的方法及设备,并且要能保证转发性能,端口实现线速转发。



技术实现要素:

本发明提出的一种vpws报文穿越三层ip网络的方法及设备,可解决现有网络协议转发能力太差,端口无法线速的技术问题。

为实现上述目的,本发明采用了以下技术方案:

一种vpws报文穿越三层ip网络的方法,包括:

由控制面和转发面组成,主控板多核cpu作为控制面的核心,运行路由协议、ldp协议、gre协议、arp协议多种控制面协议,及生成转发面处理数据包时需要的各种表项包括路由表、mpls标签表、gre会话表、arp表;转发面由主控板交换芯片和接口板fpga实现,主控板交换芯片和接口板fpga互相配合处理vpws数据包,uni接口收包时,主控板交换芯片负责接收数据包,做相应处理后把数据包发送给接口板fpga,fpga对数据包封装处理后发送出去;nni接口收包时,接口板fpga负责接收数据包做解封装处理,然后把数据包发送给主控板交换芯片,主控板交换芯片对数据包处理后发送出去。

具体包括以下步骤:

当用户数据包进入vpws网络pe的uni入口时,

步骤1,主控板交换芯片做第一处理,在包外面依次封装上pw标签、特殊vlan、特殊源mac和特殊目的mac,把包发送给接口板fpga处理模块;

步骤2,接口板fpga处理模块收到包后做第二处理,剥掉包的特殊vlan、特殊源mac和特殊目的mac,在pw标签外面依次封装上gre头、源mac和目的mac,把包从nni出口发送出本设备;

当公网数据包到达vpws网络pe的nni入口时,

步骤3,接口板fpga处理模块做第三处理,解析包目的ip地址为本地地址且ip协议为gre,且gre头中为mpls协议,剥掉gre头,把包发送给主控板交换芯片;

步骤4,主控板交换芯片做第四处理,根据包中pw标签查找mpls标签转发表,获取uni出口,剥掉包的目的mac、源mac和pw标签,把用户载荷从uni口发送出去。

一种vpws报文穿越三层ip网络的设备,所述设备包括:

主控板业务协议模块,用于运行路由协议、ldp协议、gre协议、arp协议;主控板业务协议模块运行路由协议,实现远端pe设备与本地pe设备之间的路由打通;主控板业务协议模块在两个pe设备上运行gre协议,在两个pe设备上面形成gre隧道;主控板业务协议模块在两个pe设备的gre隧道接口上运行ldp协议,互相分配pw标签给对方;主控板业务协议模块还需要在每个pe设备上运行arp协议,使pe设备与直连的p设备之间学习到对方mac地址;主控板业务协议模块对这些协议数据处理后,将处理后的业务转发信息发消息给主控板转发表管理模块;

主控板转发表管理模块,用于接收所述业务转发信息,将这些业务转发信息整合转换为主控板交换芯片处理模块和接口板fpga处理模块需要的格式,写入到主控板交换芯片处理模块和接口板fpga处理模块;

主控板交换芯片处理模块,用于对pe设备的uni入口的数据包处理后,把数据包发送给接口板fpga处理模块,以及从接口板fpga处理模块收到数据包处理后,从pe设备的uni口发送出去。主控板交换芯片处理模块处理数据包需要查找的各种业务转发表由主控板转发表管理模块写入;

接口板fpga处理模块,用于接收主控板交换芯片处理模块发送过来的数据包做封装处理后,从设备nni口发送出去,以及从nni口收到数据包解封装处理,然后再发送给主控板交换芯片处理模块;接口板fpga处理模块处理数据包需要查找的各种业务转发表由主控板转发表管理模块写入。

如前所述,当用户数据包进入vpws网络pe的uni入口时,

步骤1中,主控板交换芯片处理模块做第一处理,在包外面依次封装上pw标签、特殊vlan、特殊源mac和特殊目的mac,把包发送给接口板fpga处理模块。主控板转发表管理模块需要给主控板交换芯片uni入口打上vpws属性标志,并把本vpws实例对应的vpn转发表和虚拟arp表写入主控板交换芯片处理模块。主控板交换芯片处理模块查到uni入口为vpws属性,会继续查vpn转发表,在用户数据包前面封装上pw标签;继续查arp表,在包的pw标签外面封装上特殊vlan、特殊源mac和特殊目的mac,把包发送给接口板fpga处理模块。所述特殊vlan,其值等于gre会话号,用于步骤2中接口板fpga处理模块对数据包做第二处理。因为本发明支持多vpws实例、多gre会话,因此步骤2中接口板fpga处理模块需要知道本vpws实例的数据包承载在哪个gre会话中,本发明用数据包中vlan来携带gre会话号。特殊源mac为0x5a5a5aa5a5a5,特殊目的mac为0xa5a5a55a5a5a,用于告知步骤2中接口板fpga处理模块从主控板交换芯片处理模块收到这种特殊mac的包,需要做封装gre头的处理。

步骤2中,接口板fpga处理模块收到包后做第二处理,剥掉包的特殊vlan、特殊源mac和特殊目的mac,在pw标签外面依次封装上gre头、源mac和目的mac,把包从nni接口发送出去。接口板fpga处理模块如果从主控板交换芯片处理模块收到数据包的源mac为0x5a5a5aa5a5a5,目的mac为0xa5a5a55a5a5a,会剥掉数据包的目的mac、源mac和vlan,并用vlanid(即gre会话号)查找gre会话表。gre会话表由主控板转发表管理模块写入,主控板转发表管理模块需要整合路由表和arp表,从路由表获取gre隧道的目的ip、源ip,从arp表获取下一跳设备mac地址作为目的mac,最后与本设备mac作为源mac一起整合成gre会话表。接口板fpga处理模块在数据包的pw标签外面依次封装上gre头、源mac和目的mac,把包从nni出口发送出本设备。

当公网数据包到达vpws网络pe的nni入口时,

步骤3中,接口板fpga处理模块做第三处理,解析包目的ip地址为本地地址且ip协议为gre,且gre头中为mpls协议,剥掉gre头,把包发送给主控板交换芯片;如果是其它类型的数据包,直接发送给主控板交换芯片做其它处理。

步骤4中,主控板交换芯片做第四处理,根据包中pw标签查找mpls标签转发表,获取uni出口,剥掉包的目的mac、源mac和pw标签,把用户载荷从uni口发送出去。主控板转发表管理模块需要写mpls标签转发表到主控板交换芯片处理模块,指定交换芯片出口。

由上述技术方案可知,本发明把主控板多核cpu作为控制面的核心,生成转发面需要的各种表项。转发面由主控板交换芯片和接口板fpga实现,主控板交换芯片和接口板fpga转发依据的表项都由主控板多核cpu写入。当用户数据包进入vpws网络pe的uni入口时,主控板交换芯片做第一处理,在包外面依次封装上pw标签、特殊vlan、特殊源mac和特殊目的mac,把包发送给接口板fpga处理模块;接口板fpga处理模块收到包后做第二处理,剥掉包的特殊vlan、特殊源mac和特殊目的mac,在pw标签外面依次封装上gre头、源mac和目的mac,把包从nni出口发送出本设备。当公网数据包到达vpws网络pe的nni入口时,接口板fpga处理模块做第三处理,解析包目的ip地址为本地地址且ip协议为gre,且gre头中为mpls协议,剥掉gre头,把包发送给主控板交换芯片;主控板交换芯片做第四处理,根据包中pw标签查找mpls标签转发表,获取uni出口,剥掉包的目的mac、源mac和pw标签,把用户载荷从uni口发送出去。本发明通过主控板多核cpu作为控制面核心给转发面写vpws和gre相关各种转发表项,主控板交换芯片和接口板fpga作为转发面互相配合处理vpws报文穿越ip网络,可以实现vpwsovergre的线速转发,保证了设备端口的转发性能。

附图说明

图1为本发明的vpws报文穿越三层ip网络的方法步骤流程图;

图2为本发明的硬件连接结构图;

图3为本发明的设备的结构框图;

图4为本发明的主控板交换芯片处理模块第一处理流程图;

图5为本发明的接口板fpga处理模块第二处理流程图;

图6为本发明的接口板fpga处理模块第三处理流程图;

图7为本发明的主控板交换芯片处理模块第四处理流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

如图1所示,本实施例所述的vpws报文穿越三层ip网络的方法,包括:

当用户数据包进入vpws网络pe的uni入口时:

步骤s100、主控板交换芯片做第一处理,在包外面依次封装上pw标签、特殊vlan、特殊源mac和特殊目的mac,把包发送给接口板fpga处理模块;

步骤s200、接口板fpga处理模块收到包后做第二处理,剥掉包的特殊vlan、特殊源mac和特殊目的mac,在pw标签外面依次封装上gre头、源mac和目的mac,把包从nni出口发送出本设备;

当公网数据包到达vpws网络pe的nni入口时:

步骤s300、接口板fpga处理模块做第三处理,解析包目的ip地址为本地地址且ip协议为gre,且gre头中为mpls协议,剥掉gre头,把包发送给主控板交换芯片;

步骤s400、主控板交换芯片做第四处理,根据包中pw标签查找mpls标签转发表,获取uni出口,剥掉包的目的mac、源mac和pw标签,把用户载荷从uni口发送出去;

如图2所示,主控板多核cpu作为控制面的核心,承载着整个控制面软件系统的运行,并生成转发面需要的各种表项,转发面由主控板交换芯片和接口板fpga实现,主控板交换芯片和接口板fpga转发依据的表项都由主控板多核cpu写入。

依据本发明实施例的另一个方面,提供了一种vpws报文穿越三层ip网络的设备,如图3所示,其中,图中细箭头表示转发表信息,粗箭头表示转发流量,所述设备包括:

主控板业务协议模块,用于运行路由协议、ldp协议、gre协议、arp协议等,要实现远端pe设备与本地pe设备之间的路由打通,在两个pe设备的gre隧道接口上运行ldp协议,互相分配pw标签给对方。每个pe设备还需要与直连下一跳的p设备之间学习到对方mac。主控板业务协议模块对这些协议数据处理后,将处理后的业务转发信息发消息给主控板转发表管理模块;

主控板转发表管理模块,用于接收所述业务转发信息,将这些业务转发信息整合转换为主控板交换芯片处理模块和接口板fpga处理模块需要的格式,写入到主控板交换芯片处理模块和接口板fpga处理模块;

主控板交换芯片处理模块,用于对pe设备的uni入口的数据包处理后,把数据包发送给接口板fpga处理模块,以及从接口板fpga处理模块收到数据包处理后,从pe设备的uni口发送出去。主控板交换芯片处理模块处理数据包需要查找的各种业务转发表由主控板转发表管理模块写入;

接口板fpga处理模块,用于接收主控板交换芯片处理模块发送过来的数据包做封装处理后,从设备nni口发送出去,以及从nni口收到数据包解封装处理,然后再发送给主控板交换芯片处理模块;接口板fpga处理模块处理数据包需要查找的各种业务转发表由主控板转发表管理模块写入。

为进一步了解本发明实施例提供的数据包在设备中转发的步骤流程,下面将详细说明。

在步骤s100中,主控板交换芯片处理模块做第一处理,在包外面依次封装上pw标签、特殊vlan、特殊源mac和特殊目的mac,把包发送给接口板fpga处理模块。主控板转发表管理模块需要给主控板交换芯片uni入口打上vpws属性标志,并把本vpws实例对应的vpn转发表和虚拟arp表写入主控板交换芯片处理模块。主控板交换芯片处理模块查到uni入口为vpws属性,会继续查vpn转发表,在用户数据包前面封装上pw标签;继续查arp表,在包的pw标签外面封装上特殊vlan、特殊源mac和特殊目的mac,把包发送给接口板fpga处理模块。所述特殊vlan,其值等于gre会话号,用于步骤s200中接口板fpga处理模块对数据包做第二处理。因为本发明支持多vpws实例、多gre会话,因此步骤s200中接口板fpga处理模块需要知道本vpws实例的数据包承载在哪个gre会话中,本发明用数据包中vlan来携带gre会话号。特殊源mac为0x5a5a5aa5a5a5,特殊目的mac为0xa5a5a55a5a5a,用于告知步骤s200中接口板fpga处理模块从主控板交换芯片处理模块收到这种特殊mac的包,需要做封装gre头的处理。主控板交换芯片处理模块做第一处理流程如图4所示:

步骤s101、数据包进入pe设备的uni接口;

步骤s102、查找端口属性表,判断端口是否配置vpws属性;

步骤s103、如果不是,流程结束。如果是,查找vpn转发表,获取pw标签和目的出口;

步骤s104、在数据包前面封装pw标签;

步骤s105、查找虚拟arp表,获取特殊vlan、特殊源mac和特殊目的mac;

步骤s106、在数据包的pw标签外面依次封装特殊vlan、特殊源mac和特殊目的mac,把包发送给接口板fpga处理模块。

在步骤s200中,接口板fpga处理模块收到包后做第二处理,剥掉包的特殊vlan、特殊源mac和特殊目的mac,在pw标签外面依次封装上gre头、源mac和目的mac,把包从nni接口发送出去。接口板fpga处理模块如果从主控板交换芯片处理模块收到数据包的源mac为0x5a5a5aa5a5a5,目的mac为0xa5a5a55a5a5a,会剥掉数据包的目的mac、源mac和vlan,并用vlanid(即gre会话号)查找gre会话表。gre会话表由主控板转发表管理模块写入,主控板转发表管理模块需要整合路由表和arp表,从路由表获取gre隧道的目的ip、源ip,从arp表获取下一跳设备mac地址作为目的mac,最后与本设备mac作为源mac一起整合成gre会话表。接口板fpga处理模块在数据包的pw标签外面依次封装上gre头、源mac和目的mac,把包从nni出口发送出本设备。接口板fpga处理模块做第二处理流程如图5所示:

步骤s201、从交换芯片处理模块收到数据包;

步骤s202、判断数据包的目的mac是否等于0xa5a5a55a5a5a;

步骤s203、如果不是,流程结束。如果是,判断数据包的源mac是否等于0x5a5a5aa5a5a5;

步骤s204、如果不是,流程结束。如果是,剥掉数据包的vlan、源mac和目的mac;

步骤s205、用vlanid查找gre会话表,获取目的ip、源ip、源mac、目的mac;

步骤s206、在数据包的pw标签外面依次封装gre头、源mac和目的mac,把包从nni出口发送出本设备。

在步骤s300中,接口板fpga处理模块做第三处理,解析包目的ip地址为本地地址且ip协议为gre,且gre头中为mpls协议,剥掉gre头,把包发送给主控板交换芯片;如果是其它类型的数据包,直接发送给主控板交换芯片做其它处理。交换芯片处理模块做第三处理流程如图6所示:

步骤s301、数据包进入pe设备的nni接口;

步骤s302、判断数据包是否为ip包且目的ip是否本地ip地址;

步骤s303、如果不是,流程结束。如果是,判断ip协议号是gre且gre协议是mpls;

步骤s304、如果不是,流程结束。如果是,剥掉数据包的gre头,把包发送给主控板交换芯片处理模块。

在步骤s400中,主控板交换芯片做第四处理,根据包中pw标签查找mpls标签转发表,获取uni出口,剥掉包的目的mac、源mac和pw标签,把用户载荷从uni口发送出去。主控板转发表管理模块需要写mpls标签转发表到主控板交换芯片处理模块,指定交换芯片出口。主控板交换芯片处理模块做第四处理流程如图7所示:

步骤s401、从接口板fpga处理模块收到数据包;

步骤s402、根据包中pw标签查找mpls标签转发表,获取uni出口;

步骤s403、剥掉包的目的mac、源mac和pw标签,把用户载荷从uni口发送出去。

由上可知,本发明实施例通过主控板多核cpu作为控制面核心给转发面写vpws和gre相关各种转发表项,主控板交换芯片和接口板fpga作为转发面互相配合处理vpws报文穿越ip网络,可以实现vpwsovergre的线速转发,保证了设备端口的转发性能。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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