DHCP

DHCPの仕組み

More than 1 year has passed since last update.

DHCPとは

  • Dynamic Host Configuration Protocol
  • L7(アプリケーション層)プロトコル
  • 構成要素
    • DHCPサーバ:クライアントにIPアドレスを割り当てる。Windowsサーバ/Linuxサーバ/ルータに構築。
    • DHCPクライアント:IPアドレスを割り当てられる端末。
  • DHCPサーバ向けのパケットはUDP:67で、DHCPクライアント向けのパケットは、UDP:68を使用。

DHCPの仕組み

  • IPアドレスをクライアントに割り当てるまでの流れ(同一セグメントにクライアントとサーバがある場合)
  1. DHCP Discover
    • クライアントからブロードキャストでDHCP Discoveryメッセージを送信し、ネットワーク全体に問い合わせる
      • そのときのパケットの中身
送信元MACアドレス 宛先MACアドレス 送信元IPアドレス 宛先IPアドレス 送信元ポート 宛先ポート DHCPメッセージ
クライアントのMACアドレス FF:FF:FF:FF:FF:FF 0.0.0.0 255.255.255.255 68 67 DHCP Discover
  1. DHCP Offer
    • サーバ側でアドレスプールから割り当てるIPアドレスを選択し送信。
    • そのときのパケットの中身
送信元MACアドレス 宛先MACアドレス 送信元IPアドレス 宛先IPアドレス 送信元ポート 宛先ポート DHCPメッセージ
サーバのMACアドレス FF:FF:FF:FF:FF:FF or クライアントのMACアドレス サーバのIPアドレス 255.255.255.255 67 68 DHCP Offer + 割り当てるDHCPクライアントのIPアドレス + DHCPサーバのIPアドレス
  1. DHCP Request
    • クライアントは割り当てられたIPを使用する通知をブロードキャストで送信。まだこの時点では設定情報がなく、割り当てられていない。
    • そのときのパケットの中身
送信元MACアドレス 宛先MACアドレス 送信元IPアドレス 宛先IPアドレス 送信元ポート 宛先ポート DHCPメッセージ
クライアントのMACアドレス FF:FF:FF:FF:FF:FF 0.0.0.0 255.255.255.255 68 67 DHCP Request + 割り当てるDHCPクライアントのIPアドレス + DHCPサーバのIPアドレス
  1. DHCP Ack
    • サーバが割り当てるIPアドレスの情報をクライアントに送信。
    • そのときのパケットの中身
送信元MACアドレス 宛先MACアドレス 送信元IPアドレス 宛先IPアドレス 送信元ポート 宛先ポート DHCPメッセージ
サーバのMACアドレス FF:FF:FF:FF:FF:FF or クライアントのMACアドレス サーバのIPアドレス 255.255.255.255 67 68 DHCP Ack + DHCPクライアントのIPアドレス + Gatewayやsubnetなどの情報
  • ※DHCP Offer/DHCP Ackはブロードキャストもしくはユニキャストで送信される。DHCP Discovery内のブロードキャストフラグ次第でどちらかに決まる。

  • IPアドレスのリース更新の流れ

    1. DHCP Request
      • クライアントがサーバにリース期限更新のリクエストを送る
    2. DHCP Ack
      • サーバがクライアントに要求を許可するメッセージを送信する。
  • IPアドレスの解放までの流れ

    1. DHCP Release
      • クライアントがサーバにリリース依頼のリクエストを送信。

なぜDHCPクライアントがDHCP Offerの情報をそのまま使わないのか?

  • DHCPサーバがネットワーク上に複数台存在する場合があり、その際に他のすべてのDHCPサーバにどのDHCPサーバからの設定情報を使用するか通知する必要があるため、DHCP Requestによってブロードキャストで送信し、通知している

DHCPリレーエージェント

  • L2を超えた先にDHCPサーバが存在する場合(=ルータの先にDHCPサーバが存在する場合)、DHCPリレーエージェントを設置する必要あり
  • ブロードキャスト通信は、ルータ(L3)を越えられない(ルータがパケットを破棄する)ため。
  • DHCPリレーエージェントとは?
    • ルータがリレーエージェントになることが多いが、サーバにソフトウェアを入れて構築することも可能
    • DHCPクライアントが送信したDHCP Discovery/OfferパケットなどのブロードキャストパケットをユニキャストでDHCPサーバに転送する役割
    • その後、DHCPサーバはDHCPリレーエージェントにユニキャストで応答し、DHCPリレーエージェントは、ブロードキャストでDHCPクライアントに送信する