TCP 选项中的客户端 IP 地址

Citrix ADC 设备使用多种方法将客户端信息发送到后端服务器。其中一种方法是在第一个数据包的 TCP 选项中发送客户端 IP 地址。如果后端服务器使用 TCP 选项读取客户端 IP 地址,则设备使用 TCP 配置文件中的 TCP 选项号。IP 地址在 TCP 选项编号 28(可在设备服务上配置)中传递。 TCP 选项方法包括将客户端 IP 地址传送到后端服务器时的插入和转发功能。 在 TCP 选项配置中,设备添加 TCP 选项 28 以插入客户端 IP 地址并将其转发到后端服务器。以下是 Citrix ADC 设备中 TCP 选项配置的一些使用方案。 如果对进入 TCP 配置文件的流量启用此功能,则禁用多路复用。此外,如果在 TCP 配置文件中启用了 nsapimgr 和 clientip tcp-option,则优先选择 clientip tcp-option。

注意:

但是,如果为来到 TCP 配置文件的流量启用了客户端 IP TCP 选项,则在设备上禁用多路复用。

  • 学习原始客户端 IP 地址
  • 为网站选择语言
  • 将所选 IP 地址列入黑名单

以下是两种操作模式:

  • 插入。设备将客户端详细信息添加到 TCP 选项 28(可配置,但最好值为 28)字段中,并将其发送到后端服务器。
  • 转发。设备在 TCP 选项 28(可在设备服务的前端配置)中转发客户端详细信息。但是,可以根据在后端中配置的值修改后端的选项编号

注意:

在 TCP 或 HTTP 虚拟服务器的情况下,TCP 选项号将在透明模式下启用或不启用此功能的情况下转发。

限制

TFO、多路径 TCP 和 HTTP2 功能不支持 TCP 选项配置功能。

Citrix ADC 设备中的 TCP 选项配置方式

以下流程图显示了如何在 Citrix ADC 设备中为插入和转发操作配置 TCP 选项。

插入操作

组件交互如下所示:

  • 客户端向 Citrix ADC 发送请求。
  • 在 Citrix ADC 设备中,必须创建 TCP 配置文件、启用 TCP 选项功能并指定 TCP 选项号。

    注意:建议在 TCP 配置文件中将 TCP 选项号配置为 28。

  • 在插入操作中,Citrix ADC 会在绑定到服务的 TCP 选项 28 中插入客户端详细信息。然后,客户端详细信息将发送到后端服务器。如果传入流量是 HTTPS,则 TCP 选项中的客户端 IP 地址将在 SSL 客户端 hello 消息中发送,该消息是 TCP 级别的第一个数据包

转发操作:

转发操作

组件交互如下所示:

  • 客户端向 Citrix ADC 发送 HTTP/HTTPS 请求。
  • 在 Citrix ADC 设备上,如果是转发操作,则在负载平衡虚拟服务器或内容交换虚拟服务器上启用 TCP 选项,并在服务上启用该选项。设备接收虚拟服务器中指定的 TCP 选项编号的客户端信息,并将其转发到第一个数据包中添加的 TCP 选项编号(在服务中可配置)中的后端服务器

为插入操作配置 TCP 选项

按照以下步骤在 Citrix ADC 设备中配置 TCP 选项。

  1. 添加 TCP 配置文件。
  2. 为插入操作配置 TCP 选项
  3. 将 TCP 配置文件绑定到服务

添加 TCP 配置文件

在命令提示窗口中,键入:

add tcpprofile <name> -clientIpTcpOption (enabled | disabled> -clientIpTcpOptionNumber <positive_integer>

示例:

add tcprofile p1

为插入操作配置 TCP 选项

在命令提示窗口中,键入:

add tcpprofile <name> -clientIpTcpOption (enabled | disabled> -clientIpTcpOptionNumber <positive_integer>

示例:

add tcpprofile p1 -clientIpTcpOption ENABLED -clientIpTcpOptionNumber 28

添加服务

在命令提示窗口中,键入:

add service <name> <server name> <service type> <port>

示例:

add service service-http1 1.1.1.1 HTTP 80

将 TCP 配置文件绑定到服务

在命令提示窗口中,键入:

set service <name> –tcpprofileName <name>

示例:

set service s1 –tcpprofileName p1

注意:

服务的基本配置必须注意。

为转发操作配置 TCP 选项

按照下面给出的过程配置 TCP 配置文件中的 TCP 选项进行转发操作。

  1. 使用 TCP 选项号添加 TCP 配置文件
  2. 将 TCP 配置文件绑定到虚拟服务器
  3. 将 TCP 配置文件绑定到服务。

使用 TCP 选项号添加 TCP 配置文件

在命令提示窗口中,键入:

add tcpprofile <name> -clientIpTcpOption (enabled | disabled> -clientIpTcpOptionNumber <positive_integer>

示例:

add tcpprofile p1 -clientIpTcpOption ENABLED -clientIpTcpOptionNumber 29

将 TCP 配置文件绑定到虚拟服务器(负载平衡或内容切换)

在命令提示窗口中,键入:

set lb vserver <name> -tcpprofileName <name>

示例:

set lb vservice s1 –tcpprofileName p1

将 TCP 配置文件绑定到服务

在命令提示窗口中,键入:

set service <name> -tcpprofileName p1

示例:

set service s1 -tcpprofileName p1

使用 Citrix ADC GUI 配置 TCP 选项

  1. 导航到“系统”>“配置文件”。
  2. TCP 配置文件选项卡页中,单击添加
  3. 配置 TCP 配置文件页面中,配置以下参数: a. clientIptcpoption。TCP 选项来发送或接收客户端 IP 地址。 b. clientiptcpoptionnumber。接收客户端 IP 地址的可配置 TCP 选项号。

    配置客户端 TCP 选项

  4. 单击确定关闭