WCCP 模式

Web 缓存通信协议 (WCCP) 是思科推出的动态路由协议。WCCP 版本 2 最初仅用于 Web 缓存,成为一种更通用的协议,适用于 Citrix SD-WAN 设备等加速器使用。

当内联操作不切实际时,WCCP 模式是安装 SD-WAN 设备的最简单方法。当发生非对称路由时,也就是说,当来自同一连接的数据包通过不同的 WAN 链接到达时,它也很有用。在 WCCP 模式下,路由器使用 WCCP 2.0 协议来转移通过设备的流量。设备接收到后,加速引擎和流量成形器将流量视为在内联模式下接收流量。

注意

  • 为了本次讨论的目的, WCCP 版本 1 被认为已过时,只提供 WCCP 版本 2。
  • 标准的 WCCP 文档称 WCCP 客户端为 “缓存”。为避免与实际缓存混淆,Citrix 通常避免将 WCCP 客户端称为 “缓存”。相反,WCCP 客户端通常被称为 “设备”。
  • 本讨论使用术语 “路由器” 来表示支持 WCCP 的路由器和支持 WCCP 的交换机。虽然这里使用了 “路由器” 一词,但一些高端交换机也支持 WCCP,并且可以与 SD-WAN 设备一起使用。

SD-WAN 设备支持两种 WCCP 模式:

  • WCCP 是自 3.x 发布以来支持的原始 SD-WCCP 产品。它支持单个设备服务组(无群集)。
  • 在 7.2 版中引入的 WCCP 群集允许您的路由器在多台设备之间进行负载平衡。

WCCP 模式的工作原理

WCCP 部署 SD-WAN 设备的物理模式是单臂模式,在该模式下,设备直接连接到 WAN 路由器上的专用端口。WCCP 标准包括一个协议协商,其中设备将自身注册到路由器,两者协商使用它们支持的共同功能。协商成功后,将根据 WCCP 路由器和路由器上定义的重定向规则在路由器和设备之间路由流量。

WCCP 模式设备只需要一个以太网端口。设备应部署在专用路由器端口(或支持 WCCP 的交换机端口)上,或通过 VLAN 与其他流量隔离。不要混合内联模式和 WCCP 模式。

下图显示了如何将路由器配置为拦截选定接口上的流量并将其转发到启用 WCCP 的设备。每当启用 WCCP 的设备不可用时,流量不会被拦截,并且会正常转发。

图 1. WCCP 流量量

本地化后的图片

流量封装

WCCP 允许以下任一模式在路由器和设备之间转发流量:

  • L2 模式-要求路由器和设备位于同一 L2 段(通常为以太网段)上。IP 数据包未修改,只有 L2 地址被更改以转发数据包。在许多设备中,L2 转发是在硬件层执行的,从而获得最大的性能。由于其性能优势,L2 转发是首选模式,但并非所有支持 WCCP 的设备都支持该模式。
  • GRE 模式-通用路由封装 (GRE) 是一种路由协议,理论上可以将设备放置在任何地方,但为了性能,它应该放置在路由器附近,在快速、不拥挤的路径上,穿越尽可能少的交换机和路由器。GRE 是原来的 WCCP 模式. 将创建 GRE 标头并将数据包附加到其中。接收设备删除 GRE 头。通过封装,设备可以位于未直接连接到路由器的子网上。但是,封装过程和随后的路由都会增加路由器的 CPU 开销,并且添加 28 字节 GRE 头可能会导致数据包碎片,从而增加额外的开销。

WCCP 模式支持多个路由器和 GRE VS L2 转发。每个路由器可以有多个 WAN 链接。每个链接都可以有自己的 WCCP 服务组。

除非设备管理 UDP 流量以及 TCP 流量,否则流量调整无法有效。如果需要流量调整,建议使用第二个服务组(每个 WAN 链接都有 UDP 服务组)。

注册和状态更新

WCCP 客户端(设备)使用 UDP 端口 2048 向路由器注册自己,并协商应向其发送哪些流量,以及该流量应使用哪些 WCCP 功能。设备对此流量进行操作,并将生成的流量转发到原始端点节点。通过 WCCP 注册过程和检测信号协议跟踪设备的状态。设备首先通过 WCCP 控制通道(UDP 端口 2048)与路由器联系,设备和路由器分别使用名为 “Hhere_I_Am” 和 “I_See_YU” 的数据包交换信息。默认情况下,此过程每十秒重复一次。如果路由器在其中三个时间间隔内无法接收来自设备的消息,则会认为该设备发生故障,并停止向其转发流量,直到重新建立联系人为止。

