Public DNS の設定を整理する

本稿は、DNS の基本から、公開 DNS (Public DNS)と家庭用ルーターを窓口にする構成の違い、プライバシーとセキュリティの考え方、Linux における確認方法、そして NetworkManager を使って接続プロファイルを切り替える実務までを、一つの流れとして整理するものである。単に 8.8.8.8 や 1.1.1.1 のような数字を覚えるだけでは、なぜその設定を選ぶのかが見えない。逆に、仕組みと責任分界を整理すると、家庭用途、個人サーバー用途、本格運用用途で何を選ぶべきかがかなり明確になる。 ここでは家庭用ルーターの代表例として 192.168.0.1 のような一般的なプライベートアドレスを用いる。特定の家庭や機器に固有の事情には立ち入らず、広く再利用できる説明をする。


1. DNS とは何か

DNS は、インターネット上の「名前」と「住所」をつなぐ仕組みである。人間は example.com のような文字列なら覚えやすいが、コンピューターは最終的に IP アドレスで通信する。そのため、通信を始める前には「この名前はどの IP アドレスなのか」を調べる必要がある。この変換作業が名前解決であり、その中心にあるのが DNS である。この仕組みはふだん意識されにくいが、実際には非常に重要である。電話帳が壊れていると相手の番号が引けないのと同じで、DNS が不安定になると、ネットワーク機器そのものは動いていても目的の相手に到達できない。したがって DNS は、通信速度の補助設定ではなく、通信成立そのものを支える前提条件と理解した方がよい。 [1] [2]

観点 要点
役割 DNS は、ドメイン名を通信に使う IP アドレスへ対応付ける仕組みであり、インターネットの入口にある名前解決基盤である。
日常的な例 Web ブラウザでサイト名を入力すると、実際には最初に DNS へ問い合わせが行われ、その結果として接続先の IP アドレスが決まる。
障害時の見え方 DNS が壊れると回線自体は生きていても名前で通信先を見つけられないため、ネットがつながらないように見える。

2. 8.8.8.8 や 1.1.1.1 とは何か

8.8.8.8 や 1.1.1.1 のような数値は、公開 DNS サーバーの住所そのものである。つまり、端末はそこへ問い合わせを送り、「このドメイン名に対応する IP アドレスを教えてほしい」と依頼する。したがって、これらの数字は単なるおまじないではなく、「名前解決をどこへ委ねるか」という運用判断を表している。ここで重要なのは、公開 DNS は世界中の利用者が直接使えるように設計されているという点である。家庭用ルーターや契約している回線事業者の DNS を使う代わりに、端末やサーバーから直接これらへ問い合わせる構成も取れる。その結果、管理のしやすさ、障害時の切り分け、プライバシーの帰属先などが変わってくる。 [3] [4] [5] [6] [7]

また、多くの公開 DNS は冗長化のために複数のアドレスを提供している。通常はプライマリとセカンダリを組み合わせて設定し、片方の DNS サーバーが利用できない場合にはもう一方へ問い合わせが切り替わる。このように複数の DNS を設定することで、名前解決の停止を防ぐ構成が取られる。

プライマリ セカンダリ 主な運営主体 位置づけ
8.8.8.8 8.8.4.4 Google Google が運用する公開 DNS サーバーであり、世界規模の Anycast インフラと大規模キャッシュにより高速かつ安定した名前解決を提供する。
1.1.1.1 1.0.0.1 Cloudflare Cloudflare が提供する公開 DNS サーバーであり、低遅延とプライバシー配慮(ログ最小化方針)でよく知られる。
9.9.9.9 149.112.112.112 Quad9 Quad9 が提供する公開 DNS サーバーであり、脅威インテリジェンスを利用した悪性ドメインのブロック機能が特徴である。

3. DNS はなぜ複数設定するのか

