DNSサーバーとDHCPサーバーは、どちらもネットワーク通信に欠かせない重要な仕組みです。
ただし、役割はまったく異なります。
簡単にいうと、DNSサーバーは「名前から通信先を調べるサーバー」、DHCPサーバーは「端末にネットワーク設定を自動で配るサーバー」です。
たとえば、Webサイトにアクセスするとき、私たちは www.example.com のようなドメイン名を入力します。
しかし、コンピューター同士が通信するときには、基本的にIPアドレスが使われます。
このとき、ドメイン名に対応するIPアドレスを調べるのがDNSサーバーです。
一方、PCやスマートフォンがWi-Fiや社内LANに接続するときには、その端末自身にもIPアドレスが必要です。
このIPアドレスやゲートウェイ、DNSサーバーの情報などを自動で割り当てるのがDHCPサーバーです。
つまり、両者の違いは次のように整理できます。
| 項目 | DNSサーバー | DHCPサーバー |
|---|---|---|
| 主な役割 | ドメイン名などに対応する情報を返す | 端末にネットワーク設定を自動配布する |
| 代表的な用途 | ドメイン名からIPアドレスを調べる | 端末にIPアドレスを割り当てる |
| 使われるタイミング | Webサイトやメールサーバーなどへアクセスするとき | 端末がネットワークに接続するとき |
| 扱う主な情報 | ドメイン名、IPアドレス、DNSレコード | IPアドレス、サブネットマスク、ゲートウェイ、DNSサーバー |
| 問題が起きた場合 | ドメイン名でアクセスできない | IPアドレスを自動取得できない |
DNSサーバーとは、ドメイン名などの名前に対応するDNSレコードを返すサーバーです。
一般的には、ドメイン名からIPアドレスを調べる「名前解決」に使われます。
たとえば、ブラウザで次のようなURLにアクセスするとします。
https://www.example.com
人間にとっては www.example.com のような名前のほうが覚えやすいですが、コンピューターは通信先をIPアドレスで識別します。
そのため、実際の通信では次のような対応関係を調べる必要があります。
www.example.com → 93.184.216.34
このように、ドメイン名に対応するIPアドレスを調べる仕組みがDNSです。
DNSは、よく「インターネット上の電話帳」に例えられます。
電話帳では、人の名前から電話番号を調べます。
DNSでは、ドメイン名からIPアドレスを調べます。
名前:example.com
住所:93.184.216.34
このように、DNSサーバーは「この名前の通信先はどこか」を調べるために使われます。
ただし、厳密にはDNSサーバーが扱う情報はIPアドレスだけではありません。
DNSには複数のレコードがあり、メールサーバーや認証情報などの設定にも使われます。
DNSサーバーは、問い合わせ内容に応じてさまざまなDNSレコードを返します。
代表的なDNSレコードは次の通りです。
| レコード | 役割 |
|---|---|
| Aレコード | ドメイン名をIPv4アドレスに対応させる |
| AAAAレコード | ドメイン名をIPv6アドレスに対応させる |
| CNAMEレコード | ある名前を別の名前に向ける |
| MXレコード | メールサーバーを指定する |
| TXTレコード | SPF、DKIM、DMARC、所有権確認などに使う |
| NSレコード | そのドメインを管理するDNSサーバーを指定する |
Webサイト運営やメール配信の実務では、特にAレコード、CNAMEレコード、MXレコード、TXTレコードがよく使われます。
たとえば、独自ドメインをWebサイトに接続する場合は、AレコードやCNAMEレコードを設定します。
また、メール配信の到達率を高めたり、なりすましメールを防いだりするために、TXTレコードでSPF、DKIM、DMARCなどを設定することもあります。
DHCPサーバーとは、PCやスマートフォンなどの端末に、IPアドレスなどのネットワーク設定を自動で割り当てるサーバーです。
自宅や会社のWi-Fiに接続したとき、通常は手動でIPアドレスを設定しなくてもインターネットを利用できます。
これは、DHCPサーバーが端末に必要なネットワーク情報を自動的に配布しているためです。
たとえば、PCがネットワークに接続すると、DHCPサーバーから次のような情報を受け取ります。
IPアドレス:192.168.1.25
サブネットマスク:255.255.255.0
デフォルトゲートウェイ:192.168.1.1
DNSサーバー:192.168.1.1
この情報を受け取ることで、端末はネットワーク内で通信できるようになります。
DHCPは、会社や施設の受付係に例えると分かりやすいです。
新しく来た人に対して、受付係が次のように案内するイメージです。
あなたの席はここです
外に出るときはこの出口を使ってください
問い合わせ先はこちらです
この利用期限まで使えます
ネットワークでは、これに相当する情報が次のようになります。
あなたのIPアドレスは 192.168.1.25 です
外部ネットワークへ出るときは 192.168.1.1 を使ってください
名前解決には 192.168.1.1 のDNSサーバーを使ってください
このIPアドレスは一定期間利用できます
つまり、DHCPサーバーは端末がネットワークに参加するための基本情報を自動で配布する役割を持っています。
DHCPサーバーは、IPアドレスだけを配っているわけではありません。
代表的には、次のような情報を配布します。
| 配布する情報 | 内容 |
|---|---|
| IPアドレス | 端末自身に割り当てられるアドレス |
| サブネットマスク | 同じネットワーク範囲を判断するための情報 |
| デフォルトゲートウェイ | 外部ネットワークへ出るための出口 |
| DNSサーバー | 名前解決に使うサーバー |
| リース期間 | IPアドレスを利用できる期間 |
| ドメイン名 | 所属するネットワークドメイン |
| NTPサーバー | 時刻同期に使うサーバー |
特に重要なのは、DHCPサーバーがDNSサーバーのアドレスも配布できるという点です。
つまり、端末はDHCPによって「自分のIPアドレス」だけでなく、「どのDNSサーバーを使えばよいか」も自動で受け取ることができます。
DNSサーバーとDHCPサーバーの違いを理解するには、それぞれが「何を解決しているのか」を考えると分かりやすくなります。
DNSサーバーが解決するのは、通信先の名前です。
一方、DHCPサーバーが解決するのは、端末自身のネットワーク設定です。
DNSサーバーは、端末がどこかへアクセスしようとするときに使われます。
たとえば、ユーザーがブラウザで www.example.com と入力した場合、端末はDNSサーバーに問い合わせます。
www.example.com のIPアドレスを教えてください
DNSサーバーは、対応するレコードを調べて、IPアドレスなどの情報を返します。
www.example.com は 93.184.216.34 です
その結果、端末は目的のWebサーバーへアクセスできるようになります。
DHCPサーバーは、端末がネットワークに接続するときに使われます。
たとえば、PCがWi-Fiに接続した直後、まだそのPCは自分が使うIPアドレスを持っていません。
そこで、DHCPサーバーに対して次のように問い合わせます。
このネットワークで使えるIPアドレスをください
DHCPサーバーは、利用可能なIPアドレスやネットワーク設定を端末に渡します。
あなたのIPアドレスは 192.168.1.25 です
ゲートウェイは 192.168.1.1 です
DNSサーバーは 192.168.1.1 です
これにより、端末はネットワークに参加できるようになります。
DNSサーバーとDHCPサーバーは、ネットワーク上で別々の役割を持ちながら、実際には連動して使われることが多いです。
ここでは、PCがWi-Fiに接続してWebサイトを見るまでの流れを見てみましょう。
まず、PCやスマートフォンがWi-Fiや有線LANに接続します。
この時点では、端末がまだIPアドレスを持っていない場合があります。
IPアドレスがなければ、ネットワーク上で自分自身を識別できません。
端末はDHCPサーバーに対して、ネットワーク設定を要求します。
DHCPサーバーは、端末に対して次のような情報を配布します。
IPアドレス:192.168.1.25
サブネットマスク:255.255.255.0
デフォルトゲートウェイ:192.168.1.1
DNSサーバー:192.168.1.1
これにより、端末はネットワーク内外と通信する準備が整います。
次に、ユーザーがブラウザで www.example.com にアクセスします。
端末は、DHCPで受け取ったDNSサーバーに対して、次のように問い合わせます。
www.example.com のIPアドレスを教えてください
DNSサーバーは、対応するIPアドレスを返します。
www.example.com は 93.184.216.34 です
端末は、DNSサーバーから受け取ったIPアドレスを使って、目的のWebサーバーへ通信します。
流れをまとめると、次のようになります。
1. 端末がネットワークに接続する
2. DHCPサーバーからIPアドレスなどを取得する
3. DNSサーバーにドメイン名を問い合わせる
4. DNSで取得したIPアドレスへアクセスする
つまり、DHCPは「ネットワークに参加するための準備」、DNSは「アクセス先を調べる処理」と考えると理解しやすいです。
DNSサーバーが使えない場合、通常はドメイン名によるアクセスができなくなります。
たとえば、次のようなURLを入力しても、Webサイトを開けない可能性があります。
https://www.google.com
https://www.yahoo.co.jp
https://www.example.com
これは、www.google.com や www.example.com といった名前を、IPアドレスに解決できないためです。
DNSが使えない場合でも、インターネット通信そのものが完全に不可能になるとは限りません。
たとえば、IPアドレスを直接指定すれば通信できる場合があります。
http://93.184.216.34
また、端末やブラウザにDNSキャッシュが残っている場合は、以前アクセスしたサイトに一時的に接続できることもあります。
ただし、現代のWebサイトでは、IPアドレスを直接入力しても正しく表示されないケースが多くあります。
理由としては、HTTPS証明書がドメイン名に対して発行されていることや、1つのIPアドレスで複数のWebサイトを運用するバーチャルホストの仕組みが使われていることなどが挙げられます。
DNSに問題がある場合、次のような症状が起きることがあります。
ドメイン名でWebサイトを開けない
特定のサイトだけ名前解決できない
IPアドレスを指定すると通信できる
メールサーバーの名前解決に失敗する
社内システムの名前でアクセスできない
このような場合は、DNSサーバーの設定や、端末が参照しているDNSサーバーに問題がないかを確認します。
DHCPサーバーが使えない場合、端末はIPアドレスなどのネットワーク設定を自動取得できません。
その結果、ネットワークに接続しているように見えても、実際には通信できないことがあります。
DHCPサーバーが正常に動作していない場合、PCやスマートフォンは適切なIPアドレスを受け取れません。
たとえば、本来は次のようなIPアドレスを取得するはずだったとします。
192.168.1.25
しかし、DHCPからIPアドレスを取得できない場合、Windowsでは次のようなアドレスが自動的に設定されることがあります。
169.254.x.x
この 169.254.x.x のアドレスは、DHCPからIPアドレスを取得できなかったときに見られることがあります。
ただし、これだけで必ずDHCPサーバー故障と断定できるわけではありません。
LANケーブル、Wi-Fi接続、ルーター、端末側の設定などもあわせて確認する必要があります。
DHCPは便利な仕組みですが、ネットワーク通信そのものに必ず必要というわけではありません。
DHCPサーバーがなくても、端末に手動でネットワーク設定を入れれば通信できる場合があります。
たとえば、次のように設定します。
IPアドレス:192.168.1.25
サブネットマスク:255.255.255.0
デフォルトゲートウェイ:192.168.1.1
DNSサーバー:8.8.8.8
このように、適切なIPアドレスやゲートウェイ、DNSサーバーを手動で設定すれば、DHCPを使わずに通信できることがあります。
ただし、手動設定ではIPアドレスの重複や入力ミスが起きやすくなります。
そのため、家庭や企業の一般的なネットワークではDHCPによる自動割り当てがよく使われます。
DNSサーバーとDHCPサーバーは別々の役割を持っていますが、実際のネットワークでは密接に関係しています。
特に重要なのは、DHCPサーバーが端末にDNSサーバーのアドレスを配布することが多いという点です。
端末がネットワークに接続すると、DHCPサーバーからIPアドレスなどを受け取ります。
このとき、DHCPサーバーは次のようにDNSサーバーの情報も配布できます。
あなたのIPアドレスは 192.168.1.25 です
デフォルトゲートウェイは 192.168.1.1 です
DNSサーバーは 192.168.1.1 を使ってください
そのため、DHCPの設定が間違っていると、端末が誤ったDNSサーバーを使ってしまうことがあります。
この場合、IPアドレスは取得できていても、ドメイン名でWebサイトを開けないことがあります。
企業ネットワークでは、DHCPとDNSがさらに連動していることもあります。
たとえば、DHCPサーバーが端末にIPアドレスを割り当てたあと、その端末名とIPアドレスをDNSに登録する構成です。
PC001.corp.example.com → 192.168.10.51
このような仕組みにより、社内の端末やサーバーを名前で管理しやすくなります。
特に、Active Directoryを利用している企業ネットワークでは、DNSが重要な役割を持ちます。
家庭のネットワークでは、DNSやDHCP、ゲートウェイの機能を家庭用ルーターがまとめて担当していることがよくあります。
たとえば、PCのネットワーク設定を確認すると、次のように同じIPアドレスが表示されることがあります。
デフォルトゲートウェイ:192.168.1.1
DHCPサーバー:192.168.1.1
DNSサーバー:192.168.1.1
これは、ルーターが複数の役割を兼ねているためです。
家庭用ルーターは、PCやスマートフォン、ゲーム機、プリンターなどにIPアドレスを配布します。
たとえば、次のように端末ごとにIPアドレスを割り当てます。
PC:192.168.1.10
スマートフォン:192.168.1.11
プリンター:192.168.1.12
これにより、家庭内の端末同士やインターネットとの通信が可能になります。
家庭用ルーターは、DNSサーバーのように見えることがあります。
ただし、多くの場合、ルーター自身がインターネット全体の名前解決を直接行っているわけではありません。
実際には、端末からのDNS問い合わせを受け取り、プロバイダのDNSサーバーや外部DNSサーバーへ転送する「DNSフォワーダー」として動作することが多いです。
流れとしては次のようになります。
PC → ルーターへDNS問い合わせ
ルーター → プロバイダや外部DNSへ問い合わせ
外部DNS → ルーターへ回答
ルーター → PCへ回答
そのため、端末から見るとDNSサーバーは 192.168.1.1 のルーターですが、実際の名前解決は上流のDNSサーバーが行っている場合があります。
企業や学校などの大規模なネットワークでは、DNSサーバーとDHCPサーバーを別々の機器やサーバーで運用することがあります。
たとえば、次のような構成です。
DHCPサーバー:192.168.10.5
DNSサーバー:192.168.10.10
デフォルトゲートウェイ:192.168.10.1
このように役割を分けることで、管理性や可用性を高めることができます。
企業ネットワークでは、インターネット上のWebサイトだけでなく、社内システムや社内サーバーの名前解決にもDNSが使われます。
たとえば、次のような名前で社内システムにアクセスすることがあります。
fileserver.corp.example.com
intranet.corp.example.com
printer01.corp.example.com
このような名前をIPアドレスに解決することで、利用者はIPアドレスを覚えなくても社内システムへアクセスできます。
WindowsのActive Directory環境では、DNSが非常に重要です。
ドメイン参加、ログオン、ドメインコントローラーの探索、社内サービスの検出などにDNSが使われます。
そのため、企業ネットワークではDNS設定が間違っていると、単にWebサイトが見られないだけでなく、社内システムにログインできない、共有フォルダにアクセスできない、といった問題につながることがあります。
ネットワークに接続できない場合、DNSの問題なのか、DHCPの問題なのかを切り分けることが重要です。
症状ごとに見ると、ある程度の判断ができます。
| 症状 | 考えられる原因 |
|---|---|
| IPアドレスを取得できない | DHCPの問題 |
IPアドレスが 169.254.x.x になっている |
DHCP取得失敗の可能性 |
| Wi-Fiにはつながるが通信できない | DHCP、ゲートウェイ、DNSなどの問題 |
| IPアドレス宛には通信できる | DNSの問題の可能性 |
| ドメイン名だけ解決できない | DNSの問題の可能性 |
| 社内サーバー名だけ解決できない | 社内DNSの問題の可能性 |
| ルーターに通信できない | IP設定、Wi-Fi、LAN、ゲートウェイなどの問題 |
DHCPの問題が疑われるのは、端末が正しいIPアドレスを取得できていない場合です。
たとえば、次のようなケースです。
IPアドレスが空欄になっている
IPアドレスが 169.254.x.x になっている
デフォルトゲートウェイが設定されていない
DNSサーバーの情報が取得できていない
このような場合は、DHCPサーバーやルーターが正常に動作しているか、端末がネットワークに正しく接続されているかを確認します。
DNSの問題が疑われるのは、IPアドレスによる通信はできるのに、ドメイン名によるアクセスができない場合です。
たとえば、次のような状態です。
IPアドレス宛の通信はできる
しかし google.com などの名前解決に失敗する
特定の社内システム名だけ解決できない
この場合は、端末が参照しているDNSサーバーの設定や、DNSサーバー自体の状態を確認します。
Windowsでは、コマンドプロンプトを使ってネットワーク設定を確認できます。
次のコマンドを実行します。
ipconfig /all
このコマンドでは、次のような情報を確認できます。
IPv4アドレス
サブネットマスク
デフォルトゲートウェイ
DHCPサーバー
DNSサーバー
リース取得日時
リース期限
たとえば、次のように表示されます。
IPv4 アドレス . . . . . . . . . . . .: 192.168.1.25
サブネット マスク . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . .: 192.168.1.1
DHCP サーバー . . . . . . . . . . .: 192.168.1.1
DNS サーバー . . . . . . . . . . .: 192.168.1.1
ここで、IPアドレスやDHCPサーバー、DNSサーバーの値を確認することで、問題の切り分けがしやすくなります。
DHCPからIPアドレスを再取得したい場合は、次のコマンドを使います。
ipconfig /release
ipconfig /renew
ipconfig /release は、現在のIPアドレスを解放するコマンドです。
ipconfig /renew は、DHCPサーバーからIPアドレスを再取得するコマンドです。
DNSキャッシュが原因で名前解決に問題が起きている場合は、次のコマンドでDNSキャッシュを削除できます。
ipconfig /flushdns
これにより、端末に保存されているDNSキャッシュがクリアされます。
DNSの名前解決を確認するには、次のコマンドを使います。
nslookup www.example.com
DNSサーバーが正常に応答していれば、対象ドメインに対応するIPアドレスなどが表示されます。
Macでも、ターミナルやシステム設定からネットワーク情報を確認できます。
Wi-Fiの情報を確認する場合は、次のコマンドが使えます。
networksetup -getinfo Wi-Fi
IPアドレスやルーター、サブネットマスクなどを確認できます。
インターフェース情報を詳しく確認したい場合は、次のコマンドも使えます。
ifconfig
DNSサーバーの設定を確認するには、次のコマンドが使えます。
scutil --dns
現在利用しているDNSリゾルバの情報を確認できます。
DNSの名前解決を確認するには、次のコマンドを使います。
nslookup www.example.com
または、次のコマンドも利用できます。
dig www.example.com
dig はDNSの詳細な問い合わせ結果を確認できるため、DNS調査でよく使われます。
DNSサーバーとDHCPサーバーは混同されやすい仕組みです。
ここでは、よくある誤解を整理します。
DNSサーバーは、端末にIPアドレスを割り当てるサーバーではありません。
IPアドレスを端末に配るのはDHCPサーバーです。
DNSサーバーは、ドメイン名などの名前に対応する情報を返すサーバーです。
DHCPサーバーがあれば、端末はIPアドレスなどを自動で取得できます。
しかし、DNSサーバーが使えなければ、通常はドメイン名によるアクセスができません。
つまり、DHCPとDNSはそれぞれ別の役割を持っています。
DHCP:端末にネットワーク設定を配る
DNS:通信先の名前を調べる
このように、どちらか一方だけではネットワーク利用に支障が出ることがあります。
DNSとDHCPは役割としては別物ですが、必ず別々の機器で動作するとは限りません。
家庭用ルーターのように、1台の機器が次のような複数の役割を持つことがあります。
ルーター
DHCPサーバー
DNSフォワーダー
ファイアウォール
Wi-Fiアクセスポイント
一方、企業ネットワークでは、管理やセキュリティの都合でDNSサーバーとDHCPサーバーを別々に運用することもあります。
DNSサーバーとDHCPサーバーの違いは、次のようにまとめられます。
DNSサーバー:通信先の名前を調べる仕組み
DHCPサーバー:端末にネットワーク設定を配る仕組み
もう少し具体的にいうと、DNSサーバーは www.example.com のようなドメイン名に対応するIPアドレスなどを返します。
一方、DHCPサーバーはPCやスマートフォンに対して、IPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSサーバーのアドレスなどを自動で配布します。
端末がネットワークを利用する流れでは、まずDHCPによってネットワーク設定を取得し、その後DNSを使って通信先の名前を解決します。
そのため、役割を分けて考えるなら、次のようになります。
DHCP:ネットワークに参加するための準備
DNS:通信先を見つけるための名前解決
DNSとDHCPはどちらもネットワーク利用に欠かせない仕組みですが、担当している範囲は異なります。
この違いを理解しておくと、Webサイトにアクセスできない、Wi-Fiにはつながるのにインターネットが使えない、社内システム名で接続できないといったトラブルの切り分けがしやすくなります。
以上、DNSサーバーとDNCPサーバーの違いについてでした。
最後までお読みいただき、ありがとうございました。