Tips

DHCPトラブル 前編

私たちは日々、会社に出勤しPCを立ち上げ、メールのチェック、必要な情報はwebで調べるといった
ことを行っています。
何気なく行っているこの動作ですが、裏側では様々なプロトコルに支えられて成り立っています。
ARP、SMTP、DNSなどなどありますがDHCPというプロトコルもよく利用されている身近なプロトコルの一つではないでしょうか。
一般家庭で使用されているブロードバンドルータの大半にはDHCPサーバの機能が付属していますし、
企業であればWindowsサーバやLinuxサーバ、ルータなどをDHCPサーバとして運用していることと思います。

ユーザは手動のIPアドレスの設定方法をしらなくても、IPアドレスなどが割り当てられるため、
クライアントPCであれば、手動よりもDHCPを使用した自動設定になっていることが多いと思います。

逆にDHCPサーバがうまく動作しなかった場合、多くのユーザの通信に影響がでるということになります。
今回は以前に実際にやらかしてしまった失敗に関して記載してみます。

社内に検証用サーバやPCを設置するためのネットワークを作成することになり、CISCOルータをDHCPサーバとし、
そこからクライアントPCにIPを配布することになりました。
今のところ特別なオプションは必要なかったため、必要最低限と思われた以下の設定を投入しました。

(config)#ip dhcp pool testpool
(dhcp-config)#network 192.168.100.0
(dhcp-config)#default-router 192.168.100.233
(dhcp-config)#dns-server 192.168.100.200

 

固定で使用するように除外範囲を以下のように設定しました。

(config)#ip dhcp excluded-address 192.168.100.200 192.168.100.255

 

この時点である設定がぬけていると気づく方もいるかと思いますが、当時の私は知りませんでした。
設定後、各クライアントにはちゃんとIPアドレスが割り当てられていることを確認し、そこで終了しました。

数日後、「固定で使いたいアドレスが増えたから除外アドレスを増やしてほしい」ということになり、
ルータの設定を変更することになりました。
DHCPクライアントは50くらいなので配布用に100あれば足りるだろうと、192.168.100.101-199までを除外アドレスに
登録することになりました。

確認のために「show ip dhcp binding」を入力すると
新たに固定に割り当てようと思っていた部分のアドレス(101~199の間)が、すでにdhcpサーバ内の
バインディング情報に登録されています。クライアント端末数は50以下ですが、どうも仮想化しているサーバのゲストOSを大量に立ち上げたり、再インストールしたりと検証していたせいで「192.168.100.100」以降のIPも使われてしまったようです。
今後、ゲストOSは固定IPを使用するということになったのでバインディング情報を削除することにしたのですが、
とりあえず全部クリアすればいいんじゃないかということで「clear ip dhcp binding *」を入力しました。
新たに固定アドレスにしたい範囲を除外アドレスに設定後、終了しました。



入力直後は何も問題ありませんでしたが、しばらくして一部の端末がネットワークに接続できないという報告があがりました。
端末を確認するとIPアドレスが割り当てられていません。
そのネットワーク内で配布用に確保しているアドレス数よりもあきらかにPC数は少ない状況です。またDHCPサーバが
もう一台あるということもありません。作業前からネットワークにつながっていた端末は問題なかったものの、
作業後起動した端末ではIPの取得できたものと取得できなかったものとに分かれました。

さらにIPを取得できていた端末で一度アドレスをリリースして、再取得しようとすると
再取得できないPCとできるPCに分かれてしまいました。

パケットキャプチャの結果は次のとおりで、Discoverメッセージが飛んでいるもののサーバからその応答がまったくない。

 

サーバのプールはこんな結果となっていました。

Router#sh ip dhcp poolPool testpool :
Utilization mark (high/low) : 100 / 0
Subnet size (first/next) : 0 / 0
Total addresses : 254
Leased addresses : 34
Pending event : none
1 subnet is currently in the pool :
Current index IP address range Leased addresses
0.0.0.0 192.168.100.1 – 192.168.100.254 34

Current Indexが0.0.0.0・・・
割り振るIPがないってことでしょうか。一体なぜこんな事態になったのか?

次回検証結果を踏まえた解説をしたいと思います。

Recent News

Recent Tips

Tag Search