dポイントプレゼントキャンペーン実施中!

DHCPについて質問です。
RFC2131(日本語)を読んでいて疑問に思いました。

DHCPの再割り当てってDHCPREQUESTをブロードキャストして、この中にはサーバIDは含んじゃいけないって書いてますが、どうして?そもそもリース延長と再割り当ての違いを理解していないからこのような疑問が出てきているのだと思います。何のために再割り当てがあるのか?リース延長だけだと何が都合悪いのか?再割り当てREQUESTが成功したら、今までと同じIPアドレスを取得できるのか?

このあたり、詳しい方教えてください。

A 回答 (2件)

日本言版RFCを読んだことがない為、訳語に関して少し心許ないところがありますが、文脈から、リース延長はRENEWING、再割り当てはREBINDINGのことだと思われます。



先ず、真に失礼ですが、#1の回答は違っています。クライアントがIPアドレスをサーバーに返却した後、又はリース期限を更新せずに満了してしまった後は、INIT状態に戻り、REQUESTではなくDISCOVERYを出さなければなりません。

REBINDINGの意図は、RFCの4.3.2節の最後に書かれています。曰く、複数のサーバーがあり、サーバーが(RFCに記載されていない独自プロトコルを用いて)連携して機能している環境を想定しているものです。最初にアドレスを払い出したサーバーが死んだときに、他の生きているサーバーを探すためにブロードキャストを出します。クライアントは生きているサーバーのアドレスを知らないので、サーバーIDを指定することが出来ません。サーバーが連携して機能していることが前提なので、同じアドレスを取得することが出来ます。

ところで、サーバー側の操作でアドレスを強制的に解放した場合等、RENEWINGでもREBINDINGでも、以前と異なるアドレスが貸与される可能性があります。サーバーからすると、知らないクライアントが突然にDISCOVERY抜きでREQUESTを出してきたように見えるのですが、歴史的な理由で親切に応答する(未使用のアドレスを払い出す)ことが多いです。こういう場合に、クライアントがパニックに陥るべきではありません。

この回答への補足

ご回答ありがとうございます。

再割り当ての動作が行わず、ずっとリース延長を行い続けると最初にIPをもらったDHCPサーバが死んでいるとき、いつまでたっても死んだDHCP宛に接続を試みてしまうから再割り当てと言う動作が必要。と考えていいのですか?

あと、リース延長や再割り当ては一度失敗しても何度も再試行しているのですよね?RFCには特にかかれていなかったような・・。

それと、PCを再起動や終了/起動した場合はまたDISCOVERから始めるのですよね?それでもほとんどの場合、同じIPアドレスをもらいますがどうしてなんでしょう?

補足日時:2003/09/20 00:37
    • good
    • 0

こんばんは。


詳しくはないですが、勉強中なので、わかる範囲で。

まず、リース延長と再割り当ての違いですが、

・リース延長:IPアドレスを保持した状態で、リース期間が終了し、さらに同一IPアドレスを使用していたい場合、リース延長要求を行う。

・再割り当て:IPアドレスはすでにDHCPサーバーに返却し、かつ、まだネットワークに接続している必要がある場合、ブロードキャスト送信の届く範囲のDHCPサーバーに対して、IPアドレスのリース要求を行う。

となります。

「DHCPの再割り当て要求を行う」ということは、その時点で、クライアントは、IPアドレスを保持しておらず、再割り当てREQUESTが成功すれば、クライアントは、IPアドレスをリースできます。
このとき、再割り当てされたアドレスは、前回と同じものになるとは限りません。なぜなら、再割り当て要求をブロードキャスト送信することで、前と同じサーバーにつながるかどうかわからないからです。また、前と同じサーバーにつながったとしても、前回のIPアドレスは他のクライアントにリースされている可能性があります。

リース延長を無期限に許可すると、それは、クライアントによるリソースの占有を意味します。それが好ましくないことは、昼休み時間中に、食堂の1席を常に使用していることが良くないことと同じです。つまり、どこかのクライアントが空きができるのを待っているわけです。

とりあえずこんな感じでしょうか?
参考になれば、幸いです。

この回答への補足

ありがとうございます。私も勉強中です。というかDHCPサーバってIPを知り始めたころは簡単だとおもって勉強してなかった分野でしたので、なんか新鮮な感じです。

補足日時:2003/09/20 02:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!