知識マップ: Windowsの名前解決の順序 ── hosts・DNSキャッシュ・LLMNR/mDNS・DoH

記事「Windowsの名前解決の順序 ── hosts・DNSキャッシュ・LLMNR/mDNS・DoH」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

Windowsで名前をIPアドレスにする処理はひとつではない。.NETのDns.GetHostAddressesや、宛先へ直接接続するHttpClientはWinsockのgetaddrinfoを呼び(HTTPプロキシ経由では宛先の名前はプロキシ側で解決される)、その下でDNSクライアントサービスがキャッシュ(サービス起動時にhostsファイルを読み込んだもの)→DNSサーバー→単一ラベル名のときだけLLMNR・NetBIOSの優先順位で解決する(既定ではDNSとリンクローカルは並行に問い合わせ、最適化を無効にしたときだけ直列になる)。応答は肯定でも否定でもキャッシュに入り、否定応答は既定5秒のあいだ再試行を失敗させ、ipconfig /displaydnsに「Name does not exist」と出る。ipconfig /flushdns(Clear-DnsClientCache)はそれを捨てる。点を含まない単一ラベル名はサフィックス検索リストで補完されてからDNSに送られ、長いリストは遅延を積み上げる。DNSサーバーが無応答なら開始から1・2・4・8秒の時点で再送して10秒で打ち切り、否定応答が返れば止まり、4番目以降のサーバーには4秒後まで届かない。複数NICでは既定のスマートマルチホーム名前解決が全ネットワークへ並行して問い合わせ、バインド順で採用するため、VPN接続中の結果がPCごとに揺れる。単一ラベル名は既定ではDNSと並行にLLMNRやNetBIOSブロードキャストといった同一サブネット限定の手段にも問い合わせられ、DNSの失敗後に順に試されるのは最適化を無効にしたときだけで(WINSが構成されていればNetBIOSはサブネットを越えられる)、グループポリシー「マルチキャスト名前解決を無効にする」でLLMNRを止めるとDNS未登録の機器の単一ラベル名はLLMNRの経路を失い、NetBTも無効なら引けなくなる。MicrosoftはmDNSに揃えてNetBIOS名前解決とLLMNRを縮退させる方針を示している。Windows 11のDoHはDDRを有効にしていなければ既知のDoHサーバー一覧にあるサーバーにだけ使え、hosts・NRPTと統合されて順序は変えず、「DoHを要求する」はドメイン参加PCに適用しない。Microsoft Edgeは内蔵DNSクライアントとセキュアDNSで列の外にいるため、ブラウザーとアプリの結果は食い違い得る。nslookupはキャッシュ・hosts・NRPTを迂回するので、層ごとの確認はResolve-DnsNameのスイッチと、繋がるPCと繋がらないPCの設定ダンプの差分、Wiresharkのキャプチャで行う。アプリ側は宛先をFQDNで持ち、名前解決の結果と所要時間をログに残し、DNSが問い合わせる候補1つあたり最大10秒(サフィックス検索で候補が複数なら全体はそれを超える)のタイムアウトを見込む。

Windowsの名前解決の順序の知識マップアプリのgetaddrinfoの下でDNSクライアントサービスがキャッシュ(hostsを含む)→DNSサーバー→単一ラベル名だけLLMNR・NetBIOSの優先順位で解決すること(既定ではDNSとリンクローカルは並行)、否定応答もキャッシュされること、サフィックス検索リストと再送タイムアウトが遅延を生むこと、スマートマルチホーム名前解決とLLMNR無効化と単一ラベル名が一部のPCだけの失敗を生むこと、DoHがDDR無効時は既知のサーバー一覧を前提に順序を変えずに輸送路を替えること、ブラウザーの内蔵リゾルバーとセキュアDNSがアプリとの食い違いを生むこと、Resolve-DnsNameと設定ダンプとWiresharkで各層を確かめられること、FQDN指定と名前解決ログが業務アプリの対策になることを示す関係図利用する利用する利用するに保存されるに保存される軽減するで確認できるで確認できるで確認できる両立しない両立しないで確認できる利用する原因になり得る利用する原因になり得るで構成できる原因になり得る利用する利用する利用する原因になり得る防止する原因になり得るで確認できるの後継の後継防止する推奨される対応用いるのは非推奨前提とする利用する利用するで構成できる用いるのは非推奨原因になり得る利用する利用するで構成できる原因になり得る原因になり得る利用する軽減するで確認できるで確認できる利用する推奨される対応前提とするDNSクライアントサービスDNSリゾルバーキャッシュ単一ラベル名LLMNRWindows DNSクライアントのDoHDns.GetHostAddressesgetaddrinfohostsファイル否定応答のキャッシュipconfig /flushdns / Clear-DnsClientCacheGet-DnsClientCache / ipconfig /displaydnsResolve-DnsNamenslookup名前解決ポリシーテーブル(NRPT)DNSサフィックス検索リスト名前解決の遅延DNSクライアントの再送とタイムアウトスマートマルチホーム名前解決グループポリシー一部のPCだけ名前解決できないNetBIOS over TCP/IP(NetBT)WINS「マルチキャスト名前解決を無効にする」ポリシーmDNS宛先のFQDN指定業務アプリの宛先設定既知のDoHサーバー一覧「DoHを要求する」設定Active Directory(AD DS)Microsoft EdgeEdgeの内蔵DNSクライアントブラウザーのセキュアDNSブラウザーとアプリの名前解決結果の食い違いIPv6優先のプレフィックスポリシーDisabledComponentsによるIPv4優先Wireshark名前解決設定のダンプと差分比較名前解決結果のログ

