メインコンテンツへスキップ
見出し画像

【基礎から学び直すITインフラ入門】#7 DHCP

    7記事目。今回でネットワーク周りのところは最後となります。
    特に章立てはしていなかったけれど、次回からはOS編に入る予定です。
    どうでもいいんですけど、前回の記事は一週間でインプレッションが7件でした。では、始めていきます。前回記事は ↓ から。

    はじめに

    前回は、DNSについて学び、ドメイン名とIPアドレスがどのように変換されるのか、その階層構造とキャッシュの仕組みを理解できました。

    今回は、DHCP(Dynamic Host Configuration Protocol)について学びます。
    デバイスをネットワークに繋ぐだけで、自動的にIPアドレスが設定されるのか、この仕組みを見ていきましょう。

    DHCPの基礎

    DHCPとは

    DHCPは、ネットワークに接続したデバイスに、自動的にIPアドレスなどの設定情報を配布するプロトコルです。スマホをWi-Fiに接続したときや、PCをLANケーブルに繋いだとき、特に何もしなくても自動的にインターネットに繋がります。

    これは、DHCPが裏側で以下の情報を自動的に設定してくれるからです。
    ・IPアドレス
    ・サブネットマスク
    ・デフォルトゲートウェイ(ルータのアドレス)
    ・DNSサーバーのアドレス
    DHCPがなければ、これらを全て手動で設定する必要があります。

    DHCPの仕組み

    DHCPによるIPアドレスの割り当ては、4つのステップで行われます。この4つの頭文字を取ってDORAと言われてます。

    画像
    DHCPのステップ

    ステップ1: Discover(発見)
    クライアントがネットワークに接続されると、DHCPサーバーを探すためのメッセージをネットワーク全体にブロードキャストします。この時点ではまだIPアドレスを持っていないので、送信元は0.0.0.0、宛先は255.255.255.255(全体)となります。

    ステップ2: Offer(提供)
    DHCPサーバーが応答します。このIPアドレスを使いませんか、という提案です。この提案には、IPアドレスだけでなく、サブネットマスク、デフォルトゲートウェイ、DNSサーバー、リース期間も含まれています。
    複数のDHCPサーバーが存在する場合、それぞれが提案を返す可能性がありますが、クライアントは通常、最初に届いた提案を採用します。

    ステップ3: Request(要求)
    クライアントは提案を受け入れる場合、そのIPアドレスをくださいという要求を送ります。複数のDHCPサーバーにどの提案を受け入れるかの通知をする必要があるため、この要求もブロードキャストで送られます。

    ステップ4: Ack(確認応答)
    DHCPサーバーは、要求に対して確認応答を返します。これで正式にIPアドレスの割り当てが完了し、クライアントはネットワーク通信ができるようになります。

    リース期間

    DHCPで割り当てられたIPアドレスにはリース期間があります。これは割り当てられたIPアドレスの有効期限です。
    例えばリース期間が24時間の場合、クライアントは12時間後(リース期間の半分)に更新要求を送ります。DHCPサーバーが応答すれば、同じIPアドレスを引き続き使えて、リース期間がリセットされます。

    リース期間の設定は、ネットワークの用途によって変わります。カフェやホテルのWi-Fiのように、デバイスの入れ替わりが激しい場所では短く(1時間程度)、オフィスのように固定的な場所では長く(数日〜1週間)設定します。
    実際には、デバイスが常時接続されている場合、リース期間の半分で自動更新されるため、ユーザーがこのプロセスを意識することはほとんどありません。

    DHCPが見つからなかった場合

    DHCPサーバーが見つからなかったり、応答がなかったりすると、PCは自動的に169.254.x.xというIPアドレスを割り当てます。これをAPIPA(Automatic Private IP Addressing)と呼びます。
    このIPアドレスが設定されている場合、通常はネットワーク接続に問題があることを示しています。よくある原因は、DHCPサーバーがダウンしている、LANケーブルが正しく接続されていない、Wi-Fiの認証に失敗している、などがあります。

    まとめ

    デバイスをネットワークに繋ぐだけでIPアドレスが自動設定される便利な仕組みの裏側で、DHCPというプロトコルが働いていることで、普段のネットワークへの接続で恩恵を受けていることが理解できましたね。
    次回は、Linuxの基礎について学んでいきます。ディレクトリ構造、基本コマンド、権限管理など、OSに関する基本的な知識を身につけましょう。

    あなたへのおすすめ