Citrix ADC

代理协议

代理协议跨Citrix ADC设备安全地将客户端详细信息从客户端传输到服务器。设备添加带有客户端详细信息的代理协议报头,并将其转发给后端服务器。以下是Citrix ADC设备中代理协议的一些使用场景。

  • 学习原始客户端IP地址
  • 为网站选择语言
  • 阻止列出所选IP地址
  • 记录和收集统计信息。

以下是三种操作模式:

  • 插入。设备插入客户端详细信息并将其发送到后端服务器。
  • 前进。设备将客户端详细信息转发到后端服务器。
  • 剥夺了。设备存储用于记录日志的客户端详细信息。另外,如果后端服务器不支持代理协议,则使用重写策略配置将客户端详细信息发送到服务器

限制

TFO (TCP Fast Open)和MultiPath TCP特性不支持代理协议。该特性仅支持Citrix ADC设备执行TCP连接终止的服务。它不支持其他服务,例如“ANY”。

代理协议如何在Citrix ADC设备中工作

下面的流程图显示了如何跨Citrix ADC设备配置代理协议,用于插入、转发和剥离操作:

插入操作

插入操作

组件交互如下:

  • 在Citrix ADC实例中,必须在网络配置文件中启用代理协议,并将其绑定到服务。
  • 在Insert操作中,Citrix ADC添加带有客户端连接详细信息的代理标头,并将其转发给后端服务器。
  • 在发送端,设备根据CLI配置决定代理协议版本。

转发

转发

组件交互如下:

  • 客户端将请求连同代理标头一起发送到Citrix ADC。设备动态地标识版本。
  • 在Citrix ADC设备中,这是一个Forward操作。在负载均衡虚拟服务器或内容切换虚拟服务器上启用代理协议,并在业务上启用代理协议。设备接收代理标头并将标头详细信息转发给后端服务器。
  • 如果代理报头详细信息的格式无效,设备将重置连接。
  • 在发送端,设备根据CLI配置决定代理协议版本。

剥去操作

剥去操作

组件交互如下:

  • 客户端向Citrix ADC设备发送请求和代理标头。
  • 在Citrix ADC设备中,如果是剥离操作,则设备转发从代理协议获得的客户端信息,并使用重写策略表达式将其插入HTTP报头。
  • 源IP地址、目的IP地址、源端口和目的端口等客户端详细信息通过重写策略表达式添加到HTTP报头中。重写策略计算表达式,如果“true”,则触发相应的重写策略操作。客户端详细信息以HTTP报头的形式转发给后端服务器。
  • 如果代理报头详细信息的格式无效,设备将重置连接。

代理协议版本格式

代理协议版本有两种格式。设备根据传入的数据长度决定使用一种格式。有关详细信息,请参见代理协议招标书。

  1. 代理协议版本1格式

    代理tcp4 / tcp6 / unknown < src ip > < dst ip > < src端口> < dst端口>

    • PROXY ->代理报头版本-1的唯一字符串格式。
    • 支持TCP over IPv4和TCP over IPv6协议。对于其余的协议,这是UNKNOWN。
    • SRC IP -报文的源IP(原始客户端IP)地址。
    • DST IP -报文的目的IP地址。
    • SRC port -报文的源端口。
    • DST端口-报文的目的端口。
  2. 代理协议版本2格式

    0D 0A 0D 0A 00 0D 0A 51 55 49 54 0A <13字节> <14字节> <15-16字节> <17字节起>

    • d0a 0d0a 00 0d0a 51 55 49 54 0A ->代理报头版本-2的唯一二进制字符串。
    • 支持TCP over IPv4和TCP over IPv6协议。对于其余的协议,这是UNKNOWN。
    • 第十三字节-协议版本和命令。
    • 第十四字节-地址和协议族。
    • 15-16字节-网络顺序的地址长度。
    • 第十七字节起-地址信息在网络顺序- src IP, dst IP, src端口,dst端口。

在Citrix ADC设备中配置代理协议

完成以下步骤,在Citrix ADC设备中配置代理协议。

  1. 启用代理协议为全局。
  2. 为插入操作配置代理协议
  3. 配置转发操作的代理协议
  4. 配置Strip操作的代理协议
  5. 无操作时配置代理协议

启用代理协议为全局

在命令提示符下,输入以下命令:

设置ns参数-proxyProtocol ENABLED

为插入操作配置代理协议

要配置用于插入操作的代理协议,必须在负载均衡虚拟服务器上启用或禁用代理协议,并在服务上启用代理协议。

为负载均衡虚拟服务器添加禁用代理协议的网络配置文件

在命令提示符下,输入以下命令:

add netprofile -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion . add netprofile -proxyProtocol ENABLED/DISABLED>

例子:

添加netprofile proxyprofile-1 -proxyProtocol DISABLED - proxyprotocolversion V1

注意:

如果在设备上禁用代理协议,则不需要设置协议版本参数。

添加为服务启用代理协议的网络配置文件

在命令提示符下,输入以下命令:

add netprofile -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion . add netprofile -proxyProtocol ENABLED/DISABLED>

例子:

添加netprofile proxyprofile-2 -proxyProtocol ENABLED -proxyprotocoltxversion V1

在代理层为Citrix ADC设备添加负载均衡虚拟服务器