概念間の関係(全48件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

DNSクライアントサービス
getaddrinfoなどWindows DNS APIの下で名前解決を担うサービス。キャッシュ(hostsを含む)→DNSサーバー→単一ラベル名のときだけLLMNR・NetBIOSの優先順位で解決し(既定ではDNSとリンクローカルは並行に問い合わせる。.local名には設定済みDNSに加えてmDNSの経路も加わる)、肯定・否定どちらの応答もキャッシュする。
DNSリゾルバーキャッシュ
DNSクライアントサービスが保持するローカルのキャッシュ。サービス起動時にhostsファイルの内容が読み込まれ、DNS応答はTTLのあいだ保持される。ipconfig /displaydnsやGet-DnsClientCacheで表示できる。
単一ラベル名
server01のように点を含まない名前。DNSサフィックスで補完されてからDNSに送られ、既定ではDNSと並行に(最適化無効時はDNS失敗後に)LLMNRやNetBIOSブロードキャストといった同一サブネット限定の手段も試される(WINSが構成されていればNetBIOSはサブネットを越えられる)ため、PCの設定とネットワークで結果が変わる。
LLMNR
DNSサーバーもDNSクライアントの構成も要らず、単一サブネット上のリンクにUDP 5355のマルチキャストで問い合わせる二次的な名前解決プロトコル(TCP 5355は切り詰められた応答などのユニキャストのやり取りに使う)。単一ラベル名の問い合わせに、既定ではDNSと並行して使われる。
Windows DNSクライアントのDoH
Windows 11 / Windows Server 2022以降のDNSクライアントが、設定済みDNSサーバーへの問い合わせをHTTPSで送る機能。hosts・NRPT・アダプターごとのリゾルバー指定といった既存の構成と統合され、順序は変えない。
Dns.GetHostAddresses
.NETの名前解決API。基盤となるOSの名前解決API(Windowsではgetaddrinfo)で実装され、hostsファイルに記述されたホストはDNSサーバーに問い合わせずそのアドレスが返る。HttpClientもこの上で動く。
getaddrinfo
Winsockのホスト名からアドレスへの変換関数。NS_DNS名前空間に対してDNS・ローカルのhostsファイル・その他の仕組みで解決し、複数の名前空間プロバイダーの応答を集約して返す。
hostsファイル
名前とIPアドレスの対応を手書きするテキストファイル。Windowsではサービス起動時にDNSリゾルバーキャッシュへ読み込まれ、該当する名前はDNSサーバーに問い合わせずに解決される。
否定応答のキャッシュ
DNSサーバーが「名前が存在しない」と答えた否定応答をクライアントがキャッシュに保持する仕組み。既定の保持時間は5秒(MaxNegativeCacheTtl)で、ipconfig /displaydnsには「Name does not exist」と表示される。
ipconfig /flushdns / Clear-DnsClientCache
DNSクライアントリゾルバーキャッシュの内容を、否定応答の項目も含めてすべて破棄するコマンド。Clear-DnsClientCacheはipconfig /flushdnsと同等。
nslookup
DNSサーバーに直接問い合わせる診断ツール。OSのリゾルバーライブラリを使わず、ローカルのDNSキャッシュ・hostsファイル・NRPTを迂回し、設定の先頭のDNSサーバーにしか問い合わせない。
名前解決ポリシーテーブル(NRPT)
名前空間ごとに使うDNSサーバーやDirectAccess・DNSSECの設定を指定する表。Windows DNS APIを使うアプリだけが利用でき、nslookupなど独自のDNS実装は迂回する。Get-DnsClientNrptPolicy -Effectiveで実効ポリシーを確認する。
DNSサフィックス検索リスト
点を含まない単一ラベル名にDNSサフィックスを付けてFQDNにする仕組み。検索リストがあればその順に、無ければプライマリDNSサフィックスと切り詰め、接続固有サフィックスが使われる。
DNSクライアントの再送とタイムアウト
DNSサーバーが無応答のときにWindowsのDNSクライアントが、問い合わせる名前1つあたり、開始から1秒・2秒・4秒・8秒の時点で再送し10秒で打ち切る規則。否定応答が返れば止まり、次のサーバーを試すのは無応答のときだけで、4番目以降のサーバーには4秒後まで届かない。サフィックス検索リストで候補が複数あれば全体の所要時間はこれを超える。
スマートマルチホーム名前解決
複数のネットワークを持つPCで、DNS・LLMNR・NetBTの問い合わせを全ネットワークへ並行して出し、複数の肯定応答があればバインド順で採用する既定の動作。グループポリシー「スマート マルチホーム名前解決を無効にする」で直列にできる。
NetBIOS over TCP/IP(NetBT)
NetBIOS名をブロードキャスト(UDP 137)またはWINSサーバーで解決するレガシーな仕組み。ノードタイプ(B/P/M/H)で方式が決まり、WINSが未構成ならB-node、構成済みならH-nodeが既定。
「マルチキャスト名前解決を無効にする」ポリシー
DNSクライアントの全アダプターでLLMNRを無効にするグループポリシー。LLMNRの脆弱性の回避策として案内され、副作用としてそのPCが他のPCから見えなくなることがある。
mDNS
UDP 5353のマルチキャストで.local名をローカルネットワーク内で解決するプロトコル。.local名は設定済みのDNSやNRPTでも解決されるため、それを置き換えるのではなく加わる経路である。MicrosoftがNetBIOS名前解決とLLMNRを縮退させて揃える軸として2022年に示した。
宛先のFQDN指定
業務アプリの設定ファイル・ショートカット・UNCパスの宛先を、単一ラベル名ではなく完全修飾ドメイン名で持つこと。末尾に点を付けた絶対名ならサフィックス補完を受けず、点を含むが末尾に点が無い名前も既定ではそのまま送られる(複数ラベル名へのサフィックス付加を許可するポリシーが有効な場合だけ補完される)。単一ラベル名と違い、LLMNR・NetBIOSに依存しない。
「DoHを要求する」設定
グループポリシー「DNS over HTTPS (DoH) 名前解決の構成」でDoHを必須にする設定。DoH非対応のDNSサーバーでは名前解決が失敗し、Windows Server標準のDNSサーバーサービスがDoHに対応していないためドメイン参加PCでは有効にしないようMicrosoftが明記している。
Microsoft Edge
Chromiumベースのマイクロソフト製ブラウザー。本体はActiveXをサポートしない。
ブラウザーのセキュアDNS
Microsoft Edgeなどのブラウザーが、OSとは別にHTTPSでDNSプロバイダーに問い合わせる機能。既定では現在のプロバイダーをDoHに格上げして失敗時は平文へ戻り、別のプロバイダーを選んだときだけ外部のリゾルバーへ行く。組織管理下のPCでは既定で無効で、DnsOverHttpsModeポリシー(off/automatic/secure)で構成する。
Edgeの内蔵DNSクライアント
Microsoft EdgeがOSのDNSクライアントの代わりに既定で使う、DNSサーバーと通信するソフトウェアスタック。どのDNSサーバーを使うかは変えないが、DoHの問い合わせは常にこの内蔵リゾルバーで行われる。
DisabledComponentsによるIPv4優先
Tcpip6\ParametersのDisabledComponentsに0x20を設定してプレフィックスポリシーでIPv4を優先させる方法。MicrosoftはIPv6の無効化ではなくこちらを推奨している。
一部のPCだけ名前解決できない
同じ名前が一部のPCでだけ解決できない、または遅い症状。名前解決のどの層が答えたか(キャッシュ・hosts・サフィックス補完・LLMNR/NetBIOS・NRPT・DoH)がPCごとに違うことで生じる。
名前解決結果のログ
アプリが起動時などに主要な宛先について解決したアドレス(IPv4とIPv6)・所要時間・失敗時のエラーコードをログに残し、フォールバックで黙って切り替えない設計。
業務アプリの宛先設定
業務アプリが接続するサーバーを指定する設定ファイル・ショートカット・UNCパスなどの宛先。書き方によって名前解決のどの層に依存するかが決まる。

機械可読データ

このデータセットについて

作成
合同会社小村ソフト
ライセンス
CC BY 4.0 ── 出典(合同会社小村ソフト)とライセンスへのリンクを明示し、改変した場合はその旨を示すことを条件に、再配布・改変を含めて再利用できます
最終確認日
2026-09-04 ── 収録する関係のうち、最後に出典と照合した日

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。