资讯

展开

NAT技术介绍

作者:快盘下载 人气:

转载自擒贼先擒王的博客NAT 详解

一、概述

NAT英文全称是“Network Address Translation”;中文意思是“网络地址转换”;它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准;允许一个整体机构以一个公用IP;Internet Protocol;地址出现在Internet上。顾名思义;它是一种把内部私有网络地址;IP地址;翻译成合法网络IP地址的技术。NAT 可以让那些使用私有地址的内部网络连接到Internet或其它IP网络上。NAT路由器在将内部网络的数据包发送到公用网络时;在IP包的报头把私有地址转换成合法的IP地址。

RFC1918规定了三块专有的地址;作为私有的内部组网使用;

A类;10.0.0.0—10.255.255.255 10.0.0.0/8
B类;172.16.0.0—172.31.255.255 172.16.0.0/12
C类;192.168.0.0—192.168.255.255 192.168.0.0/16

这三块私有地址本身是可路由的;只是公网上的路由器不会转发这三块私有地址的流量;当一个公司内部配置了这些私有地址后;内部的计算机在和外网通信时;公司的边界路由会通过NAT或者PAT技术;将内部的私有地址转换成外网IP;外部看到的源地址是公司边界路由转换过的公网IP地址;这在某种意义上也增加了内部网络的安全性。


二、分类

NAT技术介绍
NAT有三种类型;

静态NAT(Static NAT);一对一;
将内部网络的私有IP地址转换为公有IP地址;IP地址对是一对一的;是一直不变的。
动态地址NAT(Pooled NAT);多对多;
将内部网络的私有IP地址转换为公用IP地址时;IP地址是不确定;随机的。所有被授权访问Internet的私有IP地址可随机转换为任何指定合法的IP地址。也就是说;只要指定哪些内部地址可以进行转换;以及用哪些合法地址作为外部地址时;就可以进行动态NAT转换。动态NAT是在路由器上配置一个外网IP地址池;当内部有计算机需要和外部通信时;就从地址池里动态的取出一个外网IP;并将他们的对应关系绑定到NAT表中;通信结束后;这个外网IP才被释放;可供其他内部IP地址转换使用;这个DHCP租约IP有相似之处。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
nat技术网络地址端口转换NAPT;Network Address Port Translation;;Port-Level NAT;;多对一;
改变外出数据包的源端口并进行端口转换;采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问;可以最大限度地节约IP地址资源。同时;也可以隐藏网络内部的所有主机;有效避免来自Internet的攻击。因此;目前网络中应用最多的就是PAT规则。这是最常用的NAT技术;也是IPv4能够维持到今天的最重要的原因之一;它提供了一种多对一的方式;对多个内网IP地址;边界路由可以给他们分配一个外网IP;利用这个外网IP的不同端口和外部进行通信。NAPT 与 动态NAT 不同;它将内部连接映射到外部网络中的一个单独的IP地址上;同时在该地址上加上一个由NAT设备选定的端口号。
nat技术
NAPT是使用最普遍的一种转换方式;在HomeGW中也主要使用该方式。它又包含两种转换方式;SNAT和DNAT。 源NAT;Source NAT;SNAT;;修改数据包的源地址。源NAT改变第一个数据包的来源地址;它永远会在数据包发送到网络之前完成;数据包伪装就是一具SNAT的例子。目的NAT;Destination NAT;DNAT;;修改数据包的目的地址。Destination NAT刚好与SNAT相反;它是改变第一个数据懈的目的地地址;如平衡负载、端口转发和透明代理就是属于DNAT。

Basic NAT是一种把一组IP地址映射成另一组IP地址的方法;映射的过程在IP中继设备上完成;对用户完全透明。NAPT则要复杂一些;它把许多;不能太多;IP地址连同TCP/UDP端口号映射到单独一个IP地址和端口号上。无论是Basic NAT还是NAPT都提供一种把内部的私有地址转换成在公网上可用的全球唯一IP地址的方法。

对于网络地址转换技术来讲;最重要的一点是;在配置 NAT 的路由器上形成了 NAT 转换表;这个转换表的形成是非常关键的。配置 NAT 后;能形成正确的转换表;那么我们的工作就算成功了。


3、NAT的三个方向;

NAT 在outside口生效;所有在inside口需要先路由,在outside口先nat。
ip nat inside source:
将内部局部地址转换为内部全局地址;数据方向inside->outside,在outside上执行转换;
ip nat inside destination:
将内部全局地址转换为内部局部地址;数据方向outside->inside,在outside上执行转换
ip nat outside source:
将外部全局地址转换为外部局部地址;数据方向outside->inside,在outside上执行转换;
NAT的应用分类;
ip nat source;
;1; 静态 nat的映射;永远一个ip对应另外一个ip。
ip nat inside source static A.B.C.D A.B.C.D
;2; 动态 nat的映射;每次一个IP会对应另外一个公网的IP;
ip nat inside source list 2 pool qing
;3; 动态PAT映射;pool里面只有一个IP。
ip nat inside source list 2 pool qing overload
;4; 静态PAT映射;
ip nat inside source list 3 interface fastEthernet 0/0 overload
ip nat inside destination:
(5) tcp负载均衡;外网主动发起流量访问内网服务器。只用动态;没有静态。
ip nat inside destination list 10 pool feng
ip nat outside source:
当两端同时做nat既inside和outside需要同时翻译并出现地址冲突的时候需要用outside source和其他同时命令同时实现。


四、工作原理

了解原理之前先了解下NAT 术语。

