上一篇中 

"利用掌握的路由知识解决现实环境中的问题提出的解决方法并没有解释清楚问题的症结!

现在补上!


更改之处:在本次实验当中(M0n0wall 用 Pfsense替代)

遇到问题:本次遇到的问题与之前并没有不同 -- 从SZBG ping/tracert HKBG 192.168.15.21 正常

                但客户端Outlook邮箱就是不能正常连接HKBG的邮件服务器192.168.15.21



利用掌握的路由知识解决现实环境中的问题 --- 之(非对称路由)_第1张图片


思考的方向:

    既然ping和tracert都没有问题、说明路由没什么太大问题。

    到底是哪里不同呢?(协议),ping/tracert/Outlook使用的协议不同!


   正常情况下: 客户端 连接 邮件服务器是这样->

    利用掌握的路由知识解决现实环境中的问题 --- 之(非对称路由)_第2张图片

    很显然Outlook是使用TCP协议 与 邮件服务器通讯 而ping/tracert 是使用ICMP协议!


    M0n0wall 和 Pfsense这两者都是基于状态检测的防火墙(它集成了:FW+Router的功能)

     基于状态检测的防火墙特性:

     如果:某个会话不完整(如:只有请求报文SYN、没有响应报文 ACK)那么这个会话请求将被拦截或丢弃!

     通常它要求必须保持会话的完整性,我们知道(一个TCP连接的建立与断开分为:3次握手与4次断开)

     TCP是面向连接的且有状态的可靠传输协议:

      利用掌握的路由知识解决现实环境中的问题 --- 之(非对称路由)_第3张图片

     

把我们现有的网络架构放大一点看得更清楚:

    利用掌握的路由知识解决现实环境中的问题 --- 之(非对称路由)_第4张图片

    我们可以从图中看出(报文从192.168.20.45出去/回来时的路径 是不相同的,即通常所谓:非对称路由)

     然而这种情况在(M0n0wall 和 Pfsense)看来此次会话是不完整的(因为它仅仅是收到了SYN的包、其它包都没有收到)

     所以192.168.20.45发起的连接请求将会被(M0n0wall 和 Pfsense)拦截或丢弃!


     为了解决这个问题PFsense提供了一办法:

      我们只需要在 System - > Advanced -> Firewall&NAT 勾选“Static route filtering”。即可真正解决上述问题!

     利用掌握的路由知识解决现实环境中的问题 --- 之(非对称路由)_第5张图片