Citrix ADC

用例7:通过IP Over IP方式配置DSR负载分担

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

通过IP over IP配置,Citrix ADC设备和服务器不需要位于相同的第2层子网上。相反,Citrix ADC设备在将数据包发送到目标服务器之前对其进行封装。目的服务器接收到数据包后,将数据包解封装,然后将其响应直接发送给客户端。这通常被称为L3DSR。

在Citrix ADC设备上配置L3-DSR模式:

  • 创建负载均衡虚拟服务器.配置模式为IPTUNNEL,启用无会话跟踪。
  • 创建服务.为每个后端应用程序创建一个服务,并将服务绑定到虚拟服务器。
  • 配置解封装.配置Citrix ADC设备或后端服务器作为解封装器。

    注意:

    当您使用Citrix ADC设备时,解封装设置是ADC设备之间的IP隧道,后端执行L2DSR到实服务器。

配置负载均衡虚拟服务器

配置虚拟服务器来处理对应用程序的请求。指定与服务匹配的服务类型,或对多个服务使用ANY类型。配置转发方式为IPTUNNEL,虚拟服务器工作在无会话模式。配置任何您想要使用的负载均衡方法。

使用命令行接口为IP over IP DSR创建和配置负载均衡虚拟服务器

在命令提示符下输入以下命令为IP over IP DSR配置负载均衡虚拟服务器并验证配置:

add lb vserver  serviceType  IPAddress  Port < Port > -lbMethod  -m  -sessionless [ENABLED | DISABLED] show lb vserver  

例子:

在下面的示例中,我们选择了负载均衡方法sourceIPhash,并配置了无会话负载均衡。

add lb vserver vserver -lb -1 ANY 1.1.1.80 * -lbMethod SourceIPHash -m IPTUNNEL -sessionless ENABLED 

使用GUI为IP over IP DSR创建并配置负载均衡虚拟服务器

  1. 导航到流量管理>负载均衡>虚拟服务器
  2. 创建虚拟服务器,并指定重定向模式为基于IP隧道

配置IP over IP DSR业务

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

将服务分配为使用USIP模式,并将IPTUNNEL类型的监控器绑定到该服务,用于基于隧道的监控。

使用命令行接口为IP over IP DSR创建和配置服务

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

add service     -usip  add monitor   -destip  -iptunnel  bind service  -monitorName  

例子:

在下面的示例中,创建一个类型为IPTUNNEL的监视器。

add monitor mon_DSR PING -destip 1.1.1.80 -iptunnel yes add service svc_DSR01 -monitorName mon_DSR 

简化服务器和ADC设备路由的另一种方法是将ADC和服务器设置为使用来自同一子网的IP。这样做可以确保以隧道端点为目的地的任何流量都通过隧道发送。本例中以10.0.1.0/30为例。

注意:

监视器的目的是通过IP隧道到达每个服务器的环回,以确保隧道处于活动状态。如果服务不启动,请检查ADC和服务器之间的外部IP路由是否正常。验证内部IP地址是否通过IP隧道可达。服务器上可能需要路由,或者将策略路由添加到ADC,这取决于所选择的实现。

例子:

add ns ip 10.0.1.2 255.255.255.252 -vServer DISABLED add netProfile netProfile_DSR -srcIP 10.0.1.2 add lb monitor mon_DSR PING -LRTM DISABLED -destIP 1.1.1.80 -ipTunnel YES -netProfile netProfile_DSR 

使用GUI配置监视器

  1. 导航到流量管理>负载均衡>监控
  2. 创建一个监视器,并选择IP隧道

使用GUI为IP over IP DSR创建和配置服务

  1. 导航到流量管理>负载均衡>业务
  2. 创建一个服务,在设置选项卡上,选择使用源IP地址

使用命令行接口将服务绑定到负载均衡虚拟服务器

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

绑定lb vserver   

例子:

绑定lb vserver vserver - lb -1 Service-DSR-1 

