El Capitán: el caché de DNS no se vaciará

1

Estoy intentando que la memoria caché de DNS de El Capitan (10.11.6) se vacíe, para intentar resolver la resolución de nombres de dominio localhost lenta, pero nada de lo que hago tiene ningún efecto. Los nombres de mi computadora, nombre de host y disco duro solían ser los siguientes:

Santa's MacBook Pro
santas-macbook-pro-2.local
Santa's MacBook

(No elegí poner el "-2" al final del nombre de host; eso es lo que tenía la Mac en el panel de preferencias de Compartir)

Intenté editar el etc/hosts archivo de la siguiente manera:

127.0.0.1    localhost santas-macbook-pro-2.local
255.255.255.255    broadcasthost
::1             localhost santas-macbook-pro-2.local
fe80::1%lo0    localhost

pero incluso después de reiniciar, la resolución seguía siendo tan lenta como siempre.

Intenté renombrar la computadora y el nombre de host a trial y trial.local (actualizando etc/hosts en consecuencia) y el disco duro para tt. Logré que OnyX vaciara varios cachés, incluidas las extensiones del sistema y del kernel, reiniciado, aún lento.

En correr el poco inetTester yo obtengo Santa's MacBook Pro.local devuelto

He intentado vaciar el caché de DNS siguiendo las instrucciones aquí , reiniciado, y todavía me sale Santa's MacBook Pro.local devuelto

Parece discoveryutil no existe más (en cualquier caso, no está en mi máquina), así que ni siquiera puedo mirar el contenido de la memoria caché.

¿Qué diablos tengo que hacer para que esta máquina se olvide de ser la MacBook Pro de Santa?

skiaddict1
fuente

Respuestas:

1

Estás mezclando muchas cosas completamente o parcialmente diferentes / no relacionadas aquí.

  1. Para poder asignar un nombre correcto y rápido a su disco duro / SSD, también debe agregar su nombre al archivo de hosts:

    127.0.0.1    localhost santas-macbook-pro-2.local tt-this_is_a_VM_volume_and_therefore_slower_than_a_real_disk 
    

    Ahora puedes verificar el tiempo de respuesta haciendo ping:

    ping tt-this_is_a_VM_disk_and_therefore_slower_than_a_real_disk 
    PING tt-this_is_a_VM_disk_and_therefore_slower_than_a_real_disk (127.0.0.1): 56 data bytes
    64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.054 ms
    64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.089 ms
    64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.071 ms
    
    --- tt-this_is_a_VM_disk_and_therefore_slower_than_a_real_disk ping statistics ---
    3 packets transmitted, 3 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 0.054/0.071/0.089/0.014 ms
    

    El tiempo promedio de ida y vuelta es de ~ 0.071 ms. Por lo tanto, el tiempo necesario para resolverlo es inferior a ~ 0.071 / 2 ms. Con un HDD / SSD real puede esperar respuestas aún más rápidas.

    Por favor usa el corto tt (el nombre de tu volumen) en lugar de mi largo tt-this_.... nombre para obtener una respuesta aún más rápida.

  2. Para revisar su caché de DNS, abra Console.app (ingrese mDNSResponder en el campo de búsqueda) y Terminal.app.

    Verifique la hora e ingrese en la Terminal: sudo killall -INFO mDNSResponder

    Aproximadamente la primera mitad de la salida en la consola con la marca de tiempo anotada anteriormente es el caché de DNS. La parte de caché comienza con ------------ Cache ------------- y termina con un resumen como Cache currently contains 391 entities; 33 referenced by active questions.

    Para matar el uso del caché. sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

    Vuelva a comprobar el caché ingresando sudo killall -INFO mDNSResponder otra vez.

  3. descubrimientoutil fue introducido en OS X 10.10.0 y reemplazado por su antecesor mDNSResponder en OS X 10.10.4.

  4. Para modificar su nombre de host local y su nombre de computadora scutil:

    sudo scutil --set LocalHostName trial
    sudo scutil --set ComputerName Trial
    

    Si aún obtiene un nombre de Bonjour (por ejemplo, el MacBook Pro.local de Santa), es probable que su nombre de host esté configurado incorrectamente. O cambie el nombre de host ingresando:

    sudo scutil --set HostName trial
    

    o elimínelo por completo (recomendado) modificando el archivo preferences.list:

    sudo  nano /Library/Preferences/SystemConfiguration/preferences.plist
    

    y elimine su nombre de host con formato actual en la parte inferior del archivo:

        <key>HostName</key>
        <string>Santa's MacBook Pro.local</string>
    

        <key>HostName</key>
        <string></string>
    

    También es posible que tenga que eliminar el archivo de copia de seguridad de preferencias preferences.plist.old . Reinicie después.

  5. La resolución de nombres se hace aproximadamente en este orden:

      files (e.g. /etc/hosts) > mDNS > DNS)  \
       ↕︎                         (↓ )   (↓)   | rather remote hostnames
    DNS cache (memory) (←-----------------)  /
       ↑                                       \
    memory                                      | rather local hostnames (including hosts file)
       ↑                                        |
     file (preferences.plist)                  /
    
  6. inetTester es una herramienta para verificar rápidamente el tiempo transcurrido desde la capa Java para acceder al nombre de dominio localhost. Esto es no el tiempo para obtener (resolver) el nombre de host local. El nombre de host se almacena en algún lugar de la memoria y una llamada al sistema toma nanosegundos para obtenerlo.

  7. El nombre de su volumen principal (anteriormente MacBook de Santa , ahora tt ) es en no Manera relacionada con el caché de DNS o una resolución de nombre de host local lenta.

Respecto al item 1 en la lista. Llevo Dark Vader casco Sombrero de fiesta y se puso desagradable temporalmente.

klanomath
fuente
Gracias @klanomath. Me doy cuenta de que la HD no tiene nada que ver con la resolución del DNS, pero estoy desesperado por resolver este problema & amp; Quería asegurarse de que no quedara nada sobre el MacBook de Santa. He hecho su paso 2 y amp; el caché no tiene nada de santa en él. Bueno saber. scutil --get LocalHomeName y [...] ComputerName ambos dame trial por lo que están claramente bien. Y todavía inetTester me devuelve Santa's MacBook Pro.local!!! Después de haber recorrido su fuente, me doy cuenta de que la cadena proviene de algún lugar de la memoria. La pregunta es dónde y Como me deshago de esto ?
skiaddict1
Ups, scutil --get LocalHostName
skiaddict1
Marcado como la respuesta correcta, ya que el caché es en efecto, claramente, siendo vaciado. Sin embargo, cualquier ayuda que puedas darme para deshacerme de Santa's MacBookPro.local sería muy apreciado !!! :-)
skiaddict1
Increíble. Era de hecho Santa's[...] así que lo cambié a trial.local. inetTester ahora se resuelve en 77ms. Muchas gracias por esto, ahora estoy en el buen camino para resolver el problema original que requería profundizar en la resolución de DNS. A veces puedes ser un Darth, ¡pero definitivamente eres una fuerza para el bien! ;-)
skiaddict1
@ skiaddict1 Por definición, trial.local como nombre de host es incorrecto. ¡Deberías ponerlo a prueba! trial.local es el completo nombre de host local (Bonjour) que se crea mediante el nombre de nombre de servidor local establecido por scutil (o en las preferencias de intercambio) y el sufijo estándar .local. Esto es parte de un RFC !
klanomath