问题描述
应用层服务虽然使用应用层协议,但是在其应用层载荷中包含下层协议的信息。当数据包通过网关设备时,数据包的底层协议的信息发生变化,而应用层所包含的信息未发生变化,导致应用层协议依旧使用原始信息,而无法正常工作;
现网提供各类服务(比如 HTTP,DNS,FTP 等)的服务器一般部署在私网,因此需要在 NAT 上部署 NAT Server 功能使得外网用户能够访问这些服务。但是部分服务用到的协议是多通道协议,比如 FTP、DNS、SIP 等,部署 NAT Server 不能使外网用户访问这些服务;
多通道协议对于 NAT 的挑战(FTP)
FTP 无论使用主动模式还是被动模式都无法解决多通道协议导致外网无法访问 FTP 服务器的问题;
例如 FTP 协议属于应用层协议,但是:在被动模式下,Server 的响应报文包含网络层地址的信息(用于 Client 发起连接)。当 FTP 报文经过 NAT 网关时,网络层和传输层信息会发生变化,而应用层却依旧是原始的信息,导致 Client 连接 Server 失败;
解决方案
NAT ALG,应用层网关,用于处理应用层信息;
原理简述
根据 NAT 配置,将数据包的应用层信息进行处理,转换成其所对应的公网信息;
NAT ALG(Application Level Gateway)可以对报文的载荷字段进行解析,识别并转换其中包含的重要信息(比如 FTP 数据通道目标端口),基于这些重要信息形成 NAT 映射表项,帮助外部主机访问私网服务器;
特性特征
应用层信息转化,使其对外部表现为公网服务(而不是内网信息)
缺点:
由于NAT ALG需要读取协议报文内容,对于新协议需要升级NAT ALG特性,NAT ALG基本不支持私有多通道协议。
现网有大量设备不支持NAT ALG功能,导致部署成本比较高。
NAT ALG主要解决多通道协议在NAT Server场景下的问题,对于私网主机互通无法很好支持。
应用场景
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 主动模式;