UDP接続タイムアウトとはどういう意味ですか?


18

UDPはコネクションレスプロトコルであるため、Sonicwallファイアウォールの「UDP接続タイムアウト」の設定に混乱しています。デフォルトの30秒に設定されていますが、30秒後に何がタイムアウトしますか?

WTF?

実際の実際の状況は次のとおりです。ntp.orgプールには、毎分約3000件のクエリを処理するNTPサーバーがあります。これにより、帯域幅の面ではなく、SOHOグレードTZ-200に少し負担がかかります。しかし、接続数という点では、通過します。UDP接続がSonicWall上でどうにか「生き続ける」のかどうか疑問に思っています。(定義上)コネクションレスであるにもかかわらず。

ここで何が欠けていますか?SonicWallが「UDP接続タイムアウト」について話すとき、それは何を意味しますか?


ファイアウォールは通常、ファイアウォール内のマシンによって確立された接続のパケットを許可します。ただし、UDPには接続がありません。したがって、選択肢は、すべてのUDPパケットを許可する、すべてのUDPパケットをブロックする、または「UDP接続」が何であるかを推測して、それらの「接続」の一部であるパケットのみを許可することです。すべての(?)ファイアウォールベンダーが最後のアプローチを採用しています。
user253751 16

immibisが説明したように。ネットワークアドレス変換またはNATにより、インターネット/サブネットワークゲートウェイルーターは、サブネットワーク上のクライアントが接続を開始するTCP(実質的にすべてのトラフィックはTCP)のみを許可します。接続が着信する場合、NATのポートを割り当てる方法はありません。ルーターは送信先をどのように知るのですか?UDPにも接続がないので、ルーターはどのようにUDP要求を処理するのですか?1つの方法は、アウトバウンドUDPパケットを追跡することです。
マーシャルクラフト

サーバーをホストしている場合は、接続を受信する予定のポートを転送する必要がありますが、何かに備えてください。
マーシャルクラフト

回答:


16

UDPとの正式な「接続」はありませんが、クライアントはリクエストを送信し、Destinatoin IPとポートと交換されたソースIPとポートで応答を返すことを期待するという慣習がまだあります。

したがって、ステートフルファイアウォールとNATは、送信元IP /送信元ポート/送信先IP /送信先ポートの特定の組み合わせ、および対応する送信元と送信先の組み合わせとのパケットが「接続」の一部を形成すると想定します。これにより、「発信接続のみ」などのルールをUDPに適用し、逆変換を応答パケットに適用できます。

残念ながら、ファイアウォールまたはNATは、クライアントがサーバーとの通信を終了したことを知る方法がありません。そのため、状態追跡テーブルからエントリを削除する前にタイムアウトを待つ必要があります。それが設定しているタイムアウトです。

原則として、発信接続のステートフルアプローチを維持しながら、ポート転送にステートレスアプローチを使用するNATボックスを構築することは可能ですが、すべてにステートフルNATを使用する方が簡単です。これは、ベンダーが行っていることのように思えます。

残念ながら、これは、多数の小さなリクエストを処理するステートレスUDPサーバーにとっては残念です。ファイアウォールがサーバー自体よりもはるかに多くのリソースを消費する状況に陥ります。


2
ピーターの素晴らしい回答をありがとう!私の場合、SonicWallを使用すると、特定のファイアウォールルールのUDP「接続タイムアウト」を減らすことができるため、NTPポリシーのルールを5秒(デフォルトの30秒)に減らします。
ジョンワズワース

1
注:それを行った後、Sonicwallが報告する「合計接続数」が〜1500から〜400に低下したことがわかりました。パーフェクト!すばらしい回答をありがとう。
ジョンワズワース

1
ほとんどのストリーミングプロトコルは、VoIPのメディア部分を含むUDPを使用することに注意してください(SIPを使用してネゴシエートされた後)。すべてのVOIP電話(ハードまたはソフト)がポートがドロップされた場合のメディア接続の再ネゴシエーションに優れているわけではないため、トラフィックがない場合(たとえば、コールの保留、両側のミュートなど)、タイムアウトが短いと問題が発生する可能性があります。他の人は、定期的に小さな信号を送信することで「キープアライブ」を使用します。
チャックヴァンデルリンデン

11

ファイアウォールは、UDP接続用の接続テーブルを維持しています。たとえば、DNSクエリを送信すると、ファイアウォールはそのフローのエントリを作成し、DNS応答がネットワークに戻されるようにします。テーブル内のエントリは、30秒間アクティビティがないとタイムアウトします。


ロン、ありがとう。インバウンド接続に関して、その接続テーブルについてコメントできますか?私のNTPサーバーは内側にあるので、内側のサーバーは常にソースに戻ることができるので、これらのインバウンド接続のために「ドアを開いたままにする」必要はないはずです(アウトバウンドが広く開いています)ルール)。迅速な回答をありがとう!
ジョンワズワース

3
接続テーブルは、接続の方向に関係なく構築され、実際には、クエリアに戻るファイアウォールを介してサーバーから返される応答パケットにすぐに使用されます。ファイアウォールは、タプル(src ip、src port、dst ip、dst port)を維持して、初期クエリを応答に関連付けます。特定のUDPセッションが終了し、ソケットが閉じたことをファイアウォールに示すためのセマフォは実際にはないため、タイムアウト値が使用されることになります。
rnxrx 16

2

NTPサーバーはNAT(ファイアウォール)の背後にあります。UDPは、アプリケーションとOSの観点から、および途中のほとんどのネットワークアプライアンスにとってコネクションレスです。

ただし、NATファイアウォールの場合、UDPパケットが送信されるたびに記録するため、相手側からの応答はネットワーク内の同じコンピューターにリダイレクトされます。これらは、ファイアウォールによって「接続」と呼ばれます。

現在、理論上、NATは外部ポートがNTPの既知のポートになることを知っていますが、ファイアウォールはそれをサポートしていないようです。これがこのファイアウォールを介したUDPの唯一の用途である場合、接続タイムアウトをより小さな数に設定できます。または、アプリケーションポートごとに設定できる場合は、その特定のポートに対してより短い時間(1秒など)に設定できます。


1
タイムアウトはNATに固有のものではありません。ステートフルファイアウォールには1つあります。
grawity

ファイアウォールはNATを実行せず、代わりにNATを介して移行しているパケットをフィルタリングしようとするため、ルーターとNATとの相互関係があります。
マーシャルクラフト

インターネットへのゲートウェイルーターはNATを使用する必要があります。どのコンピューターもサブネット上にあり、ゲートウェイルーターのみが実際のインターネットIPアドレスを持っているからです。すべてのコンピューターがインターネット上にあるとしたら、非常に無駄です。ゲートウェイルーターには、1つのインターネットIPアドレスに関連付けられているコンピューターの大規模なグループがある場合があります。Webからの着信パケットとネットワーク上のコンピューター間で1対1に変換できるように、Berkly Webソケットを使用します。人々はこれを取得していないようです。
マーシャルクラフト

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.