resolved.confとは?LinuxのDNS設定をマスターしよう

Linux

「Linuxサーバーでネットワークが不安定…」
「DNSの設定を変更したいけど、どこをいじればいいの?」
「resolved.confって何?どうやって使うの?」

Linuxを使っていると、こんな疑問にぶつかることがあります。

実は、現代のLinuxシステムでは「resolved.conf」というファイルがDNS設定の重要な鍵を握っているんです。この記事では、resolved.confの基本から実践的な使い方まで、初心者の方にも分かりやすく解説します。

読み終わる頃には、あなたもDNS設定をスムーズに扱えるようになっていますよ!


スポンサーリンク

resolved.confとは?DNS設定を管理する設定ファイル

resolved.confは、LinuxシステムのDNS設定を管理するための設定ファイルです。

DNSって何?

まずDNSについて簡単に説明しましょう。DNS(Domain Name System)は、「www.google.com」のような人間が読みやすいドメイン名を、コンピュータが理解できるIPアドレス(例:142.250.207.46)に変換するシステムのこと。

インターネット上の「電話帳」のようなものだと思ってください。

systemd-resolvedとの関係

resolved.confは、systemd-resolvedというサービスの設定ファイルです。

systemd-resolvedは、現代的なLinuxディストリビューション(Ubuntu 18.04以降、Fedora、Arch Linuxなど)で採用されているDNSリゾルバ(DNSサーバーに問い合わせるプログラム)です。


resolved.confのファイルの場所

resolved.confは以下の場所に配置されています。

メインの設定ファイル

/etc/systemd/resolved.conf

このファイルがメインの設定ファイルです。システム全体のDNS設定を管理します。

追加の設定ファイル(ドロップインファイル)

