pfSense:两个内部局域网之间的连接在 20 秒后断开

pfSense:两个内部局域网之间的连接在 20 秒后断开

我有以下配置:

LAN 01: 192.168.16.0/24 (LAN for internal servers)
LAN 02: 192.168.67.0/24 (LAN for workstations)
WAN: X.X.X.X

进而:

PFSENSE LAN IP: 192.168.16.1
PFSENSE LAN IP: 192.168.67.1 (it's a virtual IP)

局域网 01局域网 02物理上是连接的(即在同一个交换机中。我知道我应该在它们上使用单独的 LAN 或至少 VLAN,但目前我无法轻松更改此配置)。

我有一个 PFSENSE 安装 (2.2),在局域网 02从 DHCP 服务器获取其 IP 地址并使用 PFSENSE 作为默认网关。

这是我的问题:

如果我坐在一台计算机上局域网 02然后我通过 ssh(或者其他任何持久协议)连接到位于局域网 01像这样:

$ ssh -l myself 192.168.16.25

我连接没有问题。连接持续了 20 到 30 秒左右,然后就一直断线。

我的问题是:我该怎么做才能避免连接断开?

我从两端执行了 tcpdump,在某个时刻,数据包开始重复。它看起来像这样:

使用 wireshark 显示 tcpdump 捕获

我启用了这个选项,我认为它会有所帮助,但事实并非如此。

pfSense 上启用的选项

我应该提到,使用 LINUX 防火墙(iptables)的完全相同的配置可以完美运行。

有任何想法吗?

答案1

我猜测您将 LAN1 和 LAN2 列为 192.168.1.0/24 是错误的,因为捕获显示一个是 192.168.16.0,一个是 192.168.67.0,希望两个都是 /24。

静态路由过滤选项在这里不适用。

我猜你要么有重叠的网络(不是两个网络上的 /24 掩码,可能是某些主机上的 /16),要么受影响的系统之一在两个网络上都是双宿主,从而导致不对称路由。

答案2

我遇到了非常类似的问题,该问题本质上是不对称路由的变化。

在我的拓扑中,我有一个带有 2 个 LAN 接口的 PFSENSE 盒 - 都是 /24,但绝对是不同的子网。然后我有一个 L2\L3 交换机,它将两个接口连接到不同 VLAN 中的其余网络。有线用户和包含所有无线用户的网段也挂在此交换机上。有线用户在一个子网\VLAN 中,无线用户在另一个子网\VLAN 中 - 这两个子网都是 PFSENSE 盒上存在的。所有端点都使用其各自子网的 PFSENSE IP 作为其 DG。最后,交换机在上述两个子网中都有一个 IP。

我的问题是,如果我通过无线方式连接并通过 SSH 连接到交换机,我会连接正常,然后在 20-30 秒内掉线。您可能已经意识到,由于交换机的 IP 与我的机器位于同一子网中,因此交换机返回的数据包将直接发送到我的机器,而不是遵循与我机器的数据包相同的路径。交换机基本上只是避开了 PFSENSE 框。

在许多情况下,这实际上可以很好地工作,特别是对于非状态中介和\或 UDP 会话。但是,PFSENSE 盒是一个状态设备,因此几秒钟后,PFSENSE 看不到对 TCP OPEN 的响应并最终终止状态。要确认,您可以调整 PFSENSE 的 TCP OPEN 超时值(系统 --> 高级 --> 状态超时),然后观察 SSH 会话断开所需的时间将遵循您设置的时间。此值的默认值为 30 秒,正如预期的那样。从交换机中删除相关 IP 后 - BAM - 问题已修复。

虽然 OP 描述的拓扑中没有具体提到,但我怀疑相关端点之间可能存在交换机(或类似设备)。可能没有,但如果是这样,那么这可能是我在这里遇到的相同问题。或者,如果 OP 拓扑中的服务器是双宿主的,那么就会发生此问题。

相关内容