静态NAT、动态NAT、NAPT、Easy IP、NAT Server都是网络地址转换(NAT)的不同类型和技术,它们各自具有独特的特点和适用场景。以下是关于这五种NAT技术的详细介绍:
1.静态NAT(Static NAT)
1.1定义
静态NAT是一种一对一的地址映射方式,它将内部网络的私有地址严格地映射到外部网络的公有地址。
1.2特点
映射关系在NAT配置时预先定义好,一旦配置完成就不会再改变。一个公网IP只会分配给唯一且固定的内网主机。
1.3适用场景
适用于内部网络中有特定的服务器或设备需要提供对外访问服务的情况。例如,公司内网中的Web服务器需要对外提供服务,就可以使用静态NAT将该服务器的私有IP地址映射到一个固定的公网IP地址。
1.4配置实例
如下图,企业从运运商处得到一个公网地址段:
子网可用IP地址:12.1.1.1-12.1.1.14/28
子网地址:12.1.1.0
广播地址:12.1.1.15
现需将内部服务器192.168.1.4和192.168.1.200等提供给外网访问,进行一对一映射。
在R1企业出口路由器外网接口上进行配置:
[R1]int GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]nat static enable
[R1-GigabitEthernet0/0/1]nat static global 12.1.1.2 inside 192.168.1.4
[R1-GigabitEthernet0/0/1]nat static global 12.1.1.3 inside 192.168.1.200
[R1-GigabitEthernet0/0/1]
完成后,在server上ping外网地址6.6.6.6:
同样,在外网6.6.6.6访问内网服务器:
可以查看nat映射记录:
<R1>dis nat session all
NAT Session Table Information:
Protocol : ICMP(1)
SrcAddr Vpn : 6.6.6.6
DestAddr Vpn : 12.1.1.3
Type Code IcmpId : 0 8 1
NAT-Info
New SrcAddr : ----
New DestAddr : 192.168.1.200
New IcmpId : ----
Total : 1
<R1>
可以看到目的地址12.1.1.3转换成192.168.1.200。
在R1的内网接口上抓包,也可以看到地址转换过程:
缺点:一对一,有多少内网地址就有多少公网地址。
2.动态NAT(Dynamic NAT)
2.1定义
动态NAT是一种自动化的映射过程,它会根据需要动态地将私有IP地址映射到公共IP地址。
2.2特点
多对多 映射关系不固定 (不转换端口)。
引入了地址池的概念,所有可用的公有地址组成地址池。当内部主机访问外部网络时,NAT设备会根据需要从地址池中分配一个可用的公共IP地址给内部主机使用。当内部主机不再需要公有地址时,该地址会被释放并返回地址池以供其他主机使用。
2.3适用场景
适用于内部网络中有多个主机需要共享少量公共IP地址的情况。例如,在小型企业或家庭网络中,多个设备需要同时访问互联网,但可用的公网IP地址数量有限,就可以使用动态NAT来实现地址转换。
2.4配置实例
如下图,地址池为12.1.1.5-12.1.1.10,配置动态NAT,使内网主机与外部通信。
[R1]nat address-group 1 12.1.1.5 12.1.1.10
[R1]acl 2000
[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[R1-acl-basic-2000]quit
[R1]int GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat
[R1-GigabitEthernet0/0/1]quit
[R1]
注:no-pat 表示不做端口转换。
在内网服务器192.168.1.200上ping外网8.8.8.8,并在出口进行抓包:
3.网络地址端口转换NAPT
3.1定义
NAPT(Network Address Port Translation,网络地址端口转换),也称为PAT(Port Address Translation),它实现了从地址池中选择地址进行地址转换时不仅转换IP地址,同时也会对端口号进行转换的功能。
3.2特点
基于地址池多对一映射,网络地址和端口都做转换,多对一的映射关系,仅允许内网访问外网
允许多个内部地址映射到同一个公有地址的不同端口,通过同时转换IP地址和端口号,实现了多个私网地址到一个公网地址的映射,从而进一步节省了公网IP地址资源。
3.3适用场景
普遍应用于接入设备中,如家庭路由器、企业网关等,用于隐藏中小型的网络。同时,在大型企业和机构中,NAPT也常被用于实现内部网络与外部网络之间的隔离和保护。此外,NAPT还广泛应用于移动互联网、远程办公等场景。
3.4配置实例
如动态NAT图,它与动态NAT的配置方法相同,只是最后在接口上应用nat地址组时,没有no-pat,表示要做端口转换,配置如下:
[R1]nat address-group 1 12.1.1.5 12.1.1.5
[R1]acl 2000
[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[R1-acl-basic-2000]quit
[R1]int GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
[R1-GigabitEthernet0/0/1]quit
[R1]
补充说明:
1)端口NAT和动态NAT的配置过程基本一致,只是在应用到接口时,配置命令少no-pat。
2)端口NAT一个地址可以给多个源地址转换,不是单对单的转换,所以节省了nat地址。
3)端口NAT实际应用较多,静态NAT和动态NAT因为地址不能节约,所以实际应用少。
4.Easy IP(基于接口)
4.1定义
Easy IP是一种简化版的动态NAPT技术,它没有地址池的概念,而是直接使用接口地址作为NAT转换的公网地址。
4.2特点
与NAPT类似,但Easy IP绑定的是网关设备的接口IP地址,而不是一个地址池中的IP地址。当内网主机要访问外网时,防火墙会将IP数据报文头中的内网IP地址转换为外网IP地址(即网关接口的IP地址),同时转换端口号。
4.3适用场景
适用于不具备固定公网IP地址的场景,如通过DHCP、PPPOE拨号获取地址的私有网络出口。在这些场景中,可以直接使用获取到的动态地址进行转换。
它是平时用的最多的一种NAT技术。
4.4配置实例
如下图,企业通过唯一公网IP地址12.1.1.9上网:
1)使用acl匹配允许被nat 转换的内网地址的网段
[R1]acl 2000
[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[R1-acl-basic-2000]quit
[R1]
2)公网接口调用acl 2000
[R1]int GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000
[R1-GigabitEthernet0/0/1]quit
[R1]
5.NAT Server
5.1定义
NAT Server是一种网络地址转换(NAT)的配置,用于解决公网用户访问私网服务器时的目的地址转换问题。
5.2特点
允许将公网地址映射到私网地址(即内部服务器的IP地址),同时也允许将私网地址映射到公网地址(但通常这种映射是为了实现外部访问内部服务器的目的)。
NAT Server功能使得内部服务器可以供外部网络访问,同时保护内网设备的IP地址不被直接暴露,这样内网服务器得到保护,使其更加安全。
5.3适用场景
主要用于隐藏内部服务器并保障网络安全。
例如,在公司内网中有一台Web服务器需要对外提供服务,但出于安全考虑不希望直接暴露其IP地址给外部用户。此时可以使用NAT Server将该服务器的私有IP地址映射到一个公网IP地址的特定端口上,外部用户就可以通过访问这个公网IP地址和端口来访问内部Web服务器了。
5.4配置实例
如下图,将企业内网WEB服务器192.168.1.200映射到外网,供外网主机访问:
[R1]int GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 80 inside 192.168.1.200 80
[R1-GigabitEthernet0/0/1]
注:
AR在配置NAT映射时,公网IP不能与接口IP地址相同,否则会提示冲突,导致配置不上去。会提示 Error: The address conflicts with interface or ARP IP.
[R1]int GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]nat server protocol tcp global 12.1.1.9 80 inside 192.168.1.200 80
Error: The address conflicts with interface or ARP IP.
[R1-GigabitEthernet0/0/1]
解决办法是再申请一个公网IP地址,或者写成:current-interface
。
下面可以测试外网是否能够访问内网服务器:
# 在192.168.1.200服务器上启动http服务:
# 然后在外网客户端6.6.6.6上访问内网服务器: