CN116112435A - 报文传输方法、装置、设备及存储介质 - Google Patents

报文传输方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116112435A
CN116112435A CN202310143049.1A CN202310143049A CN116112435A CN 116112435 A CN116112435 A CN 116112435A CN 202310143049 A CN202310143049 A CN 202310143049A CN 116112435 A CN116112435 A CN 116112435A
Authority
CN
China
Prior art keywords
network card
management unit
message
forwarding
forward message
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.)
Pending
Application number
CN202310143049.1A
Other languages
English (en)
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.)
Jingdong Technology Information Technology Co Ltd
Original Assignee
Jingdong Technology Information 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 Jingdong Technology Information Technology Co Ltd filed Critical Jingdong Technology Information Technology Co Ltd
Priority to CN202310143049.1A priority Critical patent/CN116112435A/zh
Publication of CN116112435A publication Critical patent/CN116112435A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • 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/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开实施例公开了一种报文传输方法、装置、设备及存储介质,其中,所述方法包括:从容器编排引擎中的第一管理单元获取正向报文;基于预设的直连路由表项和网桥,确定正向报文所对应的转发路径;其中,转发路径是由容器编排引擎中的网卡确定的;按照正向报文所对应的转发路径,将正向报文转发至容器编排引擎中的第二管理单元;其中,正向报文用于第一管理单元中的容器与第二管理单元中的容器进行交互。本公开实施例可以有助于减少报文转发的性能损耗、降低报文转发的时延和交互过程中出现故障的情况等。

Description

