网络地址转换NAT(Network Address Translation)主要用于实现位于内部网络的主机访问外部网络的功能,实现局域网内的主机访问外部网络。通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,既保证网络互通,又节省公网地址。
NAT应用场景:
企业或家庭所使用的网络为私有地址,使用的是私有地址;运营商维护的网络为公共网络,使用的是共有地址。私有地址不能在公网中路由。NAT一般部署在连接内网和外网的网关设备上。
NAT应用方式:
- 静态NAT实现了私有地址和公有地址的一对一映射,一个公网IP只会分配给唯一且固定的内网主机。
- 动态NAT基于地址池来实现私有地址和公有地址的转换。
- NAPT:网络地址端口转换NAPT允许多个内部地址映射到同一个公有地址的不同端口
- Easy IP允许将多个内部地址映射到网关出接口地址上不同端口。
静态NAT配置:
[RTA]int G0/0/1[RTA-GigabitEthernet0/0/1]ip add 192.168.1.254 24[RTA-GigabitEthernet0/0/1]int S0/0/0[RTA-Serial0/0/0]ip add 200.10.10.2 24[RTA-Serial0/0/0]nat static global 202.10.10.1 inside 192.168.1.1 //global参数用于配置外部公网地址[RTA-Serial0/0/0]nat static global 202.10.10.1 inside 192.168.1.2 //inside参数用于配置内部私有地址<RTA>dis nat static Static Nat Information: Interface : Serial0/0/0 Global IP/Port : 202.10.10.1/---- //标识公网地址和服务端口号 Inside IP/Port : 192.168.1.1/---- //表示私有地址和服务端口号 ......
PHP说明:
nat static global { global-address} inside { host-address}命令用于创建静态NAT,//global参数用于配置外部公网地址,//inside参数用于配置内部私有地址。
动态NAT配置:
[RTA]nat address-group 1 200.10.10.1 200.10.10.200 //配置NAT地址池[RTA]acl 2000[RTA-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255[RTA-acl-basic-2000]q[RTA-Serial0/0/0]nat outbound 2000 address-group 1 no-pat //将ACL2000与待转换的192.168.1.0/24网段的流量关联起来[RTA]dis nat address-group 1 //查看NAT地址池配置信息 NAT Address-Group Information: -------------------------------------- Index Start-address End-address -------------------------------------- 1 200.10.10.1 200.10.10.200 -------------------------------------- Total : 1 [RTA]dis nat outbound //查看动态NAT配置信息 NAT Outbound Information: -------------------------------------------------------------------------- Interface Acl Address-group/IP/Interface Type -------------------------------------------------------------------------- Serial0/0/0 2000 1 no-pat -------------------------------------------------------------------------- Total : 1
PHP思路:
讲一个访问控制列表ACL和一个地址池关联起来,标识ACL中规定的地址可以使用地址池进行地址转换。ACL用于指定一个规则,用来过滤特定流量。
注意:
指定接口S0/0/0与ACL关联在一起,并定义了用于地址转换的地址池1,参数no-pat说明没有进行端口地址转换。
Easy IP配置:
[RTA]acl 2000[RTA-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255[RTA-Serial0/0/0]nat outbound 2000<RTA>dis nat outbound NAT Outbound Information: -------------------------------------------------------------------------- Interface Acl Address-group/IP/Interface Type -------------------------------------------------------------------------- Serial0/0/0 2000 0.0.0.0 easyip -------------------------------------------------------------------------- Total : 1
PHP思路:
Easy IP的配置与动态NAT的配置类似,需要定义ACL和nat outbound 命令,主要区别是Easy IP不需要配置地址池,所以nat outbound命令中不需要配置参数address-group。
NAT服务器配置:
[RTA]int E0/0/1[RTA-Ethernet0/0/1]ip add 192.168.1.254 24[RTA]int S0/0/0[RTA-Serial0/0/0]ip address 200.10.10.2 24[RTA-Serial0/0/0]nat server protocol tcp global 202.10.10.1 www inside 192.168.1.1 8080[RTA]dis nat server Nat Server Information: Interface : Serial0/0/0 Global IP/Port : 202.10.10.1/80(www) Inside IP/Port : 192.168.1.1/8080 Protocol : 6(tcp) VPN instance-name : ---- Acl number : ---- Description : ---- Total : 1
PHP说明:
nat server protocol tcp global 202.10.10.1 www inside 192.168.1.1 8080 用来定义一个内部服务器的映射表,外部用户可以通过公网地址和端口来访问内部服务器。参数Protocol指定一个需要地址转换的协议;参数global-address指定需要转换的公网地址;参数inside指定内网服务器的地址。
在本示例中,全局地址202.10.10.1和关联的端口号80(www)分别被转换成内部服务器地址192.168.1.1和端口号8080。
总结:
哪种NAT转换允许服务器既能被内部访问又能被外部访问?
通过NAT内部服务器配置,将公网地址与一个私网服务器地址绑定,在地址转换后,外网主机便可以通过公有地址访问内网服务器。同时,私网地址可以通过服务器的私网地址访问内网服务器。
NAPT有什么功能和特点?
NAPT是基于端口转换,而不是基于IP地址转换。NAPT允许多个内部地址映射到同一个公有地址的不同端口。