DNS は 1 台だけ設定するとは限らない。多くの環境では複数の DNS サーバーを設定し、先頭の候補が使えなかったときに次を使う。これは名前解決が通信全体の入口にあるためであり、ここが 1 か所だけに依存していると、その 1 台の不調でネットワーク利用全体が止まり得るからである。このとき「主 DNS」や「副 DNS」という言い方がされるが、実際の設定では特別なラベルがなくても並び順そのものが優先順位になっていることが多い。したがって、ただ数字が並んでいるだけに見えても、内部的には優先順位つきの候補一覧である。DNS の複数設定は、複雑さを増やすためではなく、止まりにくい構成を作るための基本的な考え方である。 [1] [2]

項目 説明
第 1 候補 通常は先頭の DNS サーバーが最優先で使われ、名前解決の多くはここで完結する。
第 2 候補以降 先頭の DNS が応答しない場合や利用できない場合に備えて、後続の DNS サーバーが待機する。
意味 複数設定は速度向上のためというより、名前解決の停止を避けるための冗長化である。

4. 同一事業者のペアと異なる事業者の組み合わせ

公開 DNS の説明では、しばしば 8.8.4.4 のような「もう一つの代表アドレス」が登場する。これは同じ事業者が複数の入口を用意しているケースであり、同一サービス内での冗長化と考えると理解しやすい。Google なら 8.8.8.8 と 8.8.4.4、Cloudflare なら 1.1.1.1 と 1.0.0.1 のような形である。一方で、Google、Cloudflare、Quad9 のように異なる運営主体を混ぜる構成もある。これは同一サービス内での冗長化ではなく、事業者自体の分散を重視する考え方である。どちらにも合理性はあるが、前者は構成ポリシーが揃いやすく、後者は単一事業者障害への耐性が高い。したがって、DNS を複数設定するときには、単に数を増やすのではなく、どの層を分散したいのかを意識した方がよい。 [3] [6] [8]

方式 考え方
同一事業者のペア 8.8.8.8 と 8.8.4.4 同じ事業者の DNS サービス内部で冗長化を取る方式であり、構成が揃いやすい。
異なる事業者の組み合わせ 8.8.8.8 と 1.1.1.1 と 9.9.9.9 運営主体そのものを分散し、特定の事業者に依存しすぎない構成を目指す方式である。

5. すでに複数の公開 DNS があるなら同一事業者の別アドレスは必要か

たとえば Google、Cloudflare、Quad9 のように、すでに異なる事業者の公開 DNS を複数使っているなら、さらに同じ事業者の別アドレスを足す必要性は高くない。理由は、すでに運営主体が分散されているからである。ある会社の DNS 全体に障害が起きても、別会社の DNS へ逃げられるという意味では、この方が分散の質は深い。もちろん、同一事業者のペアを揃えること自体が悪いわけではない。挙動やフィルタ方針を揃えたいなら、その方が見通しはよい。ただし、個人の Linux サーバーや家庭内の技術検証という文脈では、まず運営主体の分散ができていれば十分に合理的である。したがって、同一事業者の別アドレスを必ず追加しなければならないと考える必要はない。 [8] [9]

判断軸 考え方
事業者分散を重視する場合 すでに複数の公開 DNS 事業者を使っているなら、同一事業者の別アドレスを追加する優先度は下がる。
同一事業者で揃えたい場合 挙動やポリシーの統一感を重視するなら、同一事業者のペア構成は理解しやすい。
実務上の結論 個人利用や小規模サーバー利用では、まず事業者分散ができていれば十分なことが多い。

6. 複数の公開 DNS を使うメリット

複数の公開 DNS を使う最大の利点は、単一障害点を減らせることである。名前解決は通信全体の入口にあるため、ここが止まると Web 閲覧や更新作業、パッケージ取得など多くの操作が同時に詰まる。したがって、1 つの DNS に全面依存しないことは運用上かなり意味が大きい。さらに、公開 DNS を直接使うと、問い合わせ先が明確になる。家庭用ルーターや ISP の DNS を経由する構成では、その途中で何が行われているかを利用者が把握しづらいことがある。公開 DNS 直指定は、設定の手間は少し増えるが、経路と責任分界が見えやすくなる。技術者やサーバー管理者がこれを好むのは、単に速いからではなく、説明可能性が高いからである。 [3] [5] [7]