报文传输方法、装置、设备及存储介质
技术领域
本公开涉及但不限于计算机技术领域,尤其涉及一种报文传输方法、装置、设备及存储介质。
背景技术
容器编排引擎(Kubernetes,K8s)是一个轻便和可扩展的开源平台,用于管理容器化应用和服务。对于Kubernetes中的管理单元(Pod)访问虚拟网际协议地址(VirtualInternetProtocol,VIP)的问题,相关技术中,可以采用云原生的方式,通过部署Kubernetes集群内的服务发现组件(Kube-proxy)与交换机(Switch)的交互方案,实现报文的二层转发模式,但导致报文转发冗余、转发路径长,延时大等问题。
发明内容
有鉴于此,本公开实施例至少提供一种报文传输方法、装置、设备及存储介质。
本公开实施例的技术方案是这样实现的:
一方面,本公开实施例提供一种报文传输方法,包括:从容器编排引擎中的第一管理单元获取正向报文;基于预设的直连路由表项和网桥,确定所述正向报文所对应的转发路径;其中,所述转发路径是由所述容器编排引擎中的网卡确定的;按照所述正向报文所对应的转发路径,将所述正向报文转发至所述容器编排引擎中的第二管理单元;其中,所述正向报文用于所述第一管理单元中的容器与所述第二管理单元中的容器进行交互。
另一方面,本公开实施例提供一种报文传输装置,包括:第一获取模块,用于从容器编排引擎中的第一管理单元获取正向报文;第一确定模块,用于基于预设的直连路由表项和网桥,确定所述正向报文所对应的转发路径;其中,所述转发路径是由所述容器编排引擎中的网卡确定的;第一转发模块,用于按照所述正向报文所对应的转发路径,将所述正向报文转发至所述容器编排引擎中的第二管理单元;其中,所述正向报文用于所述第一管理单元中的容器与所述第二管理单元中的容器进行交互。
再一方面,本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
又一方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
又一方面,本公开实施例提供一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算机设备中运行时,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
又一方面,本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。
相关技术中,通过部署Kubernetes集群内的Kube-proxy与交换机的交互方案,实现报文在两个Pod之间的二层转发模式。而本公开实施例中,首先,通过从容器编排引擎中的第一管理单元获取正向报文;基于预设的直连路由表项和网桥,确定正向报文所对应的转发路径;其中,转发路径是由容器编排引擎中的网卡确定的;这样,通过直连路由表项可以快速准确地确定正向报文的转发路径,实现默认转发路径的调整;同时,由于确定的转发路径只涉及多个网卡,通过去除与交换机进行交互的路径,实现转发路径的简化;这样,有助于减少报文转发的性能损耗、降低报文转发的时延和交互过程中出现故障的情况等。然后,按照正向报文所对应的转发路径,可以快速准确地将正向报文转发至容器编排引擎中的第二管理单元,实现第一管理单元中的容器与第二管理单元中的容器之间的交互。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1为本公开实施例提供的第一种报文传输方法的实现流程示意图;
图2为本公开实施例提供的第二种报文传输方法的实现流程示意图;
图3为本公开实施例提供的第三种报文传输方法的实现流程示意图;
图4为本公开实施例提供的第四种报文传输方法的实现流程示意图;
图5为本公开实施例提供的第一种转发路径的组成结构示意图;
图6为本公开实施例提供的第二种转发路径的组成结构示意图;
图7为本公开实施例提供的一种对象创建的实现示意图;
图8为本公开实施例提供的一种报文传输装置的组成结构示意图;
图9为本公开实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
为了使本公开的目的、技术方案和优点更加清楚,下面结合附图和实施例对本公开的技术方案进一步详细阐述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开的目的,不是旨在限制本公开。
本公开实施例提供一种报文传输方法,该方法可以由容器编排引擎Kubernetes的处理器执行,如,容器编排引擎由云端服务器进行管理等。其中,容器编排引擎Kubernetes是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务;通过Kubernetes能够进行应用的自动化部署和扩缩容;在Kubernetes中,会将组成应用的容器组合成一个逻辑单元以更易管理和发现。图1为本公开实施例提供的一种报文传输方法的实现流程示意图,如图1所示,该方法包括如下步骤S101至步骤S103:
步骤S101,从容器编排引擎中的第一管理单元获取正向报文。
这里,容器编排引擎中可以包括多个管理单元(Pod),不同Pod中的容器可以进行报文交互。容器是一种用于打包应用的(已编译)代码以及运行时所需的依赖项的技术,容器编排引擎中运行的每个容器都是可重复的,通过包含依赖项来实现标准化意味着无论在哪里运行容器,都可以得到相同的行为。容器将应用与底层的主机基础设施分离,这使得在不同的云或操作系统(OperatingSystem,OS)环境中的部署更加容易。容器编排引擎并不直接地运行容器,而是被一个抽象的资源对象Pod所封装,它是容器编排引擎中最小的调度单位,Pod可以封装一个或多个容器,同一个Pod中共享网络名称空间和存储资源,而容器之间可以通过本地回环接口直接通信,但是彼此之间又在名称空间(如Mount、User和Pid等)上保持了隔离。
第一管理单元可以是指容器编排引擎中的任一管理单元,这里并不限定。正向报文可以是指从第一管理单元发送至其他管理单元的报文,也可以称为流量等;对于正向报文的作用,这里并不限定,如,正向报文可以用于调用其他管理单元中的容器。例如:若第一管理单元中的容器需要访问虚拟网际协议地址,那么第一管理单元可以响应于用户针对相应的虚拟网际协议地址的访问操作,生成正向报文;其中,正向报文中至少可以携带第一管理单元的网际协议地址,以及目标网际协议地址等,目标网际协议地址可以为虚拟网际协议地址。
步骤S102,基于预设的直连路由表项和网桥,确定所述正向报文所对应的转发路径。
这里,直连路由(DirectRouting)可以是由链路层协议发现的,一般指去往路由器的物理接口地址所在网段的路径,该路径信息不需要网络管理员维护,也不需要路由器通过某种算法进行计算获得,只要该接口处于活动状态(Active),路由器就会把通向该网段的路由信息填写到路由表中去,直连路由无法使路由器获取与其不直接相连的路由信息。直连路由表项可以是指用于存储直连路由的路由信息的存储结构,如,直连路由表项中包括:目的地址(Destination)为10.30.230.16,网关地址(Gateway)为0.0.0.0,目的地址的子网掩码(Mask)为255.255.255.0,去往目的地址的网络路径的出口(也就是从那个出口可以去往目的地址)(Iface)为预设网关(也可以称为网络适配器)等。
网桥(Bridge),又称桥接器,是早期的两端口二层网络设备,网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥可以用于连接两个或更多个局域网的网络互连。例如:通过第一网桥可以将正向报文从第一管理单元发送至其他管理单元等。
转发路径可以是指在容器编排引擎中,正向报文从第一管理单元发送至其他管理单元所经过的路径,转发路径是由容器编排引擎中的网卡确定的,如,第一管理单元将正向报文发送至第一网卡,第一网卡将正向报文发送至第二网卡,第二网卡将正向报文发送至第三网卡,第三网卡将正向报文发送至其他管理单元,则转发路径可以为第一网卡至第二网卡至第三网卡;其中,第一网卡与第一管理单元对应,第三网卡与其他管理单元对应,每一管理单元可以对应一个网卡。例如:通过直连路由表中的对应关系,确定转发路径中的第一网卡和第三网卡;通过网桥中预设的转发规则和地址表等信息,确定转发路径中的第二网卡,用于确定正向报文的转发路径。
步骤S103,按照所述正向报文所对应的转发路径,将所述正向报文转发至所述容器编排引擎中的第二管理单元。
这里,正向报文可以用于第一管理单元中的容器与第二管理单元中的容器进行交互,如,正向报文用于访问第二管理单元中容器的运行状态等。例如:转发路径为第一网卡至第二网卡至第三网卡,第一网卡与第一管理单元对应,第三网卡与其他管理单元对应,那么可以通过第一网卡将正向报文从第一管理单元转发至第二网卡,通过第三网卡将正向报文从第二网卡转发至其他管理单元等,以实现第一管理单元访问虚拟网际协议地址。
相关技术中,通过部署Kubernetes集群内的Kube-proxy与交换机的交互方案,实现报文在两个Pod之间的二层转发模式。而本公开实施例中,首先,通过从容器编排引擎中的第一管理单元获取正向报文;基于预设的直连路由表项和网桥,确定正向报文所对应的转发路径;其中,转发路径是由容器编排引擎中的网卡确定的;这样,通过直连路由表项可以快速准确地确定正向报文的转发路径,实现默认转发路径的调整;同时,由于确定的转发路径只涉及多个网卡,通过去除与交换机进行交互的路径,实现转发路径的简化;这样,有助于减少报文转发的性能损耗、降低报文转发的时延和交互过程中出现故障的情况等。然后,按照正向报文所对应的转发路径,可以快速准确地将正向报文转发至容器编排引擎中的第二管理单元,实现第一管理单元中的容器与第二管理单元中的容器之间的交互。
在一些实施例中,在实施步骤S103之前,该方法还可以包括如下步骤S111至步骤S112:
步骤S111,获取所述第一管理单元的网际协议地址、所述第一管理单元的局域网地址和所述正向报文的输入网卡的标识。
这里,网际协议地址(InternetProtocol,IP)位于网络层,可以向传输层提供各种协议的信息,如,传输控制协议、用户数据报协议等,对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送,以实现不同网络之间的互联互通。容器编排引擎会为生成的每一管理单元分配一个网际协议地址,并将该网际协议地址、网际协议地址与管理单元的对应关系存储至预设存储空间,以使得可以从预设存储空间实时读取第一管理单元的网际协议地址;其中,管理单元内的所有容器可以共享该管理单元的网际协议地址。
局域网地址(MediaAccessControlAddress,MAC),也可以称为物理地址(PhysicalAddress),是一个用来确认网络设备位置的位址,如,容器编排引擎可以生成局域网地址查询指令,获取每一管理单元的局域网地址。输入网卡可以是指与第一管理单元相连的网卡,输入网卡的一端可以加入第一管理单元,输入网卡的另一端可以加入网桥,可以利用输入网卡将正向报文转发至网桥等;其中,每一网卡可以对应一个标识,通过该标识可以读取或调用对应网卡等;其中,还可以将每一网卡与对应的标识存储至预设存储空间,以使得可以从预设存储空间实时读取输入网卡的标识。
步骤S112,基于所述第一管理单元的网际协议地址、所述第一管理单元的局域网地址和所述正向报文的输入网卡的标识,生成静态地址解析协议表项。
这里,静态地址解析协议(AddressResolutionProtocol,ARP)表项可以用于保存IP地址和所对应的MAC地址的映射关系,如,静态ARP表项中至少可以包括:第一管理单元的网际协议地址(PodIP)、第一管理单元的局域网地址(PodMAC)、去往目的地址的网络路径的出口(Iface)、状态(State)为永久绑定(Permanent)等。静态ARP表项可以限制和指定IP地址的设备通信时只使用指定的MAC地址,此时攻击报文无法修改此表项的IP地址和MAC地址的映射关系,从而保护了本设备和指定设备间的正常通信。
在一些实施例中,上述步骤S103可以包括如下步骤S113:
步骤S113,基于所述静态地址解析协议表项,按照所述正向报文所对应的转发路径,将所述正向报文转发至所述容器编排引擎中的第二管理单元。
这里,第二管理单元可以是指容器编排引擎中除第一管理单元之外的任一管理单元,第二管理单元可以接收正向报文;第二管理单元可以与第一管理节点位于同一工作节点(Node),也可以处于不同工作节点等,这里并不限定。步骤S113可以包括:基于静态ARP表项中IP地址和MAC地址的映射关系,将正向报文从管理单元转发至对应的网桥、从上一网桥转发至当前网桥、从下一网桥转发至第二管理单元等。
本公开实施例中,通过第一管理单元的网际协议地址、第一管理单元的局域网地址和正向报文的输入网卡的标识,可以快速准确地生成静态地址解析协议表项,以使得基于静态地址解析协议表项,按照正向报文所对应的转发路径,准确地将正向报文转发至容器编排引擎中的第二管理单元,有助于减少正向报文的转发路径等。
本公开实施例提供一种报文传输方法,如图2所示,该方法包括如下步骤S201至步骤S206:
步骤S201对应于前述步骤S101,在实施时可以参照前述步骤S101的具体实施方式;步骤S206对应于前述步骤S103,在实施时可以参照前述步骤S103的具体实施方式。
步骤S202,确定与所述正向报文的源地址匹配的输入网卡。
这里,输入网卡可以是指与第一管理单元相连的网卡,输入网卡的一端可以加入第一管理单元,输入网卡的另一端可以加入网桥,可以利用输入网卡将正向报文转发至网桥等。可以预先设置管理单元的标识与网卡之间的对应关系,并将该对应关系存储至预设存储空间,如,第一管理单元对应第一网卡、第二管理单元对应第二网卡等。步骤S202可以包括:对正向报文进行解析,得到正向报文的源地址;确定该源地址所对应的管理单元(也即第一管理单元);基于第一管理单元的标识,以及管理单元的标识与网卡之间的对应关系,确定与第一管理单元匹配的网卡,将该网卡确定为输入网卡。
步骤S203,基于所述网桥的转发规则,确定与所述正向报文的输出网卡。
这里,网桥的转发规则(Iptables)可以理解为防火墙,可以对报文的数据包进行过滤,转发规则由内核态与用户态组成。内核态:属于内核的一部分,由数据包过滤表组成,是控制转发的内核程序;用户态:用户能操作的程序,通过编写四表五链的规则传递给内核态,依次实现自定义过滤功能等;四表五链可以为输入链(Input)、跟踪表(Raw)等。可以响应于用户针对不同管理单元之间的关联操作,预先设置网桥的转发规则,如,将第一管理单元的正向报文转发至第二管理单元,将第三管理单元的正向报文转发至第四管理单元等。
输出网卡可以是指与第二管理单元相连的网卡,输出网卡的一端可以加入第二管理单元,输出网卡的另一端可以加入网桥,可以利用输出网卡将正向报文转发从网桥转发至第二管理单元等。步骤S203可以包括:对正向报文进行解析,得到正向报文的目的地址;确定该目的地址所对应的管理单元(也即第二管理单元);基于第二管理单元的标识,以及管理单元的标识与网卡之间的对应关系,确定与第二管理单元匹配的网卡,将该网卡确定为输出网卡。
步骤S204,基于所述网桥的转发表项和所述直连路由表项,确定与所述输入网卡和所述输出网卡相关联的至少一个中间网卡。
这里,中间网卡可以是指关联输入网卡和输出网卡的网卡,如,正向报文可以从输入网卡发送至中间网卡,再从中间网卡发送至输出网卡;其中,中间网卡的数量,这里并不限定。转发表项(ForwardDatabase,FDB)作用在于对交换机的二层网络进行选路。如果转发表项是静态的,不允许交换机随意的、自动的更改转发表项,就可以实现某些网卡的端口与某些MAC地址的固定对应,而不在此对应范围内的客户机则无法收到从交换机来的数据包,使用静态转发表项就可以实现MAC地址、网卡端口的绑定等。例如:基于转发表项中MAC地址与网卡端口的对应关系,确定输入网卡中正向报文的出口为第一中间网卡,再基于直连路由表项中预设的Iface等信息,确定第一中间网卡中正向报文的出口为第二中间网卡等。
步骤S205,将所述输入网卡、至少一个所述中间网卡和所述输出网卡之间的关联顺序确定为所述正向报文所对应的转发路径。
这里,网卡之间的关联顺序可以是指转发路径中网卡连接的先后顺序等,如,输入网卡在前,中间网卡位于中间,输出网卡在后。输入网卡与第一管理单元对应,输入网卡的一端与第一管理单元相连,输入网卡的另一端与中间网卡的一端相连,中间网卡的另一端与输出网卡相连,输出网卡与第二管理单元对应。例如:正向报文所对应的转发路径为从输入网卡至第一中间网卡至第二中间网卡至输出网卡等。
本公开实施例中,通过正向报文的源地址可以准确地确定输入网卡,再基于网桥的转发规则,可以准确地确定与正向报文的输出网卡;基于网桥的转发表项和直连路由表项,确定与输入网卡和输出网卡相关联的至少一个中间网卡;继而将输入网卡、至少一个中间网卡和输出网卡之间的关联顺序确定为正向报文所对应的转发路径,有助于准确快速地得到转发路径。
在一些实施例中,至少一个所述中间网卡包括所述网桥中的第一中间网卡和所述容器编排引擎中的第二中间网卡,所述第二中间网卡为物理网卡;上述步骤S204可以包括如下步骤S2041至步骤S2043:
步骤S2041,基于所述网桥的转发表项,确定所述第一中间网卡。
这里,第一中间网卡可以是指与输入网卡相连的网卡,第二中间网卡可以是指与输出网卡相连的网卡。例如:可以基于转发表项中MAC地址与网卡端口的对应关系,确定输入网卡中正向报文的出口为第一中间网卡,再基于直连路由表项中预设的Iface等信息,确定第一中间网卡中正向报文的出口为第二中间网卡等。
步骤S2042,利用所述网桥的过滤规则,将所述正向报文的源地址替换为所述第二中间网卡的网际协议地址,得到转换后的正向报文。
这里,过滤规则(Netfilter)可以是指用于对报文进行过滤、转换等处理的规则。将正向报文传输至第一中间网卡后,可以在过滤规则所对应的路由选择后处理链(POST_ROUTING链)上传输正向报文,以实现正向报文的源地址转换(Snat),如,将正向报文的源地址替换为第二中间网卡的网际协议地址,得到转换后的正向报文,以改变正向报文的默认路径。
步骤S2043,基于所述直连路由表项,确定与所述转换后的正向报文匹配的所述第二中间网卡。
这里,可以基于直连路由表项中预设的目的地址、去往目的地址的网络路径的出口等信息,确定第二中间网卡。
本公开实施例中,通过网桥的转发表项,确定第一中间网卡;继而可以基于直连路由表项,快速准确地确定与转换后的正向报文匹配的第二中间网卡。
本公开实施例提供一种报文传输方法,如图3所示,该方法包括如下步骤S301至步骤S307:
步骤S301至步骤S303分别对应于前述步骤S101至步骤S103,在实施时可以参照前述步骤S101至步骤S103的具体实施方式。
步骤S304,基于所述正向报文所对应的转发路径,确定所述正向报文的连接跟踪规则。
这里,连接跟踪(ConnectionTracking,CT)可以是指跟踪并记录正向报文在转发过程中,各服务或网卡连接的状态。可以通过对正向报文进行连接跟踪,得到正向报文所对应的连接跟踪规则,连接跟踪规则用于记录连接跟踪的结果,如,输入网卡与第一管理单元之间的连接,第一中间网卡与输入网卡之间的连接等。可以预设正向报文与连接跟踪规则之间的对应关系,并将该对应关系存储至预设存储空间,以使得可以实时根据正向报文的标识等信息,确定对应的连接跟踪规则。
步骤S305,从所述第二管理单元获取响应于所述正向报文的回应报文。
这里,第二管理单元响应于接收到正向报文,生成与该正向报文所对应的回应报文,回应报文可以是指针对正向报文的响应,如,正向报文用于表征第一管理单元对第二管理单元进行的资源调用请求,回应报文可以表征第二管理单元针对该资源调用请求的响应结果,响应结果可以包括同意调用和不同意调用等。
步骤S306,基于所述正向报文的连接跟踪规则,确定所述回应报文所对应的转发路径。
这里,可以将连接跟踪规则所表征的正向报文的转发路径进行取反,得到回应报文所对应的转发路径,如,连接跟踪规则所表征的正向报文的转发路径为输入网卡至第一中间网卡至第二中间网卡至输出网卡,那么回应报文的转发路径可以为输出网卡至第二中间网卡至第一中间网卡至输入网卡。
步骤S307,按照所述回应报文所对应的转发路径,将所述回应报文转发至所述第一管理单元。
这里,可以基于回应报文的转发路径,生成对应的静态地址解析协议表项;基于该静态地址解析协议表项,按照多个网卡的关联顺序,将回应报文转发至第一管理单元。
本公开实施例中,通过正向报文所对应的转发路径,确定正向报文的连接跟踪规则,以使得可以快速准确地确定回应报文的转发路径,继而基于该转发路径快速准确地将回应报文转发至第一管理单元。
在一些实施例中,在实施步骤S306之后,该方法还可以包括如下步骤S311:
步骤S311,在将所述回应报文转发至所述回应报文所对应的中间网卡的情况下,利用所述网桥的过滤规则,将所述回应报文的目标地址替换为所述第一管理单元的网际协议地址,得到转换后的回应报文。
这里,对于回应报文,将回应报文传输至第二中间网卡后,可以在过滤规则所对应的路由选择后处理链(POST_ROUTING链)上传输回应报文,以实现回应报文的目标地址替换,如,将回应报文的目标地址(也可以称为目的地址)替换为第一中间网卡的网际协议地址,得到转换后的回应报文,以改变回应报文的默认路径,并确定回应报文所对应的各网卡等。
在一些实施例中,上述步骤S307可以包括如下步骤S12:
步骤S312,按照所述回应报文所对应的转发路径,将所述转换后的回应报文转发至所述第一管理单元。
例如:可以将回应报文从第二管理单元发送至第二中间网卡,从第二中间网卡发送至第一中间网卡,从第一中间网卡发送至输入网卡,再从输入网卡发送至第一管理单元等。
本公开实施例中,通过在将回应报文转发至回应报文所对应的中间网卡的情况下,利用网桥的过滤规则,将回应报文的目标地址替换为第一管理单元的网际协议地址,得到转换后的回应报文,有助于基于转换后的回应报文确定下一中间网卡,以改变回应报文的默认路径等。
本公开实施例提供一种报文传输方法,如图4所示,该方法包括如下步骤S401至步骤S406:
步骤S404至步骤S406分别对应于前述步骤S101至步骤S103,在实施时可以参照前述步骤S101至步骤S103的具体实施方式。
步骤S401,响应于所述容器编排引擎中的第一容器网络接口插件的初始化,创建所述网桥。
这里,容器网络接口插件(ContainerNetworkInterface,CNI)即容器网络的应用程序编程接口(ApplicationProgrammingInterface,API),是容器编排引擎中标准的一个调用网络实现的接口。容器编排引擎中的通信组件(Kubelet)通过这个标准的API来调用不同的网络插件以实现不同的网络配置方式,实现了这个接口的就是CNI插件,CNI插件可以实现一系列的CNIAPI接口。其中,CNI插件可以包括:Calico插件、Flannel插件、Terway插件、WeaveNet插件、Contiv插件等。第一容器网络接口插件可以是指用于可以创建网桥的插件,如,Cniserver插件等,这里并不限定。例如:通过Kubelet组件控制Cniserver插件实现初始换,以及创建网桥等。
步骤S402,基于所述第二中间网卡创建所述第一中间网卡,并将所述第一中间网卡添加至所述网桥。
这里,第二中间网卡可以为物理网卡,第一中间网卡可以为虚拟网卡;虚拟网卡(又称虚拟网络适配器),即用软件模拟网络环境,模拟网络适配器,操作系统自带此网卡,物理网卡也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。在确定第二中间网卡的情况下,可以基于第二中间网卡创建虚拟网际协议地址的第一中间网卡;第一中间网卡的一端可以加入网桥,另一端可以加入第一管理单元。
步骤S403,基于所述容器编排引擎中的通信组件,通过所述容器编排引擎中的第二容器网络接口插件,创建所述正向报文的输入网卡和所述第一管理单元。
这里,第二容器网络接口插件可以是指能够创建第一管理单元的插件,如,Cni插件等。例如:可以通过Kubelet组件控制Cni插件实现初始换,以及先创建第一管理单元所对应的输入网卡,再创建第一管理单元;输入网卡与输出网卡存在对应关系,可以成对存在,输入网卡的一端可以加入网桥,另一端加入第一管理单元等。在创建第一管理单元之后,可以获取第一管理单元的网际协议地址,并且可以基于第一管理单元的网际协议地址和物理地址等信息,创建直连路由表项、静态地址解析协议表项等,用于确后续定正向报文的转发路径等处理。
本公开实施例中,通过响应于容器编排引擎中的第一容器网络接口插件的初始化,快速地创建网桥;基于第二中间网卡创建第一中间网卡,并将第一中间网卡添加至网桥;基于容器编排引擎中的通信组件,通过容器编排引擎中的第二容器网络接口插件,快速准确地创建正向报文的输入网卡和第一管理单元,以实现不同管理单元中容器的交互。
下面说明本公开实施例提供的报文传输方法在实际场景中的应用,以未进行三层改造的二层网络的互联网数据中心(InternetDataCenter,IDC)为基础,搭建K8s集群,降低Pod访问VIP过程中延时大、成本高等问题的影响场景为例进行说明。
相关技术中,对于降低Pod访问VIP过程中延时大、成本高等问题的影响,可以在K8s集群外部署网络负载均衡器(LoadBalancer,LB)产品,报文可以从K8s集群内的管理单元转发至网络负载均衡器LB,通过网络负载均衡器LB,实现VIP到后端容器(Backend)(VIP后面挂载的真实IP地址)的转换和流量转发等处理;但该种方案中,VIP必须是从基础网络申请的有效网段;同时,由于网络负载均衡器LB是集中式的,当K8s集群规模较大时,网络负载均衡器LB中服务器的性能会成为报文转发的瓶颈;此外,部署网络负载均衡器LB还需要额外的服务器,增加成本。
相关技术中,还可以采用云原生的方式,通过部署K8s集群内的服务发现组件(Kube-proxy)与交换机(Switch)的交互方案,实现报文的二层转发模式,但采用该方案,存在报文转发冗余、转发路径长,延时大等问题。如图5所示,报文的转发路径涉及K8s集群501和交换机(Switch)502之间的交互,报文的转发路径可以包括:Pod访问VIP报文流向的路径、Pod访问VIP回程报文流向的路径;其中,K8s集群501中可以设置服务(Sevier),基于服务实现对容器的负载;Sevier是应用服务的抽象,通过标签(Labels)为应用提供负载均衡和服务发现,Label是识别K8s集群中各种对象的标签;每个Sevier都会自动分配一个固定虚拟地址(ClusterIP)(仅在K8s集群内部可访问的虚拟地址)和域名系统(DomainNameSystem,DNS)中的域名或者标识,其他容器可以通过该地址或DNS来访问服务,而不需要了解后端容器的运行等;例如:K8s集群501中Sevier的clusterIP可以为10.0.32.52,交换机的IP可以为10.30.230.1,MAC地址可以为04:b0:e7:01:f7:c4等。
Pod访问VIP报文流向的路径可以包括:从管理单元5011(也即第一管理单元)中获取正向报文,将正向报文传输至网卡(Veth1)5012(也即输入网卡);再将正向报文传输至网桥(Br-Vlan)5013中的网卡(Vlan100)5014(也即第一中间网卡),再通过网卡(Eth0)5015(也即第二中间网卡),将正向报文传输至交换机502的转发功能;利用交换机502的转发功能,将正向报文转发至网卡(Eth1)5016,网卡5016与网卡5015所对应,也可以为物理网卡;再将正向报文传输至网卡5014,以及通过网卡(Veth2)5017(也即输出网卡)将正向报文转发至管理单元5108(也即第二管理单元);其中,管理单元5011的IP可以为10.30.230.16,网卡5015的IP可以为12.1.1.6,管理单元5108的IP可以为10.30.230.15等。
在正向报文的转发过程中,正向报文从管理单元5011发出,网卡5012收到正向报文后,在网桥5013内进行转发;由于网桥5013开启了转发规则(Iptables),正向报文可以按照过滤规则(Netfilter)的路由选择前处理链(PRE_ROUTING链)进行VIP到后端容器的转换;然后查询网桥5013下的转发表项(FDB),确认正向报文的出口为网卡5014;正向报文在网卡5014真正发包之前,正向报文可以按照Netfilter的路由选择后处理链(POST_ROUTING链)进行传输,以实现源地址转换(Snat);转换后正向报文的源地址可以替换为网卡(Eth0)5015的IP地址,正向报文的目的地址可以替换为管理单元5108的IP地址;然后查询默认路由表项,确定正向报文可以从报文从网卡(Eth0)5015发出。例如:默认路由表项中的目的地址(Destination)为0.0.0.0,网关地址(Gateway)为12.1.1.1,目的地址的子网掩码(Mask)为0.0.0.0,去往目的地址的网络路径的出口(也就是从那个出口可以去往目的地址)(Iface)为网卡(Eth0)5015等。
正向报文转发至交换机502后,由于正向报文的目的地址为管理单元5108的IP地址,根据二层转发规则,对正向报文添加标签(Tag),将添加标签后的正向报文转发到网卡(Eth1)5016;网卡(Eth1)5016可以根据正向报文携带的虚拟局域网(VirtualLocalAreaNetwork,Vlan)的标识,进入网桥(Br-Vlan)5013中的网卡(Vlan100)5014,执行收包处理流程;再次查询转发表项,得到网卡(Veth2)5017,并通过网卡(Veth2)5017将正向报文转发至管理单元5108。
Pod访问VIP回程报文流向的路径可以包括:回应报文可以从管理单元5108传输至网卡5017;再通过网卡5014传输至网卡5016,以使得将正向报文转发至交换机502;利用交换机502的转发功能,将回应报文转发至网卡5015;通过网卡5014将正向报文转发至网卡5012,以使得网卡5012将回应报文传输至管理单元5011等。
在回应报文的转发过程中,回应报文从管理单元5108发出,此时回应报文的目的地址为网卡(Eth0)5015的IP地址;根据正向报文所建立的连接跟踪规则,将回应报文的目的地址修改为管理单元5011的IP地址,以及将回应报文的源地址修改为虚拟网际协议地址(VIP);重新查询默认路由表项,得到网卡(Eth0)5015,将回应报文从网卡(Eth0)5015发出至交换机502。其中,连接跟踪规则可以包括访问(Origin)方向的表项、回应(Reply)方向的表项等;访问方向的表项可以包括协议类型(Protonum,PROTO)为传输控制协议(TransmissionControlProtocol,TCP)、源地址(Source,SRC)为10.30.230.16、目的地址(Destination,DST)为10.0.32.52、源端口(SoucePort,SPORT)为58386、目标端口(DestinationPort,DPORT)为9090等;回应方向的表项可以包括PROTO为TCP、SRC为10.30.230.15、DST为12.1.1.6、SPORT为9090、DPORT为50120等。
交换机502接收到回应报文后,可以确定回应报文的目的地址为管理单元5011的IP地址,根据二层转发规则,对回应报文添加虚拟局域网的标识;将添加标识后的回应报文转发至网卡(Eth0)5015,基于虚拟局域网的标识和网桥5013下的转发表项(FDB),再通过网卡5014将正向报文转发至网卡5012,以使得网卡5012将回应报文传输至管理单元5011等。
而本公开实施例中,如图6所示,不涉及K8s集群601和交换机(Switch)602之间的交互,报文的转发路径可以包括:Pod访问VIP报文流向的路径、Pod访问VIP回程报文流向的路径。
对于Pod访问VIP报文流向的路径,管理单元6011中的容器访问VIP时,正向报文从管理单元601传输至网卡(Veth1)6012(也即输入网卡);网卡(Veth1)6012接收正向报文后,在网桥(Br-Vlan)6013内进行转发,由于网桥6013开启了转发规则(Iptables),正向报文可以按照过滤规则(Netfilter)的路由选择前处理链(PRE_ROUTING链)进行VIP到后端容器的转换;然后查询网桥6013下的转发表项(FDB),确认正向报文的出口为网卡6014;正向报文在网卡6014真正发包之前,正向报文可以按照Netfilter的路由选择后处理链(POST_ROUTING链)进行传输,以实现源地址转换(Snat);转换后正向报文的源地址可以替换为网卡(Eth0)6015的IP地址;然后查询直连路由表项,确定正向报文可以从报文从网卡(Eth0)5015发出,直接到达网卡(Veth2)6017;其中,直连路由表项的查询优先级高于默认路由表项的查询优先级,在无法查询到直连路由表项的情况下,可以查询默认路由表项。例如:直连路由表项中的第一行的Destination为10.30.230.16,Gateway为0.0.0.0,Mask为255.255.255.0,Iface为网卡(Veth1)6012等;直连路由表项中的第二行的Destination为10.30.230.15,Gateway为0.0.0.0,Mask为255.255.255.0,Iface为网卡(Veth2)6017等。
对于Pod访问VIP回程报文流向的路径,回应报文可以从管理单元6108发出,回应报文的目的地址为网卡(Eth0)6015的IP地址;根据正向报文所建立的连接跟踪规则,将回应报文的目的地址修改为管理单元6011的IP地址;重新查询路由表项,此时查到的是直连路由表项,而不是默认路由表项,可以直接通过将回应报文会直接通过网卡(Veth1)6012转发至管理单元6011,而不是转发至交换机602。其中,第一管理单元中的容器和第二管理单元中的容器,或者VIP后面挂载的Backend,可以处于同一计算节点(工作节点),也可以处于不同计算节点等。
在进行正向报文或回应报文的转发之前,可以先进行管理单元、网卡等对象的创建。如图7所示,可以响应于容器编排引擎中的第一容器网络接口插件(Cniserver插件)701的初始化,创建网桥(Br-Vlan)702;基于第二中间网卡(Eth0)703创建所述第一中间网卡(Vlan100)704,并将第一中间网卡704添加至网桥702;其中,第一中间网卡704为虚拟网卡;基于容器编排引擎中的通信组件(Kubelet)705,通过容器编排引擎中的第二容器网络接口插件(Cni插件)706,创建正向报文的输入网卡707和第一管理单元708等。
本公开实施例中,在二层虚拟局域网络模式下,创建管理单元时,在计算节点上,通过额外添加到其他管理单元的直连路由表项和静态地址解析协议表项,优化管理单元访问虚拟局域网的报文的转发路径,减少报文传输时的性能损耗、降低报文转发的时延等。
基于前述的实施例,本公开实施例提供一种报文传输装置,该装置包括所包括的各单元、以及各单元所包括的各模块,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CentralProcessingUnit,CPU)、微处理器(MicroprocessorUnit,MPU)、数字信号处理器(DigitalSignalProcessor,DSP)或现场可编程门阵列(FieldProgrammableGateArray,FPGA)等。
图8为本公开实施例提供的一种报文传输装置的组成结构示意图,如图8所示,报文传输装置800包括:第一获取模块810、第一确定模块820和第一转发模块830,其中:
第一获取模块810,用于从容器编排引擎中的第一管理单元获取正向报文;第一确定模块820,用于基于预设的直连路由表项和网桥,确定所述正向报文所对应的转发路径;其中,所述转发路径是由所述容器编排引擎中的网卡确定的;第一转发模块830,用于按照所述正向报文所对应的转发路径,将所述正向报文转发至所述容器编排引擎中的第二管理单元;其中,所述正向报文用于所述第一管理单元中的容器与所述第二管理单元中的容器进行交互。
在一些实施例中,所述第一确定模块,还用于:确定与所述正向报文的源地址匹配的输入网卡;基于所述网桥的转发规则,确定与所述正向报文的输出网卡;基于所述网桥的转发表项和所述直连路由表项,确定与所述输入网卡和所述输出网卡相关联的至少一个中间网卡;将所述输入网卡、至少一个所述中间网卡和所述输出网卡之间的关联顺序确定为所述正向报文所对应的转发路径;其中,所述输入网卡与所述第一管理单元对应,所述输入网卡的一端与所述第一管理单元相连,所述输入网卡的另一端与所述中间网卡的一端相连,所述中间网卡的另一端与所述输出网卡相连,所述输出网卡与所述第二管理单元对应。
在一些实施例中,至少一个所述中间网卡包括所述网桥中的第一中间网卡和所述容器编排引擎中的第二中间网卡,所述第二中间网卡为物理网卡;所述第一确定模块,还用于:基于所述网桥的转发表项,确定所述第一中间网卡;利用所述网桥的过滤规则,将所述正向报文的源地址替换为所述第二中间网卡的网际协议地址,得到转换后的正向报文;基于所述直连路由表项,确定与所述转换后的正向报文匹配的所述第二中间网卡。
在一些实施例中,所述装置还包括:第二确定模块,用于基于所述正向报文所对应的转发路径,确定所述正向报文的连接跟踪规则;第二获取模块,用于从所述第二管理单元获取响应于所述正向报文的回应报文;第三确定模块,用于基于所述正向报文的连接跟踪规则,确定所述回应报文所对应的转发路径;第二转发模块,用于按照所述回应报文所对应的转发路径,将所述回应报文转发至所述第一管理单元。
在一些实施例中,所述装置还包括:替换模块,用于在将所述回应报文转发至所述回应报文所对应的中间网卡的情况下,利用所述网桥的过滤规则,将所述回应报文的目标地址替换为所述第一管理单元的网际协议地址,得到转换后的回应报文;所述第二转发模块,还用于:按照所述回应报文所对应的转发路径,将所述转换后的回应报文转发至所述第一管理单元。
在一些实施例中,所述装置还包括:第三获取模块,用于获取所述第一管理单元的网际协议地址、所述第一管理单元的局域网地址和所述正向报文的输入网卡的标识;生成模块,用于基于所述第一管理单元的网际协议地址、所述第一管理单元的局域网地址和所述正向报文的输入网卡的标识,生成静态地址解析协议表项;所述第一转发模块,还用于:基于所述静态地址解析协议表项,按照所述正向报文所对应的转发路径,将所述正向报文转发至所述容器编排引擎中的第二管理单元。
在一些实施例中,所述装置还包括:第一创建模块,用于响应于所述容器编排引擎中的第一容器网络接口插件的初始化,创建所述网桥;第二创建模块,用于基于所述第二中间网卡创建所述第一中间网卡,并将所述第一中间网卡添加至所述网桥;其中,所述第一中间网卡为虚拟网卡;第三创建模块,用于基于所述容器编排引擎中的通信组件,通过所述容器编排引擎中的第二容器网络接口插件,创建所述正向报文的输入网卡和所述第一管理单元。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述的报文传输方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ReadOnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
本公开实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(SoftwareDevelopmentKit,SDK)等等。
这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
需要说明的是,图9为本公开实施例中计算机设备的一种硬件实体示意图,如图9所示,该计算机设备900的硬件实体包括:处理器901、通信接口902和存储器903,其中:
处理器901通常控制计算机设备900的总体操作。
通信接口902可以使计算机设备通过网络与其他终端或服务器通信。
存储器903配置为存储由处理器901可执行的指令和应用,还可以缓存待处理器901以及计算机设备900中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(RandomAccessMemory,RAM)实现。处理器901、通信接口902和存储器903之间可以通过总线904进行数据传输。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本公开各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ReadOnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本公开所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
若本公开实施例涉及个人信息,应用本公开实施例的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本公开实施例涉及敏感个人信息,应用本公开实施例的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。
以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。

