CN115834472A - 一种报文处理方法、转发策略获取方法及装置 - Google Patents
一种报文处理方法、转发策略获取方法及装置 Download PDFInfo
- Publication number
- CN115834472A CN115834472A CN202211268737.2A CN202211268737A CN115834472A CN 115834472 A CN115834472 A CN 115834472A CN 202211268737 A CN202211268737 A CN 202211268737A CN 115834472 A CN115834472 A CN 115834472A
- Authority
- CN
- China
- Prior art keywords
- gateway
- service
- target
- message
- forwarding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000004806 packaging method and process Methods 0.000 claims abstract description 11
- 238000004891 communication Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 15
- 238000005538 encapsulation Methods 0.000 claims description 10
- 238000007726 management method Methods 0.000 description 58
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种报文处理方法、转发策略获取方法及装置,涉及互联网技术领域,该方法应用于接入网关中的XDP模块,包括:在接收到第一业务服务器发送的第一业务报文时,根据第一业务报文的业务信息,确定用于向第二业务服务器转发第一业务报文的目标出口网关;确定接入网关与目标出口网关之间的中间路由信息;将目标出口网关的IP地址封装至第一业务报文的报文头,得到第二业务报文;基于中间路由信息和目标出口网关的IP地址,向目标出口网关发送第二业务报文,以使目标出口网关基于第二业务报文向第二业务服务器发送第一业务报文,以提高转发业务报文的效率,并提高业务服务质量。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种报文处理方法、转发策略获取方法及装置。
背景技术
在当前的互联网应用中,分布在全球各个地区的用户都可以访问业务服务器(可以称为第一业务服务器)所提供的服务,并且,第一业务服务器在为用户提供服务时,也可能需要从全球各个地区的其他业务服务器(可以称为第二业务服务器)获取服务资源。
在第一业务服务器从第二业务服务器获取服务资源时,为了保证第一业务服务器与第二业务服务器的通信质量,为用户提供稳定、高效的业务服务,可以开通在第一业务服务器在第二业务服务器所在地区的互联网出口,该互联网出口也就是用于转发第一业务服务器向第二业务服务器发送的业务报文的出口网关。
例如,第一业务服务器可以通过该出口网关接入该地区的运营商网络,以访问第二业务服务器;或者在该地区自建与第一业务服务器进行通信POP(Point Of Presence,接入点)点(即网络服务提供点),通过该POP点与该地区的ISP(Internet Service Provider,因特网服务提供商)进行通信,以访问第二业务服务器。
相关技术中,在第一业务服务器从第二业务服务器获取服务资源时,第一业务服务器可以向接入网关发送业务报文。接入网关为使用Linux操作系统的服务器时,接入网关通过Linux操作系统的内核态中的协议栈,将业务报文转发至出口网关。相应的,出口网关则可以将接收到的业务报文发送至第二业务服务器。
然而,接入网关通过Linux操作系统的内核态中的协议栈对业务报文进行转发的效率较低,进而降低业务服务质量。
发明内容
本发明实施例的目的在于提供一种报文处理方法、转发策略获取方法及装置,以提高对业务报文进行转发的效率,进而提高业务服务质量。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种报文处理方法,所述方法应用于接入网关中的增强数据路径XDP模块,所述方法包括:
在接收到第一业务服务器发送的第一业务报文时,根据所述第一业务报文的业务信息,确定用于向第二业务服务器转发所述第一业务报文的出口网关,作为目标出口网关;
确定所述接入网关与所述目标出口网关之间的路由信息,作为中间路由信息;
将所述目标出口网关的互联网协议IP地址封装至所述第一业务报文的报文头,得到第二业务报文;
基于所述中间路由信息和所述目标出口网关的IP地址,向所述目标出口网关发送所述第二业务报文,以使所述目标出口网关基于所述第二业务报文向所述第二业务服务器发送所述第一业务报文。
可选的,所述中间路由信息包括:所述目标出口网关对应的所述接入网关的下一跳网关;
所述确定所述接入网关与所述目标出口网关之间的路由信息,作为中间路由信息,包括:
根据所述接入网关的各接口与各出口网关的对应关系,从所述接入网关的各接口中,确定用于向所述目标出口网关转发所述第一业务报文的接口,作为目标接口;
根据所述接入网关的各接口与下一跳网关的对应关系,确定所述目标接口对应的下一跳网关,得到与所述目标出口网关对应的所述接入网关的下一跳网关,作为中间路由信息。
可选的,所述将所述目标出口网关的IP地址封装至所述第一业务报文的报文头,得到第二业务报文,包括:
将所述目标出口网关的IP地址添加至所述第一业务报文的报文头中;
将所述接入网关的媒体访问控制MAC地址作为源MAC地址,以及将所述目标出口网关对应的所述接入网关的下一跳网关的MAC地址作为目的MAC地址,添加至所述第一业务报文的报文头中;
按照修改后的报文头,对所述第一业务报文进行通用路由GRE封装,得到第二业务报文。
可选的,所述中间路由信息包括:所述接入网关至所述目标出口网关的目标转发路径;
所述确定所述接入网关与所述目标出口网关之间的路由信息,作为中间路由信息,包括:
查询所述接入网关的路由表,得到从所述接入网关至所述目标出口网关的目标转发路径,作为中间路由信息。
可选的,所述将所述目标出口网关的IP地址封装至所述第一业务报文的报文头,得到第二业务报文,包括:
将所述目标出口网关的IP地址添加至所述第一业务报文的报文头中;
将所述接入网关的MAC地址作为源MAC地址,以及将所述目标转发路径中所述接入网关后的第一个网关的MAC地址作为目的MAC地址,添加至所述第一业务报文的报文头中;
获取所述目标转发路径中的各网关的多协议标签交换MPLS标识,并将所述目标转发路径中的各网关的MPLS标识添加至所述第一业务报文的报文头中;
按照修改后的报文头,对所述第一业务报文进行分段路由SR封装,得到第二业务报文。
可选的,所述在接收到第一业务服务器发送的第一业务报文时,根据所述第一业务报文的业务信息,确定用于向第二业务服务器转发所述第一业务报文的出口网关,作为目标出口网关,包括:
在接收到第一业务服务器发送的第一业务报文时,从指定存储位置中获取转发策略;其中,所述转发策略为所述接入网关中的策略管理模块存储至所述指定存储位置的;所述指定存储位置为所述接入网关的应用层与内核态共享的存储位置;
在所述转发策略中,查询所述第一业务报文的业务信息对应的出口网关,得到用于向第二业务服务器转发所述第一业务报文的出口网关,作为目标出口网关。
可选的,所述第一业务报文的业务信息包括:所述第一业务报文的源IP地址、目的IP地址、业务类型和接收所述业务报文的接口中的至少一项;所述源IP地址为发送所述第一业务报文的第一业务服务器的IP地址;所述目的IP地址为用于接收所述第一业务报文的第二业务服务器的IP地址。
在本发明实施的第二方面,还提供了一种转发策略获取方法,所述方法应用于接入网关中的策略管理模块,所述方法包括:
向管理服务器发送所述接入网关对应的各出口网关的标识,以及所述接入网关已接收到的各业务报文的业务信息,以使所述管理服务器根据各业务报文的业务信息,生成用于确定各业务报文对应的出口网关的转发策略;
接收所述管理服务器发送的所述转发策略,并从所述接入网关的内核态中获取所述接入网关对应的路由表;其中,所述路由表中记录有所述接入网关的各接口与各出口网关对应关系、所述接入网关的各接口与下一跳网关的对应关系,以及所述接入网关至各出口网关的转发路径;
将所述转发策略和所述路由表存储至指定存储位置;其中,所述指定存储位置为所述接入网关的应用层与内核态共享的存储位置。
在本发明实施的第三方面,还提供了一种报文处理装置,所述装置应用于接入网关中的XDP模块,所述装置包括:
目标出口网关确定模块,用于在接收到第一业务服务器发送的第一业务报文时,根据所述第一业务报文的业务信息,确定用于向第二业务服务器转发所述第一业务报文的出口网关,作为目标出口网关;
中间路由信息确定模块,用于确定所述接入网关与所述目标出口网关之间的路由信息,作为中间路由信息;
第二业务报文生成模块,用于将所述目标出口网关的IP地址封装至所述第一业务报文的报文头,得到第二业务报文;
第二业务报文转发模块,用于基于所述中间路由信息和所述目标出口网关的IP地址,向所述目标出口网关发送所述第二业务报文,以使所述目标出口网关基于所述第二业务报文向所述第二业务服务器发送所述第一业务报文。
可选的,所述中间路由信息包括:所述目标出口网关对应的所述接入网关的下一跳网关;
所述中间路由信息确定模块,具体用于根据所述接入网关的各接口与各出口网关的对应关系,从所述接入网关的各接口中,确定用于向所述目标出口网关转发所述第一业务报文的接口,作为目标接口;
根据所述接入网关的各接口与下一跳网关的对应关系,确定所述目标接口对应的下一跳网关,得到与所述目标出口网关对应的所述接入网关的下一跳网关,作为中间路由信息。
可选的,所述第二业务报文生成模块,具体用于将所述目标出口网关的IP地址添加至所述第一业务报文的报文头中;
将所述接入网关的媒体访问控制MAC地址作为源MAC地址,以及将所述目标出口网关对应的所述接入网关的下一跳网关的MAC地址作为目的MAC地址,添加至所述第一业务报文的报文头中;
按照修改后的报文头,对所述第一业务报文进行通用路由GRE封装,得到第二业务报文。
可选的,所述中间路由信息包括:所述接入网关至所述目标出口网关的目标转发路径;
所述中间路由信息确定模块,具体用于查询所述接入网关的路由表,得到从所述接入网关至所述目标出口网关的目标转发路径,作为中间路由信息。
可选的,所述第二业务报文生成模块,具体用于将所述目标出口网关的IP地址添加至所述第一业务报文的报文头中;
将所述接入网关的MAC地址作为源MAC地址,以及将所述目标转发路径中所述接入网关后的第一个网关的MAC地址作为目的MAC地址,添加至所述第一业务报文的报文头中;
获取所述目标转发路径中的各网关的多协议标签交换MPLS标识,并将所述目标转发路径中的各网关的MPLS标识添加至所述第一业务报文的报文头中;
按照修改后的报文头,对所述第一业务报文进行分段路由SR封装,得到第二业务报文。
可选的,所述目标出口网关确定模块,具体用于在接收到第一业务服务器发送的第一业务报文时,从指定存储位置中获取转发策略;其中,所述转发策略为所述接入网关中的策略管理模块存储至所述指定存储位置的;所述指定存储位置为所述接入网关的应用层与内核态共享的存储位置;
在所述转发策略中,查询所述第一业务报文的业务信息对应的出口网关,得到用于向第二业务服务器转发所述第一业务报文的出口网关,作为目标出口网关。
可选的,所述第一业务报文的业务信息包括:所述第一业务报文的源IP地址、目的IP地址、业务类型和接收所述业务报文的接口中的至少一项;所述源IP地址为发送所述第一业务报文的第一业务服务器的IP地址;所述目的IP地址为用于接收所述第一业务报文的第二业务服务器的IP地址。
在本发明实施的第四方面,还提供了一种转发策略获取装置,所述装置应用于接入网关中的策略管理模块,所述装置包括:
业务信息发送模块,用于向管理服务器发送所述接入网关对应的各出口网关的标识,以及所述接入网关已接收到的各业务报文的业务信息,以使所述管理服务器根据各业务报文的业务信息,生成用于确定各业务报文对应的出口网关的转发策略;
转发策略获取模块,用于接收所述管理服务器发送的所述转发策略,并从所述接入网关的内核态中获取所述接入网关对应的路由表;其中,所述路由表中记录有所述接入网关的各接口与各出口网关对应关系、所述接入网关的各接口与下一跳网关的对应关系,以及所述接入网关至各出口网关的转发路径;
存储模块,用于将所述转发策略和所述路由表存储至指定存储位置;其中,所述指定存储位置为所述接入网关的应用层与内核态共享的存储位置。
在本发明实施的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的报文能处理方法步骤,或者上述第二方面任一所述的转发策略获取方法步骤。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的报文能处理方法,或者上述第二方面任一所述的转发策略获取方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的报文能处理方法,或者上述第二方面任一所述的转发策略获取方法。
本发明实施例提供的一种报文处理方法,该方法应用于接入网关中的XDP模块,该方法包括:在接收到第一业务服务器发送的第一业务报文时,根据第一业务报文的业务信息,确定用于向第二业务服务器转发第一业务报文的出口网关,作为目标出口网关;确定接入网关与目标出口网关之间的路由信息,作为中间路由信息;将目标出口网关的互联网协议IP地址封装至第一业务报文的报文头,得到第二业务报文;基于中间路由信息和目标出口网关的IP地址,向目标出口网关发送第二业务报文,以使目标出口网关基于第二业务报文向第二业务服务器发送第一业务报文。
基于上述处理,接入网关中的XDP模块可以在接收到第一业务服务器发送的第一业务报文时,确定用于向第二业务服务器转发第一业务报文的目标出口网关,并向目标出口网关发送对第一业务报文进行封装得到的第二业务报文。相应的,目标出口网关可以基于第二业务报文,向第二业务服务器发送第一业务报文。接入网关无需通过Linux操作系统的内核态中的协议栈对业务报文进行转发,并且,相对于Linux操作系统的内核态中的协议栈,XDP模块具有高效的报文处理能力,可以提高对业务报文进行转发的效率,进而提高业务服务质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中提供的第一种报文处理方法的流程图;
图2为本发明实施例中提供的第二种报文处理方法的流程图;
图3为本发明实施例中提供的一种转发策略获取方法的流程图;
图4为本发明实施例中提供的第三种报文处理方法的流程图;
图5为本发明实施例中提供的第四种报文处理方法的流程图;
图6为本发明实施例中提供的第五种报文处理方法的流程图;
图7为本发明实施例中提供的第六种报文处理方法的流程图;
图8为本发明实施例中提供的一种报文处理系统的结构示意图;
图9为本发明实施例中提供的另一种转发策略获取方法的流程图;
图10为本发明实施例中提供的第七种报文处理方法的流程图;
图11为本发明实施例中提供的一种接入网关的结构示意图;
图12为本发明实施例中提供的一种报文处理装置的结构图;
图13为本发明实施例中提供的一种转发策略获取装置的结构图;
图14为本发明实施例中提供的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
相关技术中,在第一业务服务器从第二业务服务器获取服务资源时,第一业务服务器可以向接入网关发送业务报文。接入网关为使用Linux操作系统的服务器时,接入网关中的iptables(防火墙)模块和netfilter(网络过滤器)模块,通过Linux操作系统的内核态中的协议栈,将业务报文转发至出口网关。相应的,出口网关则可以将接收到的业务报文发送至第二业务服务器。然而,接入网关通过Linux操作系统的内核态中的协议栈对业务报文进行转发的效率较低,进而降低业务服务质量。
为了解决上述问题,本发明实施例提供了一种报文处理方法,该方法应用于接入网关中的XDP(Express Data Path,增强数据路径)模块。XDP模块是基于Linux操作系统的eBpf(Extended Berkeley Packet Filter,扩展的伯克利分组过滤器)技术实现的,eBpf技术可以在操作系统中给用户提供更多的hook(钩子)点,用户可以充分利用操作系统中各个hook点实现所需的功能,并且eBpf技术还可以bypass(旁路)操作系统中的一些冗余的操作和处理。
XDP模块是eBpf技术提供的Linux操作系统的内核态中的一个hook点,XDP模块可以在业务报文到达网卡驱动层时,对业务报文进行处理,并直接从网卡驱动层对业务报文进行转发,可以绕过Linux操作系统的内核态中的协议栈,也就是无需通过Linux操作系统的内核态中的协议栈对业务报文进行转发,并且XDP模块具有高效的报文处理能力。
相应的,接入网关中的XDP模块在接收到第一业务服务器发送的第一业务报文时,可以确定用于向第二业务服务器转发第一业务报文的目标出口网关,并向目标出口网关发送对第一业务报文进行封装得到的第二业务报文。相应的,目标出口网关可以基于第二业务报文,向第二业务服务器发送第一业务报文,可以提高对业务报文进行转发的效率,进而提高业务服务质量。
参见图1,图1为本发明实施例提供的一种报文处理方法的流程图,该方法应用于接入网关中的XDP模块,该方法可以包括以下步骤:
S101:在接收到第一业务服务器发送的第一业务报文时,根据第一业务报文的业务信息,确定用于向第二业务服务器转发第一业务报文的出口网关,作为目标出口网关。
S102:确定接入网关与目标出口网关之间的路由信息,作为中间路由信息。
S103:将目标出口网关的IP地址封装至第一业务报文的报文头,得到第二业务报文。
S104:基于中间路由信息和目标出口网关的IP地址,向目标出口网关发送第二业务报文,以使目标出口网关基于第二业务报文向第二业务服务器发送第一业务报文。
基于本发明实施例提供的报文处理方法,接入网关中的XDP模块可以在接收到第一业务服务器发送的第一业务报文时,确定用于向第二业务服务器转发第一业务报文的目标出口网关,并向目标出口网关发送对第一业务报文进行封装得到的第二业务报文。相应的,目标出口网关可以基于第二业务报文,向第二业务服务器发送第一业务报文。接入网关无需通过Linux操作系统的内核态中的协议栈对业务报文进行转发,并且,相对于Linux操作系统的内核态中的协议栈,XDP模块具有高效的报文处理能力,可以提高对业务报文进行转发的效率,进而提高业务服务质量。
针对步骤S101,第一业务服务器和第二业务服务器可以分布于不同地区的业务服务器。第一业务报文为第一业务服务器访问第二业务服务器提供的业务服务的报文。
在一些实施例中,第一业务报文的业务信息包括:第一业务报文的源IP地址、目的IP地址、业务类型和接收业务报文的接口中的至少一项;源IP地址为发送第一业务报文的第一业务服务器的IP地址;目的IP地址为用于接收第一业务报文的第二业务服务器的IP地址。业务类型表示第一业务服务器所访问的第二业务服务器的业务服务的类型。例如,视频服务、地图服务等。
在接收到第一业务报文时,接入网关中的XDP模块获取第一业务报文的业务信息。例如,接入网关中的XDP模块从第一业务报文的报文头中获取第一业务报文的源IP地址、目的IP地址和业务类型。进而,接入网关中的XDP模块根据第一业务报文的业务信息,确定用于向第二业务服务器转发第一业务报文的出口网关(即目标出口网关)。
在一些实施例中,在图1的基础上,参见图2,步骤S101可以包括以下步骤:
S1011:在接收到第一业务服务器发送的第一业务报文时,从指定存储位置中获取转发策略。
其中,转发策略为接入网关中的策略管理模块存储至指定存储位置的;指定存储位置为接入网关的应用层与内核态共享的存储位置。
S1012:在转发策略中,查询第一业务报文的业务信息对应的出口网关,得到用于向第二业务服务器转发第一业务报文的出口网关,作为目标出口网关。
XDP模块在接收到第一业务报文时,可以从指定存储位置获取转发策略。转发策略中记录有报文的业务信息与出口网关的对应关系。XDP模块则可以查询获取到的转发策略,确定第一业务报文的业务信息对应的出口网关,得到用于向第二业务服务器转发第一业务报文的目标出口网关。
在一些实施例中,参见图3,图3为本发明实施例提供的一种转发策略获取方法的流程图,该方法应用于接入网关中的策略管理模块,该方法可以包括以下步骤:
S301:向管理服务器发送接入网关对应的各出口网关的标识,以及接入网关已接收到的各业务报文的业务信息,以使管理服务器根据各业务报文的业务信息,生成用于确定各业务报文对应的出口网关的转发策略。
S302:接收管理服务器发送的转发策略,并从接入网关的内核态中获取接入网关对应的路由表。
其中,路由表中记录有接入网关的各接口与各出口网关对应关系、接入网关的各接口与下一跳网关的对应关系,以及接入网关至各出口网关的转发路径。
S303:将转发策略和路由表存储至指定存储位置。
其中,指定存储位置为接入网关的应用层与内核态共享的存储位置。
接入网关中的策略管理模块为接入网关的应用层程序。策略管理模块在第一次启动后,将对应的XDP模块加载至对应的网卡接口,以运行XDP模块,并生成用于确定转发各业务报文的出口网关的转发策略。
转发策略用于确定转发各业务报文的出口网关。转发策略为基于eBpf技术的MAP(地图)表。转发策略中按照键值对的方式记录有报文的业务信息与出口网关的对应关系。其中,键值对中的键为业务信息,键值为对应的出口网关的标识。
策略管理模块可以获取接入网关已接收到的各业务报文的业务信息,以及接入网关对应的各出口网关的标识。接入网关对应的各出口网关包括:该接入网关能够到达的出口网关。策略管理模块可以向管理服务器发送接入网关对应的各出口网关的标识,以及接入网关已接收到的各业务报文的业务信息。
相应的,管理服务器则可以根据各业务报文的业务信息,以及接入网关对应的各出口网关,模拟从各个出口网关转发各业务报文的处理情况,进而,根据模拟转发的结果,生成用于确定各业务报文对应的出口网关的转发策略。管理服务器则可以向接入网关发送生成的转发策略。接入网关的策略管理模块可以接收管理服务器发送的转发策略。一个业务报文对应的出口网关也就是用于转发该业务报文的出口网关。
接入网关的策略管理模块,还可以从接入网关的内核态中的协议栈获取接入网关对应的路由表。路由表中记录有接入网关的各接口与各出口网关对应关系、接入网关的各接口与下一跳网关的对应关系,以及接入网关至各出口网关的转发路径。
进而,策略管理模块可以将转发策略和路由表存储至指定存储位置,该指定存储位置为接入网关的内存中接入网关的应用层与内核态共享的存储位置。后续,XDP模块可以从该指定存储位置获取转发策略,并基于获取到的转发策略确定接收到的业务报文对应的出口网关。
另外,当达到预设周期时,策略管理模块可以再次向管理服务器发送接入网关对应的各出口网关的标识,以及接入网关已接收到的各业务报文的业务信息,以使管理服务器根据各业务报文的业务信息,更新转发策略。策略管理模块可以将接收到的更新后的转发策略和路由表存储至指定存储位置。
基于上述处理,可以由接入网关的应用层的策略管理模块将转发策略存储至接入网关的应用层与内核态共享的指定存储位置,后续,接入网关的应用层的策略管理模块可以直接对转发策略进行更新。并且,XDP模块可以从该指定存储位置获取转发策略,并基于获取到的转发策略确定接收到的业务报文对应的出口网关。相对于相关技术中,由Linux操作系统的内核态中的协议栈对转发策略更新过慢的问题,通过MAP机制实现内核态和应用层共享内存,可以存储较多的转发策略,并且可以降低对转发策略进行更新所需的时间,进一步提高报文转发效率。
在一些实施例中,在接收到报文时,XDP模块还可以根据该报文的源IP地址、目的IP地址,以及接收该报文的接口中的至少一项,确定该报文是否为业务报文。
例如,如果该报文的源IP地址所属的服务器为一个业务服务器,且目的IP地址所属的服务器为另一个业务服务器,则确定该报文为一个业务服务器访问另一个业务服务器的业务服务的业务报文。如果该报文的源IP地址为接入网关自身的IP地址,且该报文的目的IP地址也为接入网关自身的IP地址,则确定该报文为用于管理接入网关内部程序的管理报文。
如果接收到的报文不是业务报文,则XDP模块将该报文转发至接入网关的内核态中的协议栈进行处理。如果接收到的报文是业务报文,则XDP模块按照上述方式确定业务报文对应的目标出口网关。
针对步骤S102,在确定出目标出口网关之后,XDP模块可以按照以下方式,确定接入网关与目标出口网关之间的路由信息(即中间路由信息)。可以理解的是,接入网关和出口网关可以为具有网关功能和数据处理能力的服务器。从接入网关至目标出口之间存在至少一个网关,该至少一个网关可以为用于对业务报文进行转发的路由器、交换机等。
在一些实施例中,接入网关可以仅确定用于向目标出口网关转发业务报文的下一跳网关,并由该下一跳网关向目标出口网关转发第二业务报文。
相应的,中间路由信息包括:目标出口网关对应的接入网关的下一跳网关。在图1的基础上,参见图4,步骤S102可以包括以下步骤:
S1021:根据接入网关的各接口与各出口网关的对应关系,从接入网关的各接口中,确定用于向目标出口网关转发第一业务报文的接口,作为目标接口。
S1022:根据接入网关的各接口与下一跳网关的对应关系,确定目标接口对应的下一跳网关,得到与目标出口网关对应的接入网关的下一跳网关,作为中间路由信息。
XDP模块可以从指定存储位置获取接入网关的路由表,该路由表中记录有接入网关的各接口与各出口网关的对应关系(可以称为第一对应关系),以及接入网关的各接口与下一跳网关的对应关系(可以称为第二对应关系)。
相应的,XDP模块则可以根据获取到的第一对应关系,从接入网关的各接口中,确定用于向目标出口网关转发第一业务报文的目标接口。然后,XDP模块可以根据第二对应关系,从接入网关的各个下一跳网关中,确定目标接口对应的下一跳网关,得到与目标出口网关对应的接入网关的下一跳网关,该下一跳网关用于向目标出口网关转发第一业务报文。
在一些实施例中,接入网关可以确定从接入网关至目标出口网关的转发路径(即目标转发路径),并按照目标转发路径向目标出口网关转发第二业务报文。
相应的,中间路由信息包括:接入网关至目标出口网关的目标转发路径。相应的,在图1的基础上,参见图5,步骤S102可以包括以下步骤:
S1023:查询接入网关的路由表,得到从接入网关至目标出口网关的目标转发路径,作为中间路由信息。
XDP模块可以从指定存储位置获取接入网关的路由表,该路由表中还记录有从接入网关至各个出口网关的转发路径。相应的,XDP模块则可以查询接入网关的路由表,从各转发路径中,确定从接入网关至目标出口网关的转发路径(即目标转发路径)。
针对步骤S103,XDP模块可以按照以下方式,将目标出口网关的IP地址封装至第一业务报文的报文头,得到第二业务报文。
一种实现方式中,中间路由信息包括:目标出口网关对应的接入网关的下一跳网关,相应的,在图4的基础上,参见图6,步骤S103可以包括以下步骤:
S1031:将目标出口网关的IP地址添加至第一业务报文的报文头中。
S1032:将接入网关的MAC地址作为源MAC地址,以及将目标出口网关对应的接入网关的下一跳网关的MAC地址作为目的MAC地址,添加至第一业务报文的报文头中。
S1033:按照修改后的报文头,对第一业务报文进行GRE封装,得到第二业务报文。
XDP模块可以将目标出口网关的IP地址添加至第一业务报文的报文头中。具体的,XDP模块可以将第一业务报文的报文头中表示源IP地址的字段左移28位,再将表示源IP地址的字段右移28位,得到第一业务报文的报文头中位于源IP地址前的空闲位置,将目标出口网关的IP地址写入该空闲位置。
XDP模块可以将接入网关的MAC地址,写入第一业务报文的报文头中的用于记录源MAC地址的位置,并将目标出口网关对应的接入网关的下一跳网关的MAC地址,写入第一业务报文的报文头中的用于记录目的MAC地址的位置。
然后,XDP模块可以按照修改后的报文头,计算对应的checksum(校验和),XDP模块可以按照修改后的报文头和计算得到的checksum,对第一业务报文进行GRE(GenericRouting Encapsulation,通用路由封装)封装,得到第二业务报文。第二业务报文为GRE格式的隧道报文。
另一种实现方式中,中间路由信息包括:接入网关至目标出口网关的目标转发路径;相应的,在图5的基础上,参见图7,步骤S103可以包括以下步骤:
S1034:将目标出口网关的IP地址添加至第一业务报文的报文头中。
S1035:将接入网关的MAC地址作为源MAC地址,以及将目标转发路径中接入网关后的第一个网关的MAC地址作为目的MAC地址,添加至第一业务报文的报文头中。
S1036:获取目标转发路径中的各网关的MPLS标识,并将目标转发路径中的各网关的MPLS标识添加至第一业务报文的报文头中。
S1037:按照修改后的报文头,对第一业务报文进行SR封装,得到第二业务报文。
目标转发路径中接入网关后的第一个网关,也就是目标转发路径中接入网关的下一跳网关。将目标转发路径中接入网关后的第一个网关的MAC作为目的地址,添加至第一业务报文的报文头中,也就是将目标转发路径中接入网关的下一跳网关的MAC地址,写入第一业务报文的报文头中的用于记录目的MAC地址的位置。
XDP模块还可以获取目标转发路径中的各网关的MPLS(Multi-Protocol LabelSwitching,多协议标签交换)标识,并将目标转发路径中的各网关的MPLS标识,写入第一业务报文的报文头中的用于记录MPLS标识的位置。
然后,XDP模块可以按照修改后的报文头,计算对应的checksum(校验和),XDP模块可以按照修改后的报文头和计算得到的checksum,对第一业务报文进行SR(SegmentRouting,分段路由)封装,得到第二业务报文。
另外,针对目标转发路径中的每一网关,如果存在该网关所属的VLAN(VirtualLocal Area Network,虚拟局域网),则将该网关所属的VLAN的标识也添加至第一业务报文的报文头中。
针对步骤S104,一种实现方式中,中间路由信息包括:目标出口网关对应的接入网关的下一跳网关。
XDP模块可以查询Device Map(设备地图)表,得到接入网关的目标接口的index(索引)。XDP模块向接入网关的目标接口处的网卡发送XDP-REDIRECT(XDP-重定向)标识和第二业务报文,通过目标接口处的网卡向接入网关的下一跳网关发送第二业务报文。XDP_REDIRECT标识为用于表示对业务报文进行转发的字段。相应的,则可以实现直接从网卡驱动层对业务报文进行转发,可以绕过Linux操作系统的内核态中的协议栈,也就是无需通过Linux操作系统的内核态中的协议栈对业务报文进行转发,提高对业务报文进行转发的效率。
相应的,接入网关的下一跳网关(可以称为中间网关)接收到第二业务报文时,如果中间网关与目标出口网关之间不存在其他网关,中间网关可以直接根据第二业务报文头中的目标出口网关的IP地址,向目标出口网关发送第二业务报文。如果中间网关与目标出口网关之间存在其他网关,中间网关可以根据目标出口网关的IP地址,确定与目标出口网关对应的中间网关的下一跳网关,并向中间网关的下一跳网关发送第二业务报文。中间网关的下一跳网关在接收到第二业务报文时,如果与目标出口网关之间不存在其他网关,直接根据第二业务报文头中的目标出口网关的IP地址,向目标出口网关发送第二业务报文,如果与目标出口网关之间存在其他网关,根据目标出口网关的IP地址,确定与目标出口网关对应的下一跳网关,以此类推,经过各个网关将第二业务报文发送至目标出口网关。
另一种实现方式中,中间路由信息包括:接入网关至目标出口网关的目标转发路径。
XDP模块可以从目标转发路径中,确定接入网关的下一跳网关(可以称为中间网关),进而,XDP模块向接入网关的下一跳网关发送第二业务报文。中间网关接收到第二业务报文时,如果目标转发路径中的中间网关与目标出口网关之间不存在其他网关,中间网关可以直接根据第二业务报文头中的目标出口网关的IP地址,向目标出口网关发送第二业务报文。如果目标转发路径中的中间网关与目标出口网关之间存在其他网关,中间网关可以从目标转发路径中,确定中间网关的下一跳网关,并向中间网关的下一跳网关发送第二业务报文。中间网关的下一跳网关在接收到第二业务报文时,如果目转发路径中的中间网关的下一跳网关与目标出口网关之间不存在其他网关,直接根据第二业务报文头中的目标出口网关的IP地址,向目标出口网关发送第二业务报文,如果目标转发路径中的中间网关的下一跳网关与目标出口网关之间存在其他网关,从目标转发路径中,确定对应的下一跳网关,经过目标转发路径中的各个网关将第二业务报文发送至目标出口网关。
相应的,目标出口网关可以对接收到的第二业务报文进行解封装,可以得到第一业务报文,并向第二业务服务器发送第一业务报文。
可以理解的是,第一业务报文与第二业务的报文头中表示转发路径的信息不同,第一业务报文与第二业务报文的报文主体是相同的,该报文主体中记录有第一业务服务器访问第二业务服务器的业务服务的相关信息。相应的,目标出口网关可以向第二业务服务器发送对第二业务报文进行解封装得到的第一业务报文,可以实现第一业务服务器访问第二业务服务器提供的业务服务。
参见图8,图8为本发明实施例提供的一种报文处理系统的结构示意图,本发明实施例提供的报文处理方法应用于该报文处理系统中的接入网关,本实施例中以接入网关804为例进行说明。
客户端801向业务服务器802发送针对目标服务的业务请求。业务服务器802接收到该业务请求后,确定目标服务为业务服务器810所提供的服务,则业务服务器802向接入网关804发送第一业务报文,第一业务报文用于向业务服务器810请求目标服务。
接入网关804中的XDP模块在接收到第一业务报文时,根据第一业务报文的业务信息,从多个出口网关(即出口网关807、出口网关808和出口网关809)中,确定用于向业务服务器810转发第一业务报文的目标出口网关,本实施例中以出口网关807为例进行说明,即出口网关807为目标出口网关。
接入网关804中的XDP模块确定接入网关804与出口网关807之间的中间路由信息。然后,接入网关804中的XDP模块将出口网关807的IP地址封装至第一业务报文的报文头,得到第二业务报文。进而,接入网关804中的XDP模块基于中间路由信息和出口网关807的IP地址,向出口网关807发送第二业务报文。相应的,出口网关807对接收到的第二业务报文进行解封装,得到第一业务报文,并向业务服务器810发送第一业务报文。
业务服务器802通过接入网关804访问业务服务器811的过程、业务服务器803通过接入网关805访问业务服务器810、业务服务器811的过程,以及业务服务器803通过接入网关806访问业务服务器810、业务服务器811的过程,与业务服务器802通过接入网关804访问业务服务器810的过程类型,此处不再赘述。
基于上述处理,接入网关中的XDP模块可以在接收到第一业务服务器发送的第一业务报文时,确定用于向第二业务服务器转发第一业务报文的目标出口网关,并向目标出口网关发送对第一业务报文进行封装得到的第二业务报文。相应的,目标出口网关可以基于第二业务报文,向第二业务服务器发送第一业务报文。接入网关无需通过Linux操作系统的内核态中的协议栈对业务报文进行转发,并且,相对于Linux操作系统的内核态中的协议栈,XDP模块具有高效的报文处理能力,可以提高对业务报文进行转发的效率,进而提高业务服务质量。
参见图9,图9为本发明实施例提供的一种转发策略获取方法的流程图。该方法应用于接入网关的策略管理模块,该方法可以包括以下步骤:
S901:用户发起申请域名加速或出口加速。
针对步骤S901,用户为发送业务报文的第一业务服务器,域名为第一业务服务器所请求访问的第二业务服务器的域名,域名加速也就是在第一业务服务器访问的第二业务服务器时,提高接入网关对第一业务服务器发送的业务报文进行转发的效率。出口也就是向第二业务服务器转发业务报文的出口网关,出口加速也就是在第一业务服务器访问的第二业务服务器时,提高接入网关向出口网关转发业务报文的效率。
S902:业务地址和加速目标的标识下发到策略表中。
针对步骤S902,业务地址包括业务报文的源IP地址、目的IP地址,加速目标也就是用于转发业务报文的出口网关。策略管理模块接收管理服务器发送的转发策略,转发策略用于确定各业务报文对应的出口网关,并生成记录转发策略的MAP表。
S903:主机路由发现。
针对步骤S903,主机也就是接入网关,策略管理模块从接入网关的内核态中获取接入网关对应的路由表。该路由表中记录有接入网关的各接口与各出口网关对应关系、接入网关的各接口与下一跳网关的对应关系,以及接入网关至各出口网关的转发路径。
S904:整合加速目标的标识和目标路由。
策略管理模块对用于确定各业务报文对应的出口网关,以及接入网关对应的路由表进行整合,也就是将转发策略和路由表存储至指定存储位置。
基于上述处理,通过MAP机制实现内核态和应用层共享内存,可以存储较多的转发策略,并且可以降低对转发策略进行更新所需的时间,进一步提高报文转发效率。
参见图10,图10为本发明实施例提供的一种报文处理方法的流程图。该方法应用于接入网关的XDP模块,该方法可以包括以下步骤:
S1001:接收到一个报文。
S1002:通过来源地址判断是否为业务报文,如果是,执行步骤S1004,如果否,执行步骤S1003。
针对步骤S1001和步骤S1002,针对接收到的每一报文,XDP模块根据该报文的源IP地址、目的IP地址,以及接收该报文的接口,判断该报文是否为业务报文。来源地址也就是该报文的源IP地址。
S1003:报文转发到内核。
针对步骤S1003,如果接收到的报文不是业务报文,则XDP模块将该报文转发至接入网关的内核态中的协议栈进行处理。
S1004:根据业务地址分析目标出口(相关策略)。
针对步骤S1004,业务地址包括业务报文的源IP地址、目的IP地址。目标出口也就是用于转发接收到的业务报文的目标出口网关。相关策略也就是转发策略。
如果接收到的报文是业务报文(即第一业务报文),则XDP模块查询转发策略,确定第一业务报文的业务信息对应的出口网关,得到用于转发第一业务报文的目标出口网关。第一业务报文的业务信息包括该业务报文的源IP地址、目的IP地址、业务类型,以及接收第一业务报文的接口中的至少一项。
S1005:根据出口分析可使用网口信息。
针对步骤S1005,可使用网口信息也就是用于向目标出口网关转发第一业务报文的目标接口的标识。在确定出目标出口网关之后,XDP模块从接入网关的各接口中,确定用于向目标出口网关转发第一业务报文的目标接口。
S1006:从内核路由表获取出口相关的路由信息。
针对步骤S1006,出口相关的路由信息也就是前述实施例中的中间路由信息,中间路由信息包括用于向目标出口网关转发业务报文的接入网关的下一跳网关。
在确定出用于向目标出口网关转发业务报文的目标接口之后,XDP模块根据内核态中的路由表记录的接入网关的各接口与下一跳网关的对应关系,确定目标接口对应的下一跳网关,得到用于向目标出口网关转发第一业务报文的接入网关的下一跳网关。
S1007:进行外层地址头封装,重新计算校验和。
针对步骤S1007,XDP模块将目标出口网关的IP地址添加至第一业务报文的报文头,将接入网关的MAC地址作为源MAC地址,以及将目标出口网关对应的接入网关的下一跳网关的MAC地址作为目的MAC地址,添加至业务报文的报文头中,并根据修改后的报文头重新计算对应的校验和。然后,按照修改后的报文头和对应的校验和进行封装,得到第二业务报文。
S1008:将报文从网口发送出去。
通过目标接口向目标出口网关对应的接入网关的下一跳网关(可以称为中间网关)发送第二业务报文。中间网关根据目标出口网关的IP地址,向目标出口网关发送第二业务报文。相应的,目标出口网关基于第二业务报文向第二业务服务器发送第一业务报文。
基于上述处理,可以通过基于eBpf技术的XDP模块对业务报文进行转发,XDP模块可以接通过网卡驱动层对业务报文进行转发,无需通过由Linux操作系统的内核态中的协议栈进行处理,可以提高对业务报文进行转发的效率。并且,XDP模块可以对业务报文的报文头进行修改,将修改后的业务报文封装为GRE格式的隧道报文,直接从物理网口进行转发,避免了标准逻辑网口的处理过程,可以进一步提高报文转发的效率。另外,可以按照隧道报文转发方式,按照GRE报文格式,结合接入网关的路由表对业务报文重新进行封装,则用户可以通过应用层的策略管理模块,更新隧道报文的封装方式,而无需重启接入网关或者重新加载XDP模块。
参见图11,图11为本发明实施例提供的一种接入网关的结构示意图。接入网关包括应用层和内核态。应用层包括:连接管理模块、内核管理模块、北向接口模块、逃生策略管理模块、配置管理模块,以及主机网关和路由发现模块。连接管理模块、内核管理模块、北向接口模块、逃生策略管理模块、主机网关和路由发现模块共同组成前述实施例中的策略管理模块。
连接管理模块用于管理接入网关与各业务服务器的会话。内核管理模块用于将对应的XDP模块加载至对应的网卡接口,以运行XDP模块。北向接口模块用于与管理服务器进行通信,以获取用于确定转发各业务报文的出口网关的转发策略。逃生策略管理模块用于配置判断规则和除业务报文外的其他报文的处理方式,判断规则用于判断接入网关接收到的报文是否为业务报文。主机网关和路由发现模块用于获取接入网关的路由表。配置管理模块用于将转发策略和接入网关的路由表存储至接入网关的内存中的指定存储位置,以实现应用层与内核态的数据共享。
内核态中的指定存储位置中存储有路由网关表、隧道接口表,以及源地址-转发栈表。路由网关表中记录有接入网关的下一跳网关的地址信息,例如,IP地址和MAC地址。隧道接口表记录有接入网关的各个接口与下一跳网关的对应关系。
源地址为接收到的业务报文的IP地址。源地址-转发栈表中记录有用于确定业务报文对应的目标出口网关的转发策略,以及表示业务报文对应的转发信息的转发栈。转发栈包括:接入网关的MAC地址、接入网关至各出口网关的转发路径上的各网关的MAC地址、接入网关所属的VLAN的标识、接入网关至各出口网关的转发路径上的各网关所属的VLAN的标识、接入网关的IP地址、各出口网关的IP地址,以及接入网关至各出口网关的转发路径上的各网关的MPLS标签。
内核态包括:协议栈和XDP模块。协议栈用于对除业务报文外的其他业务报文进行处理。XDP模块用于接收业务报文,并对业务报文进行分析,封装和转发。对业务报文进行分析也就是确定业务报文对应的出口网关,对业务报文进行封装也就是将目标出口网关的IP地址添加至报文头,得到封装后的业务报文。对业务报文进行转发也就是从业务报文对应的出口网关对应的目标接口,向目标出口网关发送封装后的业务报文。
例如,XDP模块从接入网关的网络接口1接收业务报文,并确定业务报文对应的出口网关,将出口网关的IP地址添加至报文头,得到封装后的业务报文。如果业务报文对应的出口网关为出口1,出口1对应的目标接口为网络接口2,则从网络接口2向业务报文对应的出口网关发送封装后的业务报文。如果业务报文对应的出口网关为出口2,出口2对应的目标接口为网络接口3,则从网络接口3向业务报文对应的出口网关发送封装后的业务报文。如果业务报文对应的出口网关为出口3,出口3对应的目标接口为网络接口4,则从网络接口4向业务报文对应的出口网关发送封装后的业务报文。
基于上述处理,可以通过MAP机制实现内核态和应用层共享内存,可以存储较多的转发策略,并且可以降低对转发策略进行更新所需的时间,进一步提高报文转发效率。并且,通过基于eBpf技术的XDP模块对业务报文进行转发,XDP模块可以接通过网卡驱动层对业务报文进行转发,无需通过由Linux操作系统的内核态中的协议栈进行处理,可以提高对业务报文进行转发的效率。
与图1的方法实施例相对应,参见图12,图12为本发明实施例提供的一种报文处理装置的结构图,所述装置应用于接入网关中的XDP模块,所述装置包括:
目标出口网关确定模块1201,用于在接收到第一业务服务器发送的第一业务报文时,根据所述第一业务报文的业务信息,确定用于向第二业务服务器转发所述第一业务报文的出口网关,作为目标出口网关;
中间路由信息确定模块1202,用于确定所述接入网关与所述目标出口网关之间的路由信息,作为中间路由信息;
第二业务报文生成模块1203,用于将所述目标出口网关的IP地址封装至所述第一业务报文的报文头,得到第二业务报文;
第二业务报文转发模块1204,用于基于所述中间路由信息和所述目标出口网关的IP地址,向所述目标出口网关发送所述第二业务报文,以使所述目标出口网关基于所述第二业务报文向所述第二业务服务器发送所述第一业务报文。
可选的,所述中间路由信息包括:所述目标出口网关对应的所述接入网关的下一跳网关;
所述中间路由信息确定模块1202,具体用于根据所述接入网关的各接口与各出口网关的对应关系,从所述接入网关的各接口中,确定用于向所述目标出口网关转发所述第一业务报文的接口,作为目标接口;
根据所述接入网关的各接口与下一跳网关的对应关系,确定所述目标接口对应的下一跳网关,得到与所述目标出口网关对应的所述接入网关的下一跳网关,作为中间路由信息。
可选的,所述第二业务报文生成模块1203,具体用于将所述目标出口网关的IP地址添加至所述第一业务报文的报文头中;
将所述接入网关的MAC地址作为源MAC地址,以及将所述目标出口网关对应的所述接入网关的下一跳网关的MAC地址作为目的MAC地址,添加至所述第一业务报文的报文头中;
按照修改后的报文头,对所述第一业务报文进行GRE封装,得到第二业务报文。
可选的,所述中间路由信息包括:所述接入网关至所述目标出口网关的目标转发路径;
所述中间路由信息确定模块1202,具体用于查询所述接入网关的路由表,得到从所述接入网关至所述目标出口网关的目标转发路径,作为中间路由信息。
可选的,所述第二业务报文生成模块1203,具体用于将所述目标出口网关的IP地址添加至所述第一业务报文的报文头中;
将所述接入网关的MAC地址作为源MAC地址,以及将所述目标转发路径中所述接入网关后的第一个网关的MAC地址作为目的MAC地址,添加至所述第一业务报文的报文头中;
获取所述目标转发路径中的各网关的MPLS标识,并将所述目标转发路径中的各网关的MPLS标识添加至所述第一业务报文的报文头中;
按照修改后的报文头,对所述第一业务报文进行SR封装,得到第二业务报文。
可选的,所述目标出口网关确定模块1201,具体用于在接收到第一业务服务器发送的第一业务报文时,从指定存储位置中获取转发策略;其中,所述转发策略为所述接入网关中的策略管理模块存储至所述指定存储位置的;所述指定存储位置为所述接入网关的应用层与内核态共享的存储位置;
在所述转发策略中,查询所述第一业务报文的业务信息对应的出口网关,得到用于向第二业务服务器转发所述第一业务报文的出口网关,作为目标出口网关。
可选的,所述第一业务报文的业务信息包括:所述第一业务报文的源IP地址、目的IP地址、业务类型和接收所述业务报文的接口中的至少一项;所述源IP地址为发送所述第一业务报文的第一业务服务器的IP地址;所述目的IP地址为用于接收所述第一业务报文的第二业务服务器的IP地址。
基于本发明实施例提供的报文处理装置,接入网关中的XDP模块可以在接收到第一业务服务器发送的第一业务报文时,确定用于向第二业务服务器转发第一业务报文的目标出口网关,并向目标出口网关发送对第一业务报文进行封装得到的第二业务报文。相应的,目标出口网关可以基于第二业务报文,向第二业务服务器发送第一业务报文。接入网关无需通过Linux操作系统的内核态中的协议栈对业务报文进行转发,并且,相对于Linux操作系统的内核态中的协议栈,XDP模块具有高效的报文处理能力,可以提高对业务报文进行转发的效率,进而提高业务服务质量。
与图3的方法实施例相对应,参见图13,图13为本发明实施例提供的一种转发策略获取装置的结构图,所述装置应用于接入网关中的策略管理模块,所述装置包括:
业务信息发送模块1301,用于向管理服务器发送所述接入网关对应的各出口网关的标识,以及所述接入网关已接收到的各业务报文的业务信息,以使所述管理服务器根据各业务报文的业务信息,生成用于确定各业务报文对应的出口网关的转发策略;
转发策略获取模块1302,用于接收所述管理服务器发送的所述转发策略,并从所述接入网关的内核态中获取所述接入网关对应的路由表;其中,所述路由表中记录有所述接入网关的各接口与各出口网关对应关系、所述接入网关的各接口与下一跳网关的对应关系,以及所述接入网关至各出口网关的转发路径;
存储模块1303,用于将所述转发策略和所述路由表存储至指定存储位置;其中,所述指定存储位置为所述接入网关的应用层与内核态共享的存储位置。
基于本发明实施例提供的转发策略获取装置,由接入网关的应用层的策略管理模块将转发策略存储至接入网关的应用层与内核态共享的指定存储位置,后续,XDP模块可以从该指定存储位置获取转发策略,并基于获取到的转发策略确定接收到的业务报文对应的出口网关,通过MAP机制实现内核态和应用层共享内存,可以存储较多的转发策略,并且可以降低对转发策略进行更新所需的时间,进一步提高报文转发效率。
本发明实施例还提供了一种电子设备,如图14所示,包括处理器1401、通信接口1402、存储器1403和通信总线1404,其中,处理器1401,通信接口1402,存储器1403通过通信总线1404完成相互间的通信,
存储器1403,用于存放计算机程序;
处理器1401,用于执行存储器1403上所存放的程序时,实现上述实施例中任一所述的报文处理方法步骤,或者上述实施例中任一所述的转发策略获取方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的报文处理方法,或者上述实施例中任一所述的转发策略获取方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的报文处理方法,或者上述实施例中任一所述的转发策略获取方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种报文处理方法,其特征在于,所述方法应用于接入网关中的增强数据路径XDP模块,所述方法包括:
在接收到第一业务服务器发送的第一业务报文时,根据所述第一业务报文的业务信息,确定用于向第二业务服务器转发所述第一业务报文的出口网关,作为目标出口网关;
确定所述接入网关与所述目标出口网关之间的路由信息,作为中间路由信息;
将所述目标出口网关的互联网协议IP地址封装至所述第一业务报文的报文头,得到第二业务报文;
基于所述中间路由信息和所述目标出口网关的IP地址,向所述目标出口网关发送所述第二业务报文,以使所述目标出口网关基于所述第二业务报文向所述第二业务服务器发送所述第一业务报文。
2.根据权利要求1所述的方法,其特征在于,所述中间路由信息包括:所述目标出口网关对应的所述接入网关的下一跳网关;
所述确定所述接入网关与所述目标出口网关之间的路由信息,作为中间路由信息,包括:
根据所述接入网关的各接口与各出口网关的对应关系,从所述接入网关的各接口中,确定用于向所述目标出口网关转发所述第一业务报文的接口,作为目标接口;
根据所述接入网关的各接口与下一跳网关的对应关系,确定所述目标接口对应的下一跳网关,得到与所述目标出口网关对应的所述接入网关的下一跳网关,作为中间路由信息。
3.根据权利要求2所述的方法,其特征在于,所述将所述目标出口网关的IP地址封装至所述第一业务报文的报文头,得到第二业务报文,包括:
将所述目标出口网关的IP地址添加至所述第一业务报文的报文头中;
将所述接入网关的媒体访问控制MAC地址作为源MAC地址,以及将所述目标出口网关对应的所述接入网关的下一跳网关的MAC地址作为目的MAC地址,添加至所述第一业务报文的报文头中;
按照修改后的报文头,对所述第一业务报文进行通用路由GRE封装,得到第二业务报文。
4.根据权利要求1所述的方法,其特征在于,所述中间路由信息包括:所述接入网关至所述目标出口网关的目标转发路径;
所述确定所述接入网关与所述目标出口网关之间的路由信息,作为中间路由信息,包括:
查询所述接入网关的路由表,得到从所述接入网关至所述目标出口网关的目标转发路径,作为中间路由信息。
5.根据权利要求4所述的方法,其特征在于,所述将所述目标出口网关的IP地址封装至所述第一业务报文的报文头,得到第二业务报文,包括:
将所述目标出口网关的IP地址添加至所述第一业务报文的报文头中;
将所述接入网关的MAC地址作为源MAC地址,以及将所述目标转发路径中所述接入网关后的第一个网关的MAC地址作为目的MAC地址,添加至所述第一业务报文的报文头中;
获取所述目标转发路径中的各网关的多协议标签交换MPLS标识,并将所述目标转发路径中的各网关的MPLS标识添加至所述第一业务报文的报文头中;
按照修改后的报文头,对所述第一业务报文进行分段路由SR封装,得到第二业务报文。
6.根据权利要求1所述的方法,其特征在于,所述在接收到第一业务服务器发送的第一业务报文时,根据所述第一业务报文的业务信息,确定用于向第二业务服务器转发所述第一业务报文的出口网关,作为目标出口网关,包括:
在接收到第一业务服务器发送的第一业务报文时,从指定存储位置中获取转发策略;其中,所述转发策略为所述接入网关中的策略管理模块存储至所述指定存储位置的;所述指定存储位置为所述接入网关的应用层与内核态共享的存储位置;
在所述转发策略中,查询所述第一业务报文的业务信息对应的出口网关,得到用于向第二业务服务器转发所述第一业务报文的出口网关,作为目标出口网关。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述第一业务报文的业务信息包括:所述第一业务报文的源IP地址、目的IP地址、业务类型和接收所述业务报文的接口中的至少一项;所述源IP地址为发送所述第一业务报文的第一业务服务器的IP地址;所述目的IP地址为用于接收所述第一业务报文的第二业务服务器的IP地址。
8.一种转发策略获取方法,其特征在于,所述方法应用于接入网关中的策略管理模块,所述方法包括:
向管理服务器发送所述接入网关对应的各出口网关的标识,以及所述接入网关已接收到的各业务报文的业务信息,以使所述管理服务器根据各业务报文的业务信息,生成用于确定各业务报文对应的出口网关的转发策略;
接收所述管理服务器发送的所述转发策略,并从所述接入网关的内核态中获取所述接入网关对应的路由表;其中,所述路由表中记录有所述接入网关的各接口与各出口网关对应关系、所述接入网关的各接口与下一跳网关的对应关系,以及所述接入网关至各出口网关的转发路径;
将所述转发策略和所述路由表存储至指定存储位置;其中,所述指定存储位置为所述接入网关的应用层与内核态共享的存储位置。
9.一种报文处理装置,其特征在于,所述装置应用于接入网关中的XDP模块,所述装置包括:
目标出口网关确定模块,用于在接收到第一业务服务器发送的第一业务报文时,根据所述第一业务报文的业务信息,确定用于向第二业务服务器转发所述第一业务报文的出口网关,作为目标出口网关;
中间路由信息确定模块,用于确定所述接入网关与所述目标出口网关之间的路由信息,作为中间路由信息;
第二业务报文生成模块,用于将所述目标出口网关的IP地址封装至所述第一业务报文的报文头,得到第二业务报文;
第二业务报文转发模块,用于基于所述中间路由信息和所述目标出口网关的IP地址,向所述目标出口网关发送所述第二业务报文,以使所述目标出口网关基于所述第二业务报文向所述第二业务服务器发送所述第一业务报文。
10.一种转发策略获取装置,其特征在于,所述装置应用于接入网关中的策略管理模块,所述装置包括:
业务信息发送模块,用于向管理服务器发送所述接入网关对应的各出口网关的标识,以及所述接入网关已接收到的各业务报文的业务信息,以使所述管理服务器根据各业务报文的业务信息,生成用于确定各业务报文对应的出口网关的转发策略;
转发策略获取模块,用于接收所述管理服务器发送的所述转发策略,并从所述接入网关的内核态中获取所述接入网关对应的路由表;其中,所述路由表中记录有所述接入网关的各接口与各出口网关对应关系、所述接入网关的各接口与下一跳网关的对应关系,以及所述接入网关至各出口网关的转发路径;
存储模块,用于将所述转发策略和所述路由表存储至指定存储位置;其中,所述指定存储位置为所述接入网关的应用层与内核态共享的存储位置。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7,或者权利要求8任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7,或者权利要求8任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211268737.2A CN115834472B (zh) | 2022-10-17 | 2022-10-17 | 一种报文处理方法、转发策略获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211268737.2A CN115834472B (zh) | 2022-10-17 | 2022-10-17 | 一种报文处理方法、转发策略获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115834472A true CN115834472A (zh) | 2023-03-21 |
CN115834472B CN115834472B (zh) | 2024-07-19 |
Family
ID=85524853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211268737.2A Active CN115834472B (zh) | 2022-10-17 | 2022-10-17 | 一种报文处理方法、转发策略获取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834472B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527973A (zh) * | 2024-01-04 | 2024-02-06 | 深圳鼎信通达股份有限公司 | 基于xdp的高速数据转发方法、装置、语音网关及介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128554A1 (en) * | 2002-09-09 | 2004-07-01 | Netrake Corporation | Apparatus and method for allowing peer-to-peer network traffic across enterprise firewalls |
CN103516699A (zh) * | 2012-06-30 | 2014-01-15 | 华为技术有限公司 | 一种实现数据流切换的方法、装置及系统 |
CN104601467A (zh) * | 2014-12-31 | 2015-05-06 | 华为技术有限公司 | 一种发送报文的方法和装置 |
CN105376155A (zh) * | 2015-10-14 | 2016-03-02 | 北京无线天利移动信息技术股份有限公司 | 一种基于分布式集群架构的智能路由系统及方法 |
CN105553810A (zh) * | 2015-12-14 | 2016-05-04 | 中国联合网络通信集团有限公司 | 一种转发专线业务报文的方法及装置 |
CN106254265A (zh) * | 2015-06-10 | 2016-12-21 | 华为技术有限公司 | 处理报文的方法、装置和系统 |
US20200014560A1 (en) * | 2018-07-04 | 2020-01-09 | Graphcore Limited | Gateway fabric ports |
US20210409316A1 (en) * | 2020-06-30 | 2021-12-30 | Pensando Systems Inc. | Methods and systems for classifying traffic flows based on packet processing metadata |
CN114039789A (zh) * | 2021-11-17 | 2022-02-11 | 北京天融信网络安全技术有限公司 | 流量防护方法及电子设备、存储介质 |
CN114531384A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 一种业务处理方法、装置、设备及系统 |
CN114995945A (zh) * | 2021-03-01 | 2022-09-02 | 瞻博网络公司 | 部署到计算节点的容器的隔离的数据接口 |
US20220286392A1 (en) * | 2021-03-05 | 2022-09-08 | Cisco Technology, Inc. | Classification and forwarding node for integrating disparate headend traffic ingress services with disparate backend services |
US20220329518A1 (en) * | 2021-04-08 | 2022-10-13 | Cisco Technology, Inc. | Mechanisms for packet path tracing and per-hop delay measurement in segment routing with multiprotocol label switching (sr-mpls) networks |
-
2022
- 2022-10-17 CN CN202211268737.2A patent/CN115834472B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128554A1 (en) * | 2002-09-09 | 2004-07-01 | Netrake Corporation | Apparatus and method for allowing peer-to-peer network traffic across enterprise firewalls |
CN103516699A (zh) * | 2012-06-30 | 2014-01-15 | 华为技术有限公司 | 一种实现数据流切换的方法、装置及系统 |
CN104601467A (zh) * | 2014-12-31 | 2015-05-06 | 华为技术有限公司 | 一种发送报文的方法和装置 |
CN106254265A (zh) * | 2015-06-10 | 2016-12-21 | 华为技术有限公司 | 处理报文的方法、装置和系统 |
CN105376155A (zh) * | 2015-10-14 | 2016-03-02 | 北京无线天利移动信息技术股份有限公司 | 一种基于分布式集群架构的智能路由系统及方法 |
CN105553810A (zh) * | 2015-12-14 | 2016-05-04 | 中国联合网络通信集团有限公司 | 一种转发专线业务报文的方法及装置 |
US20200014560A1 (en) * | 2018-07-04 | 2020-01-09 | Graphcore Limited | Gateway fabric ports |
US20210409316A1 (en) * | 2020-06-30 | 2021-12-30 | Pensando Systems Inc. | Methods and systems for classifying traffic flows based on packet processing metadata |
CN114531384A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 一种业务处理方法、装置、设备及系统 |
CN114995945A (zh) * | 2021-03-01 | 2022-09-02 | 瞻博网络公司 | 部署到计算节点的容器的隔离的数据接口 |
US20220286392A1 (en) * | 2021-03-05 | 2022-09-08 | Cisco Technology, Inc. | Classification and forwarding node for integrating disparate headend traffic ingress services with disparate backend services |
US20220329518A1 (en) * | 2021-04-08 | 2022-10-13 | Cisco Technology, Inc. | Mechanisms for packet path tracing and per-hop delay measurement in segment routing with multiprotocol label switching (sr-mpls) networks |
CN114039789A (zh) * | 2021-11-17 | 2022-02-11 | 北京天融信网络安全技术有限公司 | 流量防护方法及电子设备、存储介质 |
Non-Patent Citations (2)
Title |
---|
FEDERICO PAROLA: "Providing Telco-oriented Network Services with eBPF: the Case for a 5G Mobile Gateway", 《 2021 IEEE 7TH INTERNATIONAL CONFERENCE ON NETWORK SOFTWARIZATION (NETSOFT)》, 26 July 2021 (2021-07-26) * |
郭文静: "支持IPv6的高性能IPSec VPN网关关键技术研究", 《CNKI中国优秀硕士论文全文数据库》, 15 May 2022 (2022-05-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527973A (zh) * | 2024-01-04 | 2024-02-06 | 深圳鼎信通达股份有限公司 | 基于xdp的高速数据转发方法、装置、语音网关及介质 |
CN117527973B (zh) * | 2024-01-04 | 2024-04-09 | 深圳鼎信通达股份有限公司 | 基于xdp的高速数据转发方法、装置、语音网关及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115834472B (zh) | 2024-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112470436B (zh) | 用于提供多云连通性的系统、方法、以及计算机可读介质 | |
CN111885075B (zh) | 容器通信方法、装置、网络设备及存储介质 | |
EP2853077B1 (en) | Method of seamless integration and independent evolution of information-centric networking via software defined networking | |
EP2206052B1 (en) | Methods and apparatus for managing addresses related to virtual partitions of a session exchange device | |
CN113326228B (zh) | 基于远程直接数据存储的报文转发方法、装置及设备 | |
US9871720B1 (en) | Using packet duplication with encapsulation in a packet-switched network to increase reliability | |
JP6269999B2 (ja) | パケット処理方法および装置 | |
US9537755B2 (en) | Access relay method and access gateway device | |
CN107770072B (zh) | 一种发送和接收报文的方法和设备 | |
WO2021088433A1 (zh) | 一种报文的处理方法,装置和系统 | |
US20190081890A1 (en) | Method and apparatus for information centric networking (icn) over locator/identifier separator protocol (lisp) | |
CN107580079A (zh) | 一种报文传输方法和装置 | |
CN111147519A (zh) | 数据检测方法、装置、电子设备和介质 | |
CN111131539B (zh) | 报文转发方法及装置 | |
CN115834472B (zh) | 一种报文处理方法、转发策略获取方法及装置 | |
CN109246016B (zh) | 跨vxlan的报文处理方法和装置 | |
WO2024159962A1 (zh) | 虚拟实例的流量镜像方法、装置、虚拟机平台及存储介质 | |
CN110022263B (zh) | 一种数据传输的方法及相关装置 | |
WO2021139568A1 (zh) | 发送应答报文的方法、装置、计算设备和存储介质 | |
WO2024001701A1 (zh) | 数据处理方法、装置及系统 | |
CN114285907B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN111800340B (zh) | 数据包转发方法和装置 | |
CN110650222B (zh) | 一种网络访问方法及装置 | |
CN113114565B (zh) | 数据报文转发方法及装置、存储介质及电子设备 | |
CN114363240B (zh) | 网络转发设备和数据转发方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |