【博客333】什么是NAT(Network Address Translation)

内容: 介绍NAT的概念

NAT基本概念:

1、NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”;

2、它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,

3、允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。
顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。

4、NAT 可以让那些使用私有地址的内部网络连接到Internet或其它IP网络上。

5、NAT路由器将内部网络的数据包发送到公用网络时,在IP包头把私有地址转换成合法的IP地址。

NAT出现的背景:

201123日中国农历新年, IANA对外宣布:IPv4地址空间最后5个地址块已经被分配给下属的
5个地区委员会。2011415日,亚太区委员会APNIC对外宣布,除了个别保留地址外,本区域
所有的IPv4地址基本耗尽。一时之间,IPv4地址作为一种濒危资源身价陡增,各大网络公司出巨资
收购剩余的空闲地址。其实,IPv4地址不足问题已不是新问题,早在20年以前,IPv4地址即将耗尽
的问题就已经摆在Internet先驱们面前。是什么技术使这一危机延缓了尽20年?

答案:就是NAT

NAT转换原理及原理图:

对于有Internet访问需求而内部又使用私有地址的网络,在组织的出口位置部署NAT网关,在报文
离开私网进入Internet时,将源IP替换为公网地址,通常是出口设备的接口地址。一个对外的访问
请求在到达目标以后,表现为由本组织出口设备发起,因此被请求的服务端可将响应由Internet发
回出口网关。出口网关再将目的地址替换为私网的源主机地址,发回内部。这样由私网主机向公网
服务端的请求和响应就在通信两端均无感知的情况下完成了。

因此:依据这种模型,数量庞大的内网主机就不再需要公有IP地址了。

在这里插入图片描述
NAT的关键流程:

1、我们一般使用私网ip作为局域网内部的主机标识,使用公网ip作为互联网上通信的标识

2、NAT网关设置在私网到公网的路由出口位置,双向流量必须都要经过NAT网关

3、网络访问只能先由私网侧发起,公网无法主动访问私网主机;

4、NAT网关在两个访问方向上完成两次地址的转换或翻译;
   * 出方向做源信息替换
   * 入方向做目的信息替换;

5、NAT网关的存在对通信双方是保持透明的;

6、NAT网关为了实现双向翻译的功能,靠的是维护一张关联表,把会话的信息保存下来。

NAT的类型:

一、静态一对一:

* 静态一对一地址映射:
这种工作方式下,NAT把一个私网地址和一个公网地址做静态关联,在从内而外的方向,将源IP匹配的
私网IP替换为公网IP,反方向则将目的IP匹配公网IP的报文替换为私网IP。网络层以上的部分不进行
替换处理,只修正校验和。

在这里插入图片描述
二、静态多对多:

* 静态多对多地址映射:
这种方式与上一种类似,只是把一段私网地址映射到一段公网地址。工作机制与前述的方式没有差别

在这里插入图片描述
三、动态端口映射:

* 动态端口映射:
这是最基本的工作方式,即前面多次介绍的将一段内网地址动态翻译为一或多个公网IP,同时对传输
层端口或其他上层协议信息进行转换,以实现IP复用。对由内而外的报文,替换源地址和端口,反向
报文替换目的地址和端口。仅以连接公网的接口IP作为NAT转换的公网地址时,这种配置最简化,又
被称为EasyIP。当以一段公网IP地址作为NAT转换地址时,需要配置一个地址池,NAT会自动在地址
池中选择使用公网IP。

在这里插入图片描述
思考:动态的映射为什么需要引入另一个信息元,比如:端口;而不能仅靠IP映射

如果NAT只进行IP地址的简单替换,就会产生一个问题:

