Azure DNS Troubleshootingを理解するための前提
名前解決障害では最初に「queryしたFQDN」「clientが使ったresolver」「期待IP」「実answer」を固定する。 Private DNS zoneはVNet linkがなければAzure VMから解決されず、auto-registrationは用途と制約がある。
Private Endpointでは正しいprivatelink zone/linkがないとpublic IPへ解決されることがある。 DNS Private Resolver inbound endpointはon-prem→Azure、outbound endpoint+rulesetはAzure→外部namespaceのforwardingに使う。
ruleset linkはVNet peeringなしでも利用できるが、target DNS serverへのnetwork reachabilityは別途必要。 168.63.129.16はAzure platform virtual IPで、on-premから直接queryする前提にしない。
Control plane と data plane
仕組みと設計上の意味
DNS troubleshootingはping/TCP reachabilityより先にFQDN answerを採取する。
NXDOMAIN、SERVFAIL、timeout、wrong IPは原因層が異なるためresponse codeも記録する。
hybrid DNSではconditional forwarderのsuffix typo/loopとUDP/TCP 53/MTUを確認する。
Private Endpointでpublic/private splitを使う場合、client locationごとのresolver pathを設計書に残す。
Packet / decision path
source→destinationを1本のflowとして固定し、名前解決・routing・security・NAT/service processing・return pathを必要な範囲で順に確認する。
- client DNS configとquery resultを採取。
- VNet DNS setting/zone linkを確認。
- Resolver ruleset/forwarding ruleとtarget serverを確認。
- UDP/TCP 53のroute/NSG/NVA pathを確認。
- authoritative/upstream responseとcache/TTLを確認。
設計判断
| 判断点 | 推奨 | 理由 |
|---|---|---|
| First evidence | FQDN / resolver / expected answerを固定 | 同じ症状を比較可能にする |
| Hybrid boundary | conditional forwarding方向を明示 | loopと誤転送を避ける |
| Private Endpoint | CNAME→privatelink zone→private Aを確認 | public fallbackを見逃さない |
| Transport | UDP/TCP 53の両方を確認 | large responseやfallbackも扱う |
確認手順
Azure Portal
- VNet → DNS serversとPrivate DNS zone linksを確認。
- DNS Private Resolver → inbound/outbound endpoints / rulesetsを確認。
- Private Endpoint → DNS configurationでexpected FQDN/zoneを確認。
Evidence contract
az network private-dns zone list -g <rg> -o table
az network private-dns link vnet list -g <rg> -z <zone> -o table
az network private-dns record-set a list -g <rg> -z <zone> -o tableGet-AzPrivateDnsZone -ResourceGroupName <rg>
Get-AzPrivateDnsVirtualNetworkLink -ResourceGroupName <rg> -ZoneName <zone>
障害切り分け
| 症状 | 疑う点 | 証拠 | 次の確認 |
|---|---|---|---|
| Azureだけon-prem名不可 | outbound ruleset/link/route | ruleset + TCP/UDP53 | forwarding path修正 |
| on-premだけAzure private名不可 | inbound endpoint/conditional forwarder | on-prem forwarder + endpoint IP | conditional forwarding修正 |
| 一部clientだけ旧IP | cache/別resolver | query server/TTL | resolver統一・TTL待ち |
| 大きいresponseだけ失敗 | TCP fallback/MTU/NVA | tcp 53/packet capture | path MTU/firewall確認 |
変更・rollback
- DNS変更前にcurrent answerを複数client locationから保存。
- record/link削除は影響VNet一覧を確認。
- rollbackはrecordだけでなくresolver rule/link/VNet DNS settingを戻す。
- cacheが残るためrollback直後のsingle client resultだけで判定しない。