WCCP

来自站长百科
跳转至: 导航、​ 搜索

WCCP(Web Cache Communication Protocol)网页缓存通信协议,这个协议能让一台路由器与你的缓存服务器对话。它们谈论的是这台路由器应该拦截什么类型的通信并且通过一个GRE隧道重新引导到缓存。WCCP第二版支持身份识别等安全措施,支持多台路由器、缓存路由器和许多协议。因此,除了WWW,HTTP之外,你还可以做文件服务器和其它类型的缓存。WCCP协议定义了路由和缓存引擎之间透明重定向的机制,在网络缓存引擎中实现负载分配的方法、转发方式的协商等等各个方面。

WCCP技术特点及应用[ ]

持动态服务与标准服务[ ]

WCCP支持将多种TCP端口的数据流重定向到缓存引擎。WCCP除了支持把TCP端口为80的HTTP数据流重定向到缓存引擎的标准服务外,还支持将把TCP端口为非80的HTTP数据流重定向到缓存引擎的动态服务。

支持多路由器[ ]

  • WCCP允许系列缓存引擎连接到若干路由器上,提供冗余和分布式的结构。WCCP是这样实现路由器和缓存引擎之间的通信的:将若干路由器和系列缓存引擎组成一个服务组Service Group,并且这些路由器和引擎都彼此知道对方的存在。一旦建立了服务组,就专门指定一个缓存引擎来决定各个缓存引擎间的负载分配。
  • 在一个服务组中,一般能够为所有路由器所见,并具有最小IP地址的那个缓存引擎成为首领缓存引擎,它的任务是为缓存引擎群分配数据流,其分配信息被传送给整个服务组,这样每个路由器就可以正确地重定向数据分组,而缓存引擎群可以更好地管理它们的负载。

实现透明地重定向[ ]

WCCP 路由器透明地实现用户浏览器对Web服务器的HTTP 请求的重定向,最终用户并不知道所浏览的页面并不是直接来自Web服务器而是缓存引擎。除此之外,缓存引擎的操作对网络也是透明的,对非重定向传输来说路由器完全扮演了他的通常角色即正常的转发。

支持两种重定向方法[ ]

WCCP支持两种重定向方法:GRE封装重定向和L2重写重定向。GRE封装重定向方法,是在IP报文的头部封装一个GRE头,在IP报文尾部封装一个四字节的Redirect头,形成一个新的IP报文的方法。L2重写重定向方法,则不封装IP报文,而是由WCCP路由器直接用目标缓存引擎的MAC地址替换IP报文的目的MAC地址即可。GRE封装重定向方法允许目标缓存引擎与路由器之间跨网络连接,而L2 重写重定向方法要求目标缓存引擎与路由器在链路层Layer2 直接相连。

负载均衡[ ]

  • 当缓存引擎把不能处理的报文退还给路由器时,该路由器将不再把该报文重定向,而进行正常的转发。例如,缓存引擎已经过载没有空间缓存报文时,它将拒绝任何重定向报文并把它们退还安全验证。
  • WCCP在缓存引擎群之间的负载均衡方式有两种:散列方式和掩码/变量值集合方式。负载均衡的目的是为了将数据流负载均匀地分配给缓存引擎群集。通过负载均衡的方法,WCCP可将通信流重定向到缓存引擎,因此,当服务组中增加或减少了缓存引擎时,WCCP可重新在缓存引擎群之间分配负载。这样WCCP支持可伸缩的缓存引擎群集,使可用资源更有效地利,用同时为用户提供高质量的服务。

WCCP工作原理[ ]

  1. 一个网页浏览器生成一个请求,然后发送到一台路由器上,路由器截取该请求。
  2. 路由器将该请求转发到一个在GRE帧中的新位置上,以防止对初始数据包进行任何修改。
  3. 它们可以缩短对网页请求的响应时间和优化对互联网连接的带宽利用。
  4. 它们可以记录下网页请求,并给出相关报告和对内容进行过滤。
  5. 新设备——通常是某种网页设备——可以选择直接作为服务器响应该请求,或者将它转发到别处去。假如它接受了该数据包的话,那么新设备就可以提供一个响应。
  6. 使用WCCP的好处是我们假设由其他设备来提供路由器无法提供的服务——比如,网页内容过滤,缓存,记录,安全,或者认证。我已经看到过WCCP被用在Squid代理服务器上,BlueCoat网页缓存以及内容过滤设备上,还有Cisco的内容高速缓存引擎上。而透明路由通信到一台网页设备上的好处,则是你根本无需修改你的网页浏览器(而且你也无需配置一台代理服务器)。另外,网页快速缓存设备还提供如下好处。

WCCP配置过程[ ]

以下是WCCP的一个配置示例:

Router(config)# ip wccp version 2

Router(config)# ip wccp web-cache password mypassword

Router(config)# interface Fa0/0

Router(config-if)# ip wccp web-cache redirect out

Router(config-if)# ^Z

这些命令告知路由器,它应当接受使用“MYPASSWORD”作为口令的WCCP注册请求。同时,它也告知WCCP缓存引擎,哪个路由器在运行WCCP,并向该路由器注册缓存。

相关条目[ ]

参考来源[ ]