こんにちは、インフラエンジニアのryuです。
今回の記事は、DHCPサーバーの仕組みを解説します。DHCPサーバーとはIPアドレスなどを配布するサーバーです。DHCPサーバーによって、IPアドレスなど、通信に必要な設定をしなくてもPCがインターネットに接続できるようになります。DHCPサーバーの仕組みを初心者の方でも分かりやすく解説します。
目次
DHCPサーバーとは?仕組みをわかりやすく解説
DHCPサーバーって何?
「DHCPサーバーって何?」と思っている初心者の方に、DHCPの仕組みを解説したいと思います。
DHCPサーバーとは、PCにIPアドレスなど通信に必要な情報を自動で割り当てるサーバーのことです。
通信に必要な情報???
wifiに接続すると、インターネットを見れますよね?インターネットに接続するために必要な情報です!
今回の記事では、初心者の方がDHCPサーバーの仕組みが理解できるように、現役インフラエンジニアの私が徹底解説します!
今回の記事を読むと以下の内容が理解できるようになります。
- 通信に必要な情報とは?
- DHCPサーバーは何をしている?
- DHCPサーバーの仕組み(エンジニア向け)
では、やっていきましょう!
通信に必要な情報とは?【DHCPを理解するための前提知識】
まず、PCがインターネットに接続するために必要な設定は何か分かりますか?
うーん、IPアドレスとか?
まず、ネットワークの基礎知識のおさらいをしましょう。DHCPを理解するための前提知識です。
PCがインターネットに接続するためには、以下の情報が必要です。
- IPアドレス
- サブネットマスク
- デフォルトゲートウェイ
では、なぜこの情報が必要か説明できますか?
うーん・・・ 分からない・・・
おさらいのため、簡単に説明します。
- IPアドレス → PCの住所 通信するために必要
- サブネットマスク → ネットワークを識別
- デフォルトゲートウェイ → 知らないネットワークに通信するときの窓口
PCが通信をするときにデータを送信する宛先と返事を受け取るための送信元の住所が必要です。それがIPアドレスです。
サブネットマスクはネットワークの規模を表すものでネットワークを識別します。
そして、インターネット上にある場所が分からないサーバーに通信するためには、窓口となるデフォルトゲートウェイに一旦通信をして、デフォルトゲートウェイが適切な経路に通信します。
IPアドレスなどが、まだ良く分からないという方は、こちらの記事も参考にしてください。
では、自分が使用しているPCやスマホはこれらの設定をしていますか?おそらくほとんどの人は意識せずに使っています。
では、なぜインターネットに接続するために必要な設定をしなくてもインターネットに接続できているのでしょうか?
その答えをこれから解説していきます!
なぜDHCPサーバーが必要?
突然ですが、PCやスマホをインターネットに接続したいとき何をしますか?
スマホのwifi設定をいじりますよね?
Wifiに接続するだけでなぜ、インターネットに接続できるようになるのでしょうか。
その答えはDHCPサーバーがインターネットに必要な情報をPCやスマホに登録してくれるからです。
DHCPとは、インターネットなどのネットワークに一時的に接続するコンピュータに、IPアドレスなど必要な情報を自動的に割り当てるプロトコル
(IT用語辞典より)
なんとなくわかったけど、イメージがわかない・・・
DHCPサーバの動作のイメージはこのようになります。
使用者はWifiに接続すると、DHCPサーバーにIPアドレスなどの情報を要求します。そして、DHCPサーバーは情報を端末に割り当てます!
これらの動作を詳しく解説します。
DHCPサーバ-の仕組み
クライアント(PCやスマホのこと)がDHCPサーバーからIPアドレスなどを取得するために、DHCPサーバーと様々なやり取りを行います。
DHCPサーバーとPCのやり取りは以下の通りです。ここは重要な部分なので思えておきましょう!
- DHCPサーバーを発見するDHCP Discover
- DHCPからの応答 DHCP Offer
- 提案されたIPアドレスをもらうDHCP Request
- IPアドレスなどの設定情報を送るDHCP Ack
では、クライアントとDHCPサーバーのやり取りを順番に解説します。
1.DHCPサーバーを発見するDHCP Discover
クライアントがネットワークに接続するとIPアドレスなどを取得するために、DHPサーバを探します。
どのように探すかというとDHCP Discoverパケットをブロードキャストで同じネットーワークにいる全ての機器にメッセージを投げます。
ブロードキャストとは同じネットワークにいる機器全てに通信する方法です。
DHCP Discoverは違うネットワークには届かないというところも重要です。
2.DHCPからの応答 DHCP Offer
DHCP Discoverのパケットを受け取ったDHCPサーバーはクライアントに対して、
このIPアドレス使えますよ!という提案“DHCP Offer”を返します。
DHCP Offerはユニキャスト通信でクライアントとDHCPサーバが1対1で通信を行います。
3.提案されたIPアドレスをもらうDHCP Request
クライアントはDHCPサーバからDHCP Offerで提案されたIPアドレスを使います!とDHCPサーバに要求します。
これがDHCP Requestです。
DHCP RequestもDHCP Discover同様ブロードキャストでメッセージを送信します。
4.IPアドレスなどの設定情報を送るDHCP Ack
クライアントからDHCP Requestを受け取ったDHCPサーバはIPアドレスなどの設定情報をクライアントに送信します。これがDHCP Ackです。
DHCP Ackはユニキャストでクライアントと1対1で通信が行われます。
DHCP Ackが最後のやり取りです。
ここまでがDHCPサーバーの動作になります
違うネットワークにDHCPサーバーがいる場合は?
DHCPサーバーが違うネットワークにいる場合、通常はIPアドレスが取得できません。
なぜか分かりますか?
答えはDHCP Discoverがブロードキャストで送信されるため、同じネットワークにいるDHCPサーバにしか届かないからです。
DHCPリレーエージェントとは?
では、どうすればよいのか。その答えがDHCPリレーエージェントです。DHCPリレーエージェントとは、別ネットワークにあるDHCPサーバーへパケットを中継する機能です。
ルータやL3SWに違うネットワークにいるDHCPサーバを登録し、DHCP Discoverを中継します。
ciscoのネットワーク機器の場合、ip helper-addressというコマンドで設定できます。
DHCPリレーエージェントをわかりやすく図解
DHCPリレーエージェントを分かりやすく図解すると以下のようになります。
ルーターやLinuxサーバーなどがリレーエージェントとなり、DHCPサーバーへパケットを中継します。IPアドレスを取得するための、『DHCP DISCOVER』は同一ネットワーク内にしか届かないからです。
DHCPリレーについては、こちらの記事で詳しく解説しています。
DHCPリレーとは?DHCPリレーの設定方法などを詳しく解説【LinuxとRouterで設定】
DHCPサーバー仕組みまとめ
今回の記事ではDHCPサーバーの仕組みと動作について解説しました。
今回の記事のポイントは以下の通りです。
- DHCPサーバーとはクライアントに通信に必要な情報を割り当てる
- DHCPサーバーとクライアントのやり取り
- 違うNWのDHCPサーバーと通信する場合はリレーエージェント
DHCPなどTCP/IPの知識はエンジニアとして必須知識なので、知らないと現場で使えないエンジニアになってしまいます。必ず勉強しておきましょう!
次回の記事ではLinuxサーバーでDHCPサーバーを構築します!