メリット 内容
冗長性 一つの DNS が落ちても別の DNS へ切り替えられるため、名前解決全体が止まりにくい。
透明性 問い合わせ先が明確になり、家庭用ルーターや回線事業者側の独自処理を経由しにくくなる。
切り分けやすさ 問題発生時に、端末側、DNS 側、アプリ側のどこに問題があるかを比較的整理しやすい。

7. 複数の公開 DNS を使うデメリット

異なる公開 DNS を混ぜる構成には、分散という強みがある一方で、応答内容が常に完全一致するとは限らないという注意点がある。大規模サイトや動画配信サービスは、利用者の場所や DNS 事業者の見え方に応じて最適な接続先を返すことがある。そのため、問い合わせる DNS が変わると、接続先の IP アドレスや CDN の誘導先が少し変わる場合がある。また、Quad9 のようにセキュリティを重視する DNS は、悪性ドメインの遮断を行うことがある。これは防御の観点では利点だが、別の DNS では解決できるのに、特定の DNS では解決できないという差の原因にもなる。したがって、複数の公開 DNS を混ぜるときは、冗長化だけでなく、各事業者のポリシー差も同時に持ち込むことになる。 [8] [9]

デメリット 内容
応答差 事業者ごとにキャッシュやポリシーが異なるため、返る結果が完全一致しない場合がある。
ブロック方針の差 セキュリティ重視の DNS は危険なドメインを遮断することがあり、他の DNS と挙動が変わる場合がある。
理解の複雑さ 単に一つへ聞くだけよりも、どの DNS が応答したのかを意識する必要が出てくる。

8. ルーターのアドレスを DNS にするとはどういうことか

DNS に 192.168.0.1 のようなプライベートアドレスが設定されている場合、多くは家庭用ルーター自身が DNS の窓口になっている。端末は直接インターネット上の公開 DNS へ問い合わせるのではなく、まずルーターへ問い合わせ、ルーターが必要に応じて外部 DNS へ転送する。これを DNS フォワーダーや DNS プロキシと呼ぶことがある。この方式は、家庭全体の管理を簡単にするという意味では非常に合理的である。各端末はルーターだけ見ていればよく、その先を意識しなくて済む。しかし同時に、名前解決の途中にルーター固有の処理が 1 層増えることも意味する。したがって便利さと引き換えに、中間層の挙動を利用者が見えにくくなるという側面も持つ。 [4] [15]

構成要素 意味
端末 PC やスマートフォンは、まず家庭用ルーターのプライベートアドレスへ名前解決を依頼する。
家庭用ルーター ルーターは DNS フォワーダーのように振る舞い、外部の DNS サーバーへ問い合わせを転送する。
外部 DNS 最終的な名前解決は回線事業者の DNS や公開 DNS で行われ、その結果がルーター経由で端末へ返る。

9. ルーター DNS のメリット

ルーターを DNS の窓口にする方式は、一般家庭では非常に実用的である。スマートフォン、タブレット、ノート PC、テレビ、ゲーム機など、多数の機器が混在する環境で、各端末へ公開 DNS を手動設定するのは手間が大きい。ルーターに任せておけば、DHCP を通じて一括で配布でき、管理負荷を大きく減らせる。また、家庭内だけで使う機器名や、ルーター側で一括して扱いたいネットワーク設定と相性がよいこともある。一般利用では、細かい制御よりも「難しいことを考えなくてよい」ことの価値が大きい。ルーター DNS はまさにその方向に最適化された方式であり、家庭用途では十分に合理的な選択肢である。 [15] [16]

メリット 内容
管理の容易さ 各端末へ個別に DNS を設定しなくても、DHCP により家庭全体へ一括配布できる。
一体運用 家庭内の機器名解決やルーター固有のネットワーク管理と相性がよい場合がある。
一般家庭向けの適合性 専門知識がなくても運用しやすく、ネットワークを一つの箱として扱える。

10. ルーター DNS のデメリット

