Cisco 路由器配置动态 NAT
Cisco 路由器配置动态 NAT
动态 NAT 将内网多台主机的私有地址映射到一段公网地址池中的某个地址,池中的地址被占用时其他内网主机可继续使用池内剩余地址;池用满后新的连接需等待已有转换超时释放。
适用设备
本文命令在 Cisco IOS 及 Cisco IOS-XE 上通用,适用于以下类型设备(凡支持 ip nat 的 Cisco 路由器均可):
| 类型 | 型号示例 |
|---|---|
| 集成多业务路由器(ISR) | Cisco 1841、1921、1941、2911、2921、4321、4331、4451 等 |
| 企业级路由器 | Cisco 2800、3800 系列(如 2811、3825) |
| 云服务路由器(CSR) | Cisco CSR1000V(虚拟路由器,命令一致) |
系统要求:Cisco IOS 12.x 或 IOS-XE 3.x 及以上(带 IP Base 或更高功能镜像)。本文示例中的接口名为 GigabitEthernet0/0、Serial0/0/0,不同型号可能为 FastEthernet0/0、GigabitEthernet0/1 等,请以设备实际 show ip interface brief 输出为准。
适用场景
内网主机数量不多、且拥有多个公网 IP 时,适合用动态 NAT;若只有一个公网 IP 或需要大量并发,可考虑 PAT(端口复用)。
基本概念
| 概念 | 说明 |
|---|---|
| Inside 接口 | 连接内网(私有网段)的接口,需执行 ip nat inside |
| Outside 接口 | 连接公网或上游的接口,需执行 ip nat outside |
| ACL | 用标准 ACL 指定「哪些内网地址」参与 NAT,匹配的流量才会被转换 |
| 地址池 | 一段公网 IP 范围,内网主机外出时从池中动态分配一个公网 IP |
配置步骤
步骤 1:定义 NAT 地址池
在全局配置模式下创建公网地址池,指定起始 IP、结束 IP 和子网掩码。
Router(config)# ip nat pool 池名称 起始IP 结束IP netmask 子网掩码示例:池名为 mypool,公网段为 202.96.1.3~202.96.1.10。
Router(config)# ip nat pool mypool 202.96.1.3 202.96.1.10 netmask 255.255.255.0步骤 2:用 ACL 指定需要转换的内网网段
用标准 ACL 匹配要做 NAT 的内网地址(如 192.168.1.0/24)。
Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255ACL 说明
标准 ACL 只匹配源地址,末尾隐含 deny any。只对需要出网的内网网段做 permit,可使用 1~99 或 1300~1999 的编号。
步骤 3:将 ACL 与地址池绑定(启用动态 NAT)
把「匹配 ACL 的流量」动态映射到上面定义的地址池。
Router(config)# ip nat inside source list 1 pool mypool其中 1 为 ACL 编号,mypool 为步骤 1 的池名称。
步骤 4:在接口上指定 Inside / Outside
在连接内网的接口上启用 ip nat inside,在连接公网的接口上启用 ip nat outside。接口角色不要配反,否则 NAT 不生效。
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# interface Serial0/0/0
Router(config-if)# ip nat outside
Router(config-if)# exit步骤 5:保存配置
Router# write memory
# 或
Router# copy running-config startup-config完整示例(汇总)
相关信息
以下为一段按顺序执行的完整配置,接口名(如 G0/0、S0/0/0)请按实际修改。假设内网 192.168.1.0/24,公网池 202.96.1.3~202.96.1.10。
Router(config)# ip nat pool mypool 202.96.1.3 202.96.1.10 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 mypool
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# interface Serial0/0/0
Router(config-if)# ip nat outside
Router(config-if)# exit
Router(config)# end
Router# write memory验证
| 命令 | 说明 |
|---|---|
show ip nat translations | 查看当前 NAT 转换表(内部 IP 与池中公网 IP 的对应关系) |
show ip nat statistics | 查看 NAT 统计(命中次数、地址池使用情况等) |
clear ip nat translations * | 清空所有动态转换(调试时可使用) |
查看转换表
需先有内网主机访问外网产生流量后,在路由器上执行 show ip nat translations 才会看到动态产生的映射条目。
更新日志
a569b-于0c763-于