ASPF的简介
1、了解ASPF:
ASPF(Application Specific Packet Filter)应用层包过滤,也叫基于状态的报文过滤,ASPF会检测通过防火墙的报文应用层信息并根据通过防火墙报文的应用层信息生成server-map表。
ALG(Application Level Gateway)应用层网关,该功能是在NAT场景下自动检测通过防火墙的报文应用层信息并根据这些信息生成server-map表,并自动转换在报文载荷中的IP地址和端口,通常应用层信息也会携带IP地址和端口,这里就是转换应用层的IP地址和端口,区别于普通的NAT,他会对应用层的IP地址和端口也进行转换。
通常在组网中ASPF和ALG两者都是一样的配置,相辅相成,只是在不同的应用场景中的叫法不同。(以我的理解为两者都是一样的,只是应用场景不同而叫法不同)
2、两者的区别:
ALG只对应用层报文头中的IP地址和端口信息进行转换
ASPF不会对应用层报文内容进行修改。
ALG应用在NAT场景下
ASPF应用在非NAT场景下
3、为什么要使用ASPF/ALG:
由于多通道协议中的数据信道的端口是在控制通道动态协商的,管理员无法预知,所以无法精确的写出安全策略放行报文通过,只能放开所有的端口,但是随着放开所有的端口那么将会给内网带来被攻击的风险,为了解决这个问题,就需要使用到ASPF功能。
4、ASPF工作原理:
以多通道协议FTP为例:
ASPF场景下client1主动模式下访问总部server1的FTP服务
在这个场景中并不需要做NAT转换,只要路由可达就行。
AR1配置一条10.1.200.0的静态路由指向1.2
ip route-static 10.1.200.0/24 1.1.1.2
防火墙配置一条默认路由指向1.1
ip route-static 0.0.0.0 0.0.0.0 1.1.1.1
防火墙放行安全策略并放行ASPF的FTP策略
client进行访问并在防火墙g1/0/0端口进行抓包
因为TCP建立连接并不携带应用层信息所以这里并不会生成server-map表,它是直接匹配安全策略并生成会话表且后续的FTP直接匹配会话放行。直到交互port命令动态协商数据通道端口的时候ASPF会识别到应用层信息并创建server-map表(这里是控制通道建立的过程)
后续建立的数据通道将匹配创建的server-map表直接进行转发
PS:以上仅为个人的理解。