Claims (10)

1.一种报文传输方法,其特征在于,包括:
从容器编排引擎中的第一管理单元获取正向报文;
基于预设的直连路由表项和网桥,确定所述正向报文所对应的转发路径;其中,所述转发路径是由所述容器编排引擎中的网卡确定的;
按照所述正向报文所对应的转发路径,将所述正向报文转发至所述容器编排引擎中的第二管理单元;
其中,所述正向报文用于所述第一管理单元中的容器与所述第二管理单元中的容器进行交互。
2.根据权利要求1所述的方法,其特征在于,所述基于预设的直连路由表项和网桥,确定所述正向报文所对应的转发路径,包括:
确定与所述正向报文的源地址匹配的输入网卡;
基于所述网桥的转发规则,确定与所述正向报文的输出网卡;
基于所述网桥的转发表项和所述直连路由表项,确定与所述输入网卡和所述输出网卡相关联的至少一个中间网卡;
将所述输入网卡、至少一个所述中间网卡和所述输出网卡之间的关联顺序确定为所述正向报文所对应的转发路径;
其中,所述输入网卡与所述第一管理单元对应,所述输入网卡的一端与所述第一管理单元相连,所述输入网卡的另一端与所述中间网卡的一端相连,所述中间网卡的另一端与所述输出网卡相连,所述输出网卡与所述第二管理单元对应。
3.根据权利要求2所述的方法,其特征在于,至少一个所述中间网卡包括所述网桥中的第一中间网卡和所述容器编排引擎中的第二中间网卡,所述第二中间网卡为物理网卡;所述基于所述网桥的转发表项和所述直连路由表项,确定与所述输入网卡和所述输出网卡相关联的至少一个中间网卡,包括:
基于所述网桥的转发表项,确定所述第一中间网卡;
利用所述网桥的过滤规则,将所述正向报文的源地址替换为所述第二中间网卡的网际协议地址,得到转换后的正向报文;
基于所述直连路由表项,确定与所述转换后的正向报文匹配的所述第二中间网卡。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述正向报文所对应的转发路径,确定所述正向报文的连接跟踪规则;
从所述第二管理单元获取响应于所述正向报文的回应报文;
基于所述正向报文的连接跟踪规则,确定所述回应报文所对应的转发路径;
按照所述回应报文所对应的转发路径,将所述回应报文转发至所述第一管理单元。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在将所述回应报文转发至所述回应报文所对应的中间网卡的情况下,利用所述网桥的过滤规则,将所述回应报文的目标地址替换为所述第一管理单元的网际协议地址,得到转换后的回应报文;
所述按照所述回应报文所对应的转发路径,将所述回应报文转发至所述第一管理单元,包括:
按照所述回应报文所对应的转发路径,将所述转换后的回应报文转发至所述第一管理单元。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
获取所述第一管理单元的网际协议地址、所述第一管理单元的局域网地址和所述正向报文的输入网卡的标识;
基于所述第一管理单元的网际协议地址、所述第一管理单元的局域网地址和所述正向报文的输入网卡的标识,生成静态地址解析协议表项;
所述按照所述正向报文所对应的转发路径,将所述正向报文转发至所述容器编排引擎中的第二管理单元,包括:
基于所述静态地址解析协议表项,按照所述正向报文所对应的转发路径,将所述正向报文转发至所述容器编排引擎中的第二管理单元。
7.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
响应于所述容器编排引擎中的第一容器网络接口插件的初始化,创建所述网桥;
基于所述第二中间网卡创建所述第一中间网卡,并将所述第一中间网卡添加至所述网桥;其中,所述第一中间网卡为虚拟网卡;
基于所述容器编排引擎中的通信组件,通过所述容器编排引擎中的第二容器网络接口插件,创建所述正向报文的输入网卡和所述第一管理单元。
8.一种报文传输装置,其特征在于,包括:
第一获取模块,用于从容器编排引擎中的第一管理单元获取正向报文;
第一确定模块,用于基于预设的直连路由表项和网桥,确定所述正向报文所对应的转发路径;其中,所述转发路径是由所述容器编排引擎中的网卡确定的;
第一转发模块,用于按照所述正向报文所对应的转发路径,将所述正向报文转发至所述容器编排引擎中的第二管理单元;
其中,所述正向报文用于所述第一管理单元中的容器与所述第二管理单元中的容器进行交互。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述方法中的步骤。
CN202310143049.1A 2023-02-14 2023-02-14 报文传输方法、装置、设备及存储介质 Pending CN116112435A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310143049.1A CN116112435A (zh) 2023-02-14 2023-02-14 报文传输方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310143049.1A CN116112435A (zh) 2023-02-14 2023-02-14 报文传输方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116112435A true CN116112435A (zh) 2023-05-12