服务和服务组

使用同一路由器的不同设备可以提供不同的服务。为了跟踪哪些服务分配给哪些设备,WCCP 协议使用服务组标识符(一个字节整数)。当设备向路由器注册自身时,它也包括服务组号。

  • 单个设备可以支持多个服务组。
  • 单个路由器可以支持多个服务组。
  • 单个设备可以对多个路由器使用同一个服务组。
  • 单个路由器可以对多个设备使用同一个服务组。对于 SD-WAN 设备,WCCP 群集模式下支持多台设备,而 WCCP 模式下支持单台设备。
  • 每个设备为每个方向和每个服务组独立指定一个 “返回类型”(L2 或 GRE)。SD-WAN 4000/5000 设备始终为两个方向指定相同的返回类型。其他 SD-WAN 设备允许退货类型不同。

图 2. 为不同的服务使用不同的 WCCP 服务组

本地化后的图片

多个服务组 可以在同一设备上与 WCCP 一起使用。例如,设备可以从一个 WAN 链接接接收服务组 51 流量,从另一个 WAN 链接接接收服务组 62 流量。该设备还支持多个路由器。所有路由器都使用相同的服务组还是不同的路由器使用不同的服务组是无动于衷的。

服务组跟踪。如果数据包到达一个服务组,则相同连接的输出数据包将在同一服务组上发送。如果数据包到达多个服务组上的同一连接,则输出数据包将跟踪该连接的最近查看的服务组。

高可用性行为

当 WCCP 在高可用性模式下使用时,主设备会在与路由器联系时发送自己的 apA 或 apB 管理 IP 地址,而不是高可用性对的虚拟地址。如果发生故障转移,新的主设备会自动与路由器联系,重新建立 WCCP 通道。在大多数情况下,WCCP 超时期限和高可用性故障转移时间重叠。因此,网络中断小于两个延迟的总和。

标准 WCCP 只允许 WCCP 服务组中的单个设备。如果新设备尝试与路由器联系,则会发现另一台设备正在处理服务组,并且新设备会设置警报。它会定期检查以确定该服务组是否与其他设备处于活动状态,并且新设备在其他设备变为非活动状态时处理该服务组。WCCP 群集允许每个服务组多台设备。

部署拓扑

下图显示了一个简单的 WCCP 部署, 适用于 L2 或 GRE. 流量端口 (1/1) 直接连接到专用路由器端口 (Gig 4/12)。

图 3. WCCP 简单部署

本地化后的图片

在此示例中,SD-WAN 4000/5000 以单臂模式部署,流量端口 (1/1) 和管理端口 (0/1) 各连接到自己的专用路由器端口。

在路由器上,WCCP 在 WAN 和 LAN 端口上的语句中配置了相同的 IP WCCP 重定向。使用了两个服务组,即 71 和 72。服务组 71 用于 TCP 流量,服务组 72 用于 UDP 流量。设备不会加速 UDP 流量,但可以对其应用流量调整策略。

注意:WCCP 规范不允许转发 TCP 和 UDP 以外的协议,因此 ICMP 和 GRE 等协议始终绕过设备。

WCCP 群集

SD-WAN 设备支持 WCCP 群集,这使您的路由器能够负载平衡多台设备之间的流量。有关将 SD-WAN 设备部署为群集的更多信息,请参阅WCCP 群集

WCCP 规范

有关 WCCP 的详细信息,请参阅 Web 缓存通信协议 V2,修订版本 1http://tools.ietf.org/html/draft-mclaggan-wccp-v2rev1-00

注意

在 WCCP 中部署 SD-WAN 以实现交换机冗余时,我们可以将交换机 2 连接到 apB。为 apB 创建一个不同的 SG,给它一个低于 apA SG 的优先级。如果 apA 更高的 SG 已启动,则将用于重定向。如果下降,将使用 apB SG。请注意,apA 和 apB 需要位于不同的子网上。

WCCP 模式