Citrix ADC

三明治环境

以三明治模式进行 Citrix ADC 部署可以在两个方向上通过防火墙对网络流量进行负载均衡:入口(从外部进入网络的流量,例如互联网)和出口(从网络传送到互联网的流量)。

在此设置中,Citrix ADC 位于一组防火墙的每一侧。位于防火墙和 Internet 之间的 Citrix ADC(称为处理入口流量的外部 Citrix ADC)会根据配置的方法选择最佳防火墙。防火墙和专用网络之间的 Citrix ADC(称为内部 Citrix ADC)跟踪从中接收会话的初始数据包的防火墙。然后,它确保该会话的所有后续数据包都发送到同一防火墙。

内部 Citrix ADC 可以配置为常规流量管理器,以便在专用网络服务器之间进行负载平衡流量。此配置还允许来自专用网络(导出)的流量在防火墙之间进行负载平衡。

下图显示了三明治防火墙负载平衡环境。

图 1. 防火墙负载平衡(三明治)

防火墙三明治

服务类型“任何”将 Citrix ADC 配置为接受所有流量。

要利用与 HTTP 和 TCP 相关的优势,请使用 HTTP 或 TCP 类型配置服务和虚拟服务器。要使 FTP 工作,请使用 FTP 类型配置服务。

在三明治环境中配置外部 Citrix ADC

执行以下任务以在三明治环境中配置外部 Citrix ADC

  • 启用负载平衡功能。
  • 为每个防火墙配置通配符服务。
  • 为每个通配符服务配置监视器。
  • 为来自 Internet 的流量配置通配符虚拟服务器。
  • 在 MAC 重写模式下配置虚拟服务器。
  • 将服务绑定到通配符虚拟服务器。
  • 保存并验证配置。

启用负载平衡功能

使用命令行接口启用负载平衡

在命令提示符处,键入以下命令以启用负载平衡并验证配置:

enable ns feature LB
show ns feature
<!--NeedCopy-->

示例:

> enable ns feature LoadBalancing
 Done
> show ns feature

        Feature                        Acronym              Status
        -------                        -------              ------
 1)     Web Logging                    WL                   OFF
 2)     Surge Protection               SP                   ON
 3)     Load Balancing                 LB                   ON
 .
 .
 .
 24)    NetScaler Push                 push                 OFF
 Done
<!--NeedCopy-->

使用配置实用程序启用负载平衡

导航到 系统 > 设置 ,然后在 配置基本功能中选择 负载平衡

为每个防火墙配置通配符服务

使用命令行界面为每个防火墙配置通配符服务

在命令提示符下,键入:

add service <name> <serverName> ANY *
<!--NeedCopy-->

示例:

add service Service-HTTP-1 10.102.29.5 ANY *
<!--NeedCopy-->

使用配置实用程序为每个防火墙配置通配符服务

导航到 流量管理 > 负载平衡 > 服务 并添加服务。在 协议 字段中指定 任何 ,在端口字段中指定 *。

为每个通配符服务配置监视器

PING 监视器默认绑定到服务。您需要配置透明监视器,以便通过单个防火墙监视受信任端的主机。然后,您可以将透明监视器绑定到服务。默认 PING 监视器仅监视 Citrix ADC 设备与上游设备之间的连接性。透明监视器监视从设备到拥有监视器中指定的目标 IP 地址的设备的路径中存在的所有设备。如果未配置透明监视器,且防火墙的状态为“UP”,但该防火墙中的下一个跃点设备已关闭,则设备会在执行负载平衡时包含防火墙并将数据包转发到防火墙。但是,数据包不会传递到最终目标,因为下一个跃点设备之一已关闭。通过绑定透明监视器,如果任何设备(包括防火墙)关闭,则服务将被标记为“关闭”,并且在设备执行防火墙负载平衡时不包括防火墙。

绑定透明监视器将覆盖 PING 监视器。要配置 PING 监视器以及透明监视器,在创建和绑定透明监视器之后,您需要将 PING 监视器绑定到服务。

