CN103297552A - 传递客户端IPv4地址及端口至后端服务器的方法及装置 - Google Patents

传递客户端IPv4地址及端口至后端服务器的方法及装置 Download PDF

Info

Publication number
CN103297552A
CN103297552A CN2012100543583A CN201210054358A CN103297552A CN 103297552 A CN103297552 A CN 103297552A CN 2012100543583 A CN2012100543583 A CN 2012100543583A CN 201210054358 A CN201210054358 A CN 201210054358A CN 103297552 A CN103297552 A CN 103297552A
Authority
CN
China
Prior art keywords
port
address
client
initial
option field
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
CN2012100543583A
Other languages
English (en)
Other versions
CN103297552B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201210054358.3A priority Critical patent/CN103297552B/zh
Publication of CN103297552A publication Critical patent/CN103297552A/zh
Application granted granted Critical
Publication of CN103297552B publication Critical patent/CN103297552B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提出一种从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的方法和装置。方法包括以下步骤:客户端向IPv4负载均衡设备发送数据包;IPv4负载均衡设备对客户端的原始IPv4地址及端口进行地址转换,将客户端的原始IPv4地址及端口存储在TCP选项字段中并发送带有所述TCP选项字段的数据包;服务器的Linux内核层截获syn_recv_sock钩子,挂载tcp_v4_syn_recv_sock_ttm钩子函数,以得到TCP选项字段中的客户端的原始IPv4地址及端口并存储;服务器的Linux内核层截获getname钩子,挂载inet_getname_ttm钩子函数,以提取客户端的原始IPv4地址及端口供服务器的Linux应用层使用。本发明通过在TCP选项字段中增加客户端的原始IPv4地址和端口信息,使得后端真实服务器能够获取客户端的原始IP和端口信息,从而能够对客户进行地址定位。

Description

