| 加入收藏| 设为首页| 联系我们

首页 站长学习 站长之家 源码下载 建站素材 书籍教程 常用工具
 您现在的位置: 动力中国 >> 网络编程 >> 认证考试 >> 文章正文  
 详解NAT
 

详解NAT

http://www.domcn.org  文章来源:本站收藏  点击数:

  关键字:详解NAT

    NAT是CCNA更新后加入的知识点之一,其内容及注意事项,现总结如下:

    IP地址耗尽促成了CIDR的开发,但CIDR开发的主要目的是为了有效的使用现有的internet地址。而同时根据RFC 1631(IP Network Address Translator)开发的NAT却可以在多重的internet子网中使用相同的IP,用来减少注册IP地址的使用。

    NAT技术使得一个私有网络可以通过internet注册IP连接到外部世界,位于inside网络和outside网络中的NAT路由器在发送数据包之前,负责把内部IP翻译成外部合法地址。内部网络的主机不可能同时于外部网络通信,所以只有一部分内部地址需要翻译。

    NAT的翻译可以采取静态翻译(static translation)和动态翻译(dynamic translation)两种。静态翻译将内部地址和外部地址一对一对应。当NAT需要确认哪个地址需要翻译,翻译时采用哪个地址pool时,就使用了动态翻译。采用portmultiplexing技术,或改变外出数据的源port技术可以将多个内部IP地址影射到同一个外部地址,这就是PAT(port address translator)。

    当影射一个外部IP到内部地址时,可以利用TCP的load distribution技术。使用这个特征时,内部主机基于round-robin机制,将外部进来的新连接定向到不同的主机上去。注意:load distributiong只有在影射外部地址到内部的时候才有效。

    NAT使用的几种情况:

    a、连接到internet,但却没有足够的合法地址分配给内部主机。

    b、更改到一个需要重新分配地址的ISP。

    c、有相同的IP地址的两个internat合并。

    d、想支持负载均衡(主机)。

    采用NAT后,一个最主要的改变就是你失去了端对端IP的traceability,也就是说,从此你不能再经过NAT使用ping和traceroute,其次就是曾经的一些IP对IP的程序不再可以正常运行,潜在的不易被观察到的缺点就是增加了网络延时。

    NAT可以支持大部分IP协议,但有几个协议需要注意,首先tftp,rlogin,rsh,rcp和ipmulticast都被NAT支持,其次就是bootp,snmp和路由表更新全部给拒绝了。

    NAT的几个相关概念:

    Inside Local IP address:   指定于内部网络的主机地址,全局唯一,但为私有地址。

    Inside Global IP address:  代表一个或更多内部IP到外部世界的合法IP。

    Outside Global IP address: 外部网络主机的合法IP。

    Outside Local IP address:  外部网络的主机地址,看起来是内部网络的,私有地址。

    Simple Translation Entry:  影射IP到另一个地址的Entry。

    Extended Translation Entry:影射IP地址和端口到另一个pair的Entry。

    采用NAT,可以实现以下几个功能:

    a、Translation inside local addresses

    b、Overloading inside global addresses

    c、TCP load distribution

    d、Handing overlapping networks

    下面我们一一叙述它们的工作原理。

    a、内部地址翻译(Translation inside local addresses):

    这是比较通用的一种方法,将内部IP一对一的翻译成外部地址。

    在内部主机连接到外部网络时,当第一个数据包到达NAT路由器时,router检查它的NAT表,因为是NAT是静态配置的,故可以查询出来(simply entry),然后router将数据包的内部局部IP(源地址)更换成内部全局地址,再转发出去。外部主机接受到数据包用接受到的内部全局地址来响应,NAT接受到外部回来的数据包,再根据NAT表把地址翻译成内部局部IP,转发过去。

    b、内部全局地址复用(overloading inside glogal addresses)

    使用地址和端口pair将多个内部地址影射到比较少的外部地址。这也是所谓的PAT。和内部地址翻译一样,NAT router同样也负责查表和翻译内部IP地址,唯一的区别就是由于使用了overloading,router将复用同样的内部全局IP地址,并存储足够的信息以区分它和其他地址,这样查询出来的是extended entry。

    NAT router和外部主机的通讯采用翻译过的内部全局地址,故同一般的通信没有差别,router到内部主机通讯时,同样要查NAT表。

    c、TCP负载重分配(TCP load distributing)和以上两种操作不同,这是NAT由外到内的翻译,所以那种以为WEB server一定要放置到

    NAT外部的说法是错误的。

    工作原理:外部主机向虚拟主机(定义为内部全局地址)通讯,NAT router接受外部主机的请求并依据NAT表建立与内部主机的连接,把内部全局地址(目的地址)翻译成内部局部地址,并转发数据包到内部主机,内部主机接受包并作出响应。NAT router再使用内部局部地址和端口查询数据表,根据查询到的外部地址和端口做出响应。

    此时,如果同一主机再做第二个连接,NAT router将根据NAT表将建立与另一虚拟主机的连接,并转发数据。

    d、处理重叠网络

    这种方法主要用于两个intranet的互连,同样给我们处理两个重叠网络提供了方法。它的实现要求DNS server的支持(用于区别两个不同的主机)。

    1、主机A要求向主机C建立连接,先象DNS server做地址查询。

    2、NAT router截获DNS的响应,如果地址有重叠,将翻译返回的地址。它将创建一个simply entry把重叠的外部全局地址(目的地址)翻译成外部局部地址。

    3、路由器转发DNS响应到主机A,它已经把主机C的地址(外部全局地址)翻译成外部局部地址。

    4、当路由器接受到主机C的数据包时,它将建立内部局部、全局,外部全局、局部地址间的转换,主机A将由内部局部地址(源地址)翻译成内部全局地址,主机C将由外部全局地址(目的地址)翻译成外部局部地址。

    5、主机C接受数据包并继续通讯。


详解NAT
  • 上一篇文章:

  • 下一篇文章:
  •  热门文章
    普通文章 电子邮件改头换面 四公司畅谈未
    普通文章 PC病毒史上最声名狼藉的八大病
    普通文章 Rails系统中的AJAX开发技术简析
    普通文章 基于ASP.NET AJAX框架实现表单
    普通文章 开发ASP.NET AJAX客户端定制行
    普通文章 用JFreeChart对JSP报表进行增强
    普通文章 SQL Server 2005上的CLR和ADO.
    普通文章 SQL Server 2005的XML支持机制
    普通文章 Firefox中标签式浏览技巧大全
    普通文章 Tomcat中的Session和Cookie大揭
     
     推荐文章
    推荐文章 把Google地图嵌入网页 就是这么
    推荐文章 迅雷搜索候选资源出错的解决
    推荐文章 轻松去除迅雷里的各种广告和资
    推荐文章 突破限制 免费领养到QQ空间五级
    推荐文章 Rational统一过程RUP贴近中小软
    推荐文章 构建自己的轻量级XML DOM分析程
    推荐文章 WPS Office 2007技巧:妙用配置
    推荐文章 Excel 2007:求余数函数实用进阶
    推荐文章 浅谈ASP.NET的Postback
    推荐文章 软件开发中项目需求管理简述
     
     相关文章
    没有相关文章
    设为首页 | 加入收藏 | 广告合作 | 联系站长 | 版权申明 |
    动力中国为网友提供免费学习资料,可用资源,如果您认为我们的相关内容侵害到了您的权利请联系管理员
    Copyright © 2006-2008 domcn.org All Rights Reserved.