私が実行しているのは、かなり標準的なオタク設定だと思います。ネットワーク機器を統合し、広告ブロック用のローカル DNS とカスタム内部ドメイン マッピング ( *.home
) を使用しています。
非常に頻繁に、突然、私の Mac が内部 DNS で失敗します。foo.home
? 聞いたことがありません。外部 DNS は影響を受けません。そのため、私は疲れ果てて古いもの (時には 2 回) を取り出しsudo killall -HUP mDNSResponder
、突然、すべてが元通りになります。
dig
macOS の DNS システムを使用しないためnslookup
、これらの障害が発生しても正常に動作し続けます。
停止中に実行してもdscacheutil -q host -a name foo.home
何も得られません。再起動するmDNSResponder
と、正常に出力されます。
name: foo.home
ip_address: 192.168.1.4
以下も同様ですdns-sd -q foo.home
:
DATE: ---Wed 12 Jul 2023---
10:39:54.691 ...STARTING...
Timestamp A/R Flags IF Name Type Class Rdata
10:39:54.692 Add 40000002 0 foo.home.v Addr IN 0.0.0.0 No Such Record
次に、mDNSResponder を再起動します。
DATE: ---Wed 12 Jul 2023---
10:58:17.585 ...STARTING...
Timestamp A/R Flags IF Name Type Class Rdata
10:58:17.591 Add 2 0 foo.home. Addr IN 192.168.1.4
この障害により、ブラウザの内部 DNS キャッシュが破壊されることが多く、これをクリアする必要があります。これは、これまでに確認した Brave、Firefox、Safari の場合に当てはまります。
これが私のscutil --dns
出力です:
DNS configuration
resolver #1
search domain[0] : tail44a85.ts.net
search domain[1] : home
nameserver[0] : 100.100.100.100
if_index : 22 (utun3)
flags : Supplemental, Request A records, Request AAAA records
reach : 0x00000003 (Reachable,Transient Connection)
order : 100200
resolver #2
nameserver[0] : 192.168.1.4
nameserver[1] : 9.9.9.9
if_index : 15 (en0)
flags : Request A records
reach : 0x00020002 (Reachable,Directly Reachable Address)
order : 200000
resolver #3
domain : tail44a85.ts.net.
nameserver[0] : 100.100.100.100
if_index : 22 (utun3)
flags : Supplemental, Request A records, Request AAAA records
reach : 0x00000003 (Reachable,Transient Connection)
order : 100201
resolver #4
domain : local
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300000
resolver #5
domain : 254.169.in-addr.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300200
resolver #6
domain : 8.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300400
resolver #7
domain : 9.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300600
resolver #8
domain : a.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300800
resolver #9
domain : b.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 301000
DNS configuration (for scoped queries)
resolver #1
search domain[0] : home
nameserver[0] : 192.168.1.4
nameserver[1] : 9.9.9.9
if_index : 15 (en0)
flags : Scoped, Request A records
reach : 0x00020002 (Reachable,Directly Reachable Address)
resolver #2
search domain[0] : tail44a85.ts.net
nameserver[0] : 100.100.100.100
if_index : 22 (utun3)
flags : Scoped, Request A records, Request AAAA records
reach : 0x00000003 (Reachable,Transient Connection)
インターネット上では、「フォールバック」DNS があることが問題になる可能性があるという意見がいくつか見られました。つまり、mDNSResponder がローカル ボーイを試し、ネットワークまたはサービスの異常により問題が発生すると、それを無視して DNS#2 に移動するということです。この仮説をテストする方法がよくわかりません。ローカル サービスが失敗/クラッシュした場合、他の家の居住者が「インターネット」の完全な障害を経験しないように、DHCP 構成で 2 つの DNS を提供しています。
私は Tailscale を実行していますが、この問題は私がそれを使用する前から発生していることがわかりました。
私のローカル DNS サービスは、HomeAssistant 監視 Docker コンテナとして実行されている Adguard です。DHCP は Unifi USG によって提供されます。
mDNSResponder の Console.app でログを解析しようとしましたが、ハッシュ値が表示されているようで少しわかりにくく、探しているものが 100% 見つかりません。
インターネットには、この種のことに関するヒットが数多くありますが、特に興味深いものは次のとおりです。
- https://discussions.apple.com/thread/254717652
- https://www.reddit.com/r/MacOS/comments/s4ngui/dns_issues_on_safari/
この問題は Ventura より前からあったことがわかりました。何年も続いていて、もううんざりしているので、ここで何が起こっているのかを突き止めたいと思います。