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地址。剪掉地址可以绑定到vlan。

  • IP集

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

  • 网络配置文件

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

如何管理流量

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

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

图像

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

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

流量管理构建基块

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

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

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

图像

简单的负载平衡配置

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

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

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

图像

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

虚拟服务器简介

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

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

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

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

图像

上图所示的配置由两个具有通用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)虚拟服务器

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

  • SSL虚拟服务器

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

服务简介

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

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

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

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

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