CN112437127A - 报文处理方法、装置以及负载均衡器和服务器 - Google Patents
报文处理方法、装置以及负载均衡器和服务器 Download PDFInfo
- Publication number
- CN112437127A CN112437127A CN202011248214.2A CN202011248214A CN112437127A CN 112437127 A CN112437127 A CN 112437127A CN 202011248214 A CN202011248214 A CN 202011248214A CN 112437127 A CN112437127 A CN 112437127A
- Authority
- CN
- China
- Prior art keywords
- address
- client
- service message
- field
- load balancer
- 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.)
- Withdrawn
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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供了一种报文处理方法、装置以及负载均衡器和服务器,应用于通信技术领域,其中,负载均衡器接收客户端发送的第一业务报文;在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址,得到第二业务报文,其中,预设标识信息用于标识预设字段中携带的IP地址为客户端的IP地址;修改后的业务报文是负载均衡器对第一业务报文进行SNAT后得到的业务报文;将第二业务报文发送至服务端,以使服务端从第二业务报文中获得客户端的IP地址,并基于客户端的IP地址进行访问控制。如此,服务端获得客户端的IP地址,并基于客户端的IP地址进行访问控制。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种报文处理方法、装置以及负载均衡器和服务器。
背景技术
在目前的软件服务模型中,为了提供大规模访问的能力,通常都会部署多个服务端对外提供业务服务。现有的业务服务系统,如图1所示,客户端100向负载均衡器110发送业务报文,业务报文中源互联网协议(Internet Protocol,IP)地址是客户端的IP地址,目标IP地址是负载均衡器110的VIP(Virtual IP,虚拟IP)地址。负载均衡器110根据自身配置的用于保证负载均衡的策略,从多个服务端120中选择一个作为目标服务端,并通过源网络地址转换(Source Network Address Translation,SNAT)技术对业务报文进行转换,具体地,负载均衡器110将接收到的客户端100发送的业务报文中的源IP地址,从客户端100的IP地址修改为负载均衡器110的IP地址,并将修改后的业务报文发送至目标服务端。目标服务端访问共享数据库130后,生成针对该修改后的业务报文的响应报文,并基于负载均衡器110的IP地址将该响应报文发送给负载均衡器110;负载均衡器110再将响应报文的目的IP地址转换为客户端100的IP地址,转发给对应的客户端100。
可以看出,负载均衡器110进行SNAT后,和服务端120建立通信链接都是负载均衡器110的自身地址而非实际客户端100的IP地址,如此会存在如下问题:在负载均衡器110进行SNAT后,服务端120无法感知客户端的IP地址,导致服务端120不能根据实际客户端100的IP地址进行安全访问控制,如丢弃特定客户端100发送的数据包等等。
发明内容
本发明实施例的目的在于提供一种报文处理方法、装置以及负载均衡器和服务器,以实现服务端获得客户端的IP地址,并基于客户端的IP地址进行访问控制。具体技术方案如下:
第一方面,本发明实施例提供了一种报文处理方法,应用于负载均衡器,包括:
接收客户端发送的第一业务报文;
在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和所述客户端的IP地址,得到第二业务报文,其中,所述预设标识信息用于标识所述预设字段中携带的IP地址为所述客户端的IP地址;所述修改后的业务报文是所述负载均衡器对所述第一业务报文进行SNAT后得到的业务报文;
将所述第二业务报文发送至所述服务端,以使所述服务端从所述第二业务报文中获得所述客户端的IP地址,并基于所述客户端的IP地址进行访问控制。
可选的,所述预设字段为所述IP报文头中的选项Option字段;
所述在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和所述客户端的IP地址,包括:
在所述Option字段中占用一个字节的第一字段添加所述预设标识信息,并在所述Option字段中占用四个字节的第二字段中添加所述客户端的IP地址。
第二方面,本发明实施例提供了一种报文处理方法,应用于服务端,包括:
接收负载均衡器发送的第一业务报文;其中,所述第一业务报文是所述负载均衡器在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址得到的业务报文,所述预设标识信息用于标识所述预设字段中携带的IP地址为所述客户端的IP地址;所述修改后的业务报文是所述负载均衡器对接收到的客户端发送的第二业务报文进行SNAT后得到的业务报文;
解析所述第一业务报文,得到所述第一业务报文中携带的所述预设标识信息;
根据所述预设标识信息,获得所述客户端的地址;
基于所述客户端的IP地址进行访问控制。
可选的,所述预设字段为所述IP报文头中的选项Option字段;
所述解析所述第一业务报文,得到所述第一业务报文中携带的所述预设标识信息,包括:
从所述Option字段中占用一个字节的第一字段,读取所述预设标识信息;
所述根据所述预设标识信息,获得所述客户端的地址,包括:
从所述Option字段中占用四个字节的第二字段中,读取所述客户端的IP地址。
第三方面,本发明实施例提供了一种报文处理装置,应用于负载均衡器,包括:
接收模块,用于接收客户端发送的第一业务报文;
添加模块,用于在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和所述客户端的IP地址,得到第二业务报文,其中,所述预设标识信息用于标识所述预设字段中携带的IP地址为所述客户端的IP地址;所述修改后的业务报文是所述负载均衡器对所述第一业务报文进行SNAT后得到的业务报文;
发送模块,用于将所述第二业务报文发送至所述服务端,以使所述服务端从所述第二业务报文中获得所述客户端的IP地址,并基于所述客户端的IP地址进行访问控制。
可选的,所述预设字段为所述IP报文头中的选项Option字段;
所述添加模块,具体用于在所述Option字段中占用一个字节的第一字段添加所述预设标识信息,并在所述Option字段中占用四个字节的第二字段中添加所述客户端的IP地址。
第四方面,本发明实施例提供了一种报文处理装置,应用于服务端,包括:
接收模块,用于接收负载均衡器发送的第一业务报文;其中,所述第一业务报文是所述负载均衡器在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址得到的业务报文,所述预设标识信息用于标识所述预设字段中携带的IP地址为所述客户端的IP地址;所述修改后的业务报文是所述负载均衡器对接收到的客户端发送的第二业务报文进行源网络地址转换SNAT后得到的业务报文;
解析模块,用于解析所述第一业务报文,得到所述第一业务报文中携带的所述预设标识信息;
获得模块,用于根据所述预设标识信息,获得所述客户端的地址;
访问控制模块,用于基于所述客户端的IP地址进行访问控制。
可选的,所述预设字段为所述IP报文头中的选项Option字段;
所述解析模块,具体用于从所述Option字段中占用一个字节的第一字段,读取所述预设标识信息;
所述获得模块,具体用于从所述Option字段中占用四个字节的第二字段中,读取所述客户端的IP地址。
在本发明实施例又一方面,提供了一种负载均衡器,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面所述的方法步骤。
在本发明实施例又一方面,提供了一种服务器,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第二方面所述的方法步骤。
本发明实施例有益效果:
本发明实施例提供的报文处理方法、装置以及负载均衡器和服务器中,负载均衡器接收客户端发送的第一业务报文;在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址,得到第二业务报文,其中,预设标识信息用于标识预设字段中携带的IP地址为客户端的IP地址;修改后的业务报文是负载均衡器对第一业务报文进行SNAT后得到的业务报文;将第二业务报文发送至服务端,服务端可以从第二业务报文中获得客户端的IP地址,并基于客户端的IP地址进行访问控制。如此,能够实现服务端获得客户端的IP地址,进而服务端能够基于客户端的IP地址进行访问控制。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为已有技术中业务服务系统的结构示意图;
图2为本发明实施例中应用于负载均衡器的报文处理方法的流程示意图;
图3为本发明实施例中IP报文头的结构示意图;
图4为本发明实施例中IP报文头的Option字段的结构示意图;
图5为本发明实施例中预设标识信息的示意图;
图6为本发明实施例中应用于服务端的报文处理方法的流程示意图;
图7为应用本发明实施例的报文处理方法的示例图;
图8为本发明实施例中应用于负载均衡器的报文处理装置的结构示意图;
图9为本发明实施例中应用于服务端的报文处理装置的结构示意图;
图10本发明实施例中提供的负载均衡器的结构示意图;
图11本发明实施例中提供的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种报文处理方法,应用于负载均衡器,可以包括:
接收客户端发送的第一业务报文;
在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址,得到第二业务报文,其中,预设标识信息用于标识预设字段中携带的IP地址为客户端的IP地址;修改后的业务报文是负载均衡器对第一业务报文进行SNAT后得到的业务报文;
将第二业务报文发送至服务端,以使服务端从第二业务报文中获得客户端的IP地址,并基于客户端的IP地址进行访问控制。
本发明实施例中,负载均衡器接收客户端发送的第一业务报文;在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址,得到第二业务报文;将第二业务报文发送至服务端,服务端可以从第二业务报文中获得客户端的IP地址,并基于客户端的IP地址进行访问控制。如此,能够实现服务端获得客户端的IP地址,进而服务端能够基于客户端的IP地址进行访问控制。
图2为本发明实施例中应用于负载均衡器的报文处理方法的流程示意图。参见图2,本发明实施例中的报文处理方法可以包括:
S201,接收客户端发送的第一业务报文。
第一业务报文的源IP地址可以为客户端的IP地址,目的IP地址为负载均衡器的IP地址。
S202,在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址,得到第二业务报文。
其中,预设标识信息用于标识预设字段中携带的IP地址为客户端的IP地址。
修改后的业务报文是负载均衡器对第一业务报文进行SNAT后得到的业务报文。
负载均衡器对接收到的第一业务报文进行SNAT,具体地,可以是将第一业务报文中的源IP地址修改为负载均衡器的IP地址,目的IP地址修改为服务端的IP地址,如此可以得到修改后的业务报文。同时,也可以将第一业务报文中的源端口转换为负载均衡器对应的端口地址。
一种可实现方式中,负载均衡器接收到客户端发送的第一业务报文后,可以生成SNAT映射信息,SNAT映射信息可以包括:客户端的IP地址与负载均衡器的IP地址之间的对应关系;客户端的端口与负载均衡器的端口之间的对应关系;负载均衡器的IP地址与服务端的IP地址之间的对应关系;以及负载均衡器的端口与服务端的端口之间的对应关系。
负载均衡器可以根据该SNAT映射信息对接收到的第一业务报文进行映射,也即将第一业务报文中的源IP地址修改为负载均衡器的IP地址,目的IP地址修改为服务端的IP地址。
一种可实现方式中,负载均衡器可以基于预设负载均衡策略,从多个服务端中确定目标服务端,将第一业务报文中的源IP地址修改为负载均衡器的IP地址,目的IP地址修改为该目标服务端的IP地址,如此可以得到修改后的业务报文。其中,预设负载均衡策略用于使得客户端的访问被均衡地分发至多个服务端,以保证各服务端工作负荷平均分摊。如可以从多个服务端中确定一个或几个服务端为目标服务端。预设负载均衡策略可以是负载均衡器根据实际需求预先确定的。
一种可选的实施例中,预设字段为IP报文头中的选项Option字段。
S202可以包括:
在Option字段中占用一个字节的第一字段添加预设标识信息,并在Option字段中占用四个字节的第二字段中添加客户端的IP地址。
如图3所示,IP报文由头部和数据两部分组成。头部(也即图3中IP报头),也可以理解为IP报文头,一般为20字节长度,用于实现在计算机网络中标识L3(网络层)的路由信息,最大60字节。头部中固定包括4位的版本信息,4位的首部长度,8位的服务类型(TOS),16位的总长度(字节数),16位的标识,3位的标志,13位的片偏移,8位的生存时间(Time ToLive,TTL),8位的协议,16位的首部校验和,32位的源IP地址,32位的目的IP地址,总共20字节。本发明实施例中可以通过Option字段对IP报文头进行扩展,具体地,在Option字段中占用一个字节的第一字段添加预设标识信息,并在Option字段中占用四个字节的第二字段中添加客户端的IP地址。
具体地,Option字段的格式如图4所示,Type字段用于标识Option字段的类型,根据远程过程调用协议(Remote Procedure Call protocol,RFC)定义,Type字段占用1个字节长度;Source IP data用于标识Option字段中携带信息。根据RFC定义,IP地址在IPv4版本占用4个字节长度。本发明实施例中,可以在Type字段中添加用于标识IP报文头中携带客户端的IP地址的该预设标识信息,在Source IP data中添加该客户端的IP地址。
其中,根据RFC定义,Type字段中的一个字节中需要包含3端信息:1bit(位)复制标识、选项分类和选项标识,其中,复制标识用于表示当IP报文包切片时是否复制Option字段。复制标识对应位的值为0表示不复制,复制标识的值为1表示复制。选项分类,00表示控制类型,01预留,10表示排障和度量,11预留,实际应用过程中,复制标识对应位的值可以为01或11,用于表示该Type字段属于预留扩展功能。选项标识。选项标识对应位的值可以根据实际需求确定。一个具体的例子中,可以在Type字段中添加标识信息0xE1,对应二进制为11100001,如图5所示,不同位表示不同含义,十进制为225。
负载均衡器接收到的客户端发送的第一业务报文的源端口为客户端对应的端口地址,第一业务报文的目的端口为服务端对应的端口地址。
负载均衡器在将第二业务报文发送至服务端之前,还可以包括:将第一业务报文中的源端口转换为负载均衡器对应的端口地址。如此,可以基于负载均衡器对应的端口地址以及服务端对应的端口地址,将第二业务报文发送至服务端。
S203,将第二业务报文发送至服务端,以使服务端从第二业务报文中获得客户端的IP地址,并基于客户端的IP地址进行访问控制。
本发明实施例中,负载均衡器接收客户端发送的第一业务报文;在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址,得到第二业务报文;将第二业务报文发送至服务端,服务端可以从第二业务报文中获得客户端的IP地址,并基于客户端的IP地址进行访问控制。如此,能够实现服务端获得客户端的IP地址,进而服务端能够基于客户端的IP地址进行访问控制。
且因为本发明实施例中客户端的IP地址是添加在IP报文头中的,即只需要解析至网络层(也即L3),不需要再向上解析至传输层甚至应用层,能够提高获得客户端的IP地址的效率。以及IP协议是网络层通用的协议,能够避免因协议类型的不支持而造成的应用范围受限,具体地,不论是何种类型的报文,在网络层均使用IP协议,如此,针对不同类型的报文,负载均衡器在将该报文转发至服务端前,均可以在IP报文头的预设字段中添加客户端的IP地址,使得发送至服务端的报文携带客户端的IP地址,即本发明实施例提供的报文处理方法能够适用于不同类型的报文,能够扩展应用范围。
另外,在网络层就能够获得客户端的IP地址,能够扩展服务端基于客户端的IP地址进行访问控制的类型,如不仅可以丢弃客户端发送的报文,还可以针对客户端发送的报文进行重定向等。
本发明实施例提供了一种报文处理方法,应用于服务端,可以包括:
接收负载均衡器发送的第一业务报文;其中,第一业务报文是负载均衡器在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址得到的业务报文,预设标识信息用于标识预设字段中携带的IP地址为客户端的IP地址;修改后的业务报文是负载均衡器对接收到的客户端发送的第二业务报文进行SNAT后得到的业务报文;
解析第一业务报文,得到第一业务报文中携带的预设标识信息;
根据预设标识信息,获得客户端的地址;
基于客户端的IP地址进行访问控制。
本发明实施例中,负载均衡器接收客户端发送的第一业务报文;在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址,得到第二业务报文;将第二业务报文发送至服务端,服务端可以从第二业务报文中获得客户端的IP地址,并基于客户端的IP地址进行访问控制。如此,能够实现服务端获得客户端的IP地址,进而服务端能够基于客户端的IP地址进行访问控制。
图6为本发明实施例中应用于服务端的报文处理方法的一种流程示意图。参见图6,本发明实施例中的报文处理方法可以包括:
S601,接收负载均衡器发送的第一业务报文。
其中,第一业务报文是负载均衡器在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址得到的业务报文,预设标识信息用于标识预设字段中携带的IP地址为客户端的IP地址;修改后的业务报文是负载均衡器对接收到的客户端发送的第二业务报文进行SNAT后得到的业务报文。
该实施例中服务端接收到的第一业务报文也即上述图2所示实施例中负载均衡器发送的第二业务报文,该实施例中所提到的第二业务报文也即上述图2所示实施例中的第一业务报文。
S602,解析第一业务报文,得到第一业务报文中携带的预设标识信息。
S603,根据预设标识信息,获得客户端的地址。
一种可实现方式中,预设字段为IP报文头中的选项Option字段。
S602可以包括:从Option字段中占用一个字节的第一字段,读取预设标识信息。
S603可以包括:从Option字段中占用四个字节的第二字段中,读取客户端的IP地址。
第一字段可以如图4中的Type字段,当Type字段中的内容与预先设置的标识信息一致时,则可以从Source IP data字段中读取客户端的IP地址。
因为一般IP报文“首部长度”为20字节,当Option字段携带内容时,首部长度即会大于20个字节,本发明实施例一种可实现方式中,服务端接收到第一业务报文后,可以先判断第一业务报文中IP报文头是否大于20字节,若大于20字节,则表示Option字段中携带内容,即可以从Option字段中读取携带的客户端的IP地址。可以先读取Option字段中Type字段的一个字节,判断该一个字节的内容是否是0xE1,如果是,则表示IP报文头中,也即Option字段中携带客户端的IP地址,则可以继续从Option字段中Source IP data字段中读取客户端的IP地址。
实际应用过程中,可以根据实际使用的IP地址的版本确定IP地址所占的字节,进而根据所占字节数,读取Option字段中携带的客户端的IP地址。例如,IPv4版本的IP地址一般为4个字节,若使用的IP地址为IPv4版本,则可以读取Type字段后的4个字节,即SourceIP data字段中携带的客户端IP地址。
S604,基于客户端的IP地址进行访问控制。
访问控制可以包括安全访问控制。
服务端可以预先配置控制策略,如控制策略可以包括不同客户端的IP地址与不同操作的对应关系。如此,当服务端得到客户端的IP地址后,可以从该预先配置的控制策略中查找该客户端的IP地址对应的操作,并针对该客户端的IP地址执行该操作。其中,操作可以包括重定向、丢弃、允许通过等。
一种可实现方式中,可以通过Iptables(网络过滤)技术针对LB_IP(负载均衡器的IP地址)+LB端口(负载均衡器的端口)标识源客户端进行访问控制。
如此,能够实现服务端获得客户端的IP地址,也可以理解为服务端可以感知客户端的IP地址,进而服务端能够基于客户端的IP地址进行访问控制。
且在网络层就能够获得客户端的IP地址,能够扩展服务端基于客户端的IP地址进行访问控制的类型,如不仅可以丢弃客户端发送的报文,还可以针对客户端发送的报文进行重定向等。
一种可选的实施例中,服务端可以基于访问控制的不同结果进行不同的响应,生成不同的响应报文。
例如,当访问控制得到的结果是允许客户端的访问通过,则可以解析服务端接收到的负载均衡器发送的报文,得到该报文中具体的业务请求,服务端可以访问共享数据库,生成针对该业务请求的响应报文,并将该响应报文返回给负载均衡器。当访问控制得到的结果是对客户端的访问进行重定向,则可以生成包括重定向指示的响应报文。当访问控制得到的结果是:丢弃客户端的访问,则可以生成包括反馈信息的响应报文,该反馈信息用于说明访问被丢弃,等等。或者,当访问控制得到的结果是丢弃客户端的访问,也可以不向客户端返回响应报文,客户端可以自主监测,当在预设时间范围内没有接收到负载均衡器转发的响应报文,则可以理解为客户端的业务报文被服务端丢弃。
具体地,可以根据SNAT映射信息中包括的客户端的IP地址与负载均衡器的IP地址之间的对应关系、以及客户端的端口与负载均衡器的端口之间的对应关系,对响应报文中的源IP地址、目的IP地址、源端口以及目的端口进行映射变换。例如,响应报文中的源IP地址为服务端的IP地址,目的IP地址为负载均衡器的IP地址,源端口为服务端的端口,目的端口为负载均衡器的端口;可以将响应报文中的源IP地址修改为负载均衡器的IP地址,目的IP地址修改为客户端的IP地址,源端口修改为负载均衡器的端口,目的端口修改为客户端的端口,如此,可以将修改后的响应报文返回给客户端。
本发明实施例提供了应用本发明实施例提供的报文处理方法的实例,参照图7,客户端向负载均衡器发送访问请求,该访问请求即为客户端发送的第一业务报文(如图7中编号1中的内容所示),第一业务报文的源IP地址为122.225.126.13,目的IP地址为119.75.217.2,源端口为xxxx,目的端口为8080,其中,122.225.126.13为客户端的IP地址,119.75.217.2为负载均衡器的IP地址,也可以理解为负载均衡器对外的业务VIP地址,xxxx为客户端的端口,8080为客户端请求服务对应的服务端的端口,也可以理解为业务端口。其中,负载均衡器(Load balancing,LB)也可以用LB表示。
负载均衡器接收到该客户端发送的该第一业务报文后,生成SNAT映射信息(如图7中编号2中的内容所示),SNAT映射信息可以包括客户端的IP地址与负载均衡器的IP地址之间的对应关系、以及客户端的端口与负载均衡器的端口之间的对应关系。具体地,SNAT映射信息中的源IP地址为客户端的IP地址:122.225.126.13,映射IP地址为负载均衡器的IP地址:119.75.217.2,源端口为客户端的端口:xxxx,映射端口为负载均衡器对应的端口:yyyy。
负载均衡器可以基于预设负载均衡策略,从多个服务端中确定目标服务端,如可以根据第一业务报文中的目的端口,确定多个服务端中端口为该目的端口的服务端,并将该服务端作为目标服务端。
负载均衡器可以根据该SNAT映射信息,将第一业务报文中的源IP地址修改为负载均衡器的IP地址:119.75.217.2,将第一业务报文中的目的IP地址修改为服务端的IP地址:192.168.1.3,其中,服务端的端口为:8080;将第一业务报文中的源端口修改为负载均衡器对应的端口:yyyy,目的端口修改为目标服务端的端口。并在修改后的报文的IP报文头的Option字段中添加预设标识信息0xE1和客户端的IP地址122.225.126.13,得到第二业务报文。该第二业务报文的IP报文头的源IP地址:119.75.217.2;目的IP地址:192.168.1.3;源端口:yyyy;目的端口:8080;Option:0xE1,122.225.126.13。
负载均衡器将该第二业务报文发送给端口为8080的该服务端(如图7中编号3中的内容所示),服务端解析该第二业务报文,可以得到负载均衡器的IP地址和端口,以及对应的客户端的IP地址(如图7中编号4中的内容所示)。服务端获取到客户端的IP地址后,即可以根据客户端的IP地址进行访问控制。如可以通过IPtables技术针对LB_IP+LB端口标识源客户端进行访问控制,如进行重定向、丢弃、允许等操作。
且负载均衡器将第二业务报文发送给服务端后,服务端会针对该第二业务报文进行响应,生成针对第二业务报文的响应报文,并将该响应报文返回给服务端。
本发明实施例可以适用于负载均衡器SNAT功能后的传递客户端源IP地址的场景,可以实现向服务端提供感知客户端IP地址的功能,即负载均衡服务器在对接收到的客户端发送的业务报文进行转发的过程中,在发送给服务端的业务报文中添加客户端的IP地址,服务端可以从得到的业务报文中得到该客户端的IP地址。
对应于上述实施例中应用于负载均衡器的报文处理方法,本发明实施例还提供了一种报文处理装置,应用于负载均衡器,如图8所示,可以包括:
接收模块801,用于接收客户端发送的第一业务报文;
添加模块802,用于在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址,得到第二业务报文,其中,预设标识信息用于标识预设字段中携带的IP地址为客户端的IP地址;修改后的业务报文是负载均衡器对第一业务报文进行SNAT后得到的业务报文;
发送模块803,用于将第二业务报文发送至服务端,以使服务端从第二业务报文中获得客户端的IP地址,并基于客户端的IP地址进行访问控制。
可选的,预设字段为IP报文头中的选项Option字段;
添加模块802,具体用于在Option字段中占用一个字节的第一字段添加预设标识信息,并在Option字段中占用四个字节的第二字段中添加客户端的IP地址。
本发明实施例提供的应用于负载均衡器的报文处理装置是应用于负载均衡器的报文处理的装置,则上述应用于负载均衡器的报文处理方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
对应于上述实施例中应用于服务端的报文处理方法,本发明实施例还提供了一种报文处理装置,应用于服务端,如图9所示,可以包括:
接收模块901,用于接收负载均衡器发送的第一业务报文;其中,第一业务报文是负载均衡器在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址得到的业务报文,预设标识信息用于标识预设字段中携带的IP地址为客户端的IP地址;修改后的业务报文是负载均衡器对接收到的客户端发送的第二业务报文进行源网络地址转换SNAT后得到的业务报文;
解析模块902,用于解析第一业务报文,得到第一业务报文中携带的预设标识信息;
获得模块903,用于根据预设标识信息,获得客户端的地址;
访问控制模块904,用于基于客户端的IP地址进行访问控制。
可选的,预设字段为IP报文头中的选项Option字段;
解析模块902,具体用于从Option字段中占用一个字节的第一字段,读取预设标识信息;
获得模块903,具体用于从Option字段中占用四个字节的第二字段中,读取客户端的IP地址。
本发明实施例提供的应用于服务端的报文处理装置是应用于服务端的报文处理的装置,则上述应用于服务端的报文处理方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
对应于上述实施例中应用于负载均衡器的报文处理方法,本发明实施例还提供了一种负载均衡器,如图10所示,可以包括处理器1001和机器可读存储介质1002,机器可读存储介质1002存储有能够被处理器1001执行的机器可执行指令,处理器1001被机器可执行指令促使:实现上述实施例中应用于负载均衡器的报文处理方法的方法步骤。
对应于上述实施例中应用于服务端的报文处理方法,本发明实施例还提供了一种服务器,如图11所示,可以包括处理器1101和机器可读存储介质1102,机器可读存储介质1102存储有能够被处理器1101执行的机器可执行指令,处理器1101被机器可执行指令促使:实现上述实施例中应用于服务端的报文处理方法的方法步骤。
对应于上述实施例中应用于负载均衡器的报文处理方法,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述实施例中应用于负载均衡器的报文处理方法的方法步骤。
对应于上述实施例中应用于服务端的报文处理方法,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述实施例中应用于服务端的报文处理方法的方法步骤。
对应于上述实施例中应用于负载均衡器的报文处理方法,在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中应用于负载均衡器的报文处理方法的方法步骤。
对应于上述实施例中应用于服务端的报文处理方法,在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中应用于服务端的报文处理方法的方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、负载均衡器、服务器、计算机可读存储介质及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种报文处理方法,其特征在于,应用于负载均衡器,包括:
接收客户端发送的第一业务报文;
在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和所述客户端的IP地址,得到第二业务报文,其中,所述预设标识信息用于标识所述预设字段中携带的IP地址为所述客户端的IP地址;所述修改后的业务报文是所述负载均衡器对所述第一业务报文进行源网络地址转换SNAT后得到的业务报文;
将所述第二业务报文发送至所述服务端,以使所述服务端从所述第二业务报文中获得所述客户端的IP地址,并基于所述客户端的IP地址进行访问控制。
2.根据权利要求1所述的方法,其特征在于,所述预设字段为所述IP报文头中的选项Option字段;
所述在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和所述客户端的IP地址,包括:
在所述Option字段中占用一个字节的第一字段添加所述预设标识信息,并在所述Option字段中占用四个字节的第二字段中添加所述客户端的IP地址。
3.一种报文处理方法,其特征在于,应用于服务端,包括:
接收负载均衡器发送的第一业务报文;其中,所述第一业务报文是所述负载均衡器在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址得到的业务报文,所述预设标识信息用于标识所述预设字段中携带的IP地址为所述客户端的IP地址;所述修改后的业务报文是所述负载均衡器对接收到的客户端发送的第二业务报文进行源网络地址转换SNAT后得到的业务报文;
解析所述第一业务报文,得到所述第一业务报文中携带的所述预设标识信息;
根据所述预设标识信息,获得所述客户端的地址;
基于所述客户端的IP地址进行访问控制。
4.根据权利要求3所述的方法,其特征在于,所述预设字段为所述IP报文头中的选项Option字段;
所述解析所述第一业务报文,得到所述第一业务报文中携带的所述预设标识信息,包括:
从所述Option字段中占用一个字节的第一字段,读取所述预设标识信息;
所述根据所述预设标识信息,获得所述客户端的地址,包括:
从所述Option字段中占用四个字节的第二字段中,读取所述客户端的IP地址。
5.一种报文处理装置,其特征在于,应用于负载均衡器,包括:
接收模块,用于接收客户端发送的第一业务报文;
添加模块,用于在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和所述客户端的IP地址,得到第二业务报文,其中,所述预设标识信息用于标识所述预设字段中携带的IP地址为所述客户端的IP地址;所述修改后的业务报文是所述负载均衡器对所述第一业务报文进行源网络地址转换SNAT后得到的业务报文;
发送模块,用于将所述第二业务报文发送至所述服务端,以使所述服务端从所述第二业务报文中获得所述客户端的IP地址,并基于所述客户端的IP地址进行访问控制。
6.根据权利要求5所述的装置,其特征在于,所述预设字段为所述IP报文头中的选项Option字段;
所述添加模块,具体用于在所述Option字段中占用一个字节的第一字段添加所述预设标识信息,并在所述Option字段中占用四个字节的第二字段中添加所述客户端的IP地址。
7.一种报文处理装置,其特征在于,应用于服务端,包括:
接收模块,用于接收负载均衡器发送的第一业务报文;其中,所述第一业务报文是所述负载均衡器在修改后的业务报文的IP报文头的预设字段中添加预设标识信息和客户端的IP地址得到的业务报文,所述预设标识信息用于标识所述预设字段中携带的IP地址为所述客户端的IP地址;所述修改后的业务报文是所述负载均衡器对接收到的客户端发送的第二业务报文进行源网络地址转换SNAT后得到的业务报文;
解析模块,用于解析所述第一业务报文,得到所述第一业务报文中携带的所述预设标识信息;
获得模块,用于根据所述预设标识信息,获得所述客户端的地址;
访问控制模块,用于基于所述客户端的IP地址进行访问控制。
8.根据权利要求7所述的装置,其特征在于,所述预设字段为所述IP报文头中的选项Option字段;
所述解析模块,具体用于从所述Option字段中占用一个字节的第一字段,读取所述预设标识信息;
所述获得模块,具体用于从所述Option字段中占用四个字节的第二字段中,读取所述客户端的IP地址。
9.一种负载均衡器,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1至2任一所述的方法步骤。
10.一种服务器,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求3至4任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011248214.2A CN112437127A (zh) | 2020-11-10 | 2020-11-10 | 报文处理方法、装置以及负载均衡器和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011248214.2A CN112437127A (zh) | 2020-11-10 | 2020-11-10 | 报文处理方法、装置以及负载均衡器和服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112437127A true CN112437127A (zh) | 2021-03-02 |
Family
ID=74700873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011248214.2A Withdrawn CN112437127A (zh) | 2020-11-10 | 2020-11-10 | 报文处理方法、装置以及负载均衡器和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112437127A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113794703A (zh) * | 2021-08-31 | 2021-12-14 | 上海弘积信息科技有限公司 | 一种负载均衡系统中获取客户端ip的方法 |
WO2024040884A1 (zh) * | 2022-08-26 | 2024-02-29 | 华为技术有限公司 | 业务处理方法、装置及系统 |
WO2024087638A1 (zh) * | 2022-10-27 | 2024-05-02 | 华为云计算技术有限公司 | 一种数据包的处理方法以及相关装置 |
-
2020
- 2020-11-10 CN CN202011248214.2A patent/CN112437127A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113794703A (zh) * | 2021-08-31 | 2021-12-14 | 上海弘积信息科技有限公司 | 一种负载均衡系统中获取客户端ip的方法 |
WO2024040884A1 (zh) * | 2022-08-26 | 2024-02-29 | 华为技术有限公司 | 业务处理方法、装置及系统 |
WO2024087638A1 (zh) * | 2022-10-27 | 2024-05-02 | 华为云计算技术有限公司 | 一种数据包的处理方法以及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9705799B2 (en) | Server-side load balancing using parent-child link aggregation groups | |
CN112437127A (zh) | 报文处理方法、装置以及负载均衡器和服务器 | |
CN107925674B (zh) | 在内容为中心的网络(ccn)中推送数据的方法和装置 | |
US8892768B2 (en) | Load balancing apparatus and load balancing method | |
US8730966B2 (en) | Anonymization using anonymizing device and packet server in which anonymous address is generated based on prefix acquired from server | |
US20050289244A1 (en) | Method for service chaining in a communication network | |
CN107046506B (zh) | 一种报文处理方法、流分类器和业务功能实例 | |
EP1816812A1 (en) | Access control device, and access control method | |
WO2021073565A1 (zh) | 业务服务提供方法及系统 | |
US11082300B2 (en) | Transforming data based on a virtual topology | |
US20140258491A1 (en) | Methods and apparatus for hostname selective routing in dual-stack hosts | |
KR20070053367A (ko) | 패킷 플로우에 따라 세션 서비스를 적용하는 시스템 및방법 | |
US8706908B2 (en) | System, method and apparatus for media access control (MAC) address proxying | |
KR20040077549A (ko) | 네임 해결 서버 및 패킷 전송 장치 | |
US8737396B2 (en) | Communication method and communication system | |
WO2018214853A1 (zh) | 一种减小dns报文长度的方法、装置、介质及设备 | |
WO2019062593A1 (zh) | 报文传输方法及装置、计算机可读存储介质 | |
Kim et al. | ONTAS: Flexible and scalable online network traffic anonymization system | |
CN106899500B (zh) | 一种跨虚拟可扩展局域网的报文处理方法及装置 | |
US20120191769A1 (en) | Site-aware distributed file system access from outside enterprise network | |
CN112887229B (zh) | 一种会话信息同步方法及装置 | |
CN113810349B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN112073545A (zh) | 使用dns来传送服务器设备的mp-tcp能力 | |
Cha et al. | A mobility link service for ndn consumer mobility | |
CN110545230B (zh) | 用于转发vxlan报文的方法和装置 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210302 |
|
WW01 | Invention patent application withdrawn after publication |