使用命令行界面配置透明监视器

在命令提示符下,键入以下命令以配置透明监视器并验证配置:

add lb monitor <monitorName> <type> [-destIP <ip_addr|ipv6_addr|*>] [-transparent (YES | NO )]
bind lb monitor <monitorName> <serviceName>
<!--NeedCopy-->

示例:

add monitor monitor-HTTP-1 HTTP -destip 10.10.10.11 -transparent YES
bind monitor monitor-HTTP-1 fw-svc1
To bind a PING monitor, type the following command:
bind monitor PING fw-svc1
<!--NeedCopy-->

使用配置实用程序创建和绑定透明监视器

导航到 “ 流量管理” > “负载平衡” > “监视器”,然后创建并绑定透明监视器。

为来自 Internet 的流量配置通配符虚拟服务器

使用命令行界面为来自 Internet 的流量配置通配符虚拟服务器

在命令提示符下,键入:

add lb vserver <name> ANY * *
<!--NeedCopy-->

示例:

add lb vserver Vserver-LB-1 ANY * *
<!--NeedCopy-->

使用配置实用程序为来自 Internet 的流量配置通配符虚拟服务器

导航到 流量管理 > 负载平衡 > 虚拟服务器 ,然后创建通配符虚拟服务器。在 协议 字段中指定 任何 ,在端口字段中指定 *。

在 MAC 重写模式下配置虚拟服务器

使用命令行界面在 MAC 重写模式下配置虚拟服务器

在命令提示符下,键入:

set lb vserver <name>@ -m <RedirectionMode>
<!--NeedCopy-->

示例:

set lb vserver Vserver-LB-1 -m MAC
<!--NeedCopy-->

使用配置实用程序在 MAC 重写模式下配置虚拟服务器

  1. 导航到 流量管理 > 负载平衡 > 虚拟服务器,然后选择要为其配置重定向模式的虚拟服务器(例如,虚拟服务器-LB-1)。
  2. 编辑 “ 基本设置 ” 部分,然后单击 “ 更多”。
  3. 从“重定向模式”下拉列表中,选择“基于 MAC”。

将服务绑定到通配符虚拟服务器

使用命令行界面将服务绑定到通配符虚拟服务器

在命令提示符下,键入:

bind lb vserver <name> <serviceName>
<!--NeedCopy-->

示例:

bind lb vserver Vserver-LB-1 Service-HTTP-1
<!--NeedCopy-->

使用配置实用程序将服务绑定到通配符虚拟服务器

  1. 导航到 “ 流量管理” > “负载平衡” > “虚 拟服务器”,然后选择要绑定服务的虚拟服务器。
  2. 单击“服务”部分,然后选择要绑定的服务。

保存并验证配置

完成配置任务后,请务必保存配置。确保设置正确。

使用命令行界面保存并验证配置

在命令提示符下,键入以下命令以配置透明监视器并验证配置:

save ns config
show vserver
<!--NeedCopy-->

示例:

save config
sh lb vserver FWLBVIP1
FWLBVIP1 (\*:\*) - ANY    Type: ADDRESS
        State: UP
        Last state change was at Mon Jun 14 06:40:14 2010
        Time since last state change: 0 days, 00:00:11.240
        Effective State: UP  ARP:DISABLED
        Client Idle Timeout: 120 sec
        Down state flush: ENABLED
        Disable Primary Vserver On Down : DISABLED
        No. of Bound Services :  2 (Total)       2 (Active)
        Configured Method: SRCIPDESTIPHASH
        Mode: MAC
        Persistence: NONE
        Connection Failover: DISABLED

1) fw_svc_1 (10.102.29.251: *) - ANY State: UP  Weight: 1
2) fw_svc_2 (10.102.29.18: \*) - ANY State: UP   Weight: 1
 Done
