n层缓存重定向

为了有效地处理大量缓存数据(通常是每秒几千兆字节),Internet服务提供者(ISP)部署了几个专用的缓存服务器。Citrix ADC设备的缓存重定向特性可以帮助缓存服务器实现负载平衡,但是单个设备或多个设备可能无法有效地处理大量通信。

您可以通过将Citrix ADC设备部署在两层(层)中来解决这个问题,其中上层的设备负载平衡较低层的设备,较低层的设备负载平衡缓存服务器。这种安排叫做n层缓存重定向

出于审计和安全等目的,ISP必须跟踪客户端的详细信息,如IP地址、提供的信息和交互时间。因此,通过Citrix ADC设备的客户机连接必须是完全透明的。但是,如果配置透明缓存重定向,同时部署Citrix ADC设备,则必须在所有设备之间共享客户机的IP地址。客户机IP地址的共享会产生冲突,导致网络设备(如路由器、缓存服务器、原始服务器和其他Citrix ADC设备)无法确定设备,也无法确定响应应该发送到哪个客户机。

n层缓存重定向是如何实现的

为了解决这个问题,设备n层缓存重定向在较低层的设备之间分割源端口范围,并在发送到缓存服务器的请求中包含客户机IP地址。上层Citrix ADC设备被配置为进行无会话负载平衡,以避免设备上不必要的负载。

当较低层的Citrix ADC设备与缓存服务器通信时,它使用映射的IP地址(MIP)表示源IP地址。因此,缓存服务器可以识别从哪个设备接收到请求,并将响应发送到同一设备。

较低层的Citrix ADC设备将客户端IP地址插入发送到缓存服务器的请求的头中。头中的客户端IP帮助设备在收到来自缓存服务器的响应时确定数据包应该转发到哪个客户端,或者在缓存丢失的情况下确定源服务器。源服务器根据插入到请求头中的客户端IP确定要发送的响应。

源服务器将响应发送到上层设备,包括源服务器从其接收到请求的源端口号。整个源端口范围(1024到65535)分布在较低级的Citrix ADC设备中。在范围内,为每个较低层设备专门分配一组地址。这种分配使上层设备能够明确地识别向源服务器发送请求的低层Citrix ADC设备。因此,上层设备可以将响应转发给正确的下层设备。

上层Citrix ADC设备被配置为执行基于策略的路由,并定义路由策略以确定来自源端口范围的目标设备的IP地址。

配置n层CRD所需的设置

以下设置对于n层缓存重定向的功能是必要的:

对于每个上层Citrix ADC设备:

  • 启用三层模式。
  • 为策略路由(policy-based routes)定义策略,使流量按照目的端口的范围转发。
  • 配置负载均衡虚拟服务器。
  • 将虚拟服务器配置为监听来自客户机的所有流量。设置“服务类型/协议”为“ANY”,“IP地址”为“*”。
  • 使用基于mac的重定向模式启用无会话负载平衡,以避免对上层Citrix ADC设备产生不必要的负载。
  • 确保启用了“使用代理端口”选项。
  • 为每个较低层设备创建一个服务,并将所有服务绑定到虚拟服务器。

对于每个较低级别的Citrix ADC设备,

  • 在设备上配置缓存重定向端口范围。为每个较低级的设备分配专属范围。
  • 配置负载均衡虚拟服务器,开启mac重定向功能。
  • 为每个要由该设备进行负载均衡的缓存服务器创建一个服务。在创建服务时,启用在报头中插入客户端IP。然后,将所有服务绑定到负载均衡虚拟服务器上。
  • 配置透明模式缓存重定向虚拟服务器,设置如下:
    • 启用Origin USIP选项。
    • 添加一个源IP表达式,将客户端IP包含在消息头中。
    • 启用“使用端口范围”选项。

n层缓存重定向在缓存命中时如何工作

下图显示了当客户端请求可缓存且响应从缓存服务器发送时,缓存重定向是如何工作的。

图1。缓存重定向在缓存命中的情况下

缓存重定向在缓存命中的情况下

上层部署两个Citrix ADC设备L1NS1和L1NS2,下层部署四个Citrix ADC设备L2NS1、L2NS2、L2NS3和L2NS4。客户端A发送一个请求,请求由路由器转发。缓存服务器CRS1、CRS2和CRS3为缓存请求提供服务。源服务器O服务未缓存的请求。

交通流

  1. 客户端发送请求,路由器转发给L1NS1。
  2. L1NS1将请求负载均衡到L2NS2。
  3. L2NS2将请求负载均衡到缓存服务器CRS1,该请求是可缓存的。L2NS2在请求头中包含客户端IP。
  4. 由于L2NS2连接CRS1时使用自己的MIP地址作为源IP地址,CRS1将响应报文发送给L2NS2。
  5. 借助请求头中的客户端IP地址,L2NS2识别来自请求的客户端。L2NS2直接将响应发送到路由器,避免对上层设备造成不必要的负载。
  6. 路由器将响应转发给Client A。

n层缓存重定向在缓存绕过期间如何工作

下图显示了将客户机请求发送到源服务器以获得响应时缓存重定向的工作方式。

图2。缓存绕过情况下的缓存重定向

缓存绕过情况下的缓存重定向

上层部署两个Citrix ADC设备L1NS1和L1NS2,下层部署四个Citrix ADC设备L2NS1、L2NS2、L2NS3和L2NS4。客户端A发送一个请求,请求由路由器转发。缓存服务器CRS1、CRS2和CRS3为缓存请求提供服务。源服务器O服务未缓存的请求。

交通流

  1. 客户端发送请求,路由器转发给L1NS1。
  2. L1NS1将请求负载均衡到L2NS2。
  3. 请求是不可缓存的(缓存绕过)。因此,L2NS2通过路由器向源服务器发送请求。
  4. 源服务器将响应发送到上层设备L1NS2。
  5. 根据策略路由策略,L1NS2将流量转发到较低的L2NS2相应的设备。
  6. L2NS2使用请求头中的客户端IP地址来标识来自哪个客户端,并将响应直接发送到路由器,从而避免对上层设备造成不必要的负载。
  7. 路由器将响应转发给Client A。

n层缓存重定向在缓存丢失期间如何工作

下图显示了在没有缓存客户端请求时缓存重定向的工作方式。

图3。缓存丢失情况下的缓存重定向

缓存丢失情况下的缓存重定向

上层部署两个Citrix ADC设备L1NS1和L1NS2,下层部署四个Citrix ADC设备L2NS1、L2NS2、L2NS3和L2NS4。客户端A发送一个请求,请求由路由器转发。缓存服务器CRS1、CRS2和CRS3为缓存请求提供服务。源服务器O服务未缓存的请求。

交通流

  1. 客户端发送请求,路由器转发给L1NS1。
  2. L1NS1将请求负载均衡到L2NS2。
  3. L2NS2负载平衡请求到缓存服务器CRS1,因为请求是可缓存的。
  4. CRS1没有响应(缓存丢失)。CRS1通过较低层的设备将请求转发到原始服务器。L2NS3对流量进行拦截。
  5. L2NS3从报头获取客户端IP,并将请求转发给源服务器。报文中的源端口是向源服务器发送请求的L2NS3端口。
  6. 源服务器将响应发送到上层设备L1NS2。
  7. 根据策略路由策略,L1NS2将流量转发到较低的L2NS3相应的设备。
  8. L2NS3将响应转发给路由器。
  9. 路由器将响应转发给Client A。