使用GUI将服务绑定到负载均衡虚拟服务器

  1. 导航到流量管理>负载均衡>虚拟服务器
  2. 打开虚拟服务器,单击服务节将服务绑定到虚拟服务器。

在隧道报文的Outer头中使用客户端IP地址

Citrix ADC支持使用IP隧道将client-source IP地址作为与直接服务器返回模式相关的隧道报文外头的源IP地址。支持IPv4的DSR和IPv6隧道模式的DSR。要启用此特性,请启用使用客户端源IP地址参数用于IPv4或IPv6。此设置全局应用于使用IP隧道的所有DSR配置。

使用命令行方式配置client-source IP地址作为源IP地址

在命令提示符下,输入:

  • set iptunnelparam -useclientsourceip [YES | NO]
  • 显示iptunnelparam

以客户端源IP地址为源IP地址,通过图形化界面实现

  1. 导航到System >网络
  2. 设置选项卡上,单击IPv4隧道全局设置
  3. 配置IPv4隧道全局参数页面,选择使用客户端源IP复选框。
  4. 点击好吧

使用CLI命令,以客户端源IP地址作为源IP地址

在命令提示符下,输入:

  • set ip6tunnelparam -useclientsourceip [YES | NO]
  • 显示ip6tunnelparam

以客户端源IP地址为源IP地址,通过图形化界面实现

  1. 导航到System >网络
  2. 设置选项卡上,单击IPv6隧道全局设置
  3. 配置IPv6隧道全局参数页面,选择使用客户端源IP复选框。
  4. 点击好吧

被膜剥除术配置

可以将Citrix ADC设备或后端服务器配置为解封装。

Citrix ADC解封装

当Citrix ADC设备被用作解封装时,必须在Citrix ADC设备中创建IP隧道。详情请参见配置IP隧道

Citrix ADC解封装设置由以下两个虚拟服务器组成:

  • 第一个虚拟服务器接收封装的数据包并移除外层IP封装。
  • 第二台虚拟服务器拥有前端ADC上原有业务的IP,通过MAC转换将报文通过绑定业务的MAC地址转发到后端。这种设置通常称为L2DSR。确保在该虚拟服务器上禁用ARP。

示例设置:

下图显示了使用ADC设备的解封装设置。

ADC解封装设置

安装所需的完整配置如下所示。

前端ADC配置:

2.2.2.80 ANY * -usip YES -useproxyport NO add lb vserver vip_DSR_ENCAP ANY 1.1.1.80 * -lbMethod sourceeiphash -m IPTUNNEL -sessionless ENABLED bind lb vserver vip_DSR_ENCAP svc_DSR01 

后端ADC配置:

add ipTunnel DSR-IPIP 1.1.1.100 255.255.255.255 * add service svc_DSR01_01 2.2.2.101 ANY * -usip YES -useproxyport NO add service svc_DSR01_02 2.2.2.102 ANY * -usip YES -useproxyport NO add service svc_DSR01_03 2.2.2.103 ANY * -usip YES -useproxyport NO add service svc_DSR01_03 2.2.2.103 ANY * -lbMethod SOURCEIPHASH -m ipTunnel -sessionless ENABLED -netProfile netProf_DSR_MBF_noIP add ns ip 1.1.1.80 255.255.255.255 -type VIP -arp DISABLED -snmp DISABLED add lb vserver vs_DSR_Relay ANY 1.1.1.80*-lbMethod SOURCEIPHASH -m MAC -sessionless ENABLED bind lb vserver vs_DSR_DECAP svc_DSR01_01 bind lb vserver vs_DSR_DECAP svc_DSR01_02 bind lb vserver vs_DSR_DECAP svc_DSR01_03 bind lb vserver vip_DSR_Relay svc_DSR01_01 bind lb vserver vip_DSR_Relay svc_DSR01_02 bind lb vserver vip_DSR_Relay svc_DSR01_03 add netProfile netProf_DSR_MBF_noIP -MBF ENABLED add lb monitor mon_DSR_MAC PING -netProfile netProf_DSR_MBF_noIP bind service svc_DSR01_01 -monitorName mon_DSR_MAC bind service svc_DSR01_02 -monitorName mon_DSR_MAC bind service svc_DSR01_03 -monitorName mon_DSR_MAC 