在命令提示符下,输入以下命令:

add lb vserver @ [(@ )]

例子:

添加lbvserver lbvserver-1 HTTP 1.1.1.1 80 .单击“添加”

在代理层为Citrix ADC设备添加HTTP服务

在命令提示符下,输入以下命令:

add service @ (@ | @) . add service @ (@ | @

例子:

添加服务http-service-1 2.2.2.1 http 80

在Citrix ADC设备中使用负载平衡虚拟服务器设置网络配置文件

在命令提示符下,输入以下命令:

设置lb vserver -netprofile

例子:

set lbvserver lbvserver-1 -netprofile proxyProfile-1

在Citrix ADC设备中使用HTTP服务设置网络配置文件

在命令提示符下,输入以下命令:

设置service -netprofile

例子:

设置service http-service-1 -netprofile proxyProfile-1

配置代理协议进行转发操作

为代理层的下一个Citrix ADC实例配置Forward操作的代理协议。您必须启用或禁用该协议,并绑定到虚拟服务器或服务。

为负载均衡虚拟服务器添加启用代理协议的网络配置文件

在命令提示符下,输入以下命令:

add netprofile -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion . add netprofile -proxyProtocol ENABLED/DISABLED>

例子:

添加netprofile proxyprofile-3 -proxyProtocol ENABLED -proxyprotocoltxversion V1

为服务添加启用代理协议的网络配置文件

在命令提示符下,输入以下命令:

add netprofile -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion . add netprofile -proxyProtocol ENABLED/DISABLED>

例子:

添加netprofile proxyprofile-4 -proxyProtocol ENABLED -proxyprotocoltxversion V1

在代理层为Citrix ADC设备添加负载均衡虚拟服务器

在命令提示符下,输入以下命令:

add lb vserver @ [(@ )]

例子:

添加lbvserver lbvserver-2 HTTP 2.2.2.2 80 .单击“添加”

在代理层为Citrix ADC设备添加HTTP服务

在命令提示符下,输入以下命令:

add service @ (@ | @) . add service @ (@ | @

例子:

添加服务http-service-2 3.3.3.1 http 80

在Citrix ADC设备中使用负载平衡虚拟服务器设置网络配置文件

在命令提示符下,输入以下命令:

设置lb vserver -netprofile

例子:

配置lbvserver lbvserver-2 -netprofile proxyProfile-3

在Citrix ADC设备中使用HTTP服务设置网络配置文件

在命令提示符下,输入以下命令:

设置service -netprofile

例子:

设置service http-service-2 -netprofile proxyProfile-4

配置条带操作代理协议

如果要配置条带操作的代理协议,必须在负载均衡虚拟服务器上启用代理协议,在业务上禁用代理协议。

为虚拟服务器添加启用代理协议的网络配置文件

在命令提示符下,输入以下命令:

add netprofile -proxyProtocol ENABLED> -proxyprotocoltxversion .使用实例

例子:

添加netprofile proxyprofile-5 -proxyProtocol ENABLED -proxyprotocoltxversion V1

在代理层为Citrix ADC设备添加负载均衡或内容切换虚拟服务器

在命令提示符下,输入以下命令:

add lb vserver @ [(@ )]

例子:

添加lbvserver lbvserver-3 HTTP 2.2.2.2 80 .单击“添加”

在代理层为Citrix ADC设备添加HTTP服务

在命令提示符下,输入以下命令:

add service @ (@ | @) . add service @ (@ | @

例子:

添加服务http-service-3 3.3.3.1 http 80

在Citrix ADC设备中使用负载平衡或内容切换虚拟服务器设置网络配置文件

在命令提示符下,输入以下命令:

设置lb vserver -netprofile

例子:set lbvserver lbvserver-3 -netprofile proxyProfile-5

通过Citrix ADC GUI配置代理协议

  1. 导航到系统>设置>更改全局系统设置
  2. 配置系统全局配置参数页面,选择代理协议复选框。
  3. 点击好吧而且关闭

    代理协议页面

  4. 导航到系统>网络>网络配置文件
  5. 在详细信息窗格中,单击添加为负载均衡虚拟服务器创建一个网络配置文件。
  6. 网络配置文件页,设置以下参数:
    1. 的名字。net配置文件的名称。
    2. 代理协议。启用或禁用负载均衡虚拟服务器的代理协议。
    3. 代理协议TX版本。请根据输入数据格式选择“V1”或“V2”。
  7. 点击好吧

    局部的图片

  8. 导航到交通管理>负载平衡>虚拟服务器
  9. 在详细信息窗格中,单击添加
  10. 负载均衡虚拟服务器页面中,设置基本参数。
  11. 高级设置部分中,选择配置文件
  12. 配置文件部分,单击铅笔图标。
  13. 选择网络配置文件,单击好吧
  14. 点击完成

    局部的图片

  15. 导航到交通管理>负载平衡>服务
  16. 在详细信息窗格中,单击添加
  17. 负载均衡业务页,设置基本参数。
  18. 高级设置部分中,选择配置文件
  19. 配置文件部分,单击铅笔图标。
  20. 选择网络配置文件,单击好吧
  21. 点击完成

注意:

如果有多个Citrix ADC设备作为代理层的一部分,则必须在每个设备上为Forward操作设置代理协议配置。

代理协议配置