Windowsで名前解決できないときは、最初に表示された正確なエラー、失敗した名前、発生時刻、FQDNか短縮名か、影響するアプリと端末範囲を記録します。続いて設定を変えず、Get-NetAdapter、Get-NetIPConfiguration、Get-DnsClientServerAddress、Get-DnsClientGlobalSetting、ipconfig /allで使用中アダプター、DNSサーバー、接続固有サフィックスを確認してください。いきなりDNSを公開サーバーへ変更したり、キャッシュを消したり、ファイアウォールやVPNを停止したりすると証拠と社内名前解決を失います。
エラーを分類して再現条件を固定する
- ブラウザーのDNS_PROBE_FINISHED_NXDOMAIN、ERR_NAME_NOT_RESOLVED、サーバーIPが見つからない等の文言をそのまま記録する。
- app01のような短縮名か、app01.corp.exampleのFQDNか、末尾ドット付きFQDNかを分ける。
- 社内名だけ、公開名だけ、特定レコード型だけ、VPN接続中だけ、特定アダプターだけかを比較する。
- 1台だけか、同一拠点・同一VLAN・同一DNSサーバー利用者全体かを確認する。
- 直前のDHCP、VPN、プロキシ、DNS、端末ポリシー、hosts変更を確認する。
DNS失敗とネットワーク断は別です。IPアドレス直打ちで到達できてもHTTPのHost名やTLS証明書が一致しないため、Webサイトの正常性確認には限定があります。逆にpingが失敗しても、ICMPが遮断されているだけでDNSサーバーが停止したとは限りません。DNS問い合わせ自体の結果を確認します。
アダプターとDNS設定を読み取り専用で確認する
Get-NetAdapter | Sort-Object Status, InterfaceMetric |
Format-Table Name, Status, LinkSpeed, InterfaceDescription
Get-NetIPConfiguration
Get-DnsClientServerAddress -AddressFamily IPv4,IPv6
Get-DnsClientGlobalSetting
ipconfig /all
有線、Wi-Fi、VPN、Hyper-V、コンテナー、仮想アダプターが同時に存在すると、見ている設定と実際に選ばれた経路が違う場合があります。StatusがUpのアダプター、インターフェースメトリック、デフォルトゲートウェイ、DHCP有無、IPv4/IPv6のDNSサーバー、接続固有DNSサフィックスを一組として記録します。
169.254.x.xの自己割り当て、想定外のゲートウェイ、空のDNS、退役済みDNS、VPNアダプターに残ったDNSがあれば、まずDHCPやVPN配布元を確認します。ドメイン参加端末で公開DNSへ直接変更すると、Active DirectoryのSRVレコードや社内名を解決できなくなるため、勝手に8.8.8.8等へ置換しません。
DNSサーバーを明示して問い合わせる
$name = 'app01.corp.example'
Resolve-DnsName -Name $name -Type A -DnsOnly
Resolve-DnsName -Name $name -Type A -Server '10.0.0.10' -DnsOnly
Resolve-DnsName -Name $name -Type A -Server '10.0.0.11' -DnsOnly
nslookup app01.corp.example 10.0.0.10
まず既定のリゾルバー、次に構成済みDNSサーバーを一台ずつ指定します。返されたName、Type、IPAddress、TTL、エラー種別と、問い合わせ時に指定したDNSサーバーを別々に保存します。Resolve-DnsNameの結果オブジェクトには、実際に応答したDNSサーバーを示すプロパティがありません。-Serverを付けず既定のリゾルバーを使った場合も、実際の応答元は結果オブジェクトから特定できません。NXDOMAINは「名前が存在しない」という応答、タイムアウトは応答なし、SERVFAILはサーバー側処理失敗など意味が異なります。すべてを「DNSが落ちた」とまとめません。
DNSサーバーのIPへpingが通れば到達性の参考になりますが、DNSサービスがUDP/TCP 53で応答する証明にはなりません。逆にping不通だけで停止とも断定できません。指定サーバーへのResolve-DnsNameやnslookup、必要に応じてTest-NetConnectionで経路を確認し、サーバー管理者のログと照合します。
FQDNは通るが短縮名が通らない場合
app01.corp.exampleは解決できるのにapp01が失敗するなら、DNSサフィックス検索リストと接続固有サフィックスを確認します。Windowsは単一ラベル名へサフィックスを順に付けて問い合わせます。Get-DnsClientGlobalSettingのSuffixSearchList、Get-DnsClient、ipconfig /allを比較し、VPN接続時だけサフィックスが変わるかも記録します。
Get-DnsClient | Select-Object InterfaceAlias, ConnectionSpecificSuffix, RegisterThisConnectionsAddress
Get-DnsClientGlobalSetting | Format-List SuffixSearchList, UseDevolution, DevolutionLevel
短縮名運用は検索順序や重複名の影響を受けます。診断では末尾ドット付きFQDNも試し、検索サフィックスを介さない正確な問い合わせと比較します。設定を変更するならDHCPオプション、VPNプロファイル、GPOのどこが所有者かを特定し、端末だけの手修正を恒久策にしません。
hosts、NRPT、キャッシュを調べる
WindowsのDNSクライアントキャッシュには、DNS応答だけでなくhostsから読み込まれた項目や否定応答も含まれます。まずipconfig /displaydnsまたはGet-DnsClientCacheで失敗名を探します。hostsは通常%SystemRoot%\System32\drivers\etc\hostsです。管理権限で編集する前に、現在内容と更新日時を読み取り、誤った固定IP、重複、コメントの誤解がないか確認します。
Get-DnsClientCache | Where-Object Entry -Like '*app01*'
Get-Content -LiteralPath (Join-Path $env:SystemRoot 'System32\drivers\etc\hosts')
Get-DnsClientNrptPolicy -Effective
ドメイン環境、DirectAccess、Always On VPN、セキュリティ製品ではNRPTが特定名前空間を別DNSへ送ることがあります。Get-DnsClientNrptPolicy -Effectiveで実効ルールを確認し、設定元を管理者と照合します。hostsやNRPTを消すのではなく、どのルールが問い合わせ先を変えたかを特定します。
キャッシュに古い正引きや否定応答があると確認でき、DNS側が既に正しい場合に限り、管理者としてipconfig /flushdnsを実行します。これはキャッシュを再作成させる変更で、根本原因を直しません。実行前後の問い合わせ結果を保存し、改善しなければ何度も繰り返しません。DNS Clientサービスやキャッシュ機能を恒久的に無効化しないでください。
DoH、VPN、ドメイン参加端末の追加確認
Windows 11はDNS over HTTPSをサポートします。DoHテンプレートや管理ポリシー、VPNのスプリットDNS、セキュリティエージェントが通常の53番通信とは異なる経路を作る場合があります。Windowsの設定画面と管理ポリシーで暗号化状態を確認し、DoHを一律に無効化するのではなく、構成DNSが暗号化対象か、社内ゾーンがNRPT/VPN経由かを確認します。
ドメイン参加端末では、DNSサーバーがActive Directoryゾーンを保持または正しく転送できる必要があります。_ldap._tcp等のSRVレコード、端末のプライマリDNSサフィックス、時刻ずれ、セキュア動的更新をサーバー管理者と確認します。公開名は引けるがドメインサインインやGPOだけ失敗する場合、公開DNSへの変更で隠さず社内DNS設計を直します。
変更、検証、戻し方
DNSサーバーやサフィックスを変更する場合は、所有元がDHCP、静的設定、VPN、GPO、MDMのどれかを確定し、変更前の値を保存します。影響範囲を代表端末一台に限定し、社内FQDN、短縮名、公開名、ドメインコントローラーのSRV、業務アプリを検証してから広げます。ファイアウォールやEDRを全体停止する試験は行いません。
変更後はResolve-DnsNameで期待するDNSサーバーから正しいレコードとTTLが返ること、アプリで接続できること、VPN接続・切断後も設定が戻らないことを確認します。失敗したら保存したDNSサーバー、サフィックス、暗号化設定へ戻し、キャッシュを一度更新して再試験します。サーバー側のゾーン修正を行った場合は、変更したレコードだけを戻せるバックアップと監査記録を用意します。

コメント