NAT(网络地址转换技术)
NAT(网络地址转换技术)
NAT概述
随着Internet的发展和网络应用的增多,有限的IPv4公有地址已经成为制约网络发展的瓶颈。为解决这个问题,NAT(Network Address Translation,网络地址转换)技术应需而生。
NAT技术主要用于实现内部网络的主机访问外部网络。一方面,NAT缓解了IPv4地址短缺的问题,另一方面NAT技术让外网无法直接与使用私有地址的内网进行通信,提升了内网的安全性。
NAT技术原理
NAT:对IP数据报文中的IP地址进行转换,是一种在现网中被广泛部署的技术,一般部署在网络出口设备,例如路由器或防火墙上。
NAT的典型应用场景:在私有网络内部(园区、家庭)使用私有地址,出口设备部署NAT,对于“从内到外”的流量,网络设备通过NAT将数据包的源地址进行转换(转换成特定的公有地址),而对于“从外到内的”流量,则对数据包的目的地址进行转换。
通过私有地址的使用结合NAT技术,可以有效节约公网IPv4地址。
NAT分类
静态NAT
静态NAT:每个私有地址都有一个与之对应并且固定的公有地址,即私有地址和公有地址之间的关系是一对一映射。
支持双向互访:私有地址访问Internet经过出口设备NAT转换时,会被转换成对应的公有地址。同时,外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被NAT设备转换成对应的私有地址。
动态NAT
动态NAT:静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池。
当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为"In Use"。当该主机不再访问外部网络时回收分配的地址,重新标记为"Not Use"。
NAPT
动态NAT选择地址池中的地址进行地址转换时不会转换端口号,即No-PAT(No-Port Address Translation,非端口地址转换),公有地址与私有地址还是1:1的映射关系,无法提高公有地址利用率。
NAPT(Network Address and Port Translation,网络地址端口转换):从地址池中选择地址进行地址转换时不仅转换IP地址,同时也会对端口号进行转换,从而实现公有地址与私有地址的1:n映射,可以有效提高公有地址利用率。
Easy-IP
Easy IP:实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于Easy IP没有地址池的概念,使用接口地址作为NAT转换的公有地址。
Easy IP适用于不具备固定公网IP地址的场景:如通过DHCP、PPPoE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。
NAT Server
NAT Server:指定[公有地址:端口]与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网,当私有网络中的服务器需要对公网提供服务时使用。
外网主机主动访问[公有地址:端口]实现对内网服务器的访问。
各类NAT的配置方法
静态NAT
如图,各个设备IP地址配置完成后,在出口路由器AR1上配置静态NAT,实现内网与外网互通。
AR1:
AR2:
先在出口路由器AR1上配置一条默认路由,然后在AR1的GE 0/0/1接口下配置静态NAT,将内网两个主机的IP一对一映射到公网200.1.1.0/24网段,最后在AR2上配置到200.1.1.0/24网段的回程路由。
配置完成后,查看连通性:
动态NAT
如图,各个设备IP地址配置完成后,在出口路由器AR1上配置动态NAT,实现内网与外网互通。
AR1:
AR2:
先在出口路由器AR1上配置一条默认路由,然后创建公网地址池200.1.1.1-200.1.1.10,创建acl匹配内网主机地址,最后在GE 0/0/1接口上将公网地址池和内网地址池进行绑定即可。切记AR2上要配置到200.1.1.0/24网段的回程路由。
配置完成后,查看连通性:
NAPT
NAPT就是对动态NAT的改进,即在原来公网地址池的基础上加上了端口映射,还是使用原来拓扑,配置方法同动态NAT一致,只是在进行公网地址池和内网地址池绑定时去掉no-pat。同时,公网地址池也可以只存在一个公网地址。
出口路由器AR1配置如下:
配置完成,查看连通性:
Easy-IP
Easy-IP与NAPT类似,可以通过一个公网地址的不同端口映射多个内网地址,只不过Easy-IP用的不是公网地址池,而是出口路由器的出接口地址。
Easy-IP配置方法非常简单,使用原来拓扑,只需要创建一个acl匹配内网的路由,然后在出接口进行绑定即可。
出口路由器AR1配置如下:
配置完成,查看连通性:
NAT Server
如图,在原来拓扑的基础上,在内网增加一台http服务器,为内外网提供http服务。
NAT Server与其他四个NAT不同,NAT Server是需要将目的地址映射到内网服务器上。
出口路由器配置如下:
可以看到,NAT Server只需要配置一条命令:nat server protocol tcp global 200.1.1.1 2345 inside 192.168.1.100 80,即将公网地址200.1.1.1的2345端口映射到内网地址192.168.1.100的80端口上,只要外网主机访问公网地址200.1.1.1的2345端口,就是要访问内网的http服务器。
配置完成后,查看连通性:
可以看到,外网客户端成功访问到了内网服务器。