下面的例子展示了一个使用Ubuntu和Red Hat服务器运行apache2的测试设置。这些命令设置在每个后端服务器上。

Sudo IP地址add 1.1.1.80 255.255.255.255 dev lo Sudo sysctl net.ipv4.conf.all。Arp_ignore =1 sudo sysctl net.ipv4.conf.all。Arp_announce =2 sudo sysctl net.ipv4.conf.eth4。rp_filter=2(该接口有到ADC的路由的外部IP) sudo sysctl net.ipv4.conf.all。Forwarding =1 sudo IP link set dev lo arp on 

后端服务器解封装

当使用后端服务器作为解封装时,后端配置根据服务器操作系统类型的不同而不同。可以按照以下步骤将后端服务器配置为解封装:

  1. 为业务IP配置一个IP类型的回环接口。
  2. 创建tunnel接口。
  3. 添加通过tunnel接口的路由。
  4. 请根据流量需求配置接口。

注意:

Windows操作系统服务器本身不能进行IP隧道,因此这些命令仅作为基于Linux的系统的示例。第三方插件可用于Windows操作系统服务器,但这超出了本例的范围。

下图显示了使用后端服务器的解封装设置。

服务器解封装设置

示例配置:

在此例中,1.1.1.80为Citrix ADC的VIP地址,2.2.2.10-2.2.2.12为后端服务器的IP地址。在loopback接口中配置VIP地址,并通过tunnel接口添加路由。监控器使用服务器IP,并使用隧道端点在IP隧道上对监控器数据包进行隧道传输。

安装所需的完整配置如下所示。

前端ADC配置:

下面的配置创建了一个使用隧道端点作为源的监视器。然后通过隧道向业务IP地址发送ping报文。

add ns ip 10.0.1.2 255.255.255.252 -vServer DISABLED add netProfile netProfile_DSR -srcIP 10.0.1.2 add lb monitor mon_DSR PING -LRTM DISABLED -destIP 1.1.1.80 -ipTunnel YES -netProfile netProfile_DSR 

下面的配置为使用原始源IP地址的业务创建一个VIP。然后将流量通过IP隧道转发到后端服务器。

add service svc_DSR01 2.2.2.10 ANY * -usip YES -useproxyport NO bind service svc_DSR01 -monitorName mon_DSR add service svc_DSR02 2.2.2.11 ANY * -usip YES -useproxyport NO bind service svc_DSR02 -monitorName mon_DSR add service svc_DSR03 2.2.2.12 ANY * -usip YES -useproxyport NO bind service svc_DSR03 -monitorName mon_DSR add lb vserver vip_DSR_ENCAP ANY 1.1.1.80 * -lbMethod SOURCEIPHASH -m IPTUNNEL -sessionless ENABLED bind lb vserver vip_DSR_ENCAP svc_DSR01 bind lb vserver vip_DSR_ENCAPsvc_DSR02绑定lb vserver vip_DSR_ENCAP svc_DSR03 

各服务器后端服务器配置:

后端服务器需要执行以下命令来接收IPIP数据包,删除外部封装,然后从环回响应到原始客户端IP。这样做可以确保客户端接收到的数据包中的IP地址与原始请求中的IP地址匹配。

Modprobe ipip sudo IP addr add 1.1.1.80 255.255.255.255 dev lo nmcli connection add type IP -tunnel IP -tunnel。模式ipip con-name tun0 ifname tun0 remote 198.51.100.5 local 203.0.113.10 nmcli connection modify tun0 ipv4。解决10.0.1.1/30 nmcli连接的问题。Arp_ignore =1 sudo sysctl net.ipv4.conf.all。Arp_announce =2 sudo sysctl net.ipv4.conf.tun0。Rp_filter =2 sudo sysctl net.ipv4.conf.all。转发=1 sudo IP link set dev lo arp off 
用例7:通过IP Over IP方式配置DSR负载分担