参考解释文章:
https://zhiliao.h3c.com/Theme/details/167990
https://zhiliao.h3c.com/Theme/details/44359
NAT alg的功能
NAT ALG(Application Level Gateway,应用层网关)主要完成对应用层报文的解析和处理。通常情况下,NAT只对报文头中的IP地址和端口信息进行转换,不对应用层数据载荷中的字段进行分析和处理。然而对于一些应用层协议,它们的报文的数据载荷中可能包含IP地址或端口信息,这些载荷信息也必须进行有效的转换(如ftp),否则可能导致功能不正常。
例如,FTP应用由数据连接和控制连接共同完成,而数据连接使用的地址和端口由控制连接协商报文中的载荷信息决定,这就需要ALG利用NAT的相关转换配置来完成载荷信息的转换,以保证后续数据连接的正确建立
华三路由器的NAT alg对 ftp server被动模式的支持
大家可能都熟知的nat alg ftp场景:ftp server配置主动模式时,ftp客户端侧的网络需要nat alg ftp。
ftp被动模式改了ftp默认端口时该如何解决nat ?:但是现在ftp server采用被动模式部署,且ftp server在采用非默认端口(21、20)。这时ftp的映射该如何解决网络映射问题?
答案 :华三路由器,打开nat alg ftp,配置port-mapping ftp和port-mapping ftp-data,这样让路由器在nat转换时识别自定义端口的ftp协议。
为什么要alg配置port-mapping
ALG(Application Level Gateway,应用层网关)主要完成对应用层报文的解析和处理。通常情况下,NAT只对报文头中的IP地址和端口信息进行转换,不对应用层数据载荷中的字段进行分析和处理。然而对于一些应用层协议,它们的报文的数据载荷中可能包含IP地址或端口信息,这些载荷信息也必须进行有效的转换。
当ftp改了端口号(默认20和21),路由器就没有识别到这是ftp,故就没有触发alg ftp对"数据载荷中内部IP地址或端口"转为公网IP+端口,导致对方接下来数据端口访问"内部+端口"。
port-mapping 使用指南
端口映射是对访问某个特定IP地址(例如FTP服务器)的报文进行协议识别,因此在匹配基本ACL规则时,使用报文的目的地址去匹配ACL规则中定义的源地址。
配置端口映射时,一个协议可以配置多个映射端口;一个端口可以映射为多个协议,但是必须通过ACL进行区分,匹配不同ACL的报文使用不同的映射关系。