用例 11:使用侦听策略隔离网络流量

数据中心中一个非常常见的安全要求是在各种应用程序或租户的流量之间保持网络路径隔离。一个应用程序或租户的流量必须与其他应用程序或租户的流量隔离开来。例如,金融服务公司希望将其保险部门申请的流量与其金融服务申请的流量分开。过去,通过对防火墙、负载平衡器和 IDP 等网络服务设备进行物理分离,以及交换架构中的网络监视和逻辑分离,可以轻松实现这一点。

随着数据中心架构向多租户虚拟化数据中心发展,数据中心聚合层中的网络服务正在得到整合。这种发展使得网络路径隔离成为网络服务设备的关键组件,并推动了 ADC 能够隔离 L4 至 L7 级流量的要求。此外,特定租户的所有流量必须在到达服务层之前通过防火墙。

为满足隔离网络路径的要求,Citrix ADC 设备可识别网络域并控制跨域的流量。Citrix ADC 解决方案有两个主要组件:侦听策略和影子虚拟服务器。

为每个要隔离的网络路径分配一个虚拟服务器,其上定义了侦听策略,以便虚拟服务器仅侦听来自指定网络域的流量。

要隔离流量,监听策略可以基于多个客户端参数或它们的组合,并且可以为策略分配优先级。下表列出了用于识别流量的侦听策略中可以使用的参数。

类别 参数
以太网协议 源 MAC 地址、目标 MAC 地址
网络接口 网络 ID、接收吞吐量、发送吞吐量、传输吞吐量
IP 协议 源 IP 地址、目标 IP 地址
IPv6 协议 源 IPv6 地址、目标 IPv6 地址
TCP 协议 源端口、目标端口、最大段大小、有效载荷和其他选项
联合民主党协议 源端口,目标端口
VLAN 身份证

表 1. 用于定义侦听策略的客户端参数

在 Citrix ADC 设备上,为每个域配置了一个虚拟服务器,并具有一个监听策略,指定虚拟服务器仅侦听该域的流量。还为每个域配置了一个卷影负载平衡虚拟服务器,该服务器侦听发往任何域的流量。每个卷影负载平衡虚拟服务器都有一个通配符 (*) IP 地址和端口,其服务类型设置为任何。

在每个域中,域的防火墙作为服务绑定到卷影负载平衡虚拟服务器,后者通过防火墙转发所有流量。本地流量将转发到其目的地,并将发往另一个域的流量转发到该域的防火墙。卷影负载平衡虚拟服务器配置为 MAC 模式重定向。

如何隔离网络路径

下图显示了跨域的典型流量。考虑网络域 1 内以及网络域 1 和网络域 2 之间的流量流量。

图 1. 隔离网络路径

流量域-网络路径隔离

网域 1 内的流量

网络域 1 有三个 VLAN:VLAN 11、VLAN110 和 VLAN120。以下步骤描述流量流量。

  • 来自 VLAN 11 的客户端发送从 VLAN 120 中的服务池可用服务的请求。
  • 负载平衡虚拟服务器 LB-VIP1 配置为侦听来自 VLAN 11 的流量,接收请求并将请求转发到 VLAN 110。VLAN 110 中的虚拟服务器将请求转发到卷影负载平衡虚拟服务器 FW-VIP-1。
  • FW-VIP-1,配置为侦听来自 VLAN 110 的流量,接收请求并将其转发到 VLAN 120。
  • VLAN 120 中的负载平衡虚拟服务器负载平衡到其中一个物理服务器(App11、App12 或 App13)的请求。
  • 物理服务器发送的响应以同一路径返回到 VLAN 11 中的客户端。

此配置可确保始终在 Citrix ADC 内部隔离来自客户端的所有流量。

网络域 1 和网络域 2 之间的流量

网络域 1 有三个 VLAN:VLAN 11、VLAN110 和 VLAN120。网络域 2 还有三个 VLAN:无线网络 22、无线网 210 和无线网络 220。以下步骤描述了从 VALN 11 到 VLAN 22 的流量。

  • 来自 VLAN 11 的客户端(属于网络域 1)发送从属于网络域 2 的 VLAN 220 中的服务池可用服务的请求。
  • 在网络域 1 中,负载平衡虚拟服务器 LB-VIP1(配置为侦听来自 VLAN 11 的流量)接收请求并将请求转发到 VLAN 110。
  • 卷影负载平衡虚拟服务器 FW-VIP1(配置为侦听发往任何其他域的 VLAN 110 流量)接收请求并将其转发到防火墙虚拟服务器 FW-VIP-2,因为请求发送到网络域 2 中的物理服务器。
  • 在网络域 2 中,FW-VIP-2 将请求转发到 VLAN 220。
  • VLAN 220 中的负载平衡虚拟服务器负载平衡到其中一个物理服务器(App21、App22 或 App23)的请求。
  • 物理服务器发送的响应通过网络域 2 中的防火墙返回,然后返回到网络域 1 以访问 VLAN 11 中的客户端。