ルーター DNS の弱点は、仕組みが単純であるがゆえに、内部で何が起きているかを利用者が把握しにくい点にある。端末の問題なのか、ルーター内部のキャッシュなのか、さらにその先の外部 DNS なのかを切り分ける必要が出るため、技術的な調査では一段階余計に考えることになる。また、家庭用ルーターは便利さを優先して作られているため、高機能な DNS ソフトウェアほど詳細な制御や可視化ができないことが多い。一般家庭ではそれで十分だが、個人サーバーや検証環境では、この「中間層が見えない」こと自体がストレスになる。したがって、ルーター DNS は簡単さと引き換えに、説明可能性と制御性を下げる方式でもある。 [15] [17]

デメリット 内容
中間層の増加 端末と外部 DNS の間にルーター固有の処理が入るため、原因切り分けが難しくなる。
見えにくさ 実際にどの外部 DNS が使われているか、どのようにキャッシュされているかが利用者に見えにくい。
製品依存 家庭用ルーターの実装差や独自機能の影響を受ける可能性があり、透明性は高くない。

11. ルーター DNS と公開 DNS の比較

ルーター DNS と公開 DNS 直指定の違いは、単に「どちらが速いか」という話ではない。実際には、どこまでを家庭用ルーターへ委ね、どこからを自分で明示的に管理するかという設計思想の違いである。ルーター DNS は一括管理に向いており、公開 DNS 直指定は透明性と切り分けのしやすさに向いている。このため、一般家庭ではルーター DNS が自然であり、技術者の個人サーバーや検証環境では公開 DNS 直指定が好まれやすい。どちらが絶対に正しいかではなく、用途ごとに重視する価値が違うと考えた方が無理がない。重要なのは、自分が今どの方式を使っているのかを曖昧にしないことである。 [15] [17]

観点 ルーター DNS 公開 DNS 直指定
管理のしやすさ 家庭全体へ一括配布しやすく、一般家庭では扱いやすい。 端末やサーバーごとに設定する必要があり、手間はやや増える。
透明性 途中にルーター固有の処理が入り、利用者から見えにくい。 問い合わせ先が明確で、責任分界を整理しやすい。
調査のしやすさ 端末、ルーター、外部 DNS の三層を疑う必要がある。 比較的単純な経路になり、切り分けしやすい。

12. プライバシーの観点で見る DNS

DNS は「どこへ通信しようとしたか」を含むため、どの DNS を使うかはプライバシーとも関係する。ルーター DNS を使う場合、問い合わせは家庭内ルーターを経由し、その先の回線事業者側 DNS や設定済み外部 DNS へ届く。したがって、ログがどこに集まりやすいかは、ルーターの設計と回線事業者の構成に左右される。一方、公開 DNS を直接使う場合は、問い合わせ先が Google、Cloudflare、Quad9 のような公開 DNS 事業者へ移る。ここで重要なのは、「DNS を変えれば完全に匿名になる」という理解は誤りだという点である。実際には、誰に問い合わせ履歴を見せやすい構成になるかが変わるだけである。したがって DNS のプライバシー論は、「隠せるかどうか」よりも、「誰へ委ねるか」を考えるべき問題である。 [5] [7] [8]

観点 要点
DNS の本質 DNS には「どのドメイン名を引いたか」という履歴が含まれるため、プライバシーと無関係ではない。
ルーター DNS 利用時 家庭内機器と回線事業者側の経路に問い合わせが寄りやすく、ログの帰属先はその構成に依存する。
公開 DNS 利用時 問い合わせ先が Google、Cloudflare、Quad9 などの公開 DNS 事業者へ移り、ログの集中先が変わる。

13. セキュリティの観点で見る DNS

セキュリティ面で重要なのは、DNS が「正しい名前解決を返すこと」である。もし DNS が改ざんされれば、本来とは別の接続先へ誘導される可能性がある。これは、正しい住所の代わりに偽の住所を教えられるのと同じであり、通信の前提が崩れる。ここで、公開 DNS には大きく二つの方向性がある。一つは、できるだけ中立的に応答し、勝手な介入を減らす方向である。もう一つは、マルウェアやフィッシング関連のドメインをブロックし、防御を重視する方向である。前者は再現性と予測可能性に強く、後者は事故防止に強い。したがって DNS の選定は、速度比較だけではなく、「中立性を優先するか、防御性を優先するか」というポリシーの選択でもある。 [7] [8] [13]

