问题描述
应用层服务虽然使用应用层协议,但是在其应用层载荷中包含下层协议的信息。当数据包通过网关设备时,数据包的底层协议的信息发生变化,而应用层所包含的信息未发生变化,导致应用层协议依旧使用原始信息,而无法正常工作。
例如 FTP 协议属于应用层协议,但是:在被动模式下,Server 的响应报文包含网络层地址的信息(用于 Client 发起连接)。当 FTP 报文经过 NAT 网关时,网络层和传输层信息会发生变化,而应用层却依旧是原始的信息,导致 Client 连接 Server 失败。
解决方案
NAT ALG,应用层网关,用于处理应用层信息。
原理简述
根据 NAT 配置,将数据包的应用层信息进行处理,转换成其所对应的公网信息。
协议特性
应用层信息转化,使其对外部表现为公网服务(而不是内网信息)
应用场景
NAT ALG/FTP:通过 NAT ALG 技术,我们便能够在内网使用 FTP 主动模式。
NAT ALG/DNS:DNS Server in LAN 返回的某个 Server 地址,会被 NAT ALG/DNS 转换为其映射到公网的地址。
NAT ALG (Application Level Gateway)
配置使用
Huawei VRP (NAT ALG)
[Huawei]display nat alg NAT Application Level Gateway Information: ---------------------------------- Application Status ---------------------------------- dns Disabled ftp Disabled rtsp Disabled sip Disabled ---------------------------------- [Huawei]nat alg ftp enable
通过 NAT ALG 技术,我们便能够在内网使用 FTP 主动模式。