我有一个用户试图在他的家庭网络上访问他的公司网络资源。他能够访问 SMB 共享和其他资源,但无法在其网络中的任何计算机上访问其 AS400,并且无法在其家庭 WiFi 上的任何 iOS 设备上的 iOS 电子邮件应用程序上更新他的 Exchange 电子邮件。他可以通过 Outlook 应用程序访问他的电子邮件。他公司的另一个用户具有完全相同的设置,并且没有这些问题。
设置如下:
Mikrotik Hex(在客户家)-> Mikrotik CHR(用作隧道路由器,托管在我公司的 VM 服务器上)-> Fortigate Firewall(托管在我公司的服务器机架中)-> Mikrotik CCR(在客户的公司办公室)
上面的每个设备都使用 BGP 通过 IP 隧道连接,Fortigate 除外。它与 CHR 和 CCR 共享 Vlan,并使用 BGP。
用户可以毫无问题地从家里 ping 两台设备。
我已经在 Hex、Fortigate 和 CCR 上完成了数据包捕获。
我看到 Hex 获得了大部分必要的流量。对于 AS400,它首先通过端口 449,然后 TCP 连接完成,然后通过端口 8476,并且 TCP 连接永远不会完成。我的研究告诉我,端口 449 是托管 AS400 的 IBM 设备的服务器映射器,端口 8476 是登录验证服务。起初,我认为由于他没有从端口 8476 获得所有必需的 TCP 响应,因此存在验证问题,但我认为他会得到可以证实这一点的东西。对于他邮件应用程序上的 Exchange 电子邮件,我可以看到 iPhone 通过端口 443 进行访问,并确认它应该使用 HTTPS,但他没有得到 TLS 握手的最后一部分。他发送客户端问候,获取服务器问候,发送客户端握手和加密消息,但永远不会收到服务器握手/服务器完成消息。在这两个测试中,都有很多 TCP 重传、TCP Dup Acks 和 TCP Out of Orders。
我的下一个数据包捕获是在 Fortigate 和 CCR 上完成的。从 Fortigate 中,我注意到的第一件事是几乎为零的 TCP 重传、TCP Dup Acks 和 TCP 乱序。我看到与 TCP 连接数据包一样来回发送相同的数据包,但这几乎就像 Fortigate 正在丢弃额外的数据包。
公司办公室 Mikrotik CCR 上的最后一个数据包捕获显示,所有丢失的 Hex 数据包都在发送,并且 TCP 重传、TCP Dup Acks 和 TCP 乱序也在那里。起初,我的想法是有一个防火墙规则阻止了这个流量。因此,我查看了所有防火墙规则,包括在此连接域之外的规则,并且没有任何东西会丢弃此流量。然后我想,即使有防火墙规则丢弃了这个流量,它也应该把流量丢弃给没有这些问题的其他用户。
有没有人知道为什么这个流量没有返回或被防火墙丢弃?