ネットワークの教科書NETWORK

第5章 アプリケーション層5-2コース全体 19回中17本目

入門読了 約8分

DHCP ― IPアドレスを自動で配るしくみ

端末をネットワークにつなぐだけで通信が始まるのはなぜか。DHCPが配る4つの設定と、DORAという4段階のやり取り、リースの更新タイミングを順に確認します。

結論

DHCPは、IPアドレスと一緒に3つの設定も自動で配る

端末をネットワークにつなぐと、多くの場合は何も入力しなくても通信が始まります。これを実現しているのがDHCP(Dynamic Host Configuration Protocol)です。DHCPサーバは、新しく参加した端末に次の4つをまとめて配ります。

  1. 1

    IPアドレス

    この端末自身の住所。詳しくはIPアドレスの構造で解説しています。

  2. 2

    サブネットマスク

    住所のうち、どこまでがネットワークを示す部分かの境目。詳しくはサブネットマスクの計算のやり方で解説しています。

  3. 3

    デフォルトゲートウェイ

    外向けの通信を預ける相手。詳しくはデフォルトゲートウェイで解説しています。

  4. 4

    DNSサーバ

    ドメイン名をIPアドレスに変換してくれる相手のIPアドレス。詳しくはDNS ― 名前をIPアドレスに変えるで解説しています。

この4つが揃わなければ、通信できない・外に出られない・ドメイン名でアクセスできない、のいずれかが起こります。 DHCPは、この面倒な手動設定を1回のやり取りで済ませる仕組みです。
前提

まだIPアドレスがない端末は、どう話しかけるのか

通常の通信は、宛先IPアドレスを指定して1対1で送るユニキャストです。ですがDHCPで最初にやり取りする端末は、 まだIPアドレスを持っていません。宛先のDHCPサーバのIPアドレスも、自分自身のIPアドレスも決まっていない状態です。

この問題を、DHCPはブロードキャストで解決します。ブロードキャストは、宛先を255.255.255.255 にして、同一ネットワーク内の全員に一斉に届ける通信方法です。 住所を持たない端末でも、「まだ住所がありません。DHCPサーバはいますか」と、宛先を名指しせずに送り出せます。

しくみ

DORA ― 4段階のやり取りでIPアドレスが決まる

DHCPでIPアドレスが決まるまでの流れは、4つのメッセージの頭文字を取ってDORAと呼ばれます。DISCOVER → OFFER → REQUEST → ACK の順に進み、この4段階はすべてブロードキャストで行われます

点線=ブロードキャスト(4段階すべて共通)端末(0.0.0.0)DHCPサーバ(67番で待受)1. DISCOVER(誰かIPをくれ)宛先 255.255.255.255:672. OFFER(この番号でどうか)宛先 255.255.255.255:683. REQUEST(その番号をください)宛先 255.255.255.255:674. ACK(確定しました)宛先 255.255.255.255:68
DORAの4段階(DISCOVER→OFFER→REQUEST→ACK)は、端末がまだIPアドレスを持たず、同じネットワークにDHCPサーバが複数存在することもあるため、すべて宛先255.255.255.255へのブロードキャストで行われる。

① DISCOVER ― 端末がDHCPサーバを探す

端末は「DHCPサーバはいませんか、IPアドレスをください」という要求をブロードキャストします。 自分のIPアドレスがまだないため、送信元は 0.0.0.0 のままです。

② OFFER ― サーバが候補を提案する

DISCOVERを受け取ったDHCPサーバは、割り当て候補のIPアドレスに加えて、サブネットマスク・デフォルトゲートウェイ・ DNSサーバ・リース期間をまとめてOFFERで返します。端末はまだIPアドレスを設定していないため、これもブロードキャストです。 同じネットワークにDHCPサーバが複数あれば、それぞれが別々のOFFERを返すことがあります。

③ REQUEST ― 端末がどれか1つを選ぶ

