NAT与代理服务器

来源:互联网 发布:无线音响 知乎 编辑:程序博客网 时间:2024/06/07 04:46

一、NAT技术
1.概念

NAT,即Networ Address Translation,可译为网络地址转换网络地址翻译
当前的Internet面临两大问题,即可用IP地址的短缺和路由表的不断增大,这使得众多用户的接入出现困难。
使用NAT技术可以使一个机构内的所有用户通过有限的数个(或1个)合法IP地址访问Internet,从而节省了Internet上的合法IP地址;另一方面,通过地址转换,可以隐藏内网上主机的真实IP地址,从而提高网络的安全性。
在CCNA阶段,主要考察NAT的基本技术,应试者应掌握下述的NAT术语和几个典型的地址转换类型。

(1)NAT术语

在NAT中,有4个地址术语是必须正确理解的,它们是Inside Local、Inside Global、OutsideLocal和Outside Globalo 在这些术语中,Inside(内部)是指那些由机构或企业所拥有的内部网络,这些网络上的主机通常分配了私有地址。这些地址不能直接在Internet上进行路由,从而也就不能直接用于对Internet的访问,必须通过网络地址的转换,以合法IP的身份来访问Internet。前者即InsideLocal地址。后者则为Inside Glob地址。

Local(本地)的地址是不能在Internet上通信的IP地址;Global(全局)的地址是能在Internet上通信的地址。 Outside(外部)是指除了我们考察的内部网络之外的所有网络。主要指Internets 有了对Inside、Outsider LocalGlobal 4个词的解释,让我们来看一看4个地址的定义。

●Inside Local Address(内部本地地址)

指一个网络内部分配给网上主机的IP地址,此地址通常不是Internet上的合法地址,即不是网络信息中心 (NIC)或Internet服务提供商(ISP)所分配的IP地址。

●Inside Global Address(内部全局地址)

用来代替一个或者多个内部本地IP地址的、对外的、Internet上合法的IP地址。

●Outside Local Address(外部本地地址)

一个外部主机相对于内部网所用的IP地址。此地址需要是Internet上合法的地址,但是从内部网可以进行路由的地址空间中进行分配的。

●Outside Global Address(外部全局地址)

由主机拥有者分配给在外部网上主机的IP地址。此地址是从一个从全局可路由的地址或网络空间中分配的。

(2)静态内部源地址转换

所谓静态内部源地址转换是指将一个内部本地的IP地址转换成为惟一的内部全局地址,即私有地址和合法地址之间的静态一一映射。这种转换通常用在内部网上的主机需要对外提供服务(如Web、E-mail服务等)的情况下。

(3)动态内部源地址转换

在动态内部源地址转换的方式下,一组内部本地地址与一个内部全局地址池之间建立起一种动态的一一映射关系。这种地址转换形式下,内部主机可以访问外部网络,外部主机也能对内部网络进行访问,但必须是在内网IP地址与内部全局地址之间存在映射关系时才能成功,并且这种映射关系是动态的。

(4)复用内部全局地址

Cisco路由器可以把内部全局地址进行复用性的转换,从而实现内部本地地址对内部全局地址的多对一的映射。地址复用被启用时,路由器在高层协议(如TCP或UDP端口号)维持有关的信息,将全局地址转换为本地地址。当多个内部本地地址映射到同一个全局地址时,端口号将用来区别不同的本地地址。复用内部全局地址的技术也被称为PAT(Port
AddressTranslation。端口地址转换)。

2、工作原理

内网的数据到达网关时,被网关用NAT转换为公网IP。内网的数据分组是以网关的身份去访问internet,而网关区别内网的数据分组使用了端口,每个数据分组使用一个端口。在外网的主机看来,数据都是从内网的网关发送过来的,不同的是他们的端口。而这些端口是映射到内网主机上的。具体分析如下:

