IPアドレスやサブネットマスク、デフォルトゲートウェイやDNSサーバーのIPアドレスなど、ネットワークに接続するために必要な設定を配布するプロトコル。
静的割り当てと動的割り当て
静的割り当て
端末に対してひとつひとつ手動でIPアドレスを設定する方法。ネットワークに接続する端末のユーザーは、システム管理者にお願いして空いているIPアドレスを払い出してもらい、それを設定する。サーバーやネットワーク機器はIPアドレスがころころ変わると通信に影響が出てしまうので、ほとんどの場合この方式を採用する。また数十人規模の小規模な環境でも採用される。
静的割り当ては、端末とIPアドレスが一意に紐づくためIPアドレスを管理しやすいというメリットがある。何らかの異変があってもどの端末であるかを即座に判別できる。その反面、端末の数が多くなると管理が煩雑になりやすい。大規模なLAN環境では通常、動的割り当てを採用する。
図:IPアドレスの静的割り当て
動的割り当て
DHCPを使用して、端末にIPアドレスを自動で設定する方法。
端末数が多い大規模なLAN環境でも、一元的にIPアドレスを管理でき、手間を省くことができる。
図:IPアドレスの動的割り当て
DHCPのメッセージフォーマット
DHCPはUDP/67でカプセル化したDHCPメッセージ部分に設定情報を詰め込む。DHCPメッセージのフォーマットはいろいろなフィールドで構成されていて少々複雑。この中で特に重要なフィールドは割り当てクライアントIPアドレス、クライアントMACアドレス、オプションの3つ。
図:DHCPのメッセージフォーマット
「割り当てクライアントIPアドレス」には、実際にDHCPサーバーから端末に配布され、設定されるIPアドレスが格納される。「クライアントMACアドレス」にはその名の通り端末のMACアドレスが格納される。「オプション」にはメッセージのタイプ(Discover/Offer/Request/Ack)やサブネットマスク、デフォルトゲートウェイやDNSサーバーのIPアドレスなど、ネットワークの設定に関するいろいろな情報が格納される。オプションはオプションコードによって識別される。
表:代表的なオプションコード
DHCPの処理の流れ
DHCPの動きはいたってシンプルで、「IPアドレスをくださーい」と大声(ブロードキャスト)でみんなに聞いて、DHCPサーバーが「このIPアドレスをどうぞー」と返すようなイメージ。DHCPはIPアドレスが設定されていない状態で、ブロードキャストを駆使しながら情報をやり取りする。
- DHCPクライアントはDHCPサーバーを探すDHCP Discoverをブロードキャストで送信する。
- DHCP Discoverを受け取ったDHCPサーバーは、あらかじめ設定されているIPアドレスの範囲(DHCPプール、DHCPレンジ)の中からIPアドレスを選び出し、DHCP Offerをユニキャストで返す。(DHCPサーバーの仕様や設定によっては、配布予定のIPアドレスが使用されていないか確認するために、DHCP Offerの前にARPやICMPを送信したりする。この機能の事を「重複検知機能」という。)DHCP Offerはあくまで提案。この時点ではまだ配布するIPアドレスは確定していない。
- DHCP Offerを受け取ったクライアントはDHCP Requestをブロードキャスト出返して、「そのIPアドレスでお願いします。」と伝える。複数のDHCPサーバーから複数のDHCP Offerを受け取った場合は、最も早く受け取ったDHCP Offerに対してDHCP Requestを返す。
- DHCP Requestを受け取ったDHCPサーバーはDHCP ACKをユニキャストで返して、そのIPアドレスを渡す。
- DHCP ACKを受け取ったDHCPクライアントは、DHCP Offerで渡されたIPアドレスを自分のIPアドレスとして設定し、そのIPアドレスで通信を始める。なお、受け取ったIPアドレスにはリース時間が設定されている。リース時間が経過したら、「DHCP Release」を送信してそのIPアドレスを解放し、DHCPサーバーに返却する。
図:DHCPの流れ
コメントを残す