一、NAT简介

目的

随着Internet的发展和网络应用的增多,IPv4地址枯竭已成为制约网络发展的瓶颈。尽管IPv6可以从根本上解决IPv4地址空间不足问题,但目前众多网络设备和网络应用大多是基于IPv4的,因此在IPv6广泛应用之前,一些过渡技术(如CIDR、私网地址等)的使用是解决这个问题最主要的技术手段。NAT主要用于实现内部网络(简称内网,使用私有IP地址)访问外部网络(简称外网,使用公有IP地址)的功能。当内网的主机要访问外网时,通过NAT技术可以将其私网地址转换为公网地址,可以实现多个私网用户共用一个公网地址来访问外部网络,这样既可保证网络互通,又节省了公网地址。

优点

作为减缓IP地址枯竭的一种过渡方案,NAT通过地址重用的方法来满足IP地址的需要,可以在一定程度上缓解IP地址空间枯竭的压力。NAT除了解决IP地址短缺的问题,还带来了两个好处:

  • 有效避免来自外网的攻击,可以很大程度上提高网络安全性。

  • 控制内网主机访问外网,同时也可以控制外网主机访问内网,解决了内网和外网不能互通的问题。

分类

根据实现方式的不同,NAT可分为以下几类:

🔔 NAT 分类

1、静态NAT:可将数据包的私网地址与公网地址进行一对一转换,但同时只允许一个私网终端访问互联网;

2、动态NAT:可将数据包的私网地址与公网地址进行一对多转换,可同时允许多个私网终端访问互联网,但非常消耗公网IP地址;

3、静态NAPT:可将数据包的私网地址、传输层端口与公网地址、传输层端口进行静态转换,既可以满足多个私网终端访问互联网,又节省了公网IP地址,但转换规则全都需要手动配置,几乎不使用;

4、动态NAPT:可将数据包的私网地址、传输层端口与公网地址、传输层端口进行动态转换,自动选择公网地址的出端口进行转换;

5、Easy-ip:动态NAPT的简单实现方式,NAPT允许多个公网IP地址的转换,而Easy-ip只允许转换为公网接口的IP地址,特别适合小型企业;

6、两次NAT:即Twice NAT,指源IP和目的IP同时转换,该技术应用于内部网络主机地址与外部网络上主机地址重叠的情况;

7、策略NAT:可根据源目地址、端口与协议进行转换,通常在防火墙上使用的一种NAT策略,可更精细的控制NAT策略;

8、NAT Server:以上NAT方式都是只允许私网终端主动访问公网时进行转换,公网无法对私网终端进行主动访问,而NAT Server可将私网内服务器的某个端口映射到公网IP的端口上,使得公网用户可进行访问(也可以整个私网地址映射到一个公网IP地址上,此时NAT Server与静态NAT效果一样);

在配置时需要注意:静态NAT与NAT Server的整个地址映射时,监听的公网地址不能是该接口配置的IP地址;

实现原理

🔔 NAT实现原理

1、当私网终端访问公网服务器的数据包通过出口路由器时,如果配置了NAT,则将数据包外层的源IP地址与源端口转换为出口路由器公网地址与端口号;

2、在系统缓存中生成一个NAT会话表(NAT Session),其中记录的内部地址、端口号与出口路由器公网地址、端口号信息和目标服务器地址、端口等,当后续私网终端数据包再次发来如果匹配该会话表可直接进行转换,无需再通过匹配。

3、当服务器回复私网设备时,根据服务器发送数据包的源目的地址、端口等信息与本地的NAT Session表进行交叉匹配(服务器源与出口路由器的目的,服务器的目的与出口路由器的源)。如果交叉匹配成功,则将该回应报文中的目的地址、端口号转换为私网地址、端口号即可完成转换。因此该过程实际是一个:请求包转换源,回应包转换目的的过程;

4、如果是静态或者动态NAT,上述过程无需进行端口转换;

NAT过滤

NAT过滤是指NAT设备对外网发到内网的流量进行过滤,是设备启用NAT后默认开启的功能,包括以下4种类型:

🔔 NAT过滤的三种类型

  • Full Cone NAT(全锥形—NAT1): 与外部地址无关的NAT过滤行为,内部设备与外部设备通信后在出口路由器上暴露一个端口,外部任意主机的任意端口访问该端口都可正常通信;

  • Restricted Cone NAT(IP限制锥形—NAT2): 与外部地址相关的NAT过滤行为,内部设备与外部设备通信后在出口路由器上暴露一个端口,外部固定主机的任意端口访问该端口可正常通信;

  • Port Restricted Cone NAT(端口限制锥形—NAT3): 与外部地址和端口都相关的NAT过滤行为(大部分家庭宽带的NAT类型,也是设备默认的NAT类型),内部设备与外部设备通信后在出口路由器上暴露一个端口,外部固定主机的固定端口访问该端口可正常通信;

  • Symmetric NAT(对称形—NAT4): 不同外部主机不同外部地址和端口都相关的NAT,内部设备与不同外部设备通信后在出口路由器上分配不同的公网IP地址与端口,外部固定主机的固定端口访问该地址和端口才可正常通信,属于最严格最安全的类型,但局域网内设备的连接也最容易出现问题;

    总结: 前面三种NAT类型都是锥形网络,内网主机使用固定的公网IP和端口进行所有的外部通信,区别在于NAT设备防火墙的安全策略不同,对称形限制最严格,场景最复杂,通常运营商检测到用户使用PCDN后会将其NAT类型变为对称形网络。

image

全锥形网络
image

IP限制锥形网络
image

端口限制锥形网络
image

对称形网络
image

二、NAT配置

1、静态NAT配置

interface g 0/0/1                                                            # 公网接口
nat static global 20.1.1.2 inside 192.168.1.1 netmask 255.255.255.255		# 在本接口上监听20.1.1.2地址并映射到私网的192.168.1.1私网地址上

2、动态NAT配置

acl 2000
 rule permit source 192.168.1.0 0.0.0.255
#
nat address-group group_name 20.1.1.2 20.1.1.10
interface g 0/0/1
nat outbound 2000 address-group group_name no-pat

3、动态NAPT配置

acl 2000
 rule permit source 192.168.1.0 0.0.0.255
#
nat address-group group_name 20.1.1.2 20.1.1.10
interface g 0/0/1
nat outbound 2000 address-group group_name

4、Easy-ip配置

acl 2000
 rule permit source 192.168.1.0 0.0.0.255
#
interface g 0/0/1
nat outbound 2000

5、NAT Server配置

interface g 0/0/1
nat server protocol tcp global current-interface 8081 inside 192.168.1.1 80			# 将本接口地址的8081端口映射到私网192.168.1.1的80端口
nat server global 20.1.1.2 inside 192.168.1.1										# 在本接口上监听20.1.1.2地址并将其全部映射到私网192.168.1.1