【入門編】 DHCP(UDP/67, 68)のDORAプロセス – ネットワーク基礎とWebセキュリティ実践ガイド

「IPアドレスがない!」とパニックになる前に。DHCPのDORAプロセスを“郵便配達”で完全理解しよう

ネットワークエンジニアの皆さん、こんにちは!日々のトラブルシューティング、お疲れ様です。

新人の頃、PCをLANケーブルに繋いでも「インターネットに繋がりません!」と焦った経験はありませんか?その原因の多くは、PCが「自分は誰で、どこにいるのか」を示すIPアドレスを手に入れられていないことにあります。

この「IPアドレスをもらう」という地味ながらも極めて重要なプロセスが、今日解説するDHCP(Dynamic Host Configuration Protocol)です。専門用語が並ぶと難しく感じますが、実はこれ、私たちの身の回りの「郵便配達」とまったく同じ仕組みで動いているんです。

さあ、ネットワークの深淵を覗く第一歩、一緒に踏み出してみましょう!

—

1. DHCPってそもそも何者?

簡単に言えば、DHCPは「ネットワーク上の自動受付カウンター」です。

本来、IPアドレスは一つずつ手動で設定することもできます。しかし、数百台ものPCがあるオフィスで、一台ずつ手書きで設定していたら日が暮れてしまいますよね。そこで、DHCPサーバーという「住所管理係」が、空いている住所を自動的に貸し出してくれるというわけです。

このやり取りを「DORA(ドーラ)」と呼びます。さあ、この4つのステップを見ていきましょう。

—

2. 郵便配達で例える「DORAプロセス」

DHCPによるIPの貸し出しは、以下の4つのステップで完結します。

Discover(発見):手紙をバラ撒く

PCはネットワークに繋がった瞬間、「誰か、このネットワークの住所管理係さんはいませんかー!」と叫びます。これが Discover です。自分にはまだ住所がないので、宛先不明のメッセージをネットワーク全体にブロードキャスト(一斉送信)します。

Offer(提示):サーバーからの返信

これを聞いたDHCPサーバーが、「はいはい、空いている住所ならこれがあるよ。使ってもいいかな?」と提案します。これが Offer です。

Request(要求):これに決めました!

PCは提案された住所を見て、「ありがとうございます、その住所を使わせていただきます!」と正式に申し込みます。これが Request です。

Acknowledge(承認):契約成立!

最後にサーバーが「OK、その住所を使っていいよ。有効期限は◯時間ね!」と承認します。これが Acknowledge です。これでPCは晴れてネットワークの一員になれるわけですね。

—

3. なぜ「ブロードキャスト」が必要なのか?

初心者が一番つまずくのが「なぜ一斉送信するの?」という点です。

考えてみてください。あなたは今、見知らぬ街に降り立ちました。住所も分かりません。そんな時、特定の誰かに電話をかけようにも、その人の番号すら分かりませんよね? だからこそ、「誰か助けて!」と大声で叫ぶしかない。これがネットワークにおける Broadcast の正体です。

このやり取りは、OSI参照モデルで見ると「第4層(トランスポート層)」の UDP という、信頼性よりも速度を重視するプロトコルを使っています。手紙というよりは、大声で叫ぶ「通信」に近いイメージですね。

—

4. 現場でDHCPを覗いてみよう(実用編)

実際にDHCPがどう動いているか、Linuxサーバー(isc-dhcp-server)の設定例を少しだけ覗いてみましょう。現場ではこんな感じで住所の範囲を決めています。

# /etc/dhcp/dhcpd.conf の設定例
# 192.168.1.0/24 のネットワークでIPを貸し出す設定

subnet 192.168.1.0 netmask 255.255.255.0 {
  # 貸し出すIPアドレスの範囲
  range 192.168.1.50 192.168.1.150;
  
  # デフォルトゲートウェイ(外への出口)の案内
  option routers 192.168.1.1;
  
  # DNSサーバーの案内
  option domain-name-servers 8.8.8.8, 8.8.4.4;
  
  # IPの貸し出し期限(秒単位)
  default-lease-time 86400; # 24時間
}

トラブルシューティングの際、Linux環境であれば tcpdump を使ってパケットをキャプチャすると、DORAのやり取りが手に取るように分かります。

# DHCPのやり取り(UDPポート67, 68)だけを抜き出して監視するコマンド
sudo tcpdump -i eth0 port 67 or port 68

これを実行しながらPCをネットワークに繋ぐと、ターミナル上に DHCP Discover や DHCP Offer といった文字が流れてくるはずです。これが「リアルなネットワークの息吹」です!

—

最後に:ネットワークを「生き物」として感じよう

DORAプロセスは、まさにネットワークという街の日常的な風景です。パケットはただのデータではなく、PCとサーバーが交わす「挨拶」であり「契約」です。

「繋がらない」というトラブルに遭遇した時は、このDORAのどこで止まっているのかを想像してみてください。 Discover は届いているのか? Offer は来ているのか?

そう考えるだけで、目の前の真っ黒な画面に対する恐怖が、少しだけ「攻略対象」へと変わるはずです。皆さんのネットワークエンジニアライフが、より豊かでワクワクするものになりますように!

それでは、また次回の記事でお会いしましょう!

コメント

タイトルとURLをコピーしました