UDP连接超时到底是什么意思?


18

由于UDP是无连接协议,因此我对Sonicwall防火墙上的“ UDP连接超时”设置感到困惑。默认设置为30秒-但是30秒后究竟会超时吗?

WTF?

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

我在这里想念什么?SonicWall谈论“ UDP连接超时”是什么意思?


防火墙通常允许数据包用于由防火墙内部的计算机建立的连接。但是UDP没有连接。因此,选择是允许所有UDP数据包,阻止所有UDP数据包,或尝试猜测“ UDP连接”是什么,因此仅允许那些“连接”中的数据包。所有(?)防火墙供应商都采用最后一种方法。
user253751 '16

正如immibis所描述的。由于网络地址转换或NAT,Internet /子网网关路由器将仅允许TCP(实际上所有流量均为TCP),而子网中的客户端将在该TCP / IP中发起连接。因为如果传入连接,则无法为NAT分配端口。路由器如何知道将其发送给谁?UDP甚至都没有连接,那么处理UDP请求的路由器如何进入?一种方法是跟踪出站UDP数据包。
元帅工艺

如果要托管服务器,则尽管准备进行任何操作,但应该转发希望在其上接收连接的端口。
元帅工艺

Answers:


16

尽管与UDP没有正式的“连接”,但仍然存在一个约定,即客户端发送请求并希望通过源IP和端口与Destinatoin IP和端口交换来返回响应。

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

不幸的是,防火墙或NAT无法知道客户端何时完成与服务器的对话。因此,它必须等待超时,然后才能从状态跟踪表中删除该条目。那是您设置的超时。

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

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


2
感谢彼得的精彩回答!以我为例,SonicWall允许我减少特定防火墙规则上的UDP“连接超时”,因此我将NTP策略的规则减少至5秒(从默认值30秒)。
乔恩·沃兹沃思

1
注意:这样做之后,我看到了Sonicwall报告的“总连接数”从〜1500下降到〜400。完善!再次感谢您的出色回答。
乔恩·沃兹沃思

1
请注意,大多数流协议使用UDP,其中包括VOIP的媒体部分(使用SIP协商后)。如果没有流量(例如,呼叫保持,双方静音等),那么超时时间短会引起问题,因为如果端口掉线,并非所有的VOIP电话(硬或软)都可以很好地重新协商媒体连接。其他人则通过定期发送微小信号来“保持活动”,这可能相距5秒。
Chuck van der Linden

11

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


谢谢罗恩。您可以针对入站连接在该连接表上发表评论吗?由于我的NTP服务器位于内部,因此实际上不需要为那些入站连接“敞开大门”,因为内部的Server始终可以返回到源(我有广泛开放的出站规则)。感谢您及时回复!
乔恩·沃兹沃思

3
无论连接的方向如何,都建立了连接表,实际上该连接表立即用于从防火墙通过服务器返回到查询器的服务器返回的响应数据包。防火墙正在维护一个元组(src ip,src端口,dst ip,dst端口),以将初始查询与响应相关联。由于实际上没有向防火墙指示特定的UDP会话已完成并且套接字已关闭的信号灯,所以最终使用了超时值。
rnxrx

2

您的NTP服务器位于NAT(防火墙)的后面。从应用程序和OS的角度来看,并且对于大多数网络设备而言,UDP是无连接的。

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

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


1
超时不特定于NAT。任何有状态防火墙都会有一个。
user1686 '16

防火墙不执行NAT,而是尝试过滤通过NAT过渡的数据包,从而与路由器和NAT相互关联。
法警艇艇手

到Internet的网关路由器必须使用NAT,因为任何计算机都位于子网中,只有网关路由器具有实际的Internet IP地址。如果每台计算机都是互联网上的东西,那将是极大的浪费。网关路由器有时会有一大堆计算机,这些计算机都与一个Internet IP地址相关联。它使用一个怪诞的Web套接字,能够在来自Web的传入数据包和其网络上的计算机之间进行一对一的转换。人们似乎不明白这一点。
法警艇艇手

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.