网络地址转换(NAT)与代理服务器(Proxy Server)

来源:互联网 发布:linux客户端检测ntp 编辑:程序博客网 时间:2024/06/06 11:40

NAT

简述

在计算机网络中,网络地址转换(Network Address Translation,NAT)技术,就是把 IP 数据报通过路由器或者防火墙时,重写来源 IP 地址或目的 IP 地址的技术。即把内部私有网络地址在接入 Internet 的路由器中翻译成合法的 IP 地址,从而实现访问Internet。要注意的是,必须要拥有一个或一个以上的共有 IP地址用来转换。

为什么需要NAT

当初 IPv4 在设计的时候,没有考虑到会有互联网会如此火爆。现如今,由于地址分配不合理,只有 32位的 IPv4地址已经接近枯竭。虽然说新的 IPv6 已经出现,但由于种种原因还不能够取代 IPv4。面对越来越来越多的设备需要接入互联网,IP 地址早已不够用,现在可以继续在互联网中遨游,得益于 NAT 技术。NAT 的主要职责就是解决公网 IP 地址不足的问题,当然它还有很多别的用处。

NAT技术的分类

由于局域网中情况多变,为了应对不同的情形从而产生出不同的的 NAT 技术。

静态NAT(Static NAT)

在静态 NAT 中, 一般是网管人员手动设置添加相应的条目,将内部 IP 地址与公有 IP 地址一一对应,不会动态变化。静态 NAT 一般使用在网络情况变动不是很频繁的情况。

动态NAT(Pooled NAT)

动态 NAT 为每一个内部的私有 IP 地址分配一个临时的外部 IP 地址。 适用于外部 IP 较少, 而内部主机较多的情况。内部主机每次连接时会分自动分配一个外部IP 地址,当用户断开时,此IP 地址就被释放留做备用。与静态 NAT 不同的是,映射关系会动态变化。

网络地址端口转换(Port-Level NAT)

在实际的使用中,网络地址端口转换用的最多。

源地址转换(Source NAT,SNAT)

在数据报发送到网络之前,与私有主机相接的具有NAT功能的路由器或者防火墙修改数据报的源 IP 地址。

目标地址转换(Destination NAT, DNAT)

当有外网的数据报到达路由器时,路由器查找NAT 映射表,通过修改响应的IP地址,将外网的数据报分发到不同的主机上。适用于内网的某些服务器需要为外网提供某些服务的情况。可以用来做负载均衡。

实现方式

内部私有网络访问外部 IP 地址时,只需要将报头中的源 IP地址修改为所对应的共有IP地址即可,从内到外理解起来比较容易。
困惑我的是,当路由器收到响应包后,根据什么来判断要将此数据包转发给谁?

  1. 如果内网有多台客户机时,并且各自访问不同的站点,只需要维护一个内部 IP 和它 所访问的 公网IP 就能够判别出要将数据报发给内网中的那部主机。
  2. 如果多台客户机同时访问一台服务时,仅仅通过 IP 地址的映射已经无法判断出要将数据包交付给哪台局域网主机。此时需要在表项中保存内部 主机访问服务器的端口号,通过一个 私有 IP 地址和 端口号这样就可以在收到响应包时,区分出是哪一台主机的响应包。

NAT主要功能

  • 隔离内网 :通过NAT技术可以让内网主机不直接暴露在 Internet网中,从而保证内网主机的安全。
  • 负载均衡:主服务器可以通过目的地址转换,将一部分连接请求重定向到其余服务器,达到负载均衡的目的。
  • 端口转发:内网主机对外提供不同的服务,由于使用的是私有IP地址,外网无法直接访问到内网,可以对特定的服务做端口转发。
  • 提供可靠性:如果一个系统有一台通过路由器访问的关键服务器,一旦路由器检测到该服务器当机,它可以使用目的地址转换NAT透明的把连接转移到一个备份服务器上,提高系统的可靠性。

Proxy Server

简述

提供代理服务的电脑系统或其它类型的网络终端称为代理服务器Proxy 。一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接返回缓存了的资源。

主要功能

  • 提高访问速度:例如大学或者公司的本地DNS代理服务器,会将内部的DNS请求结果保存在本地DNS服务器中,如果下次在在内部中有别的用户请求该DNS条目,就会立即返回,不用再去经过顶级域名与服务器或根域名服务器,大大提高了用户的访问速度,同时也减少了网络流量。
  • 控制对内部资源的访问:某大学FTP(前提是该代理地址在该资源的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。
  • 隐藏真实IP:上网者也可以通过代理服务器隐藏自己的IP,免受攻击。当然黑客也可以通过代理攻击你,让你难觅其踪。
  • 突破内容过滤机制限制,访问被过滤网站:如防火长城对中国境内互联网访问的限制可通过使用代理服务器浏览而突破。

分类

根据协议区分

  • HTTP代理:主要用于访问网页,一般有内容过滤和缓存功能。端口一般为80、8080、3128等。
  • SSL代理:主要用于访问加密网站,一般有SSL或TLS加密功能(最高支持128位加密强度)。端口一般为443。
  • FTP代理:主要用于访问FTP服务器,一般有上传、下载以及缓存功能。端口一般为21、2121等。
  • POP3代理:主要用于POP3/SMTP方式收发邮件,一般有缓存功能。端口一般为110/25。
  • Telent代理:主要用于telnet远程控制(黑客入侵计算机时常用于隐藏身份)。端口一般为23。

根据匿名程度区分

  • 高度匿名代理:高度匿名代理会将数据包原封不动的转发,在服务端看来就好像真的是一个普通客户端在访问,而记录的IP是代理服务器的IP。
  • 普通匿名代理:高度匿名代理会将数据包原封不动的转发,在服务端看来就好像真的是一个普通客户端在访问,而记录的IP是代理服务器的IP。
  • 透明代理:高度匿名代理会将数据包原封不动的转发,在服务端看来就好像真的是一个普通客户端在访问,而记录的IP是代理服务器的IP。
  • 间谍代理:间谍代理指组织或个人创建的,用于记录用户传输的数据,然后进行研究、监控等目的代理服务器。

代理服务器与网络安全

贡献

  • 内容过滤功能有利于防止骇客破坏电脑,保护计算机安全。
  • 匿名功能可以帮助你隐藏真实IP,以免被骇客盯上。

破坏

  • 匿名功能可以帮助骇客隐藏自己的真实IP,进行破坏,这样就加大了警方的取证难度。(较常见的做法是只挂一个代理,但是安全性更高的做法是用好几台代理服务器串成“代理链”,或者入侵完成后将代理服务器的日志、缓存擦除掉。)还有一些恶意用户常常挂了代理之后随意留言,所以一些网站在用户使用代理的时候可能会给你“禁言”。
  • 转功能在使用时,所有发往服务器的数据都基本全部明文,“间谍代理”有可能记录下所有经过的数据(包括用户名密码),所以如果可能的话,需要通过代理传输用户名密码时尽量使用SSL、TLS等协议先行加密。
原创粉丝点击