我们尽情享受着网络带来的便捷与乐趣,却不知IPv4地址空间枯竭这回事。所幸,NAT技术出现了。它既保证了网络的互通,又节省了公网地址,今天就和我这个肥宅一起了解NAT技术吧!
NAT技术原理
NAT即 网络地址转换,最初是用于实现私有网络访问公共网络,后来扩展成为任意两个网络访问时的地址转换应用。
NAT通常被部署在一个组织的网络出口位置,将内部网络IP地址替换为出口IP地址,保证网络互通,节省公网地址,提供公网可达性和上层协议的连接能力。
▲NAT转换示意图
NAT技术问答
Q:哪些情况下使用NAT?
A:
1. 内网中主机过多,没有足够的合法IP地址可用。
2. 当ISP发生变化时,NAT技术避免了IP地址的重新编址。
3. 当两个合并的网络中出现重复地址时。
4. 利用NAT来解决TCP的负载均衡问题。
5. 用于隐藏内部网络,增强安全性。
Q:NAT有哪些技术优点?
A:NAT通过地址重用的方法来满足IP地址需求,在一定程度上缓解了IP地址空间枯竭的压力。其具备以下优点:
1. 将私网地址转换成公网地址,实现内外部无缝通讯。
2. 通过公网地址与端口的结合,实现多个私网用户共用一个公网地址。
3. 通过静态映射,将不同的内部服务器映射到同一个公网地址。外部用户可通过公网地址和端口访问不同的内部服务器,同时还隐藏了内部服务器的真实IP地址,从而防止对内部服务器乃至网络的攻击行为。
4. 方便网络管理,如通过改变映射表就可实现私网服务器的迁移,内部网络的改变也很容易。
Q:什么是ALG机制?
A:传统的NAT技术只对IP层和传输层头部进行转换处理,但有一些应用层协议,在协议数据报文中包含了地址信息。为了使得这些应用也能透明地完成NAT转换,NAT使用一种称作ALG的技术,它能对这些应用程序在通信时所包含的地址信息进行相应的NAT转换。
ALG(ApplicationLevelGateway)——应用程序级网关技术,是解决NAT对应用层协议无感知的常用方法。其原理是利用带有ALG功能的NAT对特定应用层协议的支持和理解,在一个NAT网关检测到新的连接请求时,作出如下行动:
1) 判断是否为已知的应用类型,通常是基于连接的传输层端口信息来识别。
2)识别为已知应用后,调用相应功能对报文的深层内容进行检查。
3)转换发现的IP地址和端口时:当报文到达公网侧的目的主机时,应用层协议中携带的信息就是NAT网关提供的地址和端口。
4)为这个新连接创建一个附加的转换表项。
Q:NAT有哪些实现方式?
A:NAT典型组网应用有哪些?
1. 静态NAT(Static NAT 一对一):将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一直不变的。
2. 动态地址NAT(Pooled NAT 多对多):将内部网络的私有IP地址转换为公用IP地址时,IP地址是随机、不确定的。
3. 网络地址端口转换NAPT(Network Address Port Translation 多对一):通过使用“IP地址+端口号”的形式进行转换,使多个私网用户可共用一个外网IP地址访问外部网络,可最大限度地节约IP地址资源,因此,NAPT是地址转换实现的主要形式。
NAPT在HomeGW中也主要使用该方式,它又包含两种转换方式:SNAT和DNAT。
1)源NAT(Source NAT,SNAT):修改数据包的源地址。源NAT改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是一具SNAT的例子。
2)目的NAT(Destination NAT,DNAT):修改数据包的目的地址。Destination NAT刚好与SNAT相反,它是改变第一个数据懈的目的地地址,如平衡负载、端口转发和透明代理就是属于DNAT。
Q:NAT典型组网应用有哪些?
A:
▲典型应用场景
由于公网地址资源有限,内部用户实际使用的都是私网地址。许多小区、学校和企业网的内网规划,均使用NAT技术来实现内部用户对公网的访问。
▲私网主机访问公网服务器
如上图所示,通过在NAT网关上配置NAT转换规则,以实现私网主机访问公网服务器。
总结:
在IPv4过渡到IPv6的过程中,NAT技术确实是一个不错的选择,相对其他的方案优势也非常明显,但这仍然无法扭转IP地址空间不足的局面。