NAT介绍
定义
网络地址转换NAT(Network Address Translation)是将IP数据报文头中的IP地址转换为另一个IP地址的过程。
目的
随着Internet的发展和网络应用的增多,IPv4地址枯竭已成为制约网络发展的瓶颈。尽管IPv6可以从根本上解决IPv4地址空间不足问题,但目前众多网络设备和网络应用大多是基于IPv4的,因此在IPv6广泛应用之前,一些过渡技术(如CIDR、私网地址等)的使用是解决这个问题最主要的技术手段。NAT主要用于实现内部网络(简称内网,使用私有IP地址)访问外部网络(简称外网,使用公有IP地址)的功能。当内网的主机要访问外网时,通过NAT技术可以将其私网地址转换为公网地址,可以实现多个私网用户共用一个公网地址来访问外部网络,这样既可保证网络互通,又节省了公网地址。
受益
作为减缓IP地址枯竭的一种过渡方案,NAT通过地址重用的方法来满足IP地址的需要,可以在一定程度上缓解IP地址空间枯竭的压力。NAT除了解决IP地址短缺的问题,还带来了两个好处:
- 有效避免来自外网的攻击,可以很大程度上提高网络安全性。
- 控制内网主机访问外网,同时也可以控制外网主机访问内网,解决了内网和外网不能互通的问题。
NAT原理描述
NAT概述
NAT是将IP数据报文头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能。Basic NAT是实现一对一的IP地址转换,而NAPT可以实现多个私有IP地址映射到同一个公有IP地址上。
Basic NAT
Basic NAT方式属于一对一的地址转换,在这种方式下只转换IP地址,而不处理TCP/UDP协议的端口号,一个公网IP地址不能同时被多个私网用户使用。
静态NAT/NAPT
静态NAT是指在进行NAT转换时,内部网络主机的IP同公网IP是一对一静态绑定的,静态NAT中的公网IP只会给唯一且固定的内网主机转换使用。
静态NAPT是指“内部网络主机的IP+协议号+端口号”同“公网IP+协议号+端口号”是一对一静态绑定的,静态NAPT中的公网IP可以为多个私网IP使用。
静态NAT/NAPT还支持将指定私网范围内的主机IP转换为指定的公网范围内的主机IP。当内部主机访问外部网络时,如果该主机地址在指定的内部主机地址范围内,会被转换为对应的公网地址;同样,当公网主机对内部主机进行访问时,如果该公网主机IP经过NAT转换后对应的私网IP地址在指定的内部主机地址范围内,也是可以直接访问到内部主机。
NAT ALG
NAT和NAPT只能对IP报文的头部地址和TCP/UDP头部的端口信息进行转换。对于一些特殊协议,例如FTP等,它们报文的数据部分可能包含IP地址信息或者端口信息,这些内容不能被NAT有效的转换。解决这些特殊协议的NAT转换问题的方法就是在NAT实现中使用应用层网关ALG(Application Level Gateway)功能。ALG是对特定的应用层协议进行转换,在对这些特定的应用层协议进行NAT转换过程中,通过NAT的状态信息来改变封装在IP报文数据部分中的特定数据,最终使应用层协议可以跨越不同范围运行。
例如,一个使用内部IP地址的FTP服务器可能在和外部网络主机建立会话的过程中需要将自己的IP地址发送给对方。而这个地址信息是放到IP报文的数据部分,NAT无法对它进行转换。当外部网络主机接收了这个私有地址并使用它,这时FTP服务器将表现为不可达。
以下是一个项目例子
项目引入
• 当使用私有IP地址的内部主机需要访问外网时,需要使用NAT将其私有IP地址转换为共有IP地址,此时需要在网关路由器上配置NAT,来提供相应的地址转换服务。
• 当网关路由器连接ISP的接口上未使用固定IP地址,而是需要动态地从ISP获取IP地址时,为了向内部使用私有IP地址的主机提供访问外网的服务,需要在网关路由器上配置Easy IP。
• 当使用私有IP地址的内部主机/服务器需要向外部主机提供服务时,需要在网关路由器上配置NAT Server特性,将来自外部的目的IP地址转换为相应内部主机的私有IP地址。
项目目的
• 掌握静态NAT的配置
• 掌握动态NAT的配置
• 掌握Easy IP的配置
• 掌握NAT Server的配置
项目拓扑
接口规划
AR1
G0/0/0 103.31.200.5 255.255.255.248
—
G0/0/1 192.168.0.254 255.255.255.0
—
AR2
G0/0/0 103.31.200.6 255.255.255.248
—
LoopBack 0
8.8.8.8 255.255.255.255
—
PC1
E0/0/1
192.168.0.1 255.255.255.0 192.168.0.254
PC2
E0/0/1
192.168.0.2 255.255.255.0 192.168.0.254
任务1:静态NAT的配置
• 项目目的:AR1是企业网关路由器,G0/0/0接口连接ISP,G0/0/1接口连接内网主机,AR2是ISP路由器。我们要实现内网主机PC1和PC2访问Internet,AR2的环回接口地址用来模拟Internet中的服务器,也就是要使PC1和PC2能够访问AR2的环回接口地址8.8.8.8。
• ISP路由器连接企业网关路由器,并且为这个连接分配了6个IP地址,其中103.31.200.5/29是AR1接口G0/0/0使用的IP地址,
103.31.200.6/29是ISP路由器AR2接口G0/0/0使用的IP地址,其余IP地址可以由企业自行分配使用。
AR1的基础配置
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]ip address 103.31.200.5 29
[AR1-GigabitEthernet0/0/0]quit
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]ip address 192.168.0.254 24
[AR1-GigabitEthernet0/0/1]quit
[AR1]ip route-static 0.0.0.0 0.0.0.0 103.31.200.6
AR2的基础配置
[AR2]interface GigabitEthernet 0/0/0
[AR2-GigabitEthernet0/0/0]ip address 103.31.200.6 29
[AR2-GigabitEthernet0/0/0]quit
[AR2]interface LoopBack 0
[AR2-LoopBack0]ip address 8.8.8.8 32
在AR1上配置静态NAT
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]nat static global 103.31.200.1 inside
192.168.0.1
任务2:动态NAT的配置
• 项目目的:如果需要访问Internet的内网主机数量多于企业所拥有的公网IP地址数量,就可以使用NAPT(网络地址端口转换)来实现多对一的地址转换。动态NAT会使用“IP地址 + 端口号”的形式执行转换,使多个内网主机能够共用一个公网IP地址访问Internet。
• 配置多对一动态NAT转换,我们需要执行以下几个步骤:
• 使用ACL对需要进行转换的私有IP地址进行匹配
• 配置动态NAT所使用的地址池
• 进入出接口视图配置NAT规则
清除AR1上的多余配置
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]undo nat static global 103.31.200.1 inside 192.168.0.1[AR1-GigabitEthernet0/0/0]undo nat static global 103.31.200.2 inside 192.168.0.2[AR1-GigabitEthernet0/0/0]display this
[V200R003C00]
#
interface GigabitEthernet0/0/0ip address 103.31.200.5 255.255.255.248
#
Return
[AR1-GigabitEthernet0/0/0]quit
[AR1]display nat staticStatic Nat Information:
Total :
0
在AR1上配置NAPT
[AR1]acl 2000
[AR1-acl-basic-2000]rule permit source 192.168.0.0 0.0.0.255
[AR1-acl-basic-2000]quit
[AR1]nat address-group 1 103.31.200.1 103.31.200.4
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]nat outbound 2000 address-group 1
任务3:Easy IP的配置
• 项目目的:使用AR1接口G0/0/0的IP地址作为NAT转换后的IP地址,帮助内网主机访问Internet。在这个项目中,使用AR1 G0/0/0接口上配置的固定IP地址103.31.200.5作为企业从ISP那里获取的公有IP地址,忽略自动获得IP地址的配置。对于实现效果来说,只要内网主机能够访问Internet(8.8.8.8),并且使用的是103.31.200.5,项目即为成功。
• Easy IP的配置步骤是动态NAT配置步骤的子集:
• 使用ACL对需要进行转换的私有IP地址进行匹配
• 进入出接口视图配置NAT规则
清除AR1上的多余配置
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]nat outbound 2000 address-group 1
[AR1-GigabitEthernet0/0/0]quit
[AR1]undo nat address-group 1
在AR1上配置Easy IP
[AR1]acl 2000
[AR1-acl-basic-2000]rule permit source 192.168.0.0 0.0.0.255
[AR1-acl-basic-2000]quit
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]nat outbound 2000