ALG 解决什么协议问题
NAT ALG(应用层网关)解决的是「报文载荷里也带着 IP 与端口」的协议穿越问题:FTP 的主动与被动模式、SIP、RTSP、PPTP 等协议会在载荷里携带地址信息,NAT 设备必须在转换地址的同时改写载荷内容,否则表现为连接能建立但数据传不过去。
基本信息
| 适用平台 | 思科 IOS / 华为 VRP / H3C Comware 出口设备 |
|---|---|
| 典型协议 | FTP、SIP、RTSP、PPTP、DNS、H.323 |
| 华为与 H3C | nat alg enable ftp 等显式开启 |
| 思科 | 多数 ALG 默认随协议启用,可用 no ip nat service 精细关闭 |
典型使用场景
- FTP 被动模式下能登录但列目录卡住,需要确认 ALG 状态
- SIP 语音注册成功却单向无声,多数与载荷地址未改写相关
- RTSP 视频流无法播放,需检查会话描述中的地址改写
- 排障时临时关闭 ALG 验证是否由它引起
- 语音或视频平台与 ALG 不兼容时的取舍
华为 VRP
华为 VRP
[Huawei] nat alg enable ftp
[Huawei] nat alg enable dns
[Huawei] nat alg enable sip
<Huawei> display nat alg思科 IOS
思科 IOS
SW-CORE-01# show run | include ip nat service
SW-CORE-01(config)# no ip nat service sip udp port 5060 # 与第三方 SIP 服务器冲突时关闭
SW-CORE-01(config)# no ip nat service all # 关闭全部 ALG,慎用H3C Comware
H3C Comware
[H3C] nat alg ftp enable
[H3C] nat alg dns enable
<H3C> display nat alg协议与典型故障
| 协议 | 依赖 ALG 的原因 | 典型故障现象 |
|---|---|---|
| FTP | 主动与被动模式的载荷中携带地址与端口 | 能登录但列目录或传输卡住 |
| SIP | 会话描述中携带地址信息 | 注册成功但单向无声 |
| RTSP | 会话描述中携带地址 | 视频无法播放或播放中断 |
| DNS | 部分场景需要改写应答中的地址 | 解析结果指向不可达地址 |
三厂默认状态不同:思科多数 ALG 默认随协议启用,可用 no ip nat service 精细关闭;华为与 H3C 用 nat alg enable 显式开启。ALG 与部分语音、视频平台不兼容,排障时可以临时关闭验证。
关闭全部 ALG 是排查手段而不是解决方案:关掉之后 FTP 被动模式、SIP 等协议会直接不可用。验证完必须恢复,并记录清楚当时关闭了哪些项,避免留下长期隐患。