/etc/systemd/resolved.conf.d/*.conf

このディレクトリに追加の設定ファイルを置くこともできます。複数の設定を管理しやすくなるため、サーバー管理では推奨される方法です。


resolved.confで設定できる主な項目

resolved.confでは、以下のような項目を設定できます。

1. DNS(DNSサーバーの指定)

使用するDNSサーバーを指定します。

設定例:

[Resolve]
DNS=8.8.8.8 8.8.4.4

この例では、GoogleのパブリックDNS(8.8.8.8と8.8.4.4)を使うように設定しています。

2. FallbackDNS(予備のDNSサーバー)

メインのDNSサーバーが応答しないときに使う予備のDNSサーバーです。

設定例:

[Resolve]
FallbackDNS=1.1.1.1 1.0.0.1

CloudflareのDNS(1.1.1.1)を予備として設定しています。

3. Domains(検索ドメイン)

短縮名でホストを検索するときに使うドメインを指定します。

実例:
「server1」とだけ入力したときに、自動的に「server1.example.com」として検索させることができます。

設定例:

[Resolve]
Domains=example.com local

4. DNSSEC(DNSセキュリティ拡張)

DNSSECは、DNS応答の正当性を検証するセキュリティ機能です。

設定例:

[Resolve]
DNSSEC=yes
  • yes:DNSSECを有効化
  • no:DNSSECを無効化
  • allow-downgrade:可能な場合のみ有効化(デフォルト)

5. DNSOverTLS(DNS over TLS)

DNS通信を暗号化して、プライバシーを保護します。

設定例:

[Resolve]
DNSOverTLS=yes
  • yes:DNS over TLSを使用
  • no:通常のDNSを使用
  • opportunistic:可能な場合のみ暗号化

6. Cache(キャッシュ設定)

DNS応答をキャッシュするかどうかを設定します。

設定例:

[Resolve]
Cache=yes

キャッシュを有効にすると、同じドメインへの問い合わせが速くなります。

7. DNSStubListener(スタブリスナー)

ローカルのDNSスタブリスナーを有効にするかどうかを設定します。

設定例:

[Resolve]
DNSStubListener=yes

有効にすると、127.0.0.53でローカルDNSリゾルバが動作します。


resolved.confの実践的な設定例

実際の使用場面を想定した設定例を紹介します。

例1:GoogleとCloudflareのDNSを使う基本設定

[Resolve]
DNS=8.8.8.8 1.1.1.1
FallbackDNS=8.8.4.4 1.0.0.1
DNSSEC=yes
Cache=yes

この設定では:

  • メインDNSとしてGoogleとCloudflareを使用
  • 予備DNSも設定
  • DNSSECとキャッシュを有効化

例2:プライバシー重視の設定

[Resolve]
DNS=1.1.1.1 1.0.0.1
DNSOverTLS=yes
DNSSEC=yes
Cache=yes

DNS over TLSを有効にして、DNS通信を暗号化しています。プライバシーを重視する場合におすすめです。

例3:企業ネットワークでの設定

[Resolve]
DNS=192.168.1.10 192.168.1.11
Domains=company.local
FallbackDNS=8.8.8.8
DNSSEC=no

社内DNSサーバーを使い、社内ドメインを検索できるようにしています。


resolved.confの編集方法と設定の反映

ステップ1:設定ファイルを編集

管理者権限でファイルを開きます。

sudo nano /etc/systemd/resolved.conf

または、viやvimを使っても構いません。

sudo vi /etc/systemd/resolved.conf

ステップ2:必要な設定を記述

コメント行(#で始まる行)を外して、値を設定します。

編集前:

#DNS=
#FallbackDNS=

編集後:

DNS=8.8.8.8 1.1.1.1
FallbackDNS=8.8.4.4 1.0.0.1

ステップ3:ファイルを保存

nanoの場合はCtrl + Oで保存、Ctrl + Xで終了します。

ステップ4:設定を反映

systemd-resolvedサービスを再起動して設定を反映させます。

sudo systemctl restart systemd-resolved

ステップ5:設定を確認

設定が正しく反映されたか確認しましょう。

resolvectl status

このコマンドで、現在のDNS設定や統計情報を確認できます。


トラブルシューティング:よくある問題と解決方法

問題1:設定が反映されない

原因:
NetworkManagerなど他のネットワーク管理ツールが干渉している可能性があります。

解決方法:
systemd-resolvedが優先されるように設定します。

sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
sudo systemctl restart systemd-resolved

問題2:名前解決ができない

原因:
DNSサーバーが応答していない、またはファイアウォールがブロックしている可能性があります。

確認方法:

resolvectl query google.com

このコマンドでDNS解決をテストできます。

解決方法:

  • DNSサーバーのアドレスを確認
  • ファイアウォール設定を確認(53番ポートが開いているか)
  • 別のDNSサーバーを試す

問題3:DNSSEC検証エラー

原因:
一部のネットワーク環境やDNSサーバーではDNSSECが正しく動作しないことがあります。

解決方法:
DNSSECを無効化してみます。

[Resolve]
DNSSEC=no

resolved.confと/etc/resolv.confの違い

「/etc/resolv.confというファイルも見たことがあるけど、違いは何?」という疑問を持つ方も多いでしょう。

/etc/resolv.conf

従来から使われているDNS設定ファイルです。多くのプログラムがこのファイルを参照してDNS設定を読み取ります。

systemd-resolvedを使っている場合

systemd-resolvedが有効な環境では、/etc/resolv.confは実際にはシンボリックリンク(ショートカットのようなもの)になっています。

ls -l /etc/resolv.conf

このコマンドで確認すると、以下のようなリンクになっているはずです。

/etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf

つまり、resolved.confで設定した内容が、最終的に/etc/resolv.confとして反映される仕組みになっているんです。


パブリックDNSサーバーの選択肢

resolved.confで指定できる主なパブリックDNSサーバーを紹介します。

Google Public DNS

  • プライマリ: 8.8.8.8
  • セカンダリ: 8.8.4.4
  • 特徴: 高速で信頼性が高い、最も人気

Cloudflare DNS

  • プライマリ: 1.1.1.1
  • セカンダリ: 1.0.0.1
  • 特徴: プライバシー重視、DNS over TLS対応

Quad9

  • プライマリ: 9.9.9.9
  • セカンダリ: 149.112.112.112
  • 特徴: セキュリティ重視、マルウェアサイトをブロック

OpenDNS

  • プライマリ: 208.67.222.222
  • セカンダリ: 208.67.220.220
  • 特徴: フィルタリング機能あり

resolved.confを使うべきシステム

推奨される環境

  • Ubuntu 18.04以降
  • Fedora
  • Arch Linux
  • Debian 10以降
  • openSUSE

これらのディストリビューションでは、systemd-resolvedがデフォルトで使われています。

使わない方が良い環境

  • 古いディストリビューション(Ubuntu 16.04以前など)
  • systemdを使わないシステム(Alpine Linuxなど)

これらの環境では、従来の/etc/resolv.confや、NetworkManagerを使った設定が適しています。


まとめ:resolved.confでDNS設定をマスターしよう

resolved.confは、現代的なLinuxシステムにおけるDNS設定の中心的なファイルです。

resolved.confのポイント:

  • systemd-resolvedの設定ファイル
  • /etc/systemd/resolved.confに配置
  • DNS、DNSSEC、DNS over TLSなどを設定可能
  • Ubuntu 18.04以降、Fedoraなどで標準採用

主な設定項目:

  • DNS:使用するDNSサーバー
  • FallbackDNS:予備のDNSサーバー
  • Domains:検索ドメイン
  • DNSSEC:セキュリティ拡張
  • DNSOverTLS:暗号化通信

設定の反映方法:

  1. /etc/systemd/resolved.confを編集
  2. sudo systemctl restart systemd-resolved
  3. resolvectl statusで確認

おすすめパブリックDNS:

  • Google:8.8.8.8
  • Cloudflare:1.1.1.1
  • Quad9:9.9.9.9

DNS設定は、インターネット接続の安定性やセキュリティに直結する重要な要素です。resolved.confを理解して、自分の環境に最適な設定を見つけてくださいね。

快適で安全なLinuxライフを!

コメント

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