NAT技术原理与应用
1 概述
1.1 简介
1.1.1 名词解释
公有IP地址:也叫全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻 址的地址。
私有IP地址:也叫内部地址,属于非注册地址,专门为组织机构内部使用。因特网分配编号委员会(IANA)保留了3块IP地址做为私有IP地址:
10.0.0.0 ——— 10.255.255.255
172.16.0.0——— 172.16.255.255
192.168.0.0———192.168.255.255
地址池:地址池是有一些外部地址(全球唯一的IP地址)组合而成,我们称这样的一个地址集合为地址池。在内部网络的数据包通过地址转换到达外部网络时,将会在地址池中选择某个IP地址作为数据包的源IP地址,这样可以有效的利用用户的外部地址,提高访问外部网络的能力。
1.1.2关于NAT
NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术,如下图所示。因此我们可以认为,NAT在一定程度上,能够有效的解决公网地址不足的问题。
简单地说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口,打个比方就像院子的门一样)处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共 IP地址紧缺的问题。通过这种方法,可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,所有内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。如下图所示。这里提到的内部地址,是指在内部网络中分配给节点的私有IP地址,这个地址只能在内部网络中使用,不能被路由转发。
NAT 功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。比如Cisco路由器中已经加入这一功能,网络管理员只需在路由器的IOS中设置NAT功能,就可以实现对内部网络的屏蔽。再比如防火墙将WEB Server的内部地址192.168.1.1映射为外部地址202.96.23.11,外部访问202.96.23.11地址实际上就是访问访问 192.168.1.1。此外,对于资金有限的小型企业来说,现在通过软件也可以实现这一功能。Windows 98 SE、Windows 2000 都包含了这一功能。
1.2 分类
NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。
1.2.1静态NAT
通过手动设置,使 Internet 客户进行的通信能够映射到某个特定的私有网络地址和端口。如果想让连接在 Internet 上的计算机能够使用某个私有网络上的服务器(如网站服务器)以及应用程序(如游戏),那么静态映射是必需的。静态映射不会从 NAT 转换表中删除。
如果在 NAT 转换表中存在某个映射,那么 NAT 只是单向地从 Internet 向私有网络传送数据。这样,NAT 就为连接到私有网络部分的计算机提供了某种程度的保护。但是,如果考虑到 Internet 的安全性,NAT 就要配合全功能的防火墙一起使用。
对于以上网络拓扑图,当内网主机 10.1.1.1如果要与外网的主机201.0.0.11通信时,主机(IP:10.1.1.1)的数据包经过路由器时,路由器通过查找NAT table 将IP数据包的源IP地址(10.1.1.1)改成与之对应的全局IP地址(201.0.0.1),而目标IP地址201.0.0.11保持不变,这样,数据包就能到达201.0.0.11。而当主机HostB(IP:201.0.0.11) 响应的数据包到达与内网相连接的路由器时,路由器同样查找NAT table,将IP数据包的目的IP 地址改成10.1.1.1,这样内网主机就能接收到外网主机发过来的数据包。在静态NAT方式中,内部的IP地址与公有IP地址是一种一一对应的映射关系,所以,采用这种方式的前提是,机构能够申请到足够多的全局IP地址。
1.2.2 动态NAT
动态地址NAT只是转换IP地址,它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。当远程用户联接上之后,动态地址NAT就会分配给他一个IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。
动态NAT方式适合于 当机构申请到的全局IP地址较少,而内部网络主机较多的情况。内网主机IP与全局IP地址是多对一的关系。当数据包进出内网时,具有NAT功能的设备对IP数据包的处理与静态NAT的一样,只是NAT table表中的记录是动态的,若内网主机在一定时间内没有和外部网络通信,有关它的IP地址映射关系将会被删除,并且会把该全局IP地址分配给新的IP数据包使用,形成新的NAT table映射记录。
1.2.3网络地址端口转换NAPT
网络地址端口转换NAPT(Network Address Port Translation)则是把内部地址映射到外部网络的一个IP地址的不同端口上。它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT与 动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的端口号。
NAPT是使用最普遍的一种转换方式,它又包含两种转换方式:SNAT和DNAT。
(1)源NAT(Source NAT,SNAT):修改数据包的源地址。源NAT改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是一具SNAT的例子。
(2)目的NAT(Destination NAT,DNAT):修改数据包的目的地址。Destination NAT刚好与SNAT相反,它是改变第一个数据包的目的地地址,如平衡负载、端口转发和透明代理就是属于DNAT。
源NAT举例:对于以上网络拓扑图,内网的主机数量比较多,但是该组织只有一个合法的IP地址,当内网主机(10.1.1.3)往外发送数据包时,则需要修改数据包的IP地址和TCP/UDP端口号,例如将
源IP:10.1.1.3
源port:1493
改成
源IP:201.0.0.1
源port:1492(注意:源端口号可以与原来的一样也可以不一样)
当外网主机(201.0.0.11)响应内网主机(10.1.1.3)时,应将:
目的IP:201.0.0.1
目的port:1492
改成
目的IP:10.1.1.3
目的port:1493
这样,通过修改IP地址和端口的方法就可以使内网中所有的主机都能访问外网,此类NAT适用于组织或机构内只有一个合法的IP地址的情况,也是动态NAT的一种特例。
目的NAT举例:这种方式适用于内网的某些服务器需要为外网提供某些服务的情况。例如以上拓扑结构,内网服务器群(ip地址分别为:10.1.1.1,10.1.1.2,10.1.1.3等)需要为外网提供WEB 服务,当外网主机HostB访问内网时,所发送的数据包的目的IP地址为10.1.1.127,端口号为:80,当该数据包到达内网连接的路由器时,路由器查找NAT table,路由器通过修改目的IP地址和端口号,将外网的数据包平均发送到不同的主机上(10.1.1.1,10.1.1.2,10.1.1.3等),这样就实现了负载均衡。
2 NAT原理
2.1 地址转换
NAT的基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。
如下图所示,NAT网关有2个网络端口,其中公共网络端口的IP地址是统一分配的公共 IP,为202.20.65.5;私有网络端口的IP地址是保留地址为192.168.1.1。私有网中的主机192.168.1.2向公共网中的主机202.20.65.4发送了1个IP包(Dst=202.20.65.4,Src=192.168.1.2)。
当IP包经过NAT网关时,NAT Gateway会将IP包的源IP转换为NAT Gateway的公共IP并转发到公共网,此时IP包(Dst=202.20.65.4,Src=202.20.65.5)中已经不含任何私有网IP的信息。由于IP包的源IP已经被转换成NAT Gateway的公共IP,Web Server发出的响应IP包(Dst= 202.20.65.5,Src=202.20.65.4)将被发送到NAT Gateway。
这时,NAT Gateway会将IP包的目的IP转换成私有网中主机的IP,然后将IP包(Des=192.168.1.2,Src=202.20.65.4)转发到私有网。对于通信双方而言,这种地址的转换过程是完全透明的。转换示意图如下。
如果内网主机发出的请求包未经过NAT,那么当Web Server收到请求包,回复的响应包中的目的地址就是私有网络IP地址,在Internet上无法正确送达,导致连接失败。
2.2 连接跟踪
在上述过程中,NAT Gateway在收到响应包后,就需要判断将数据包转发给谁。此时如果子网内仅有少量客户机,可以用静态NAT手工指定;但如果内网有多台客户机,并且各自访问不同网站,这时候就需要连接跟踪(connection track)。如下图所示:
在NAT Gateway收到客户机发来的请求包后,做源地址转换,并且将该连接记录保存下来,当NAT Gateway收到服务器来的响应包后,查找Track Table,确定转发目标,做目的地址转换,转发给客户机。
2.3 端口转换
以上述客户机访问服务器为例,当仅有一台客户机访问服务器时,NAT Gateway只须更改数据包的源IP或目的IP即可正常通讯。但是如果Client A和Client B同时访问Web Server,那么当NAT Gateway收到响应包的时候,就无法判断将数据包转发给哪台客户机,如下图所示。
此时,NAT Gateway会在Connection Track中加入端口信息加以区分。如果两客户机访问同一服务器的源端口不同,那么在Track Table里加入端口信息即可区分,如果源端口正好相同,那么在实行SNAT和DNAT的同时对源端口也要做相应的转换,如下图所示。
3 应用
NAT主要可以实现以下几个功能:数据包伪装、平衡负载、端口转发和透明代理。
数据伪装: 可以将内网数据包中的地址信息更改成统一的对外地址信息,不让内网主机直接暴露在因特网上,保证内网主机的安全。同时,该功能也常用来实现共享上网。例如,内网主机访问外网时,为了隐藏内网拓扑结构,使用全局地址替换私有地址。
端口转发: 当内网主机对外提供服务时,由于使用的是内部私有IP地址,外网无法直接访问。因此,需要在网关上进行端口转发,将特定服务的数据包转发给内网主机。例如公司小王在自己的服务器上架设了一个Web网站,他的IP地址为192.168.0.5,使用默认端口80,现在他想让局域网外的用户也能直接访问他的Web站点。利用NAT即可很轻松的解决这个问题,服务器的IP地址为210.59.120.89,那么为小王分配一个端口,例如81,即所有访问210.59.120.89:81的请求都自动转向192.168.0.5:80,而且这个过程对用户来说是透明的。
负载平衡:目的地址转换NAT可以重定向一些服务器的连接到其他随机选定的服务器。例如1.2.3所讲的目的NAT的例子。
失效终结:目的地址转换NAT可以用来提供高可靠性的服务。如果一个系统有一台通过路由器访问的关键服务器,一旦路由器检测到该服务器当机,它可以使用目的地址转换NAT透明的把连接转移到一个备份服务器上,提高系统的可靠性。
透明代理:例如自己架设的服务器空间不足,需要将某些链接指向存在另外一台服务器的空间;或者某台计算机上没有安装IIS服务,但是却想让网友访问该台计算机上的内容,这个时候利用IIS的Web站点重定向即可轻松的帮助我们搞定。
4 NAT的缺陷
NAT在最开始的时候是非常完美的,但随着网络的发展,各种新的应用层出不穷,此时NAT也暴露出了缺点。NAT的缺陷主要表现在以下几方面:
(1) 不能处理嵌入式IP地址或端口
NAT设备不能翻译那些嵌入到应用数据部分的IP地址或端口信息,它只能翻译那种正常位于IP首部中的地址信息和位于TCP/UDP首部中的端口信息,如下图,由于对方会使用接收到的数据包中嵌入的地址和端口进行通信,这样就可能产生连接故障,如果通信双方都是使用的公网IP,这不会造成什么问题,但如果那个嵌入式地址和端口是内网的,显然连接就不可能成攻,原因就如开篇所说的一样。MSN Messenger的部分功能就使用了这种方式来传递IP和端口信息,这样就导致了NAT设备后的客户端网络应用程序出现连接故障。
(2) 不能从公网访问内部网络服务
由于内网是私有IP,所以不能直接从公网访问内部网络服务,比如WEB服务,对于这个问题,我们可以采用建立静态映射的方法来解决。比如有一条静态映射,是把218.70.201.185:80与192.168.0.88:80映射起的,当公网用户要访问内部WEB服务器时,它就首先连接到218.70.201.185:80,然后NAT设备把请求传给192.168.0.88:80,192.168.0.88把响应返回NAT设备,再由NAT设备传给公网访问用户。
(3) 有一些应用程序虽然是用A端口发送数据的,但却要用B端口进行接收,不过NAT设备翻译时却不知道这一点,它仍然建立一条针对A端口的映射,结果对方响应的数据要传给B端口时,NAT设备却找不到相关映射条目而会丢弃数据包。
(4) 一些P2P应用在NAT后无法进行
对于那些没有中间服务器的纯P2P应用(如电视会议,娱乐等)来说,如果大家都位于NAT设备之后,双方是无法建立连接的。因为没有中间服务器的中转,NAT设备后的P2P程序在NAT设备上是不会有映射条目的,也就是说对方是不能向你发起一个连接的。现在已经有一种叫做P2P NAT穿越的技术来解决这个问题。
5.结语
NAT技术无可否认是在ipv4地址资源的短缺时候起到了缓解作用;在减少用户申请ISP服务的花费和提供比较完善的负载平衡功能等方面带来了不少好处。但是在ipv4地址在以后几年将会枯竭,NAT技术不能改变ip地址空间不足的本质。然而在安全机制上也潜在着威胁,在配置和管理上也是一个挑战。如果要从根本上解决ip地址资源的问题,ipv6才是最根本之路。在ipv4转换到ipv6的过程中,NAT技术确实是一个不错的选择,相对其他的方案优势也非常明显。
代理服务器
1名词解释
我们或许会帮忙家人去办理一些杂务吧!举个例子来说,例如缴费或者是申办提款卡等等的, 由于你并不是『申请者本人』而是『代理人』的角色,
因此有时候会需要拿出一些证件
代理服务器(Proxy Server)与上面真实世界一样,当客户端有因特网的数据要求时, Proxy 会帮用户去向目的地取得用户所需要的数据。
所以,当客户端指定 WWW 的代理服务器之后,用户的所有 WWW 相关要求就会通过代理服务器去捉取。
代理服务器会架设在整个区网的单点对外防火墙上头,而在区网内部的计算机就都是透过 Proxy 来向因特网要求数据的,这就是所谓的『代理服务器』!
当然,上面的架构仅只是一个案例,但是这个架构比较多人用的原因, 是因为这样的Proxy server 还可以兼做高阶防火墙之用。
客户端向外部要求的数据事实上都是 Proxy 帮用户取得的,因此因特网上面看到要求数据者,将会是 Proxy 服务器的 IP 而不是客户端的 IP。
Proxy server 因为直接对外网,相当于当了个炮灰,外网只能找到这个代理服务器,隐藏内网的机器,从而 起到防火墙的作用。
1.1代理服务器的运作流程
cache的存在,可以做假象的web加速;
当Proxy的快取拥有用户所想要的数据时:
a. Client 端向 Server 端发送一个数据需求封包;
b. Server 端接收之后,先比对这个封包的『来源』与预计要前往的『目标』网站是否为可接受? 如果来源与目标都是合法的,或者说,来源与目标网站我们的 Proxy 都能帮忙取得资料时,那么 Server 端会开始替 Client 取得资料。这个步骤中比较重要的就是『比对政策』啦,有点像是认证的感觉啦;
c. Server 首先会检查自己快取 (新的数据可能在内存中,较旧的数据则放置在硬盘上) 数据, 如果有 Client 所需的数据,那就将数据准备取出,而不经过向 Internet 要求数据的程序;
最后当然就是将数据回传给 Client 端!
当Proxy的快取没有用户所想要的数据时:
1. Client 端向 Server 端发送一个数据需求封包;
2. Server 端接收之后,开始进行政策比对;
3. Server 发现快取并没有 Client 所需要的资料,准备前往因特网抓取数据;
4. Server 开始向 Internet 发送要求与取得相关资料;
5. 最后当然就是将数据回传给 Client 端啰!
注意:
Proxy 对于 cache 的速度是很要求的,而这个 cache 就是硬盘啦!当然,硬盘容量必需要足够大,而且还要『足够快』才行!
因为由上面的流程当中,我们不难发现, cache 是一直被重复存取的一个地方!所以硬盘的好坏就差别很大啦!
可以说他是影响一个 Proxy效能好坏的关键
1.2上层代理服务器
即,我的Proxy 代理服务器的Proxy 代理服务器。
由于可做为我们的上层代理服务器的主机通常是具有较高带宽的, 因此我们透过它去要求数据当然『理论上』速度会更快!而上层代理服务器最大的好处其实是在于『分流』喔
分流的效果示意图:
由于代理服务器需要管控信任的来源端客户端计算机,因此各 ISP 仅能针对自家的用户来开放 Proxy 使用权而已。
1.3常用的代理服务器
1、Microsoft Proxy代理服务器
Microsoft Proxy Server 是微软提供的一种代理服务器解决方案,大型的局域网可以用它作为局域网的代理服务器软件。Microsoft Proxy 除了提供传统的代理功能外,还对当前Internet一些最新的应用提供了代理服务,如IP电话(Internet Phone)、网络寻呼机(ICQ)等。
Microsoft Proxy 包括了Web Proxy、Socks Proxy、Winsock Proxy。其中Web Proxy支持HTTP、FTP等服务,WinSock Proxy支持Telnet、电子邮件、RealAudio、IRC、ICQ等服务,Socks Proxy负责中转使用S0cks代理服务的程序与外界服务器间的信息交换。Microsoft Proxy 在运行Windows NT/2000的服务器上安装后,各工作站就可以使用Web Proxy提供的服务,上网浏览、使用FTP等。如果要使用winSock Proxy和Socks Proxy提供的服务,必须要在客户端安装配置程序,并且还要在服务器端进行设置。
相对于SyGate、WinGate等简易的代理服务器软件,Microsoft Proxy Server功能更强大,适用于企业级或大型网吧的局域网,但由于它一定要运行在WinNT/2000上,且配置比较复杂,小型局域网使用较少。
2、Microsoft ISA 代理服务器
Microsoft Internet Security and Acceleration Server (简称Microsoft ISA或ISA Server)是Microsoft Proxy Server的升级换代产品。ISA Server是一个可扩展的企业防火墙和Neb缓存服务器,可与Windows 2000/2003集成,以便为连网用户实现基于策略的安全的实现、数据访问的加速。
ISA Server 最吸引人的地方在于它和 Active Directory 的集成,这使得我们可以使用与管理其它网络和用户相同的方法来管理用户访问、 Internet 以及安全策略。ISA Server 使用 Microsoft 管理控制台(MMC), MMC 是一个界面,用来管理 Windows 2000/2003 Server 中的许多功能,而且文档十分完善。
ISA Server构建在Windows 2000/2003安全、目录、虚拟专用网络(VPN)和带宽控制基础之上。不论是作为一组单独的防火墙还是缓存服务器来部署,还是以集成的模式来部署, ISA Server均可增强网络的安全性,实施一致的Internet使用策略,加速Internet访问,并最大限度地提高各种规模公司员工的办公效率。
3、WinProxy代理服务器
Winproxy 是一种常用的代理服务器软件,只要安装在局域网的服务器上就可以了,它可以让局域网的多台客户机通过服务器上网。它支持SOCKs 4 & 5,利用Winproxy的SOCKs协议可以让客户机连通QQ。
Winproxy是一款集NAT、代理和防火墙三者为一体的代理软件,它能够支持我们提到过的多种代理方式,同样也能够支持常见的协议。从功能上看,WinProxy与WinGate十分相似,但不如WinGate强大,其性能介于WinGate和CCProxy之间,对于那些不希望使用 WinGate这么复杂软件,但还需要使用NAT共享方式的用户来说,这是一个相当不错的选择。
4 、WinGate代理服务器
WinGate可以作为一个坚固的防火墙,能控制企业内部网络的入出访问。相对同类软件,WinGate有很多优点,如可以限制用户对 Internet访问的能力,通过GateKeeper提供的强劲的远程控制和用户认证能力(Pro版),记录和审计能力, 一个SOCKS5服务器, HTTP缓存(节省带宽和加速访问),连接映射,可作为服务运行等等。
如果使用的是一个十多台计算机的局域网环境,以Wingate为代理服务器通过一个Modem上网,应该说速度还是可以接受的。不过,问题就是我们刚才也提到的,在操控方面,WinGate对用户的要求似乎更高些。
作为一款经典的代理服务软件,WinGate能够提供多种网络代理服务。其最新版除了提供常用的HTTP、Socks代理服务以外,还支持 DHCP、DNS服务。同时,它还提供了完整的POP3和SMTP服务,用户可以借此构建一个邮件服务器。WinGate还特别提供了按需拨号功能。更方便的是,WinGate还能够与Windows用户进行集成,Windows NT/2000系统用户可以直接使用已创建好的用户信息。
5、winRoute代理服务器
WinRoute除了具有代理服务器的功能外,还具有NAT(Network Address Translation,网络地址转换)、防火墙、邮件服务器、DHCP服务器、DNS服务器等功能,能为用户提供一个功能强大的软网关。
WinRoute有很多选项设置,涉及到网络配置的方方面面,但是它的帮助系统却不是很完善,由于WinRoute具有DHCP服务器的功能,局域网内部的机器还可配置成由WinRoute动态分配IP地址。
WinRoute的Commands选单比较简单,可以进行拨号、断线、收发电子邮件。总体来说,WinRoute的网络功能相当全面,是一个优秀的软网关;美中不足的就是它的用户界面显得有些简单,帮助系统不完善,从而增加了配置工作的难度。
6、SyGate代理服务器
SyGate 是一种支持多用户访问因特网的软件,并且是只通过一台计算机,共享因特网帐号,达到上网的目的。使用SyGate 若干个用户能同时通过一个小型网络,迅速、快捷、经济地访问因特网。易于安装 SyGate在数分钟之内便可以安装完成,并且通常不需要其他外加的设置。和其他代理服务器软件不同的是,SyGate仅安装Server便可以了。
易于使用 SyGate拥有直观的图形化界面,懂得操作Windows的人员均会操作。SyGate启动后便在后台运行,不需要人工的干预。易于管理在TCP/IP网络上,SyGate Client能让用户从任何一台计算机上远程监察和管理SyGate Server。
SyGate诊断程序在任何时候都能帮助你确定你的系统设置以及解决网络连接的问题。SyGate设有使用日志文件以及系统设置文件,在需要的时候可轻易地查寻与检测。尽管这些功能并非是必须的,SyGate还是能以其高度的可配适性,满足任何小型网络中的多种需要。
7、CCProxy代理服务器
CCProxy是一款国产的代理服务器软件,能满足小型网络用户所有的代理需求。它支持HTTP、FTP、Socks4、Socks5等多种代理协议,虽然不具备与Windows用户的集成能力,但CCProxy可以自行创建用户,并允许网管员根据需要为不同用户分配不同的权限。而通过相关规则的设定,CCProxy还能对单个用户连接数、访问网址等加以限制。
CCProxy代理服务器于2000年6月问世,是国内最流行的下载量最大的的国产代理服务器软件。主要用于局域网内共享Modem猫代理上网,ADSL代理共享、宽带代理共享、专线代理共享、ISDN代理共享、卫星代理共享、蓝牙代理共享和二级代理等共享代理上网。
总体来说,CCProxy可以完成两项大的功能:代理共享上网和客户端代理权限管理。CCProxy非常适合中国用户使用,无论是政府机关部门,大中小公司,学校,或是网吧,CCProxy都是实现共享上网的首选代理服务器软件。
8、squid代理服务器
在Unix/linux下使用的比较优秀的代理服务器软件Squid。之所以说它比较优秀,是因为它可以在代理服务器上作一个很大的缓存,可以把好多常去的网站内容存储到缓存中,这样,内部网的机器再访问那些网站,就可以从缓存里调用了。
这样一方面可以加快内部网浏览因特网的速度,这就是所谓的提高客户机的访问命中率;另一方面,Squid不仅仅支持HTTP协议,而且还支持 FTP, GOPHER,SSL和WAIS等协议考虑到简捷实用的原则,squid作为代理服务器不仅性能优异,而且还详细的纪录了各个客户端的访问纪录。
Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。Squid可以工作在很多的操作系统中,如 AIX, Digital Unix, FreeBSD, HP-UX, Irix, Linux, NetBSD, Nextstep, SCO, Solaris,OS/2等,也有不少人在其他操作系统中重新编译过Squid。由于它安装简单,使用方便,所以已经被广泛使用。
代理服务器与NAT技术的差异
在内部局域网络使用私有 IP 的客户端,不论透过 Proxy 或者 NAT 均可以直接取得 WWW 的服务,那么 NAT 与 Proxy 有没有什么不同的地方啊。
NAT 服务器的功能:就如同第九章提到的数据, Linux 的 NAT 功能主要透过封包过滤的方式, 并使用 iptables 的 nat 表格进行 IP 伪装 (SNAT) ,让客户端自行前往因特网上的任何地方的一种方式。主要的运作行为是在 OSI 七层协议的二、三、四层。由于是透过封包过滤与伪装,因此客户端可以使用的端口口号码 (第四层) 较弹性;
Proxy 服务器的功能:主要透过 Proxy 的服务程序 (daemon) 提供网络代理的任务,因此 Proxy 能不能进行某些工作,与该服务的程序功能有关。 举例来说,如果你的 Proxy 并没有提供邮件或 FTP 代理,那么你的客户端就是无法透过 Proxy 去取得这些网络资源。 主要运作的行为在 OSI 七层协议的应用层部分(所谓的比较“高阶”之意)
NAT 服务器是由较底层的网络去进行分析的工作,至于通过 NAT 的封包是干嘛用的, NAT 不去管他!
至于 proxy 则主要是由一个daemon 的功能达成的,所以必需要符合该 daemon 的需求,才能达到某些功能。