Citrix ADC

Citrix ADC 设备如何与客户端和服务器通信

Citrix ADC 设备通常部署在服务器场的前面,用作客户端与服务器之间的透明 TCP 代理,无需进行任何客户端配置。这种基本工作模式称为“请求切换”技术,是 Citrix ADC 功能的核心。通过请求切换技术,设备能够对 TCP 连接进行多路复用和卸载,维护持续型连接并在请求(应用程序层)级别管理流量。这是可以实现的,因为设备可以将 HTTP 请求与传送请求的 TCP 连接分离。

根据配置,设备可以在将请求转发到服务器之前对流量进行处理。例如,如果客户端尝试访问服务器上的安全应用程序,设备可以在将流量发送到该服务器之前执行必要的 SSL 处理。

为便于安全高效地访问服务器资源,设备使用一组统称为 Citrix ADC 拥有的 IP 地址的 IP 地址。要管理网络流量,可以将 Citrix ADC 拥有的 IP 地址分配给作为配置构建基块的虚拟实体。例如,要配置负载平衡,可以创建虚拟服务器用于接收客户端请求,并将这些请求分配给服务(即,表示服务器上的应用程序的实体)。

Citrix ADC 拥有的 IP 地址简介

为了用作代理,Citrix ADC 设备使用多种 IP 地址。Citrix ADC 拥有的关键 IP 地址包括:

  • Citrix ADC IP (NSIP) 地址

    NSIP 地址是用于进行管理、对设备本身进行常规系统访问以及在高可用性配置中实现设备间通信的 IP 地址。

  • 虚拟服务器 IP (VIP) 地址

    VIP 地址是与虚拟服务器相关联的 IP 地址。它是客户端连接到的公用 IP 地址。管理多种流量的一个设备可配置有多个 VIP。

  • 子网 IP (SNIP) 地址

    SNIP 地址用于连接管理和服务器监视。您可以为每个子网指定多个 SNIP 地址。SNIP 地址可以绑定到 VLAN。

  • IP 集

    IP 集是一组 IP 地址,这些 IP 地址在设备上配置为 SNIP IP 集通过有意义的名称进行标识,这些名称有助于确定其中所含 IP 地址的用途。

  • 网络配置文件

    网络配置文件中包含一个 IP 地址或 IP 集。网络配置文件可绑定到负载平衡或内容交换虚拟服务器、服务、服务组或监视器。在与物理服务器或对等机通信期间,设备使用在配置文件中指定的地址作为源 IP 地址。

如何管理流量

由于 Citrix ADC 设备用作 TCP 代理,因此它会在将数据包发送到服务器之前转换 IP 地址。配置虚拟服务器时,客户端连接到 Citrix ADC 设备上的 VIP 地址,而不直接连接服务器。设备根据虚拟服务器上的设置,选择适当的服务器,并将客户端请求发送到该服务器。默认情况下,设备使用 SNIP 地址与服务器建立连接,如下图所示。

图 1. 基于虚拟服务器的连接

image

如果没有虚拟服务器,当设备收到请求时,会以透明方式将请求转发给服务器。这称为透明工作模式。在透明模式下工作时,设备可将传入客户端请求的源 IP 地址转换为 SNIP 地址,但不会更改目标 IP 地址。要使此模式生效,必须正确配置 L2 或 L3 模式。

如果服务器需要使用实际客户端 IP 地址,可以将设备配置为通过插入客户端 IP 地址作为附加字段来修改 HTTP 标头,或配置为使用客户端 IP 地址而不是 SNIP 地址来连接服务器。

流量管理构建基块

Citrix ADC 设备的配置通常由作为流量管理构建基块的一系列虚拟实体组成。构建基块方法可帮助分离通信流量。虚拟实体是抽象概念,通常表示 IP 地址、端口以及用于处理流量的协议处理程序。客户端通过这些虚拟实体访问应用程序和资源。最常用的实体是虚拟服务器和服务。虚拟服务器表示服务器场或远程网络中的服务器组;服务表示每个服务器上的特定应用程序。

大多数功能和流量设置是通过虚拟实体启用的。例如,您可以通过特定的虚拟服务器配置设备,使其压缩连接到服务器场的客户端的所有服务器响应。要为特定的环境配置设备,您需要确定相应的功能,然后选择正确的虚拟实体组合以实现这些功能。大多数功能是通过互相绑定的级联结构的虚拟实体实现的。在这种情况下,虚拟实体就像组合到所交付应用程序的最终结构中的基块。您可以添加、删除、修改、绑定、启用和禁用虚拟实体以配置功能。下图说明了本节中涉及的概念。

图 2. 流量管理构建基块的工作原理

image

简单的负载平衡配置

在下图显示的示例中,Citrix ADC 设备配置为用作负载平衡器。对于此配置,您需要配置特定于负载平衡的虚拟实体,并按特定顺序对其进行绑定。作为负载平衡器,设备可在多个服务器之间分配客户端请求,从而优化资源的利用。

典型负载平衡配置的基本构建基块是服务和负载平衡虚拟服务器。服务表示服务器上的应用程序。虚拟服务器通过提供客户端要连接到的单个 IP 地址来实现服务器抽象化。要确保将客户端请求发送至服务器,您必须将每项服务绑定到虚拟服务器,即,您必须为每个服务器创建服务,并将这些服务绑定到虚拟服务器。客户端使用 VIP 地址连接到 Citrix ADC 设备。通过 VIP 地址收到客户端请求时,设备会将其发送到由负载平衡算法决定的服务器。负载平衡使用一个称为监视程序的虚拟实体,来跟踪某特定的已配置服务(服务器与应用程序)是否可用于接收请求。

图 3. 负载平衡虚拟服务器、服务和监视程序

image