(以下工作原理出自http://blog.sina.com.cn/s/blog_9d386e13010175rq.html这篇博客)
这里写图片描述
(图1)

我们现在以一个IE浏览器浏览新浪首页实例来说明NAT工作原理(阅读下文是请多参见图1):

(1)假设我们局域网中的一台电脑A(192.168.1.100),打开了IE浏览器,IE浏览器程序运行后,打开本机的1111端口(这个端口是随机的,系统动态产生),我想浏览新浪首页,就在地址栏输入http://www.sina.com.cn/,即我要访问http://www.sina.com.cn/,http://www.sina.com.cn就是12.130.132.30:80,此时我的电脑A就向内网(局域网)发一个数据包,这个数据包不仅有数据(即我想干什么——浏览网页),还包括一类重要的信息——源地址和目标地址。源地址就是表明数据包时由谁发出的,源地址由IP和端口两部分组成,我们这就是192.168.1.100:1111;目标地址表明此数据包要送到什么地方去,或者理解为要与谁通信,他也是由IP和端口两部分组成,我们这就是12.130.132.30:80,数据包大概以广播的形式发出,局域网上的其他电脑均能收到,但他们不会有响应,但是作为NAT服务器的计算机(本例为192.168.1.1)收到此数据包会有响应。

(NAT服务器的计算机有两个网卡:一个和内网相连,此网卡IP是私址(PRIVITE IP)类型,我们这为(192.168.1.1);另外一个和外网(Internet)相连,此网卡IP是公址(PUBLIC IP)类型,我们这为(122.195.93.74)。他把局域网和外网联系起来,并完成内外网地址(IP+端口)的映射工作)

(2) NAT服务器会根据数据包中的目标地址,把这个数据包送到目标地址12.130.132.30:80——新浪网站(WEB服务器),但在送出此数据包之前,他对此数据包进行了修改:把此数据包的源地址由192.168.1.100:1111改为122.195.93.74:2222,这个过程就是NAT。数据包的目标地址不变。同时,他会在自己计算机中建立如图2的对照表(NAT TABLE),以后还用的上此表,后面会说到。

这里写图片描述
(图2)

此时两者建立的关系是映射,即一一对应,在不中断IE浏览器程序运行,这种关系一直保持。此时如果你又打开搜狐网页,就又会增加建立一个映射,如192.168.1.100:1112——122.195.93.74:2223。
从上我们可以看到,无论是IE浏览器程序开的端口,如本例中1111,还是NAT服务器的映射端口本例中2222,都是随机的,但一旦建立,他们必须是一一对应的映射关系,而且不会被其他程序再使用!

(3) 接着说,新浪网站(WEB服务器)——12.130.132.30:80口运行的程序收到此数据包以后,处理分析得知,要把本站某网页内容复制后再发到122.195.93.74:2222(注意这是我们的NAT计算机),就打包数据发送。这个数据包也有源地址和目标地址,源地址12.130.132.30:80(新浪),目标地址122.195.93.74:2222(我们的NAT计算机)。

(5)很快我们的NAT计算机就收到到此包了,NAT计算机根据图2的对照表,把此数据包的目标地址从122.195.93.74:2222改为192.168.1.100:1111,这个过程也是NAT,源地址不变,为新浪网址12.130.132.30:80。

(6)修改后将数据包向内网发出,我的这台局域网中的电脑A,更确切的说我的电脑运行着的IE浏览器程序就能收到他要的外网数据,处理以后就在我的显示器上将新浪网页显示出来。

至此完成我们内网电脑通过NAT服务器和外网设备一次完整的通讯,这个过程中地址改过两次,也就是说NAT两次:在我内网计算机上传的过程中,数据包的源地址改过一次,目标地址一直保持不变;下传过程中相反。

类似的,我们局域网中的计算机B要访问外网,过程和上相似,NAT服务器会提供另外一个未用的端口给局域网中的计算机B。只要NAT服务器能提供不同的端口(NAT服务器可提供上万个端口),就可以让内网计算机和外网通讯(俗称上网),并且能让数台内网计算机互不影响地同时上网。

二、代理服务器

1、概念

代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型会话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)Local Area Network(局域网)
代理(英语:Proxy),也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。

