DHCP経由でIPアドレスを取得するのに数秒かかるのはなぜですか?


24

好奇心のうち、なぜそれが頻繁に取るん秒間 CPUは、ルータに第二およびpingあたりの操作の数百万人を処理することが可能であるとき、DHCPを介してネットワーク設定を取得するためにミリ秒のカップルを取りますか?

1台のWiFiルーターと約5台のデバイスがある私の家庭環境では、5〜10秒のような時間を見るのは珍しくありません。

回答:


22

DHCPサーバーからのDHCPリースの実際の取得(通常、それほど長くはかかりません)に加えて、一部のサーバーは、実際に配付しようとしているIPアドレスをpingしてから、まだ配付されていないことを確認しますネットワークで使用中-これはタイムアウトするまでに数秒かかります。クライアントは(IPアドレスの競合を防ぐために)同じことを行うことがありますが、これによりさらに時間がかかります。次に、その上で、一部のクライアントはDNSエントリなども登録します。


3
私の職場のdhcpサーバーは、ARP要求を使用してIPの競合を検出します。
エリチュー

9

DHCPは、ブロードキャストメッセージを送信するため、最初の要求時に単一のサーバーではなくネットワーク上のすべてのデバイスとの一連のトランザクションを伴うため、少し時間がかかる場合があります。

DHCPのRFCを確認すると、

http://www.faqs.org/rfcs/rfc2131.html

一連の交渉に関係することが明確にわかります。最初に、クライアントはDHCPDISCOVERをLAN上のすべてのデバイスに送信し、dhcpサービスを実行しているサーバーはDHCPOFFERメッセージを返します。クライアントは、利用可能なすべてのdhcpサーバーから応答を取得するのを待ってから、1つを選択する場合もあります。次に、IPプロバイダーとして選択したサーバーを示す識別子とともにDHCPREQUESTを送信します。最後に、すべての構成パラメーターでDHCPACKを取得します。これは、RFCの「3.1クライアントとサーバーの相互作用-ネットワークアドレスの割り当て」の要約です。

私の経験から、dhcpは、主に多くのノードが接続されている大規模なLAN設定で長い時間がかかります。単一のdhcpサーバー(たとえば、WIFIルーター)と1つまたは2つのPCだけのホームネットワークでは、かなり高速です。


1台のWiFiルーターと約5台のデバイスがあるホームネットワークでは、約5〜10秒かかりますが、これは非常に遅いと考えられます。しかし、説明をありがとう。
ボレックバーナード

単一のdhcpサーバーがあることを確認してください。デバイスが5つだけの場合は、dhcpサーバーの各デバイスにIPを予約できます。しかし、興味があれば、tcpdumpを使用して実際のネゴシエーションを調べ、遅延の原因を確認できます。
ダニエルt。

dhcpサーバーによっては、ネットワークアクティビティやCPU速度に関係なく数秒かかる場合があります。これは、サーバーがクライアントにアドレスを提供する前にアドレスが使用中であるかどうかを最初にネットワークに照会し、回答が到着するまで少なくとも少し待つ必要があるためです。このタイムアウトは、気付く遅延の一部であり、最も静かなネットワーク上にも存在します。
ʇsәɹoɈ

2

DHCPサーバーからの高速応答が必要なときに見つけた2つの理由(および解決策)。

1)DHCPが割り当てたいアドレスのpingを実行しました。これにより、3秒の遅延が追加されました。DHCPアドレスをIPアドレスにマッピングするようにDHCP構成を変更することにより、これを削除しました。これは基本的にDHCPを使用して静的アドレスを割り当てることです。これにより、3秒の遅延がなくなりました。

2)私は分離されたネットワークを持っていますが、時々これを得るかもしれません。DNSルックアップが行われたため、DHCPからIPアドレスを取得するまでに数秒の遅延が生じました。DHCPサーバーの構成には、ドメインサーバーとDNSサーバーのオプションがありました。DNSオプションと上記の変更を削除した後、DHCPサーバーから即座に応答がありました。(**)

これらの問題は、セットアップで発見したものです。走行距離は異なる場合があります。

乾杯

ポンド

DNS


1

私はあなたがどんなシーンを持っているのかわかりませんが、現実の世界では、古いサーバーからIPアドレスを取得します(dhcpサーバーは常に最も古いハードウェアを持つものです:)) 、1つまたは複数のルーター/スイッチ...待ち時間、CPUパワー...、Windowsの世界では、dhcpの実装は、私たちが望むほど効率的ではありません!


1
「Windowsの世界では、dhcpの実装は私たちが望むほど効率的ではありません!」ここで言ったことをバックアップするためのドキュメントやソースはありますか?
mfinni

いいえ。ただし、たとえば... Linuxは、非常に簡単な方法でフェイルオーバーDHCPオプションを提供します。Windowsに組み込まれているActive Directory機能とは別に、潜在的なセキュリティ問題として考慮すべき点がいくつかあります。
C_Sense

2
私は、あなたが長すぎるインターネット投稿を読んで長年集めた誇張を逆流していると思います。「マイクロソフトは悪い」"なぜ?" 「誰もがそう言うから。」
joeqwerty

Windows DHCPサーバーでDHCPスコープをオーバーラップできます。win2k8 R2では、明らかに新しいフェールオーバーオプションもあります。たぶんLinuxはそれよりも優れているでしょう。そのどれも「効率」とは何の関係もありません。また、Windows DHCPの「セキュリティの問題」とは何ですか?私はあなたに情報源を求めました、そして、代わりにあなたはより多くの主張を捨てます。
mfinni

0

dhcpでパフォーマンスの問題が発生している場合。

  1. ネットワーク遅延を確認する
  2. パケットキャップdhcpネゴシエーションを見てください。どのアクションに時間がかかっているかを確認できるはずです。(問題はdhcpサーバーではなく、誰が誰を待っているのでしょうか?)
  3. dhcpサーバーの負荷とログを調べます。

これはホームネットワークのシナリオです。質問を更新しました。
ボレックバーナード

ಠ_ಠじゃあ、スーパーユーザーに尋ねない?
Ablue

たぶんそれはネットワーキングに関連しているので、ここがこれに最適な場所でしょうか?
ケダレ

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