传递客户端IPv4地址及端口至后端服务器的方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的方法。
背景技术
现有的负载均衡设备中,如果采用了NAT(Network Address Translation,网络地址转换)模式,那么后端的真实服务器只能看到负载均衡设备的后端IP,而无法看到客户端的真实源IP,因此无法对客户端进行地址定位,从而无法正常开展基于地理信息的相关业务。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的一个目的在于提出一种可以将客户端的原始IPv4地址和端口传递到后端服务器的方法。
本发明的另一目的在于提出一种从IPv4负载均衡设备传递客户端的原始IPv4地址和端口至后端服务器的系统。
为了实现上述目的,根据本发明第一方面的实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址和端口至后端服务器的方法,包括以下步骤:(A)所述客户端向所述IPv4负载均衡设备发送数据包;(B)所述IPv4负载均衡设备对所述客户端的原始IPv4地址及端口进行地址转换,将所述客户端的原始IPv4地址及端口存储在TCP选项字段中并发送带有所述TCP选项字段的数据包;(C)服务器的Linux内核层截获syn_recv_sock钩子,挂载tcp_v4_syn_recv_sock_ttm钩子函数,以得到所述TCP选项字段中的所述客户端的原始IPv4地址及端口并存储;(D)所述服务器的Linux内核层截获getname钩子,挂载inet_getname_ttm钩子函数,以提取所述客户端的原始IPv4地址及端口供所述服务器的Linux应用层使用。
根据本发明实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的方法,通过在TCP选项字段中增加客户端的原始IPv4地址和端口信息,使得后端真实服务器能够提取TCP选项字段中的信息获取客户端的真实IP和端口信息,从而能够对客户进行地址定位并开展基于地理信息的相关服务。而且本发明的方法不需要对Linux内核做任何的修改,具有较强的灵活性,可移植性高。
为了实现上述目的,根据本发明第二方面的实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的装置,包括第一截获模块和第二截获模块,所述客户端向所述IPv4负载均衡设备发送数据包,所述IPv4负载均衡设备对所述客户端的原始IPv4地址及端口进行地址转换,将所述客户端的原始IPv4地址及端口存储在TCP选项字段中并发送带有所述TCP选项字段的数据包,所述第一截获模块用于截获syn_recv_sock钩子,挂载tcp_v4_syn_recv_sock_ttm钩子函数,以得到所述TCP选项字段中的所述客户端的原始IPv4地址及端口并保存,所述第二截获模块用于截获getname钩子,挂载inet_getname_ttm钩子函数,以提取所述客户端的原始IPv4地址及端口供所述服务器的Linux应用层使用。
根据本发明实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的装置,通过在TCP选项字段中增加客户端的原始IPv4地址和端口信息,并通过截获模块截获TCP选项字段中的信息获取客户端的真实IP和端口信息,从而能够对客户进行地址定位并开展基于地理信息的相关服务。而且实现过程中不需要对Linux内核做任何的修改,具有较强的灵活性,可移植性高。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的方法的流程图;
图2是根据本发明一个实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的方法的流程图;
图3是根据本发明一个实施例的分析TCP选项并提取客户端的原始IPv4地址及端口的方法的流程图;
图4是根据本发明一个实施例的inet_getname_ttm钩子函数的工作流程图;
图5是根据本发明一个实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的装置的结构框图;以及
图6是根据本发明一个实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的装置的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考附图描述根据本发明实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端真实服务器的方法及装置。
图1是根据本发明一个实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的方法的流程图。
如图1所示,从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的方法包括下述步骤。在本发明的实施例中,后端服务器指的是为客户提供服务的真实服务器。
步骤S101,客户端向IPv4负载均衡设备发送数据包。
步骤S102,IPv4负载均衡设备对客户端的原始IPv4地址及端口进行地址转换,将客户端的原始IPv4地址及端口存储在TCP选项字段中并发送带有TCP选项字段的数据包。
步骤S103,服务器的Linux内核层截获syn_recv_sock钩子,挂载tcp_v4_syn_recv_sock_ttm钩子函数,以得到TCP选项字段中的客户端的原始IPv4地址及端口并存储。
步骤S104,服务器的Linux内核层截获getname钩子,挂载inet_getname_ttm钩子函数,以提取客户端的原始IPv4地址及端口供服务器的Linux应用层使用。
根据本发明实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的方法,通过在TCP选项字段中增加客户端的原始IPv4地址和端口信息,使得后端真实服务器能够提取TCP选项字段中的信息获取客户端的真实IP和端口信息,从而能够对客户进行地址定位并开展基于地理信息的相关服务。
图2是根据本发明一个实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的方法的流程图。
如图2所示,从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的方法包括下述步骤。
步骤S201,客户端向IPv4负载均衡设备发送数据包。
步骤S202,IPv4负载均衡设备对客户端的原始IPv4地址及端口进行地址转换,将客户端的原始IPv4地址及端口存储在TCP选项字段中并发送带有该TCP选项字段的数据包。
步骤S203,将TCP选项字段的kind号写入作为TCPOPT_TTM并将TCP选项字段的总长度写入作为TCPOLEN_TTM。例如,kind号为253,总长度为6。
步骤S204,服务器的Linux内核层截获syn_recv_sock钩子,挂载tcp_v4_syn_recv_sock_ttm钩子函数,以得到TCP选项字段中的客户端的原始IPv4地址及端口并存储。
Linux内核在监听套接字收到三次握手的ACK包之后,会从SYN_REVC状态进入到TCP_ESTABLISHED状态,在这个过程中服务器的Linux内核层会调用tcp_v4_syn_recv_sock函数。客户端的真实IPv4地址和端口号作为TCP选项在负载均衡设备的NAT转换中传递给后端真实服务器。本发明通过截获tcp_v4_syn_recv_sock钩子函数对TCP选项字段中的客户端的原始IPv4地址及端口进行提取并存储,以备inet_getname使用。
具体地,图3为本发明一个实施例的分析TCP选项并提取客户端的IPv4地址和端口的方法的流程图。如图3所示,该方法包括以下步骤:
步骤S311,服务器的Linux内核层调用linux内核原生的tcp_v4_syn_recv_sock函数。
步骤S312,判断TCP选项字段的kind号是否为TCPOPT_TTM并判断TCP选项字段的总长度是否为TCPOLEN_TTM。
步骤S313,如果TCP选项字段的kind号是TCPOPT_TTM且TCP选项字段的总长度是TCPOLEN_TTM,则获取存储在TCP选项字段中的客户端的原始IPv4地址及端口。
步骤S314,建立具有sk_user_data指针的sock结构体。
步骤S315,将客户端的原始IPv4地址及端口拷贝到存储sk_user_data指针变量的内存区域。
应理解,在本发明的另一个实施例中,该分析TCP选项并提取客户端的IPv4地址和端口的方法还可以包括步骤S316:如果判断不存在kind号为TCPOPT_TTM且长度为TCPOLEN_TTM的TCP选项字段,则返回。
由此,成功提取到TCP选项字段中的客户端的原始IPv4地址及端口并存储到存储sk_user_data指针变量的内存区域中,以备inet_getname使用。
步骤S205,服务器的Linux内核层截获getname钩子,挂载inet_getname_ttm钩子函数,以提取客户端的原始IPv4地址及端口供服务器的Linux应用层使用。
用户在使用套接字中的accept方法时,会调用到inet_getname将sock结构体中存储的源IPv4地址和端口号返回。由于在这个阶段客户端的真实IPv4地址和端口号已经提取出来存储在sock结构中,因此只需要提取出这个数据返回即可。在本发明中对inet_getname钩子函数进行截获完成客户端的原始IPv4地址和端口到用户的传递。具体的工作流程如图4所示。
图4为本发明一个实施例的inet_getname_ttm钩子函数的工作流程图。如图4所示,inet_getname_ttm钩子函数的工作流程包括以下步骤:
步骤S411,调用linux内核原生的inet_getname函数。
步骤S412,判断存储sk_user_data指针变量的内存区域是否为空。
步骤S413,如果存储sk_user_data指针变量的内存区域不为空,则进一步判断存储sk_user_data指针变量的内存区域中是否存储有客户端的原始IPv4地址及端口。
步骤S414,如果存储sk_user_data指针变量的内存区域中存储有客户端的原始IPv4地址及端口,则将存储sk_user_data指针变量的内存区域中存储的客户端的原始IPv4地址及端口赋值到uaddr的sin_addr和sin_port。
应理解,在本发明的另一个实施例中,该方法还可以包括步骤S415:如果判断存储sk_user_data指针变量的内存区域为空,则返回错误。
类似地,在本发明的又一个实施例中,该方法还可以包括步骤S416:如果判断存储sk_user_data指针变量的内存区域中没有存储客户端的原始IPv4地址及端口,则返回错误。
根据本发明实施例的从IPV4负载均衡设备中传递客户端的原始IPv4地址及端口至后端服务器的方法,通过在TCP选项字段中增加客户端的原始IPv4地址和端口信息,使得后端真实服务器能够提取TCP选项字段中的信息获取客户端的真实IP和端口信息,从而能够对客户进行地址定位并开展基于地理信息的相关服务。而且本发明的方法不需要对Linux内核做任何的改变,具有较强的灵活性,可移植性高。
本发明还提出一种从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的装置。
图5是根据本发明一个实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端真实服务器的装置的结构框图。如图5所示,从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端真实服务器的装置30包括第一截获模块310和第二截获模块320。
客户端10向IPv4负载均衡设备20发送数据包。IPv4负载均衡设备20对客户端10的原始IPv4地址及端口进行地址转换,将客户端10的原始IPv4地址及端口存储在TCP选项字段中并发送带有该TCP选项字段的数据包。第一截获模块310截获syn_recv_sock钩子,挂载tcp_v4_syn_recv_sock_ttm钩子函数,以得到TCP选项字段中的客户端10的原始IPv4地址及端口并存储。第二截获模块320截获getname钩子,挂载inet_getname_ttm钩子函数,以提取客户端10的原始IPv4地址及端口供服务器40的Linux应用层使用。
根据本发明实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的装置,通过在TCP选项字段中增加客户端的原始IPv4地址和端口信息,并通过截获模块截获TCP选项字段中的信息获取客户端的真实IP和端口信息,从而能够对客户进行地址定位并开展基于地理信息的相关服务。
图6为根据本发明一个实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的装置的结构框图。如图7所示,在图6所示的实施例的基础上,该装置还包括写入模块330。写入模块330用于将TCP选项字段的kind号写入作为TCPOPT_TTM并将所述TCP选项字段的总长度写入作为TCPOLEN_TTM。例如,kind号为253,总长度为6。
由此,第一截获模块310首先调用tcp_v4_syn_recv_sock函数,然后判断TCP选项字段的kind号是否为TCPOPT_TTM并判断TCP选项字段的总长度是否为TCPOLEN_TTM。如果TCP选项字段的kind号是TCPOPT_TTM且TCP选项字段的总长度是TCPOLEN_TTM,则获取存储在TCP选项字段中的客户端的原始IPv4地址及端口。接着,建立具有sk_user_data指针的sock结构体。然后,将客户端的原始IPv4地址及端口拷贝到存储所述sk_user_data指针变量的内存区域中,以备inet_getname使用。
此外,如果不存在kind号是TCPOPT_TTM或者长度是TCPOLEN_TTM的TCP选项字段,则返回。
第二截获模块320首先调用inet_getname函数,判断存储sk_user_data指针变量的内存区域是否为空。如果存储sk_user_data指针变量的内存区域不为空,则进一步判断存储sk_user_data指针变量的内存区域中是否存储有客户端的原始IPv4地址及端口。如果存储sk_user_data指针变量的内存区域中存储有客户端的原始IPv4地址及端口,则将存储sk_user_data指针变量的内存区域中存储的客户端的原始IPv4地址及端口赋值到uaddr的sin_addr和sin_port。
此外,如果判断存储sk_user_data指针变量的内存区域为空,或者如果判断存储sk_user_data指针变量的内存区域中没有存储客户端的原始IPv4地址及端口,则返回。
根据本发明实施例的从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的装置,通过在TCP选项字段中增加客户端的原始IPv4地址和端口信息,并通过截获模块截获TCP选项字段中的信息获取客户端的真实IP和端口信息,从而能够对客户进行地址定位并开展基于地理信息的相关服务。而且实现过程中不需要对Linux内核做任何的修改,具有较强的灵活性,可移植性高。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。