提供代理服务的电脑系统或其它类型的网络终端称为代理服务器(英文:Proxy Server)。一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接返回缓存了的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。代理服务器的选项和设置在计算机程序中,通常包括一个“防火墙”,允许用户输入代理地址,它会遮盖他们的网络活动,可以允许绕过互联网过滤实现网络访问。

2、代理服务器主要功能

(1) 设置用户验证和记账功能,可按用户进行记账,没有登记的用户无权通过代理服务器访问Internet网。并对用户的访问时间、访问地点、信息流量进行统计。

(2)对用户进行分级管理,设置不同用户的访问权限,对外界或内部的Internet地址进行过滤,设置不同的访问权限。

(3)增加缓冲器(Cache),提高访问速度,对经常访问的地址创建缓冲区,大大提高热门站点的访问效率。通常代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。

(4)连接内网与Internet,充当防火墙(Firewall):因为所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限。

(5)节省IP开销:代理服务器允许使用大量的伪IP地址,节约网上资源,即用代理服务器可以减少对IP地址的需求,对于使用局域网方式接入Internet ,如果为局域网(LAN)内的每一个用户都申请一个IP地址,其费用可想而知。但使用代理服务器后,只需代理服务器上有一个合法的IP地址,LAN内其他用户可以使用10...*这样的私有IP地址,这样可以节约大量的IP,降低网络的维护成本。

3、常见代理服务器

(1)HTTP代理

www对于每一个上网的人都再熟悉不过了,www连接请求就是采用的http协议,所以我们在浏览网页,下载数据(也可采用ftp协议)时就是用http代理。它通常绑定在代理服务器的80、3128、8080等端口上。

(2)socks代理

相应的,采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器。Socks是个电路级的底层网关,是DavidKoblas在1990年开发的,此后就一直作为Internet
RFC标准的开放标准。Socks 不要求应用程序遵循特定的操作系统平台,Socks 代理与应用层代理、HTTP层代理不同,Socks
代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。它通常绑定在代理服务器的1080端口上。如果您在企业网或校园网上,需要透过防火墙或通过代理服务器访问
Internet就可能需要使用SOCKS。一般情况下,对于拨号上网用户都不需要使用它。注意,浏览网页时常用的代理服务器通常是专门的http代理,它和SOCKS是不同的。因此,您能浏览网页不等于
您一定可以通过SOCKS访问Internet。常用的防火墙,或代理软件都支持SOCKS,但需要其管理员打开这一功能。如果您不确信您是否需要SOCKS或是否有SOCKS可用,请与您的网络管理员联系。为了使用socks,您需要了解一下内容:

① SOCKS服务器的IP地址

② SOCKS服务所在的端口

③ 这个SOCKS服务是否需要用户认证?如果需要,您要向您的网络管理员申请一个用户和口令

知道了上述信息,您就可以把这些信息填入“网络配置”中,或者在第一次登记时填入,您就可以使用socks代理了。

在实际应用中SOCKS代理可以用作为:电子邮件、新闻组软件、网络传呼ICQ、网络聊天MIRC和使用代理服务器上联众打游戏等等各种游戏应用软件当中。

(3)VPN代理

指在共用网络上建立专用网络的技术。之所以称为虚拟网主要是因为整个VPN网络的任意两个结点之间的连接并没有传统专网建设所需的点到点的物理链路,而是架构在公用网络服务商ISP所提供的网络平台之上的逻辑网络。用户的数据是通过ISP在公共网络(Internet)中建立的逻辑隧道(Tunnel),即点到点的虚拟专线进行传输的。通过相应的加密和认证技术来保证用户内部网络数据在公网上安全传输,从而真正实现网络数据的专有性。

(4)反向代理

反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量。 安装反向代理服务器有几个原因:

加密和SSL加速

负载平衡

缓存静态内容

压缩 减速上传

安全 外网发布

大多使用开放源代代码的squid做反向代理

其他类型

FTP代理:能够代理客户机上的FTP软件访问FTP服务器

RTSP代理:代理客户机上的Realplayer访问Real流媒体服务器

POP3代理:代理客户机上的邮件软件用POP3方式收发邮件