NAT(网络地址转换)是一种在计算机网络中广泛使用的技术,主要用于将私有IP地址转换为公有IP地址,从而节省公有IP地址资源,并增强网络安全性,NAT配置通常在路由器、防火墙或专用NAT设备上进行,不同厂商的设备(如Cisco、华为、H3C等)命令行界面(CLI)略有差异,但核心配置逻辑相似,以下以Cisco IOS设备为例,详细介绍NAT的配置命令及步骤。

基本NAT配置(静态NAT)
静态NAT将内部网络的私有IP地址与公有IP地址进行一对一固定映射,适用于需要从外部网络访问内部服务器的场景(如Web服务器、FTP服务器)。
配置步骤:
-
步骤1:定义内部和外部接口
首先需要指定哪些接口连接内部网络(通常为私有网络),哪些接口连接外部网络(通常为公有网络)。Router(config)# interface GigabitEthernet0/0 // 假设G0/0为内部接口 Router(config-if)# ip nat inside // 标记为内部接口 Router(config-if)# exit Router(config)# interface GigabitEthernet0/1 // 假设G0/1为外部接口 Router(config-if)# ip nat outside // 标记为外部接口 Router(config-if)# exit
-
步骤2:配置静态NAT映射
将内部服务器的私有IP地址(如192.168.1.100)映射到公有IP地址(如203.0.113.10)。
(图片来源网络,侵删)Router(config)# ip nat inside source static 192.168.1.100 203.0.113.10
-
步骤3:验证配置
使用以下命令检查NAT映射是否生效:Router# show ip nat translations // 查看当前NAT转换表 Router# show ip nat statistics // 查看NAT统计信息
动态NAT配置
动态NAT将内部网络的多个私有IP地址动态映射到一组公有IP地址地址池,适用于内部主机需要主动访问外部网络的场景。
配置步骤:
-
步骤1:定义地址池
创建一个公有IP地址池,用于动态分配。Router(config)# ip nat pool POOL1 203.0.113.10 203.0.113.20 netmask 255.255.255.0
-
步骤2:定义ACL匹配内部主机
创建访问控制列表(ACL),指定哪些内部IP地址可以参与NAT转换。Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255 // 允许192.168.1.0/24网段
-
步骤3:绑定ACL和地址池
将ACL与地址池关联,并指定为动态NAT转换。Router(config)# ip nat inside source list 1 pool POOL1 overload
overload参数表示启用PAT(端口地址转换,即NAT多路复用),允许多个内部主机共享一个公有IP地址。
PAT(NAT多路复用)配置
PAT是动态NAT的扩展,通过端口号区分不同内部主机,是最常用的NAT类型,可最大化节省公有IP地址。
配置步骤:
- 步骤1:定义内部和外部接口(同静态NAT)
- 步骤2:定义ACL(同动态NAT)
- 步骤3:配置PAT
直接使用ACL和接口,无需地址池(或使用单一公有IP):Router(config)# ip nat inside source list 1 interface GigabitEthernet0/1 overload
若使用地址池,则命令与动态NAT相同(但必须加
overload)。
NAT配置示例(汇总)
以下是一个完整的NAT配置示例,包含内部接口(G0/0)、外部接口(G0/1)、动态NAT和PAT:
Router> enable Router# configure terminal Router(config)# interface GigabitEthernet0/0 Router(config-if)# ip address 192.168.1.1 255.255.255.0 Router(config-if)# ip nat inside Router(config-if)# exit Router(config)# interface GigabitEthernet0/1 Router(config-if)# ip address 203.0.113.1 255.255.255.0 Router(config-if)# ip nat outside Router(config-if)# exit Router(config)# ip nat pool DYN_POOL 203.0.113.10 203.0.113.20 netmask 255.255.255.0 Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255 Router(config)# ip nat inside source list 1 pool DYN_POOL overload Router(config)# end Router# write memory // 保存配置
NAT常见问题排查
-
问题1:内部主机无法访问外部网络
排查步骤:- 检查内部和外部接口是否正确标记(
ip nat inside/outside); - 验证ACL是否匹配内部IP地址;
- 确认地址池中的公有IP地址是否可用;
- 使用
debug ip nat查看实时NAT转换过程。
- 检查内部和外部接口是否正确标记(
-
问题2:外部主机无法访问内部服务器
排查步骤:- 检查静态NAT映射是否正确配置;
- 确认外部防火墙是否允许访问服务器映射的公有端口;
- 验证内部服务器是否配置了默认网关指向NAT设备。
相关问答FAQs
Q1: NAT和PAT有什么区别?
A: NAT(网络地址转换)通常指将私有IP映射到公有IP的一对一或多对多映射,而PAT(端口地址转换)是NAT的一种特殊形式,通过端口号区分多个内部主机,允许多个私有IP共享一个公有IP地址,PAT是实际应用中最广泛的NAT类型,也称为NAT Overload。
Q2: 如何在华为设备上配置动态NAT?
A: 在华为VRP系统中,动态NAT配置步骤如下:
- 定义接口区域:
interface GigabitEthernet0/0,然后nat zone untrust(外部接口)和nat zone trust(内部接口); - 定义地址池:
nat address-group group1 203.0.113.10 203.0.113.20; - 定义ACL:
acl number 3000,rule permit source 192.168.1.0 0.0.0.255; - 应用NAT策略:
nat-policy,policy zone trust zone untrust,action source-nat address-group group1。
