地址池与 overload
思科用 ip nat pool 定义地址池,再在 ip nat inside source 里引用。加 overload 表示端口复用,多个内网地址可以共用少量公网地址;不加就是一对一分配。pool 的掩码必须与地址范围匹配,否则 IOS 会直接拒绝该配置。
基本信息
| 适用平台 | Cisco IOS / IOS-XE |
|---|---|
| 建立地址池 | ip nat pool 名称 起址 止址 netmask 掩码 |
| 引用方式 | ip nat inside source list ACL号 pool 名称 [overload] |
| 接口标记 | ip nat inside / ip nat outside |
| 查看命令 | show ip nat pool / show ip nat statistics / show ip nat translations |
| 配置校验 | netmask 必须与地址范围匹配 |
典型使用场景
- 多公网地址场景缓解单地址端口耗尽
- 迁移对照:与华为的 address-group 写法互译
- 排查部分用户能上网、部分完全不通
- 非 overload 场景实现一对一地址映射
- 核对地址池与运营商实际分配是否一致
思科 IOS
思科 IOS
ip nat pool POOL 202.1.1.1 202.1.1.10 netmask 255.255.255.248 # 掩码与地址范围匹配
ip nat inside source list 1 pool POOL overload # overload 即端口复用
access-list 1 permit 192.168.1.0 0.0.0.255 # 需要转换的内网源
interface GigabitEthernet0/0
ip nat inside
interface GigabitEthernet0/1
ip nat outside
show ip nat pool # 核对池内容
show ip nat statistics # 并发转换数与命中情况华为 VRP 与 H3C 对照
华为 VRP 与 H3C 对照
# 华为 VRP
nat address-group 1
mode pat # 端口复用
display nat address-group 1
# H3C Comware
nat address-group 1 name NATPOOL
address 202.1.1.1 202.1.1.10
display nat address-group 1三厂写法对照
| 环节 | 思科 IOS | 华为 VRP | H3C Comware |
|---|---|---|---|
| 建立地址池 | ip nat pool 名称 起 止 netmask | nat address-group 1 | nat address-group 1 name 名称 |
| 地址范围 | 起址 止址 加掩码 | section 0 起址 止址 | address 起址 止址 |
| 引用方式 | ip nat inside source list ... pool ... | nat outbound ACL address-group | nat outbound ACL address-group |
| 复用控制 | 加 overload 关键字 | mode pat | 由 outbound 语句决定 |
netmask 必须与地址范围匹配:地址段只有 10 个地址却写成 /24 掩码时,IOS 会直接拒绝该 pool 配置。这个校验既是保护也是提示,报错时先核对掩码与起止地址是否确实属于同一子网。
接口标记同样关键:inside 接口接内网、outside 接口接外网,两者写反时转换表里看不到任何记录,业务全程不通,而配置本身不会报错,排查容易走偏到路由方向。
排障时先看 show ip nat translations,确认地址是否真的被转换、用的是池里哪个地址。如果转换记录存在但业务仍不通,问题通常不在 NAT 本身,而应转向路由、ACL 或上游策略检查。
地址池与源 ACL 要成对维护:ACL 决定哪些内网源需要转换,地址池决定转换成哪些地址。只改一边(例如新增网段却忘了加进 ACL)会出现部分终端完全不通,而 NAT 统计里看不出任何异常。