根据实现方式的不同,网络地址转换能够分为如下类别:
Static NAT,静态地址转换
内网地址 与 公网地址 是一对一的永久映射关系
1)对于某个公网地址,只会分配给某个固定的内网主机,绑定的公有地址不会给到其他设备进行使用;
2)支持双向互访:私有地址访问Internet经过出口设备NAT转换时,会被转换成对应的公有地址。同时,外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被NAT设备转换成对应的私有地址。
Dynamic NAT,动态地址转换
问题描述:静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池。
解决方案:Dynamic NAT,从公网地址池中,动态选择一个 公网地址 映射到 内网地址。当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“Not Use”。
1)Dynamic NAT 基于地址池来实现私有地址和共有地址的转换;
2)地址与主机无固定的映射关系,
3)但与 Static NAT 相似,在某个时刻,同个地址只能被某个内网主机使用;
Network Address and Port Translation,NAPT,PAT
问题描述:动态NAT选择地址池中的地址进行地址转换时不会转换端口号,即No-PAT(No-Port Address Translation,非端口地址转换),公有地址与私有地址还是1:1的映射关系,无法提高公有地址利用率。
解决方案: NAPT,Network Address and Port Translation,网络地址端口转换,从地址池中选择地址进行地址转换时不仅转换IP地址,同时也会对端口号进行转换,从而实现公有地址与私有地址的 1 : N 映射,可以有效提高公有地址利用率。
1)即把内网地址映射到相同公网地址,但是不同端口上,以使多个内网地址能够共享同个公网地址;
2)该方案也是从地址池中选择公网地址(当然,我们也能够设置地址池仅有 1 个地址);
3)这是最常用的方案;
Easy IP,升级版 NATP 技术
问题描述:对于 PPPoE 拨号,IP 地址经常变化,因此无法使用地址池进行配置。
解决方案:Easy IP,实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于 Easy IP 没有地址池的概念,使用接口地址作为NAT转换的公有地址。将多个内部地址映射到网关出接口地址上的不同端口
1)在网络建立连接时(在进行 NAT 转换时),动态获取出取接口的网络地址,而非使用固定的网络地址池;
2)比如在 PPPoE 或 DHCP 中,无法预知网络地址,所以在进行 NAT 转换时,需要读取分配给网关接口的地址;
3)比 NAPT 的应用更加广泛:家用路由器通过 PPPoE 上网时,便是使用 Easy IP 模式;
NAT Server
NAT Server,指定 [公有地址:端口] 与 [私有地址:端口] 的一对一映射关系,将内网服务器映射到公网。在公网地址上,映射某个特定端口,允许外部访问。
应用场景:当私有网络中的服务器需要对公网提供服务时使用,外网主机主动访问 [公有地址:端口] 实现对内网服务器的访问。
1)使外网用户能够访问内网服务器,但是仅能访问该服务器的特定端口;
2)其对 Static NAT 相比,Static NAT 则是将整个地址分配给特定主机,等同于开放内网主机所有端口;
网络地址转换的分类(根据方式分类)
根据转换方式的不同,网络地址转换能够分为如下类别:
Source NAT,SNAT,源地址转换:目的地址不变,只替换 源地址 或 源端口
1)Static NAT、Dynamic NAT、NAPT、Easy IP 都是对源地址转换,属于 SNAT 类型;
Destination NAT,DNAT,目的地址转换:源地址保持不变,替换 目的地址 或 目的端口
1)NAT Server 属于 DNAT 类型,即修改数据包的目的地址(使其为内网主机地址)
双向地址转换:同时使用 SNAT 和 DNAT 转换规则
1)当接收到网络包时,执行 DNAT,把目的地址转换为内网地址;
2)而在发送网络包时,执行 SNAT,把源地址替换为外部地址
关于 SNAT 缩写:
1)通常,SNAT 是 Source NAT 的缩写;
2)但是 stateful NAT、static NAT、secure NAT 也缩写为 SNAT,而它们是不同的技术,不能混为一谈;