nslookupの仕組みについて

お世話様です。

うまく説明できなくて申し訳ありませんが、ターミナルを開き、nslookupをするとこうなります。


% nslookup

> www.yahoo.co.jp

Server: 2念の為、略b::3

Address: 2念の為、略b::3#53

** server can't find www.yahoo.co.jp: REFUSED


networksetupコマンドでipv6をオフにすると

% nslookup

> www.yahoo.co.jp

Server: 192.168.1.1

Address: 192.168.1.1#53


Non-authoritative answer:

www.yahoo.co.jp canonical name = edge12.g.yimg.jp.

Name: edge12.g.yimg.jp

Address: 183.**.***.***


こう返ってきます。

Wi-FiルーターがIPv6に対応してないから云々なのかもしれませんが、それなら

IPv4で返してくれればいいと思うのですが、IPv6がオンになっている場合は、上記の通り

IPv4での情報は出てきません。


こういうものなのでしょうか?

IPv6がオンの状態のままで、IPv4での名前解決が標示されるようにすることはできないのでしょうか。

* 一部編集いたしました。 Apple Inc.

MacBook Air (2020 or later)

投稿日 2022/03/24 23:37

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2022/03/27 17:41

> つまりMacは何も問題がなくて、全てWi-Fiルーター側の設定の問題ということですよね?


そうです。


> MacはなぜnslookupでIPv6とIPv4での答えを両方返さないのでしょうか?


簡単です。

macはipv6でdnsを解決するように促してますが、wifiルータがipv6の名前解決ができない(refused)からです。一応、nslookupの応答で、wifi_router_ipv6_address#53と出てますので、wifiルータ自身はipv6のdnsサーバ(キャッシュサーバ)として機能してます。しかし、上流側のipv6 dnsサーバにつながってないので、返事を返せないだけです。なので、wifiルータをipv6でもインターネットにつながるようにしてやらない限り、ipv6の名前解決はrefusedになり、ipv4で名前解決する前に終わってしまいます。

これはnslookupの仕様かもしれません。nslookupは古いので使わないように、代替としてdigを使うようにというお達しが出てます。digでも同じでしょうか?

でも、いずれにしろ、上流側でipv6につながってないなら、macとwifiルータ間をipv6で繋いでてても意味ないです。かえって今回のようなおかしなエラーに悩まされるのがオチです。nslookupの応答がおかしくなるだけなら実害はないですが、過去にはipv4のインターネットそのものに繋がらないとかの書き込みも多いです。なので、macのipv6の設定はリンクローカルのみにしておくことをお勧めしてます。こうしておけばipv6で名前解決をしようとすることも無くなります。





返信: 6
スレッドに付いたマーク ランキングトップの返信

2022/03/27 17:41 タマゴサンド への返信

> つまりMacは何も問題がなくて、全てWi-Fiルーター側の設定の問題ということですよね?


そうです。


> MacはなぜnslookupでIPv6とIPv4での答えを両方返さないのでしょうか?


簡単です。

macはipv6でdnsを解決するように促してますが、wifiルータがipv6の名前解決ができない(refused)からです。一応、nslookupの応答で、wifi_router_ipv6_address#53と出てますので、wifiルータ自身はipv6のdnsサーバ(キャッシュサーバ)として機能してます。しかし、上流側のipv6 dnsサーバにつながってないので、返事を返せないだけです。なので、wifiルータをipv6でもインターネットにつながるようにしてやらない限り、ipv6の名前解決はrefusedになり、ipv4で名前解決する前に終わってしまいます。

これはnslookupの仕様かもしれません。nslookupは古いので使わないように、代替としてdigを使うようにというお達しが出てます。digでも同じでしょうか?

でも、いずれにしろ、上流側でipv6につながってないなら、macとwifiルータ間をipv6で繋いでてても意味ないです。かえって今回のようなおかしなエラーに悩まされるのがオチです。nslookupの応答がおかしくなるだけなら実害はないですが、過去にはipv4のインターネットそのものに繋がらないとかの書き込みも多いです。なので、macのipv6の設定はリンクローカルのみにしておくことをお勧めしてます。こうしておけばipv6で名前解決をしようとすることも無くなります。





