ボス級社内SEのお役立ち技術情報

社内SEのシステム開発について。メインプログラム言語C#

Windows10で名前解決(ドメイン名からIPアドレス取得)の優先順位

f:id:HLSE:20190218183722j:plain

Windowsでは、ブラウザよりインターネットに接続するとき、名前解決を行います。

http://172.217.31.174ではなくwww.google.co.jpというようなアクセスをした場合)

名前解決とは、ドメイン名に対応するIPアドレスを取得することです。

例えば、ブラウザからgoogleでアクセスするとき、

ドメイン名(www.google.co.jp)を使用します。

しかし内部的にはドメイン名ではサーバが特定できないので、

ドメイン名に対応するIPアドレスを知る必要があります。

 

いろんな環境があるので一概に述べることができませんが、

WindowsPCが名前解決をするとき優先順位があります。

Webアプリケーション開発なんかをされている方ならば覚えておくと論理的に現象を理解できるのではかどるかと思います。

 

優先順位① hostsファイル

 ホスツファイルと読みます。

知っている人も多いかと思いますが、

WindowsOSはまず名前解決を行うときこのファイルを参照します。

編集も可能ですが、管理者権限で起動したエディタ(メモ帳など)が必要です。

普段触れることがないですが、

Webアプリケーション開発などで環境の切り替え時に使用できるのではないかと思います。

 

優先順位② DNSキャッシュ

hostsファイルで名前解決ができなければ、

OS(リゾルバ)がメインメモリ上に保存しているDNSキャッシュを使用します。

このキャッシュはPCが起動してから「優先順位③DNSサーバ」より取得したレコードを保持しているものです。

コマンドプロンプトより以下コマンドにて参照&削除が可能です。

 

■参照方法

ipconfig /displaydns

 

■削除方法

ipconfig /flushdns

 

優先順位③ DNSサーバ

Windowsに固定IPアドレスを設定した方ならわかると思うのですが、

DNSサーバはプライマリとセカンダリの2種類あります。

基本的にプライマリDNSが使用されますが、

プライマリDNSに接続ができないときにセカンダリDNSが使用されるようです。

保持している情報は同じ(定期的にプライマリとセカンダリは同期する)です。

優先DNSサーバーがプライマリDNSで、

代替DNSサーバーがセカンダリDNSになります。

基本セカンダリDNSは設定がなくともインターネットに接続できますが、

冗長性を考えると設定したほうがいいです。

(下記画像の各設定は適当です)

f:id:HLSE:20180814150728j:plain

 

DHCPでIPを取得している場合は、DHCPサーバよりDNSサーバのIPアドレスが取得されます。コマンドプロンプト上で「ipconfig」コマンドを実行すると表示されます。

 

WindowsOSでは上記の優先順位で名前解決が行われます。

つまりは、OS上にある情報(①②)で解決できなければ、

DNSサーバ(③)に問い合わせるという形になっています。

 

 

イラスト図解でよくわかるネットワーク&TCP/IPの基礎知識

イラスト図解でよくわかるネットワーク&TCP/IPの基礎知識