みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

windowsのドメイン名前解決がうまくいかない

独自ドメインを使用しており、LAN内に公開サーバがいます。
LAN内からもLAN外からもドメイン名を指定してアクセスできるようにしたいですが、LAN内からはルーターのIPアドレスになってしまいます。

そこでLAN内にDNSサーバ(dnsmasq)を構築し、
dnsの優先度を以下のように設定しました。
1. LAN内のDNSサーバ
2. ルーター
なお、Linuxは固定IPを使用しているため、上記DNSをdhcpcd.confに指定
WindowsはDHCPを使用しているため、ルーター側のDHCPの設定で上記DNSを指定
しました。
Linuxからは内部にも外部にもドメインでアクセスできています。
Windowsからは内部のサーバにドメインでアクセスできません。
内部のDNSが優先にも関わらず、ルーターのipを引いてしまっています。

原因が分からないので、アドバイスをお願いします。
提示すべき情報がありましたら、可能な範囲で開示します。

投稿日時 - 2017-10-19 10:37:02

QNo.9387489

困ってます

質問者が選んだベストアンサー

なるほど。IPv6だったんですね。
はっきりできてよかったです。

ちなみに、IPv6はDHCPサーバーがなくても、
ルーターのRAからIPv6アドレスが自動設定されますが、
そのときにDNSも通知してくれる機器もあるようです。
http://www.geekpage.jp/blog/?id=2017-1-10-1
あたりが参考にならないでしょうか?

投稿日時 - 2017-10-22 12:56:13

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

> やはりKDDIのDNSからグローバルIPを引いてしまいます・・。

バッファローのルーターのDHCPではDNS通知として、dnsmasqのIP。
バッファローのルータ自身が使うDNSは、dnsmasqとgoogleのIP
ということなので、
KDDIのDNSのIPアドレスを知っているのは、
 KDDIのルーター自身か
 KDDIのルーターのDHCPクライアント機か
 DNS設定を静的に行っている場合か
に限られますよね。

例えば、
WindowsのTCP/IPのプロパティー内に代替え構成っていうのがありますが、
そっちにKDDIルーターへ無線接続するための設定やDNS設定が残っているという
ことはありませんか?
もしくは、IPv6のTCP/IPの設定のほうとか。

投稿日時 - 2017-10-22 09:57:24

お礼

Windowsの「ネットワーク接続の詳細」で確認したところ、
IPv6のDNSにKDDIのDNSである2001:268:fd07:4::1がいました!!
とりいそぎ、IPv6を無効にしたところ、LAN内でも名前解決できるようになりました!!
ありがとうございます!!
ただ、WindowsのIPv6についてはDHCPからの自動取得になっていましたが、
どちらのルータの設定を確認してもIPv6に関しては特に設定がなく、
(正確にはバッファローには設定項目自体がなく、
 KDDIのルータではIPv6のDHCPは無効になっています)
なぜDNSサーバが設定されていたのかが全く不明です。

現状IPv6は使用していないので、無効とすることで解決しました。
ありがとうございます。
参考までにIPv6がDHCPでKDDIのドメインが使われている理由について
どんな可能性があるか教示いただけるとありがたいです。

投稿日時 - 2017-10-22 10:47:25

ANo.4

多段ルータ構成なんですね。
2段目のバッファローのルーターと有線接続のみのつもりが、
一段目のKDDIのルータと無線LAN接続もされてしまって
そっちのDNSが優先されてしまっているとか?

(無線LANと有線LANの多重接続状態)


そうでないなら・・・・

> となると、ルーターのDHCPでのDNS配布設定が怪しいということですよね。

おっしゃる通りですね。
Windows側が変更されたDNS通知をまだ再取得できていないとか
もしくは、Windows側でDHCPのDNS通知よりも優先されるDNS設定がある
というのも違えますが、それらは確認済で除外できるということなので、
あと考えられるとすると、ルーターのDHCPの設定画面で設定できているつもりが、
まだ本体に反映されていないだけとか、
単なるルーターのバグで、DHCPのDNS通知を設定しても、無視されて
ルーター自身をDNS通知してしまっているとか。
一度、ルーターとWindowsとも再起動してみてはどうでしょう。
(無線LANと有線LANの多重接続状態ということでないならですが)

原因がはっきりしないのは、気になりますが、最悪、
Windows機側で、固定のDNSを指定するか
BuffaloのルーターのDHCPを止めて、Linux機をDHCPサーバーとして稼働させるとか
とすれば、解決できそうですが。

投稿日時 - 2017-10-21 16:59:39

補足

ルーターのDHCPの設定を疑ったのですが、よく考えてみると、
DHCPでIP取得しているandroidスマホではちゃんとドメインから名前解決できているのですよね。
なので、やはりwindows側の名前解決に問題があるように思います・・・。
windowsのDNSを固定にして、
$ ipconfig /release
$ ipconfig /flushdns
$ ipconfig /renew
しましたが、やはりKDDIのDNSからグローバルIPを引いてしまいます・・。