除配置负载平衡算法外,您还可以配置多个可影响负载平衡配置行为和性能的参数。例如,可以将虚拟服务器配置为根据源 IP 地址维护持久性。然后,设备将来自任何特定 IP 地址的所有请求定向到同一台服务器。

虚拟服务器简介

虚拟服务器是一个指定的 Citrix ADC 实体,外部客户端可以用它来访问服务器上托管的应用程序。虚拟服务器由字母数字名称、虚拟 IP (VIP) 地址、端口和协议表示。虚拟服务器的名称仅在本地有意义,旨在使虚拟服务器更易于识别。当客户端尝试访问服务器上的应用程序时,会将请求发送至 VIP 而不是物理服务器的 IP 地址。通过 VIP 地址收到请求时,设备将终止虚拟服务器上的连接,并代表客户端使用其与服务器之间的连接。虚拟服务器的端口和协议设置决定虚拟服务器所表示的应用程序。例如,Web 服务器可以由端口和协议分别设置为 80 和 HTTP 的虚拟服务器和服务表示。多个虚拟服务器可以使用相同的 VIP 地址,但必须使用不同的协议和端口。

虚拟服务器是提供各项功能的关键所在。大多数功能(例如压缩、缓存和 SSL 卸载)通常是在虚拟服务器上启用的。通过 VIP 地址收到请求时,设备将按照接收请求的端口及其协议选择适当的虚拟服务器。然后,设备根据在虚拟服务器上配置的功能对请求进行处理。

在大多数情况下,虚拟服务器与服务协同工作。您可以将多个服务绑定到一个虚拟服务器。这些服务表示在服务器场中的物理服务器上运行的各个应用程序。处理通过 VIP 地址收到的请求之后,设备会将其转发给由虚拟服务器上配置的负载平衡算法决定的服务器。下图说明了这些概念。

图 4. 多个虚拟服务器具有相同 VIP 地址

image

上图所示的配置由两个具有通用 VIP 地址但端口和协议不同的虚拟服务器组成。其中每个虚拟服务器都绑定了两种服务。服务 s1 和 s2 都绑定到 VS_HTTP,并且表示服务器 1 和服务器 2 上的 HTTP 应用程序。服务 s3 和 s4 都绑定到 VS_SSL,并且表示服务器 2 和服务器 3 上的 SSL 应用程序(服务器 2 同时提供 HTTP 和 SSL 应用程序)。通过 VIP 地址收到 HTTP 请求时,设备将根据 VS_HTTP 的设置处理请求,并将其发送给服务器 1 或服务器 2。同样,通过 VIP 地址收到 HTTPS 请求时,设备将根据 VS_SSL 的设置处理请求,并将其发送给服务器 2 或服务器 3。

虚拟服务器并非始终由特定 IP 地址、端口号或协议表示。还可由通配符表示,在这种情况下称为通配符虚拟服务器。例如,使用通配符而不是 VIP 配置虚拟服务器(但具有特定的端口号)时,设备将解释并处理所有符合该协议且发送给预定义端口的流量。对于使用通配符而不是 VIP 和端口号表示的虚拟服务器,设备将解释并处理所有符合该协议的流量。

虚拟服务器可以分组为以下类别:

  • 负载平衡虚拟服务器

    接收请求并将请求重定向到适当的服务器。适当服务器的选择基于用户配置的负载平衡方法进行。

  • 缓存重定向虚拟服务器

    将对动态内容和静态内容的客户端请求分别重定向到源服务器和缓存服务器。缓存重定向虚拟服务器通常与负载平衡虚拟服务器协同工作。

  • 内容交换虚拟服务器

    根据客户端请求的内容将通信流定向到某个服务器。例如,您可以创建一个内容交换虚拟服务器,将对映像的所有客户端请求定向到仅提供映像的服务器。内容交换虚拟服务器通常与负载平衡虚拟服务器协同工作。

  • 虚拟专用网络 (VPN) 虚拟服务器

    解密通道通信并将其发送给 Intranet 应用程序。

  • SSL 虚拟服务器

    接收并解密 SSL 通信流,然后将其重定向到适当的服务器。适当服务器的选择与负载平衡虚拟服务器的选择相类似。

服务简介

服务表示服务器上的应用程序。虽然服务通常与虚拟服务器结合使用,但是在没有虚拟服务器的情况下,服务仍可以管理特定于应用程序的流量。例如,您可以在 Citrix ADC 设备上创建 HTTP 服务来表示 Web 服务器应用程序。当客户端尝试访问 Web 服务器上托管的 Web 站点时,设备会拦截 HTTP 请求,并创建与 Web 服务器之间的透明连接。

在仅服务模式下,设备用作代理。它可终止客户端连接,使用 SNIP 地址与服务器建立连接,并将传入客户端请求的源 IP 地址转换为 SNIP 地址。虽然客户端将请求直接发送至服务器的 IP 地址,但是服务器会将其视为来自 SNIP 地址。设备可转换 IP 地址、端口号和序列号。

服务也是应用功能的关键所在。以 SSL 加速为例。要使用此功能,必须创建一个 SSL 服务,并将 SSL 证书绑定到该服务。当收到 HTTPS 请求时,设备会将流量解密并以明文形式发送到服务器。在仅服务模式下只能配置有限的一组功能。

服务使用称为监视程序的实体来跟踪应用程序的运行状况。每项服务都绑定有一个默认监视程序(根据服务类型确定)。根据监视程序中配置的设置,设备每隔一定的时间向应用程序发送探测以确定其状态。如果探测失败,设备会将服务标记为 down(关闭)。在这种情况下,设备以相应的错误消息响应客户端请求,或根据配置的负载平衡策略重新路由这些请求。

Citrix ADC 设备如何与客户端和服务器通信