我在 Sun4u 上的 Solaris 9 上安装了 R65。目前它遇到了一个问题,即在长连接期间(我认为。它似乎不会对所有连接都这样做,我无法弄清楚受影响的连接和不受影响的连接之间的区别),它会在一段时间后停止允许流量。没有流量被记录为被丢弃。当我使用 fw monitor -p All 时,我可以看到流量达到第五阶段出站(fw VM 出站)并且没有进一步发展。但是,连接的开始设置正确,我可以看到连接在 Smart Tracker 中记录为已通过。fw ctl debug 似乎没有指出任何有用的信息,fw debug fwd 也没有。我是否遗漏了可能导致这种情况的明显原因?
答案1
找到了。看来检查点与操作系统分开维护 MTU,违反此规定的数据包将被默默丢弃。这解释了为什么智能跟踪器中没有记录任何内容,以及为什么在第五阶段之后丢弃了内容(它们无法通过 Wire VM 出站)。可以使用以下命令更改此设置
fw ctl set int fwtcpstr_max_window <number in decimal>
如果你确实更改了此设置,则需要更新设置以使其在重启时重新应用。这些设置在 $FWDIR/conf/modules/fwkern.conf 中,
fwtcpstr_max_window=<number in hex>
(感谢 freenode 上向我解释这一点的人)
答案2
问题发生时,受影响的连接是否处于空闲状态,或者它们之间是否有流量通过?大多数防火墙都具有针对未通过流量的连接设置的空闲会话超时功能。这有助于防火墙从空闲连接中恢复资源,例如内存、CPU、状态表条目等。