用例 7:通过 IP 在 DSR 模式下配置负载平衡

您可以通 使用 IP 隧道(也称为 IP 配置)将 Citrix ADC 设备配置为跨第 3 层网络使用直接服务器返回 (DSR) 模式。与 DSR 模式的标准负载平衡配置一样,服务器可以直接响应客户端,而不是使用 Citrix ADC 设备的返回路径,从而改善响应时间和吞吐量。与标准 DSR 模式一样,Citrix ADC 设备监视服务器并对应用程序端口执行运行状况检查。

通过 IP 配置,Citrix ADC 设备和服务器不需要位于同一层 2 子网中。相反,Citrix ADC 设备在将数据包发送到目标服务器之前封装这些数据包。目标服务器收到数据包后,它会解压包,然后将其响应直接发送到客户端。

要在 Citrix ADC 设备上配置 IP 基于 IP DSR 模式,必须执行以下操作:

配置负载平衡虚拟服务器

配置虚拟服务器以处理对应用程序的请求。分配任何服务类型并将转发方法设置为 IPTunnel。或者,将虚拟服务器配置为在无会话模式下运行。您可以配置要使用的任何负载平衡方法。

使用命令行界面创建和配置 IP DSR 的负载平衡虚拟服务器

在命令提示符处,键入以下命令以配置 IP DSR 的负载平衡虚拟服务器并验证配置:

add lb vserver <name> serviceType <serviceType> IPAddress <ip> Port <port> -lbMethod <method> -m <ipTunnelTag> -sessionless <sessionless>

show lb vserver <name>

示例:

在以下示例中,我们选择了负载平衡方法作为 Sourcephash 并配置了无会话负载平衡。

add lb vserver Vserver-LB-1 ANY 10.102.29.60 * -lbMethod SourceIPHash -m IPTUNNEL -sessionless enabled

使用配置实用程序创建和配置 IP DSR 的负载平衡虚拟服务器

  1. 导航到 Traffic Management(流量管理)> Load Balancing(负载平衡)> Virtual Servers(虚拟服务器)。
  2. 创建虚拟服务器,并将重定向模式指定为基于 IP 隧道。

为 IP DSR 配置服务

创建负载平衡服务器后, 您必须为每个应用程序配置一个服务. 该服务处理从 Citrix ADC 设备到这些应用程序的流量,并允许 Citrix ADC 设备监视每个应用程序的运行状况。

您可以分配任何的服务类型并将其配置为 USIP 模式。或者,您还可以将类型为 IPTINHINTINTINGINT 的监视器绑定到服务,以便进行基于隧道的监视。

使用命令行界面创建和配置 IP DSR 服务

在命令提示符下,键入以下命令以创建服务,并可选择创建监视器并将其绑定到服务:

add service <serviceName> <serverName> <serviceType> <port> -usip <usip>

add monitor <monitorName> <monitorType> -destip <ip> -iptunnel <iptunnel>

bind service <serviceName> -monitorName <monitorName>

示例:

在下面的示例中,我们正在创建一个类型为 IPTunnel 的监视器:

add monitor mon-1 PING -destip 10.102.29.60 -iptunnel yes
add service Service-DSR-1 10.102.30.5 ANY * -usip yes
bind service Service-DSR-1 -monitorName mon-1

使用配置实用程序配置监视器

  1. 导航到流量管理 > 负载平衡 > 监视器。
  2. 创建监视器,然后选择 IP 隧道。

使用配置实用程序创建和配置 IP DSR 服务

  1. 导航到 Traffic Management(流量管理)> Load Balancing(负载平衡)> Services(服务)。
  2. 创建服务,然后在“设置”中选择“使用源 IP 地址”。

使用命令行界面将服务绑定到负载平衡虚拟服务器

在命令提示符处键入以下命令:

bind lb vserver <name> <serviceName>

示例:

bind lb vserver Vserver-LB-1 Service-DSR-1