Family

ID=86254166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310143049.1A Pending CN116112435A (zh) 2023-02-14 2023-02-14 报文传输方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116112435A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117971497A (zh) * 2024-03-26 2024-05-03 苏州元脑智能科技有限公司 一种数据处理方法、系统、设备、服务器及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111262784A (zh) * 2020-01-13 2020-06-09 杭州朗和科技有限公司 报文转发方法、报文转发装置、存储介质及电子设备
WO2021139311A1 (zh) * 2020-08-07 2021-07-15 平安科技(深圳)有限公司 一种路由转发方法、装置、路由设备及可读存储介质
CN113760452A (zh) * 2021-08-02 2021-12-07 阿里巴巴新加坡控股有限公司 一种容器调度方法、系统、设备及存储介质
US11281492B1 (en) * 2019-05-31 2022-03-22 Juniper Networks, Inc. Moving application containers across compute nodes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11281492B1 (en) * 2019-05-31 2022-03-22 Juniper Networks, Inc. Moving application containers across compute nodes
CN111262784A (zh) * 2020-01-13 2020-06-09 杭州朗和科技有限公司 报文转发方法、报文转发装置、存储介质及电子设备
WO2021139311A1 (zh) * 2020-08-07 2021-07-15 平安科技(深圳)有限公司 一种路由转发方法、装置、路由设备及可读存储介质
CN113760452A (zh) * 2021-08-02 2021-12-07 阿里巴巴新加坡控股有限公司 一种容器调度方法、系统、设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
WANGFY_: "k8s pod内以及pod间通信机制", Retrieved from the Internet <URL:https://huaweicloud.csdn.net/638db247dacf622b8df8c939.html> *
崔广章: "《深入理解边缘计算:云、边、端工作原理与源码分析》", 30 June 2021, 机械工业出版社, pages: 82 - 87 *
老顾聊技术: "Kubernetes之POD、容器之间的网络通信", Retrieved from the Internet <URL:https://www.51cto.com/article/620287.html?u_atoken=c893f6d39ec5c37d52bcf1f0e4039625&u_asession=01amnPxpono7Syh9Wl34Konqn2vhmB26r86tdOWSoJcJzAEEXA_V7nuhGTLppJJxeRdlmHJsN3PcAI060GRB4YZGyPlBJUEqctiaTooWaXr7I&u_asig=05Koy5JRcDPnNLJ_NYV7GXV11MvV1rC-roxhMOrdiOiI9d1gS1-4yQIUYZz4qIHEa4VsBTjw5m3Ygk69FGWtjQolYNX-XZXMYZmJGhMhu9Ra769J8zQulzWumfp2EYKQmemv3wFPxSW4jxRGSiJaJCoFxBzA4tt24nL0hd0l8sI9tg2QMxYs6lyXb1lFWKql566-lJFKwFTyvimmLTfx8wd7Y5j1jonQ9iytVDv0L3gJvtEs_Cy-v8E1NCdGvc5FhmsppNPvj5BfnNCuFtz-7dfby8oIkxJrdzYAwFnNRoSQmsTpJ-4hEVCCqo-GZeD3WUZHi7af-9T9DT_5BT1SiXZw&u_aref=7%2FWgslQn5yW1Ltpc2Z9Doz9XWCo%3D> *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117971497A (zh) * 2024-03-26 2024-05-03 苏州元脑智能科技有限公司 一种数据处理方法、系统、设备、服务器及介质
CN117971497B (zh) * 2024-03-26 2024-06-21 苏州元脑智能科技有限公司 一种数据处理方法、系统、设备、服务器及介质

