¿Qué está pasando con el DNS de macOS?

¿Qué está pasando con el DNS de macOS?

Ejecuto lo que supongo que es una configuración nerd bastante estándar. Unifique el equipo de red y un DNS local para el bloqueo de anuncios y un mapeo de dominio interno personalizado ( *.home).

Muy a menudo, de repente, mi Mac simplemente falla en el DNS interno. foo.home? nunca lo oí. El DNS externo no se ve afectado. Así que, cansado, rompo lo viejo sudo killall -HUP mDNSResponder(a veces dos veces) y, de repente, todo vuelve a estar bien en el mundo.

digy nslookupno use el sistema dns de macOS y seguirá funcionando bien durante estas interrupciones.

En caso de apagón, si corro dscacheutil -q host -a name foo.homeno obtengo nada. Reinicie mDNSRespondery proporciona un resultado perfecto:

name: foo.home
ip_address: 192.168.1.4

Igual por 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

Luego reinicie mDNSResponder y:

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

Esta falla con bastante frecuencia envenenará los cachés DNS internos del navegador y tendré que borrarlos, este es el caso de Brave, Firefox y Safari que he visto hasta ahora.

Esta es mi scutil --dnssalida:

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)

He visto algunos murmullos en Internet de que tener un DNS 'alternativo' puede ser el problema, es decir, mDNSResponder intenta con nuestro chico local, tiene un problema debido a cualquier red o servicio extraño, y luego lo cancela y va al DNS#2. . No estoy seguro de cómo probar esta hipótesis. Sirvo 2 DNS en la configuración de DHCP debido a que si el servicio local falla/bloquea, etc., los otros ocupantes de la casa no experimentan una falla total de "Internet".

Ejecuto Tailscale pero descubrí que este problema es anterior a mi uso.

Mi servicio DNS local es Adguard y se ejecuta como un contenedor Docker supervisado por HomeAssistant. DHCP lo proporciona Unifi USG.

Configuración DNS DHCP Unifi

Intenté analizar los registros en Console.app para mDNSResponder, pero es un poco críptico ya que parece tener valores hash y no soy 100% lo que estoy buscando.

Internet tiene bastantes resultados sobre este tipo de cosas, siendo algunos más interesantes:

Descubrí que este problema es anterior a Ventura. Esto ha estado sucediendo durante años y estoy bastante harto, así que me gustaría llegar al fondo de lo que está pasando aquí.

información relacionada