2022/03/25 01:01 はに への返信

アドバイスありがとうございます。

申し訳ありませんが、おっしゃることがよくわかりませんでした。


>wifiルータのアドレスはipv6のようですから、

どういう意味でしょうか?

Mac側の設定でipv6をオフにすると、192.168.1.1というのが返ってきてますので、

辻褄があわないのではないでしょうか。


>dnsにも応答するようにすれば良いのでは?

仮にwi-fiルータのアドレスがipv6だったとするとdnsにも応答するとはどのような設定を

すれば良いのでしょうか。


はにさんの端末はちゃんとipv4の応答は返ってくるとのことで承知しました。

当方の何らかの設定が違うのかな?と思いますが、それが何なのか今ひとつわからないです。


お手数をおかけします。



2022/03/27 17:25 はに への返信

詳細にありがとうございます。

おっしゃっていることはわかりますが、伺いたいことが違います。

うまく説明できなくてすみません。


>うちでは、別にipv6をオフにするとかしなくても、ちゃんとipv4の応答は返ってきますよ。

とおっしゃってましたが、つまりMacは何も問題がなくて、全てWi-Fiルーター側の設定の問題ということですよね?


ただ、Wi-FiルーターがIPv6のアドレスしか持っていないのであればわかりますが、IPv4のアドレスも持っています。

それは、IPv6をオフにしたらIPv4のアドレスで返してきていることからそうだろうと思っているだけですが、

であれば、MacはなぜnslookupでIPv6とIPv4での答えを両方返さないのでしょうか?

仕様としてそういうものですというのであれば納得できますが、そういうものなのでしょうか?ということが聞きたいです。


また、そういう仕様ならそれをMac側の設定で両方の答えを返すようにすることはできないでしょうか。

>ただ、ipv6で全てのサイトが使えるわけではないので、ipv4も使う必要はありますけど。

とおっしゃっていたので、ということはMacOSが内部的に使い分けて名前解決しているということですよね?

※Wi-Fiルーターの何かしらの設定を変えればいいのでしょうが、そうでない方法があるのかないのかを知りたいです。




2022/03/27 19:06 はに への返信

ありがとうございます。

Wi-Fiルーター越しでnslookupでの名前解決ができない理由は、理解できました。

digについても書いておけばよかったですね。

こちらもテスト済みで、IPv6がオンの状態ですと


;; QUESTION SECTION:

;www.yahoo.co.jp. IN A

;; Query time: 51 msec

;; SERVER:


というように返してきません。

IPv6をオフにするときっちり返してくれるようです。


コマンドで名前解決できない(IPv6での名前解決が拒否られて止まるという意味で)のにウェブなどでは問題なく

繋がっているのが少々解せませんが、nslookupやdigなどのコマンドではこういった仕様だということで納得しておきます。


しょうもないことにお付き合いいただきまして、大変感謝しております。ありがとうございました。


2022/03/25 03:19 タマゴサンド への返信

> >wifiルータのアドレスはipv6のようですから、

> どういう意味でしょうか?


nslookupの応答見たらそういうことと思うけど。

****

Server: 2念の為、略b::3

Address: 2念の為、略b::3#53

****

と書かれてますが、この念の為、略というのはipv6アドレスなのでは?

これはwifiルータのアドレスです。実際、ipv4のみにした時には、192.168.1.1というwifiルータのアドレスが返ってきてるわけですよね?

ipv6を使わないのなら、ipv6の設定はリンクローカルのみにしておくほうが良いと思うけど。ipv6アドレスを取ってるので、macはipv6を使えるものとして処理してるのでは?ipv6の設定はシステム環境設定>ネットワークのwifiで詳細をクリック。出てくるウィンドウでtcp/ipのタグをクリック。ここにipv6の設定があります。macのネットワーク設定は、デフォルトでは、ipv6は自動になってて、ipv6を使います。

でも、今のインターネットはipv6を使えるようにしておくほうが速いですし、混雑の影響も受けにくいですけど。ただ、ipv6で全てのサイトが使えるわけではないので、ipv4も使う必要はありますけど。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

nslookupの仕組みについて

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。