ADC

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

注意:

不再推荐使用影子虚拟服务器模拟多租户隔离的流量隔离解决方案。或者,Citrix 建议您使用 NetScaler 管理分区功能进行此类部署。有关更多信息,请参阅 管理员分区

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

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

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

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

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

类别 参数
以太网协议 源 MAC 地址、目标 MAC 地址
网络接口 网络 ID、接收吞吐量、发送吞吐量、传输吞吐量
IP 协议 源 IP 地址、目标 IP 地址
IPv6 协议 源 IPv6 地址,目标 IPv6 地址
TCP 协议 源端口、目标端口、最大分段大小、负载和其他选项
UDP 协议 源端口、目标端口
VLAN ID

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

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

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

如何隔离网络路径

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

图 1. 隔离网络路径

流量域-网络路径隔离

网络域内的流量 1

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

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

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

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

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

  • 来自属于网络域 1 的 VLAN 11 的客户端发送请求,请求从属于网络域 2 的 VLAN 220 中的服务池中提供服务。
  • 在网络域 1 中,负载平衡虚拟服务器 LB-VIP1(配置为监听来自 VLAN 11 的流量)接收请求并将请求转发到 VLAN 110。
  • 影子负载平衡虚拟服务器 FW-VIP-1 配置为监听发往任何其他域的 VLAN 110 流量,它接收了请求并将其转发到防火墙虚拟服务器 FW-VIP-2,因为该请求是发往网络域 2 中的物理服务器。
  • 在网络域 2 中,FW-VIP-2 将请求转发到 VLAN 220。
  • VLAN 220 中的负载平衡虚拟服务器对其中一台物理服务器(App21、App22 或 App23)的请求进行负载平衡。
  • 物理服务器发送的响应通过相同的路径通过网络域 2 中的防火墙返回,然后返回到网络域 1 以到达 VLAN 11 中的客户端。

配置步骤

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

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

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

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

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

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

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

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

add policy expression <expressionName> <listenPolicyExpression>

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

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

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

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

示例:

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
<!--NeedCopy-->

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

  1. 添加表示服务器的服务,如 创建服务中所述。
  2. 将每个防火墙添加为服务:
    1. 导航到流量管理 > 负载平衡 > 服务
    2. 创建服务,将协议指定为 ANY,将服务器指定为防火墙的 IP 地址,将端口指定为 80。
  3. 配置负载平衡虚拟服务器。
  4. 配置影子负载平衡虚拟服务器。
  5. 对于每个网络域,重复步骤 3 和 4。
  6. 在负载平衡虚拟服务器窗格中,打开您创建的虚拟服务器并验证设置。
用例 11:使用侦听策略隔离网络流量