このページの本文へ

ネットワークの禁忌に触れる 第9回

割り当ては早いもの順!

DHCPサーバーを勝手に立てるとどうなるの?

2011年01月18日 09時00分更新

文● NETWORK MAGAZINE

  • この記事をはてなブックマークに追加
  • 本文印刷

クライアントPCにIPアドレスを割り当てるDHCPサーバーは、社内ネットワークの要ともいえるサーバーである。DHCPサーバーは構築や管理を管理者が一元的に行なうのがルールであり、部署単位などで勝手に構築することは許されない。それでは、このルールを破ると何が起こるのか、またその被害を防ぐ方法はあるのだろうか。

ブロードバンドルーターが野良DHCPサーバーに

 不正に現われた「野良DHCPサーバー」によって、クライアントPCにでたらめなIPアドレスが割り当てられ、社内ネットワークが大混乱してしまう経験を持った管理者も多いだろう。野良DHCPサーバの正体で多いのが、ブロードバンドルーターである。

 家庭で不要になったブロードバンドルーターを無線LANアクセスポイントやスイッチの代わりとして社内で使ってしまう人がたまにいる。通常のスイッチとは異なり、ブロードバンドルーターはDHCPサーバーを内蔵している。そのことを考えずに社内ネットワークに接続した瞬間、社内ネットワークに野良DHCPサーバーが誕生してしまうのだ。

IPアドレス割り当ての仕組み

 野良DHCPサーバーは、正規のDHCPサーバーとどのように競合してしまうのか。そもそも複数のDHCPサーバーが存在するネットワークでは、どのようにIPアドレスが割り当てられるのか。実験の前にDHCPサーバーの仕組みを見ておこう。

 DHCPでIPアドレスの割り当てを受けるホスト(DHCPクライアント)は、ブロードキャストを使ってDHCPサーバーを検索する(図1-1)。この際のメッセージが「DHCPDISCOVER」だ。DHCPサーバーはDHCPDISCOVERに対し、自身のIPアドレスなどの「構成情報」を返信する(図1-2)。これが「DHCPOFFER」である。この時点ではクライアントはIPアドレスを持たないため、DHCPOFFERはクライアントのMACアドレスを指定して送信する。

図1 DHCPの仕組み

 クライアントは、一定時間サーバからの反応(DHCPOFFERの送信)を待つ(図1-3)。複数のサーバーからDHCPOFFERが来た場合は、その中から1つのサーバーを選択し、割り当ててほしい情報(構成情報)を「DHCPREQUEST」として返信する(図1-4)。この返信もブロードキャストだが、メッセージ内にどのDHCPサーバー宛であるか指定する情報が含まれている。最後に、DHCPREQUESTを受けたDHCPサーバーはIPアドレスなど構成情報の内容を用意し(図1-5)、クライアントPCに「DHCPACK」として返信する(図1-6)。以上が、DHCPの仕組みだ。

複数DHCPサーバの実験

 それではいよいよ、複数DHCPサーバーの実験だ。3台のブロードバンドルーター/VPNルーター(表1)のLAN側ポートを別途用意したスイッチに接続し、同様にWindows XP Professional搭載のPCもスイッチに接続する。この状態でPCの再起動を10回繰り返して、IPアドレスの割り当て状況を調べた。結果は非常に単純で、ヤマハ「RTV700」から毎回IPアドレスが割り当てられた

表1 実験に使った製品

 その理由を調べるため、プロトコルアナライザ「Wireshark(Etherealの派生ソフト)」でパケットキャプチャをした。その結果が画面1である。

画面1 3台のルータによる実験結果

 これを見ると、パケットキャプチャを開始してから1.042818秒の時点でクライアントPCが「DHCPDISCOVER」を送信している(画面1-1)。そして、1.145368秒にRTV700からの「DHCPOFFER」を受信し、1.145704秒にDHCPOFFERをサーバ送り、1.147840秒にDHCPACKが戻ってきた(画面1-2)。

 他の2台のルーターからのDHCPOFFERがクライアントPCに届いたのは、2.525978秒以降である(画面1-3)。RTV700のDHCPOFFERから、約1.4秒も遅かったことになる。

 図1-3の説明からすれば、DHCPクライアントは他のルーターからのDHCPOFFERも待つと考えられるのだが、そうはならなかった。この理由として、1.4秒の差が大きいため、待ち時間を超えている可能性がある。そこでRTV700を外し、コレガ「CG-WLBARGS」とバッファロー「WZR-G108」の2台構成で実験をしてみた。ところが、その予想は外れてしまった(画面2)。

画面2 低速な2台による再実験の結果

 1番目にDHCPOFFERが届いたCG-WLBARGSと、2番目のWZR-G108のDHCPOFFERが届く時間差は、わずか0.009秒。だが、その間に先に届いたCG-WLBARGSによってIPアドレスの割り当て作業は完了している。Windows XPは2番目以降のDHCPOFFERを待たない仕様のようである。

 なお、画面2および上記では、CG-WLBARGSのDHCPOFFERがWZR-G10より早いと説明した。しかし、この順位は安定しておらず、実験のたびに結果は変わっていた。

 RTV700の反応が速い理由として、LANケーブルの種類やスイッチのポートの違いの可能性もある。そこで、CGWLBARGSとつなぎ替えてみたが、結果は変わらなかった。さらに、RTV700とスイッチの間を50mの長いLANケーブルに交換したり、もう1台のスイッチを挟んでみたが、RTV700の優位は変わらなかった。こうしたことから、反応の速さは、純粋にハードウェアの性能の違いとしか考えられない

野良DHCPサーバー対策は高速化で

 以上の結果をまとめると、複数のDHCPサーバーが置かれたネットワークでは、もっとも速くDHCPOFFERを送信するサーバーからIPアドレスの割り当てを受ける。DHCPサーバーを勝手に立てた場合、そのDHCPサーバが高速であれば、IPアドレスを勝手に割り当ててしまうわけだ。

 逆に考えると、反応の速いDHCPサーバーを導入しておけば、野良DHCPサーバーによる被害を抑えられることがわかる。じつは、今回の実験でも、手違いで社内ネットワークと実験ネットワークを接続してしまったことがあった。しかし、社内ネットワークのDHCPサーバーは、RTV700よりもさらに早くDHCPOFFERを送ってきたため、何らトラブルを起こすことはなかった。

 ちなみに、ブロードバンドルーターのWAN側ポートを社内ネットワークに接続した場合、LAN側ポートに接続したPCには必ずブロードバンドルーターのDHCPサーバからIPアドレスの割り当てが行なわれる。しかしこの場合は、社内ネットワーク側へはDHCPサーバとして振る舞わないため、問題は少ないはずだ。

 本記事は、ネットワークマガジン2007年1月号の特別企画を再編集したものです。内容は原則として掲載当時のものであり、現在とは異なる場合もあります。

カテゴリートップへ

この連載の記事