DHCP(Dynamic Host Configuration Protocol) その3

DHCPでの注意点

DHCPはTCP/IPの設定を自動的に行うことができるので、とても便利なプロトコルですが注意しなければいけない点があります。
ルータが関連する場合と、スイッチが関連する場合の2種類のケースについてみていくことにします。

ブロードキャストなので・・・

クライアントがDHCPサーバを探すために起動時に送信するDHCPDISCOVERはブロードキャストです。では、もしクライアントとDHCPサーバの間にルータがいたらどうなってしまうでしょうか?
一番簡単なネットワーク構成例を考えると、次の図のようになります。

DHCPクライアントが起動して、DHCPサーバを探すためにDHCPDISCOVERをブロードキャストで送信します。ところが間にルータがいます。ルータはブロードキャストを転送しませんので、DHCPDISCOVERはDHCPサーバまでは届かないことになります。すると、DHCPクライアントの方で、DHCPサーバを見つけることができずにタイムアウトになってしまって、結局IPアドレスなどをもらうことができず、ネットワークに接続できなくなってしまいます。

ということは、ルータによってネットワークが分かれているときには、ネットワークごとにDHCPサーバが必要になってしまいます。しかし、これではサーバの台数が多くなってしまいますし、それぞれのDHCPサーバの管理も面倒です。1台のDHCPサーバで自動配布するアドレスをネットワークごとに集中管理するほうが管理上も楽になりますし、コスト的にもメリットが出てきます。

そこで、必要になってくるのが「DHCPリレーエージェント機能」です。その名前の通り、DHCPのメッセージをリレー、つまり中継するための機能です。ルータにDHCPリレーエージェントの設定を行い、DHCPサーバのIPアドレスを登録します。すると、ルータはブロードキャストでやってきたDHCPのメッセージをユニキャストに変換して、DHCPサーバに中継します。

このDHCPリレーエージェント機能を利用すれば、ルータによってネットワークが分かれていてもDHCPでIPアドレスなどの自動設定を行うことができます。

なお、ルータだけでなくWindowsNT/2000などのサーバOSもDHCPリレーエージェント機能を持っています。

スパニングツリーで・・・

他にDHCPを利用するときの注意点として、スイッチでスパニングツリーが有効になっている場合があげられます。

スパニングツリーは冗長構成をとっているとき、ループが発生しないようにポートをブロックして、ツリー上のネットワークにします。もし、障害が発生した場合は、ブロックしたポートを転送状態にしてネットワークをとめないようにするためのものです。また、ネットワークの構成が変更された場合にもスパニングツリーが再構成されます。このスパニングツリーの再構成には、1分ほどの時間がかかります。

このスパニングツリーは、たいていのスイッチの初期設定で有効になっています。で、次のネットワーク構成を考えてみます。

ひとつのスイッチにDHCPサーバとDHCPクライアントが接続されていて、スイッチのすべてのポートでスパニングツリーが有効になっているとします。DHCPサーバは起動している状態で、ポート2はUPしています。しかし、クライアントは起動していないので、ポート1はDOWNです。

DHCPクライアントの電源を入れ、起動させるとポート1がUPします。すると、スイッチはネットワークの構成が変化したと思って、スパニングツリーを再構成しようとします。このとき、スパニングツリーの計算が終わるまで、ポート1は、ブロック状態になりデータの転送を行うことができません。

そして、クライアントがDHCPサーバを探すためにDHCPDISCOVERを送信します。ですが、ポート1はブロック状態です。ブロック状態のポートから他のポートにはデータは転送されませんので、結局DHCPサーバには届かないことになります。1分ぐらいたつと、クライアントしかつながっていないポート1は必ず転送状態になるはずなんですが、その間にDHCPがタイムアウトになってしまいます。すると、クライアントはIPアドレスなどをもらうことができずにネットワークに接続できなくなります。

ですから、スイッチのポートの先にクライアントやサーバしかつながっていないのであれば、そのポートでのスパニングツリーは無効にしなければDHCPを利用することができません。

ただし、シスコのCatalystシリーズというスイッチ製品では、スパニングツリーを無効にする代わりにPort Fastという機能を使います。Port Fastを使うと、ブロック状態から一瞬で転送状態になります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA