ADC

“TCP 中的客户端 IP 地址”选项

NetScaler 设备使用多种方式将客户端信息发送到后端服务器。其中一种方法是在 TCP 选项中发送客户端 IP 地址。如果后端服务器使用 TCP 选项读取客户端 IP 地址,则设备将使用 TCP 配置文件中的 TCP 选项编号。

NetScaler 设备仅在以下数据包中发送 TCP 选项标头中的客户端 IP 地址:

  • 三次握手的最后 ACK 数据包
  • 第一个数据包。

以下是 NetScaler 设备中 TCP 选项配置的一些使用场景。

  • 学习原始客户端 IP 地址
  • 为网站选择语言
  • 阻止列出选定的 IP 地址

以下是在 TCP 选项中发送客户端 IP 地址的两种操作模式:

  • 插入。在插入模式下,设备会在 TCP 选项 28(可配置,但首选值为 28)字段中添加客户端详细信息,然后将其发送到后端服务器。
  • 向前。在转发模式下,虚拟服务器会从代理设备接收 TCP 选项中的客户端 IP 详细信息。 对于虚拟服务器,必须配置代理设备用于发送客户端 IP 详细信息的相同的 TCP 选项。

    然后,设备将 TCP 选项字段中的客户端详细信息发送到后端服务器。对于表示后端服务器的服务,您可以设置任何 TCP 选项,但首选值为 28。

NetScaler 设备还支持在 TCP 选项中发送客户端端口以进行插入模式配置。

备注:

  • 如果在绑定的 TCP 配置文件上启用了客户端 IP TCP 选项,则虚拟服务器上接收的流量不支持多路复用。

  • 对于 TCP 或 HTTP 虚拟服务器,无论是否在透明模式下启用此功能,都会转发 TCP 选项编号。

限制

TFO、MultiPath TCP 和 HTTP2 功能不支持 TCP 选项配置功能。

如何在 NetScaler 设备中配置 TCP 选项

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

插入操作:

插入操作

组件的交互方式如下:

  • 客户端向 NetScaler 发送请求。
  • 在“插入”操作中,NetScaler 设备将客户端 IP 地址和端口插入到后端服务器的以下数据包的已配置 TCP 选项中。

    • 三次握手的最后 ACK 数据包
    • 第一个数据包

    注意:

    如果传入流量是 HTTPS,则 TCP 选项中的客户端 IP 地址和客户端端口将在 SSL 客户端 hello 消息中发送,这是 TCP 级别的第一个数据包。

向前操作:

转发操作

组件的交互方式如下:

  • 客户端向 NetScaler 设备发送 HTTP/HTTPS 请求。
  • 对于 Forward 操作,TCP 选项在负载平衡虚拟服务器或内容交换虚拟服务器上启用,并且在服务上也启用。设备接收虚拟服务器中指定的 TCP 选项编号中的客户端详细信息。
  • 然后,NetScaler 设备将客户端 IP 地址和端口插入到后端服务器的以下数据包的已配置 TCP 选项(用于服务)中。

    • 三次握手的最后 ACK 数据包
    • 第一个数据包

为插入操作配置 TCP 选项

为插入操作配置 TCP 选项包括以下步骤:

  1. 配置 TCP 配置文件。启用客户端 IP TCP 选项 (clientIpTcpOption),然后指定 TCP 选项编号 (clientIpTcpOptionNumber)。或者,启用 sendClientPortInTcpOption 以在 TCP 选项标头中发送客户端端口。

    注意:

    Citrix 建议在 TCP 配置文件中将 TCP 选项编号配置为 28。

  2. 将 TCP 配置文件绑定到服务

要使用 CLI 配置 TCP 配置文件,请执行以下操作

在命令提示符下,键入:

  • add tcpprofile <name> -clientIpTcpOption (ENABLED | DISABLED) -clientIpTcpOptionNumber <positive_integer> -sendClientPortInTcpOption (ENABLED | DISABLED)
  • show tcpprofile <name>

要使用 CLI 将 TCP 配置文件绑定到服务,请执行以下操作

在命令提示符下,键入:

  • set service <name> –tcpprofileName <name>
  • show service <name>

示例配置

add tcpprofile TCP-PROFILE-1 -clientIpTcpOption ENABLED -clientIpTcpOptionNumber 28 -sendClientPortInTcpOption ENABLED
set service SERVICE-1 –tcpprofileName TCP-PROFILE-1
<!--NeedCopy-->

为转发操作配置 TCP 选项

为转发操作配置 TCP 选项包括以下步骤:

  1. 配置 TCP 配置文件。启用客户端 IP TCP 选项 (clientIpTcpOption),然后指定 TCP 选项编号 (clientIpTcpOptionNumber)。
  2. 将 TCP 配置文件绑定到负载平衡或内容交换虚拟服务器
  3. 将 TCP 配置文件绑定到服务。

要使用 CLI 配置 TCP 配置文件,请执行以下操作

在命令提示符下,键入:

  • add tcpprofile <name> -clientIpTcpOption (ENABLED | DISABLED) -clientIpTcpOptionNumber <positive_integer>
  • show tcpprofile <name>

要使用 CLI 将 TCP 配置文件绑定到负载平衡或内容交换虚拟服务器,请执行以下操作

在命令提示符下,键入:

  • set lb vserver <name> -tcpprofileName <name>
  • show lb vserver <name>

要使用 CLI 将 TCP 配置文件绑定到服务,请执行以下操作

在命令提示符下,键入:

  • set service <name> -tcpprofileName p1
  • show service <name>

示例配置

add tcpprofile TCP-PROFILE-2 -clientIpTcpOption ENABLED -clientIpTcpOptionNumber 29
set lb vserver LBVS-2 –tcpprofileName TCP-PROFILE-2
set service SERVICE-2 -tcpprofileName TCP-PROFILE-2
<!--NeedCopy-->

使用 NetScaler GUI 配置 TCP 选项

  1. 导航到“系统”>“配置文件”。
  2. 在“TCP 配置文件”选项卡页中,单击“添加”。
  3. 配置 TCP 配置文件 页面中,配置以下参数:

    • clientIptcpoption。启用 TCP 选项以发送或接收客户端 IP 地址。
    • clientiptcpoptionnumber。设置 TCP 选项编号。
    • sendClientPortInTcpOption 在 TCP 选项中发送客户端端口以进行插入模式配置。
  4. 单击确定,然后关闭
“TCP 中的客户端 IP 地址”选项