多重接続については、
KDDIルータは有線のみでバッファローのルーターのみと接続、
Windowsはバッファローのルーターと無線でのみ接続しているので、
多重接続はないです。

投稿日時 - 2017-10-22 08:16:18

お礼

回答No.5のお礼に記載した通り、IPv6を無効にすることで解消しました。
ありがとうございました。

投稿日時 - 2017-10-22 10:48:33

ANo.3

> (6) nslookupで確認してみました。
>> nslookup www.xx*.com
>サーバー: cdns01.kddi.ne.jp
>Address: 2001:268:fd07:4::1
>
>権限のない回答:
>名前: www.xx*.com
>Address: (ルータのグローバルIP)

ISPのサーバーが使われてしまっていますね。

ということは 該当のWindows機のDNS設定として、
LAN内のdnsmasqでもルーターのDNSキャッシュサーバーでもなくて
ISPのDNSになっているということになりますね。
しかし、
> TCP/IP詳細設定 > DNSタブにて確認しましたが、DNSの指定なしでした。
の状態であり、
DHCPでdnsmasqのIPをDNSとして告知して、ipconfig/renewもしているにも関わらず、
DNSがdnsmasqのIPになってくれないということは
LAN内に不正なDHCPサーバーが別に存在しているのかもしれません。

ipconfig/allで IPアドレスを取得したDCHPサーバーのIPアドレスがわかりますので
これがルーターのIPアドレスになっているかを調べてみてはどうでしょう。

投稿日時 - 2017-10-21 10:25:21

補足

アドバイスありがとうございます。
ipconfig /all で確認したところ、DHCPサーバはルータのIPアドレスになっていました。
となると、ルーターのDHCPでのDNS配布設定が怪しいということですよね。
外部とはKDDIのモデム兼ルータが繋がっており、
ルーターはbuffaloのWZR-1750DHP2を使用しています。
外部---(1)---(KDDIルータ)---(2)---WZR-1750DHP2---(3)---(Win/Linux PC)
(1)はWAN(インターネット)
(2)は192.168.0.x/24
(3)は192.168.1.x/24
のネットワークで、ルーターの設定は以下の通りです。

WAN側
IPアドレス192.168.0.2
サブネットマスク255.255.255.0
デフォルトゲートウェイ192.168.0.1
DNS(プライマリー)(dnsmasqのIP)
DNS(セカンダリー)8.8.8.8

LAN側
IPアドレス192.168.1.1
サブネットマスク255.255.255.0
DHCPサーバー有効

LAN側DHCPの設定
DNSサーバーの通知:プライマリー ⇒ (dnsmasqのIP)
WINSサーバーの通知:通知しない
ドメイン名の通知:通知しない

原因がつかめそうで、つかめない感じです・・。

投稿日時 - 2017-10-21 14:22:16

お礼

回答No.5のお礼に記載した通り、IPv6を無効にすることで解消しました。
ありがとうございました。

投稿日時 - 2017-10-22 10:48:21

ANo.2

dhcpd.confでなく、dhcpcd.conf とのこと、失礼しました。
補足された内容から見ると、仰るとおりWindowsでの名前解決に問題があるという
ことで 間違いないと思います。

ルータのDHCPサーバーの設定で、dnsmasqのIPアドレスを指定しているはずなのに
Windowsaだけが、ルーターのDNSキャッシュサーバーを使っていることが疑われるなら
まずは、Windowsのコマンドプロンプトで
ipconfig /displaydns
を行ってみてはどうでしょう。

疑うとしたら、
(1)DHCPサーバーの設定をしたが、まだDHCPクライアント側でそれを再取得できていない
→ipconfig/renewで再取得してみる。
(2)DHCPサーバーがDNSを告知しているが、Windows側のTCP/IP設定で
  DNSを指定しているので、それが優先されている
 →ネットワークのTCP/IPのプロパティー確認
(3)DHCPサーバーの設定で、DNSとして2つのIPを書いても
  Windows側でDNSの先度順がその順番通りになっているとは限らないので
  DHCPサーバー設定の告知DNSとしてはdnsmasqのIPのみにしてみる
(4)念のため、
 %SystemRoot%\system32\drivers\etc 確認してみる
(5)、NetBIOS 名前解決 の Windowsのコンピュータ名やLMHOSTSファイルで
  ホスト名の衝突があるかもしれないので
   ping www.example.com
  でIPアドレスを確認してみる

の順番で確認してみてはどうでしょう。

投稿日時 - 2017-10-20 12:32:11

補足

