CN116055446A - 跨网络的报文转发方法、电子设备及机器可读存储介质 - Google Patents

跨网络的报文转发方法、电子设备及机器可读存储介质 Download PDF

Info

Publication number
CN116055446A
CN116055446A CN202310093038.7A CN202310093038A CN116055446A CN 116055446 A CN116055446 A CN 116055446A CN 202310093038 A CN202310093038 A CN 202310093038A CN 116055446 A CN116055446 A CN 116055446A
Authority
CN
China
Prior art keywords
mac address
message
nat
host
destination
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
Application number
CN202310093038.7A
Other languages
English (en)
Other versions
CN116055446B (zh
Inventor
杨帅
杨其
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Youyun Technology Co ltd
Original Assignee
Hangzhou Youyun Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Youyun Technology Co ltd filed Critical Hangzhou Youyun Technology Co ltd
Priority to CN202310093038.7A priority Critical patent/CN116055446B/zh
Publication of CN116055446A publication Critical patent/CN116055446A/zh
Application granted granted Critical
Publication of CN116055446B publication Critical patent/CN116055446B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/106Mapping addresses of different types across networks, e.g. mapping telephone numbers to data network addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2596Translation of addresses of the same type other than IP, e.g. translation from MAC to MAC addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本说明书一个或多个实施例提供一种跨网络的报文转发方法、电子设备及机器可读存储介质。所述方法应用于NAT网关节点;所述方法包括:接收内网侧网关设备转发的第一报文,所述第一报文为内网中的第一主机发送给所述内网侧网关设备的;对所述第一报文进行解析,得到所述第一报文的源MAC地址和目的MAC地址;根据预设的MAC地址缓存表,确定所述第一报文的目的MAC地址是否满足源NAT处理条件;如果满足,则将所述第一报文的源MAC地址中包含的指定字节转换为本NAT网关节点的NAT网关标识,并将转换后的第一报文转发给外网侧网关设备,以使所述外网侧网关设备将所述转换后的第一报文转发给外网中的第二主机。

Description

跨网络的报文转发方法、电子设备及机器可读存储介质
技术领域
本说明书一个或多个实施例涉及通信技术领域,尤其涉及跨网络的报文转发方法、电子设备及机器可读存储介质。
背景技术
随着云计算技术的不断发展,传统网络正在逐步向云计算网络升级改造,这将是一个漫长的过程,在很长一段时间内传统网络和云计算网络会同时并存,为用户提供服务。传统网络在改造完成后,通常会闲置很多物理服务器资源,并且这些传统网络中的物理服务器资源大部分无法直接被云平台利用,会造成计算资源浪费的问题。
为了实现云计算网络与传统网络之间的跨网络互联,目前业界的通用解决方案为:将传统网络中的物理服务器资源构建为一个网络(此处称作“物理服务器网络”),并在云计算网络与物理服务器网络之间通过路由交换或三层NAT(Network AddressTranslation,网络地址转换)网关桥接。
然而,在通过路由交换或三层NAT网关桥接的实现方式中,需要对原有的网络拓扑进行改造升级,还需要维护更新后的路由策略信息,存在改造工作量较大、链路稳定性较差、运维难度较大的问题。
发明内容
根据本说明书实施例的第一方面,提供一种跨网络的报文转发方法,所述方法应用于NAT网关节点;所述NAT网关节点用于桥接内网侧网关设备和外网侧网关设备;所述方法包括:
接收内网侧网关设备转发的第一报文;其中,所述第一报文为内网中的第一主机发送给所述内网侧网关设备的;
对所述第一报文进行解析,得到所述第一报文的源MAC地址和目的MAC地址;其中,所述第一报文的源MAC地址为所述第一主机的MAC地址;所述第一报文的目的MAC地址为外网中的第二主机的MAC地址;
根据预设的MAC地址缓存表,确定所述第一报文的目的MAC地址是否满足源NAT处理条件;
如果所述第一报文的目的MAC地址满足所述源NAT处理条件,则将所述第一报文的源MAC地址中包含的指定字节转换为本NAT网关节点的NAT网关标识,并将转换后的第一报文转发给外网侧网关设备,以使所述外网侧网关设备将所述转换后的第一报文转发给所述第二主机。
可选的,所述根据预设的MAC地址缓存表,确定所述第一报文的目的MAC地址是否满足源NAT处理条件,包括:
在预设的MAC地址缓存表中,查找是否存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项;
如果存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项,则确定所述第一报文的目的MAC地址满足所述源NAT处理条件;
如果不存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项,则确定所述第一报文的目的MAC地址不满足所述源NAT处理条件。
可选的,所述方法还包括:
如果所述第一报文的目的MAC地址不满足所述源NAT处理条件,则丢弃所述第一报文。
可选的,所述NAT网关节点包括分布式NAT网关设备集群中的任一NAT网关设备;
所述内网侧网关设备维护有目的MAC地址与下一跳对象之间的对应关系;其中,所述下一跳对象包括所述第一主机,和/或所述NAT网关设备集群中的各个NAT网关设备;
所述方法还包括:
响应于所述NAT网关设备集群中除本NAT网关设备之外的至少一个NAT网关设备发生故障,向所述内网侧网关设备发送路由信息更新请求,以使所述内网侧网关设备针对其维护的目的MAC地址与下一跳对象之间的对应关系,将与发生故障的所述至少一个NAT网关设备对应的下一跳对象更新为本NAT网关设备。
可选的,所述内网为云计算网络,所述外网为非云计算网络;所述第一主机为在云计算网络中的宿主机上运行的虚拟主机;所述内网侧网关设备为在云计算网络中的宿主机上运行的虚拟交换机;所述第二主机为非云计算网络中的物理主机;所述外网侧网关设备为非云计算网络中的二层交换机。
根据本说明书实施例的第二方面,提供另一种跨网络的报文转发方法,所述方法应用于NAT网关节点;所述NAT网关节点用于桥接内网侧网关设备和外网侧网关设备;所述方法包括:
接收外网侧网关设备转发的第二报文;其中,所述第二报文为外网中的第二主机发送给所述外网侧网关设备的;
对所述第二报文进行解析,得到所述第二报文的源MAC地址和目的MAC地址;其中,所述第二报文的源MAC地址为所述第二主机的MAC地址;所述第二报文的目的MAC地址为基于目标NAT网关节点的NAT网关标识,对内网中的第一主机的MAC地址中包含的指定字节进行转换而得到的;
根据预设的MAC地址缓存表,确定所述第二报文的目的MAC地址是否满足目的NAT处理条件;
如果所述第二报文的目的MAC地址满足所述目的NAT处理条件,则将所述第二报文的目的MAC地址转换为所述第一主机的MAC地址,并将转换后的第二报文转发给内网侧网关设备,以使所述内网侧网关设备将所述转换后的第二报文转发给所述第一主机。
可选的,所述根据预设的MAC地址缓存表,确定所述第二报文的目的MAC地址是否满足目的NAT处理条件,包括:
在预设的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中包含的除指定字节之外的其他字节匹配的MAC地址缓存表项;
如果存在与所述第二报文的目的MAC地址中包含的其他字节匹配的MAC地址缓存表项,则确定所述第二报文的目的MAC地址满足所述目的NAT处理条件;
如果不存在与所述第二报文的目的MAC地址中包含的其他字节匹配的MAC地址缓存表项,则确定所述第二报文的目的MAC地址不满足所述目的NAT处理条件。
可选的,所述NAT网关节点包括分布式NAT网关设备集群中的任一NAT网关设备;
在预设的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中除指定字节之外的其他字节匹配的MAC地址缓存表项之前,所述方法还包括:
确定所述第二报文的目的MAC地址中包含的指定字节是否与本NAT网关节点的NAT网关标识匹配;
如果所述第二报文的目的MAC地址中包含的指定字节与本NAT网关节点的NAT网关标识匹配,则在预设的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中包含的除指定字节之外的其他字节匹配的MAC地址缓存表项;
如果所述第二报文的目的MAC地址中包含的指定字节与本NAT网关节点的NAT网关标识不匹配,则丢弃所述第二报文。
可选的,所述方法还包括:
如果所述第二报文的目的MAC地址不满足所述目的NAT处理条件,则丢弃所述第二报文。
可选的,所述内网为云计算网络,所述外网为非云计算网络;所述第一主机为在云计算网络中的宿主机上运行的虚拟主机;所述内网侧网关设备为在云计算网络中的宿主机上运行的虚拟交换机;所述第二主机为非云计算网络中的物理主机;所述外网侧网关设备为非云计算网络中的二层交换机。
根据本说明书实施例的第三方面,提供一种跨网络的报文转发装置,所述装置包括:
接收单元,用于接收内网侧网关设备转发的第一报文;其中,所述第一报文为内网中的第一主机发送给所述内网侧网关设备的;
解析单元,用于对所述第一报文进行解析,得到所述第一报文的源MAC地址和目的MAC地址;其中,所述第一报文的源MAC地址为所述第一主机的MAC地址;所述第一报文的目的MAC地址为外网中的第二主机的MAC地址;
转换单元,用于根据预设的MAC地址缓存表,确定所述第一报文的目的MAC地址是否满足源NAT处理源NAT处理条件;如果所述第一报文的目的MAC地址满足所述源NAT处理源NAT处理条件,则将所述第一报文的源MAC地址中包含的指定字节转换为本NAT网关节点的NAT网关标识;
发送单元,用于将转换后的第一报文转发给外网侧网关设备,以使所述外网侧网关设备将所述转换后的第一报文转发给所述第二主机。
根据本说明书实施例的第四方面,提供另一种跨网络的报文转发装置,所述装置包括:
接收单元,用于接收外网侧网关设备转发的第二报文;其中,所述第二报文为外网中的第二主机发送给所述外网侧网关设备的;
解析单元,用于对所述第二报文进行解析,得到所述第二报文的源MAC地址和目的MAC地址;其中,所述第二报文的源MAC地址为所述第二主机的MAC地址;所述第二报文的目的MAC地址为基于目标NAT网关节点的NAT网关标识,对内网中的第一主机的MAC地址中包含的指定字节进行转换而得到的;
转换单元,用于根据预设的MAC地址缓存表,确定所述第二报文的目的MAC地址是否满足目的NAT处理条件;如果所述第二报文的目的MAC地址满足所述目的NAT处理条件,则将所述第二报文的目的MAC地址转换为所述第一主机的MAC地址;
发送单元,用于将转换后的第二报文转发给内网侧网关设备,以使所述内网侧网关设备将所述转换后的第二报文转发给所述第一主机。
根据本说明书实施例的第五方面,提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述第一方面所述的跨网络的报文转发方法或上述第二方面所述的跨网络的报文转发方法。
根据本说明书实施例的第六方面,还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述第一方面所述的跨网络的报文转发方法或上述第二方面所述的跨网络的报文转发方法。
通过以上实施例,一方面,通过NAT网关节点来桥接内网侧网关设备与外网侧网关设备,可以在不对原有网络拓扑做出重大变更的前提下,安全高效地实现内网与外网之间的互联,进行跨网络的报文转发。
另一方面,由于在所述第一报文的目的MAC地址满足源NAT处理条件的情况下,针对所述第一报文的源MAC地址中包含的指定字节,NAT网关节点可以将其由第一主机的MAC地址中包含的指定字节转换为本NAT网关节点的NAT网关标识;相应地,在所述第二报文的目的MAC地址满足目的NAT处理条件的情况下,针对所述第二报文的目的MAC地址中包含的指定字节,NAT网关节点可以将其由目标NAT网关节点的NAT网关标识转换为第一主机的MAC地址中包含的指定字节;因此,可以在跨网络的报文转发过程中保留部分源信息,提高针对待转发的报文进行源NAT处理或目的NAT处理的效率,进而提高跨网络的报文转发效率。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是一示例性的实施例示出的一种报文转发方法的网络架构示意图;
图2是一示例性的实施例示出的一种跨网络的报文转发方法的流程图;
图3是一示例性的实施例示出的另一种跨网络的报文转发方法的流程图;
图4是一示例性的实施例示出的一种跨网络的报文转发装置所在电子设备的结构示意图;
图5是一示例性的实施例示出的一种跨网络的报文转发装置的框图;
图6是一示例性的实施例示出的另一种跨网络的报文转发装置的框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
随着云计算技术的不断发展,传统网络正在逐步向云计算网络升级改造,这将是一个漫长的过程,在很长一段时间内传统网络和云计算网络会同时并存,为用户提供服务。传统网络在改造完成后,通常会闲置很多物理服务器资源,并且这些传统网络中的物理服务器资源大部分无法直接被云平台利用,会造成计算资源浪费的问题。
为了实现云计算网络与传统网络之间的跨网络互联,目前业界的通用解决方案为:将传统网络中的物理服务器资源构建为一个网络(此处称作“物理服务器网络”),并在云计算网络与物理服务器网络之间通过路由交换或三层NAT(Network AddressTranslation,网络地址转换)网关桥接。
在一个可能的实施例中,可以对原有的网络拓扑进行改造升级,分别在云计算网络和物理服务器网络的网络出口配置互联路由,并维护更新后的路由策略信息;当一个网络中的用户需要访问另一个网络时,通过更新后的路由策略信息实现路径可达。
由此可见,在以上示出的实施例中,在通过路由交换的实现方式中,需要对原有的网络拓扑进行改造升级,还需要维护更新后的路由策略信息,存在改造工作量较大、链路稳定性较差、运维难度较大的问题。
在另一个可能的实施例中,可以对原有的网络拓扑进行改造升级,分别在云计算网络和物理服务器网络的接入点部署三层NAT网关;当一个网络中的用户需要访问另一个网络时,所述三层NAT网关可以作为代理,先将源主机发送的报文的源MAC(Media AccessControl,媒体访问控制)地址或目的MAC地址转换为所述三层NAT网关的MAC地址,再将转换后的报文转发给另一个网络中的目的主机。
由此可见,在以上示出的实施例中,在通过三层NAT网关桥接的实现方式中,一方面,需要对原有的网络拓扑进行改造升级,存在改造工作量较大、链路稳定性较差的问题;另一方面,受限于三层NAT代理,网络流量经过三层NAT网关转发后,会损失部分源信息。
有鉴于此,本说明书旨在提出一种基于NAT网关节点的MAC地址转换,实现跨网络的报文转发的技术方案。
其中,所述NAT网关节点可以用于桥接内网侧网关设备和外网侧网关设备,使得内网中的第一主机与外网中的第二主机之间可以互相访问。
在一个可能的实施例中,所述内网可以为云计算网络,所述外网可以为非云计算网络;所述内网中的第一主机,可以为在云计算网络中的宿主机上运行的虚拟主机;所述内网侧网关设备,可以为在云计算网络中的宿主机上运行的虚拟交换机;所述外网中的第二主机,可以为非云计算网络中的物理主机;所述外网侧网关设备,可以为非云计算网络中的二层交换机。
其中,所述内网中的第一主机、所述内网侧网关设备与所述NAT网关节点之间可以构建出一个逻辑的大二层的网络环境,进而所述第一主机、所述内网侧网关设备与所述NAT网关节点相互之间逻辑上二层可达。所述外网中的第二主机、所述外网侧网关设备与所述NAT网关节点之间可以构建出一个物理的大二层的网络环境,进而所述第二主机、所述外网侧网关设备与所述NAT网关节点相互之间逻辑上二层可达。
例如,请参见图1,图1是一示例性的实施例示出的一种报文转发方法的网络架构示意图。如图1所示,所述网络架构可以包括云实例V1、云实例V2、虚拟交换机S、NAT网关节点A、NAT网关节点B、二层交换机P1、二层交换机P2、物理服务器X和物理服务器Y。
其中,在云计算网络中,云实例V1、云实例V2可以为运行在云计算网络中的同一台宿主机上的不同虚拟主机,云实例V1、云实例V2的MAC地址可以分别为“00:01:01:01:01:01”、“00:02:02:02:02:02”;虚拟交换机S与云实例V1、云实例V2可以运行在云计算网络中的同一台宿主机上,并且,虚拟交换机S可以作为内网侧网关设备,根据报文的目的MAC地址,将云实例V1或云实例V2发送的报文转发给任一NAT网关节点(NAT网关节点A或NAT网关节点B),或者将NAT网关节点A或NAT网关节点B发送的报文转发给对应的虚拟主机(云实例V1或云实例V2)。
在非云计算网络(如传统网络)中,物理服务器X、物理服务器Y可以为非云计算网络中的物理主机,物理服务器X、物理服务器Y的MAC地址可以分别为“03:03:03:03:03:03”、“04:04:04:04:04:04”;物理服务器X可以部署在物理服务器集群1中,二层交换机P1可以作为外网侧网关设备,将物理服务器X发送的报文转发给任一NAT网关节点(NAT网关节点A或NAT网关节点B);物理服务器Y可以部署在物理服务器集群2中,二层交换机P2可以作为外网侧网关设备,将物理服务器Y发送的报文转发给任一NAT网关节点(NAT网关节点A或NAT网关节点B)。
NAT网关节点A、NAT网关节点B可以用于桥接虚拟交换机S与二层交换机P1、二层交换机P2;也即,NAT网关节点A、NAT网关节点B可以用于桥接所述云计算网络与所述非云计算网络。
需要说明的是,在以上示出的实施例中,在云计算网络中的同一台宿主机上运行有云实例V1、云实例V2,仅仅是一种示例性的描述,并不对本说明书做出特别限制;在实际应用中,云实例V1、云实例V2也可以分别运行的不同宿主机上,并可以分别通过各自宿主机上本地运行的虚拟交换机来转发报文。
类似地,在以上示出的实施例中,物理服务器X、物理服务器Y分别部署在不同的物理服务器集群中,仅仅是一种示例性的描述,并不对本说明书做出特别限制;在实际应用中,物理服务器X、物理服务器Y也可以部署在同一物理服务器集群中,并可以通过同一个二层交换机来转发报文。
另外,需要说明的是,在以上示出的实施例中,所述非云计算网络中的物理主机具体为物理服务器,仅仅是一种示例性的描述方式,并不对本说明书做出特别限制;在实际应用中,所述物理主机可以为基于独立MAC地址通信的实例对象,所述物理主机具体可以包括但不限于物理服务器、单片机、网络接口、交换设备等。
在实现时,针对内网中的第一主机访问外网中的第二主机的报文,所述NAT网关节点可以进行SNAT(Source Network Address Translation,源网络地址转换)操作;以及,针对外网中的第二主机访问内网中的第一主机的报文,所述NAT网关节点可以进行DNAT(Destination Network Address Translation,目的网络地址转换)操作。
在一个可能的实施例中,在内网中的第一主机需要访问外网中的第二主机时,内网中的第一主机可以将第一报文发送给所述内网侧网关设备;所述内网侧网关设备可以接收所述第一报文,并将所述第一报文转发给所述NAT网关节点;所述NAT网关节点可以接收所述第一报文;进一步地,所述NAT网关节点可以对所述第一报文进行解析,得到所述第一报文的源MAC地址和目的MAC地址;其中,所述第一报文的源MAC地址为所述第一主机的MAC地址;所述第一报文的目的MAC地址为所述第二主机的MAC地址;进一步地,所述NAT网关节点可以根据预设的MAC地址缓存表,确定所述第一报文的目的MAC地址是否满足源NAT处理条件;如果所述第一报文的目的MAC地址满足所述源NAT处理条件,则所述NAT网关节点可以将所述第一报文的源MAC地址中包含的指定字节转换为本NAT网关节点的NAT网关标识,并可以将转换后的第一报文转发给外网侧网关设备;所述外网侧网关设备可以接收所述转换后的第一报文,并将所述转换后的第一报文转发给外网中的第二主机。
例如,如图1所示,所述内网中的第一主机可以为云实例V1,所述外网中的第二主机可以为物理服务器X;当云实例V1需要访问物理服务器X时,云实例V1可以向虚拟交换机S发送第一报文,所述第一报文的源MAC地址为“00:01:01:01:01:01”,所述第一报文的目的MAC地址为“03:03:03:03:03:03”;虚拟交换机S可以接收所述第一报文,并可以将所述第一报文转发给NAT网关节点A;NAT网关节点A可以接收所述第一报文,并可以对所述第一报文进行解析,得到所述第一报文的源MAC地址和目的MAC地址;进一步地,如果NAT网关节点A根据预设的MAC地址缓存表,确定所述第一报文的目的MAC地址“03:03:03:03:03:03”满足源NAT处理条件,则NAT网关节点A可以将所述第一报文的源MAC地址中的第1个字节由“00”转换为NAT网关节点A的NAT网关标识“0a”,也即,可以将所述第一报文的源MAC地址转换为“0a:01:01:01:01:01”;进一步地,NAT网关节点A可以将转换后的第一报文转发给二层交换设备P1;二层交换设备P1可以接收所述转换后的第一报文,并可以根据所述转换后的第一报文的目的MAC地址“03:03:03:03:03:03”,将所述转换后的第一报文转发给物理服务器X。
在另一个可能的实施例中,在外网中的第二主机需要访问内网中的第一主机时,外网中的第二主机可以将第二报文发送给外网侧网关设备;所述外网侧网关设备接收所述第二报文,并将所述第二报文转发给所述NAT节点;所述NAT节点可以接收所述第二报文;进一步地,所述NAT网关节点可以对所述第二报文进行解析,得到所述第二报文的源MAC地址和目的MAC地址;其中,所述第二报文的源MAC地址为所述第二主机的MAC地址;所述第二报文的目的MAC地址为基于目标NAT网关节点的NAT网关标识,对所述第一主机的MAC地址中包含的指定字节进行转换而得到的;进一步地,所述NAT网关节点可以根据预设的MAC地址缓存表,确定所述第二报文的目的MAC地址是否满足目的NAT处理条件;如果所述第二报文的目的MAC地址满足所述目的NAT处理条件,则所述NAT网关节点可以将所述第二报文的目的MAC地址转换为所述第一主机的MAC地址,并将转换后的第二报文转发给内网侧网关设备;所述内网侧网关设备可以接收所述转换后的第二报文,并将所述转换后的第二报文转发给内网中的第一主机。
例如,如图1所示,所述内网中的第一主机可以为云实例V2,所述外网中的第二主机可以为物理服务器Y;当物理服务器Y需要访问云实例V2时,物理服务器Y可以向二层交换设备P2发送第二报文,所述第二报文的源MAC地址为“04:04:04:04:04:04”,所述第二报文的目的MAC地址为“0b:02:02:02:02:02”;二层交换设备P2可以接收所述第二报文,并可以将所述第二报文转发给NAT网关节点B;NAT网关节点B可以接收所述第二报文,并可以对所述第二报文进行解析,得到所述第二报文的源MAC地址和目的MAC地址;进一步地,如果NAT网关节点B根据预设的MAC地址缓存表,确定所述第二报文的目的MAC地址满足目的NAT处理条件,则可以将所述第二报文的目的MAC地址转换为云实例V2的MAC地址“00:02:02:02:02:02”,也即,可以将所述第二报文的目的MAC地址中的第1个字节由NAT网关节点B的NAT网关标识“0b”转换为云实例V2的MAC地址中的第1个字节“00”;进一步地,NAT网关节点B可以将转换后的第二报文转发给虚拟交换设备S;虚拟交换设备S可以接收所述转换后的第二报文,并可以根据所述转换后的第二报文的目的MAC地址“00:02:02:02:02:02”,将所述转换后的第二报文转发给云实例V2。
由此可见,在本说明书中的技术方案中,一方面,通过NAT网关节点来桥接内网侧网关设备与外网侧网关设备,可以在不对原有网络拓扑做出重大变更的前提下,安全高效地实现内网与外网之间的互联,进行跨网络的报文转发。
另一方面,由于在所述第一报文的目的MAC地址满足源NAT处理条件的情况下,针对所述第一报文的源MAC地址中包含的指定字节,NAT网关节点可以将其由第一主机的MAC地址中包含的指定字节转换为本NAT网关节点的NAT网关标识,而不是将所述第一报文的源MAC地址由所述第一主机的MAC地址整个替换为本NAT网关节点的MAC地址;相应地,在所述第二报文的目的MAC地址满足目的NAT处理条件的情况下,针对所述第二报文的目的MAC地址中包含的指定字节,NAT网关节点可以将其由目标NAT网关节点的NAT网关标识转换为第一主机的MAC地址中包含的指定字节,而不是将所述第二报文的目的MAC地址由所述目标NAT网关节点的MAC地址整个替换为所述第一主机的MAC地址;因此,可以在跨网络的报文转发过程中保留部分源信息,提高针对待转发的报文进行源NAT处理或目的NAT处理的效率,进而提高跨网络的报文转发效率。
下面先以内网中的第一主机访问外网中的第二主机,所述NAT网关节点针对待转发的报文进行SNAT处理的过程为例,结合具体的应用场景对本申请进行描述。
请参见图2,图2是一示例性的实施例示出的一种跨网络的报文转发方法的流程图。所述报文转发方法可以应用于所述NAT网络节点。所述报文转发方法可以执行以下步骤:
步骤202:接收内网侧网关设备转发的第一报文;其中,所述第一报文为内网中的第一主机发送给所述内网侧网关设备的。
例如,如图1所示,所述内网中的第一主机可以为云实例V1,所述外网中的第二主机可以为物理服务器X;当云实例V1需要访问物理服务器X时,云实例V1可以向虚拟交换机S发送第一报文,所述第一报文的源MAC地址为“00:01:01:01:01:01”,所述第一报文的目的MAC地址为“03:03:03:03:03:03”;进一步地,虚拟交换机S可以接收所述第一报文,并可以将所述第一报文转发给NAT网关节点A;进一步地,NAT网关节点A可以接收所述第一报文。
其中,所述内网侧网关设备可以维护有目的MAC地址与下一跳对象之间的对应关系。所述内网侧网关设备根据其维护的目的MAC地址与下一跳对象之间的对应关系,可以将接收到的报文转发给与该报文的目的MAC地址对应的下一跳对象。
例如,针对如图1所示的网络架构图,请参见表1,表1是一示例性的实施例示出的一种流量转发表,所述流量转发表可以用于维护目的MAC地址与下一跳对象之间的对应关系,
目的MAC地址 下一跳对象
03:03:03:03:03:03 NAT网关节点A
04:04:04:04:04:04 NAT网关节点B
00:01:01:01:01:01 云实例V1
00:02:02:02:02:02 云实例V2
表1
在以上示出的实施例中,虚拟交换机S在接收到云实例V1发送的目的MAC地址为“03:03:03:03:03:03”的第一报文之后,根据如表1所示的对应关系,可以将所述第一报文转发给NAT网关节点A。
步骤204:对所述第一报文进行解析,得到所述第一报文的源MAC地址和目的MAC地址;其中,所述第一报文的源MAC地址为所述第一主机的MAC地址;所述第一报文的目的MAC地址为外网中的第二主机的MAC地址。
例如,如图1所示,在接收到虚拟交换机S转发的所述第一报文之后,NAT网关节点A可以对所述第一报文进行解析,得到所述第一报文的源MAC地址为“00:01:01:01:01:01”,以及得到所述第一报文的目的MAC地址为“03:03:03:03:03:03”。
步骤206:根据预设的MAC地址缓存表,确定所述第一报文的目的MAC地址是否满足源NAT处理条件。
例如,在解析得到所述第一报文的源MAC地址和目的MAC地址之后,NAT网关节点A可以根据预设的MAC地址缓存表,确定所述第一报文的目的MAC地址“03:03:03:03:03:03”是否满足源NAT处理条件。
其中,在所述步骤206中,所述MAC地址缓存表可以用于维护与需要网络互联的各个主机(包括物理主机和虚拟主机)分别对应的各个MAC地址。
例如,针对如图1所示的网络架构图,请参见表2,表2是一示例性的实施例示出的一种MAC地址缓存表,
MAC地址
03:03:03:03:03:03
04:04:04:04:04:04
00:01:01:01:01:01
00:02:02:02:02:02
表2
如表2所示,所述MAC地址缓存表可以维护有与物理服务器X、物理服务器Y、云实例V1、云实例V2分别对应的MAC地址。
需要说明的是,在以上示出的实施例中,关于所述MAC地址缓存表的创建方式,本说明书中的不做特别限定。例如,可以通过接口配置的方式为所述NAT网关节点预先配置所述MAC地址缓存表,从而提高跨网络的报文转发的可靠性。又例如,所述NAT网关节点在进行跨网络的报文转发的过程中,可以自动发现需要网络互联的各个主机的MAC地址,并缓存在所述MAC地址缓存表中,从而提高跨网络的报文转发的灵活性。
在示出的一种实施方式中,所述NAT网关设备可以根据所述MAC地址缓存表中是否已经缓存所述第一报文的目的MAC地址,来确定是否满足针对所述第一报文进行源NAT处理的条件。在实现时,在所述步骤206中,所述根据预设的MAC地址缓存表,确定所述第一报文的目的MAC地址是否满足源NAT处理条件,具体可以包括:在预设的MAC地址缓存表中,查找是否存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项;如果存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项,则确定所述第一报文的目的MAC地址满足所述源NAT处理条件;如果不存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项,则确定所述第一报文的目的MAC地址不满足所述源NAT处理条件。
例如,在解析得到所述第一报文的目的MAC地址为“03:03:03:03:03:03”之后,NAT网关节点A可以在如表2所示的MAC地址缓存表中,查找是否存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项;因为存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项“03:03:03:03:03:03”,所以可以确定所述第一报文的目的MAC地址满足源NAT处理条件。
又例如,在解析得到所述第一报文的目的MAC地址为“05:05:05:05:05:05”之后,NAT网关节点A可以在如表2所示的MAC地址缓存表中,查找是否存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项;因为不存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项,所以可以确定所述第一报文的目的MAC地址不满足源NAT处理条件。
需要说明的是,在以上示出的实施例中,所述MAC地址缓存表可以本地存储在所述NAT网关节点,使得所述NAT网关节点可以本地查询在所述MAC地址缓存表中是否存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项;或者,所述MAC地址缓存表也可以存储在与所述NAT网关节点对应的管理节点,使得所述NAT网关节点可以向所述管理节点实时查询。
步骤208:如果所述第一报文的目的MAC地址满足所述源NAT处理条件,则将所述第一报文的源MAC地址中包含的指定字节转换为本NAT网关节点的NAT网关标识,并将转换后的第一报文转发给外网侧网关设备,以使所述外网侧网关设备将所述转换后的第一报文转发给所述第二主机。
例如,如图1所示,如果根据如表2所示的MAC地址缓存表,确定所述第一报文的目的MAC地址“03:03:03:03:03:03”满足源NAT处理条件,则NAT网关节点A可以将所述第一报文的源MAC地址中的第1个字节由“00”转换为NAT网关节点A的NAT网关标识“0a”,也即,可以将所述第一报文的源MAC地址转换为“0a:01:01:01:01:01”;进一步地,NAT网关节点A可以将转换后的第一报文转发给二层交换设备P1;二层交换设备P1可以接收所述转换后的第一报文,并可以根据所述转换后的第一报文的目的MAC地址“03:03:03:03:03:03”,将所述转换后的第一报文转发给物理服务器X。
其中,在所述步骤208中,所述NAT网关标识可以用于唯一标识各个NAT网关节点;具体地,所述NAT网关标识可以根据NAT网关节点的管理ID等信息来确定,本说明书中不做限制。例如,如图1所示,NAT网关节点A、NAT网关节点B的管理ID可以分别为10、11,则NAT网关节点A、NAT网关节点B的NAT网关标识可以分别为“0a”、“0b”。
需要说明的是,在以上示出的实施例中,所述指定字节为所述第一报文的源MAC地址中的第1个字节,仅仅是一种示例性的描述,并不代表对本说明书做出特别限定。在实际应用中,由于网络设备的MAC地址所包含的前3个字节,通常可以由厂商自定义,因此所述指定字节可以为MAC地址所包含的前3个字节中的一个或多个字节,在此不再一一赘述。
在示出的一种实施方式中,所述方法还可以包括:
步骤210:如果所述第一报文的目的MAC地址不满足所述源NAT处理条件,则丢弃所述第一报文。
例如,如果根据如表2所示的MAC地址缓存表,确定所述第一报文的目的MAC地址“05:05:05:05:05:05”不满足源NAT处理条件,则NAT网关节点A可以丢弃所述第一报文。
在示出的一种实施方式中,所述NAT网关节点可以包括分布式NAT网关设备集群中的任一NAT网关设备;所述内网侧网关设备维护有目的MAC地址与下一跳对象之间的对应关系;其中,所述下一跳对象包括所述第一主机,和/或所述NAT网关设备集群中的各个NAT网关设备。在这种情况下,所述方法还可以包括:
步骤212:响应于所述NAT网关设备集群中除本NAT网关设备之外的至少一个NAT网关设备发生故障,向所述内网侧网关设备发送路由信息更新请求,以使所述内网侧网关设备针对其维护的目的MAC地址与下一跳对象之间的对应关系,将与发生故障的所述至少一个NAT网关设备对应的下一跳对象更新为本NAT网关设备。
例如,所述NAT网关设备集群中的本NAT网关设备,可以为如图1所示的NAT网关节点A,所述NAT网关设备集群中的其他NAT网关设备,可以为如图1所示的NAT网关节点B;响应于NAT网关节点B发生故障,NAT网关节点A可以向虚拟交换机S发送路由信息更新请求,以使虚拟交换机S针对其维护的如表1所示的流量转发表,将与“NAT网关节点B”对应的下一跳对象更新为“NAT网关节点A”。
除此之外,在以上示出的实施方式中,还可以针对发生故障的NAT网关设备执行下线处理;其中,所述下线处理具体可以包括但不限于:关闭发生故障的NAT网关设备的电源,关闭发生故障的NAT网关设备与所述外网侧设备之间的互联接口,等等。
其中,在所述步骤212中,如果所述指定字节为MAC地址所包含的第一个字节,则所述NAT网关设备集群可以包括1~255(也即2^8-1)个NAT网关设备。
需要说明的是,在以上示出的实施方式中,由于所述分布式NAT网关设备集群中可以包括若干NAT网关设备,并且当其中部分NAT网关设备发生故障时,通过更新所述内网侧网关设备所维护的目的MAC地址与下一跳对象之间的对应关系,可以将业务流量由发生故障的部分NAT网关设备,热切换至未发生故障的其他NAT网关设备,因此所述分布式NAT网关设备集群具备较好的容灾切换能力,提升了跨网络互联的稳定性,避免NAT网关节点成为跨网络报文转发的瓶颈,提高了跨网络报文转发的可靠性,降低了业务中断的风险。
另外,需要说明的是,关于所述步骤212的执行顺序,本说明书中不做特别限定,可以在报文转发过程中的任一时刻。
通过以上技术方案可知,一方面,通过NAT网关节点来桥接内网侧网关设备与外网侧网关设备,可以在不对原有网络拓扑做出重大变更的前提下,安全高效地实现内网与外网之间的互联,进行跨网络的报文转发。另一方面,由于在所述第一报文的目的MAC地址满足源NAT处理条件的情况下,针对所述第一报文的源MAC地址中包含的指定字节,NAT网关节点可以将其由第一主机的MAC地址中包含的指定字节转换为本NAT网关节点的NAT网关标识,而不是将所述第一报文的源MAC地址由所述第一主机的MAC地址整个替换为本NAT网关节点的MAC地址;因此,在跨网络的报文转发过程中可以保留部分源信息,提高针对所述第一报文进行源NAT处理的效率,进而提高跨网络的报文转发效率。
下面再以外网中的第二主机访问内网中的第一主机,所述NAT网关节点针对待转发的报文进行DNAT处理的过程为例,结合具体的应用场景对本申请进行描述。
请参见图3,图3是一示例性的实施例示出的另一种跨网络的报文转发方法的流程图。所述报文转发方法可以应用于所述NAT网络节点;所述报文转发方法可以执行以下步骤:
步骤302:接收外网侧网关设备转发的第二报文;其中,所述第二报文为外网中的第二主机发送给所述外网侧网关设备的。
例如,如图1所示,所述内网中的第一主机可以为云实例V2,所述外网中的第二主机可以为物理服务器Y;当物理服务器Y需要访问云实例V2时,物理服务器Y可以向二层交换设备P2发送第二报文,所述第二报文的源MAC地址为“04:04:04:04:04:04”,所述第二报文的目的MAC地址为“0b:02:02:02:02:02”;进一步地,二层交换设备P2可以接收所述第二报文,并可以将所述第二报文转发给NAT网关节点B;进一步地,NAT网关节点B可以接收所述第二报文。
步骤304:对所述第二报文进行解析,得到所述第二报文的源MAC地址和目的MAC地址;其中,所述第二报文的源MAC地址为所述第二主机的MAC地址;所述第二报文的目的MAC地址为基于目标NAT网关节点的NAT网关标识,对内网中的第一主机的MAC地址中包含的指定字节进行转换而得到的。
例如,如图1所示,在接收到二层交换设备P2转发的所述第二报文之后,NAT网关节点B可以对所述第二报文进行解析,得到所述第二报文的源MAC地址为“04:04:04:04:04:04”,以及得到所述第二报文的目的MAC地址为“0b:02:02:02:02:02”。
步骤306:根据预设的MAC地址缓存表,确定所述第二报文的目的MAC地址是否满足目的NAT处理条件。
例如,在解析得到所述第二报文的源MAC地址和目的MAC地址之后,NAT网关节点B可以根据预设的MAC地址缓存表,确定所述第二报文的目的MAC地址“0b:02:02:02:02:02”是否满足目的NAT处理条件。
在示出的一种实施方式中,在所述步骤306中,所述根据预设的MAC地址缓存表,确定所述第二报文的目的MAC地址是否满足目的NAT处理条件,具体可以包括:在预设的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中包含的除指定字节之外的其他字节匹配的MAC地址缓存表项;如果存在与所述第二报文的目的MAC地址中包含的其他字节匹配的MAC地址缓存表项,则确定所述第二报文的目的MAC地址满足所述目的NAT处理条件;如果不存在与所述第二报文的目的MAC地址中包含的其他字节匹配的MAC地址缓存表项,则确定所述第二报文的目的MAC地址不满足所述目的NAT处理条件。
例如,在解析得到所述第二报文的目的MAC地址为“0b:02:02:02:02:02”之后,NAT网关节点B可以在如表2所示的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中包含的后5个字节匹配的MAC地址缓存表项;因为存在与所述第二报文的目的MAC地址中包含的后5个字节匹配的MAC地址缓存表项“02:02:02:02:02:02”,所以可以确定所述第二报文的目的MAC地址满足目的NAT处理条件。
又例如,在解析得到所述第二报文的目的MAC地址为“0b:05:05:05:05:05”之后,NAT网关节点B可以在如表2所示的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中包含的后5个字节匹配的MAC地址缓存表项;因为不存在与所述第二报文的目的MAC地址中包含的后5个字节匹配的MAC地址缓存表项,所以可以确定所述第二报文的目的MAC地址不满足目的NAT处理条件。
在以上示出的实施方式中,所述NAT网关节点可以包括分布式NAT网关设备集群中的任一NAT网关设备。在这种情况下,在预设的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中除指定字节之外的其他字节匹配的MAC地址缓存表项之前,所述方法还可以包括:确定所述第二报文的目的MAC地址中包含的指定字节是否与本NAT网关节点的NAT网关标识匹配;如果所述第二报文的目的MAC地址中包含的指定字节与本NAT网关节点的NAT网关标识匹配,则在预设的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中包含的除指定字节之外的其他字节匹配的MAC地址缓存表项;如果所述第二报文的目的MAC地址中包含的指定字节与本NAT网关节点的NAT网关标识不匹配,则丢弃所述第二报文。
例如,在解析得到所述第二报文的目的MAC地址为“0b:02:02:02:02:02”之后,NAT网关节点B可以先确定所述第二报文的目的MAC地址中的第1个字节是否与本NAT网关节点的NAT网关标识“0b”匹配;如果匹配,则进一步地NAT网关节点B可以在如表2所示的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中包含的后5个字节匹配的MAC地址缓存表项;因为存在与所述第二报文的目的MAC地址中包含的后5个字节匹配的MAC地址缓存表项“02:02:02:02:02:02”,所以可以确定所述第二报文的目的MAC地址满足目的NAT处理条件。
又例如,在解析得到所述第二报文的目的MAC地址为“0a:02:02:02:02:02”之后,NAT网关节点B可以先确定所述第二报文的目的MAC地址中的第1个字节是否与本NAT网关节点的NAT网关标识“0b”匹配;如果不匹配,则可以直接丢弃所述第二报文。
步骤308:如果所述第二报文的目的MAC地址满足所述目的NAT处理条件,则将所述第二报文的目的MAC地址转换为所述第一主机的MAC地址,并将转换后的第二报文转发给内网侧网关设备,以使所述内网侧网关设备将所述转换后的第二报文转发给所述第一主机。
例如,如图1所示,如果根据如表2所示的MAC地址缓存表,确定所述第二报文的目的MAC地址“0b:02:02:02:02:02”满足目的NAT处理条件,则NAT网关节点B可以将所述第二报文的目的MAC地址转换为云实例V2的MAC地址“00:02:02:02:02:02”,也即,可以将所述第二报文的目的MAC地址中的第1个字节由NAT网关节点B的NAT网关标识“0b”转换为云实例V2的MAC地址中的第1个字节“00”;进一步地,NAT网关节点B可以将转换后的第二报文转发给虚拟交换设备S;虚拟交换设备S可以接收所述转换后的第二报文,并可以根据如表1所示的流量转发表,将所述转换后的第二报文转发给与目的MAC地址“00:02:02:02:02:02”对应的下一跳对象“云实例V2”。
在示出的一种实施方式中,所述方法还可以包括:
步骤310:如果所述第二报文的目的MAC地址不满足所述目的NAT处理条件,则丢弃所述第二报文。
例如,如图1所示,如果根据如表2所示的MAC地址缓存表,确定所述第二报文的目的MAC地址“0b:05:05:05:05:05”不满足目的NAT处理条件,则NAT网关节点B可以丢弃所述第二报文。
通过以上技术方案可知,一方面,通过NAT网关节点来桥接内网侧网关设备与外网侧网关设备,可以在不对原有网络拓扑做出重大变更的前提下,安全高效地实现内网与外网之间的互联,进行跨网络的报文转发。另一方面,由于在所述第二报文的目的MAC地址满足目的NAT处理条件的情况下,针对所述第二报文的目的MAC地址中包含的指定字节,NAT网关节点可以将其由目标NAT网关节点的NAT网关标识转换为第一主机的MAC地址中包含的指定字节,而不是将所述第二报文的目的MAC地址由所述目标NAT网关节点的MAC地址整个替换为所述第一主机的MAC地址;因此,在跨网络的报文转发过程中可以保留部分源信息,提高针对所述第二报文进行目的NAT处理的效率,进而提高跨网络的报文转发效率。
与上述跨网络的报文转发方法的实施例对应的,本说明书还提供了跨网络的报文转发装置的实施例。
请参见图4,图4是一示例性的实施例示出的一种跨网络的报文转发装置所在电子设备的硬件结构图。在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图5,图5是一示例性的实施例示出的一种跨网络的报文转发装置的框图。该跨网络的报文转发装置可以应用于如图4所示的电子设备中,以实现本说明书的技术方案。其中,所述跨网络的报文转发装置可以包括:
接收单元502,用于接收内网侧网关设备转发的第一报文;其中,所述第一报文为内网中的第一主机发送给所述内网侧网关设备的;
解析单元504,用于对所述第一报文进行解析,得到所述第一报文的源MAC地址和目的MAC地址;其中,所述第一报文的源MAC地址为所述第一主机的MAC地址;所述第一报文的目的MAC地址为外网中的第二主机的MAC地址;
转换单元506,用于根据预设的MAC地址缓存表,确定所述第一报文的目的MAC地址是否满足源NAT处理源NAT处理条件;如果所述第一报文的目的MAC地址满足所述源NAT处理源NAT处理条件,则将所述第一报文的源MAC地址中包含的指定字节转换为本NAT网关节点的NAT网关标识;
发送单元508,用于将转换后的第一报文转发给外网侧网关设备,以使所述外网侧网关设备将所述转换后的第一报文转发给所述第二主机。
在本实施例中,所述转换单元506,具体用于:
在预设的MAC地址缓存表中,查找是否存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项;
如果存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项,则确定所述第一报文的目的MAC地址满足所述源NAT处理源NAT处理条件;
如果不存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项,则确定所述第一报文的目的MAC地址不满足所述源NAT处理条件。
在本实施例中,所述转换单元506,还用于:
如果所述第一报文的目的MAC地址不满足所述源NAT处理条件,则丢弃所述第一报文。
在本实施例中,所述NAT网关节点包括分布式NAT网关设备集群中的任一NAT网关设备;
所述内网侧网关设备维护有目的MAC地址与下一跳对象之间的对应关系;其中,所述下一跳对象包括所述第一主机,和/或所述NAT网关设备集群中的各个NAT网关设备;
所述装置还包括:
路由更新单元,用于响应于所述NAT网关设备集群中除本NAT网关设备之外的至少一个NAT网关设备发生故障,向所述内网侧网关设备发送路由信息更新请求,以使所述内网侧网关设备针对其维护的目的MAC地址与下一跳对象之间的对应关系,将与发生故障的所述至少一个NAT网关设备对应的下一跳对象更新为本NAT网关设备。
在本实施例中,所述内网为云计算网络,所述外网为非云计算网络;所述第一主机为在云计算网络中的宿主机上运行的虚拟主机;所述内网侧网关设备为在云计算网络中的宿主机上运行的虚拟交换机;所述第二主机为非云计算网络中的物理主机;所述外网侧网关设备为非云计算网络中的二层交换机。
请参见图6,图6是一示例性的实施例示出的另一种跨网络的报文转发装置的框图。该跨网络的报文转发装置可以应用于如图4所示的电子设备中,以实现本说明书的技术方案。
其中,所述跨网络的报文转发装置可以包括:
接收单元602,用于接收外网侧网关设备转发的第二报文;其中,所述第二报文为外网中的第二主机发送给所述外网侧网关设备的;
解析单元604,用于对所述第二报文进行解析,得到所述第二报文的源MAC地址和目的MAC地址;其中,所述第二报文的源MAC地址为所述第二主机的MAC地址;所述第二报文的目的MAC地址为基于目标NAT网关节点的NAT网关标识,对内网中的第一主机的MAC地址中包含的指定字节进行转换而得到的;
转换单元606,用于根据预设的MAC地址缓存表,确定所述第二报文的目的MAC地址是否满足目的NAT处理条件;如果所述第二报文的目的MAC地址满足所述目的NAT处理条件,则将所述第二报文的目的MAC地址转换为所述第一主机的MAC地址;
发送单元608,用于将转换后的第二报文转发给内网侧网关设备,以使所述内网侧网关设备将所述转换后的第二报文转发给所述第一主机。
在本实施例中,所述转换单元606,具体用于:
在预设的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中包含的除指定字节之外的其他字节匹配的MAC地址缓存表项;
如果存在与所述第二报文的目的MAC地址中包含的其他字节匹配的MAC地址缓存表项,则确定所述第二报文的目的MAC地址满足所述目的NAT处理条件;
如果不存在与所述第二报文的目的MAC地址中包含的其他字节匹配的MAC地址缓存表项,则确定所述第二报文的目的MAC地址不满足所述目的NAT处理条件。
在本实施例中,所述NAT网关节点包括分布式NAT网关设备集群中的任一NAT网关设备;
所述转换单元606,具体还用于:
确定所述第二报文的目的MAC地址中包含的指定字节是否与本NAT网关节点的NAT网关标识匹配;
如果所述第二报文的目的MAC地址中包含的指定字节与本NAT网关节点的NAT网关标识匹配,则在预设的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中包含的除指定字节之外的其他字节匹配的MAC地址缓存表项;
如果所述第二报文的目的MAC地址中包含的指定字节与本NAT网关节点的NAT网关标识不匹配,则丢弃所述第二报文。
在本实施例中,所述转换单元606,还用于:
如果所述第二报文的目的MAC地址不满足所述目的NAT处理条件,则丢弃所述第二报文。
在本实施例中,所述内网为云计算网络,所述外网为非云计算网络;所述第一主机为在云计算网络中的宿主机上运行的虚拟主机;所述内网侧网关设备为在云计算网络中的宿主机上运行的虚拟交换机;所述第二主机为非云计算网络中的物理主机;所述外网侧网关设备为非云计算网络中的二层交换机。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (12)

1.一种跨网络的报文转发方法,其特征在于,所述方法应用于NAT网关节点;所述NAT网关节点用于桥接内网侧网关设备和外网侧网关设备;所述方法包括:
接收内网侧网关设备转发的第一报文;其中,所述第一报文为内网中的第一主机发送给所述内网侧网关设备的;
对所述第一报文进行解析,得到所述第一报文的源MAC地址和目的MAC地址;其中,所述第一报文的源MAC地址为所述第一主机的MAC地址;所述第一报文的目的MAC地址为外网中的第二主机的MAC地址;
根据预设的MAC地址缓存表,确定所述第一报文的目的MAC地址是否满足源NAT处理条件;
如果所述第一报文的目的MAC地址满足所述源NAT处理条件,则将所述第一报文的源MAC地址中包含的指定字节转换为本NAT网关节点的NAT网关标识,并将转换后的第一报文转发给外网侧网关设备,以使所述外网侧网关设备将所述转换后的第一报文转发给所述第二主机。
2.根据权利要求1所述的方法,其特征在于,所述根据预设的MAC地址缓存表,确定所述第一报文的目的MAC地址是否满足源NAT处理条件,包括:
在预设的MAC地址缓存表中,查找是否存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项;
如果存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项,则确定所述第一报文的目的MAC地址满足所述源NAT处理条件;
如果不存在与所述第一报文的目的MAC地址匹配的MAC地址缓存表项,则确定所述第一报文的目的MAC地址不满足所述源NAT处理条件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述第一报文的目的MAC地址不满足所述源NAT处理条件,则丢弃所述第一报文。
4.根据权利要求1所述的方法,其特征在于,所述NAT网关节点包括分布式NAT网关设备集群中的任一NAT网关设备;
所述内网侧网关设备维护有目的MAC地址与下一跳对象之间的对应关系;其中,所述下一跳对象包括所述第一主机,和/或所述NAT网关设备集群中的各个NAT网关设备;
所述方法还包括:
响应于所述NAT网关设备集群中除本NAT网关设备之外的至少一个NAT网关设备发生故障,向所述内网侧网关设备发送路由信息更新请求,以使所述内网侧网关设备针对其维护的目的MAC地址与下一跳对象之间的对应关系,将与发生故障的所述至少一个NAT网关设备对应的下一跳对象更新为本NAT网关设备。
5.根据权利要求1所述的方法,其特征在于,所述内网为云计算网络,所述外网为非云计算网络;所述第一主机为在云计算网络中的宿主机上运行的虚拟主机;所述内网侧网关设备为在云计算网络中的宿主机上运行的虚拟交换机;所述第二主机为非云计算网络中的物理主机;所述外网侧网关设备为非云计算网络中的二层交换机。
6.一种跨网络的报文转发方法,其特征在于,所述方法应用于NAT网关节点;所述NAT网关节点用于桥接内网侧网关设备和外网侧网关设备;所述方法包括:
接收外网侧网关设备转发的第二报文;其中,所述第二报文为外网中的第二主机发送给所述外网侧网关设备的;
对所述第二报文进行解析,得到所述第二报文的源MAC地址和目的MAC地址;其中,所述第二报文的源MAC地址为所述第二主机的MAC地址;所述第二报文的目的MAC地址为基于目标NAT网关节点的NAT网关标识,对内网中的第一主机的MAC地址中包含的指定字节进行转换而得到的;
根据预设的MAC地址缓存表,确定所述第二报文的目的MAC地址是否满足目的NAT处理条件;
如果所述第二报文的目的MAC地址满足所述目的NAT处理条件,则将所述第二报文的目的MAC地址转换为所述第一主机的MAC地址,并将转换后的第二报文转发给内网侧网关设备,以使所述内网侧网关设备将所述转换后的第二报文转发给所述第一主机。
7.根据权利要求6所述的方法,其特征在于,所述根据预设的MAC地址缓存表,确定所述第二报文的目的MAC地址是否满足目的NAT处理条件,包括:
在预设的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中包含的除指定字节之外的其他字节匹配的MAC地址缓存表项;
如果存在与所述第二报文的目的MAC地址中包含的其他字节匹配的MAC地址缓存表项,则确定所述第二报文的目的MAC地址满足所述目的NAT处理条件;
如果不存在与所述第二报文的目的MAC地址中包含的其他字节匹配的MAC地址缓存表项,则确定所述第二报文的目的MAC地址不满足所述目的NAT处理条件。
8.根据权利要求7所述的方法,其特征在于,所述NAT网关节点包括分布式NAT网关设备集群中的任一NAT网关设备;
在预设的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中除指定字节之外的其他字节匹配的MAC地址缓存表项之前,所述方法还包括:
确定所述第二报文的目的MAC地址中包含的指定字节是否与本NAT网关节点的NAT网关标识匹配;
如果所述第二报文的目的MAC地址中包含的指定字节与本NAT网关节点的NAT网关标识匹配,则在预设的MAC地址缓存表中,查找是否存在与所述第二报文的目的MAC地址中包含的除指定字节之外的其他字节匹配的MAC地址缓存表项;
如果所述第二报文的目的MAC地址中包含的指定字节与本NAT网关节点的NAT网关标识不匹配,则丢弃所述第二报文。
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:
如果所述第二报文的目的MAC地址不满足所述目的NAT处理条件,则丢弃所述第二报文。
10.根据权利要求6所述的方法,其特征在于,所述内网为云计算网络,所述外网为非云计算网络;所述第一主机为在云计算网络中的宿主机上运行的虚拟主机;所述内网侧网关设备为在云计算网络中的宿主机上运行的虚拟交换机;所述第二主机为非云计算网络中的物理主机;所述外网侧网关设备为非云计算网络中的二层交换机。
11.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1-5或6-10中任一项所述的方法。
12.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1-5或6-10中任一项所述的方法。
CN202310093038.7A 2023-01-30 2023-01-30 跨网络的报文转发方法、电子设备及机器可读存储介质 Active CN116055446B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310093038.7A CN116055446B (zh) 2023-01-30 2023-01-30 跨网络的报文转发方法、电子设备及机器可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310093038.7A CN116055446B (zh) 2023-01-30 2023-01-30 跨网络的报文转发方法、电子设备及机器可读存储介质

Publications (2)

Publication Number Publication Date
CN116055446A true CN116055446A (zh) 2023-05-02
CN116055446B CN116055446B (zh) 2023-11-17

Family

ID=86119896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310093038.7A Active CN116055446B (zh) 2023-01-30 2023-01-30 跨网络的报文转发方法、电子设备及机器可读存储介质

Country Status (1)

Country Link
CN (1) CN116055446B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117118774A (zh) * 2023-10-23 2023-11-24 杭州优云科技有限公司 二层网络下云计算网关的接入方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100287287A1 (en) * 2006-12-21 2010-11-11 Daniele Trentini Network Apparatus and Method for Translating Media Access Control Addresses
CN103379187A (zh) * 2012-04-28 2013-10-30 中兴通讯股份有限公司 一种数据处理方法及网关网元
CN103546374A (zh) * 2012-07-10 2014-01-29 杭州华三通信技术有限公司 一种边缘二层网络中转发报文的方法和装置
CN104038422A (zh) * 2013-03-08 2014-09-10 华为技术有限公司 报文转发方法和网关
CN104869042A (zh) * 2014-02-20 2015-08-26 华为技术有限公司 报文转发方法和装置
CN107547396A (zh) * 2017-05-18 2018-01-05 新华三信息安全技术有限公司 一种报文转发方法及装置
CN115102799A (zh) * 2021-03-04 2022-09-23 北京吉视汇通科技有限责任公司 一种基于i-pon的双向数据业务处理方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100287287A1 (en) * 2006-12-21 2010-11-11 Daniele Trentini Network Apparatus and Method for Translating Media Access Control Addresses
CN103379187A (zh) * 2012-04-28 2013-10-30 中兴通讯股份有限公司 一种数据处理方法及网关网元
CN103546374A (zh) * 2012-07-10 2014-01-29 杭州华三通信技术有限公司 一种边缘二层网络中转发报文的方法和装置
CN104038422A (zh) * 2013-03-08 2014-09-10 华为技术有限公司 报文转发方法和网关
CN104869042A (zh) * 2014-02-20 2015-08-26 华为技术有限公司 报文转发方法和装置
CN107547396A (zh) * 2017-05-18 2018-01-05 新华三信息安全技术有限公司 一种报文转发方法及装置
CN115102799A (zh) * 2021-03-04 2022-09-23 北京吉视汇通科技有限责任公司 一种基于i-pon的双向数据业务处理方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117118774A (zh) * 2023-10-23 2023-11-24 杭州优云科技有限公司 二层网络下云计算网关的接入方法及装置
CN117118774B (zh) * 2023-10-23 2024-02-27 杭州优云科技有限公司 二层网络下云计算网关的接入方法及装置

Also Published As

Publication number Publication date
CN116055446B (zh) 2023-11-17

Similar Documents

Publication Publication Date Title
KR102162730B1 (ko) 분산형 라우팅 테이블 탐색 기술
CN110012125B (zh) 集群网络通信方法、装置、存储介质和设备
US10015082B2 (en) Providing non-interrupt failover using a link aggregation mechanism
US7885180B2 (en) Address resolution request mirroring
CN107846358B (zh) 一种数据传输方法、装置及网络系统
US6496503B1 (en) Device initialization and operation using directed routing
CN108718278B (zh) 一种报文传输方法和装置
US20160241474A1 (en) Technologies for modular forwarding table scalability
US20090296706A1 (en) Method, system and processor for processing network address translation service
US20160380887A1 (en) Source imposition of network routes in computing networks
CN116055446B (zh) 跨网络的报文转发方法、电子设备及机器可读存储介质
US11824765B2 (en) Fast redirect of traffic when pods fail
US20190372883A1 (en) Method for scalable computer network partitioning
CN114064206A (zh) 一种访问边缘节点的pod方法、系统、设备及存储介质
WO2016173196A1 (zh) 地址映射关系的学习方法及装置
US9401890B2 (en) Method and a network element for content based addressing in a data transfer network
CN116016448A (zh) 一种服务网络访问方法、装置、设备及存储介质
CN114172853A (zh) 流量转发及裸机服务器的配置方法、装置
CN112787932B (zh) 一种用于生成转发信息的方法、装置和系统
CN111385195B (zh) 一种信息处理方法、装置及存储介质
CN114760248A (zh) 报文传输方法、设备及系统
CN116319354B (zh) 基于云实例迁移的网络拓扑更新方法
WO2023169364A1 (zh) 路由生成方法、数据报文的转发方法及装置
US20240171514A1 (en) Vtep multipath data traffic forwarding system
CN115865844B (zh) 基于sdn与ndn的虚实结合动态流量调度方法及装置

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