show service fw-svc1
        fw-svc1 (10.102.29.251:\*) - ANY
        State: DOWN
        Last state change was at Thu Jul  8 10:04:50 2010
        Time since last state change: 0 days, 00:00:38.120
        Server Name: 10.102.29.251
        Server ID : 0   Monitor Threshold : 0
        Max Conn: 0     Max Req: 0      Max Bandwidth: 0 kbits
        Use Source IP: NO
        Client Keepalive(CKA): NO
        Access Down Service: NO
        TCP Buffering(TCPB): YES
        HTTP Compression(CMP): NO
        Idle timeout: Client: 120 sec   Server: 120 sec
        Client IP: DISABLED
        Cacheable: NO
        SC: OFF
        SP: OFF
        Down state flush: ENABLED

1)      Monitor Name: monitor-HTTP-1
                State: DOWN     Weight: 1
                Probes: 5       Failed [Total: 5 Current: 5]
                Last response: Failure - Time out during TCP connection establishment stage
                Response Time: 2000.0 millisec
2)      Monitor Name: ping
                State: UP       Weight: 1
                Probes: 3       Failed [Total: 0 Current: 0]
                Last response: Success - ICMP echo reply received.
                Response Time: 1.415 millisec
 Done
<!--NeedCopy-->

在三明治环境中配置内部 Citrix ADC

执行以下任务以在三明治环境中配置内部 Citrix ADC

对于来自服务器的流量(导出)

  • 启用负载平衡功能。
  • 为每个防火墙配置通配符服务。
  • 为每个通配符服务配置监视器。
  • 配置通配符虚拟服务器以对发送到防火墙的流量进行负载平衡。
  • 在 MAC 重写模式下配置虚拟服务器。
  • 将防火墙服务绑定到通配符虚拟服务器。

用于跨专用网络服务器的流量

  • 为每个虚拟服务器配置服务。
  • 为每个服务配置监视器。
  • 配置 HTTP 虚拟服务器以平衡发送到服务器的流量。
  • 将 HTTP 服务绑定到 HTTP 虚拟服务器。
  • 保存并验证配置。

启用负载平衡功能

禁用负载平衡功能时,可以配置负载平衡实体,如服务和虚拟服务器。但是,在你启用该功能之前,它们才能正常工作。

使用命令行接口启用负载平衡

在命令提示符处,键入以下命令以启用负载平衡并验证配置:

enable ns feature LB
show ns feature
<!--NeedCopy-->

示例:

> enable ns feature LoadBalancing
 Done
> show ns feature

        Feature                        Acronym              Status
        -------                        -------              ------
 1)     Web Logging                    WL                   OFF
 2)     Surge Protection               SP                   ON
 3)     Load Balancing                 LB                   ON
 .
 .
 .
 24)    NetScaler Push                 push                 OFF
 Done
<!--NeedCopy-->

使用配置实用程序启用负载平衡

导航到 系统 > 设置 ,然后在配置基本功能中选择 负载平衡

为每个防火墙配置通配符服务

使用命令行界面为每个防火墙配置通配符服务

在命令提示符下,键入:

add service <name> <serverName> ANY *
<!--NeedCopy-->

示例:

add service Service-HTTP-1 10.102.29.5 ANY *
<!--NeedCopy-->

使用配置实用程序为每个防火墙配置通配符服务

导航到 流量管理 > 负载平衡 > 服务 并添加服务。在 协议 字段中指定 任何 ,在端口字段中指定 *。

为每个通配符服务配置监视器

PING 监视器默认绑定到服务。您需要配置透明监视器,以便通过单个防火墙监视受信任端的主机。然后,您可以将透明监视器绑定到服务。默认 PING 监视器仅监视 Citrix ADC 设备与上游设备之间的连接性。透明监视器监视从设备到拥有监视器中指定的目标 IP 地址的设备的路径中存在的所有设备。如果未配置透明监视器,且防火墙的状态为“UP”,但该防火墙中的下一个跃点设备已关闭,则设备会在执行负载平衡时包含防火墙并将数据包转发到防火墙。但是,数据包不会传递到最终目标,因为下一个跃点设备之一已关闭。通过绑定透明监视器,如果任何设备(包括防火墙)关闭,则服务将被标记为“关闭”,并且在设备执行防火墙负载平衡时不包括防火墙。

