Glosario/Procesos que verás

mDNSResponder

También: Bonjour y DNS

Respuesta rápida

mDNSResponder es el proceso de macOS que convierte cada nombre de dominio en una dirección. Es el resolvedor DNS del Mac, y también ejecuta Bonjour, que encuentra impresoras, altavoces AirPlay, Mac compartidos y otros dispositivos de tu red local sin ninguna configuración.

Cuando una app abre un sitio web o se conecta a un servidor, le pide la dirección a mDNSResponder. Guarda las respuestas en caché, así que las consultas repetidas son instantáneas. Se ejecuta con su propia cuenta del sistema, _mdnsresponder, no con tu usuario.

Su carga depende de cuántos nombres se estén consultando. Un navegador con muchas pestañas, una VPN o una red local concurrida con muchos dispositivos Bonjour le dan más trabajo.

Por qué mDNSResponder usa CPU

Los picos cortos vienen de ráfagas de consultas: muchas pestañas nuevas, una app sincronizando con muchos servidores o dispositivos que se conectan a la red. Un uso sostenido suele apuntar a algo que reintenta consultas en bucle, a una VPN o un filtro DNS que se porta mal, o a una red donde los anuncios de Bonjour no paran nunca.

Cuando los sitios web no cargan por su nombre pero sí por su dirección, o un sitio ha cambiado de servidor y el Mac sigue yendo al antiguo, la sospechosa es la caché.

Cómo vaciar la caché DNS

Dos comandos en Terminal vacían la caché en las versiones recientes de macOS y le dicen a mDNSResponder que se recargue, sin necesidad de reiniciar.

  1. Abre Terminal.
  2. Ejecuta sudo dscacheutil -flushcache e introduce tu contraseña cuando se te pida.
  3. Ejecuta sudo killall -HUP mDNSResponder.

Cómo ver qué está haciendo mDNSResponder

Se ejecuta con su propia cuenta del sistema, así que Monitor de Actividad lo oculta hasta que pides ver todos los procesos. Terminal puede mostrar sus dos tareas, DNS y Bonjour, una por una.

  1. Abre Monitor de Actividad, elige Visualización → Todos los procesos y escribe mdns en el campo de búsqueda. Verás mDNSResponder con la cuenta _mdnsresponder, y mDNSResponderHelper como root.
  2. Observa el % CPU en la pestaña CPU y las columnas de paquetes en la pestaña Red. Los picos cortos son normales. Una carga constante mientras no estás navegando merece un vistazo.
  3. Para ver qué servidores DNS está usando el Mac, abre Terminal y ejecuta scutil --dns. Resolver #1 muestra los servidores usados para la mayoría de las consultas en nameserver[0], nameserver[1] y así sucesivamente.
  4. Para probar una consulta a través del propio mDNSResponder, ejecuta dns-sd -G v4v6 apple.com. Muestra cada dirección a medida que llega. Pulsa Control-C para detenerlo.
  5. Para ver lo que Bonjour encuentra en tu red, ejecuta dns-sd -B _services._dns-sd._udp local.. Muestra los tipos de servicio que anuncian los dispositivos que te rodean, como _airplay y _ipp para las impresoras. Pulsa Control-C para detenerlo.

Uso normal de mDNSResponder frente a un problema

Normal: casi cero, con picos breves cuando abres muchas pestañas, te conectas a una red o un dispositivo de la red sale del reposo.

Merece la pena revisarlo si hay un uso constante de CPU o de red durante horas, o nombres que no se resuelven en una red pero sí en otra. Las causas habituales:

  • Una VPN o un filtro DNS que añade sus propios resolvedores y no para de cambiarlos. scutil --dns muestra resolvedores adicionales con una línea domain cuando una VPN envía algunos nombres a sus propios servidores.
  • Una app o un script que consulta nombres en un bucle cerrado, a menudo uno que no deja de reintentar un servidor al que no llega.
  • Una red local concurrida, como una oficina o un edificio compartido, con muchos dispositivos anunciándose por Bonjour.
  • Una red que asigna un servidor DNS lento o que no responde, así que las consultas esperan y se reintentan.

DNS y Bonjour: las dos tareas

Los nombres de internet, como apple.com, van a los servidores DNS que ha configurado tu red o tú. Los nombres que terminan en .local, como el nombre de red de tu propio Mac, nunca salen de la red local: mDNSResponder pregunta directamente a los dispositivos que tiene alrededor, que es el DNS multidifusión (multicast DNS) que le da la m de su nombre.

Por eso scutil --dns muestra resolvedores para local marcados como mdns. Si puedes llegar a una impresora o a un Mac compartido por su nombre .local en casa pero no en el trabajo, lo que bloquea esos anuncios locales es la red del trabajo, no internet.

Preguntas frecuentes

¿Qué es mDNSResponder en el Mac?

El proceso de macOS que convierte los nombres de dominio en direcciones para todas las apps, y que ejecuta Bonjour para encontrar impresoras, altavoces AirPlay y otros dispositivos de tu red.

¿Puedo cerrar mDNSResponder?

macOS lo reinicia al instante, y mientras no está nada puede consultar un sitio web. Para borrar una respuesta incorrecta, vacía la caché DNS en lugar de cerrarlo.

¿Por qué mDNSResponder quiere aceptar conexiones entrantes?

Bonjour escucha a otros dispositivos que se anuncian en la red local. El firewall de macOS lo permite por omisión; si el tuyo pregunta, permitirlo mantiene funcionando AirPlay, la detección de impresoras y Compartir pantalla.

¿Es seguro mDNSResponder?

Sí. Forma parte de macOS, está firmado por Apple y se encuentra en /usr/sbin/mDNSResponder. Se ejecuta con su propia cuenta restringida del sistema, no con tu usuario ni como root.

¿Qué es mDNSResponderHelper?

Un pequeño compañero de mDNSResponder que se ejecuta como root y se encarga de las pocas tareas que su cuenta restringida no puede hacer por sí sola. Forma parte de macOS y normalmente está inactivo.

Relacionado

¿Buscas algo mejor que Monitor de Actividad? Consulta las mejores alternativas a Monitor de Actividad para Mac, o explora todos los términos del glosario.