《Squid 汉语权威性手册》第9章 译者:彭勇华代理

译者序:
自己工作中维护保养着数台Squid 网络服务器,数次参考Duane Wessels(他也是Squid 的创办人)的这部书,原书名是 Squid: The Definitive Guide ,由O Reilly 出版发行。我还在业余组時间把它汉语翻译成汉语,期待对汉语Squid 客户有一定的协助。对一般的企业网上客户,Squid 可当做代理商网络服务器;而对Sina,NetEase 那样的大中型站点,Squid 又当做WEB 加快器。这2个人物角色它都饰演得出现异常出色。窗前繁星点点,开源系统的全球亦如这夜空般漂亮,而Squid 是在其中夺目的一颗星。
对本译版有一切难题,请跟我联络,我的Email是: 彭勇华[/color:00a6cd12d5][/b:00a6cd12d5]
--------------------------------------------------------------------------------------
第9章 Cache阻拦
Cache阻拦是让传送流入Squid的时兴,它无需配备一切顾客端。你可以以配备路由器器或互换机将HTTP联接分享到squid运作的服务器。squid运作的实际操作系统软件被配备成接纳外界数据信息包,并将其提交给squid过程。以便让HTTP阻拦起效,你务必配备3个单独的要素:互联网机器设备,squid运作的实际操作系统软件,和squid本身。
ww-01
(译者注:Cache阻拦具体上指的是Squid的全透明代理商)
9.1它怎样工作中?
Cache阻拦包括了一些互联网蒙骗,它对了解在顾客端和Squid中间的对话有效。我应用图9-1和以下的tcpdump实例輸出,来表述当数据信息包根据互联网时,怎样被阻拦。
 
恳求,比如:。它必须初始网络服务器的IP详细地址,因此先进行一个DNS恳求:
Packet 1
TIME: 19:54:41.317310
UDP: 206.168.0.3.2459 -  206.168.0.2.53
DATA: .d................
---------------------------------------------------------------------------
Packet 2
TIME: 19:54:41.317707 (0.000397)
UDP: 206.168.0.2.53 -  206.168.0.3.2459
DATA: .d........................PR.....%........PR.
 ....$........PR............PR...ns2.Q........PR
 ...ns...M...............h.............!.z.......b......
2.如今拥有IP详细地址,客户代理商原始化到初始网络服务器80端口号的TCP联接:
Packet 3
TIME: 19:54:41.320652 (0.002945)
TCP: 206.168.0.3.3897 -  208.201.239.37.80 Syn
DATA:  No data
3.路由器器或互换机留意到目地详细地址是80端口号的TCP SYN包。下一步会产生甚么依靠于特殊的阻拦。在4层互换和路由器对策上,互联网机器设备简易的将TCP包分享到Squid的数据信息路由协议详细地址。当squid立即挂在互联网机器设备处时,就是这样工作中。对WCCP来讲,路由器器封裝TCP包为GRE包。由于GRE包有它自身的IP详细地址,它将会被根据好几个子网开展路由器。也就是说,WCCP不必求squid立即挂在路由器器上。
4.Squid服务器的实际操作系统软件接纳到阻拦包。对4层互换来讲,TCP/IP包并沒有更改。
倘若包应用了GRE封裝,服务器会脱离外界的IP和GRE头顶部,并将初始的TCP/IP包放到键入序列里。
留意squid服务器接纳到的包是对于外界详细地址的(初始网络服务器的)。一切正常状况下,这一包不配对一切当地详细地址,它会被抛弃。以便让服务器接纳外界数据信息包,你务必在大多数数实际操作系统软件上激话IP分享。
5.顾客端的TCP/IP包被包过虑编码解决。数据信息包务必配对某一标准,该标准标示核心转送这一包给squid。假如沒有那样的标准,核心简易的将包依照它自身的方法分享给初始网络服务器,我觉得就是你要想的。
留意SYN包的目地端口号是80,但squid将会侦听不在同的端口号,比如3128。包过虑标准容许你更改端口号号。你没必让squid侦听在80端口号。根据tcpdump,你可以看到这步,由于分享的包不容易再度根据互联网插口编码。
即便squid侦听在80端口号,包过虑器的跳转标准还是必需的。可让squid没有这种端口号上接纳阻拦包。跳转标准有点儿奇异,它转送外界数据信息包给squid。
6.Squid接纳到新联接的通告,它接纳这一联接。核心推送SYN/ACK包回到给顾客端:
Packet 4
TIME: 19:54:41.320735 (0.000083)
TCP: 208.201.239.37.80 -  206.168.0.3.3897 SynAck
DATA:  No data
就象你看到的一样,发源地址是初始网络服务器,虽然这一包不容易到达初始网络服务器。实际操作系统软件仅仅简易的将发源地址和目地详细地址互换一下,并将它放入响应数据信息包里。
7.客户代理商接纳到SYN/ACK包,创建起详细的TCP联接。客户代理商如今坚信它是联接到初始网络服务器,因此它推送HTTP恳求:
Packet 5
TIME: 19:54:41.323080 (0.002345)
TCP: 206.168.0.3.3897 -  208.201.239.37.80 Ack
DATA:  No data
---------------------------------------------------------------------------
Packet 6
TIME: 19:54:41.323482 (0.000402)
TCP: 206.168.0.3.3897 -  208.201.239.37.80 AckPsh
DATA: GET / HTTP/1.0
 User-Agent: Wget/1.8.2
 Host: 
 Accept: */*
 Connection: Keep-Alive
8.Squid接纳HTTP恳求。它应用HTTP Host头顶部来变换部分URL为详细的URL。ess.log文档里看到。
9.从这一点刚开始,squid一切正常的解决恳求。一般cache命里会马上回到。cache遗失会分享到初始网络服务器。
10.最终,是squid从初始网络服务器接纳到的响应:
Packet 8
TIME: 19:54:41.448391 (0.030030)
TCP: 208.201.239.37.80 -  206.168.0.3.3897 AckPsh
DATA: HTTP/1.0 200 OK
 Date: Mon, 29 Sep 2003 01:54:41 GMT
 Server: Apache/1.3.26 (Unix) PHP/4.2.1 mod_gzip/1.3.19.1a mo
 d_perl/1.27
 P3P: policyref= w3c/p3p.xml ,CP= C
 AO DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONo OUR
 DELa PUBi OTRa IND PHY ONL UNI PUR COM NAV INT DEM CNT STA P
 RE
 Last-Modified: Sun, 28 Sep 2003 23:54:44 GMT
 ETag:  1b76bf-b910-3ede86c4
 Accept-Ranges: bytes
 Content-Length: 47376
 Content-Type: text/html
 X-Cache: MISS from 
 X-Cache: MISS from 10.0.0.1
 Connection: keep-alive
不可该让互换机或路由器器来阻拦squid到初始网络服务器的联接。倘若这类状况产生,squid完毕与自身的对话,而且不可以考虑一切cache遗失。避免这种分享死循环系统的最好方式是,确定客户和squid联接到互换机或路由器器的单独插口。不管什么时候,应当在特定插口上运用阻拦标准。最显著的,不应该在squid应用的插口上激话阻拦。
9.2为什么要(或不必)阻拦?
很多企业发觉,cache阻拦很有效,由于她们不可以,或不肯意配备全部客户的web访问器。相对性于配备不计其数台工作中站来讲,在单独互换机或路由器器上做一点互联网蒙骗更非常容易。从大家遭遇的很多挑选看来,cache阻拦的确有好也是有坏。它将会给你的日常生活更非常容易,但或许会更难。


扫描二维码分享到微信