観点 内容
改ざん耐性 DNS が誤った応答を返すと偽サイトへ誘導される恐れがあり、正しい応答を返す仕組みが重要になる。
中立性 できるだけ手を加えずに標準的な応答を返す DNS は、予測可能性と再現性に優れる。
防御性 危険ドメインを事前に遮断する DNS は安全性向上に寄与するが、中立性との間でトレードオフが生じる。

14. 平文 DNS と暗号化 DNS

従来の DNS は長く平文で使われてきた。平文であるということは、途中経路の機器や事業者から問い合わせ内容が比較的見えやすいということである。これを改善する仕組みとして、近年は DNS over TLS や DNS over HTTPS が使われるようになっている。ただし、暗号化 DNS は「誰にも見えなくなる」仕組みではない。途中経路には見えにくくなるが、最終的な問い合わせ先である DNS 事業者には内容が届く。したがって、暗号化 DNS は万能な匿名化技術ではなく、「どこまでを途中経路に晒すか」を改善する技術である。この区別を曖昧にすると、期待と実態のずれが生じやすい。 [10] [11]

方式 意味
平文 DNS 伝統的な DNS であり、途中経路から問い合わせ内容が観測されやすい。
DNS over TLS TLS により DNS 問い合わせを暗号化し、途中経路から内容を見えにくくする。
DNS over HTTPS HTTPS 上で DNS を扱い、Web 通信に近い形で問い合わせを暗号化する。

15. ブラウザが独自に DNS を使う問題

近年のブラウザは、OS が持つ DNS 設定とは別に、独自に DNS over HTTPS を使うことがある。これにより、見かけ上は同じ DNS を使っているように見えても、実際にはブラウザだけ別の DNS 事業者へ問い合わせていることがある。結果として、コマンドラインでの名前解決とブラウザ上の名前解決が一致しないことがある。この点は、現代の DNS をやや複雑にしている。以前は /etc/resolv.conf を見ればおおよその実態がわかったが、現在はアプリケーション側が OS の設定を迂回する場合もある。したがって、DNS 設計や障害調査を行うときは、「OS の DNS 設定」と「ブラウザやアプリの実際の問い合わせ先」を分けて考える必要がある。 [11] [12]

項目 内容
現象 OS やルーターに設定した DNS とは別に、ブラウザが独自の DNS over HTTPS を使う場合がある。
影響 同じ端末内でも、コマンドラインの名前解決とブラウザの名前解決が別経路になることがある。
実務上の意味 DNS トラブル調査では OS の設定だけでは足りず、アプリ側の挙動も確認する必要がある。

16. Linux における DNS の基本構造

Linux では、アプリケーションが直接 DNS サーバーへ問い合わせるとは限らない。多くの場合は OS 側のリゾルバを経由し、その先で /etc/resolv.conf やローカルの DNS 管理機構が参照される。このため、Linux の DNS は単にどの nameserver が書かれているかだけでなく、その前後に何が存在しているかまで含めて見ないと実態がつかみにくい。ここを理解しておくと、「設定ファイルにはこう書かれているのに、実際の動作が違う」という現象が起きても驚かなくなる。Linux の DNS は一枚岩ではなく、ネットワークマネージャー、ローカルキャッシュ、スタブリゾルバなどが重なって構成されることが多い。したがって、確認手順も 1 つでは足りない。 [13] [14] [15]

役割
アプリケーション ブラウザ、パッケージ管理ツール、各種クライアントが名前解決を要求する。
OS 側のリゾルバ glibc などの仕組みが設定を参照し、どの DNS へ問い合わせるかを決める。
実際の DNS 管理層 systemd-resolved や NetworkManager や手動設定が絡み、最終的な名前解決経路が定まる。