Claims (14)

1.一种从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的方法,其特征在于,包括以下步骤:
(A)所述客户端向所述IPv4负载均衡设备发送数据包;
(B)所述IPv4负载均衡设备对所述客户端的原始IPv4地址及端口进行地址转换,将所述客户端的原始IPv4地址及端口存储在TCP选项字段中并发送带有所述TCP选项字段的数据包;
(C)所述服务器的Linux内核层截获syn_recv_sock钩子,挂载tcp_v4_syn_recv_sock_ttm钩子函数,以得到所述TCP选项字段中的所述客户端的原始IPv4地址及端口并存储;
(D)所述服务器的Linux内核层截获getname钩子,挂载inet_getname_ttm钩子函数,以提取所述客户端的原始IPv4地址及端口供所述服务器的Linux应用层使用。
2.根据权利要求1所述的方法,其特征在于,进一步包括步骤:
(E)将所述TCP选项字段的kind号写入作为TCPOPT_TTM并将所述TCP选项字段的总长度写入作为TCPOLEN_TTM。
3.根据权利要求2所述的方法,其特征在于,所述步骤(C)包括:
所述服务器的Linux内核层调用linux内核原生的tcp_v4_yn_recv_sock函数;
判断所述TCP选项字段的kind号是否为TCPOPT_TTM并判断所述TCP选项字段的总长度是否为TCPOLEN_TTM;
如果是,则获取存储在所述TCP选项字段中的所述客户端的原始IPv4地址及端口;以及
建立具有sk_user_data指针的sock结构体并将所述客户端的原始IPv4地址及端口拷贝到存储所述sk_user_data指针变量的内存区域。
4.根据权利要求3所述的方法,其特征在于,进一步包括:
如果判断不存在kind号为TCPOPT_TTM且长度为TCPOLEN_TTM的所述TCP选项字段,则返回。
5.根据权利要求1或2所述的方法,其特征在于,所述步骤(D)包括:
调用linux内核原生的inet_getname函数;
判断存储所述sk_user_data指针变量的内存区域是否为空;
如果否,则判断存储所述sk_user_data指针变量的内存区域中是否存储有所述客户端的原始IPv4地址及端口;以及
如果存储所述sk_user_data指针变量的内存区域中存储有所述客户端的原始IPv4地址及端口,则将存储所述sk_user_data指针变量的内存区域中存储的所述客户端的原始IPv4地址及端口赋值到uaddr的sin_addr和sin_port。
6.根据权利要求5所述的方法,其特征在于,进一步包括步骤:
如果判断存储所述sk_user_data指针变量的内存区域为空,则返回。
7.根据权利要求5所述的方法,其特征在于,进一步包括步骤:
如果判断存储所述sk_user_data指针变的内存区域中没有存储所述客户端的原始IPv4地址及端口,则返回。
8.一种从IPv4负载均衡设备传递客户端的原始IPv4地址及端口至后端服务器的装置,其特征在于,所述客户端向所述IPv4负载均衡设备发送数据包,所述IPv4负载均衡设备对所述客户端的原始IPv4地址及端口进行地址转换,将所述客户端的原始IPv4地址及端口存储在TCP选项字段中并发送带有所述TCP选项字段的数据包,所述装置包括:
第一截获模块,所述第一截获模块用于截获syn_recv_sock钩子,挂载tcp_v4_syn_recv_sock_ttm钩子函数,以得到所述TCP选项字段中的所述客户端的原始IPv4地址及端口并存储;以及
第二截获模块,所述第二截获模块用于截获getname钩子,挂载inet_getname_ttm钩子函数,以提取所述客户端的原始IPv4地址及端口供所述服务器的Linux应用层使用。
9.根据权利要求8所述的装置,其特征在于,进一步包括:
写入模块,所述写入模块用于将所述TCP选项字段的kind号写入作为TCPOPT_TTM并将所述TCP选项字段的总长度写入作为TCPOLEN_TTM。
10.根据权利要求9所述的装置,其特征在于,所述第一截获模块用于:
调用linux内核原生的tcp_v4_syn_recv_sock函数;
判断所述TCP选项字段的kind号是否为TCPOPT_TTM并判断所述TCP选项的总长度是否为TCPOLEN_TTM;
如果是,则获取存储在所述TCP选项字段中的所述客户端的原始IPv4地址及端口;以及
建立具有sk_user_data指针的sock结构体并将所述客户端的原始IPv4地址及端口拷贝到存储所述sk_user_data指针变量的内存区域。
11.根据权利要求10所述的方法,其特征在于,所述第一截获模块进一步用于:
如果不存在kind号为TCPOPT_TTM且长度为TCPOLEN_TTM的所述TCP选项字段,则返回。
12.根据权利要求8或9所述的装置,其特征在于,所述第二截获模块用于:
调用linux内核原生的inet_getname函数;
判断存储所述sk_user_data指针变量的内存区域是否为空;
如果否,则判断存储所述sk_user_data指针变量的内存区域中是否存储有所述客户端的原始IPv4地址及端口;以及
如果存储所述sk_user_data指针变量的内存区域中存储有所述客户端的原始IPv4地址及端口,则将存储所述sk_user_data指针变量的内存区域中存储的所述客户端的原始IPv4地址及端口赋值到uaddr的sin_addr和sin_port。
13.根据权利要求12所述的装置,其特征在于,所述第二截获模块进一步用于:
如果判断存储所述sk_user_data指针变量的内存区域为空,则返回。
14.根据权利要求12所述的装置,其特征在于,所述第二截获模块进一步用于:
如果判断存储所述sk_user_data指针变量的内存区域中没有存储所述客户端的原始IPv4地址及端口,则返回。
CN201210054358.3A 2012-03-02 2012-03-02 传递客户端IPv4地址及端口至后端服务器的方法及装置 Active CN103297552B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210054358.3A CN103297552B (zh) 2012-03-02 2012-03-02 传递客户端IPv4地址及端口至后端服务器的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210054358.3A CN103297552B (zh) 2012-03-02 2012-03-02 传递客户端IPv4地址及端口至后端服务器的方法及装置

