注:反向路由又叫逆向路由
最近做项目的时候遇到一个奇怪的问题,一台防火墙接入了同一个运营商的两条专线(鬼也不知道他为什么要这么买专线),而且是同一个光收发出来的光纤分别接到了两个光猫上。
(随便找的图,拓扑差不多)
当一切配置完毕之后,神奇的事情发生了,防火墙备是可以远程管理,甚至VPN也可以接入,内网用户也可以正常上网,但是端口的映射却怎么也不通。(其实还遇到了NAT回流的问题,这里就不写了)
我们是又是远程又是抓包,忙活了一个多小时,最终这个问题由开启“反向路由”后而告终,感觉也算是个小经验吧!
通常情况下,访问数据包和应答数据包都是根据路由表进行选路的。反向路由是指路由设备记录访问数据包的方向,当需要转发应答数据包时,不再查询路由表,而是查找到反向流,从访问数据包的接口回复。
然后分析一下这个现象的数据通信过程:
(太多细节就不写了,比如数据包里的字段是什么值,包怎么封装,这里分析不到这么细)
问题就出在这里,数据包由防火墙的1口接收,由2号口转发,造成单边流量的现象,也就是平时所说的来回路径不一致,防火墙在没有开启状态检测和反向路由的情况下就会造成丢包。
解决办法就是开启反向路由
测试业务端口正常!