模拟--非对称路由(来回路径不一致)导致防火墙丢弃流量---更多精彩内容详见

小编:饿狼 更新时间:2022-04-21

【模拟--非对称路由(来回路径不一致)导致防火墙丢弃流量】---更多精彩内容详见我的订阅KE--"企业最实用的网工动手实验KE"

PC去往服务器的时候直接通过路由器抵达,而返回的数据包,则路由器利用策略路由特性强制它交给防火墙,防火墙在写192.168.1.1的路由指向10.1.1.1交给路由器,形成一个路径不一致的环境,策略可以全放。这是时候你会发现访问流量依然无法通过防火墙 。因为路由器上面能够看到客户端发起的SYN建立,以及服务器回应的SYN+ACK,而防火墙上面只收到了SYN+ACK,导致非对称路由,数据无法通过防火墙。

数据包传输过程:

(1)Client1发起TCP首包SYN建立,交给路由器处理

(2)路由器查询路由表直接丢给Server1

(3)Server1回应SYN+ACK,在路由器返回的时候,由于对接服务器的接口调用了策略路由,它会把这个数据包强制的交给10.1.2.2处理,这个时候防火墙收到后发现会话表并没有存在该数据包的匹配信息,而且这个包不是TCP的首发SYN包,则直接丢弃。

【原因】

导致这个丢弃的原因我们在上面已经深入了解了防火墙对于TCP建立会话的前提条件就是收到的包必须是首发SYN的包,而这里防火墙收到的是首发是SYN+ACK,那么防火墙则直接不予处理丢弃掉。

【解决方案】

那么在实际中真的遇到这样的情况了,防火墙也是可以处理的,由于状态检测机制的存在,它会检测各种协议的特征与是否规范,我们可以关闭这个功能,防火墙就不会对连接的状态进行分析,就相当于包过滤的策略一样,后续报文只要有安全策略允许,则直接通过。

[USG6000V1]undofirewall session link-state check:关闭很简单,一条命令搞定,关闭状态检测功能,防火墙就失去了它的魅力所在了,除非在一些特殊的环境,不建议关闭这个功能。

【最佳解决方案】

在实际中如果遇到了特殊环境,确实需要关闭状态检测的情况下,但是关闭状态检测防火墙就回到了传统的包过滤时代功能了,防火墙提供了一个非常好的功能,就是可以指定某些流量关闭状态检测,其余的保持不变。

对于特定会话存在这种情况的,用ACL匹配出来,可以利用exclude来关闭状态检测,这样的话对应ACL的不启用状态检测,其余的还是会启用。

#

acl number 3000

rule 5 permit ip source192.168.2.1 0 destination 192.168.1.1 0

#

firewall session link-state exclude acl 3000

#

firewall session link-state check