Answers:
“ALG”在这里代表“应用层网关”。也就是说,防火墙模块可以应对这些协议的一些特性。
在状态防火墙上,“状态”通常与地址和端口号相关联。也就是说,你从口X发送一个数据包到服务器的端口Y,而防火墙会自动允许转回。然而,一些协议使用。额外的连接-例如,FTP在“主动”模式使服务器连接返回到你一个单独的港口。因此防火墙需要一个监听FTP命令的ALG模块,并自动添加必要的规则。(这包括NAT使用时的自动端口转发。)
启用NAT的防火墙会转换相应标头中的IP地址和TCP / UDP端口。但是一些协议也会在数据包本身内部发送客户端或服务器的地址- 例如,是的,相同的FTP会这样做(在活动模式下,客户端发送自己的地址,在服务器执行的被动模式下)。ALG尝试对这些FTP命令进行适当的重写。
通常,如果不存在适当的ALG会发生什么情况,某些连接只是挂在中间。例如,您可以登录到FTP服务器,但在尝试获取文件列表时会超时。
(是的,大多数人在启用加密时停止工作,因为ALG无法再查看内部。你可以说ALG是用于掩饰问题的工具。)
至于你可以禁用它:这实际上取决于你使用的协议,以及你的特定路由器的ALG是否具有可接受的质量。(有些模型会完全断开连接,而不是“修复”它们......)例如,禁用H.323支持(旧的VoIP协议)应该没问题。