UDP 连接超时的真正含义是什么?

网络工程 音墙 UDP
2021-07-24 14:25:22

由于 UDP 是一种无连接协议,我对 Sonicwall 防火墙上的“UDP 连接超时”设置感到困惑。它的默认设置为 30 秒——但是 30 秒后到底什么时间超时?

跆拳道?

这是我的实际情况:我在 ntp.org 池中有一个 NTP 服务器,每分钟处理大约 3000 个查询。这给我的 SOHO 级 TZ-200 带来了一些压力——不是在带宽方面;但就连接数而言,它已经通过了它。我想知道 UDP 连接是否以某种方式在 SonicWall 上“保持活动状态”;即使它们(根据定义)是无连接的。

我在这里错过了什么?SonicWall 在谈到“UDP 连接超时”时是什么意思?

4个回答

虽然与 UDP 没有正式的“连接”,但仍然有一个约定,即客户端发送请求并期望得到响应,源 IP 和端口与目标 IP 和端口交换。

因此,状态防火墙和 NAT 假定具有源 IP/源端口/目标 IP/目标端口的给定组合的数据包和具有交换的源和目标的相应组合形成“连接”的一部分。这允许将诸如“仅传出连接”之类的规则应用于 UDP,并允许将反向转换应用于响应数据包。

不幸的是,防火墙或 NAT 无法知道客户端何时完成与服务器的对话。所以在从它的状态跟踪表中删除条目之前,它必须等待超时。那就是您设置的超时时间。

原则上,可以构建一个 NAT 框,它使用无状态方法进行端口转发,同时为传出连接保持有状态方法,但只对所有内容使用有状态 NAT 更简单,听起来这就是您的供应商正在做的事情。

不幸的是,正如您发现的那样,这对于处理大量小请求的无状态 UDP 服务器来说很糟糕。您最终会遇到防火墙消耗的资源远多于服务器本身的情况。

您的防火墙正在维护 UDP 连接的连接表。例如,当您发送 DNS 查询时,防火墙会为该流创建一个条目,以便 DNS 回复将被允许返回您的网络。表中的条目在 30 秒没有活动后超时。

您的 NTP 服务器位于 NAT(防火墙)之后。从应用程序和操作系统以及沿途的大多数网络设备的角度来看,UDP 是无连接的。

然而,对于您的 NAT 防火墙,它会在 UDP 数据包发出时进行记录,以便来自另一端的响应最终会被重定向到您网络内的同一台计算机。这些被防火墙称为“连接”。

现在,理论上,NAT 知道外部端口将是 NTP 众所周知的端口,但您的防火墙似乎不支持该端口。如果这是您通过此防火墙仅用于 UDP,则可以将连接超时设置为较小的数字。或者,如果它允许您按应用程序端口设置,您可以为该特定端口将其设置为更短的时间(例如 1 秒)。

IPv6 不需要 NAT,但它仍然看起来好像防火墙相对于 UDP 是有状态的。