# NAT 地址转换 ## 场景 内网私有地址要访问外网(源 NAT),或者外网要访问内网服务器(端口映射)。 ## 前置条件 - 有公网地址或运营商分配的地址 - 知道要做转换的内网网段 - 明确是出方向还是入方向 ## 配置 ### H3C ```text system-view acl basic 2000 rule 0 permit source 192.168.10.0 0.0.0.255 quit interface GigabitEthernet1/0/24 nat outbound 2000 nat server protocol tcp global current-interface 8080 inside 192.168.10.5 80 quit ``` ### 华为 ```text acl number 2000 rule 5 permit source 192.168.10.0 0.0.0.255 quit interface GigabitEthernet0/0/24 nat outbound 2000 nat server protocol tcp global current-interface 8080 inside 192.168.10.5 80 quit ``` ## 验证 ```text display nat outbound display nat server display nat session brief ``` 从内网访问外网能通、从外网访问映射端口能通,两边都验证一遍。 ## 回滚 ```text interface GigabitEthernet1/0/24 undo nat outbound 2000 undo nat server protocol tcp global current-interface 8080 ``` ## 坑 - **内网访问自己的公网映射地址不通**,要开 NAT hairpin(回流)。 - 映射的端口和路由器自身管理端口冲突(比如 80)。 - `nat outbound` 的 ACL 写太宽,把管理网段也转换了。 - 一对多映射(pat)端口耗尽,并发高时会失败。 - 双出口做了 NAT,回包从另一条链路回来会被丢。 - 改完 NAT 没清理会话,旧会话还在用旧规则。