17. systemd-resolved、unbound、BIND の役割

Linux の DNS を深く理解するには、systemd-resolved、unbound、BIND の役割を混同しないことが重要である。systemd-resolved は主にクライアント側の DNS 管理と簡易キャッシュを担う。unbound は本格的な再帰リゾルバであり、外部公開 DNS へ丸投げせず、自分で DNS の階層をたどる構成も取れる。BIND は特に権威 DNS サーバーとして歴史が長く、自分のドメインの正式な回答を公開する側で強い。つまり、三者は似て見えて役割が違う。一般的な Linux デスクトップやノート PC では systemd-resolved が自然であり、独立性を高めたいサーバーでは unbound が有力であり、自前ドメインの外部公開では BIND が候補になる。DNS は一つの技術名に見えても、実際には複数の責務が分かれていると考えた方が理解しやすい。 [13] [18] [19] [20]

仕組み 主な役割 向いている用途
systemd-resolved ローカルの名前解決管理、キャッシュ、上流 DNS の一元管理を行う。 一般的な Linux クライアントや、OS 統合的に管理したい環境に向く。
unbound 本格的な再帰リゾルバとして動作し、自前のキャッシュと DNSSEC 検証を担える。 独立性と説明可能性を重視するサーバー運用に向く。
BIND 権威 DNS サーバーとしてゾーン情報を公開する用途で長く使われてきた。 自分のドメインを外部へ正式に公開する運用に向く。

18. 現在の DNS 設定を正確に確認する方法

現在の DNS 設定を正確に確認したいなら、1 つのコマンドだけで判断しない方がよい。Linux では /etc/resolv.conf の見た目と実際の有効経路が一致しないことがあるためである。まず確認すべきなのは、/etc/resolv.conf の実体が何を指しているかである。単なるテキストファイルなのか、systemd-resolved のスタブを指すシンボリックリンクなのかで、読み方が変わる。

1
2
readlink -f /etc/resolv.conf
/etc/resolv.conf

次に、systemd-resolved が動いている環境では resolvectl status を見る。これにより、現在どのリンクにどの DNS サーバーが紐づいているか、どの検索ドメインが使われているかを、実際の運用状態として確認できる。これは単に設定ファイルを見るだけよりも、現在の有効状態を確認するという意味で正確である [4] [5]

1
resolvectl status

さらに、NetworkManager を使っている環境では、device と connection の両方を見る必要がある。device は現在の実デバイス状態を示し、connection はプロファイルとして保存されている設定を示す。したがって、現在つながっているデバイスがどの接続プロファイルを使っているか、そしてそのプロファイルに DNS がどう定義されているかを両面から確認するのが正確である [1] [2]

1
2
nmcli device show
nmcli connection show

特定のインターフェースだけ見たい場合は、次のように絞り込むとよい。ここではインターフェース名の例として enp0s31f6 を用いるが、実際には各環境の名称へ置き換える。

1
2
nmcli -f GENERAL.CONNECTION,IP4.DNS,IP6.DNS,IP4.DOMAIN,IP6.DOMAIN device show enp0s31f6
nmcli connection show "Wired connection 1"

確認の要点は、/etc/resolv.conf、resolvectl、nmcli の三つを突き合わせることである。どれか一つだけを見ると、保存設定だけを見て現在状態を見落としたり、逆に現在状態だけを見て永続設定の位置を見失ったりする。正確な確認とは、複数レイヤーを照合して矛盾がないかを見る作業である。 [13] [14] [15] [16]

確認対象 代表的なコマンド 見る意味
/etc/resolv.conf の実体 readlink -f /etc/resolv.conf と cat /etc/resolv.conf 設定ファイルが実ファイルか、systemd-resolved のスタブへ向いたシンボリックリンクかを確認する。
現在のリゾルバ状態 resolvectl status systemd-resolved が見ている現在の DNS サーバー、検索ドメイン、リンクごとの状態を把握できる。
NetworkManager の観点 nmcli device show と nmcli connection show どの接続プロファイルが有効で、そのプロファイルにどの DNS 設定が入っているかを確認できる。

