■ 4つのアドレス・おさらい
…。あの〜、博士?
何かね、ネット君。
上に「レイヤ7 DHCP」と書いてあるような気がするんですけど。
書いてあるな。
…。前回までレイヤ3をやってた記憶があるんですけど…。
いつの間にレイヤが4つも飛んだんです?
うむ。
本来ならDHCPはもっと先でやるつもりだったのだが、IPアドレスの割り当てという話がでたのでな。ここらでやっておいた方がいいだろうと、そういう判断だ。
ははぁ。
まずは前回の復習からいこう。
データの転送には、4つのアドレスが必須である、という話だったな。
えぇ。
宛先のMACアドレスとIPアドレス。送信元のMACアドレスとIPアドレスですよね。
まずは、送信元アドレス、つまり自分自身のアドレスをどうやって知るか、どうやって手に入れるかという話をしたと思う。
MACアドレスはNICを取り付けた段階でわかるんでしたよね。
そうだ。問題は自分自身のIPアドレスをどうやって知るか、だ。
1つは静的に決定される方法。
ネットワーク管理者が、IPアドレスはいくつですよ、と教えてくれた値をそのまま手動でパソコンに入力する方法でしたよね。
うむ。
もう1つが、サーバからと通信を行い、自動的に設定する方法だ。こちらを動的という。
自動的に決定されるなら、便利ですよねぇ。
この動的なIPアドレスの割り当て、割り当ててもらう方からすればIPアドレスの取得の方法として、現在主流な方式が、DHCPだ。▼ link
はい、前回でそこまでは聞きました。
■ DHCP・概論
DHCPは、割り当てるIPアドレスを管理し、実際に割り当て作業を行うサーバと、割り当ててもらうクライアントから成り立つ。
「さーば」と「くらいあんと」ですか。
DHCPを行うサーバのことを、DHCPサーバというが、DHCPサーバソフトを実行しているホストのことだ。一方、クライアントはDHCPクライアントと呼ばれ、DHCPクライアントソフトを実行する。
[Figure25-01:TCP/IPのプロパティ]
前回もでてきた、インターネットプロトコル(TCP/IP)のプロパティで、自動的に取得にしておけば、DHCPクライアントソフトは自動的に実行されている。
[Figure25-02:DHCP Clientサービス] ▼
ホントだ。自動でスタートアップになってる。
うむ。
サーバとクライアントの関係を図で簡略に表すと、こんな感じかな。
[Figure25-03:DHCP動作・簡略]
ははぁ、要求して、割り当ててもらうんですね。
簡潔な説明ならば、以上、終了。
はやっ!!
■ DHCP・承前
せっかくだから、もうすこし細かくやろう。
いくら自動的に割り当てるとはいっても、すべてを自動的にやってくれるわけではない。
事前に管理者が割り当てるアドレスの範囲を決めておく必要がある。
割り当てるアドレスの範囲?
いくらなんでも、自動でこのネットワークのホストに割り振るアドレスはこれこれ、とは決めてくれん。
この範囲内のアドレスをホストに割り振ってよいと決めておく必要がある。
ん〜っと。例えば。
このネットワークは、192.168.1.0だから、192.168.1.1〜192.168.1.254までのアドレスを割り振ってよい、と決めるんですか?
いいぞ、ネット君。その通りだ。
この範囲のことをIPアドレスのプールという。
ぷーる。
これは範囲だけでなく、192.168.1.1〜192.168.1.254を割り振りなさい、だが192.168.1.200と192.168.1.201はルータが使うので割り振ってはいけない、という設定も可能だ。
ははぁ。
サーバは設定されたプールの中から、要求してきたクライアントに対して、それぞれがユニークになるようアドレスを割り当てる。
[Figure25-04:IPアドレスプール]
なるほど。
管理者は範囲だけ決めておけば、あとは自動的に割り振ってくれることになるわけですね。
うむ。
もう1つネットワーク管理者は、事前にIPアドレスのリース期限を決定しておく必要がある。
りーす…。
貸し出し期限ですか?
うむ。割り当てるといっていたが、実際はサーバがもつプールから、IPアドレスを貸し出す、という表現が一番近いかもしれん。
ははぁ。クライアントは貸し出してもらって、使うという形ですか。
サーバがIPアドレスを持っていて、それを貸し出す、と。
うむ。それでなぜ期限をもうけるかというと、例えばIPアドレスを割り当てたはいいが、その後そのホストが移動してしまった場合どうなる?
サーバはIPアドレスを割り当てたので、そのIPアドレスは使われていると思っているぞ。
IPアドレスを持ち逃げされた形になってしまいますね。
そうだ。
なので、IPアドレスには貸し出し期限を設けておく。クライアント側は、継続して使いたければ、期間延長を申し出るという形になる。
[Figure25-05:リース期限] ▼
上の画像の赤い枠内が、リースの状態だ。
「Lease Obtained」がIPアドレスの貸し出し日。「Lease Expires」が貸し出し期限になる。この場合、2日間ということだ。
必ず2日間なんですか?
いや、そういうわけではない。
ホストの移動が多いネットワークでは、持ち逃げが多くなるからもっと短くするし、ほとんどないのならもっと長くてもよい。状況次第だな。
だから管理者が状況に応じて事前に決めておく必要がある、ということですね。
■ DHCP・メッセージ
さて、実際にDHCPがどのように動作するか、という話をしよう。
まずは、DHCPメッセージを見てもらおう。
DHCPめっせーじ?
うむ。つまりカプセル化される前のデータのことだ。
サーバとクライアントがやりとりするデータそのものだ。
バイト数 | 名前 | 説明 |
---|---|---|
1 | オペレーションコード | クライアント→サーバ…1 サーバ→クライアント…2 |
1 | ハードウェアタイプ | 10Mイーサネット…1 |
1 | ハードウェアアドレスタイプ | 10Mイーサネット…6 |
1 | リレーエージェントhop数 | リレーエージェントの経由数 |
4 | トランザクションID | 一連の通信で使用される識別番号 |
2 | 経過時間 | クライアイントの初期化後の時間 |
1 | フラグ | ブロードキャスト・フラグ |
4 | クライアントIPアドレス | 現在のクライアントのアドレス (再リース時のみ) |
4 | 割り当てIPアドレス | サーバが割り当てたアドレス |
4 | サーバIPアドレス | サーバのアドレス |
4 | DHCPリレーエージェントアドレス | リレーエージェントのアドレス |
16 | クライアントハードウェアアドレス | クライアントのMACアドレス |
64 | サーバ名 | サーバのホスト名 |
128 | ブートファイル名 | ブートファイルの名前 |
可変 | オプション | クライアントのその他設定 |
[Table25-01:DHCPメッセージ]
うわ、ずいぶん長いですね。
まぁ全部覚える必要はないのだが、一応な。ポイントは、赤色で表示されている部分だ。
再割り当てしてもらう場合は、既に割り当てられているアドレスをサーバに伝える。
そしてもちろん、割り当てアドレスがメッセージの中に入っていること。
表でいうところのクライアントIPアドレスと、割り当てIPアドレスですね。
そして、オプションだ。
このオプションこそが、DHCPが主流になった理由だ。
?
実をいうと、オプションを抜いた部分は、DHCPの前身であるBOOTPと対して変わらない。
では、DHCPとBOOTP最大の違いは、オプションにIPアドレス以外の情報を付けて送ることができるという点だ。
BOOTPが、DHCPの前の形だった、と。
オプションにIPアドレス以外の情報を付けて送ることができる、ということはBOOTPはIPアドレスしか送らないってことですか?
そうだ。DHCPはその他のネットワークの設定情報を送ることができる。
なので、動的ホスト設定プロトコル、と呼ばれるのだよ。
ははぁ。
サブネットマスクやリース期限はわかりますけど、その他の設定は何に必要なんです?
それについては、先々ででてくるものばかりだ。その時説明しよう。
さて、次はDHCPの実際の動作だ。
■ DHCP・割り当て動作
先ほどは、簡略して「要求」「割り当て」という図を描いたが、実際のDHCPの動作はもう少し細かい。いくつかの種類のメッセージをやりとりする。
いくつかの種類?
うむ。よく使われるメッセージ・タイプは以下の6つだ。
No | メッセージ名 | 意味 |
---|---|---|
1 | DHCPDISCOVER | DHCPサーバを見つけるためのメッセージ |
2 | DHCPOFFER | サーバからクライアントへ候補を伝えるメッセージ |
3 | DHCPREQUEST | 候補から決定したアドレスを伝えるメッセージ |
5 | DHCPACK | サーバからクライアントへ取得を認めるメッセージ |
6 | DHCPNAK | サーバからクライアントへ取得エラーメッセージ |
7 | DHCPRELEASE | クライアントからサーバへリリース要求メッセージ |
[Table25-02:DHCPメッセージタイプ]
4が空いてますけど?
あくまでよく使われるものだ。
これらのメッセージをサーバとクライアントで相互に応答して、IPアドレスの割り当てを決定する。
ははぁ。
まず、簡単に動作を説明しよう。
- クライアントがサーバを発見するためDHCPDISCOVERを送信
- DHCPDISCOVERを受け取ったDHCPサーバは、割り振る候補のアドレスをDHCPOFFERで送信
- DHCPOFFERを受け取ったクライアントは要求するIPアドレスをDHCPREQUESTで送信
- DHCPREQUESTを受け取ったDHCPサーバは、要求を認めるならDHCPACKを送信。駄目ならばDHCPNAKを送信。
- DHCPACKを受け取ったクライアントは、そのIPアドレスを設定する。DHCPNAKなら再度DHCPREQUESTを送信。
あう?
DHCPなんとかばっかりでごちゃごちゃしてますね。
そうか。
なら動きのある説明を。
[Figure25-06:DHCP・動作]
は〜。
最初は自分のアドレスがわからないので、0.0.0.0を使うんですね。
そうだ。さらにDHCPのメッセージのポイントは、ブロードキャスト送信を使うという点だ。
クライアントは誰にメッセージを送ればいいかわからないからな。
そうですよね。
何番ネットワークに所属しているかもわからないんですしね。
さらに、サーバの方もクライアントはIPアドレスがないので、必ず受け取ってもらうためにブロードキャストを使う。
ブロードキャストは全員宛だから、なにがなんだろうが受信するってことですか。
そうだ。
なかなか上手くできているだろう?
はは〜。
■ DHCP・リース期間
もうひとつ、DHCPについて話しておこう。
DHCPにはIPアドレスのリース期間があるという話をしたな。
ええ。
リース期限をすぎた場合、リースの延長を申し立てることができる。
その場合、以下のようなフレームを送信する。
[Figure25-07:DHCPREQUEST・リース延長]
受け取ったサーバは、そのIPアドレスを継続して使ってよいならば、DHCPACKを返す。
実際、同じIPアドレスを使い続けることが多いのも事実だ。
ふむふむ。
さらに、リース期限をまたなくても、IPアドレスを返したり、もう1度REQUESTしたりすることも可能だ。
以下のように行う。
(1)Windows95,98,ME
[Figure25-08:winipcfg.exe リースの返却・再取得]
(2)WindowsNT,2000,XP
[Figure25-09:ipconfig リースの返却・再取得] ▼
再取得や、返却ってつかうんですか?
そうだな、例えばリース期限前にクライアントを他のネットワークに移動させたとする。
この場合、クライアントは、IPアドレスのリース期間内だからまだそのIPアドレスが使えると思っているのだよ。
ん〜。
そうすると、本当は違うネットワークだから前のネットワークのIPアドレスではいけないのに、それをリース期限まで使い続けるってことになるわけですか。
そうだ。
リース期限がくれば、リースの延長要求の返事が前のDHCPサーバから返ってこないことにより、再度DISCOVERからやり直すことになる。
DISCOVERからやり直すってことは、新しく移ったネットワークのDHCPサーバから返答が帰ってきて、新しいIPアドレスがもらえる、と。
うむ。
リース期限がくればの話だ。それまでは違うIPアドレスのままだから、ネットワークに繋ぐことができない。なのでアドレスの再取得を行う必要があるのだよ。
ははぁ。結局手動で再取得をやらなきゃ駄目なんですね。
さきほども言ったが、そういう場合はリース期間を短くしておけば問題ない。
めったに移動がないからとリース期間を長く設定しておいた時に、たまに移動があるとそういうことがおきる、という話だ。
なるほど。
さて、どうやって送信元IPアドレスを知るかという話はわかってもらえたかな?
えぇ、まぁ、たぶん。
うむ。
その自信なさ気な所がネット君らしくて非常によろしい。
余計なお世話です。
次回は、宛先MACアドレスをどうやって知るかの話をする。
了解。
3分間ネットワーキングでした〜♪
- DHCP
-
[Dynamic Host Configuration Protocol]
動的ホスト設定プロトコル。
RFC2131と、RFC2132で規定。
- サーバ
-
[server]
仕える人・給仕人。
サービスを提供する側。
- クライアント
-
[client]
依頼人・お客。
サービスを要求、受ける側。
- 画像
- Windows2000Proffesionalのサービス一覧。
- プール
-
[pool]
水溜り、貯蓄。
本当は2000Serverの実際のDHCP設定画面をお見せしたかったのですが…。
機会があれば、いずれ。
- 左画像
- 「>ipconfig /all」での表示。
- リレーエージェント
-
[Relay Agent]
異なるネットワークのDHCPサーバへIPアドレスを要求する際に使う、中継するルータのこと。
- ホスト設定
-
[Host Configuration]
DHCPが設定できるものは、
- サブネットマスク
- デフォルトゲートウェイ
- DNSサーバ
- クライアントのホスト名
- DNSドメイン名
- リース期限
- 再リース期限
- メッセージ・タイプ
-
[message type]
メッセージのオプションに、タイプを表示する項目があります。
- 画像
-
>ipconfig /release
で、IPアドレスの返却。
>ipconfig /renew
が、IPアドレスの再取得。
- ネット君の今日のポイント
-
- IPアドレスを自動的に割り振る方法がDHCPである。
- 各クライアントはDHCPサーバが持つアドレスプールから、IPアドレスを割り振ってもらう。
- IPアドレスを割り振る際には、リース期間を設定する。
- DHCPはIPアドレスを割り振るだけでなく、詳細な設定も同時に送信することができる。
- DHCPの動作は、以下のように行われる。
- クライアントがサーバを見つける(DISCOVER)
- サーバは候補のアドレスを送る(OFFER)
- クライアントは正式な要求を送る(REQUEST)
- サーバがそれを認める(ACK)
- DHCPのメッセージのやりとりはブロードキャストを使用する。
- リース期間前にも返却や再取得要求が行える。