前回、DHCPサーバとのやり取りをパケットキャプチャソフトで
実際にネットワーク上に流れているパケットをキャプチャしました。
上図からも分かるとおり、IPアドレス取得の流れは、
以下のように4つの手順を踏んで行われます。
#1行目のDHCP RELEASEメッセージは、
クライアントPCがIPアドレスをリリース(返却)
するときのメッセージですので対象外です。
●DHCPのやり取り
DHCPのやり取りはDHCP DISCOVER,DHCP OFFER,DHCP REQUEST,DHCP ACKのやり取りを行ってアドレスを取得をしています
今回はそれぞれのメッセージを見る前に、
DHCPのメッセージフォーマットについて
見ていきたいと思います。
DHCPのやりとりは、以下の図のようなフォーマットを使って行われます。
・op
メッセージタイプ(1 = BOOTREQUEST, 2 = BOOTREPLY)
・htype
ハードウェアアドレスタイプ(10Mイーサネットの場合は 1 )
・hlen
ハードウェアアドレス長(10Mイーサネットの場合は 6 )
・hops
DHCPリレーエージェントを使用する場合に利用される
・トランザクションID
クライアントとサーバ間の一連の通信で共通で使用されるID。
・秒数
クライアントによって記述される。
アドレスの更新を開始してからの秒数がセットされる。
・フラグ:下図参照
B: ブロードキャストフラグ
MBZ: 常に 0 をセット(将来のための予約)
・クライアントIPアドレス
クライアントがIPアドレスを取得している場合にセットされる。
・割り当てるIPアドレス
クライアントに割り当てられるIPアドレス
・サーバIPアドレス
サーバのIPアドレス
・リレーエージェントIPアドレス
リレーエージェントのIPアドレス。
リレーエージェントを使用する場合に利用される。
・クライアントハードウェアアドレス
クライアントのMACアドレスがセットされる
・サーバ名
サーバのホスト名(オプション)
・ブートファイル名
・オプション
可変長のオプション。
このオプション部分に下記のようなさまざまな種類のデータを設定して、
詳細なオプションを通知可能。
このオプション部分で、「サブネットマスク」や
「デフォルトゲートウェイ」、「DNSサーバのアドレス」
などがセットされます。
オプションで設定される項目は非常に多いため、
ここでの説明は割愛します。
興味のある方は、RFC2132に記述されていますのでご覧になって下さい。
□RFC2132
http://www.ietf.org/rfc/rfc2132.txt
DHCPのもとになった技術は「BOOTP(BOOTstrap Protocol」
と呼ばれるプロトコルがもとになっています。
基本的にメッセージフォーマットもBOOTPと同じです。
唯一違うところが、BOOTPがIPアドレスを通知するだけだったのに対し、
DHCPはさらに多くのオプション(デフォルトゲートウェイやDNSサーバなど)
を通知できたり、リース期間の概念を取り込んでより高機能になっています。
DHCPに関するRFCには以下のようなものがあります。
□BOOTP:RFC951
http://www.ietf.org/rfc/rfc951.txt
□DHCP:RFC2131
http://www.ietf.org/rfc/rfc2131.txt
□DHCPオプション:RFC2132
http://www.ietf.org/rfc/rfc2132.txt
ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!
これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。
もちろん無料です!!
↓メールマガジン購読はこちら↓