Linuxを使っていると、ping 8.8.8.8 は通るのに、ping google.com は通らない……という不思議な現象に出くわすことがあります。 これは、「インターネット回線」は生きているけれど、「ドメイン名とIPアドレスを変換する機能(DNS)」が上手く動いていない状態です。
そんな時、DNSの状態をピンポイントで調査できるのが、今回紹介する nslookup コマンドです。
前回記事 ip と ping
前回は、ネットワークトラブルシューティングの基本、ip と ping について解説しました。。
【ip / ping】ネットワークの基本「ip」と「ping」でトラブルを切り分けよう【Linuxコマンド入門 Part3-10】
【Linux入門】ネットワークトラブルの原因はどこ?ipコマンドでIPアドレスと通信エラーを確認し、pingで疎通確認を行う手順を分かりやすく解説。ifconfigから推奨のipコマンドへの移行や、DNSエラーの判断方法も網羅。サーバー管理の基礎をマスターしよう。
nslookup コマンド
nslookup は “Name Server Lookup” の略です。 一言で言うと、「DNSサーバー(インターネットの電話帳)に、ドメインのIPアドレスを問い合わせるコマンド」 です。
ブラウザが裏で行っている「名前解決」という作業を、手動で行うことができます。
基本構文
使い方は非常にシンプルです。調べたいドメイン名を後ろにつけるだけです。
nslookup [調べたいドメイン名]例えば、google.com のIPアドレスを知りたい場合はこう入力します。
nslookup google.com出力の見方
コマンドを実行すると、以下のような結果が返ってきます。ここには「2つの情報」が含まれているので、混同しないように注意しましょう。
Server: 192.168.1.1 <-- ① 使った電話帳(DNSサーバー)
Address: 192.168.1.1#53
Non-authoritative answer:
Name: google.com <-- ② 調べた結果
Address: 142.250.207.14詳細を読む
- Server / Address (上段):
- あなたが「どのDNSサーバーに質問したか」を表示しています。通常は自宅のルーターや、プロバイダのDNSが表示されます。
- Name / Address (下段):
- ここが知りたかった答えです。
google.comのIPアドレスが表示されています。
- ここが知りたかった答えです。
「Non-authoritative answer(権限のない回答)」って何?
実行結果によく出るこのメッセージ。「エラーかな?」と不安になりますが、これは正常です。 「私はこのドメインの管理主(元の持ち主)じゃないけど、キャッシュ(履歴)に残ってたから教えてあげるね」という意味です。全く気にする必要はありません。
おすすめオプションと使い方
nslookup は単にIPを調べるだけでなく、トラブルの原因特定に役立つ使い方がいくつかあります。よく使う順に紹介します。
1. 使うDNSサーバーを指定して調査する(最重要)
トラブル時に一番使うのがこれです。「自分のPCがおかしいのか? それとも設定しているDNSサーバーがおかしいのか?」を切り分けるために、特定のDNSサーバーを指名して問い合わせを行います。
構文は、ドメインの後ろにDNSサーバーのIPを指定するだけです。
# GoogleのパブリックDNS(8.8.8.8)を使って問い合わせる
nslookup google.com 8.8.8.8- もし普通に打つとエラーになるのに、
8.8.8.8を指定すると成功する場合 → あなたのPCに設定されているDNSサーバー(ルーターなど)の不調が原因だと特定できます。
2. メールの設定を確認する -type=MX
Webサイト(Aレコード)だけでなく、メールサーバー(MXレコード)の設定を確認したい場合に使います。 サーバー移転時など、「メールが届かない」というトラブル調査で重宝します。
nslookup -type=MX google.com3. その他の情報を確認する -type=TXT
最近では、なりすましメール対策(SPFレコードなど)を確認するために、TXTレコードを調べることが増えています。
nslookup -type=TXT google.comコラム:DNSと「dig」の話
DNSってなに?
DNS(Domain Name System)は、インターネット上の電話帳のようなシステムです。 コンピュータは「142.250…」のような数字(IPアドレス)しか理解できません。しかし、人間は数字を覚えるのが苦手なので「google.com」のような名前を使います。 この「名前」を「数字」に変換してくれるのがDNSです。この変換作業を「名前解決」と呼びます。
nslookup と dig
実は現在、Linuxの世界では nslookup よりも dig というコマンドの方が高機能で推奨されています。 しかし、nslookup はWindowsやMacにも標準で入っており、出力もシンプルで初心者には非常に分かりやすいため、現場では今でも現役で使われています。 「まずは nslookup でサクッと確認、詳しく見たければ dig」という使い分けができるとスマートですね。
まとめ
nslookup [ドメイン]: ドメインのIPアドレスを調べる。nslookup [ドメイン] 8.8.8.8: 別のDNSサーバーを使ってテストする(トラブル切り分け用)。- 名前解決ができているか確認する時に使う。
これで、ping(回線確認)と nslookup(名前解決確認)の2つの武器が揃いました。繋がらないトラブルも、もう怖くありません!
次回は、ネットワーク上にあるファイルを取得することができる Wgetとネットワーク上のファイルを確認できるcurlについて紹介します。
【curl/Wget】Webサイトのコンテンツをダウンロードする curlとWgetの違い【Linuxコマンド入門 Part3-12】
Linuxでファイルをダウンロードする「wget」と、Webサーバーの動作を確認する「curl」。似ている2つのコマンドの違いと使い分けを解説します。ダウンロード中断時の再開オプションや、ヘッダー情報の確認方法など、現場で役立つ実用的なテクニックも紹介。
第三回”Linuxコマンド入門 Part3 ~システムの状態確認とネットワークの基本~”では、linuxでどのようにCPUやメモリの状態を確認するか、ネットワークとの接続チェックなどの基本操作を解説しています。
13 記事
Linuxコマンド入門 Part3 ~システムの状態確認とネットワークの基本~
Linuxのシステム管理コマンドや基本的なネットワーク関係コマンドを理解しよう。
ここまで読んでいただきありがとうございます。
では、次の記事で。 lumenHero