macOS DNS에 무슨 일이 일어나고 있나요?

macOS DNS에 무슨 일이 일어나고 있나요?

나는 상당히 표준적인 괴상한 설정이라고 생각되는 것을 실행합니다. 네트워킹 장비, 광고 차단을 위한 로컬 DNS 및 사용자 정의 내부 도메인 매핑을 통합합니다( *.home).

매우 정기적으로 갑자기 내 Mac이 내부 DNS에 실패합니다. foo.home? 들어 본 적이 없습니다. 외부 DNS는 영향을 받지 않고 계속됩니다. 그래서 지친 마음으로 옛 생각을 깨고 sudo killall -HUP mDNSResponder(때때로 두 번) 갑자기 모든 것이 다시 좋아졌습니다.

digmacOS 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에서 제공됩니다.

Unifi DHCP DNS 설정

mDNSResponder에 대한 Console.app의 로그 구문 분석을 시도했지만 값을 해시하는 것처럼 보이고 내가 찾고 있는 것이 100% 아니기 때문에 약간 비밀스럽습니다.

인터넷에는 이런 종류의 일에 관한 꽤 많은 히트작이 있으며, 더 흥미로운 것들은 다음과 같습니다:

이 문제는 Ventura보다 먼저 발생한 것으로 나타났습니다. 수년 동안 이런 일이 계속되어 왔고 저는 이 일이 꽤 지겨워서 여기서 무슨 일이 일어나고 있는지 자세히 알아보고 싶습니다.

관련 정보