当有多个内部主机去访问同一个服务器时,从返回的信息不足以区分响应应该转发到哪个内部主机。
此时,需要NAT设备根据传输层信息或其它上层协议去区分不同的会话,并且可能要对上层协议的
标识进行转换,比如TCP或UDP端口号。这样NAT网关就可以将不同的内部连接访问映射到同一公网
IP的不同传输层端口,通过这种方式实现公网IP的复用和解复用。这种方式也被称为端口转换
PAT、NAPT或IP伪装,但更多时候直接被称为NAT,因为它是最典型的一种应用模式。

NAT的弊端:

1、NAT使IP会话的保持时效变短。因为一个会话建立后会在NAT设备上建立关联表,在会话静默
的这段时间,NAT网关会进行老化操作。这是任何NAT网关必须做的事情,因为IP和端口资源有限,
通信的需求无限,所以必须在会话结束后回收资源。通常TCP会话通过协商的方式主动关闭连接,
NAT网关可以跟踪这些报文,但总是存在例外的情况,要依赖自己的定时器去回收资源。

而基于UDP的通信协议很难确定何时通信结束,所以NAT网关主要依赖超时机制回收外部端口。通过
定时器老化回收会带来一个问题,如果应用需要维持连接的时间大于NAT网关的设置,通信就会意外
中断。因为网关回收相关转换表资源以后,新的数据到达时就找不到相关的转换信息,必须建立新的
连接。当这个新数据是由公网侧向私网侧发送时,就会发生无法触发新连接建立,也不能通知到私网
侧的主机去重建连接的情况。这时候通信就会中断,不能自动恢复。即使新数据是从私网侧发向公网
侧,因为重建的会话表往往使用不同于之前的公网IP和端口地址,公网侧主机也无法对应到之前的通
信上,导致用户可感知的连接中断。NAT网关要把回收空闲连接的时间设置到不发生持续的资源流失,
又维持大部分连接不被意外中断,是一件比较有难度的事情。

在NAT已经普及化的时代,很多应用协议的设计者已经考虑到了这种情况,所以一般会设置一个连接
保活的机制,即在一段时间没有数据需要发送时,主动发送一个NAT能感知到而又没有实际数据的保
活消息,这么做的主要目的就是重置NAT的会话定时器。

2、NAT在实现上将多个内部主机发出的连接复用到一个IP上,这就使依赖IP进行主机跟踪的机制都
失效了。如网络管理中需要的基于网络流量分析的应用无法跟踪到终端用户与流量的具体行为关系。
基于用户行为的日志分析也变得困难,因为一个IP被很多用户共享,如果存在恶意的用户行为,很难
定位到发起连接的那个主机。即便有一些机制提供了在NAT网关上进行连接跟踪的方法,但是把这种
变换关系接续起来也困难重重。基于IP的用户授权不再可靠,因为拥有一个IP的不等于一个用户或
主机。一个服务器也不能简单把同一IP的访问视作同一主机发起的,不能进行关联。有些服务器设置
有连接限制,同一时刻只接纳来自一个IP的有限访问(有时是仅一个访问),这会造成不同用户之间的
服务抢占和排队。

有时服务器端这样做是出于DOS攻击防护的考虑,因为一个用户正常情况下不应该建立大量连接请求,
过度使用服务资源被理解为攻击行为。但是这在NAT存在时不能简单按照连接数判断。

3、NAT对IP端到端模型的破坏力非常大!
NAT通过修改IP首部的信息变换通信的地址。但是在这个转换过程中只能基于一个会话单位。当一个
应用需要保持多个双向连接时,麻烦就很大。NAT不能理解多个会话之间的关联性,无法保证转换符
合应用需要的规则。

当NAT网关拥有多个公有IP地址时,一组关联会话可能被分配到不同的公网地址,这通常是服务器端
无法接受的。更为严重的是,当公网侧的主机要主动向私网侧发送数据时,NAT网关没有转换此连接
需要的关联表,这个数据包无法到达私网侧的主机。这些反方向发送数据的连接总有应用协议约定或
在初始建立的会话中进行过协商。但是因为NAT工作在网络层和传输层,无法理解应用层协议的行为,
对这些信息是无知的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值