使用配置实用程序将服务绑定到负载平衡虚拟服务器

  1. 导航到 Traffic Management(流量管理)> Load Balancing(负载平衡)> Virtual Servers(虚拟服务器)。
  2. 打开虚拟服务器,然后单击“服务”部分将服务绑定到虚拟服务器。

在隧道数据包的外部标题中使用客户端 IP 地址

Citrix ADC 支持使用客户端 IP 地址作为与使用 IP 隧道的直接服务器返回模式相关的隧道数据包外部标题中的源 IP 地址。使用 IPv4 的 DSR 和具有 IPv6 隧道模式的 DSR 支持此功能。要启用此功能,请为 IPv4 或 IPv6 启 用使用客户端源 IP 地址 参数。此设置将全局应用于所有使用 IP 隧道的 DSR 配置。

使用 CLI 使用客户端 IP 地址作为 IPv4 隧道数据包外部标头上的源 IP 地址:

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

  • set iptunnelparam -useclientsourceip [YES | NO]
  • show iptunnelparam

使用 CLI 使用客户端源 IP 地址作为 IPv6 隧道数据包外部标头上的源 IP 地址:

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

  • set ip6tunnelparam -useclientsourceip [YES | NO]
  • show ip6tunnelparam

以下是一个使用 IPv4 隧道的 DSR 模式下的负载平衡配置示例。LBVS-IP-1 是负载平衡虚拟服务器,和服务 DSR-IP-1 和服务 DSR-IP-2 绑定到 LBVS-IP-1。

```
> set iptunnelparam -useclientsourceip YES


Done

>add service SERVICE-DSR-IPIP-1 192.0.2.91 ANY * -usip yes


Done

> add service SERVICE-DSR-IPIP-2 192.0.2.92 ANY * -usip yes


Done

>add lb vserver LBVS-IPIP-1 ANY 203.0.113.9 * -m IPTUNNEL


Done

>bind lb vserver LBVS-IPIP-1 Service-DSR-1


Done

>bind lb vserver LBVS-IPIP-1 Service-DSR-2


Done
```

去胶囊器配置

  • 将 Citrix ADC 设备用作去胶囊器时,必须在 Citrix ADC 设备中创建 IP 隧道。有关详细信息,请参阅 配置 IP 隧道

    示例配置:

     add lb vserver v1 any 1.1.1.1 * -m IPTUNNEL
    
     add service s1 2.2.2.2 ANY *
    
     bind lb vserver v1 s1
    
     add iptunnel tun1 <snip_in_encap> netmask *
    
     add ns ip 1.1.1.1 255.255.255.255 –type vip –arp disabled
    
     add lb vserver v1 any 1.1.1.1 *
    
     add service s1 <actualserverip> ANY *
    
     bind lb vserver v1 s1
    
  • 当后端服务器用作去胶囊器时,后端配置因服务器类型而异。将后端服务器配置为去胶囊器所涉及的步骤是:

    1. 配置回路接口。
    2. 通过隧道界面添加路径。

    注意:确保隧道模块已安装在系统中。

    示例配置:

    在此示例中,1.1.1.1 是 Citrix ADC 虚拟 IP (VIP) 地址,2.2.2.2 是后端服务器 IP 地址。

    VIP 地址在环回接口中配置,并通过隧道接口添加路由。模型探测器 ipip 命令用于启用隧道接口。

     add lb vserver v1 ANY 1.1.1.1 80 -m IPTUNNEL
    
     add service svc1 2.2.2.2 ANY 80 -usip YES -useproxyport NO
    
     bind lb vserver v1 svc1
    
     ifconfig lo inet 1.1.1.1 netmask 255.255.255.255
    
     modprobe ipip
    
     echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
    
     echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce
    
     ifconfig tunl0 1.1.1.1 netmask 255.255.255.255 up
    
     route add -host 1.1.1.1 dev tunl0