欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种网络报文转发架构独创技术22927字

一种网络报文转发架构

2023-03-19 03:31:15

一种网络报文转发架构

  技术领域

  本发明涉及网络通信技术领域,更具体地说,涉及一种网络报文转发架构。

  背景技术

  在虚拟化云计算时代,网络流量已经变得错综复杂,特别是在大集群环境中,对集群中各个网络节点之间的转发方式和转发性能提出了更高更有挑战的要求。目前OpenStack的虚拟云网络环境中,网络节点上的网络部署方式主要有两种,分别利用LBR+OVS和LBR+OVS+DPDK技术实现,但是这两种实现方式由于使用了LBR技术,虽然功能很是丰富但是也带来了很多弊端。具体来说,由于引入LBR导致增加了很多虚拟网桥设备,进而使得网络结构更加的复杂,容错力低;同时网络设备通信时流量报文的转发路径会更长,转发更加耗时,性能降低。

  发明内容

  本发明的目的是提供一种网络报文转发架构,能够简化网络结构,提升转发性能和增强容错能力。

  为了实现上述目的,本发明提供如下技术方案:

  一种网络报文转发架构,包括DPDK模块及VPP模块,所述DPDK模块及所述VPP模块均设置于集群环境的网络节点上;其中:

  所述DPDK模块,用于:接收网络报文,将所述网络报文转发至所述VPP模块,以及接收所述VPP模块返回的与所述网络报文对应的转发路径信息,按照所述转发路径信息转发所述网络报文;

  所述VPP模块,用于:解析所述网络报文解析得到相应的转发路径信息。

  优选的,还包括VPP控制模块,所述VPP控制模块设置于所述集群环境的控制节点上;其中:

  所述VPP控制模块,用于:将外界输入的配置信息下发给所述VPP模块,指示所述VPP模块按照所述配置信息实现解析网络报文的功能的配置。

  优选的,所述VPP模块包括并行解析单元,所述并行解析单元用于:如果同时接收到多个网络报文,则对接收到的多个网络报文同时进行解析。

  优选的,所述并行解析单元包括协议解析单元、L2转发单元、L3转发单元及与多个网络协议版本一一对应的多个类型确定单元,其中:

  所述协议解析单元,用于:解析所述网络报文得到相应的IP信息,确定所述IP信息对应的网络协议版本,并将所述网络报文转发至与该网络协议版本对应的类型确定单元中;

  所述类型确定单元,用于:判断所述网络报文的源IP地址与目的IP地址是否位于同一网段,如果是,则将所述网络报文转发至L2转发单元,否则,将所述网络报文转发至L3转发单元;

  所述L2转发单元及所述L3转发单元,用于:解析所述网络报文确定对应的出端口,指示所述DPDK模块将所述网络报文转发至与该出端口对应的网卡端口。

  优选的,所述L2转发单元包括L2转发子单元,所述L2转发子单元用于:解析所述网络报文得到相应的vlan信息,基于配置的网桥交换规则查询与该vlan信息对应的同网桥同vlan内的出端口信息,并基于该出端口信息确定出对应的出端口。

  优选的,所述L3转发单元包括L3转发子单元,所述L3转发子单元用于:解析所述网络报文得到相应的目的IP地址,查找路由表确定与所述目的IP地址对应的下一跳IP地址,查找转发表确定与该下一跳IP地址对应的出端口。

  优选的,所述VPP模块还包括判断单元,所述判断单元用于:解析得到任意网络报文的目的IP地址,判断是否存在目的IP地址与该任意网络报文的目的IP地址相同的已经实现转发的网络报文,如果是,则指示所述DPDK模块将该任意网络报文按照该已经实现转发的网络报文的转发路径信息进行转发。

  优选的,还包括网卡,所述网卡用于:接收所述网络报文,对所述网络报文进行合法性验证,如果验证通过,则将所述网络报文发送给所述DPDK模块,否则,将所述网络报文发送至指定管理终端进行处理。

  本发明提供的一种网络报文转发架构,包括DPDK模块及VPP模块,所述DPDK模块及所述VPP模块均设置于集群环境的网络节点上;其中:所述DPDK模块,用于:接收网络报文,将所述网络报文转发至所述VPP模块,以及接收所述VPP模块返回的与所述网络报文对应的转发路径信息,按照所述转发路径信息转发所述网络报文;所述VPP模块,用于:解析所述网络报文解析得到相应的转发路径信息。本申请公开的网络报文转发架构包括设置于集群的网络节点上的DPDK模块及VPP模块,所述DPDK模块接收网络报文后将网络报文转发给VPP模块,VPP模块对网络报文进行解析得到相应的转发路径信息,DPDK模块按照该转发路径信息对网络报文进行转发。可见,本申请的网络节点选择VPP+DPDK的网络部署方式,从而利用VPP的报文转发技术和DPDK的高速收发包融合架构,实现网络报文的加速转发,并且无需引入LBR,因此能够减少虚拟网桥设备,从而简化网络结构,提升转发性能和增强容错能力。

  附图说明

  为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

  图1为本发明实施例提供的一种网络报文转发架构的第一种结构示意图;

  图2为本发明实施例提供的一种网络报文转发架构中VPP模块及VPP控制模块的交互示意图;

  图3为本发明实施例提供的一种网络报文转发架构中L3报文转发流程图。

  具体实施方式

  下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

  请参阅图1,其示出了本发明实施例提供的一种网络报文转发架构的结构示意图,可以包括DPDK模块及VPP模块,DPDK模块及VPP模块均设置于集群环境的网络节点上;其中:

  DPDK模块,用于:接收网络报文,将网络报文转发至VPP模块,以及接收VPP模块返回的与网络报文对应的转发路径信息,按照转发路径信息转发网络报文;

  VPP模块,用于:解析网络报文解析得到相应的转发路径信息。

  其中,DPDK(Data Plane Development Kit)是一款数据平台开发工具箱(或者称为基于数据平面开发工具包),由多种功能的函数库组成,VPP(Vector Packet Processinglibrary)则为矢量数据包处理技术(或者称为矢量数据包处理库),而集群环境具体可以为在Openstack部署的集群环境。本实施例中,在集群环境的网络节点上部署利用DPDK实现的DPDK模块(即DPDK驱动程序)及利用VPP实现的VPP模块(即VPP应用程序,VPP应用程序可以为用户态的应用程序),进而利用DPDK模块及VPP模块实现网络报文的转发。具体来说,DPDK驱动程序接收网卡上送的网络报文,经过DPDK驱动程序处理,主要做透传转发至VPP应用程序,由于DPDK驱动程序的高性能处理特性,使得网络报文可直接送至用户空间的VPP应用程序进行处理,无需经过操作系统内核协议栈而是直接旁路,这样避免操作系统内核协议栈的冗余处理,从而达到高效处理的目的;VPP应用程序接收DPDK驱动程序上送的网络报文,进入串联起来的图节点处理网络报文,得到相应的转发路径信息,其中,网络报文包括L2报文(需要二层转发的网络报文)及L3报文(需要三层转发的网络报文),VPP应用程序主要负责数据面的处理,在L2报文转发时利用VPP应用程序的高速L2网桥交换技术实现L2报文的加速转发,在L3报文转发时利用VPP应用程序的高速查找路由表、CAM表等技术实现L3报文的加速转发;DPDK驱动程序获取到VPP应用程序解析网络报文得到的转发路径信息后,可以从转发路径信息中获取到网络报文需要转发至的网卡端口,进而将网络报文通过该网卡端口转发出去。

  本申请公开的网络报文转发架构包括设置于集群的网络节点上的DPDK模块及VPP模块,DPDK模块接收网络报文后将网络报文转发给VPP模块,VPP模块对网络报文进行解析得到相应的转发路径信息,DPDK模块按照该转发路径信息对网络报文进行转发。可见,本申请的网络节点选择VPP+DPDK的网络部署方式,从而利用VPP的报文转发技术和DPDK的高速收发包融合架构,实现网络报文的加速转发,并且无需引入LBR,因此能够减少虚拟网桥设备,从而简化网络结构,提升转发性能和增强容错能力。

  本发明实施例提供的一种网络报文转发架构,还可以包括VPP控制模块,VPP控制模块设置于集群环境的控制节点上;其中:

  VPP控制模块,用于:将外界输入的配置信息下发给VPP模块,指示VPP模块按照配置信息实现解析网络报文的功能的配置。

  集群环境中还包括控制节点,控制节点一般采用Neutron的框架实现;为了方便对VPP模块的配置,本实施例中还可以在控制节点上设置VPP控制模块(Networking-vpp,或者称为网络控制面VPP),VPP控制模块用于管理用户下发的VPP模块的配置信息,配置信息为用于对VPP模块中各图节点的功能实现配置的信息,以利用图节点实现网络报文的转发;并且,只要用户需要VPP模块中各图节点的功能配置,均可以通过更新VPP控制模块中的配置信息实现;具体来说,在实现网络报文的转发过程中会涉及到路由、负载均衡、防火墙、IDS、网桥等技术,其可以由Networking-vpp负责同步下发相应的配置信息到VPP模块数据面,从而在转发网络报文时,VPP模块调用转发相关的配置信息生效到负责网络报文转发的图节点中,从而使得网络报文可以按照L2报文转发的网桥或者L3报文转发的路由规则进行转发,达到网络报文转发的加速目的;其中,利用路由、负载均衡、防火墙、IDS、网桥等技术实现网络报文转发的实现原理与现有技术中对应技术方案的实现原理一致,在此不再过多赘述。另外,Networking-vpp与VPP模块的交互图可以如图2所示,其中,中子服务器即为Neutron server,键值(key-value)存储仓库即为ETCD(相当于分布式存储数据库,用于共享配置和服务发现),配置管理代理即为Mangement agent;由于Networking-vpp自身可扩展性,可以直接融合到控制节点上Neutron的框架中,无需增加新的容器或者服务,进而通过ETCD同步北向配置网络节点,具有简单安全可靠的特性。

  本发明实施例提供的一种网络报文转发架构,VPP模块可以包括并行解析单元,并行解析单元用于:如果同时接收到多个网络报文,则对接收到的多个网络报文同时进行解析。

  需要说明的是,VPP模块存在需要同一时间对多个网络报文进行处理的情况,在这种情况下VPP模块可以对这多个网络报文进行并行处理,从而相对于对多个网络报文依次进行处理,能够大大增加网络报文的转发效率。

  本发明实施例提供的一种网络报文转发架构,并行解析单元可以包括协议解析单元、L2转发单元、L3转发单元及与多个网络协议版本一一对应的多个类型确定单元,其中:

  协议解析单元,用于:解析网络报文得到相应的IP信息,确定IP信息对应的网络协议版本,并将网络报文转发至与该网络协议版本对应的类型确定单元中;

  类型确定单元,用于:判断网络报文的源IP地址与目的IP地址是否位于同一网段,如果是,则将网络报文转发至L2转发单元,否则,将网络报文转发至L3转发单元;

  L2转发单元及L3转发单元,用于:解析网络报文确定对应的出端口,指示DPDK模块将网络报文转发至与该出端口对应的网卡端口。

  在网络节点的VPP模块中,VPP模块包含多个图节点,每个图节点能够实现对网络报文实现转发中的部分功能,本实施例中VPP模块包含的每个单元及子单元均可以为对应的一个图节点;VPP模块从DPDK模块获取所有可用包(即需要进行解析的网络报文)组成一个包向量,包向量在由图节点构成的有向图间依次处理。具体来说,网络报文从接收单元(DPDK-input,也可以称为DPDK入口)接收后转发至ethernet-input(协议解析单元,也可以称为以太网入口),ethernet-input根据解析出的IP信息(包括源IP地址及目的IP地址,源IP地址即为发送网络报文的模块的IP地址,目的IP地址为网络报文需要发送至的模块的IP地址)确定其是属于哪种网络协议版本(Ipv4或者Ipv6),将网络报文转发至Ipv4-input或者IPv6-input(Ipv4-input及IPv6-input均为类型确定单元,也可以称为Ipv4入口及Ipv6入口),类型确定单元判断网络报文的源IP地址及目的IP地址是否在同一个网段内,如果是,则确定网络报文需要进行二层转发,将网络报文转发至L2转发单元,否则,确定网络报文需要三层转发,将网络报文转发至L3转发单元。从而通过这种方式使得网络报文仅需按照其对应的网络协议版本及转发层数在相应的路径实现转发,便于实现对网络报文的快速转发。

  本发明实施例提供的一种网络报文转发架构,L2转发单元可以包括L2转发子单元,L2转发子单元用于:解析网络报文得到相应的vlan信息,基于配置的网桥交换规则查询与该vlan信息对应的同网桥同vlan内的出端口信息,并基于该出端口信息确定出对应的出端口。

  在确定出网络报文需要二层转发后,可以将网络报文转发至L2转发子单元,L2转发子单元可以包括L2-input、L2-fwd、L2-output及DPDK-output;具体来说,L2-input解析网络报文的vlan信息,将网络报文转发至L2-fwd,L2-fwd根据网桥配置的网桥交换规则,查询到与vlan信息对应的同网桥同vlan内的出端口信息(出端口信息可以为出端口的MAC地址,而根据网桥交换规则查询对应出端口信息的实现原理与现有技术中对应技术方案的实现原理相同,在此不再过多说明),将网络报文送至L2-output,L2-output根据FDB表中出端口信息查询二层转发表,定位到相应的出端口(根据FDB表中出端口信息查询二层转发表定位到相应的出端口的实现原理与现有技术中对应技术方案的实现原理相同,在此不再过多说明),将网络报文转发至DPDK-output,DPDK-output指示DPDK模块根据出端口最终将网络报文转发到出端口对应的网卡端口转发出去;从而通过上述方式快速方便的实现L2报文的转发。

  本发明实施例提供的一种网络报文转发架构,L3转发单元可以包括L3转发子单元,L3转发子单元用于:解析网络报文得到相应的目的IP地址,查找路由表确定与目的IP地址对应的下一跳IP地址,查找转发表确定与该下一跳IP地址对应的出端口。

  在确定出网络报文需要三层转发后,可以将网络报文转发至L3转发子单元,L3转发子单元可以包括Ipv4/Ipv6-lookup(Ipv4/Ipv6查找表)、Ipv4/Ipv6-local(Ipv4/Ipv6本地查找表处理)、Ipv4/Ipv6-output(Ipv4/Ipv6出口)、DPDK-output(DPDK出口)及Router(路径模块);具体来说,L3报文的转发流程可以如图3所示,Ipv4/Ipv6-lookup判断网络报文的目的IP地址是否为VPP模块自身具有的IP地址,如果是,则将网络报文转发至Ipv4/Ipv6-local,Ipv4/Ipv6-local实现与L2转发子单元相同的功能,也即按照L2报文转发的方式对网络报文进行转发,如果否,将网络报文转发至Router,Router根据查询规则中的目的IP地址查询路由表的下一跳地址(根据查询规则中的目的IP地址查询路由表的下一跳地址的实现原理与现有技术中对应技术方案的实现原理相同,在此不再过多说明),将网络报文转发至Ipv4/Ipv6-output,Ipv4/iIv6-output根据三层转发查询与下一跳地址对应的出端口(根据三层转发查询与下一跳地址对应的出端口的实现原理与现有技术中对应技术方案的实现原理相同,在此不再过多说明),将网络报文转发至DPDK-output,DPDK-output指示DPDK模块根据出端口最终将网络报文转发到出端口对应的网卡端口转发出去;从而通过上述方式快速方便的实现L3报文的转发。

  本发明实施例提供的一种网络报文转发架构,VPP模块还可以包括判断单元,判断单元用于:解析得到任意网络报文的目的IP地址,判断是否存在目的IP地址与该任意网络报文的目的IP地址相同的已经实现转发的网络报文,如果是,则指示DPDK模块将该任意网络报文按照该已经实现转发的网络报文的转发路径信息进行转发。

  需要说明的是,VPP在利用并行解析单元实现对网络报文的转发前,还可以先解析得到网络报文的目的IP地址,如果该目的IP地址为历史上已经转发的某网络报文的目的IP地址相同,则说明两个网络报文需要去往的目的地也相同,因此无需再对网络报文进行解析,仅需按照与其目的IP地址相同的网络报文的转发路径实现转发即可,具体则可以为直接将网络报文通过指定网卡端口转发出去,该指定网卡端口则为历史上与其目的IP地址相同的网络报文被转发至的网卡端口,从而通过这种方式对于具有同一目的IP地址的网络报文,无需再进行相应的解析,仅需直接进行转发即可,大大提高了网络报文的转发效率。

  本发明实施例提供的一种网络报文转发架构,还可以包括网卡,网卡用于:接收网络报文,对网络报文进行合法性验证,如果验证通过,则将网络报文发送给DPDK模块,否则,将网络报文发送至指定管理终端进行处理。

  其中,网卡可以为物理网卡,物理网卡NIC在接收网络报文后,可以进行以太链路侧校验,也即合法性验证,如果验证通过,则可以将网络报文发送至DPDK模块,否则,将网络报文发送至预先指定的管理终端进行处理或者直接丢弃,从而保证了对于合法的网络报文的处理。其中,对网络报文进行以太链路侧校验也即为判断网络报文是否为符合架构所能处理的网络协议(如以太网协议)的规范的报文,当然还可以根据实际需要进行其他设定,均在本发明的保护范围之内。

  在一种具体应用场景中,本申请公开的技术方案可以包括如下步骤:

  1:物理网卡NIC接收网络报文后,进行以太链路侧校验,如果符合以太网协议规范的合法报文,则上送至DPDK模块,否则丢弃;

  2:DPDK模块接收物理网卡上送的网络报文,经过DPDK模块处理,主要做透传转发至VPP模块,由于DPDK模块的高性能处理特性,使得网络报文可直接送至用户太的应用程序VPP模块,无需经过操作系统内核协议栈而直接旁路,从而达到高效处理的目的。

  3:VPP模块接收DPDK模块上送的网络报文,进入串联起来的网络图节点处理网络报文;VPP模块主要负责数据面的处理,在L2报文转发时利用VPP模块的高速L2网桥交换技术实现L2报文的加速转发,在L3报文转发时利用VPP模块的高速查找路由表、CAM表等技术实现L3报文的加速转发;另外,在实现网络报文转发过程中,涉及到路由、负载均衡、防火墙、IDS、网桥等技术是通过Networking-vpp负责同步下发配置到VPP模块的数据面,从而使得VPP模块在转发网络报文时,调用转发相关的配置生效到负责网络报文处理的图节点中,从而使得网络报文可以按照L2报文转发的网桥或者L3报文转发的路由规则进行转发,达到网络报文转发的加速目的。其中,VPP模块根据是二层转发还是三层转发确定走配置网桥的交换规则还是路由表规则,网桥交换是根据同网桥内同vlan的端口进行转发,最后将网络报文转发至与DPDK模块链接的虚拟接口(该虚拟接口属于VPP模块)上;

  4:DPDK模块接收已经经过VPP模块处理过的网络报文,将网络报文从相应的网卡端口转发出去。

  本发明在Openstack部署的集群环境中,在控制节点采用Nerworking-vpp同步用户配置,在网络节点采用VPP+DPDK网络方式实现网络报文转发,并可根据需求特性自定义增加VPP插件来扩展VPP模块的功能(如用户自己开发的第三方插件来实现一个自定义的功能,包括安全组、负载均衡器等,可直接在VPP模块的插件处注册,以丰富VPP模块的功能),简化用户配置架构和网络结构,利用高速收发包融合架构,增强容错能力和转发性能,实现网络报文的加速转发。

  需要说明的是,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。

  对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

《一种网络报文转发架构.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)