绑定透明监视器将覆盖 PING 监视器。要配置 PING 监视器以及透明监视器,在创建和绑定透明监视器之后,您需要将 PING 监视器绑定到服务。

使用命令行界面配置透明监视器

在命令提示符下,键入以下命令以配置透明监视器并验证配置:

add lb monitor <monitorName> <type> [-destIP <ip_addr|ipv6_addr|*>] [-transparent (YES | NO )]
bind lb monitor <monitorName> <serviceName>
<!--NeedCopy-->

示例:

add monitor monitor-HTTP-1 HTTP -destip 10.10.10.11 -transparent YES
bind monitor monitor-HTTP-1 fw-svc1
<!--NeedCopy-->

使用配置实用程序创建和绑定透明监视器

  1. 导航到 流量管理 > 负载平衡 > 监视器 并创建监视器。
  2. 在 “ 创建监视器 ” 对话框中,输入所需的参数,然后选择 “ 透明”。

配置通配符虚拟服务器以负载平衡发送到防火墙的流量

使用命令行界面配置通配符虚拟服务器以对发送到防火墙的流量进行负载平衡

在命令提示符下,键入:

add lb vserver <name> ANY * *
<!--NeedCopy-->

示例:

add lb vserver Vserver-LB-1 ANY * *
<!--NeedCopy-->

使用配置实用程序为来自 Internet 的流量配置通配符虚拟服务器

  1. 导航到 流量管理 > 负载平衡 > 虚拟服务器 ,然后创建通配符虚拟服务器。

  2. 在协议字段中指定 任何 ,在端口字段中指定 *

使用配置实用程序将通配符虚拟服务器配置为负载平衡发送到防火墙的流量

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 在详细信息窗格中,单击 Add(添加)。
  3. 在“创建虚拟服务器(负载平衡)”对话框中,为以下参数指定值,如下所示:
    • 名称- name
  4. 在“协议”中,选择“任何”,然后在“IP 地址和端口”中,选择“*”。
  5. 单击 Create(创建),然后单击 Close(关闭)。您创建的虚拟服务器将显示在“负载平衡虚拟服务器”窗格中。

在 MAC 重写模式下配置虚拟服务器

使用命令行界面在 MAC 重写模式下配置虚拟服务器

在命令提示符下,键入:

set lb vserver <name>@ -m <RedirectionMode>
<!--NeedCopy-->

示例:

set lb vserver Vserver-LB-1 -m MAC
<!--NeedCopy-->

使用配置实用程序在 MAC 重写模式下配置虚拟服务器

  1. 导航到 流量管理 > 负载平衡 > 虚拟服务器,然后选择要为其配置重定向模式的虚拟服务器(例如,虚拟服务器-LB-1)。
  2. 编辑 “ 基本设置 ” 部分,然后单击 “ 更多”。
  3. 从“重定向模式”下拉列表中,选择“基于 MAC”。

将防火墙服务绑定到通配符虚拟服务器

使用命令行界面将防火墙服务绑定到通配符虚拟服务器

在命令提示符下,键入:

bind lb vserver <name> <serviceName>
<!--NeedCopy-->

示例:

bind lb vserver Vserver-LB-1 Service-HTTP-1
<!--NeedCopy-->

使用配置实用程序将防火墙服务绑定到通配符虚拟服务器

  1. 导航到 流量管理 > 负载平衡 > 虚拟服务器,然后选择虚拟服务器。
  2. 单击“服务”部分,然后选择要绑定的服务。

注意:您可以将服务绑定到多个虚拟服务器。

为每个虚拟服务器配置服务

使用命令行界面为每个虚拟服务器配置服务

在命令提示符下,键入:

add service <name> <serverName> HTTP <port>
<!--NeedCopy-->

示例:

add service Service-HTTP-1 10.102.29.5 HTTP 80
<!--NeedCopy-->

