ローカルにあるサーバの名前解決ができたりできなかったりした話 代替DNSサーバについて

うちでは Synology DS218 が稼働していますが、それへのアクセスに問題があり、それを解決した話です。

なんということはないですが、ちょっとハマりました。

 

事象

ドメイン名 (www.hircos.work/) でアクセスする場合、サーバが見れたり見れなかったりする。

見れていたときも、しばらく間をあけたりすると見れなくなる。

「あれ?見れないずぇ」と思い、10分くらい後にまたアクセスすると、見れたりする。 それでも見れなかったりもする。

 

解決法

PCの設定、「代替DNSサーバー」を消したら直りました

代替DNSサーバー に入ってるIPアドレスを消す

 

解説

優先・代替DNSサーバの設定により、ローカルのサーバはDS218のDNSに、外部はルータに名前解決の依頼を飛ばしていると思っていた。

真ん中のはパソコンね

外部ネットワークは普通に見れていたので、もしやDNS機能がスリープしてて起きるのに時間がかかるから、見れない時間が発生する?

だから時間が経つと見れるようになるし、間をあけるとまたスリープしちゃう? と思った。

 

がしかし、名前解決失敗のときの動きをWireSharkで見てみると、そもそもDS218のDNSに依頼をかけていない。

全部、ルータの方に飛ばしていた。

 

依頼を受けたルータは、外部ネットワークに向かって www.hircos.work の名前解決を依頼。

そうすると、外から見たうちのグローバルIPアドレスが返ってくるわけ。

 

グローバルIPアドレスはうち全体に振られているアドレスなわけで、それがうちにあるどの機器へのアドレスなのかは分からない。

つまり、うちへのアクセスだってことは分かるが、サーバまではたどり着けない

結果として、サーバが見れない。

 

なんだよ代替DNSってよ

解決方法は簡単で、代替DNSを消せばいいんです。

でも、じゃあ代替DNSサーバーの設定ってなんなんだよ!って話です。

 

優先DNSに聞いて、ダメなら代替の方に聞いてくれると思うじゃん?

でも実際、そういう動きになってないです。

ダメなシーンでは、最初から代替DNSに依頼してコケます。

 

代替DNSサーバに関して、「優先DNSサーバに繋がらない場合は代替DNSサーバに切り替える」という情報もあります。

でも、そもそも優先DNSに繋がらない事象がいつ・どうして発生するのか不明。

そうすると、そのときのログを取るのがめんどくさそう。

ということで、今回はこれで良しとします。

 

実際、外部ネットワークへのアクセスは DS218 からルータに聞いてくれてるみたいだし、特に困っていません。

まあ最初から代替DNSサーバの設定は要らなかったということで。

 

そもそもこの優先・代替の設定は私のような使い方じゃなくて、冗長性確保のためにDNSが複数あったりする場合のやつなんでしょうね。

だから優先・代替DNSサーバが同じ動作をしてくれれば、設定を変えずに切り替えてくれるので便利とかじゃない?

たぶん。