CN111770049B - 全局缓存变量及报文信息存储方法及装置 - Google Patents
全局缓存变量及报文信息存储方法及装置 Download PDFInfo
- Publication number
- CN111770049B CN111770049B CN202010386425.6A CN202010386425A CN111770049B CN 111770049 B CN111770049 B CN 111770049B CN 202010386425 A CN202010386425 A CN 202010386425A CN 111770049 B CN111770049 B CN 111770049B
- Authority
- CN
- China
- Prior art keywords
- information
- parameter
- message
- module
- global cache
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本发明提供一种全局缓存变量及报文信息存储方法及装置,其中全局缓存变量,包括:第一部分,用于存储报文解析后的原始信息;第二部分,用于存储对报文进行转发逻辑处理操作中产生的中间结果;第三部分,用于存储对报文进行转发操作时所需的发送信息。本发明可以在全局变量基础上实现报文转发,由于全局缓存变量可以灵活地设定变量长度和数量,所以非常灵活,便于报文转发过程中对报文信息进行共享操作。
Description
技术领域
本发明涉及通信技术领域,尤其涉及全局缓存变量及报文信息存储方法及装置。
背景技术
云计算虚拟网络环境中具有很多虚拟网络设备。虚拟网络设备通常采用软件交换机对报文实现交换路由功能,软件交换机可以包括OpenvSwitch。
在虚拟网络设备中报文的转发逻辑比较复杂,虚拟网络设备中对报文的处理模块可以包括多个模块,例如:解析模块、解封装模块、路由模块、交换模块、封装模块和发送模块。一条报文需要各个处理模块依次执行处理操作,所以各个处理模块之间需要共享报文的元信息和处理结果。
目前,通常采用多个寄存器方式来共享报文元信息和中间处理结果,但是在虚拟网络设备中通常采用网络通信协议(openflow协议),网络通信协议中对于寄存器的个数和长度设有限制,在使用寄存器共享报文信息和中间处理结果时会受到寄存器个数限制和长度限制,非常不灵活。
目前,通常采用多个寄存器和多个metadata的方式在多个表(table)中共享报文的中间处理结果。但是寄存器和metadata定义在openflow协议中,这些寄存器的个数和长度有限,能存储的信息十分有限。
在需要存储较长的中间处理结果的情况下,需要多个寄存器组合来存储,但是,寄存器组合的方式也都是固定长度的。由于中间处理结果会经过多个处理模块的处理和更新,所以同一数据长度会不断变化,采用寄存器组合的方式也非常不灵活,不能很好的满足报文转发中多个模块之间共享信息的需求。
发明内容
鉴于此,本发明提供全局缓存变量及报文信息存储方法及装置,提供全局缓存变量来实现各个处理模块之间的共享报文信息的目的,并在全局变量基础上实现报文转发。由于全局缓存变量不再使用多个寄存器方式,且全局变量可以灵活设定各字段的长度和数量,所以非常灵活。
为了实现上述目的,本发明提供了下述技术特征:
一种全局缓存变量,包括:
第一部分,用于存储报文解析后的原始信息;
第二部分,用于存储对报文进行转发逻辑处理操作中产生的中间结果;
第三部分,用于存储对报文进行转发操作时所需的发送信息。
可选的,所述第一部分包括:隧道内层信息和隧道外层信息;
其中所述隧道内层信息包括:
第1参数:接收网桥编号或接收端口编号;
第2参数:隧道信息;
第3参数:二层以太网的头部信息;
第4参数:二层VLAN标签的头部信息;
第5参数:三层头部信息,互联网版本号,和,四层协议类型;
第6参数:四层头部信息,三层协议端口号和标志位;
第7参数:自定义偏移地址开始自定义长度的报文内容;
其中所述隧道外层信息包括:
二层以太网头部信息;
VLAN信息;
三层头部信息;
隧道信息。
可选的,所述第二部分包括:隧道内层信息和隧道外层信息;
其中所述隧道内层信息包括:
第1参数:报文的租户信息;
第2参数:报文是二层交换还是三层路由的标志位,交换匹配规则编号以及目的端口;
第3参数:路由匹配规则编号,以及,下一跳的目的IP地址;
第4参数:ARP查找匹配规则编号,以及,目的IP地址对应的目的MAC地址;
第5参数:报文的源MAC地址是否需要替换的标志位,以及新的源MAC地址;
第6参数:报文的隧道信息是否需要修改的标志位,以及,新地隧道信息;
第7参数:报文匹配的安全规则编号,以及,转发还是丢弃标志位;
第8参数:报文匹配的ACL规则编号,以及,转发还是丢弃标志位;
第9参数:报文是否达到流量限制门限的标志位;
其中隧道外层信息包括:
报文的目的IP匹配的ACL规则编号;
报文处理标志位,报文处理标志位包括转发、丢弃或上送CPU。
可选的,所述第三部分包括:隧道内层信息和隧道外层信息;
其中隧道内层信息包括:
第1参数:发送端口编号;
第2参数:发送端口的隧道信息;
第3参数:二层以太网的头部信息;
第4参数:二层VLAN标签的头部信息;
第5参数:三层头部信息,互联网版本号,和,四层协议类型;
第6参数:四层头部信息,三层协议端口号和标志位;
第7参数:自定义偏移地址开始自定义长度的报文内容;
其中隧道外层信息包括:
二层以太网的头部信息;
三层头部信息。
一种报文转发方法,应用于虚拟网络设备,所述虚拟网络设备存储有所述的全局缓存变量,所述方法包括:
从接收端口获取报文;
对所述报文进行解析操作获得原始信息,并存储所述原始信息至所述全局缓存变量的第一部分;
对报文进行转发逻辑处理操作获得中间结果,并存储中间结果至所述全局缓存变量的第二部分;
从所述全局缓存变量的第一部分和第二部分提取发送信息,并存储所述发送信息至所述全局缓存变量的第三部分;
基于所述全局缓存变量中第三部分存储的发送信息执行转发操作。
一种报文转发装置,集成于虚拟网络设备,所述报文转发装置包括接收模块、解析模块、解封装模块、入向ACL模块、路由模块、ARP模块、交换模块、出向ACL模块、封装模块和发送模块,且,所述解析模块、解封装模块、路由模块、交换模块、封装模块和发送模块共享上述的全局缓存变量;
接收模块,用于从接收端口获取报文;
解析模块,用于对所述报文进行解析操作获得原始信息,并存储所述原始信息至所述全局缓存变量的第一部分;
解封装模块、入向ACL模块、路由模块、ARP模块、交换模块、出向ACL模块和封装模块依次对报文进行转发逻辑处理操作获得中间结果,并利用中间结果存储中间结果至所述全局缓存变量的第二部分;
发送模块,用于从所述全局缓存变量的第一部分和第二部分提取发送信息,并存储到所述全局缓存变量的第三部分,并基于所述全局缓存变量中第三部分存储的发送信息执行转发操作。
可选的,解析模块用于对所述报文进行解析操作获得原始信息,并存储所述原始信息至所述全局缓存变量的第一部分,具体包括:
所述解析模块对所述报文进行解析操作获得原始信息;
存储所述原始信息至所述全局缓存变量的第一部分;
其中所述全局缓存变量的第一部分包括:隧道内层信息和隧道外层信息;
其中所述隧道内层信息包括:
第1参数:接收网桥编号或接收端口编号;
第2参数:隧道信息;
第3参数:二层以太网的头部信息;
第4参数:二层VLAN标签信息的头部信息;
第5参数:三层头部信息,互联网版本号,和,四层协议类型;
第6参数:四层头部信息,三层协议端口号和标志位;
第7参数:自定义偏移地址开始自定义长度的报文内容;
其中所述隧道外层信息包括:
二层以太网头部信息;
VLAN信息;
三层头部信息;
隧道信息。
可选的,所述解封装模块、入向ACL模块、路由模块、ARP模块、交换模块、出向ACL模块、和封装模块依次对报文进行转发逻辑处理操作获得中间结果,并利用中间结果存储中间结果至所述全局缓存变量的第二部分,具体包括:
所述解封装模块基于全局缓存变量中第一部分执行解封装操作,并依据解封装结果更新全局缓存变量中的第二部分;
入向ACL模块基于第二部分中参数过滤入向报文;
路由模块基于全局缓存变量的第一部分和第二部分执行路由操作,并依据路由结果更新全局缓存变量的第二部分;
ARP模块依据隧道内层的目的IP地址查找MAC地址,若能够查找到则将该MAC地址作为目的IP地址对应的目的MAC地址;
交换模块基于全局缓存变量的第二部分执行路由操作,并依据交换结果更新全局缓存变量的第二部分;
出向ACL模块基于第二部分中参数过滤出向报文;
封装模块基于全局缓存变量的第二部分执行封装操作,并依据封装结果更新全局缓存变量的第二部分;
封装模块操作之后所述全局缓存变量的第二部分包括:隧道内层信息和隧道外层信息;
其中所述隧道内层信息包括:
第1参数:报文的租户信息;
第2参数:报文是二层交换还是三层路由的标志位,交换匹配规则编号以及目的端口;
第3参数:路由匹配规则编号,以及,下一跳的目的IP地址;
第4参数:ARP查找匹配规则编号,以及,目的IP地址对应的目的MAC地址;
第5参数:报文的源MAC地址是否需要替换的标志位,以及新的源MAC地址;
第6参数:报文的隧道信息是否需要修改的标志位,以及,新地隧道信息;
第7参数:报文匹配的安全规则编号,以及,转发还是丢弃标志位;
第8参数:报文匹配的ACL规则编号,以及,转发还是丢弃标志位;
第9参数:报文是否达到流量限制门限的标志位;
其中所述隧道外层信息包括:
报文的目的IP匹配的ACL规则编号;
报文处理标志位,报文处理标志位包括转发、丢弃或上送CPU。
可选的,所述第三部分包括:
隧道内层信息和隧道外层信息;
隧道内层信息包括:
第1参数:发送端口编号;
第2参数:发送端口的隧道信息;
第3参数:二层以太网的头部信息;
第4参数:二层VLAN标签信息的头部信息;
第5参数:三层头部信息,互联网版本号,和,四层协议类型;
第6参数:四层头部信息,三层协议端口号和标志位;
第7参数:自定义偏移地址开始自定义长度的报文内容;
其中所述隧道外层信息包括:
二层以太网的头部信息;
三层头部信息。
一种报文转发系统,包括:
发送设备,与所述发送设备相连的虚拟网络设备,与所述虚拟网络设备相连的接收设备;其中所述虚拟网络设备存储有全局缓存变量;
其中,所述虚拟网络设备,用于从接收端口获取报文;对所述报文进行解析操作获得原始信息,并存储所述原始信息至所述全局缓存变量的第一部分;对报文进行转发逻辑处理操作获得中间结果,并存储中间结果至所述全局缓存变量的第二部分;从所述全局缓存变量的第一部分和第二部分提取发送信息,并存储所述发送信息至所述全局缓存变量的第三部分;基于所述全局缓存变量中第三部分存储的发送信息执行转发操作。
通过以上技术手段,可以实现以下有益效果:
本发明提供全局缓存变量来实现各个处理模块之间的共享报文信息的目的,并根据报文转发过程将全局缓存变量分为三个部分:第一部分用于存储报文解析后的原始信息;第二部分用于存储对报文进行转发逻辑处理操作中产生的中间结果;第三部分用于存储对报文进行转发操作时所需的发送信息。
本发明可以在全局变量基础上实现报文转发,由于全局缓存变量可以灵活地设定变量长度和数量,所以非常灵活,便于报文转发过程中对报文信息进行共享操作。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种全局缓存变量的示意图;
图2和图3为本发明实施例提供的一种报文转发方法实施例一的流程图;
图4为本发明实施例提供的一种报文转发方法实施例二的流程图;
图5为本发明实施例提供的一种报文转发系统的结构示意图。
具体实施方式
技术术语:
VLAN标签;其中VLAN为Virtual Local Area Network,即虚拟局域网;在虚拟局域网中为了使设备能够分辨不同VLAN报文,需要在报文中添加标识VLAN信息的字段。IEEE802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag),用以标识VLAN信息。
ACL:访问控制列表(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。
ARP模块中ARP协议可以完成任意网络地址到任意物理地址的转化。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明不再使用多个寄存器的方式于各个处理模块之间的共享报文信息,而是提供一种全局缓存变量,全局缓存变量中具有多字段,且各字段数量和长度可以根据实际情况而定,因此通过全局缓存变量于各个处理模块之间的共享报文信息非常灵活。
参见图1,本发明提供了一种全局缓存变量,包括三个部分:
第一部分,用于存储报文解析后的原始信息;
第二部分,用于存储对报文进行转发逻辑处理操作中产生的中间结果;
第三部分,用于存储对报文进行转发操作时所需的发送信息。
本发明提供的一种全局缓存变量中第一部分、第二部分和第三部分的具体数据结构,可以包括以下内容:
第一部分用于存储报文解析后的原始信息,第一部分可以包括:隧道内层信息和隧道外层信息;
其中所述隧道内层信息包括:
第1参数:接收网桥编号或接收端口编号;
为了适用于不同二层网络设备(网桥或交换机),原始信息可以包括接收网桥的编号或者接收端口的编号。
第2参数:隧道信息;隧道信息为报文传输隧道的信息。
第3参数:二层以太网的头部信息;即L2eth头部信息。
第4参数:二层VLAN标签的头部信息;即L2vlan信息。
第5参数:三层头部信息,互联网版本号,和,四层协议类型;
互联网版本号可以包括IPV4或IPV 6,IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。IPv6是用于替代现行版本IPv4的下一代IP协议。
三层协议类型可以包括ARP、ICMP、TCP或UDP。
其中ARP为地址解析协议(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。
TCP传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
UDP Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User DatagramProtocol)。
第6参数:四层头部信息,三层协议端口号和标志位。
四层协议端口号和标志位为ARP/ICMP/TCP/UDP端口号和标志位。
第7参数:自定义偏移地址开始自定义长度的报文内容。
其中所述隧道外层信息包括:
二层以太网头部信息;
VLAN信息;
三层头部信息;
隧道信息。
第二部分用于存储对报文进行转发逻辑处理操作中产生的中间结果,所述第二部分包括:隧道内层信息和隧道外层信息;
其中所述隧道内层信息包括:
第1参数:报文的租户信息;也即租赁虚拟网络租户的信息。
第2参数:报文是二层转发还是三层转发的标志位;
第3参数:路由匹配规则编号,以及,下一跳的目的IP地址;
第4参数:ARP查找匹配规则编号,以及,目的IP地址对应的目的MAC地址;
第5参数:报文的源MAC地址是否需要替换的标志位,以及新的源MAC地址;
第6参数:报文的隧道信息是否需要修改的标志位,以及,新地隧道信息;
第7参数:报文匹配的安全规则编号,以及,转发还是丢弃标志位;
第8参数:报文匹配的ACL规则编号,以及,转发还是丢弃标志位;
第9参数:报文是否达到流量限制门限的标志位。
其中隧道外层信息包括:
报文的目的IP匹配的ACL规则编号;
报文处理标志位,报文处理标志位包括转发、丢弃或上送CPU。
第三部分用于存储对报文进行转发操作时所需的发送信息,所述第三部分包括:隧道内层信息和隧道外层信息。
其中隧道内层信息包括:
第1参数:发送端口编号;
第2参数:发送端口的隧道信息;
第3参数:二层以太网的头部信息;
第4参数:二层VLAN标签的头部信息;
第5参数:三层头部信息,互联网版本号,和,四层协议类型;
第6参数:四层头部信息,三层协议端口号和标志位;
第7参数:自定义偏移地址开始自定义长度的报文内容。
其中隧道外层信息包括:
二层以太网的头部信息;
三层头部信息。
本发明提供了一种报文转发装置,集成于虚拟网络设备,所述报文转发装置包括接收模块、解析模块、解封装模块、入向ACL模块、路由模块、ARP模块、交换模块、出向ACL模块、封装模块和发送模块,且,所述解析模块、解封装模块、入向ACL模块、路由模块、ARP模块、交换模块、出向ACL模块、封装模块和发送模块共享如图3所示全局缓存变量。
其中,解析模块对应全局缓存变量的第一部分,解封装模块、入向ACL模块、路由模块、ARP模块、交换模块出向ACL模块和封装模块对应全局缓存变量的第二部分,发送模块对应全局缓存变量的第三部分。
本发明提供了一种报文转发方法的实施例一,参见图2和图3,可以包括以下步骤:
步骤S201:接收模块获取报文并发送至解析模块。
步骤S202:解析模块对所述报文进行解析操作获得原始信息,并存储所述原始信息至所述全局缓存变量的第一部分。
解析模块执行解析操作后可以获得原始信息,并将原始信息分别存储至全局缓存变量中第一部分中。
步骤S203:解封装模块、入向ACL模块、路由模块、ARP模块、交换模块、出向ACL模块和封装模块依次对报文进行转发逻辑处理操作获得中间结果,并存储中间结果至所述全局缓存变量的第二部分。
S1:解封装模块的处理过程。
报文经过解析模块解析之后进入解封装模块继续处理,以便解除隧道封装。
解封装模块从全局缓存变量的第一部分的第2参数中读取隧道信息,并基于隧道信息判断报文是否带有隧道头部信息。
若不具有隧道头部信息,则表明报文有误,暂停后续处理操作。若具有隧道头部信息,则进行解封装操作获得解封装结果。解封装结果包括:隧道类型(GRE类型或者VXLAN类型)、隧道外层信息、隧道标识和解封装后的L2-L4字段。
其中,解封装后的L2-L4字段对应第一部分中第3参数(L2层)、第4参数(L2层)、第5参数(L3层)和第6参数(L4层),为了便于描述采用L2-L4字段表示。
解封装操作之前全局缓存变量的第一部分中不具有隧道内层信息,因此解除封装之后,将解封装结果中的隧道类型、隧道外层信息和隧道标识添加至第一部分中第2参数的隧道信息中。
由于解封装操作后的L2-L4字段的报文信息更加精确,所以利用解封装之后的L2-L4字段替换全局缓存变量中第一部分的第3参数-第6参数对应的L2-L4字段。
虚拟网络设备中一个租户对应一个隧道,因此隧道标识可以相当于租户标识,采用解封装操作后得到的隧道标识更新第二部分第1参数中报文的租户信息。
S2:入向ACL模块基于第二部分中参数过滤入向报文。
S3:路由模块的处理过程。
路由模块获取安全规则编号,写入第二部分的第7参数中“报文匹配的安全规则编号”字段,并利用安全规则编号对应的安全规则来验证报文是否符合规则,若符合则转发还是丢弃标志位写“1”表示继续转发,若不符合则转发还是丢弃标志位写“0”,表示丢弃。
路由模块获取ACL规则编号,写入第二部分的第8参数中“报文匹配的ACL规则编号”字段,并利用ACL规则编号对应的ACL规则来验证报文是否符合规则,若符合则转发还是丢弃标志位写“1”表示继续转发,若不符合则转发还是丢弃标志位写“0”,表示丢弃。
路由模块通过第7参数和第8参数判断报文是否需要丢弃,若需要丢弃则直接丢弃,不再执行后续操作。若不需要丢弃则在进入后续操作。
验证报文的大小是否达到流量限制门限,若大于则第9参数对应的标志位写“1”,若不大于则第9参数对应的标志位写“0”。
路由模块从全局缓存变量的第一部分中获取第3参数的“二层以太网的头部信息”,并从中提取报文的目的MAC地址。
判断MAC地址是否是网关格式,若是则表明该报文进入三层路由进行转发操作,将第二部分中第2参数对应的标志位设为“1”,以表示是三层转发;若否,则表示该报文后续进入二层协议转发操作,将第二部分中第2参数对应的标志位设为“0”,以表示是二层转发。
若第二部分中第2参数对应的标志位为“1”,则从全局缓存变量的第一部分读取第5参数“三层头部信息,互联网版本号,和,四层协议类型”。
依据L3头部信息中的目的IP地址、互联网协议版本(IPv4/IPv6)和租户信息中的租户标识,到对应的路由表中查找下一跳的IP地址,并将下一跳的IP地址存储至第二部分第3参数中“下一跳的目的IP地址”字段。
将路由模块的MAC地址确定为源MAC地址,并存储于第二部分的第5字段的新MAC地址字段,并调整报文的源MAC地址是否需要做替换的标志位修改为“1”。
若“报文是二层转发还是三层路由的标志位”为0,则从第一部分的第5字段中“L3头部信息”中目的IP地址作为下一跳的目的IP地址。并将下一跳的目的IP地址存储在第二部分的“下一跳的目的IP地址”字段。
将第一部分中第3参数的“二层以太网头部信息”字段中的源MAC地址,存储第二部分第的第5参数的“源MAC地址”字段,并调整报文的源MAC地址是否需要做替换的标志位修改为“0”。
S4:ARP模块依据隧道内层的目的IP地址查找MAC地址,若能够查找到则将该MAC地址作为目的IP地址对应的目的MAC地址。
S5:交换模块的处理过程。
交换模块读取第二部分第3参数的“下一跳的目的IP地址”,查找ARP表得到下一跳目的IP地址对应的目的MAC地址,并存储在第二部分的第4字段中的目的IP地址对应的目的MAC地址字段。
S6:封装模块的处理过程。
封装模块用于隧道封装处理,先读取第二部分中提取“目的MAC地址”,使用目的MAC地址查找隧道映射表,得到物理网络的隧道信息,并存储在第二部分的第6字段的新的隧道信息字段中,并设置报文的隧道信息是否需要修改的标志位设为“1”。
步骤S204:发送模块从所述全局缓存变量的第一部分和第二部分提取发送信息,并存储到所述全局缓存变量的第三部分,并基于所述全局缓存变量中第三部分存储的发送信息执行转发操作。
继封装模块后报文进入发送模块,发送模块从第一部分获取第3参数-第7参数,并将信息存储至第三部分的第3参数-第7参数中。将第二部分的第9参数和第10参数存储至第三部分的第8参数中。
从第二部分读取“源MAC地址”和“目的MAC地址”,更新第三部分的“二层以太网头部信息”的对应字段;使用第二部分中的第2参数中的“目的隧道信息”更新第三部分的第2参数“隧道信息”对应字段。使用第二部分的“目的端口编号”更新第三部分中第1参数“发送端口编号”字段。
如果第二部分中报文的源MAC地址是否需要做替换的标志位修改为“1”则将第三部分的报文的源MAC地址是否需要做替换的标志位修改为“0”。
本发明提供了一种报文转发方法的实施例二,参见图4,可以包括以下步骤:
步骤S401:从接收端口获取报文;
步骤S402:对所述报文进行解析操作获得原始信息,并存储所述原始信息至所述全局缓存变量的第一部分;
步骤S403:对报文进行转发逻辑处理操作获得中间结果,并存储中间结果至所述全局缓存变量的第二部分;
步骤S404:从所述全局缓存变量的第一部分和第二部分提取发送信息,并存储所述发送信息至所述全局缓存变量的第三部分;
步骤S405:基于所述全局缓存变量中第三部分存储的发送信息执行转发操作。
报文转发方法的实施例二可以详见图2所示的实施例,在此不再赘述。
参见图5,本发明提供一种报文转发系统,包括:
发送设备100,与所述发送设备100相连的虚拟网络设备200,与所述虚拟网络设备200相连的接收设备300;其中所述虚拟网络设备存储有全局缓存变量;
其中,所述虚拟网络设备200,用于从接收端口获取报文;对所述报文进行解析操作获得原始信息,并存储所述原始信息至所述全局缓存变量的第一部分;对报文进行转发逻辑处理操作获得中间结果,并存储中间结果至所述全局缓存变量的第二部分;从所述全局缓存变量的第一部分和第二部分提取发送信息,并存储所述发送信息至所述全局缓存变量的第三部分;基于所述全局缓存变量中第三部分存储的发送信息执行转发操作。
本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种全局缓存变量,其特征在于,包括:
第一部分,用于存储报文解析后的原始信息;
所述第一部分包括:隧道内层信息和隧道外层信息;
其中所述隧道内层信息包括:
第1参数:接收网桥编号或接收端口编号;
第2参数:隧道信息;
第3参数:二层以太网的头部信息;
第4参数:二层VLAN标签的头部信息;
第5参数:三层头部信息,互联网版本号,和,四层协议类型;
第6参数:四层头部信息,三层协议端口号和标志位;
第7参数:自定义偏移地址开始自定义长度的报文内容;
其中所述隧道外层信息包括:
二层以太网头部信息;
VLAN信息;
三层头部信息;
隧道信息;
第二部分,用于存储对报文进行转发逻辑处理操作中产生的中间结果;
所述第二部分包括:隧道内层信息和隧道外层信息;
其中所述隧道内层信息包括:
第1参数:报文的租户信息;
第2参数:报文是二层交换还是三层路由的标志位,交换匹配规则编号以及目的端口;
第3参数:路由匹配规则编号,以及,下一跳的目的IP地址;
第4参数:ARP查找匹配规则编号,以及,目的IP地址对应的目的MAC地址;
第5参数:报文的源MAC地址是否需要替换的标志位,以及新的源MAC地址;
第6参数:报文的隧道信息是否需要修改的标志位,以及,新地隧道信息;
第7参数:报文匹配的安全规则编号,以及,转发还是丢弃标志位;
第8参数:报文匹配的ACL规则编号,以及,转发还是丢弃标志位;
第9参数:报文是否达到流量限制门限的标志位;
其中隧道外层信息包括:
报文的目的IP匹配的ACL规则编号;
报文处理标志位,报文处理标志位包括转发、丢弃或上送CPU;
第三部分,用于存储对报文进行转发操作时所需的发送信息;
所述第三部分包括:隧道内层信息和隧道外层信息;
其中隧道内层信息包括:
第1参数:发送端口编号;
第2参数:发送端口的隧道信息;
第3参数:二层以太网的头部信息;
第4参数:二层VLAN标签的头部信息;
第5参数:三层头部信息,互联网版本号,和,四层协议类型;
第6参数:四层头部信息,三层协议端口号和标志位;
第7参数:自定义偏移地址开始自定义长度的报文内容;
其中隧道外层信息包括:
二层以太网的头部信息;
三层头部信息。
2.一种报文转发方法,其特征在于,应用于虚拟网络设备,所述虚拟网络设备存储有如权利要求1所述的全局缓存变量,所述方法包括:
从接收端口获取报文;
对所述报文进行解析操作获得原始信息,并存储所述原始信息至所述全局缓存变量的第一部分;
对报文进行转发逻辑处理操作获得中间结果,并存储中间结果至所述全局缓存变量的第二部分;
从所述全局缓存变量的第一部分和第二部分提取发送信息,并存储所述发送信息至所述全局缓存变量的第三部分;
基于所述全局缓存变量中第三部分存储的发送信息执行转发操作。
3.一种报文转发装置,其特征在于,集成于虚拟网络设备,所述报文转发装置包括接收模块、解析模块、解封装模块、入向ACL模块、路由模块、ARP模块、交换模块、出向ACL模块、封装模块和发送模块,且,所述解析模块、解封装模块、路由模块、交换模块、封装模块和发送模块共享权利要求1所述的全局缓存变量;
接收模块,用于从接收端口获取报文;
解析模块,用于对所述报文进行解析操作获得原始信息,并存储所述原始信息至所述全局缓存变量的第一部分;
解封装模块、入向ACL模块、路由模块、ARP模块、交换模块、出向ACL模块和封装模块依次对报文进行转发逻辑处理操作获得中间结果,并利用中间结果存储中间结果至所述全局缓存变量的第二部分;
发送模块,用于从所述全局缓存变量的第一部分和第二部分提取发送信息,并存储到所述全局缓存变量的第三部分,并基于所述全局缓存变量中第三部分存储的发送信息执行转发操作。
4.如权利要求3所述的装置,其特征在于,解析模块用于对所述报文进行解析操作获得原始信息,并存储所述原始信息至所述全局缓存变量的第一部分,具体包括:
所述解析模块对所述报文进行解析操作获得原始信息;
存储所述原始信息至所述全局缓存变量的第一部分;
其中所述全局缓存变量的第一部分包括:隧道内层信息和隧道外层信息;
其中所述隧道内层信息包括:
第1参数:接收网桥编号或接收端口编号;
第2参数:隧道信息;
第3参数:二层以太网的头部信息;
第4参数:二层VLAN标签信息的头部信息;
第5参数:三层头部信息,互联网版本号,和,四层协议类型;
第6参数:四层头部信息,三层协议端口号和标志位;
第7参数:自定义偏移地址开始自定义长度的报文内容;
其中所述隧道外层信息包括:
二层以太网头部信息;
VLAN信息;
三层头部信息;
隧道信息。
5.如权利要求3所述的装置,其特征在于,所述解封装模块、入向ACL模块、路由模块、ARP模块、交换模块、出向ACL模块、和封装模块依次对报文进行转发逻辑处理操作获得中间结果,并利用中间结果存储中间结果至所述全局缓存变量的第二部分,具体包括:
所述解封装模块基于全局缓存变量中第一部分执行解封装操作,并依据解封装结果更新全局缓存变量中的第二部分;
入向ACL模块基于第二部分中参数过滤入向报文;
路由模块基于全局缓存变量的第一部分和第二部分执行路由操作,并依据路由结果更新全局缓存变量的第二部分;
ARP模块依据隧道内层的目的IP地址查找MAC地址,若能够查找到则将该MAC地址作为目的IP地址对应的目的MAC地址;
交换模块基于全局缓存变量的第二部分执行路由操作,并依据交换结果更新全局缓存变量的第二部分;
出向ACL模块基于第二部分中参数过滤出向报文;
封装模块基于全局缓存变量的第二部分执行封装操作,并依据封装结果更新全局缓存变量的第二部分;
封装模块操作之后所述全局缓存变量的第二部分包括:隧道内层信息和隧道外层信息;
其中所述隧道内层信息包括:
第1参数:报文的租户信息;
第2参数:报文是二层交换还是三层路由的标志位,交换匹配规则编号以及目的端口;
第3参数:路由匹配规则编号,以及,下一跳的目的IP地址;
第4参数:ARP查找匹配规则编号,以及,目的IP地址对应的目的MAC地址;
第5参数:报文的源MAC地址是否需要替换的标志位,以及新的源MAC地址;
第6参数:报文的隧道信息是否需要修改的标志位,以及,新地隧道信息;
第7参数:报文匹配的安全规则编号,以及,转发还是丢弃标志位;
第8参数:报文匹配的ACL规则编号,以及,转发还是丢弃标志位;
第9参数:报文是否达到流量限制门限的标志位;
其中所述隧道外层信息包括:
报文的目的IP匹配的ACL规则编号;
报文处理标志位,报文处理标志位包括转发、丢弃或上送CPU。
6.如权利要求5所述的装置,其特征在于,所述第三部分包括:
隧道内层信息和隧道外层信息;
隧道内层信息包括:
第1参数:发送端口编号;
第2参数:发送端口的隧道信息;
第3参数:二层以太网的头部信息;
第4参数:二层VLAN标签信息的头部信息;
第5参数:三层头部信息,互联网版本号,和,四层协议类型;
第6参数:四层头部信息,三层协议端口号和标志位;
第7参数:自定义偏移地址开始自定义长度的报文内容;
其中所述隧道外层信息包括:
二层以太网的头部信息;
三层头部信息。
7.一种报文转发系统,其特征在于,包括:
发送设备,与所述发送设备相连的虚拟网络设备,与所述虚拟网络设备相连的接收设备;其中所述虚拟网络设备存储有如权利要求1所述的全局缓存变量;
其中,所述虚拟网络设备,用于从接收端口获取报文;对所述报文进行解析操作获得原始信息,并存储所述原始信息至所述全局缓存变量的第一部分;对报文进行转发逻辑处理操作获得中间结果,并存储中间结果至所述全局缓存变量的第二部分;从所述全局缓存变量的第一部分和第二部分提取发送信息,并存储所述发送信息至所述全局缓存变量的第三部分;基于所述全局缓存变量中第三部分存储的发送信息执行转发操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010386425.6A CN111770049B (zh) | 2020-05-09 | 2020-05-09 | 全局缓存变量及报文信息存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010386425.6A CN111770049B (zh) | 2020-05-09 | 2020-05-09 | 全局缓存变量及报文信息存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111770049A CN111770049A (zh) | 2020-10-13 |
CN111770049B true CN111770049B (zh) | 2022-06-03 |
Family
ID=72719122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010386425.6A Active CN111770049B (zh) | 2020-05-09 | 2020-05-09 | 全局缓存变量及报文信息存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111770049B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115103038B (zh) * | 2021-12-29 | 2023-02-03 | 武汉绿色网络信息服务有限责任公司 | 一种基于隧道报文的匹配方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247352A (zh) * | 2008-03-20 | 2008-08-20 | 华为技术有限公司 | 网关设备上缓存及转发数据包的方法及网关设备 |
CN103179228A (zh) * | 2013-04-02 | 2013-06-26 | 杭州华三通信技术有限公司 | 因特网协议地址解析方法及边缘节点 |
WO2017050591A1 (fr) * | 2015-09-22 | 2017-03-30 | Airbus Defence And Space Sas | Equipement pour offrir des services de résolution de noms de domaine |
CN106603440A (zh) * | 2016-12-30 | 2017-04-26 | 盛科网络(苏州)有限公司 | 实现多目的地报文镜像的交换机及方法 |
CN108718276A (zh) * | 2018-04-10 | 2018-10-30 | 新华三技术有限公司 | 一种报文转发方法和装置 |
CN109164981A (zh) * | 2018-08-15 | 2019-01-08 | 优刻得科技股份有限公司 | 磁盘管理方法、装置、存储介质和设备 |
CN110071878A (zh) * | 2019-04-15 | 2019-07-30 | 杭州迪普信息技术有限公司 | 报文流量统计方法、装置、电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790762B (zh) * | 2017-01-11 | 2022-05-24 | 腾讯科技(深圳)有限公司 | 域名解析方法和装置 |
-
2020
- 2020-05-09 CN CN202010386425.6A patent/CN111770049B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247352A (zh) * | 2008-03-20 | 2008-08-20 | 华为技术有限公司 | 网关设备上缓存及转发数据包的方法及网关设备 |
CN103179228A (zh) * | 2013-04-02 | 2013-06-26 | 杭州华三通信技术有限公司 | 因特网协议地址解析方法及边缘节点 |
WO2017050591A1 (fr) * | 2015-09-22 | 2017-03-30 | Airbus Defence And Space Sas | Equipement pour offrir des services de résolution de noms de domaine |
CN106603440A (zh) * | 2016-12-30 | 2017-04-26 | 盛科网络(苏州)有限公司 | 实现多目的地报文镜像的交换机及方法 |
CN108718276A (zh) * | 2018-04-10 | 2018-10-30 | 新华三技术有限公司 | 一种报文转发方法和装置 |
CN109164981A (zh) * | 2018-08-15 | 2019-01-08 | 优刻得科技股份有限公司 | 磁盘管理方法、装置、存储介质和设备 |
CN110071878A (zh) * | 2019-04-15 | 2019-07-30 | 杭州迪普信息技术有限公司 | 报文流量统计方法、装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111770049A (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11336574B2 (en) | Segment routing extension headers | |
US11979322B2 (en) | Method and apparatus for providing service for traffic flow | |
CN108702331B (zh) | Sr应用段与服务功能链(sfc)报头元数据的集成 | |
US10158568B2 (en) | Method and apparatus for service function forwarding in a service domain | |
US10749794B2 (en) | Enhanced error signaling and error handling in a network environment with segment routing | |
CN111669330B (zh) | 一种bier报文的发送方法和装置 | |
EP3198822B1 (en) | Computer network packet flow controller | |
EP2544417B1 (en) | Communication system, path control apparatus, packet forwarding apparatus and path control method | |
US7680943B2 (en) | Methods and apparatus for implementing multiple types of network tunneling in a uniform manner | |
US10412008B2 (en) | Packet processing method, apparatus, and system | |
WO2019210769A1 (en) | Explicit routing with network function encoding | |
US10205656B2 (en) | Method and apparatus for updating manner of processing packet of service flow | |
US9912566B1 (en) | Method and apparatus for tracing paths in service function chains | |
US20100183011A1 (en) | Sequential frame forwarding | |
CN111385209B (zh) | 一种报文处理方法、报文转发方法、装置及设备 | |
US11522795B1 (en) | End to end application identification and analytics of tunnel encapsulated traffic in the underlay | |
CN111988266B (zh) | 一种处理报文的方法 | |
CN108063718B (zh) | 报文处理方法、装置及电子设备 | |
FI119166B (fi) | Menetelmä ja laitteisto palvelunlaatuluokasta riippuvan reitityspäätöksen muodostamiseksi | |
CN105515995B (zh) | 报文处理方法及装置 | |
CN111770049B (zh) | 全局缓存变量及报文信息存储方法及装置 | |
CN110022263B (zh) | 一种数据传输的方法及相关装置 | |
CN114513457A (zh) | Bgp流规则路由的发布方法、网络设备及存储介质 | |
KR20020025427A (ko) | 아이피 패킷 포워딩 장치 및 그 방법 | |
CN116132555A (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 |