配置步骤

要使用侦听策略配置网络路径隔离,请执行以下操作:

  • 添加侦听策略表达式。每个表达式都指定流量发往的域。您可以使用 VLAN ID 或其他参数来识别流量。
  • 对于每个网络域,配置两个虚拟服务器,如下所示:
    • 创建负载平衡虚拟服务器,为其指定侦听策略,该策略可识别发往此域的流量。您可以指定之前创建的表达式的名称,也可以在创建虚拟服务器时创建新表达式。

    • 创建另一个负载平衡虚拟服务器(称为卷影虚拟服务器),为其指定适用于任何域的流量的侦听策略表达式。在此虚拟服务器上,将服务类型设置为任何,将 IP 地址和端口设置为星号 (*)。在此虚拟服务器上启用基于 Mac 的转发。

    • 在两个虚拟服务器上启用 L2 连接选项。

      通常,要识别连接,Citrix ADC 设备使用 4 元组的客户端 IP 地址、客户端端口、目标 IP 地址和目标端口。启用 L2 连接选项时,除了正常的 4 元组之外,还会使用连接的第 2 层参数(通道号、MAC 地址和 VLAN ID)。

  • 添加表示域中服务器池的服务,并将它们绑定到虚拟服务器。
  • 将每个域的防火墙配置为服务,并将所有防火墙服务绑定到卷影虚拟服务器。

使用命令行界面隔离网络流量

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

add policy expression <expressionName> <listenPolicyExpression>

add lb vserver <name> <serviceType> <ip> <port> -l2conn ON -listenPolicy <expressionName>

为每个域添加负载平衡虚拟服务器。此虚拟服务器用于同一域的流量。

add lb vserver <name> ANY * * -l2conn ON -m MAC -listenPolicy <expressionName>

为每个域添加卷影负载平衡虚拟服务器。此虚拟服务器用于其他域的流量。

示例:

add policy expression e110 client.vlan.id==110
add policy expression e210 client.vlan.id==210
add policy expression e310 client.vlan.id==310
add policy expression e11 client.vlan.id==11
add policy expression e22 client.vlan.id==22
add policy expression e33 client.vlan.id==33

add lb vserver LB-VIP1 HTTP 10.1.1.254 80 -persistenceType NONE -listenPolicy e11
-cltTimeout 180 -l2Conn ON

add lb vserver LB-VIP2 HTTP 10.2.2.254 80 -persistenceType NONE - listenPolicy e22
-cltTimeout 180 -l2Conn ON

add lb vserver LB-VIP3 HTTP 10.3.3.254 80 -persistenceType NONE - listenPolicy e33
-cltTimeout 180 -l2Conn ON


add lb vserver FW-VIP-1 ANY * * -persistenceType NONE -lbMethod ROUNDROBIN - listenPolicy e110 -Listenpriority 1 -m MAC -cltTimeout 120

add lb vserver FW-VIP-2 ANY * * -persistenceType NONE -lbMethod ROUNDROBIN - listenPolicy e210 -Listenpriority 2 -m MAC -cltTimeout 120

add lb vserver FW-VIP-3 ANY * * -persistenceType NONE -lbMethod ROUNDROBIN - listenPolicy e310 -Listenpriority 3 -m MAC -cltTimeout 120


add service RD-1 10.1.1.1 ANY * -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED
-usip NO -useproxyport NO -sp ON -cltTimeout 120 -svrTimeout 120 -CKA NO -TCPB NO -CMP NO

add service RD-2 10.2.2.1 ANY * -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED
-usip NO -useproxyport NO -sp ON -cltTimeout 120 -svrTimeout 120 -CKA NO -TCPB NO -CMP NO

add service RD-3 10.3.3.1 ANY * -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED
-usip NO -useproxyport NO -sp ON -cltTimeout 120 -svrTimeout 120 -CKA NO -TCPB NO -CMP NO


bind lb vserver FW-VIP-1 RD-1

bind lb vserver FW-VIP-2 RD-2

bind lb vserver FW-VIP-3 RD-3

使用配置实用程序隔离网络流量

  1. 添加代表服务器的服务,如创建服务
  2. 将每个防火墙添加为服务:
    1. 导航到流量管理 > 负载平衡 > 服务
    2. 创建服务,将协议指定为任何,服务器指定为防火墙的 IP 地址,将端口指定为 80。
  3. 配置负载平衡虚拟服务器。
  4. 配置卷影负载平衡虚拟服务器。
  5. 对于每个网络域,重复步骤 3 和 4。
  6. 在“负载平衡虚拟服务器”窗格中,打开您创建的虚拟服务器并验证设置。

用例 11:使用侦听策略隔离网络流量