「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 は来ているのか?
そう考えるだけで、目の前の真っ黒な画面に対する恐怖が、少しだけ「攻略対象」へと変わるはずです。皆さんのネットワークエンジニアライフが、より豊かでワクワクするものになりますように!
それでは、また次回の記事でお会いしましょう!
コメント