Similar Documents

Publication Publication Date Title
CN111885075B (zh) 容器通信方法、装置、网络设备及存储介质
CN108449282B (zh) 一种负载均衡方法及其装置
US10944691B1 (en) Container-based network policy configuration in software-defined networking (SDN) environments
EP3669532B1 (en) Managing network connectivity between cloud computing service endpoints and virtual machines
CN110012125B (zh) 集群网络通信方法、装置、存储介质和设备
US10749805B2 (en) Statistical collection in a network switch natively configured as a load balancer
CN109451084A (zh) 一种服务访问方法及装置
US7944923B2 (en) Method and system for classifying network traffic
US20190166196A1 (en) Data replication for a virtual networking system
CN113676564B (zh) 数据传输方法、装置及存储介质
CN114301868B (zh) 快速生成虚拟容器浮动ip的方法及网络直通的方法和装置
CN107809386B (zh) Ip地址转换方法、路由设备和通信系统
WO2023165137A1 (zh) 一种跨集群的网络通信系统和方法
US20220166715A1 (en) Communication system and communication method
CN116112435A (zh) 报文传输方法、装置、设备及存储介质
US11595304B2 (en) Communication device, communication control system, communication control method, and communication control program
US20210103457A1 (en) Control apparatus, control system, control method, and program
CN115150312B (zh) 一种路由方法及设备
US8943123B2 (en) Server apparatus, network access method, and computer program
CN114172753B (zh) 地址预留的方法、网络设备和系统
US9929951B1 (en) Techniques for using mappings to manage network traffic
CN116418724A (zh) 服务访问方法、装置及负载均衡系统
CN115842825A (zh) 云服务平台、云服务部署方法及装置
CN114826898A (zh) 跨主机通信方法、装置、设备、系统及可读存储介质
US11991142B1 (en) Providing cloud-aware security for an application level network device

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