◆DHCP(セグメントの識別・メッセージフォーマット) |
DHCP(セグメントの識別)
DHCPリレー機能を利用すれば、下図のようなネットワークを構築することができます。DHCPサーバを集約して、1台のDHCPサーバーで管理できるようになります
1台のDHCPサーバにセグメント(ネットワーク)ごとにスコープを設定しておきます。
では、DHCPサーバは、どのようにセグメント(ネットワーク)を識別して、セグメントごとに異なる設定情報を割り当てているのでしょうか?
DHCPメッセージ内の「GIADDR」のIPアドレスによって、どのサブネットのIPアドレスに割り当てるかを識別しIPアドレスを割り当てています。「GIADDR」が無い場合は、同一セグメントと認識しています。
●DHCPのメッセージフォーマット
情報名 |
説明 |
CIADDR |
クライアントIPアドレス、クライアントがBOUND、 RENEW、REBINDING状態の場合に用いられる。 |
YIADDR |
DHCPサーバが割り当てるクライアントのIPアドレス(自分のIPアドレス) |
SIADDR |
DHCPサーバのIPアドレス |
GIADDR |
DHCPリレーエージェントのIPアドレス。DHCPサーバはGIADDRを見てクライアントの所属するサブネットを識別する。 |
CHADDR |
クライアントのMACアドレス |
パケットをフォワードする前に、パケットのGIADDRフィールドに、そのセグメント用のルータのIPアドレスを格納します。これで、DHCPクライアントがそのIPアドレスを取得した時には、そのアドレスがクライアントのためのゲートウェイアドレスとなります。
クライアントからDHCPサーバへはUDPの67番が、DHCPサーバからクライアントへは68番が利用されます。
DHCPのメッセージフォーマット
DHCPはBOOTPの拡張で、メッセージフォーマット等は、ほぼそのままです。
下の図は、DHCPのメッセージフォーマットです。
0 |
15 |
16 |
31 |
OP
(8ビット) |
ハードタイプ
(8ビット) |
ハードウェア長
(8ビット) |
ホップ数
(8ビット) |
トランザクションID
(32ビット) |
経過秒数
(16ビット) |
フラグ
(16ビット) |
CIADDR(クライアントのIPアドレス)
(32ビット) |
SIADDR(サーバのIPアドレス)
(32ビット) |
GIADDR(クライアントのIPアドレス)
(32ビット) |
CHADDR(クライアントのMACアドレス)
(16バイト) |
SNAME(サーバ名)
(64バイト) |
ブートファイル名
(128バイト) |
オプション
(可変長) |
|
←―― |
32ビット |
――→ |
DHCPメッセージの主要の項目を下表に示します。
●DHCPのメッセージの主要項目
情報名 |
説明 |
CIADDR |
クライアントIPアドレス、クライアントがBOUND、 RENEW、REBINDING状態の場合に用いられる。 |
YIADDR |
DHCPサーバが割り当てるクライアントのIPアドレス(自分のIPアドレス) |
SIADDR |
DHCPサーバのIPアドレス |
GIADDR |
DHCPリレーエージェントのIPアドレス。DHCPサーバはGIADDRを見てクライアントの所属するサブネットを識別する。 |
CHADDR |
クライアントのMACアドレス |
|
|
|