ありがとうございます。いただいたアドバイスに沿って実施しましたので、確認いただけますでしょうか。
まずは、Windowsのコマンドプロンプトでipconfig /displaydnsを行ってみました。
> ipconfig /flushdns
> ipconfig /displaydns
www.xx*.com
----------------------------------------
レコード名 . . . . . . . : www.xx*.com
レコードの種類 . . . . . : 1
Time To Live . . . . . .: 3563
データの長さ . . . . . . : 4
セクション . . . . . . . : 回答
A (ホスト) レコード. . . : (ルータのグローバルIP)
(1)ipアドレス更新しました
>ipconfig /release
>ipconfig /renew
>ipconfig /all
DNS サーバー. . . . . . . . . . . . .: (macアドレス)
(dnsmasqのIP)
(ルータのプライベートIP)
NetBIOS over TCP/IP . . . . . . . . .: 有効
(2)ネットワークのTCP/IPのプロパティー確認
⇒TCP/IP詳細設定 > DNSタブにて確認しましたが、DNSの指定なしでした。
(3)DHCPサーバー設定の告知DNSとしてはdnsmasqのIPのみにしてみる
→dnsmasqのみにして、ipconfig /releaes , ipconfig /renew, ipconfig /flushdns しましたが、結果は変わりませんでした。
(4)%SystemRoot%\system32\drivers\etc 確認してみる
hostsには設定なし(コメント行のみ)
lmhosts.samにも設定なし(コメント行のみ)
その他のファイルにも気になる設定はなかったのですが、気にすべきファイルがあれば教えてください。
(5)ping www.example.comでIPアドレスを確認してみる
> pint www.xx*.com
www.xx*.com [(ルータのグローバルIP)]に ping を送信しています 32 バイトのデータ:
(ルータのグローバルIP) からの応答: バイト数 =32 時間 =1ms TTL=254
(ルータのグローバルIP) からの応答: バイト数 =32 時間 =1ms TTL=254

(6) nslookupで確認してみました。
> nslookup www.xx*.com
サーバー: cdns01.kddi.ne.jp
Address: 2001:268:fd07:4::1

権限のない回答:
名前: www.xx*.com
Address: (ルータのグローバルIP)

> nslookup www.xx*.com (dnsmasqのIP)
サーバー: dns.xx*.com
Address: (dnsmasqのIP)

名前: www.xx*.com
Address: 192.168.1.3

以上の結果から、DHCPでdnsmasqのIPアドレスしかDNSとして指定していないにも関わらず、なぜかプロバイダーのDNSに問い合わせに行っていると思われます。
nslookupで明示的にdnsmasqをDNSサーバに指定すればLAN内のIPアドレスを引いてくれるため、dnsmasq側の設定には問題なく、windowsの名前解決に問題があることが分かります。
なぜ指定されたDNS以外に名前解決しに行くのかが分かりませんでした。
引き継づき、アドバイスいただければ幸いです。

投稿日時 - 2017-10-21 06:42:26

ANo.1

DNSサーバ(dnsmasq)では、該当のドメインのホスト名の
ローカルIPアドレスを記載できているのですか?
(/etc/hostsで 192.1681.3 www.example.com example.com 等)

それと、DHCPサーバーとしてルーターを使っているのに
同じLAN内のLinuxにもDHCPサーバー(dhcpd.conf)があるというのが
なんか変ですね。もしかしてdhcpd.confじゃなくて resolv.confのことですか?

投稿日時 - 2017-10-19 14:30:28

補足

DNS(dnsmasq)サーバの/etc/hostsにはホスト名を登録しています。
192.168.1.3 www.xx*.com

LAN内のルーターをDHCPサーバとして使用しています。
LAN内のLinuxにDHCPサーバは立てていないです。
dhcpd.confではなく、/etc/dhcpcd.confでdebian系LinuxのIPの設定ファイルです。
このファイルに以下のように指定しています。
domain_name_servers=(dnsmasqのIP) (ルーターのIP)
これでdnsmasqサーバ以外のLinuxクライアントからも、
dnsmasqに問い合わせてwww.xx*.comのIPを引けています。

一方でwindowsクライアントではDHCPでIPを設定しており、
ルーターのDHCP設定で
1:(dnsmasqのIP)
2:(ルーターのIP)
を指定していますが、windowsでnslookup www.xx*.comで確認すると、
名前解決ではdnsmasqに問い合わせず、ルーターに問い合わせています。

ipconfig /all で確認すると、DNSサーバーは上記1,2の順で設定されています。

LANに接続するandroidスマホも、DHCPでIP設定を取得していますが、
このスマホからはLAN内ではdnsmasqを参照して、
LAN外からは外部DNSを参照して名前解決できています。

なので、DNSおよびルーターの設定には問題なく、windowsの問題だと考えています。
windowsは名前解決の際に、DNSおよびローカルのhostsだけでなく、
WINSなど色々使用するようなので、その影響を疑っていますが、
この辺に疎いのでよく分かっていません。

投稿日時 - 2017-10-20 03:36:52

お礼

回答No.5のお礼に記載した通り、IPv6を無効にすることで解消しました。
ありがとうございました。

投稿日時 - 2017-10-22 10:48:41

あなたにオススメの質問