はじめに
この実験では、Linux システムに DNS サーバーが設定されているかどうかを確認する方法を学びます。設定された DNS サーバーを特定するために、主要な設定ファイル /etc/resolv.conf を調べます。
その後、nslookup コマンドを使用して DNS 解決をテストし、システムがドメイン名を IP アドレスに正常に変換できることを確認します。最後に、systemd-resolved の設定ファイル /etc/systemd/resolved.conf を調べて、ローカルの DNS リゾルバーサービスがどのように設定されているかを理解します。
cat /etc/resolv.conf で DNS を確認する
このステップでは、Linux システムがインターネット上のウェブサイトやサービスを見つける方法を見ていきます。このプロセスは DNS 解決と呼ばれ、人間が読めるドメイン名(例:google.com)をコンピューターが読める IP アドレス(例:172.217.160.142)に変換するサービスによって処理されます。
多くの Linux システムでの DNS 解決の主要な設定ファイルは /etc/resolv.conf です。このファイルは、システムが使用する DNS サーバーを指定します。
cat コマンドを使用してこのファイルの内容を表示しましょう。cat コマンドは、ファイルの内容を表示するためのシンプルで強力なツールです。
ターミナルが開いていない場合は開きます。デスクトップの左側にある Xfce Terminal アイコンを見つけることができます。
次に、以下のコマンドを入力して Enter キーを押します。
cat /etc/resolv.conf
以下のような出力が表示されるはずです。
## This is /run/systemd/resolve/stub-resolv.conf.
## Handled by systemd-resolved(8).
## DNS servers configured in /etc/systemd/resolved.conf.
nameserver 127.0.0.53
options edns0 trust-ad
出力を分解してみましょう。
#で始まる行はコメントで、システムによって無視されます。nameserver 127.0.0.53:この行が最も重要です。システムが使用する DNS サーバーの IP アドレスを指定しています。この場合、127.0.0.53はローカルの DNS リゾルバーサービス(多くの場合systemd-resolved)を指す特別な IP アドレスで、後で見ていきます。このローカルリゾルバーは、DNS 要求を外部の DNS サーバーに転送します。options edns0 trust-ad:これらは DNS クエリに関連するオプションです。edns0は DNS の拡張メカニズムで、trust-adは DNSSEC(DNS セキュリティ拡張)に関連しています。現時点ではこれらのオプションを心配する必要はありません。
/etc/resolv.conf を理解することは、DNS に関連するネットワーク接続問題をトラブルシューティングする最初のステップです。このファイルが欠落しているか、誤った情報が含まれている場合、システムがドメイン名を解決できない可能性があります。
Continue をクリックして次のステップに進みます。
nslookup で DNS 解決をテストする
前のステップでは、システムが DNS サーバーをどこで見つけるかを指定する /etc/resolv.conf ファイルを見ました。では、nslookup コマンドを使用して、システムがドメイン名を解決できるかどうかを実際にテストしましょう。
nslookup は、ドメイン名システム (DNS) を照会して、ドメイン名と IP アドレスのマッピングやその他の特定の DNS レコードを取得するためのコマンドラインユーティリティです。ネットワークのトラブルシューティングにおける基本的なツールです。
nslookup を使用して example.com の IP アドレスを調べましょう。ターミナルに以下のコマンドを入力して Enter キーを押します。
nslookup example.com
以下のような出力が表示されるはずです。
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: example.com
Address: 93.184.216.34
この出力を分解してみましょう。
Server: 127.0.0.53:これはnslookupがクエリに使用した DNS サーバーの IP アドレスを示しています。前のステップで見たように、これは/etc/resolv.confで指定されたローカルリゾルバーです。Address: 127.0.0.53#53:これは DNS サーバーの IP アドレスとポート番号です。DNS は通常ポート 53 を使用します。Non-authoritative answer::これは、回答がキャッシュ DNS サーバーから来たことを示しており、example.comの権威サーバーからではありません。Name: example.com:これはクエリしたドメイン名です。Address: 93.184.216.34:これは DNS サーバーがexample.comに対して返した IP アドレスです。これは、あなたがexample.comにアクセスしようとしたときにコンピューターが接続するアドレスです。
nslookup が IP アドレスを返す場合、システムがドメイン名を正常に解決したことを意味します。失敗した場合、DNS 解決に問題があることを示すエラーメッセージが表示されることがあります。
google.com や labex.io など、他のドメイン名の解決も試してみることができます。
nslookup google.com
出力には google.com に関連付けられた IP アドレスが表示されます。1 つのドメイン名に複数の IP アドレスが関連付けられていることがあることに注意してください。
このコマンドは、DNS 設定が正しく機能していることを確認し、特定のドメイン名の IP アドレスを見つけるのに非常に役立ちます。
Continue をクリックして次のステップに進みます。
cat /etc/systemd/resolved.conf で解決済みの設定を確認する
前のステップで、/etc/resolv.conf はしばしば systemd-resolved が扱うローカルアドレス (127.0.0.53) を指していることを見ました。このサービスは systemd システムおよびサービスマネージャーの一部で、ローカルアプリケーションにネットワーク名解決を提供します。
systemd-resolved の設定は通常、/etc/systemd/resolved.conf ファイルに記載されています。このファイルを確認して、ローカルリゾルバーがどのように設定されているかを見てみましょう。
再び cat コマンドを使用して、/etc/systemd/resolved.conf の内容を表示します。ターミナルに以下のコマンドを入力して Enter キーを押します。
cat /etc/systemd/resolved.conf
以下のような出力が表示されるはずです。
## This file is part of systemd.
#
## systemd is free software; you can redistribute it and/or modify it
## under the terms of the GNU Lesser General Public License as published by
## the Free Software Foundation; either version 2.1 of the License, or
## (at your option) any later version.
#
## Entries in this file show the compile time defaults. Local configuration
## should be placed in a file located in /etc/systemd/resolved.conf.d/.
## See resolved.conf(5) for details.
[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#DNSSEC=no
#DNSOverTLS=no
#MulticastDNS=yes
#LLMNR=yes
#Cache=yes
#DNSStubListener=yes
#ReadEtcHosts=yes
このファイルの重要な部分を見てみましょう。
- ファイルは、その目的とライセンスについて説明するコメントで始まっています。
[Resolve]:これは名前解決の主要な設定セクションの始まりを示しています。DNS=:このコメントアウトされた行は、通常、systemd-resolvedが使用する上流 DNS サーバーの IP アドレスを列挙する場所です。コメントアウトされているため、systemd-resolvedはおそらくネットワーク設定(例:DHCP)などの別のソースから DNS サーバー情報を取得しています。FallbackDNS=:このコメントアウトされた行では、DNS=にリストされた主要な DNS サーバーに到達できない場合に使用するフォールバック DNS サーバーを指定できます。- その他のコメントアウトされたオプションは、
systemd-resolvedの動作の様々な側面を制御します。例えば、DNSSEC 検証、DNS over TLS、キャッシュ、マルチキャスト DNS (mDNS) およびリンクローカルマルチキャスト名解決 (LLMNR) のサポートなどです。
この環境では、実際に使用されている DNS サーバーは、おそらく基盤となるネットワークインフラストラクチャ(Docker コンテナ環境)によって提供されています。systemd-resolved はローカルキャッシュおよびフォワーダーとして機能します。
/etc/systemd/resolved.conf を理解することは、systemd-resolved を使用するシステムでの高度な DNS 設定とトラブルシューティングに重要です。
これで、この Linux システムの DNS 解決に関連する主要な設定ファイルを正常に確認しました。
Continue をクリックしてこの実験を完了します。
まとめ
この実験では、Linux システムでの DNS サーバー設定の確認方法を学びました。まず、cat コマンドを使用して /etc/resolv.conf ファイルを調べました。このファイルは、システムが使用する DNS サーバーを指定する主要な設定ファイルです。# で始まる行はコメントであり、nameserver 行は DNS サーバーの IP アドレスを示しており、多くの場合 127.0.0.53 のようなローカルリゾルバーで、これは systemd-resolved によって扱われることを理解しました。
次に、nslookup コマンドを使用して DNS 解決をテストし、設定された DNS サーバーがドメイン名を IP アドレスに正常に変換できるかどうかを確認しました。最後に、cat で /etc/systemd/resolved.conf ファイルを表示することで、systemd-resolved サービスの設定を確認しました。このファイルは、ローカル DNS リゾルバーがどのように設定され、外部 DNS サーバーにリクエストを転送するかについての詳細を提供します。これらの手順により、Linux での DNS の設定とテスト方法について基本的な理解が得られます。



