Linux Server Deployment & SSH Mastery · レッスン

DNSの設定とトラブルシューティング

Linuxサーバーがホスト名をIPアドレスに解決する仕組みを理解します。リゾルバーを設定し、/etc/hostsを編集し、dig、nslookup、hostを使って、ネットワークが正常でも接続を妨げるDNS問題を診断します。

レッスン 4/413 ステップ

「DNSの設定とトラブルシューティング」はCoddyKit上の無料Linux Server Deployment & SSH Masteryレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Server Deployment & SSH Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。

サーバーでDNSが重要な理由

ネットワークとファイアウォールの設定が完璧でも、名前を解決できなければ、サーバーは外部に接続できません。DNSは、example.comのような人間が扱いやすいホスト名をIPアドレスに変換します。

名前解決の仕組みと、そのデバッグ方法を知ることは、ネットワークに関する重要なスキルです。

名前解決の経路

プログラムが名前に対応するIPアドレスを必要とすると、Linuxは通常、次の情報源を順番に確認します。

  • ローカルの/etc/hostsファイル
  • 設定されたDNSサーバー(リゾルバー)

この順序は、/etc/nsswitch.confのhosts:行で定められています。

grep hosts /etc/nsswitch.conf
# hosts: files dns

/etc/hostsファイル

/etc/hostsは、DNSを経由せずにローカルで名前とIPアドレスを対応付けます。テスト、内部ホスト名の設定、特定のIPアドレスへのドメインの固定に適しています。

各行には、IPアドレスに続けて1つ以上の名前を記述します。

127.0.0.1   localhost
192.168.1.50  db.internal db

リゾルバーの設定場所

従来のファイルは/etc/resolv.confで、ネームサーバーを一覧表示します。最新のシステムでは、systemd-resolvedやNetworkManagerによって管理されていることが多いため、直接編集しても変更が保持されない場合があります。

変更する前に、実際に使用されている設定を確認してください。

cat /etc/resolv.conf
resolvectl status

DNSサーバーを設定する

systemd-resolvedを使用するシステムでは、resolv.confを編集するのではなく、インターフェースごとにDNSを設定します。Netplanベースのサーバーでは、YAML設定ファイルに定義します。

この例では、あるインターフェースにパブリックリゾルバーを設定します。

sudo resolvectl dns eth0 1.1.1.1 8.8.8.8
resolvectl dns eth0

digでレコードを検索する

digは、最も高機能なDNSクエリツールです。応答に加えて、クエリのメタデータも表示します。

+shortオプションを使うと、応答だけに絞り込めるため、スクリプトに適しています。

dig example.com
dig +short example.com

特定のレコードタイプを検索する

DNSには、多くのレコードタイプが保存されています。タイプを指定すると、メール、ネームサーバー、エイリアスなどを調べられます。

  • A — IPv4アドレス
  • AAAA — IPv6アドレス
  • MX — メールサーバー
  • NS — ネームサーバー
  • CNAME — エイリアス
dig example.com MX +short
dig example.com NS +short

nslookupとhost

nslookupとhostは、digより簡単な代替ツールです。簡単な確認や逆引き(IPアドレスから名前を調べる操作)に便利です。

逆引きでは、アドレスに対応するPTRレコードを検索します。

host example.com
nslookup example.com
dig -x 8.8.8.8 +short

特定のサーバーに問い合わせる

特定のリゾルバーに問題があるかをテストするには、@構文を使って特定のサーバーにクエリを送ります。パブリックリゾルバーでは動作するのに自分のリゾルバーでは動作しない場合は、DNS設定に問題があります。

dig @1.1.1.1 example.com +short
dig @8.8.8.8 example.com +short

トラブルシューティングの手順

名前を解決できない場合は、次の層を順番に確認してください。

  • IPアドレスを直接pingできますか?(ネットワークの問題を切り分けます)
  • dig @1.1.1.1 nameは動作しますか?(名前自体の問題を切り分けます)
  • デフォルトのリゾルバーを使ったdig nameは動作しますか?(リゾルバー設定を切り分けます)
  • 古い/etc/hostsエントリが上書きしていませんか?
ping -c1 1.1.1.1
dig @1.1.1.1 example.com +short
dig example.com +short

ベストプラクティス

名前解決を安定させるには、次の点に注意してください。

  • 冗長性を確保するため、少なくとも2つのリゾルバーを使用する
  • resolv.confが自動管理されている場合は手動編集しない
  • テストには/etc/hostsを使用するが、古いエントリは削除する
  • 出力を簡潔にするため、スクリプトではdig +shortを優先する

クイックチェック

DNSのトラブルシューティングに関する知識を確認しましょう。

まとめ

これで、サーバー上のDNSを設定およびデバッグできるようになりました。

  • /etc/nsswitch.confと/etc/hostsによる名前解決の順序
  • resolv.conf / systemd-resolvedのリゾルバー
  • 特定のレコードタイプやサーバーを含む、dig、host、nslookupによる検索
  • 段階的なトラブルシューティング手順

これで、ネットワークとファイアウォールのスキルに名前解決の層が加わりました。

無料で開始

AI チューターと学ぶ Linux Server Deployment & SSH Mastery — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
12
レッスン
48

よくある質問

「DNSの設定とトラブルシューティング」レッスンは無料ですか?

はい。「DNSの設定とトラブルシューティング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Server Deployment & SSH Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。

「DNSの設定とトラブルシューティング」で何を学びますか?

Linuxサーバーがホスト名をIPアドレスに解決する仕組みを理解します。リゾルバーを設定し、/etc/hostsを編集し、dig、nslookup、hostを使って、ネットワークが正常でも接続を妨げるDNS問題を診断します。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Linux Server Deployment & SSH Masteryを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLinux Server Deployment & SSH Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「DNSの設定とトラブルシューティング」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLinux Server Deployment & SSH Masteryレッスンでコードを書いて実行できますか?

はい。すべてのLinux Server Deployment & SSH Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ネットワーク設定の基礎
  2. ファイアウォールを理解する(UFW/firewalld)
  3. ポート管理とセキュリティ
  4. DNSの設定とトラブルシューティング
← Linux Server Deployment & SSH Masteryに戻る