19. NetworkManager の GENERAL.CONNECTION をどう理解し、どう変更するか

nmcli device show の GENERAL.CONNECTION は、今そのデバイスでどの接続プロファイルが有効になっているかを示す状態表示である。したがって、これを「設定項目」と見て直接書き換えようとすると混乱しやすい。実際には、GENERAL.CONNECTION という欄そのものを直接編集するのではなく、別の接続プロファイルをアクティブにすることで結果として変わると理解するべきである [1] [2]

まず、現在そのデバイスがどのプロファイルを使っているかは次のように確認できる。

1
nmcli -f GENERAL.CONNECTION device show enp0s31f6

次に、利用可能な接続プロファイル一覧を確認する。

1
nmcli connection show

別の接続プロファイルへ切り替えたい場合は、そのプロファイルを対象デバイスへ対して有効化する。これにより、GENERAL.CONNECTION の表示は結果として新しいプロファイル名へ変わる。

1
sudo nmcli connection up "Wired connection 2" ifname enp0s31f6

もし特定のインターフェースへ明示的に結び付けたい場合は、接続プロファイル側の connection.interface-name を設定する。これは「このプロファイルはこのデバイスで使う」という永続設定であり、GENERAL.CONNECTION のような状態表示とは層が違う。

1
2
sudo nmcli connection modify "Wired connection 2" connection.interface-name enp0s31f6
sudo nmcli connection up "Wired connection 2"

DNS 自体をその接続プロファイルへ設定したい場合は、ipv4.dns や ipv6.dns を編集する。たとえば IPv4 の DNS を明示し、自動取得 DNS を無視したいなら、次のような操作になる。

1
2
3
sudo nmcli connection modify "Wired connection 2" ipv4.ignore-auto-dns yes
sudo nmcli connection modify "Wired connection 2" ipv4.dns "8.8.8.8 1.1.1.1 9.9.9.9"
sudo nmcli connection up "Wired connection 2"

要するに、GENERAL.CONNECTION を変える方法とは、その文字列を直接編集することではない。NetworkManager が管理する接続プロファイルを理解し、どのプロファイルを編集し、どのプロファイルを有効化するかを操作することで、結果として GENERAL.CONNECTION の表示が変わる。ここを取り違えないことが、nmcli を使う上での重要な実務ポイントである。 [15] [16]

項目 意味 実務上の扱い
GENERAL.CONNECTION 現在そのデバイスに紐づいているアクティブな接続プロファイル名を示す状態表示である。 これは状態欄であり、通常はこのフィールド自体を書き換えるのではなく、別のプロファイルを有効化して結果として変化させる。
接続プロファイル NetworkManager が保存しているネットワーク設定の単位であり、DNS や IP 設定などを含む。 nmcli connection modify で中身を編集し、nmcli connection up でデバイスへ適用する。
切り替え方法 有効なデバイスへ別の接続プロファイルを起動すると、GENERAL.CONNECTION の表示がそのプロファイル名へ変わる。 つまり見た目の変更ではなく、アクティブ化の結果として状態欄が変わると理解するのが正しい。

20. Linux サーバーで DNS 設計をどう考えるか

Linux サーバーで DNS をどう設計するかは、最終的には「どこまで自分で責任を持つか」という問題である。最も簡単なのはルーターや公開 DNS に任せる方式であり、最も独立性が高いのは自前の再帰リゾルバを持つ方式である。その中間に、公開 DNS を明示しつつ systemd-resolved や NetworkManager で整理する構成がある。個人サーバーや検証環境では、まず公開 DNS を明示的に設定し、現在の状態を resolvectl と nmcli で確認できるようにしておくのがわかりやすい。これだけでも、ルーター任せの構成より責任分界はかなり明確になる。さらに独立性を高めたくなった段階で unbound のような仕組みを導入すればよい。DNS 設計とは、最初から最強構成を選ぶことではなく、必要な透明性と管理負荷のバランスを取ることである。 [13] [15] [18]

