はじめに
こんにちは!中途入社のなーがです。前回まではGitについての内容でしたが、今回は先日のトラブルシューティング時に先輩から指摘して頂いたことについて書こうと思います。
やろうとしていたこと
9月から新しいプロジェクトのアサインを控えていました。そこで、IP制限のかかっている開発環境のWebシステムに踏み台経由で接続しようと思っていたのですが、DNS_PROBE_FINISHED_NXDOMAINが発生してしまいました。
原因
ローカルポートフォワーディングで指定していた開発環境のホスト名を間違えており、エラー原因の判断を誤っていました。
やったこと
このエラーから.ssh/configの設定に問題があると判断してしまったため、先輩に確認を依頼しました。
自分:「sshのconfigファイルを共有させて頂きます。間違えている設定がありましたら、教えていただけますでしょうか。」
先輩:「直接的なエラー原因はドメインが存在しないことなので、設定内容の間違い探しするのではなく、切り分けをしたほうがよいです。
- 名前解決できているか
- 解決できているならローカルポートフォワーディングが正常か
まずこのあたりから。切り分けができれば、確認する場所も特定されていきますね。私の手元では踏み台経由で開発環境にアクセスできたので、環境は正常でした。」
言われてみれば、エラー内容を確認せずに設定した.ssh/configのどこかが間違えているという漠然とした考えでトラブルシューティングを行ってしまっていました…
エラーの内容を確認していないと言われれば確かにその通りです(それ以上でも以下でもないですね…
DNS_PROBE_FINISHED_NXDOMAINを検索したところ、以下のような記述がありました。
DNSがドメイン名またはアドレスの解決に失敗すると、DNS_PROBE_FINISHED_NXDOMAINエラーが発生することがあります。
ChromeのDNS_PROBE_FINISHED_NXDOMAINの解決方法(7つの対策方法)
これより、.ssh/configのHostNameとローカルポートフォワーディングで指定していた開発環境のホスト名を確認したことでローカルポートフォワーディングで指定していた開発環境のホスト名が間違えて設定されていることに気がつきました。
問題解決後…
自分:「すみません、hostsの設定を間違えていたことが原因でした。」
先輩:「解決してよかったです。基本的にエラ―内容から原因がわかるのでエラー内容を確認することと、設定の間違い探しするのではなく、切り分けをして原因を特定していく習慣を持っていくとよいですね。切り分けをできるようになるには技術の基本原理を押さえている必要があるので、ネットワークなどインフラ知識で補強が必要なところは強化していくとよいです。」
最後に
今回はトラブルシューティング時に先輩から指摘して頂いたことについて書きました。
原因としてはエラーの内容を確認していないということにはなりますが、この考え方は他の問題に直面した場合でも応用できます。このような状況は経験が少ないために知識不足や、不慣れである場合に起こりやすいと思います。
今後はエラーの内容をしっかり確認することもですが、発生した問題を切り分けて発生原因を特定するようにしていきたいです。