すべてのプロダクト
Search
ドキュメントセンター

Microservices Engine:MSE Nacos インスタンスにおける DNS 名前解決エラーの解決

最終更新日:Mar 11, 2026

アプリケーションが Microservices Engine (MSE) Nacos インスタンスに接続する際に、インスタンスのドメイン名の DNS 名前解決が失敗し、以下のいずれかのエラーが発生することがあります。

  • UnknownHostException

  • No route to host

  • Unable to resolve host

以下の手順は、DNS 名前解決パスのどのレイヤーで問題が発生しているかを特定し、修正するのに役立ちます。

DNS 名前解決の仕組み

MSE Nacos インスタンスの DNS 名前解決は、階層化されたパスをたどります。このパスを理解することで、どのレイヤーが障害の原因となっているかを切り分けることができます。

  1. アプリケーションは、Nacos インスタンスのドメイン名に対する DNS クエリを送信します。

  2. クエリは、アプリケーションノードまたはコンテナの /etc/resolv.conf で設定された DNS サーバーに到達します。

  3. Kubernetes 環境では、クエリはまず CoreDNS に送られ、CoreDNS は外部ドメインのルックアップをアップストリーム DNS サーバーに転送します。

このパスのいずれかのレイヤーで障害が発生すると、上記のエラーが発生します。

一般的な原因

原因説明
アプリケーションノードでの DNS 設定ミス/etc/resolv.conf 内の DNS サーバーアドレスが正しくないか、到達不能です。
コンテナの DNS の不一致コンテナがホストノードから DNS 設定を継承していないか、ネットワークモードによって DNS クエリが正しいサーバーに到達できない状態です。
DNS サービス障害DNS サーバー自体が停止しています。Kubernetes クラスターでは、これは通常 CoreDNS の障害を意味します。

前提条件

開始する前に、以下が準備できていることを確認してください。

  • アプリケーションノードまたはコンテナへの SSH またはシェルアクセス

  • (推奨) dig コマンドラインツールがインストールされていること。利用できない場合は、基本的なチェックに ping を使用できます

dig を使用したトラブルシューティング (推奨)

dig コマンドは、応答サーバーやクエリステータスなど、詳細な DNS クエリ情報を提供するため、根本原因分析を迅速に行うことができます。

ステップ 1:dig のインストール

dig がインストールされていない場合は、以下を実行します。

yum install -y bind-utils

ステップ 2:Nacos ドメイン名へのクエリ実行

次のコマンドを実行します。<mse-nacos-host> をご利用の MSE Nacos インスタンスのドメイン名に置き換えてください。

dig <mse-nacos-host>

出力例:

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.1.alios7.2 <<>> <mse-nacos-host>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 46791
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;<mse-nacos-host>. IN A

;; AUTHORITY SECTION:
com.                    900     IN      SOA     a.gtld-servers.net. nstld.verisign-grs.com. 1670413473 1800 900 604800 86400

;; Query time: 0 msec
;; SERVER: yyy.yyy.yyy.yyy#zz(...)
;; WHEN: Wed Dec 07 19:39:32 CST 2022
;; MSG SIZE  rcvd: 73

ステップ 3:結果の解釈

出力の 2 つのフィールドを確認します。status が NOERROR で、SERVER フィールドに有効な DNS サーバーが表示されていれば、ドメイン名は正しく解決されています。

フィールド出力内の場所確認事項
statusHEADERNOERROR = 名前解決成功。NXDOMAIN またはその他の値 = 名前解決失敗。
SERVER末尾付近クエリを処理した DNS サーバーの IP アドレス。この DNS サーバーが有効で到達可能であることを確認します。トラブルシューティングのためにこのアドレスを記録しておきます。

ステップ 4:結果に基づく問題の修正

dig でドメイン名の名前解決に失敗した場合:

  • Elastic Compute Service (ECS) デプロイメント: SERVER フィールドから DNS サーバのIPアドレスを記録し、その後 チケットを送信する して、ECS またはネットワークのテクニカルサポートに連絡してください。

  • Docker または Kubernetes デプロイメントの場合:ホストノードにアクセスし、ホストから再度 dig <mse-nacos-host> を実行します。

    • ホストでドメイン名が正常に解決された場合、コンテナの DNS 設定がホストと異なっています。ホストの /etc/resolv.conf からコンテナに DNS 設定をコピーするか、コンテナのネットワークモードをホストネットワークを使用するように切り替えてください。

    • ホストでもドメイン名の解決に失敗した場合は、チケットを送信するして、ECS またはネットワークのテクニカルサポートにお問い合わせください。

  • Container Service for Kubernetes (ACK) のデプロイメント: チケットを送信する して、CoreDNS の障害の可能性を ACK テクニカルサポートに調査してもらいます。

dig でドメイン名が正常に解決され、アプリケーションが回復した場合:

DNS サーバで一時的な障害が発生しました。チケットを送信するして、DNS サービス中断の根本原因をネットワークのテクニカルサポートに調査してもらいます。

ping を使用したトラブルシューティング (代替)

pingdig が利用できない場合に使用します。ping はドメイン名が解決されるかどうかを確認できますが、DNS サーバーの詳細は表示されません。

ステップ 1:Nacos ドメイン名への ping 実行

次のコマンドを実行します。<mse-nacos-host> をご利用の MSE Nacos インスタンスのドメイン名に置き換えてください。

ping <mse-nacos-host>

結果の解釈:

出力意味
PING <mse-nacos-host> (xxx.xx.xx.xx) 56(84) bytes of data.名前解決成功。IP アドレスが括弧内に表示されます。
unknown host名前解決失敗。

ステップ 2:DNS 設定の確認

ドメイン名の解決に失敗した場合は、アプリケーションノードの DNS 設定を表示します。

cat /etc/resolv.conf

このファイルにリストされている nameserver エントリを記録します。

ステップ 3:結果に基づく問題の修正

  • ECS デプロイメント:/etc/resolv.conf の内容を記録し、その後 チケットを送信する して、ECS またはネットワークのテクニカルサポートに問い合わせてください。

  • Docker または Kubernetes デプロイメントの場合:ホストノードにアクセスし、ホストから再度 ping <mse-nacos-host> を実行します。

    • ホストでドメイン名が正常に解決された場合、コンテナの DNS 設定がホストと異なっています。ホストの /etc/resolv.conf からコンテナに DNS 設定をコピーするか、コンテナのネットワークモードをホストネットワークを使用するように切り替えてください。

    • ホストもドメイン名を解決できない場合は、チケットを送信するして、ECS またはネットワークのテクニカルサポートにご連絡ください。

  • ACK デプロイメント: ACK テクニカルサポートにチケットを送信するして、考えられる CoreDNS の障害の調査を依頼してください。

ping でドメイン名が正常に解決され、アプリケーションが回復した場合:

DNS サーバで一時的な障害が発生しました。チケットを送信するして、ネットワークテクニカルサポートに DNS サービス中断の根本原因を調査してもらってください。