運用段階 典型構成 向いている場面
一般家庭 ルーターを DNS の窓口にする。 管理の簡単さを優先し、多数の端末を一括で扱いたい場合に向く。
個人サーバー 公開 DNS を明示設定する。 問い合わせ先を明確にし、トラブル切り分けをしやすくしたい場合に向く。
本格運用 unbound のようなローカル再帰リゾルバを使う。 独立性、説明可能性、DNSSEC 検証を重視する場合に向く。

21. 結論

DNS の話は、表面上は「どの数字を設定するか」という単純な話に見える。しかし実際には、どこへ名前解決を委ねるか、誰に問い合わせ履歴を寄せるか、どの程度の中立性と防御性を求めるか、そして障害時にどこまで自分で説明可能にしたいかという設計問題が含まれている。したがって DNS 設定は、速度比較の小手先ではなく、運用哲学に属する設定である。一般家庭では、ルーター DNS で十分な場合が多い。個人サーバーでは、公開 DNS を明示し、実際の状態をコマンドで追えるようにしておくと運用が整理しやすい。さらに独立性を求めるなら、unbound のような仕組みを導入する道がある。そして NetworkManager を使う環境では、GENERAL.CONNECTION を直接変えるのではなく、接続プロファイルの編集とアクティブ化によって結果として変わるものだと理解することが、混乱を避ける最短経路である。 [13] [15] [18]

結論項目 整理
DNS の本質 DNS は単なる補助設定ではなく、通信の入口にある名前解決基盤であり、障害時の影響範囲が大きい。
構成選択 ルーター DNS は簡単さに優れ、公開 DNS 直指定は透明性に優れ、unbound のような構成は独立性に優れる。
実務ポイント 現在状態の確認では /etc/resolv.conf、resolvectl、nmcli を照合し、GENERAL.CONNECTION は直接編集する欄ではなく結果表示だと理解することが重要である。

参考文献

  1. RFC 1034 – Domain Names – Concepts and Facilities.. https://datatracker.ietf.org/doc/html/rfc1034
  2. RFC 1035 – Domain Names – Implementation and Specification.. https://datatracker.ietf.org/doc/html/rfc1035
  3. Google Public DNS.. https://developers.google.com/speed/public-dns
  4. Get Started | Public DNS.. https://developers.google.com/speed/public-dns/docs/using
  5. Cloudflare 1.1.1.1 (DNS Resolver).. https://developers.cloudflare.com/1.1.1.1/
  6. Cloudflare 1.1.1.1 IP addresses.. https://developers.cloudflare.com/1.1.1.1/ip-addresses/
  7. Quad9 Documentation: Overview.. https://quad9dns.github.io/documentation/
  8. Quad9 Service Addresses & Features.. https://quad9.net/service/service-addresses-and-features/
  9. Quad9 FAQ.. https://quad9.net/support/faq/
  10. RFC 7858 – Specification for DNS over TLS.. https://datatracker.ietf.org/doc/rfc7858/
  11. RFC 8484 – DNS Queries over HTTPS (DoH).. https://datatracker.ietf.org/doc/html/rfc8484
  12. Firefox DNS over HTTPS – Mozilla Support.. https://support.mozilla.org/en-US/kb/firefox-dns-over-https
  13. systemd-resolved.service.. https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html
  14. resolvectl(1).. https://man7.org/linux/man-pages/man1/resolvectl.1.html
  15. NetworkManager Reference Manual – nmcli.. https://networkmanager.pages.freedesktop.org/NetworkManager/NetworkManager/nmcli.html
  16. NetworkManager Reference Manual – nm-settings-nmcli.. https://networkmanager.pages.freedesktop.org/NetworkManager/NetworkManager/nm-settings-nmcli.html
  17. NetworkManager Reference Manual.. https://networkmanager.pages.freedesktop.org/NetworkManager/NetworkManager/index.html
  18. Unbound documentation.. https://unbound.docs.nlnetlabs.nl/
  19. BIND 9.. https://www.isc.org/bind/
  20. BIND 9 documentation.. https://bind9.readthedocs.io/en/latest/