什么是NAT

NAT


Net Address Trancelate


是将局域网里的内部地址(如192.168.0.x)转换成公网(Internet)上合法的IP地址(如202.202.12.11),以使内部地址能像有公网地址的主机一样上网。这个优于代理服务器,能做直接访问外部IP地址,
但NAT往往会过滤掉部分UDP数据包。


NAT(Network address translation)(RFC 1631中作出规定)作为这样一种过渡解决手段,可以用来减少对全球合法注册地址的需求。简单的说,NAT就是在内部专用网络中使用内部地址(不可路由),
而当内部节点要与外界网络发生联系时,就在边缘路由器或者防火墙处,将内部地址替换成全局地址——合法地址(可路由),从而在外部公共网上正常使用。
这里需要解释一下,内部地址,是指在内部网络中分配给节点的私有IP地址,这个地址只能在内部网络中使用,不能被路由。虽然内部地址可以随机挑选,
但是通常使用的是RFC 1918中定义的专用地址: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地址,它是由NIC或者网络服务提供商分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻址的地址(可路由)。
NAT的主要作用是节约地址空间。在任一时刻,如果内部网络中只有少数节点与外界建立连接,那么就只有少数的内部地址需要被转化成全局地址,可以减少对合法地址的需求。
同时,还可以使多个内部节点共享一个外部地址,使用端口进行区分(NAPT),这样就能更有效的节约合法地址。
除了节约地址,NAT还能简化配置,增加网络规划的灵活性。使用NAT,可以在规划地址时有更大的灵活性,从而简化内部网的设计。另外,当两个有地址重叠的私有内部网要连接在一起时,
可以使用NAT来防止地址冲突,而避免逐个改变节点的地址这个繁杂的工作。
NAT地址转换有两种主要类型:静态转换(Static Translation),动态转换(Dynamic Translations)。
静态转换是最简单的一种转换方式,它在NAT表中为每一个需要转换的内部地址创建了固定的转换条目,映射了唯一的全局地址。内部地址与全局地址一一对应。每当内部节点与外界通信时,
内部地址就会转化为对应的全局地址。
动态转换,增加了网络管理的复杂性,但也提供了很大的灵活性。它将可用的全局地址地址集定义成NAT池(NAT pool)。对于要与外界进行通信的内部节点,如果还没有建立转换映射,
边缘路由器或者防火墙将会动态的从NAT池中选择全局地址对内部地址进行转化。每个转换条目在连接建立时动态建立,而在连接终止时会被回收。这样,网络的灵活性大大增强了,
所需要的全局地址进一步的减少。值得注意的是,当NAT池中的全局地址被全部占用以后,以后的地址转换的申请会被拒绝。这样会造成网络连通性的问题。所以应该使用超时操作选项来回收NAT池的全局地址。
另外,由于每次的地址转换是动态的,所以同一个节点在不同的连接中的全局地址是不同的,这会使snmp的操作复杂化。
端口地址转换(NAPT—Network address port translatin),是动态转换的一种变形。它可以使多个内部节点共享一个全局IP地址,而使用源和目的的TCP/UDP的端口号来区分NAT表中的转换条目及内部地址。
这样,就更节省了地址空间。比如说,假设内部节点10.1.1.3,10.1.1.2都用源端口1723向外发送数据包。NAPT路由器把这两个内部地址都转换成全局地址192.168.2.2,而使用不同的源端口号:1492,1723。
当接收方收到的源端口号为1492,则返回的数据包在边缘网关处,目的地址和端口被转换为10.1.1.3:1723;而接收到的源端口号为1723的,目的被映射到10.1.1.2:1723。
NAPT可以使整个局域网都使用一个IP地址来联入Internet,所以它常常用在小型办公室/家庭办公室(SOHO)中,作与外部公共网络的连接。
在以上的映射转换中,只使用了IP地址的转换条目被称为简单条目,而包含IP地址和TCP/UDP端口号的转换条目被称为扩展条目。
以上所有的地址转换功能,都是由防火墙或者边缘路由器(即连接内部网络和公用网络的路由器)完成的,而对于通信的各节点,无论是内部还是外部的,都是透明的。
那么NAT具体用在哪些地方呢?
外向的NAT,常常用在共享一个IP地址发出流向外部网络的数据流,而不接受外部网络向内部网络发出的连接请求的地方,比如多节点用户、远程的工作点、小型商业用户等。
具体的说,就是通过ISDN、DSL(Digital subscriber Line)、cable modem连接的小型局域网。双向的静态NAT/NAPT常被安装有防火墙的大型企业使用。
另外,当ISP的地址发生变化,如果企业不想改变自己的地址规划,也会用到NAT技术。


DNAT用来伪装目的,SNAT用来伪装源
SNAT和DNAT的区别
SNAT,DNAT,MASQUERADE都是NAT
MASQUERADE是SNAT的一个特例
SNAT是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包的来源是被替换的那个IP的主机
MASQUERADE是用发送数据的网卡上的IP来替换源IP,因此,对于那些IP不固定的场合,比如拨号网络或者通过dhcp分配IP的情况下,就得用MASQUERADE
DNAT,就是指数据包从网卡发送出去的时候,修改数据包中的目的IP,表现为如果你想访问A,可是因为网关做了DNAT,把所有访问A的数据包的目的IP全部修改为B,那么,你实际上访问的是B


因为,路由是按照目的地址来选择的,因此,DNAT是在PREROUTING链上来进行的,而SNAT是在数据包发送出去的时候才进行,因此是在POSTROUTING链上进行的
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值