在配置了 NAT 的路由器上;可以把整个网络分成两部分;内部网络外部网络
nat技术

NAT 技术中有四个术语;

内部本地地址;Inside Local;;内网中设备所使用的IP地址内部全局地址;Inside Global;;对于外部网络来说;局域网内部主机所表现的 IP 地址。外部本地地址;Outside Local;;外部网络主机的真实地址。外部全局地址;Outside Global;;对于内部网络来说;外部网络主机所表现的 IP 地址。外网设备所使用的真正的地址。

local 、global 是相对于端口状态说的;local是inside部分可以被路由的;global是outside部分可以被路由的。

网络地址转换常常和代理服务搞混;但是它们之间有明确的不同。NAT 对源和目的计算机都是透明的。没有任何一方会意识到它正在和第三方设备打交道。但是代理服务却不是透明的。源计算机知道它正向代理服务器发起一个请求;而且你还必须进行配置才能这样做。目的计算机会认为代理服务器就是与它直接通信的源计算机。还有;代理服务通常工作在 OSI 参考模型的第 4 层 (传输层) 或更高;而 NAT 工作在第 3 层 (网络层)。由于代理服务工作在更高层;所以通常它将比 NAT 要慢。

NAT 工作在 OSI 参考模型的网络层 (第3层) 是有道理的;因为路由器就工作在这一层;
nat技术

NAT设备维护一个状态表;用来把非法的IP地址映射到合法的IP地址上去。每个包在NAT设备中都被翻译成正确的IP地址;发往下一级;这意味着给处理器带来了一定的负担。但对于一般的网络来说;这种负担是微不足道的。在运行NAT的路由器中;当数据包被传送时;NAT可以转换数据包的IP地址和TCP/UDP数据包的端口号。设置NAT功能的路由器至少要有一个Inside;内部;端口和一个Outside;外部;端口。内部端口连接内网的用户;外部端口一般连接到Internet。当IP数据包离开内部网络时;NAT负责将内网IP源地址;通常是专用地址;转换为合法的公共IP地址。当IP数据包进入内网时;NAT将合法的公共IP目的地址转换为内网的IP源地址。

NAT的基本工作原理是;当私有网主机和公共网主机通信的IP包经过NAT网关时;将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。

当内部网络中的一台主机想传输数据到外部网络时;它先将数据包传输到NAT路由器上;路由器检查数据包的报头;获取该数据包的源IP信息;并从它的NAT映射表中找出与该IP匹配的转换条目;用所选用的内部全局地址;全球唯一的IP地址;来替换内部局部地址;并转发数据包。

当外部网络对内部主机进行应答时;数据包被送到NAT路由器上;路由器接收到目的地址为内部全局地址的数据包后;它将用内部全局地址通过NAT映射表查找出内部局部地址;然后将数据包的目的地址替换成内部局部地址;并将数据包转发到内部主机。

其实主要就是 修改 IP 数据包中的源 IP 地址;或目的 IP 地址。主要目的是把 RFC1918所提议的私有地址转变成在 Internet 上可路由的公有合法地址。对于某些有限的应用;如 DNSFTP 等;;它也可以修改 IP 数据包有效载荷中的地址。由于应用的复杂性; NAT 目前支持的应用有限;当然;如果需要;完全可以针对新的应用做相应的开发工作。

总体来说;NAT进行地址转换的过程就是“本地地址”与“全局地址”之间的转换过程;无论数据包是从内部网络发往外部网络;还是从外部网络发往内部网络。不同的只是本地地址和全局地址所对应的网络不同;以及数据包重新封装的源和目的地址不同。具体如图所示。
nat技术
这个过程是通过NAT中的本地址与全局地址映射条目来实现的;所以事先要在NAT路由器上配置这样的映射条目。


5、NAT中的转换方式:

从内网中设备上发出的IP包是以“inside local address”作为源地址;以“outside local address”作为目的地址。当数据包到达NAT设备的“inside”接口后;地址分别被翻译成“inside global address”和“outside global address”并从“outside”接口送出。外网设备上发出的IP包以“outside global address”作为源地址;以“inside global address”作为目的地址。当数据包到达NAT设备的“outside”接口后;地址分别被翻译成“outside local address”和“inside local address”并从“inside”接口送出。

当内部网络用户访问外部网络时;所进行的是“内部本地地址”和“内部全局地址”之间的转换。
在NAT路由器接收到来自内部网络主机发送的数据包时;其源IP地址;SA;为“内部本地地址”;目的IP地址;DA;为“外部本地地址”。当数据包被转发到外部网络时;数据包的源IP地址;SA;就会转变为“内部全局地址”;而目的IP地址;DA;被转变为“外部全局地址”。也就是把数据包的所有源IP地址;SA;和目的IP地址;DA;全部由本地地址转换为全局地址。如图6-9上部分数据包IP地址转换示意图。
相反;当外部网络用户访问内部网络时;所进行的是“外部本地地址”和“外部全局地址”之间的转换。
在NAT路由器接收到来自外部网络主机发送的数据包时;其源IP地址;SA;就是“外部全局地址”;目的IP地址;DA;就是“内部全局地址”。相当于由内部网络向外部网络发送数据包时数据包中的源IP地址;SA;和目的IP地址;DA;的互换。而当数据包被路由器转发到本地网络时;源IP地址;SA;被转变为“外部本地地址”;目的IP地址;DA;被转变为“内部本地地址”;也相当于由内部网络向外部网络发送数据包时数据包中的源IP地址;SA;和目的IP地址;DA;的互换。如图6-9下部分数据包IP地址转换示意图
nat技术

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!