🎓 レベル:基礎 | 重要度:A(必須) 📎 前提:DNS
要点(BLUF)
- DHCPは、端末にIPアドレス・サブネットマスク・デフォルトゲートウェイ・DNSサーバを自動で配るプロトコルです。
- 端末はまだIPを持たないため、ブロードキャストで始まる4ステップ(DORA:Discover→Offer→Request→Ack)で取得します。
- サーバが別サブネットにある場合は、ルータのDHCPリレーがブロードキャストを橋渡しします(UDP67/68)。
DORA:4つのやり取り
端末(クライアント)はIPがないので、最初は宛先ブロードキャストで叫びます。
sequenceDiagram
participant C as クライアント
participant S as DHCPサーバ
C->>S: DISCOVER(ブロードキャスト・誰かIPください)
S->>C: OFFER(このIPはどう?・候補提示)
C->>S: REQUEST(それをくださいと要求)
S->>C: ACK(確定・リース開始)
- Discover:「DHCPサーバいますか」を全体へブロードキャスト。
- Offer:サーバが空きIPを提案。
- Request:クライアントが「それを使います」と(複数サーバの中から1つに)正式要求。
- Ack:サーバが確定し、リース期間付きで割り当て。
リースには期限があり、半分過ぎたあたりで**更新(renew)**します。
配られる情報
| 項目 | 役割 |
|---|---|
| IPアドレス | 端末の住所 |
| サブネットマスク | ネットワーク部の境界 |
| デフォルトゲートウェイ | 外部へ出る出口(ルータ) |
| DNSサーバ | 名前解決先 |
| リース時間 | この割当の有効期間 |
「IPだけ」でなくゲートウェイとDNSまで配るのが重要で、これが揃って初めて外部のサイトに名前でアクセスできます。
DHCPリレー:サブネットを越える
DHCPの最初はブロードキャストで、ルータは通常ブロードキャストを越えさせません。サーバが各サブネットに無いとき、ルータがリレーエージェントとして、ブロードキャストをサーバへユニキャストで転送します。
! このインターフェースのDHCP要求を 10.0.0.10 のサーバへ中継
Router(config)# interface Gi0/0
Router(config-if)# ip helper-address 10.0.0.10
これで1台のDHCPサーバで複数サブネットを賄えます。
ルータをDHCPサーバにする(小規模)
Router(config)# ip dhcp excluded-address 192.168.1.1 192.168.1.10
Router(config)# ip dhcp pool LAN
Router(dhcp-config)# network 192.168.1.0 255.255.255.0
Router(dhcp-config)# default-router 192.168.1.1
Router(dhcp-config)# dns-server 8.8.8.8
excluded-address で、ゲートウェイやサーバの固定IPを配布対象から外します。
なぜ自動配布なのか(設計の直観)
数百台に手動でIPを設定すれば、重複・打ち間違い・引っ越しのたびの再設定で破綻します。DHCPは割当を一元管理し、端末は電源を入れるだけで正しい設定を受け取れます。ゲートウェイやDNSまで配ることで「つなげば使える」体験を実現し、アドレスの再利用(リース)でアドレスも節約します。
⚠️ よくある誤解
- 「DHCPはIPだけ配る」ではない。マスク・ゲートウェイ・DNSも配ります。どれか欠けると「IPはあるのに繋がらない」状態になります。
- 「169.254.x.x はDHCP成功」ではない。これはDHCP失敗時の自動付与(APIPA)。サーバ到達性やリレー設定を疑います。
- 「DHCPはルータを自動で越える」ではない。ブロードキャストは越えないので、別サブネットには
ip helper-address(リレー)が必要です。
対応 lab
- なし(IOS設定。Packet Tracer等での再現を推奨)
関連
- 名前解決の相棒:
[[05-01_DNS]]/配られるゲートウェイの役割:[[03-03_ルーティングの基礎]] - スイッチでの保護:
[[07-03_L2セキュリティ]](DHCPスヌーピング)