CN114095430B - 一种访问报文的处理方法、***及工作节点 - Google Patents

一种访问报文的处理方法、***及工作节点 Download PDF

Info

Publication number
CN114095430B
CN114095430B CN202111198593.3A CN202111198593A CN114095430B CN 114095430 B CN114095430 B CN 114095430B CN 202111198593 A CN202111198593 A CN 202111198593A CN 114095430 B CN114095430 B CN 114095430B
Authority
CN
China
Prior art keywords
address
public network
message
pod
program
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
Application number
CN202111198593.3A
Other languages
English (en)
Other versions
CN114095430A (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.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and 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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN202111198593.3A priority Critical patent/CN114095430B/zh
Publication of CN114095430A publication Critical patent/CN114095430A/zh
Application granted granted Critical
Publication of CN114095430B publication Critical patent/CN114095430B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种访问报文的处理方法、***及工作节点,其中,所述方法包括:在所述工作节点的物理网卡接收到访问报文后,判断所述物理网卡上是否挂载了BPF程序;若挂载了BPF程序,通过所述BPF程序识别所述访问报文的目的地址;在所述目的地址为预设的弹性公网IP地址的情况下,若所述访问报文为IP报文,查询与所述弹性公网IP地址相映射的POD IP地址;将所述访问报文中的所述目的地址修改为所述POD IP地址,并将修改后的访问报文发送至所述POD中进行处理。本申请提供的技术方案,在实现为pod分配公网IP地址的前提下,还能提高报文处理的性能。

Description

一种访问报文的处理方法、***及工作节点
技术领域
本发明涉及互联网技术领域,特别涉及一种访问报文的处理方法、***及工作节点。
背景技术
在当前的容器管理平台中,对外暴露pod的方式往往包含ingress和service两种。现有的暴露pod的方式往往难以直接从外部访问到具体某个pod,无法满足部分业务的需求。即使采用1个service对应1个pod的方式,由于经过了service这一层的损耗,所以性能也会比较差。
目前的容器管理平台中,可以使用VPC(Virtual Private Cloud,私有云)网络来实现pod的公网IP地址配置方案,然而这种方案需要依赖云平台,无法适用于现有的kubernetes集群。另外由于云平台的计算虚拟化和网络虚拟化,也会导致性能较差。
发明内容
本申请的目的在于提供一种访问报文的处理方法、***及工作节点,在实现为pod分配公网IP地址的前提下,还能提高报文处理的性能。
为实现上述目的,本申请一方面提供一种访问报文的处理方法,所述方法应用于工作节点中,所述方法包括:在所述工作节点的物理网卡接收到访问报文后,判断所述物理网卡上是否挂载了BPF程序;若挂载了BPF程序,通过所述BPF程序识别所述访问报文的目的地址;在所述目的地址为预设的弹性公网IP地址的情况下,若所述访问报文为IP报文,查询与所述弹性公网IP地址相映射的POD IP地址;将所述访问报文中的所述目的地址修改为所述POD IP地址,并将修改后的访问报文发送至所述POD中进行处理。
在一个实施方式中,所述BPF程序中存储映射表,所述映射表用于表征相互映射的弹性公网IP地址和POD IP地址;在通过所述BPF程序识别所述访问报文的目的地址之后,所述方法还包括:判断所述目的地址是否存在于所述映射表内的各个弹性公网IP地址中,以确定所述目的地址是否为预设的弹性公网IP地址。
在一个实施方式中,所述方法还包括:若所述目的地址不是预设的弹性公网IP地址,将所述访问报文发送至协议栈,以通过所述协议栈对所述访问报文进行处理。
在一个实施方式中,所述方法还包括:若所述访问报文为ARP报文,构造所述ARP报文对应的响应报文,并通过所述物理网卡发出所述响应报文。
在一个实施方式中,在将所述访问报文中的所述目的地址修改为所述POD IP地址之后,所述方法还包括:重新计算所述访问报文的总和校验码,并将计算得到的所述总和校验码写入所述访问报文的对应字段中。
在一个实施方式中,所述方法还包括:在所述POD的虚拟网卡接收到从所述POD向外发出的数据报文时,判断所述虚拟网卡上是否挂载了BPF程序;若挂载了BPF程序,通过所述虚拟网卡上挂载的BPF程序识别所述数据报文的源地址;查询与所述源地址相映射的弹性公网IP地址,并将所述数据报文中的所述源地址修改为查询得到的所述弹性公网IP地址后,将修改后的数据报文发送至所述物理网卡处,以通过所述物理网卡向外发出所述修改后的数据报文。
在一个实施方式中,所述方法还包括:若所述POD被删除,在所述工作节点中删除所述POD对应的挂载程序。
在一个实施方式中,弹性公网IP地址与POD IP地址之间的映射关系由主节点中的控制器按照以下方式建立:创建弹性公网IP池,所述弹性公网IP池中包括多个可用的公网IP地址;为待创建的POD分配弹性公网IP资源,所述弹性公网IP资源用于限定所述弹性公网IP池中的公网IP地址或者公网IP地址集合;更新所述弹性公网IP资源的状态信息,并建立所述状态信息表征的弹性公网IP地址与所述待创建的POD的IP地址之间的映射关系。
在一个实施方式中,更新所述弹性公网IP资源的状态信息包括:从所述弹性公网IP资源中识别公网IP地址或者公网IP地址集合;其中,若识别出公网IP地址,将识别出的所述公网IP地址写入所述弹性公网IP资源的状态信息中;若识别出公网IP地址集合,从所述公网IP地址集合中选择未被占用的公网IP地址,并将所述未被占用的公网IP地址写入所述弹性公网IP资源的状态信息中。
为实现上述目的,本申请另一方面还提供一种访问报文的处理***,所述***包括:判断单元,用于在所述工作节点的物理网卡接收到访问报文后,判断所述物理网卡上是否挂载了BPF程序;若挂载了BPF程序,通过所述BPF程序识别所述访问报文的目的地址;查询单元,用于在所述目的地址为预设的弹性公网IP地址的情况下,若所述访问报文为IP报文,查询与所述弹性公网IP地址相映射的POD IP地址;发送单元,用于将所述访问报文中的所述目的地址修改为所述POD IP地址,并将修改后的访问报文发送至所述POD中进行处理。
为实现上述目的,本申请另一方面还提供一种工作节点,所述工作节点包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的访问报文的处理方法。
本申请提供的技术方案,可以为工作节点中的pod设置相匹配的弹性公网IP地址。当访问报文的目的地址是某个pod的弹性公网IP地址时,可以采用预先挂载的BPF程序对该访问报文进行处理。具体地,BPF程序可以将访问报文中的弹性公网IP地址修改为pod的IP地址,从而使得修改后的访问报文能够进入到pod中进行处理。这样的处理方式,一方面便捷地通过弹性公网IP地址向外暴露pod,另一方面可以绕过内核协议栈,由挂载的BPF程序对访问报文进行处理,从而提高了报文处理的性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施方式中主节点和工作节点的结构示意图;
图2是本发明实施方式中主节点和工作节点进行资源监控的示意图;
图3是本发明实施方式中访问报文的处理方法步骤图;
图4是本发明实施方式中访问报文的处理方法流程图;
图5是本发明实施方式中访问报文的处理***的功能模块图;
图6是本发明实施方式中工作节点的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
目前,基于iptables(包过滤)实现的暴露pod的方案中,pod是kubernetes平台管理的最小资源类型,一个pod下可以包含多个容器。这些容器共用同一个网络空间(networknamespace),即使用同一张虚拟网卡和同一个IP地址。如果是依赖iptables来实现公网IP地址和podIP地址转换的,用户流量是先访问公网IP地址,到达宿主机上后,进入内核协议栈,然后进入iptables模块,经DNAT(Destination Network Address Translation,目的地址转换)为podIP地址,然后经过路由和协议栈转发到pod内部,也就是转发到pod内部的虚拟网卡,pod内的容器就可以收到报文。从pod内部出来的报文同样要进入宿主机的内核协议栈中,做反向地址转换,然后从宿主机的物理网卡发出。可见,与pod相关的流量需要多次经过内核协议栈进行处理,并且在该方案中,流量需要经过内核协议栈处理,由于报文经过的路径较长,这种处理方式的性能就比较差。比如入向报文,要先进入内核协议栈之后,才能走到iptables中进行地址转换。此外,该方案还需要依赖内核的连接跟踪,即从pod返回的报文,要根据连接跟踪信息做反向地址变换。在业务流量多的情况下,连接跟踪表可能会爆满,进而导致性能急剧下降。
本申请提供的访问报文的处理方法,可以应用于如图1所示的***中。在实际应用中,该***可以是kubernetes集群。在该***中,可以包括主节点(master节点)和工作节点(worker节点),其中,主节点内可以安装资源控制器,工作节点中可以安装资源代理端(agent)。其中,资源控制器可以负责监控和管理弹性公网IP资源、弹性公网IP池资源以及pod资源,资源代理端可以对工作节点中的pod进行管理,并负责工作节点上与弹性公网IP地址相关的报文处理。
具体地,资源控制器可以通过kubernetes集群提供的api接口,在kubernetes集群中注册弹性公网IP地址池资源和/或弹性公网IP地址资源。这两种资源都可以是用户自定义资源(Custom Resource Definition,CRD)。在实际应用中,kubernetes集群中可以展示当前可用的公网IP地址,然后,主节点通过kubernetes集群提供的api接口,可以在可用的公网IP地址中选择一个或者多个IP地址,创建弹性公网IP地址池资源。在该弹性公网IP地址池资源中,可以包括多个可用的公网IP地址。此外,还可以包括资源类型、资源元数据、资源描述信息以及资源状态信息等。其中,对于弹性公网IP地址池而言,资源类型是弹性IP地址池,资源元数据里包含地址池名称,资源描述信息里包含预置的可用公网IP地址,资源状态信息里则是已分配的地址、未分配的地址等。对于弹性公网IP地址而言,资源类型是弹性IP地址,资源元数据里包含地址名称,资源描述信息里包含该资源是从哪个IP地址池分配,是否指定某个IP,资源状态信息则是IP是否分配成功,IP是否有绑定给pod,绑定给了哪个pod信息等。
在本实施方式中,资源控制器在创建了弹性公网IP地址池资源后,可以监控该资源,并获取到该资源对应的公网IP池信息。
在一个实施方式中,针对待创建的POD,资源控制器可以为该POD分配弹性公网IP资源,该弹性公网IP资源可以用于限定弹性公网IP池中的公网IP地址或者公网IP地址集合。举例来说,为POD分配的弹性公网IP资源中,可以限定该POD所使用的公网IP地址,也可以限定该POD所对应的公网IP地址集合。
在本实施方式中,资源控制器可以更新该弹性公网IP资源的状态信息。如上所述,状态信息内可以填入选定的IP地址,该选定的IP地址,可以按照以下方式来确定:资源控制器可以从弹性公网IP资源中识别公网IP地址或者公网IP地址集合。其中,若识别出公网IP地址,则可以将识别出的公网IP地址写入弹性公网IP资源的状态信息中。若识别出公网IP地址集合,则可以从公网IP地址集合中选择未被占用的公网IP地址,并将该未被占用的公网IP地址写入弹性公网IP资源的状态信息中。这样,便可以完成对状态信息的更新过程。
在本实施方式中,POD在工作节点中会具备自身的IP地址,在为POD分配了弹性公网IP资源,并对状态信息进行更新后,可以建立状态信息表征的弹性公网IP地址与该POD的IP地址之间的映射关系。这样,后续通过弹性公网IP地址,便可以在映射关系中查询到对应的POD的IP地址。同理,根据POD的IP地址,也可以查询到对应的弹性公网IP地址。通过将弹性公网IP地址与POD的IP地址相互映射,便可以通过弹性公网IP地址向外暴露工作节点中的POD。
请参阅图2,在一个具体应用示例中,管理员或者用户在主节点内通过kubernetes提供的api接口可以创建弹性IP资源,后续,主节点内的资源控制器便可以监控该弹性IP资源,并通过选定公网IP地址,从而更新该弹性IP资源的状态信息。在完成了弹性IP资源的配置后,各个工作节点中的资源代理端可以对弹性IP资源以及pod资源进行监控。
如图2所示,在本实施方式中,如果某个pod在工作节点中被创建,那么工作节点中的资源代理端便会根据监控的弹性IP资源和pod资源,确定出该pod的IP地址以及与该pod的IP地址相映射的弹性公网IP地址。针对该pod,资源代理端可以编译出BPF(BerkeleyPacket Filter,柏克莱封包过滤器)程序,并将该BPF程序分别挂载到工作节点的物理网卡和pod的虚拟网卡(veth)上。在该BPF程序中,可以存储映射表,该映射表可以表征弹性公网IP地址与pod的IP地址之间的映射关系。
需要说明的是,物理网卡上挂载的BPF程序是工作节点中各个pod共用的,而pod的虚拟网卡上挂载的BPF程序,是针对单个pod而言的。其中,物理网卡上的BPF程序,主要负责入向流量的处理,针对访问弹性公网IP地址的arp(Address Resolution Protocol,地址解析协议)报文,物理网卡上的BPF程序可以直接构造响应报文响应。而针对IP报文,BPF程序就需要将IP报文的目的IP地址修改为podIP地址,然后将修改后的IP报文转发给对应的pod。Pod虚拟网卡上挂载的BPF程序,主要是负责出向流量的处理。虚拟网卡上的BPF程序可以将出向报文的源ip地址转换为pod的弹性公网IP地址,然后转发到物理网卡,最后从物理网卡上发出。其中,对于物理网卡和虚拟网卡上挂载的BPF程序,都需要共享上述的映射表,以确定POD IP地址与弹性公网IP地址之间的映射关系。
本申请一个实施方式提供的访问报文的处理方法,可以应用于上述的工作节点中。请参阅图3和图4,该方法可以包括以下多个步骤。
S1:在所述工作节点的物理网卡接收到访问报文后,判断所述物理网卡上是否挂载了BPF程序;若挂载了BPF程序,通过所述BPF程序识别所述访问报文的目的地址。
在本实施方式中,工作节点所在的宿主机可以接收外部发来的访问报文。当该访问报文到达工作节点的物理网卡时,常规的报文处理方式都是由内核将该访问报文交由协议栈进行处理。但由于访问报文可能是针对弹性公网IP地址发起的,该访问报文实际是需要交由与弹性公网IP地址相映射的pod进行处理,因此,针对物理网卡接收到的访问报文,内核可以先判断该物理网卡上是否挂载了BPF程序,如果挂载了BPF程序,表明当前的工作节点内存在配置了弹性公网IP的pod,该访问报文可能需要经由pod处理。后续,当工作节点中的pod被删除时,可以在工作节点中删除该pod对应的挂载程序,从而避免访问报文的异常处理。
在本实施方式中,在确定物理网卡上挂载了BPF程序后,通过该BPF程序识别访问报文的目的地址。具体地,BPF程序通过判断该目的地址是否存在于映射表内的各个弹性公网IP地址中,以确定该目的地址是否为预设的弹性公网IP地址。如果该目的地址不是预设的弹性公网IP地址,则表明该访问报文所需资源并非是访问pod内的资源,此时,BPF程序可以直接将该访问报文发送至协议栈,从而通过协议栈处理该访问报文。
S3:在所述目的地址为预设的弹性公网IP地址的情况下,若所述访问报文为IP报文,查询与所述弹性公网IP地址相映射的POD IP地址。
S5:将所述访问报文中的所述目的地址修改为所述POD IP地址,并将修改后的访问报文发送至所述POD中进行处理。
在本实施方式中,根据在kubernetes集群中注册的弹性公网IP地址池资源和/或弹性公网IP地址资源,工作节点可以判断访问报文中的目的地址是否为已经注册的预设的弹性公网IP地址。如果访问报文中的目的地址是预设的弹性公网IP地址,那么表明该访问报文是针对pod发起的。此时,可以进一步地判断该访问报文的类型。通常而言,如果访问报文是ARP报文,那么物理网卡就可以直接针对该ARP报文反馈响应报文,而无需经过pod的处理。因此,如果访问报文是ARP报文,那么BPF程序可以构造该ARP报文对应的响应报文,并通过物理网卡发出该响应报文。
如果该访问报文是IP报文,那么表明该访问报文需要pod进行处理。此时,为了正确地将该访问报文转发至pod,需要对其中的目的地址进行修改。具体地,BPF程序可以从存储的映射表中查询访问报文中的弹性公网IP地址相映射的pod的IP地址,然后将访问报文中的目的地址修改为查询得到的pod的IP地址。在对目的地址进行修改后,物理网卡上的BPF程序可以将修改后的访问报文发送至pod的虚拟网卡处,从而通过pod对访问报文进行处理。
在一个实施方式中,在对访问报文的目的地址进行修改后,由于需要将访问报文进行转发,需要对访问报文中的总和校验码(checksum)进行重新计算。在完成重新计算后,可以将计算得到的总和校验码写入访问报文的对应字段中,从而完成对访问报文的处理。
可见,通过将pod的IP地址与弹性公网IP地址相互映射,外部的用户可以通过对弹性公网IP地址发起访问,从而访问到pod内部的资源。这样就等效于将pod向外暴露,同时,通过在物理网卡和pod的虚拟网卡上挂载BPF程序,可以绕过协议栈对访问报文进行处理,从而提高了报文的处理效率。
在一个实施方式中,请参阅图4,当工作节点中的pod需要向外发送数据报文时,该数据报文可以到达pod的虚拟网卡上。当虚拟网卡接收到pod向外发出的数据报文时,内核可以判断该虚拟网卡上是否挂载了BPF程序。如果没有挂载BPF程序,可以由协议栈处理该数据报文。而如果挂载了BPF程序,内核就可以将该数据报文交由BPF程序进行处理。BPF程序可以识别该数据报文的源地址。由于数据报文是从pod发出的,因此该源地址是pod的IP地址。BPF程序可以从映射表中查询该pod的IP地址相映射的弹性公网IP地址,并将源地址修改为该弹性公网IP地址,表明该数据报文是从工作节点向外暴露的公网IP地址发出的。
在本实施方式中,在完成了源地址的修改后,同样可以重新计算数据报文的总和校验码,并将重新计算得到的总和校验码写入数据报文的对应字段中。在完成了对数据报文的修改后,BPF程序可以将修改后的数据报文发送至工作节点的物理网卡处,从而通过物理网卡向外发出修改后的数据报文。
可见,本申请提供的技术方案,可以为工作节点中的pod设置相匹配的弹性公网IP地址。当访问报文的目的地址是某个pod的弹性公网IP地址时,可以采用预先挂载的BPF程序对该访问报文进行处理。具体地,BPF程序可以将访问报文中的弹性公网IP地址修改为pod的IP地址,从而使得修改后的访问报文能够进入到pod中进行处理。后续,当pod需要向外发送数据报文时,BPF程序可以将其中的源地址修改为弹性公网IP地址,并通过工作节点的物理网卡向外发出修改后的数据报文。这样的处理方式,一方面便捷地通过弹性公网IP地址向外暴露pod,另一方面可以绕过内核协议栈,由挂载的BPF程序对访问报文和数据报文进行处理,从而提高了报文处理的性能。
请参阅图5,本申请还提供一种访问报文的处理***,所述***包括:
判断单元,用于在所述工作节点的物理网卡接收到访问报文后,判断所述物理网卡上是否挂载了BPF程序;若挂载了BPF程序,通过所述BPF程序识别所述访问报文的目的地址;
查询单元,用于在所述目的地址为预设的弹性公网IP地址的情况下,若所述访问报文为IP报文,查询与所述弹性公网IP地址相映射的POD IP地址;
发送单元,用于将所述访问报文中的所述目的地址修改为所述POD IP地址,并将修改后的访问报文发送至所述POD中进行处理。
请参阅图6,本申请还提供一种工作节点,所述工作节点包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的访问报文的处理方法。
其中,处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本领域技术人员可以理解,实现上述实施方式方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施方式的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对***和工作节点的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种报文处理方法,其特征在于,所述方法应用于工作节点中,所述方法包括:
在所述工作节点的物理网卡接收到访问报文后,判断所述物理网卡上是否挂载了BPF程序;若挂载了BPF程序,通过所述BPF程序识别所述访问报文的目的地址,BPF程序中存储映射表,所述映射表用于表征相互映射的弹性公网IP地址和PODIP地址;
在所述目的地址为预设的弹性公网IP地址的情况下,若所述访问报文为IP报文,查询与所述弹性公网IP地址相映射的PODIP地址;
将所述访问报文中的所述目的地址修改为所述PODIP地址,以绕过内核协议栈,并将修改后的访问报文发送至所述POD中进行处理;
所述方法还包括:
在所述POD的虚拟网卡接收到从所述POD向外发出的数据报文时,判断所述虚拟网卡上是否挂载了BPF程序;若挂载了BPF程序,通过所述虚拟网卡上挂载的BPF程序识别所述数据报文的源地址;对所述数据报文进行修改后,将修改后的数据报文发送至所述物理网卡处,以通过所述物理网卡向外发出所述修改后的数据报文。
2.根据权利要求1所述的方法,其特征在于,所述;在通过所述BPF程序识别所述访问报文的目的地址之后,所述方法还包括:
判断所述目的地址是否存在于所述映射表内的各个弹性公网IP地址中,以确定所述目的地址是否为预设的弹性公网IP地址。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目的地址不是预设的弹性公网IP地址,将所述访问报文发送至协议栈,以通过所述协议栈对所述访问报文进行处理。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述访问报文为ARP报文,构造所述ARP报文对应的响应报文,并通过所述物理网卡发出所述响应报文。
5.根据权利要求1所述的方法,其特征在于,在将所述访问报文中的所述目的地址修改为所述PODIP地址之后,所述方法还包括:
重新计算所述访问报文的总和校验码,并将计算得到的所述总和校验码写入所述访问报文的对应字段中。
6.根据权利要求1所述的方法,其特征在于,所述对所述数据报文进行修改,包括:
查询与所述源地址相映射的弹性公网IP地址,并将所述数据报文中的所述源地址修改为查询得到的所述弹性公网IP地址。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述POD被删除,在所述工作节点中删除所述POD对应的BPF程序。
8.根据权利要求1所述的方法,其特征在于,弹性公网IP地址与PODIP地址之间的映射关系由主节点中的控制器按照以下方式建立:
创建弹性公网IP池资源,所述弹性公网IP池资源中包括多个可用的公网IP地址;
为待创建的POD分配弹性公网IP资源,所述弹性公网IP资源用于限定所述弹性公网IP池中的公网IP地址或者公网IP地址集合;
更新所述弹性公网IP资源的状态信息,并建立所述状态信息表征的弹性公网IP地址与所述待创建的POD的IP地址之间的映射关系。
9.根据权利要求8所述的方法,其特征在于,更新所述弹性公网IP资源的状态信息包括:
从所述弹性公网IP资源中识别公网IP地址或者公网IP地址集合;其中,若识别出公网IP地址,将识别出的所述公网IP地址写入所述弹性公网IP资源的状态信息中;若识别出公网IP地址集合,从所述公网IP地址集合中选择未被占用的公网IP地址,并将所述未被占用的公网IP地址写入所述弹性公网IP资源的状态信息中。
10.一种报文处理***,其特征在于,所述***包括:
判断单元,用于在工作节点的物理网卡接收到访问报文后,判断所述物理网卡上是否挂载了BPF程序;若挂载了BPF程序,通过所述BPF程序识别所述访问报文的目的地址;
查询单元,用于在所述目的地址为预设的弹性公网IP地址的情况下,若所述访问报文为IP报文,查询与所述弹性公网IP地址相映射的PODIP地址;
发送单元,用于将所述访问报文中的所述目的地址修改为所述PODIP地址,以绕过内核协议栈,并将修改后的访问报文发送至所述POD中进行处理;
在所述POD的虚拟网卡接收到从所述POD向外发出的数据报文时,判断所述虚拟网卡上是否挂载了BPF程序;若挂载了BPF程序,通过所述虚拟网卡上挂载的BPF程序识别所述数据报文的源地址;对所述数据报文进行修改后,将修改后的数据报文发送至所述物理网卡处,以通过所述物理网卡向外发出所述修改后的数据报文。
11.一种工作节点,其特征在于,所述工作节点包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现权利要求1至9中任一所述的方法。
CN202111198593.3A 2021-10-14 2021-10-14 一种访问报文的处理方法、***及工作节点 Active CN114095430B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111198593.3A CN114095430B (zh) 2021-10-14 2021-10-14 一种访问报文的处理方法、***及工作节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111198593.3A CN114095430B (zh) 2021-10-14 2021-10-14 一种访问报文的处理方法、***及工作节点

Publications (2)

Publication Number Publication Date
CN114095430A CN114095430A (zh) 2022-02-25
CN114095430B true CN114095430B (zh) 2023-10-24

Family

ID=80296914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111198593.3A Active CN114095430B (zh) 2021-10-14 2021-10-14 一种访问报文的处理方法、***及工作节点

Country Status (1)

Country Link
CN (1) CN114095430B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338594B (zh) * 2022-03-14 2022-05-17 江苏博云科技股份有限公司 在Kubernetes环境下的ARP代答方法、装置、设备及存储介质
CN116996435A (zh) * 2022-04-25 2023-11-03 华为技术有限公司 一种报文处理方法及装置
CN115277586A (zh) * 2022-07-29 2022-11-01 中国电信股份有限公司 Pod流量处理方法、***、设备及存储介质
CN115514692A (zh) * 2022-09-20 2022-12-23 深信服科技股份有限公司 一种资源池内网络交互方法、***、存储介质和终端
CN116545978B (zh) * 2023-05-16 2024-05-17 深圳市石犀科技有限公司 数据处理方法、装置、***、可读存储介质及进口网卡

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9426071B1 (en) * 2013-08-22 2016-08-23 Fireeye, Inc. Storing network bidirectional flow data and metadata with efficient processing technique
WO2018121625A1 (zh) * 2016-12-28 2018-07-05 华为技术有限公司 业务访问请求的处理方法和相关设备
CN110753072A (zh) * 2018-07-24 2020-02-04 阿里巴巴集团控股有限公司 负载均衡***、方法、装置及设备
CN111193773A (zh) * 2019-12-06 2020-05-22 腾讯云计算(北京)有限责任公司 负载均衡方法、装置、设备及存储介质
CN111212134A (zh) * 2019-12-31 2020-05-29 北京金山云网络技术有限公司 一种请求报文处理方法、装置、边缘计算***和电子设备
CN112243045A (zh) * 2019-07-16 2021-01-19 北京东土科技股份有限公司 服务数据处理方法、装置、节点结构及电子设备
CN112887444A (zh) * 2021-01-19 2021-06-01 网宿科技股份有限公司 一种vpn网络的请求处理方法、客户端设备及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10742446B2 (en) * 2018-09-19 2020-08-11 Amazon Technologies, Inc. Interconnecting isolated networks with overlapping address ranges via scalable virtual traffic hubs

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9426071B1 (en) * 2013-08-22 2016-08-23 Fireeye, Inc. Storing network bidirectional flow data and metadata with efficient processing technique
WO2018121625A1 (zh) * 2016-12-28 2018-07-05 华为技术有限公司 业务访问请求的处理方法和相关设备
CN110753072A (zh) * 2018-07-24 2020-02-04 阿里巴巴集团控股有限公司 负载均衡***、方法、装置及设备
CN112243045A (zh) * 2019-07-16 2021-01-19 北京东土科技股份有限公司 服务数据处理方法、装置、节点结构及电子设备
CN111193773A (zh) * 2019-12-06 2020-05-22 腾讯云计算(北京)有限责任公司 负载均衡方法、装置、设备及存储介质
CN111212134A (zh) * 2019-12-31 2020-05-29 北京金山云网络技术有限公司 一种请求报文处理方法、装置、边缘计算***和电子设备
CN112887444A (zh) * 2021-01-19 2021-06-01 网宿科技股份有限公司 一种vpn网络的请求处理方法、客户端设备及***

Also Published As

Publication number Publication date
CN114095430A (zh) 2022-02-25

Similar Documents

Publication Publication Date Title
CN114095430B (zh) 一种访问报文的处理方法、***及工作节点
CN108449282B (zh) 一种负载均衡方法及其装置
CN113596184B (zh) 混合云***、网闸、网络访问方法及存储介质
US8458298B2 (en) Failover in an internet location coordinate enhanced domain name system
US9319378B2 (en) Methods, systems, and computer readable media for using a diameter routing agent (DRA) to obtain mappings between mobile subscriber identification information and dynamically assigned internet protocol (IP) addresses and for making the mappings accessible to applications
WO2019042186A1 (zh) 一种网络管理方法及相关设备
US9071512B2 (en) Methods, systems, and computer readable media for distributing diameter network management information
US20180069787A1 (en) Exposing a subset of hosts on an overlay network to components external to the overlay network without exposing another subset of hosts on the overlay network
CN111212134A (zh) 一种请求报文处理方法、装置、边缘计算***和电子设备
CN111885216B (zh) Dns查询方法、装置、设备和存储介质
US9354940B2 (en) Provisioning tenants to multi-tenant capable services
CN110012118B (zh) 一种提供网络地址转换nat服务的方法及控制器
US11316916B2 (en) Packet processing method, related device, and computer storage medium
CN109413224B (zh) 报文转发方法和装置
WO2020253626A1 (zh) 确定边缘应用的方法、装置、设备及存储介质
US10135916B1 (en) Integration of service scaling and external health checking systems
US8972604B1 (en) Network address retention and assignment
KR20210016802A (ko) 소프트웨어 정의 네트워킹 환경에서 서버-클라이언트 기반의 네트워크 서비스를 위한 플로우 테이블을 최적화하는 방법 및 이를 위한 sdn 스위치
CN112511440B (zh) 报文转发方法、***、存储介质和电子设备
CN107666444B (zh) 一种数据流量路由的方法和***
CN116016448A (zh) 一种服务网络访问方法、装置、设备及存储介质
CN114048028A (zh) 服务调用方法、装置、存储介质和电子设备
KR102526770B1 (ko) 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치
US11416299B2 (en) Method and resource scheduler for enabling a computing unit to map remote memory resources based on optical wavelength
CN111935336A (zh) 基于IPv6的网络治理方法及***

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