Publications (2)

Publication Number Publication Date
CN103297552A true CN103297552A (zh) 2013-09-11
CN103297552B CN103297552B (zh) 2016-05-25

Family

ID=49097854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210054358.3A Active CN103297552B (zh) 2012-03-02 2012-03-02 传递客户端IPv4地址及端口至后端服务器的方法及装置

Country Status (1)

Country Link
CN (1) CN103297552B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140258465A1 (en) * 2013-03-11 2014-09-11 Cisco Technology, Inc. Identification of originating ip address and client port connection to a web server via a proxy server
CN105577636A (zh) * 2015-08-18 2016-05-11 上海云联计算机系统有限公司 通信网络中信息的传输方法及其装置
CN107465666A (zh) * 2017-07-12 2017-12-12 北京潘达互娱科技有限公司 一种客户端ip获取方法与装置
CN107995324A (zh) * 2017-12-04 2018-05-04 北京奇安信科技有限公司 一种基于隧道模式的云防护方法及装置
US10116493B2 (en) 2014-11-21 2018-10-30 Cisco Technology, Inc. Recovering from virtual port channel peer failure
US10142163B2 (en) 2016-03-07 2018-11-27 Cisco Technology, Inc BFD over VxLAN on vPC uplinks
CN108989480A (zh) * 2018-07-26 2018-12-11 杭州云缔盟科技有限公司 一种在服务器获取客户端地址的方法
US10193750B2 (en) 2016-09-07 2019-01-29 Cisco Technology, Inc. Managing virtual port channel switch peers from software-defined network controller
US10225179B2 (en) 2013-11-05 2019-03-05 Cisco Technology, Inc. Virtual port channel bounce in overlay network
US10333828B2 (en) 2016-05-31 2019-06-25 Cisco Technology, Inc. Bidirectional multicasting over virtual port channel
CN110535879A (zh) * 2019-09-23 2019-12-03 中星科源(北京)信息技术有限公司 一种原始地址传输方法、系统、存储介质和处理器
US10547509B2 (en) 2017-06-19 2020-01-28 Cisco Technology, Inc. Validation of a virtual port channel (VPC) endpoint in the network fabric
CN111800518A (zh) * 2020-08-20 2020-10-20 杭州迪普科技股份有限公司 客户端ip地址插入方法及装置
CN113794703A (zh) * 2021-08-31 2021-12-14 上海弘积信息科技有限公司 一种负载均衡系统中获取客户端ip的方法
CN115037551A (zh) * 2022-06-29 2022-09-09 北京奇艺世纪科技有限公司 连接权限控制方法、装置、电子设备及存储介质
US11509501B2 (en) 2016-07-20 2022-11-22 Cisco Technology, Inc. Automatic port verification and policy application for rogue devices
CN115550217A (zh) * 2022-09-28 2022-12-30 浙江大学 针对云网络中七层负载均衡场景的网络诊断方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1812344A (zh) * 2006-03-09 2006-08-02 杭州华为三康技术有限公司 一种实现负载均衡的方法和系统
US20100220721A1 (en) * 2005-03-22 2010-09-02 Logitech Europe S.A. Method and Apparatus for Packet traversal of A Network Address Translation Device
CN102255932A (zh) * 2010-05-20 2011-11-23 百度在线网络技术(北京)有限公司 负载均衡方法和负载均衡器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100220721A1 (en) * 2005-03-22 2010-09-02 Logitech Europe S.A. Method and Apparatus for Packet traversal of A Network Address Translation Device
CN1812344A (zh) * 2006-03-09 2006-08-02 杭州华为三康技术有限公司 一种实现负载均衡的方法和系统
CN102255932A (zh) * 2010-05-20 2011-11-23 百度在线网络技术(北京)有限公司 负载均衡方法和负载均衡器

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140258465A1 (en) * 2013-03-11 2014-09-11 Cisco Technology, Inc. Identification of originating ip address and client port connection to a web server via a proxy server
US11411770B2 (en) 2013-11-05 2022-08-09 Cisco Technology, Inc. Virtual port channel bounce in overlay network
US10225179B2 (en) 2013-11-05 2019-03-05 Cisco Technology, Inc. Virtual port channel bounce in overlay network
US10116493B2 (en) 2014-11-21 2018-10-30 Cisco Technology, Inc. Recovering from virtual port channel peer failure
US10819563B2 (en) 2014-11-21 2020-10-27 Cisco Technology, Inc. Recovering from virtual port channel peer failure
CN105577636A (zh) * 2015-08-18 2016-05-11 上海云联计算机系统有限公司 通信网络中信息的传输方法及其装置
US10142163B2 (en) 2016-03-07 2018-11-27 Cisco Technology, Inc BFD over VxLAN on vPC uplinks
US10333828B2 (en) 2016-05-31 2019-06-25 Cisco Technology, Inc. Bidirectional multicasting over virtual port channel
US11509501B2 (en) 2016-07-20 2022-11-22 Cisco Technology, Inc. Automatic port verification and policy application for rogue devices
US10749742B2 (en) 2016-09-07 2020-08-18 Cisco Technology, Inc. Managing virtual port channel switch peers from software-defined network controller
US10193750B2 (en) 2016-09-07 2019-01-29 Cisco Technology, Inc. Managing virtual port channel switch peers from software-defined network controller
US10873506B2 (en) 2017-06-19 2020-12-22 Cisco Technology, Inc. Validation of a virtual port channel (VPC) endpoint in the network fabric
US10547509B2 (en) 2017-06-19 2020-01-28 Cisco Technology, Inc. Validation of a virtual port channel (VPC) endpoint in the network fabric
US11438234B2 (en) 2017-06-19 2022-09-06 Cisco Technology, Inc. Validation of a virtual port channel (VPC) endpoint in the network fabric
CN107465666A (zh) * 2017-07-12 2017-12-12 北京潘达互娱科技有限公司 一种客户端ip获取方法与装置
CN107995324B (zh) * 2017-12-04 2021-01-01 奇安信科技集团股份有限公司 一种基于隧道模式的云防护方法及装置
CN107995324A (zh) * 2017-12-04 2018-05-04 北京奇安信科技有限公司 一种基于隧道模式的云防护方法及装置
CN108989480A (zh) * 2018-07-26 2018-12-11 杭州云缔盟科技有限公司 一种在服务器获取客户端地址的方法
CN110535879A (zh) * 2019-09-23 2019-12-03 中星科源(北京)信息技术有限公司 一种原始地址传输方法、系统、存储介质和处理器
CN111800518A (zh) * 2020-08-20 2020-10-20 杭州迪普科技股份有限公司 客户端ip地址插入方法及装置
CN111800518B (zh) * 2020-08-20 2023-02-07 杭州迪普科技股份有限公司 客户端ip地址插入方法及装置
CN113794703A (zh) * 2021-08-31 2021-12-14 上海弘积信息科技有限公司 一种负载均衡系统中获取客户端ip的方法
CN115037551A (zh) * 2022-06-29 2022-09-09 北京奇艺世纪科技有限公司 连接权限控制方法、装置、电子设备及存储介质
CN115037551B (zh) * 2022-06-29 2024-04-26 北京奇艺世纪科技有限公司 连接权限控制方法、装置、电子设备及存储介质
CN115550217A (zh) * 2022-09-28 2022-12-30 浙江大学 针对云网络中七层负载均衡场景的网络诊断方法及装置

