NAT 环回解决什么问题
NAT 环回(hairpin,也叫回流)解决的是内网用户直接用服务器公网映射地址访问内网服务器时不通的问题。原因在于出口设备的 NAT 与安全策略通常只对穿越出口的流量生效,源和目的都在内网一侧的流量既不做地址转换、也匹配不上原有策略,于是被丢弃。常见解法是启用环回;更省事、路径也最优的做法是让内部 DNS 直接把域名解析到内网地址。
基本信息
| 适用平台 | 华为 VRP、H3C Comware、思科 IOS 出口设备 |
|---|---|
| 典型现象 | 外网访问映射地址正常,内网访问同一个公网地址不通 |
| 三厂实现 | 华为/H3C 部分型号支持 nat hairpin enable;思科用 NVI 模式 |
| 推荐替代 | 内部 DNS 分离解析,直接把域名指向内网地址 |
典型使用场景
- 内网员工用公网域名或公网 IP 访问内网服务器时不通
- 员工在公司与在外使用同一地址访问业务,期望行为一致
- 应用的回调或重定向地址写死为公网地址,内网也会去请求该地址
- 映射配置核对无误但仍然不通,需要排除环回因素
- 方案取舍:优先做内部 DNS 分离解析,其次才考虑环回
华为 VRP
华为 VRP
[Huawei-GigabitEthernet0/0/1] nat hairpin enable # 部分型号支持
[Huawei] nat server protocol tcp global 202.1.1.1 443 inside 192.168.1.20 443
<Huawei> display nat server
<Huawei> display nat session all | include 202.1.1.1思科 IOS
思科 IOS
SW-CORE-01(config-if)# ip nat enable # NVI 模式,内外接口都启用
SW-CORE-01(config)# ip nat source list 1 interface GigabitEthernet0/0 overload
SW-CORE-01(config)# ip nat inside source static tcp 192.168.1.20 443 202.1.1.1 443
SW-CORE-01# show ip nat translations
SW-CORE-01# show ip nat statisticsH3C Comware
H3C Comware
[H3C-GigabitEthernet1/0/1] nat hairpin enable
[H3C] nat server protocol tcp global 202.1.1.1 443 inside 192.168.1.20 443
<H3C> display nat server
<H3C> display nat session | include 202.1.1.1四条路线怎么选
| 方案 | 优点 | 代价 |
|---|---|---|
| 内部 DNS 分离解析 | 配置简单、不依赖设备能力、访问路径最优 | 需要维护内外两套解析记录 |
| NAT 环回 hairpin | 客户端侧完全不需要改动 | 流量绕行出口设备,性能与并发能力受影响 |
| 思科 NVI 模式 | 支持环回能力 | 需要改造现有 NAT 配置模型 |
| 双 DNS 视图 | 内外解析分离,管理规范 | 依赖 DNS 系统自身的视图能力 |
华为与 H3C 的 nat hairpin enable 支持情况随型号和版本差别较大,部分盒式设备并不支持;思科通过 NVI(ip nat enable)获得环回能力。落地前先在目标设备上用 ? 确认命令是否存在,别按文档照抄。
环回方案下内网互访流量要绕行出口设备,路径被拉长且占用 NAT 会话资源,大流量业务应优先改用内部 DNS 解析到内网地址,而不是长期依赖环回。