使用配置实用程序为每个虚拟服务器配置服务

  1. 导航到 “ 流量管理” > “负载平衡” > “服务”,然后为每个虚拟服务器配置服务。
  2. 协议 字段中指定 HTTP ,然后在 可用监视器 下选择 HTTP

使用配置实用程序为每个虚拟服务器配置服务

  1. 导航到流量管理 > 负载平衡 > 服务
  2. 在详细信息窗格中,单击 Add(添加)。
  3. 在“创建服务”对话框中,为以下参数指定值,如下所示:
    • 服务名称 — 名称
    • 服务器 —serverName
    • 端口
  4. 在协议中,指定 HTTP。在“可用监视器”下,选择“HTTP”。
  5. 单击 Create(创建),然后单击 Close(关闭)。您创建的服务将显示在“服务”窗格中。

为每个服务配置监视器

使用命令行界面将监视器绑定到服务

在命令提示符下,键入:

bind lb monitor <monitorName> <ServiceName>
<!--NeedCopy-->

示例:

bind mon monitor-HTTP-1 Service-HTTP-1
<!--NeedCopy-->

使用配置实用程序将监视器绑定到服务

导航到 “ 流量管理” > “负载平衡” > “服务”,双击服务,然后添加监视器。

配置 HTTP 虚拟服务器以平衡发送到服务器的流量

使用命令行界面配置 HTTP 虚拟服务器以平衡发送到服务器的流量

在命令提示符下,键入:

add lb vserver <name> HTTP <ip> <port>
<!--NeedCopy-->

示例:

add lb vserver Vserver-LB-1 HTTP 10.102.29.60 80
<!--NeedCopy-->

使用配置实用程序配置 HTTP 虚拟服务器以平衡发送到服务器的流量

  1. 导航到 流量管理 > 负载平衡 > 虚拟服务,然后配置 HTTP 虚拟服务器。
  2. 协议 字段中指定 HTTP

使用配置实用程序配置 HTTP 虚拟服务器以平衡发送到服务器的流量

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 在详细信息窗格中,单击 Add(添加)。
  3. 在“创建虚拟服务器(负载平衡)”对话框中,为以下参数指定值,如下所示:
    • 名称- name
    • IP 地址 — IP 地址 注意:如果虚拟服务器使用 IPv6,请选中 IPv6 复选框,然后以 IPv6 格式输入地址(例如, 1000:0000:0000:0000:0005:0600:700a:888b)。
    • 端口
  4. 在“协议”下,选择“HTTP”。
  5. 单击 Create(创建),然后单击 Close(关闭)。您创建的虚拟服务器将显示在“负载平衡虚拟服务器”窗格中。

保存并验证配置

完成配置任务后,请务必保存配置。您还应检查以确保设置正确。

使用命令行界面保存并验证配置

在命令提示符下,键入以下命令以配置透明监视器并验证配置:

  • save ns config
  • show vserver

示例:

save config
show lb vserver FWLBVIP2
        FWLBVIP2 (\*:\*) - ANY    Type: ADDRESS
        State: UP
        Last state change was at Mon Jun 14 07:22:54 2010
        Time since last state change: 0 days, 00:00:32.760
        Effective State: UP
        Client Idle Timeout: 120 sec
        Down state flush: ENABLED
        Disable Primary Vserver On Down : DISABLED
        No. of Bound Services :  2 (Total)       2 (Active)
        Configured Method: LEASTCONNECTION
        Current Method: Round Robin, Reason: A new service is bound
        Mode: MAC
        Persistence: NONE
        Connection Failover: DISABLED

1) fw-int-svc1 (10.102.29.5: *) - ANY State: UP Weight: 1
2) fw-int-svc2 (10.102.29.9: \*) - ANY State: UP Weight: 1
 Done
