最終更新日付: 2021年1月14日
DHCPサーバーは簡単そうに思えますが、意外と注意点があります。
特にネットワーク機器のDHCP機能を利用した時に注意があります。
それはDHCPサーバーを再起動した時です。
レジュメ
休日にDHCPサーバーを再起動後したら翌日IPバッティング発生。その理由
DHCPサーバーでは、自分が払い出したIPアドレスを管理するデーターベースがあるのですが、ネットワーク機器の場合このデーターベースがメモリ上にあり再起動時にフラッシュしてしまうケースが多いです。
管理簿がある間はIPアドレスのバッティングが無いのですが、この管理簿が消えたタイミングでバッティングすることがあります。
例えば、以下のような状況で発生しました。
- DHCPクライアントのリース期間が長く(一日以上)で、
- DHCPクライアントが再起動しない機器の場合(IP電話機)
これは、
- IP電話機がDHCPサーバーから払いだされたIPアドレスを使う
- DHCPサーバーが再起動し、IPアドレスの管理データーベースがフラッシュ。(しかしまだIP電話機は前回払いだされたIPアドレスを持っている)
- IP電話機がDHCPリース期間が過ぎて新たにIPアドレスを払いだされたのに、既にそのIPアドレスが管理外で使われていた(IPバッティング)
といった動きが起きました。
DHCPサーバーの中には払い出す前にPingチェックする機能がある
ネットワーク機器のDHCPサーバー機能によっては、このような問題を回避するために、IPアドレスを払い出す前にPingもしくはARPでIPアドレスが既に使われていないかチェック・確認する機能があります。
しかし、
最近のWindowsファイアウォールや、もしくは厳しすぎるようなネットワークACLではPingが無効になっている場合があるので注意です。
DHCPクライアントのネットワークではPingがリプライを返せるようにしましょう。
DHCPサーバーはIPアドレスの管理データーベースをディスクに書いて保存出来た方が良い
ネットワーク機器の場合、ディスクと言った概念が無かったりしますが、やはりIPアドレス管理データーベースはディスクに書けて再起動しても問題がないように出来るのがベストですね。
と考えると、やはりWindowsといったサーバー系のDHCPサーバー再起動し易くて良いですね。
DHCPリース期間をどうするか
DHCPリース期間は、
- Windowsではデフォルトで8時間
- Ciscoスイッチではデフォルトで1日
です。
リース期間が長すぎると、DHCPのデータベースがフラッシュしてからこの問題を検知する時間が先延ばしになりますし
リース期間が短すぎると、DHCPのデータベースがフラッシュしてからこの問題を検知する時間が早くなる傾向があります。
リース期間はやはり、通常業務時間の8時間~12時間くらいが良い気がします。(業務時間以上、一日経てば収まっている程度)
リース期間で問題が起きるタイミングを調整することも出来ますが、そもそも発生頻度を減らすためにはIPアドレス管理データーベースはディスクに保存出来るようにしておいた方が良いですね。(ディスク故障時は諦める)
参考:Cisco IOS IP アドレッシング サービス コンフィギュ レーション ガイド リリース 15.1S - Cisco IOS DHCP サーバ設定 - Cisco Systems (http://www.cisco.com/cisco/web/support/JP/docs/UGAS/AS5200UniversalAccessServers/AS5200UniversalAccessServ/RCS/001/iad_dhcp_svr_cfg.html?bid=0900e4b182529657 リンク切れ)