N层缓存重定向

为了有效地处理大量缓存数据(通常是每秒数千兆字节),互联网服务提供商 (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设备:

  • 启用第 3 层模式。
  • 为基于策略的路由(为PBRs)定义策略,以便根据目标端口的范围转发流量。
  • 配置负载平衡虚拟服务器。
  • 配置虚拟服务器以侦听来自客户端的所有流量。将服务类型/协议设置为任何,IP地址设置为星号(*)。
  • 使用基于Mac的重定向模式启用无会话负载平衡,以避免上层Citrix ADC设备上不必要的负载。
  • 请确保已启用“使用代理端口”选项。
  • 为每个较低层设备创建服务,并将所有服务绑定到虚拟服务器。

对于每个较低层次的Citrix ADC应用,

  • 在设备上配置缓存重定向端口范围。为每个较低层设备分配独占范围。
  • 配置负载平衡虚拟服务器并启用基于Mac的重定向。
  • 为将由此设备进行负载平衡的每个缓存服务器创建一个服务。创建服务时,启用在标头中插入客户端IP。然后,将所有服务绑定到负载平衡虚拟服务器。
  • 使用以下设置配置透明模式缓存重定向虚拟服务器:
    • 启用原始切实选项。
    • 添加源IP表达式以在标头中包含客户端IP。
    • 启用“使用端口范围”选项。

N层缓存重定向在缓存命中期间的工作原理

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

图 1.缓存命中时的缓存重定向

缓存命中时的缓存重定向

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

交通流量

  1. 客户端发送请求,路由器将其转发到L1NS1。
  2. L1NS1负载平衡对 L2NS2的请求。
  3. L2NS2负载平衡到缓存服务器CRS1的请求,并且请求是可缓存的。L2NS2在请求标头中包含客户端IP。
  4. CRS1将响应发送到 L2NS2因为 L2NS2在连接到 CRS1时使用其 MIP作为源 知识产权地址。
  5. 借助请求标头中的客户端IP地址,L2NS2识别请求来自的客户端。L2NS2直接将响应发送到路由器,避免上层设备上的不必要的负载。
  6. 路由器将响应转发到客户端。

N层缓存重定向在缓存绕过期间的工作原理

下图显示了当客户端请求发送到源服务器以获取响应时缓存重定向的工作原理。

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

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

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

交通流量

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

N层缓存重定向在缓存未命中期间的工作原理

下图显示了未缓存客户端请求时缓存重定向的工作原理。

图 3.缓存错误的情况下的缓存重定向

缓存错误的情况下的缓存重定向

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

交通流量

  1. 客户端发送请求,路由器将其转发到L1NS1。
  2. L1NS1负载平衡对 L2NS2的请求。
  3. L2NS2负载平衡到缓存服务器CRS1的请求,因为请求是可缓存的。
  4. CRS1没有响应(缓存未命中)。CRS1 通过较低层中的设备将请求转发到源服务器。L2NS3 拦截交通。
  5. L2NS3从标头获取客户端IP并将请求转发到源服务器。数据包中包含的源端口是L2NS3端口,请求从该端口发送到源服务器。
  6. 源服务器将响应发送到上层设备L1NS2。
  7. 根据PBR策略,L1NS2将流量转发到较低层L2NS3中的相应设备。
  8. L2NS3将响应转发到路由器。
  9. 路由器将响应转发到客户端。