端末は届いたOFFERの中から1つを選び、「このIPアドレスをください」というREQUESTを送ります。このREQUESTもブロードキャストです。 選んだサーバにだけユニキャストで伝えないのは、他にOFFERを出した別のDHCPサーバにも「あなたの提案は選ばれませんでした」と伝え、 提案していたIPアドレスを他の端末のために解放してもらうためです。

④ ACK ― 選ばれたサーバが確定を返す

REQUESTで選ばれたDHCPサーバは、そのIPアドレスの割り当てを確定するACKを返します。これもブロードキャストです。 端末はACKを受け取って初めて、通知された4つの設定を自分に反映します。

運用

リースには期限があり、定期的に更新する

DHCPで配られたIPアドレスは、永久に使えるわけではありません。「リース」(貸し出し)という形で、期限つきで割り当てられます。 期限が切れる前に、端末はサーバに更新を申し出ます。

更新を試みるタイミングは、リース期間の50%が経過した時点です。たとえばリース期間が8時間なら、4時間経過した時点で 最初の更新を試みます。更新が成功すると、そこでリース期間はリセットされ、また新しい期間として数え直します。

更新成功 → 0%にリセット更新を試みる(T1・50%)更新できず失効→ DISCOVERへ0%50%100%取得直後
リース期間の50%が経過した時点(T1)で端末は更新を試みる。成功するとリース期間はそこから数え直しになる。更新できないまま100%に達するとリースは失効し、端末は最初のDISCOVERからやり直す。

更新できないままリース期間が満了すると、そのIPアドレスは失効します。端末は最初のDISCOVERからやり直し、新しくIPアドレスを取得します。

プロトコル

DHCPはUDPを使い、ポート67と68を使い分ける

DHCPのやり取りは、コネクションを確立しないUDPの上で行われます。宛先IPアドレスがそもそも決まっていない以上、 TCPのようにコネクションを結んでから話す方式は使えません。ポート番号は役割ごとに固定です。

役割ポート番号
DHCPサーバ67
DHCPクライアント68

DISCOVERとREQUESTは宛先67番、OFFERとACKは宛先68番です。サーバ側が常に67番、クライアント側が常に68番を使います。

使い分け

固定IPとDHCP、どちらを使うか

サーバやプリンタ、ルータ・スイッチ自身のように、他の機器から「その場所」を名指しでアクセスされる機器は、 IPアドレスが変わると困ります。こうした機器には固定IPを手動で設定します。

一方、PCやスマートフォンのように自分からアクセスする側の機器は、IPアドレスが多少変わっても困りません。 DHCPに任せたほうが、設定の手間もIPアドレスが重複する事故も防げます。

機器の例向いている設定
サーバ、ファイルサーバ固定IP
プリンタ、ルータ・スイッチ自身固定IP
PC、スマートフォン、タブレットDHCP(自動)
注意

つまずきやすい点

ブロードキャストはルータを越えない

DORAはすべてブロードキャストです。ブロードキャストは同一ネットワーク内にしか届かず、ルータを越えて別のネットワークには 転送されません。そのためDHCPサーバが別のネットワークにしかない場合、端末のDISCOVERはそのままでは届きません。 この場合はDHCPリレーエージェント(ルータなどがブロードキャストを代理で中継する仕組み)を使います。

DHCPサーバが見つからないとどうなるか

DISCOVERを送っても一定時間OFFERが返ってこない場合、OSは169.254.0.0/16の範囲で暫定的なアドレスを自分で割り当てます(IPアドレスの構造で扱っているAPIPAです)。 これはDHCPサーバとの通信に失敗したサインで、正常なDHCPでの割り当てではありません。

練習

練習問題(全5問)

選んでから「採点する」を押すと、解説つきで答え合わせができます。

Q1DHCPが端末に自動で配る情報の組み合わせとして正しいものは?
Q2DHCPのDORAの正しい順序は?
Q3DHCPDISCOVERの宛先IPアドレスとして正しいものは?
Q4DHCPサーバが待ち受けるUDPポート番号は?
Q5DHCPのリース更新について正しい記述は?
次の回

コースを読み進める