インフラ・DevOps
DHCPサーバーが動的IPアドレスを使い果たす珍しい方法
An unusual way for your DHCP server to run out of dynamic IPs (utcc.utoronto.ca)
要約
この記事は、ネットワーク上の異常なデバイスが全てのIPアドレスに対するpingに応答したために、DHCPサーバーが動的IPアドレスを使い果たしたという珍しい事例を紹介しています。ISC DHCPサーバーはIPアドレスを割り当てる前にpingで確認するため、この「叫ぶホスト」のせいでIPアドレスプールが枯渇したと誤判断し、新規クライアントへのIPアドレス割り当てができなくなりました。この問題の特定と解決には、MACアドレス情報が役立ちましたが、そうでなければネットワークの一部を無効にする必要があったかもしれません。
全文翻訳
ゲストの皆様、ようこそ。DHCPサーバーが動的IPアドレスを使い果たす、新しくてエキサイティングな障害モードについて、本日Fediverseで短い体験談を共有しました。それは、ネットワーク上の何かが全てのIPアドレス(はい、壊れていました)に対するpingに応答するというものでした。ISC DHCPサーバーは、割り当てる前にフリーのIPアドレスをpingで確認するため、もし何かがそれらのping全てに応答した場合、ネットワーク上に「フリー」なIPアドレスは一つもなくなり、誰も動的IPアドレスを取得できなくなります。(技術的には、これは一、二日前の出来事でした。)この問題の直接的な症状は、DHCPサーバーのログに以下のようなメッセージが出力されることです。
dhcpd[1656384]: Reclaiming abandoned lease 172.17.101.132. [...] dhcpd[1656384]: ICMP Echo reply while lease 172.17.101.132 valid. dhcpd[1656384]: Abandoning IP address 172.17.101.132: pinged before offer
ISC dhcpdが文書化しているように(例えばdhcpd.confの'ping-check'ステートメントの議論で)、デフォルトではdhcpdは動的に割り当てようとしているIPアドレスが未使用であることを確認するためにpingを実行します。もし何かが応答した場合、dhcpdはそのIPアドレスをほぼ諦めます(少なくともdhcpd.confのマニュアルページによれば、静的に割り当てられたIPアドレスではこれは起こりません)。この結果、そのような「叫ぶ」マシンが存在すると、dhcpdは動的IPアドレスプールが完全に枯渇したと結論付け、どの動的クライアントも新しいIPアドレスを取得できなくなります。
さらに厄介なことに、一部のクライアントは、他の何かがそれを使用しているように見える場合、DHCP IPを受け入れないようです。(クライアントがリースを更新する際に何が起こるかは不明です。)
このような叫ぶマシンは明らかに何らかの方法で壊れており、ネットワークから取り除く必要がありますが、運が良くない限り、特定するのは難しいかもしれません。私たちは幸運にも、そのマシンが全てのpingに応答するために実際のMACアドレスを使用していたため(これはDHCPサーバーのARPテーブルなどに多数表示されました)、そのMACアドレスは有用で正確な追加情報と共に登録されていました。それがなければ、スイッチのARPテーブル(それを報告できるほど賢いスイッチの場合)をたどるか、最終的にはこの特定のネットワークのセクションを無効にするしかなくなり、かなり混乱したでしょう。
この特定のネットワークはポートアイソレートされていますが、それはここでは役に立ちません。DHCPサーバーはネットワーク全体に到達でき、ネットワーク全体がDHCPサーバーに到達できる必要があるため、そのARPリクエストはネットワーク全体にフラッドし、誰でもそれに答えることができます(そして、そのICMP pingはスイッチファブリックを通じて応答したポートにルーティングされます)。(コメント1件。)
2026年7月9日に執筆されました。
« BMCsとサーバー上の驚くべきUSBネットワークデバイス ApacheのIfModuleディレクティブで犯した間違い »
これらは私のWanderingThoughts(ブログについて)です。全エントリインデックス 最近のコメント
これはCSpaceの一部であり、ChrisSiebenmannによって書かれています。Mastodon: @cks Twitter @thatcks * * * カテゴリ: links, linux, programming, python, snark, solaris, spam, sysadmin, tech, unix, web また: (サブ)トピック
これはDWikiです。GettingAround (ヘルプ) 検索: ページツール: ソースを表示。検索: ログイン: パスワード: 最終更新: 2026年7月9日 木曜日 23:00:59
このちっぽけなwikiは、Insane Hackers Guild、Pythonサブブランチによって提供されています。