Also Published As

Publication number Publication date
CN103297552B (zh) 2016-05-25

Similar Documents

Publication Publication Date Title
CN103297552A (zh) 传递客户端IPv4地址及端口至后端服务器的方法及装置
CN103297407B (zh) 传递客户端IPv6地址及端口至后端服务器的方法及装置
US20200288521A1 (en) Electronic device and method for forming wi-fi direct group thereof
US10268435B2 (en) Display device, multi-display system, and ID determination method for display device
CN104955022A (zh) 一种共享使用虚拟sim卡的方法和系统
CN111327758B (zh) 摄像头共享方法及装置
CN108777640B (zh) 一种服务器探测方法、装置、系统及存储介质
EP4231591A3 (en) Communications system, communications device used in same, management device, and information terminal
EP3433978B1 (en) Standalone network probing using available network connections
CN112995247B (zh) 数据发送或处理的方法、装置和系统
CN105933393A (zh) 一种局域网内数据同步方法及其装置、用户终端
CN103945445A (zh) 一种测试接入控制器性能的方法及装置
US20130028411A1 (en) Simple Group Security for Machine-to-Machine Networking (SGSM2M)
CN103957580A (zh) 一种用于智能硬件的wifi快速组网配对方法及模块
CN103516851B (zh) 一种无线产品云测试平台系统
CN104012162B (zh) 通信网络中的位置隐私的方法及装置
CN108536484A (zh) 参数修改方法、装置、终端设备及存储介质
CN110224897A (zh) 应用程序的弱网络测试方法、装置、移动设备及存储介质
CN104126289A (zh) 修改所发送的分组序列的属性以便唯一地标识例如已加密网络之类的网络上的实体
US11570274B1 (en) Systems for exchange of data between remote devices
CN107249038A (zh) 业务数据转发方法及系统
Lee Implementation of TLS and DTLS on Zephyr OS for IoT devices
RU2015119942A (ru) Способ, устройство и система распространения приложений
WO2018219911A1 (en) Data exchange system, method and gateway module
CN103650457B (zh) 一种共享接入的检测方法、设备和终端设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant