title | emoji | type | topics | published | published_at | ||||
---|---|---|---|---|---|---|---|---|---|
Azure Windows VMに複数のカスタムDNSサーバを指定した場合の挙動を確認 |
🪟 |
tech |
|
true |
2022-11-28 09:28 |
- DNSサーバ指定できるけど、複数指定したらどうなる?順番に問い合わせる?何順?
- 下記リンクを見ると、Azure Portal側の設定がゲストOSの構成値として流し込まれるようだ
- VNETにVM立てて、適当にカスタムDNSサーバにIP入れてみてOSの構成みてみよう
-
Azure VMを作成
-
NSGでRDP許可
-
VNETにカスタムDNSサーバを適当に設定
-
VMを再起動
-
VMにRDP
-
ネットワーク設定を開く
-
「Ethernet」->「Network」を選択
-
「Properties」からDNSの現在の設定値としてVNETに設定したものが流し込まれていることが分かる
-
「設定」からでは詳細設定ができないため「コントロールパネル」から「Network and Sharing Center」-> 「Ethernet」->「Properties」->「Internet Protocol Version 4(TCP/IPv4)」->「Properties」と進む
-
自動取得になっているだけで設定されているわけではなさそう
-
nslookupすればDNSサーバわかるんじゃねということで何回かやってみる
-
存在していないレコード(とりあえずプライベートIP)についても他のDNSサーバに問い合わせるわけではなく、Non-existent domainが返ってくる
-
Azure Portalで設定した順に問い合わせる感じになっていそう
-
で、優先度の高いDNSサーバが応答なしの場合に次のDNSサーバを参照するようなイメージかも
-
応答しない状態の再現のために、存在しないDNSサーバのIPを先に書いてみる
-
ポータル上では”先に書く”ということができず、アドレスの小さいものが必ず上に表示されてしまう
-
よって、8.8.8.8を削除する
-
架空のサーバに解決させてみると、タイムアウトで終了した
-
念のためブラウザでもアクセスしてみると、アクセスできた
確認出来た挙動まとめはこんな感じ。
- カスタムDNSサーバが複数ある場合、IPアドレスの若いものが既定の問い合わせ先になる
- nslookupはそれだけだとその既定のDNSのIPにしか投げない
- ブラウザ利用の場合は既定のDNSサーバが使えない場合に他のDNSサーバに投げる、おそらく若番順
- そもそも複数のDNSサーバは同じレコードを解決できる必要がある
- 参照しているサーバでNXDOMAINが返ってきたらそこで終わってしまうので、トラブルのもとになる
- あとこの辺の既定動作はOSによって異なる
少しずつ理解してきました。