Hoe DNS Cache in OS X Yosemite met discoveryutil te spoelen

Sommige Mac-gebruikers kunnen situaties tegenkomen waarin ze de DNS-cache in OS X moeten doorspoelen zodat een naamserver correct kan worden verholpen of dat sommige DNS-adreswijzigingen door hun individuele computer kunnen worden opgemerkt. Dit is met name relevant voor systeembeheerders, netwerkbeheerders en webontwikkelaars, maar er zijn zeker situaties waarin andere gebruikers mogelijk DNS-caches moeten dumpen en opnieuw moeten instellen, bijvoorbeeld als een gebruiker het bestand / etc / hosts heeft gewijzigd en de wijzigingen nodig hebben in werking treden zonder de Mac opnieuw op te starten.

Langdurige Mac-gebruikers zullen weten dat het resetten van de DNS-cache in bijna elke versie van Mac OS X is veranderd, en OS X Yosemite is niet anders, waarschijnlijk als gevolg van de ontdekking dat mDNSResponder wordt vervangen en daarna weer teruggaat naar mDNSResponder. Hoe dan ook, het spoelen van de DNS-cache in Yosemite blijft een terminalopdracht, maar deze verschilt enigszins, afhankelijk van de exacte release die u gebruikt van het besturingssysteem, en u kunt in feite zowel Multicast DNS of Unicast DNS, of beide wissen. Je zult waarschijnlijk beide voor een goede maatregel willen wissen als je probeert alle DNS-caches op de Mac te resetten.

DNS-cache wissen in OS X Yosemite 10.10.4 & OS X 10.10.5

Vanaf OS X 10.10.4 gaat het verder naar 10.10.5, inclusief 10.11. Apple heeft discoveryd verwijderd en heeft het vervangen (of beter gezegd, teruggezet naar) mDNSResponder. Dus, voor het wissen van DNS-caches in OS X Yosemite 10.10.4, en 10.11 El Capitan, en vermoedelijk verder, is de opdrachtreeks als volgt:

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;say cache flushed

Met dat commando worden alle DNS-caches voor OS X 10.10.4+ verwijderd.

Langdurige Mac-gebruikers herinneren zich misschien dat de commandostructuur eigenlijk werkte in de release voorafgaand aan Yosemite. Met dat gezegd, gebruiken eerdere versies van OS X Yosemite vóór 10.10.4 een andere commandocollege die hieronder wordt besproken.

DNS-caches wissen in OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)

U moet de terminal gebruiken om de cache opnieuw in te stellen. U vindt de Terminal-app in / Applications / Utilities / of start hem met Spotlight. Als u alle DNS-caches in de nieuwste versie van OS X volledig wilt wissen, moet u zowel MDNS (Multicast DNS) als UDNS (Unicast DNS) targeten met twee verschillende opdrachten.

Wis MDNS-cache

sudo discoveryutil mdnsflushcache

Druk op Return en voer het admin-wachtwoord in wanneer daarom wordt gevraagd.

Wis UDNS Cache

sudo discoveryutil udnsflushcaches

Nogmaals, druk op Return en voer het admin-wachtwoord in wanneer daarom wordt gevraagd. Merk op dat caches meervoudig is met het laatste commando, een subtiel maar belangrijk syntaxisverschil.

Spoel en reset alle DNS-caches in OS X Yosemite

Je kunt ook de bovenstaande twee commando's samen rijgen als je wilt, het volgende zal zelfs mondeling melden wanneer de caches zijn gewist:

sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed

De MDNS- en UDNS-caches zijn inderdaad anders, maar ik heb geconstateerd dat voor functionele DNS-cache die eigenlijk moet worden gewist in OS X Yosemite beide commando's noodzakelijk zijn. Het is heel goed mogelijk dat u de een of de ander alleen voor uw eigen behoeften hoeft op te ruimen.

Voor degenen die zich afvragen, OS X Yosemite heeft mDNSResponder afgeschaft, dus het is niet nodig om dat mDNSResponder-proces te doden om DNS-caches te vernieuwen, zoals in eerdere versies van Mac OS X.

DNS cache-gegevens controleren in OS X Yosemite

Als u DNS wijzigt of gaat wijzigen en u wilt wat details zien over wat er momenteel in de cache staat, kunt u de volgende opdrachten gebruiken:

Krijg UDNS cache-statistieken:

sudo discoveryutil udnscachestats

U kunt ook informatie over multicast DNS-cache ophalen met het volgende:

sudo discoveryutil mdnscachestats

Beide geven details over het aantal DNS-vermeldingen dat in de cache is opgeslagen, en bieden een rapport dat er als volgt uitziet:

UDNS Cache Stats: Cached 962 of 1750

Als u deze opdrachten uitvoert vóór en na het uitvoeren van de flushcache-variaties, zult u merken dat ze moeten worden gereset naar 0 entries cache, zoals:

MDNS Cache Stats: lo0: Cached 0 of 2000

Hoe weet je of het is veranderd?

Nadat u de cache hebt doorgespoeld, kunt u, als u wilt bepalen of een naamserver of IP daadwerkelijk is gewijzigd, de 'dig'-opdracht met de URL gebruiken zoals:

dig osxdaily.com

dig is vergelijkbaar met nslookup, behalve dat het een betere uitvoer en een paar meer details bevat, inclusief de querytijd, de ingestelde DNS-server die wordt gebruikt om toegang te krijgen tot het domein en een tijdstempel, die allemaal waardevol kunnen zijn bij het oplossen van problemen met naamserver. Trouwens, als de vraag naar dit als traag wordt weergegeven, moet u een hulpprogramma als naamsbekend gebruiken om een ​​snellere DNS-server voor u te vinden, vaak Google DNS of OpenDNS.

Weet u nog van een DNS-cachetruc voor de nieuwste versies van OS X? Laat het ons weten in de comments.