show service fw-int-svc1
        fw-int-svc1 (10.102.29.5:\*) - ANY
        State: DOWN
        Last state change was at Thu Jul  8 14:44:51 2010
        Time since last state change: 0 days, 00:01:50.240
        Server Name: 10.102.29.5
        Server ID : 0   Monitor Threshold : 0
        Max Conn: 0     Max Req: 0      Max Bandwidth: 0 kbits
        Use Source IP: NO
        Client Keepalive(CKA): NO
        Access Down Service: NO
        TCP Buffering(TCPB): NO
        HTTP Compression(CMP): NO
        Idle timeout: Client: 120 sec   Server: 120 sec
        Client IP: DISABLED
        Cacheable: NO
        SC: OFF
        SP: OFF
        Down state flush: ENABLED

1)      Monitor Name: monitor-HTTP-1
                State: DOWN     Weight: 1
                Probes: 9       Failed [Total: 9 Current: 9]
                Last response: Failure - Time out during TCP connection establishment stage
                Response Time: 2000.0 millisec
2)      Monitor Name: ping
                State: UP       Weight: 1
                Probes: 3       Failed [Total: 0 Current: 0]
                Last response: Success - ICMP echo reply received.
                Response Time: 1.275 millisec
 Done
<!--NeedCopy-->

使用配置实用程序保存并验证配置

  1. 详细信息 窗格中,单击 保存
  2. 在 “保 存配置 ” 对话框中,单击 “ ”。
  3. 导航到流量管理 > 负载平衡 > 虚拟服务器
  4. 详细信息 窗格中,选择您在步骤 5 中创建的虚拟服务器。
  5. 验证 “ 详细信息 ” 窗格中显示的设置是否正确。
  6. 导航到流量管理 > 负载平衡 > 服务
  7. 详细信息 窗格中,选择您在步骤 5 中创建的服务。
  8. 验证 “ 详细信息 ” 窗格中显示的设置是否正确。

监视在 Sandwich 环境中设置的防火墙负载平衡设置

配置启动并运行后,您应查看每个服务和虚拟服务器的统计信息,以检查可能出现的问题。

查看虚拟服务器的统计信息

要评估虚拟服务器的性能或解决问题,可以显示 Citrix ADC 设备上配置的虚拟服务器的详细信息。您可以显示所有虚拟服务器的统计信息摘要,也可以指定虚拟服务器的名称以仅显示该虚拟服务器的统计信息。您可以显示以下详细信息:

  • 名称
  • IP 地址
  • 端口
  • 协议
  • 虚拟服务器的状态
  • 收到请求的比率
  • 点击率

使用命令行界面显示虚拟服务器统计信息

要显示 Citrix ADC 上当前配置的所有虚拟服务器或单个虚拟服务器的统计信息摘要,请在命令提示符下键入:

stat lb vserver [-detail] [<name>]
<!--NeedCopy-->

示例:

>stat lb vserver -detail
Virtual Server(s) Summary
                      vsvrIP  port     Protocol        State    Req/s   Hits/s
One                        *    80         HTTP           UP      5/s      0/s
Two                        *     0          TCP         DOWN      0/s      0/s
Three                      *  2598          TCP         DOWN      0/s      0/s
dnsVirtualNS    10.102.29.90    53          DNS         DOWN      0/s      0/s
BRVSERV            10.10.1.1    80         HTTP         DOWN      0/s      0/s
LBVIP           10.102.29.66    80         HTTP           UP      0/s      0/s
 Done

<!--NeedCopy-->

使用配置实用程序显示虚拟服务器统计信息

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器 > 统计信息
  2. 如果要仅显示一个虚拟服务器的统计信息,请在详细信息窗格中选择虚拟服务器,然后单击 统计信息。

查看服务的统计数据

您可以使用服务统计信息查看请求、响应、请求字节、响应字节、当前客户端连接、浪涌队列中的请求、当前服务器连接等的速率。

使用命令行界面查看服务的统计信息

在命令提示符下,键入:

stat service <name>
<!--NeedCopy-->

示例:

stat service Service-HTTP-1
<!--NeedCopy-->

使用配置实用程序查看服务的统计信息

  1. 导航到 流量管理 > 负载平衡 > 服务 > 统计信息
  2. 如果要仅显示一项服务的统计信息,请选择该服务,然后单击 统计信息
三明治环境