注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

WCCP协议与squid联机实验  

2013-05-27 03:26:14|  分类: squid系统应用 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
wCCP Web Cache Communication Protocol )是一种高速缓存技术协议,是路由器与缓存引擎Cache Engine 之间的通信协议,其中缓存引擎是作为Web 缓存的专用设备,用来管理存储Web 页面。路由器通过与缓存引擎的协同工作处理Web 数据流,达到提高数据传输效率、缩短Web 访问时间的目的,这些Web 数据流包括来自网络内部或外部的用户浏览Web 服务器上页面和图形的请求,以及WWW 服务器对这些请求的答复。当用户向Internet 上的WWW 服务器发出浏览某页面的请求时,路由器首先把请求发给缓存引擎,如果缓存引擎已经保存了这个页面的拷贝,则由缓存引擎直接将这个页面发给用户,否则缓存引 擎就到Web 服务器上取得这个页面和这个页面上的所有对象,自己保存一份备份后再转发给用户,此后当用户对相同的网页提出访问请求时,就由网络缓存引擎来满足其要求, 将已存储该网页的拷贝发送给用户。

 WCCP 技术特点及应用

 WCCP 协议定义了路由和缓存引擎之间透明重定向的机制,在网络缓存引擎中实现负载分配的方法、转发方式的协商等等各个方面,这里只介绍WCCP 主要的技术特点和应用。

 

 特点:

 1、支持动态服务与标准服务

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

 

2、支持多路由器

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

 3、实现透明地重定向

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

 4、支持两种重定向方法

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

 

5、负载均衡

 WCCP 在缓存引擎群之间的负载均衡方式有两种:散列方式和掩码/变量值集合方式。负载均衡的目的是为了将数据流负载均匀地分配给缓存引擎群集。通过负载均衡的方 法,WCCP 可将通信流重定向到缓存引擎,因此,当服务组中增加或减少了缓存引擎时,WCCP 可重新在缓存引擎群之间分配负载。这样WCCP 支持可伸缩的缓存引擎群集,使可用资源更有效地利,用同时为用户提供高质量的服务。

 

 6、报文退还

 当缓存引擎把不能处理的报文退还给路由器时,该路由器将不再把该报文重定向,而进行正常的转发。例如,缓存引擎已经过载没有空间缓存报文时,它将拒绝任何重定向报文并把它们退还安全验证。

 

应  用

 WCCP 技术可以有效地降低Internet 网络流量,节省昂贵的广域网链路费用。由于实现WCCP 协议的路由器透明地实现了用户浏览器对Web 服务器的HTTP 请求的重定向,所以用户不用将浏览器配置成代理服务器模式。这对ISP 和大的企业来说将是非常适宜的,因为他们要统一实现用户配置非常困难并且昂贵,不易于管理和维护,利用WCCP 的特点,现在就不用将用户浏览器配置成统一的代理服务器模式了,这无疑是非常令人感兴趣的。

 另外,由于缓存引擎对用户和网络操作都是透明的,ISP 可以根据需要用分层的形式将缓存引擎放在实际网络中的数个不同层次的网络地点。譬如在核心层放置一个缓存引擎群集,在低层的POP 服务器边放置一些缓存引擎,形成一个有层次性的体系结构,就可以实现高质量服务,同时实现有效利用网络资源的目的。

 兴之所至,以cisco catalyst 3560 3层交换机为平台,对WCCP v2的实现如下:

 ::前提条件::

 1.IOS版本应为12.2(37)SE以上的IP-Services版,否则不支持WCCP(具体平台不同,IOS版本需求也不同);

 2.交换机需设置sdm prefer routing(这在ciscowccp配置文档有提及);

 
@@@@@@@@@@@@@@@@@配置如下:

一、思科系设备配置:

 config t #进行配置模式;

 ip wccp web-cache redirect-list 20 group-list 19 (#全局启用wccp v2

 interface Vlan 1 #表示对vlan1进行配置

ip address 172.16.3.254 255.255.255.0

 ip wccp web-cache redirect in (对vlan 1的入向流量进行检查/重定向)

 access-list 19 permit 172.16.3.2 (允许这个ip的缓存引擎连接)

 access-list 20 permit 172.16.3.6 (拦截这个IPweb访问)

 access-list 20 deny any

 c3560配置完成。

c3560会把拦截下来的web访问通过改写目标MAC地址为缓存引擎的方式,交给squidL2 mode)。


 二、Squid 2.7-STABLE9的配置如下:

 http_port 3128 transparent

 wccp2_router 172.16.3.254 WCCP路由器地址)

 wccp2_address 0.0.0.0

 wccp2_service standard 0 (标准web service

 wccp2_forwarding_method 2 #1 gre, 2 L2, use 1 for router and 2 for switch

 wccp2_return_method 2 #1 gre, 2 L2, use 1 for router and 2 for switch

 wccp2_assignment_method 2 #1 hash, 2 mask, use 1 for router and 2 for switch

 squid配置完成。

 

三、iptables配置如下:

  iptables -t nat -A PREROUTING -s ! 172.16.3.2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

 (172.16.3.2是缓存引擎地址:如果是交换机即用端口地址即可)

 iptables -A INPUT -p udp -m state --state NEW -m udp --dport 2048 -j ACCEPT

 iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT

(udp/2048WCCP协议端口,tcp/3128是缓存引擎端口)

  评论这张
 
阅读(152)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017