Er komt een moment dat u wilt controleren hoe uw DNS zich gedraagt, hoe eenvoudig of complex uw configuratie ook is. Gelukkig hebben computers een ingebouwd hulpprogramma waarmee u dat kunt doen. In dit artikel worden nuttige opdrachten besproken voor de Windows-opdrachtprompt en PowerShell. Ook worden de verschillen tussen de beide hulpprogramma's behandeld. Zit u er klaar voor? Ik neem aan van wel, want daarvoor bent u hier tenslotte. Toch? Nee hoor, ik maak me geen illusies. U hebt dit gedeelte waarschijnlijk gewoon overgeslagen en meteen naar de opdrachten gebladerd. Prima, dat is dan maar zo.
Opmerking: Alle voorbeelden zijn voor een Windows 10-systeem.
Windows introduceerde de oorspronkelijke opdrachtprompt voor Microsoft-besturingssystemen in 1981. Dit programma draait 'onder' Windows en biedt uitgebreidere controle over uw systeem. Het wordt uitgevoerd in een eenvoudig zwart venster met daarin een prompt. Afhankelijk van uw machine kan de prompt er als volgt uitzien: C:\> of C:\Users\voorbeeld. Met dit hulpprogramma kunt u opdrachten van één regel invoeren.
PowerShell voor Windows werd geïntroduceerd in 2006. Deze 'shell', of omgeving, wordt uitgevoerd in een blauw venster en werkt met een soort lichtgewicht opdrachten genaamd cmdlets (voor 'commandlets') in plaats van de opdrachten voor de opdrachtprompt of MS-DOS. Het biedt een scriptingsysteem en ingebouwde beheerfunctionaliteit, en is geschikt voor het uitvoeren van batchopdrachten. Dit betekent dat u een reeks cmdlets kunt uitvoeren in plaats van slechts één opdracht tegelijk. In tegenstelling tot de opdrachtprompt is PowerShell niet beperkt tot consoleprogramma's. De huidige release draait op .Net 5.0, dat ondersteuning biedt voor Linux en macOS. Ook kan PowerShell gebruikmaken van meerdere bibliotheken in verschillende systemen.
Er zijn meerdere manieren om de Windows-opdrachtprompt te starten. Een manier is om het zoekpictogram op de taakbalk te gebruiken en daar 'opdrachtprompt' of 'cmd' in te typen. De app wordt dan weergegeven boven in het zoekvenster onder 'Beste overeenkomst'.
Als u net als ik liever gebruikmaakt van een sneltoets, drukt u op Windows-toets + R om het venster Uitvoeren te openen. Typ 'cmd' en klik op OK. Zo snel gaat dat!
U opent PowerShell op dezelfde manier als de opdrachtprompt. Maar in plaats van 'cmd' typt u 'PowerShell' in het venster Zoeken of Uitvoeren. Als u het zoekvak gebruikt, is er wel een klein verschil; dan worden namelijk zowel Windows PowerShell als PowerShell ISE weergegeven. In dit artikel gebruik ik de standaardversie van PowerShell.
U kunt ook op Windows-toets + X drukken om een menu te openen. Via dit menu kunt u PowerShell uitvoeren als beheerder (Admin). Dit menu bevat ook de opdracht Uitvoeren en andere hulpprogramma's van Windows.
Wist u dit? PowerShell ISE is een hostapplicatie voor PowerShell. ISE staat voor Integrated Scripting Environment. Als u deze optie kiest, is de interface van PowerShell meer zoals die van de opdrachtprompt.
Nu wordt het pas echt leuk! Hieronder volgen een aantal opdrachtprompt-opdrachten voor het troubleshooten of verifiëren van uw DNS. En maak u geen zorgen, ik heb een goede fantasie. Ik doe gewoon net alsof u al mijn werk hierboven gewoon uitgebreid hebt gelezen.
De opdracht nslookup is handig voor het opsporen van problemen met DNS-naamomzetting en is vergelijkbaar met de functie dig op een Mac of Linux-machine. Met deze opdracht zoekt u een IP-adres of host, of voert u een reverse DNS-lookup uit om de domeinnaam van een IP-adres te vinden. Nslookup verschaft ook informatie over de DNS-records voor uw domein.
Een voorbeeld van een nslookup-opdracht is: C:\Users\gebruikersnaam>nslookup dnsmadeeasy.com
In dit voorbeeld heb ik een simpel verzoek om het IP-adres van DNS Made Easy gedaan. Als antwoord heb ik de IPv6- en IPv4-adressen van het domein ontvangen. De reden dat er staat 'non-authoritative answer' (niet-gezaghebbend antwoord) is dat ik een recursieve server voor de query gebruik.
Als u een IP-adres hebt en de bijbehorende domeinnaam wilt weten, kunt u een reverse DNS-lookup doen, oftewel een omgekeerde zoekactie. Deze is hetzelfde als in het vorige voorbeeld, maar dan – u raadt het al – omgekeerd:
C:\Users\gebruikersnaam>nslookup 162.243.68.201
Stel, u wilt de naamserver voor een domein zoeken of een specifieke parameter instellen voor uw opdrachtregel. Daarvoor gebruikt u de Windows-opdracht 'set'. Een voorbeeld:
C:\Users\gebruikersnaam>nslookup
>set q=ns
>dnsmadeeasy.com
(druk na elke opdracht op enter)
Het resultaat ziet er zo uit:
U kunt de opdrachten nslookup en set ook gebruiken om DNS-records voor uw domein te verifiëren of troubleshooten. Dit werkt hetzelfde als in het voorbeeld hierboven, maar nu specificeert u om welke record het gaat. Met behulp van deze informatie kunt u snel fouten of andere problemen opsporen. In het onderstaande screenshot heb ik een lookup uitgevoerd voor MX-, PTR- en SOA-records, maar dat zijn natuurlijk niet de enige die u kunt gebruiken.
C:\Users\gebruikersnaam>nslookup
>set q=mx
>dnsmadeeasy.com
(druk na elke opdracht op enter)
Tip: Als u meerdere typen records wilt controleren, hoeft u niet voor elk type opnieuw 'nslookup' te typen. Na de eerste nslookup-opdracht kunt u voor elke record een set-opdracht uitvoeren; ook als u vervolgens records voor andere domeinen gaat verifiëren.
Tip: Het kan handig zijn om uw DNS-cache te legen voordat u opdrachten gaat uitvoeren. Hiervoor typt u 'ipconfig/flushdns' en drukt u op enter. Uw cache is nu leeg.
Als u meer details wilt van de DNS van uw domein, kunt u de opdracht 'debug' gebruiken. Hiermee krijgt u de header-gegevens van verzoeken bij de DNS-server te zien (zoals in het onderstaande screenshot).
C:\Users\gebruikersnaam>nslookup
>set debug
>example.com
De opdracht 'ping' kunt u in de opdrachtprompt gebruiken om netwerkproblemen op te sporen. Met een ping meet u de vertraging ('latency') in een verbinding met een doellocatie. Voor dit voorbeeld heb ik een pingtest uitgevoerd naar 8.8.8.8, het adres van de openbare DNS van Google.
C:\Users\gebruikersnaam>ping 8.8.8.8
U weet nu hoelang het duurt om een antwoord te ontvangen van de server waarnaar u de ping hebt verzonden.
Een andere handige opdracht voor het opsporen van netwerkproblemen is 'traceroute'. Met die opdracht volgt u de route van een gegevenspakket van het begin- tot het eindpunt. Dit kan met name handig zijn bij verbindingsproblemen. In het volgende voorbeeld heb ik een traceroute uitgevoerd voor de domeinnaam www.example.com en het IP-adres daarvan.
C:\Users\gebruikersnaam>tracert 127.0.0.1
C:\Users\gebruikersnaam>tracert www.example.com
Met deze opdracht verifieert u de route die pakketten afleggen voordat ze bij hun bestemming aankomen. De verschillende stops op de route worden 'hops' genoemd. Bij het aantal hops wordt ook de omzettingstijd voor de query vermeld. Met behulp van die informatie kunt u de snelheid van uw DNS verhogen of opsporen op welke routers problemen optreden.
Tip: De opdrachtprompt houdt bij welke opdrachten u als laatste hebt gebruikt. Druk op de pijl-omhoog om de opdrachten te zien die u eerder in de sessie hebt ingevoerd. In de bovenstaande afbeelding ziet u hoe dit in zijn werk gaat.
Als u de voorkeur geeft aan Windows PowerShell, moet u vooral verder lezen. Hier volgen de PowerShell-equivalenten van de bovenstaande opdrachten:
Nslookup in PowerShell = Resolve-DnsName
PS C:\Users\gebruikersnaam>Resolve-DnsName dnsmadeeasy.com (of C:\Users\gebruikersnaam>Resolve-DnsName 162.243.68.201)
Tip: Om tijd te besparen in PowerShell hoeft u slechts de eerste paar letters van een cmdlet te typen en daarna op Tab te drukken – de rest van de cmdlet wordt dan automatisch aangevuld. Dus als u 'reso' typt en dan op Tab drukt (reso + tab), vult PowerShell dat automatisch aan tot 'Resolve-DnsName'. Dit werkt ook met andere cmdlets, bijvoorbeeld Test-Connection. Typ 'test-con' en druk op Tab om er 'Test-Connection' van te maken, enzovoort.
PowerShell gebruikt de cmdlet Resolve-DnsName voor record-lookups. Als u de record wilt specificeren, moet u 'type' toevoegen aan de cmdlet.
PS C:\Users\gebruikersnaam>Resolve-DnsName dnsmadeeasy.com -Type MX (of een ander recordtype).
Merk op dat ik zowel '-Type' als '-type' heb getypt zonder dat dat uitmaakte voor het uitvoeren van de cmdlet, dus dit is niet hoofdlettergevoelig.
Ping in PowerShell = Test-Connection
PS C:\Users\gebruikersnaam>Test-Connection dnsmadeeasy.com
Het resultaat ziet er anders uit, maar bevat nog steeds de bron (de naam van de computer), de hops en de tijd die het duurde voordat een antwoord werd ontvangen.
Tracert in PowerShell = tracert. In dit geval hebben de cmdlets dezelfde naam.
PS C:\Users\gebruikersnaam>tracert www.example.com
Er zijn diverse uitstekende online hulpmiddelen voor het troubleshooten van DNS. Het voordeel van deze tools is dat u ze overal en op elk apparaat kunt gebruiken. Zo kan de DNS Lookup Tool van ons zusterbedrijf Constellix DNS-records ophalen en controles uitvoeren op basis van geografische locatie. Ook kunt u query's uitvoeren op elke gewenste naamserver. De ondersteunde recordtypen zijn A, AAAA, CNAME, MX, TXT, NS, SOA en SRV.
De DNS Lookup-tool van Constellix biedt nog een paar andere voordelen. U kunt controles uitvoeren voor verschillende domeinen en/of naamservers in dezelfde sessie. De resultaten kunnen worden gefilterd op domein, recordtype, resolver of locatie; en u kunt elke controle uitbreiden en minimaliseren. Daarnaast kunt u de URL van de resultaten kopiëren en naar uw team mailen; een gemakkelijke manier om tijd te besparen.
Met al de hierboven genoemde opties kunt u uw DNS verifiëren en problemen troubleshooten. Belangrijkste punten om te onthouden: De opdrachtprompt, PowerShell en online DNS-tools bieden informatie over naamservers, record-instructies en andere DNS-informatie, maar werken verschillend. De opdrachtprompt werkt met opdrachten van één regel, PowerShell werkt met cmdlets en kan batchopdrachten uitvoeren. En een online lookup-tool zoals die van Constellix voert controles uit op basis van de informatie die u opgeeft.
Het bovenstaande is natuurlijk verre van een compleet overzicht van de opdrachtprompt of PowerShell. Beide programma's kunnen nog zoveel meer. Met de onderstaande links kunt u uw kennis over deze hulpprogramma's veel verder uitbreiden.
Als u dit artikel interessant vond, zijn deze wellicht ook wat voor u:
Lijst van Windows CMD-opdrachten
Introductie tot Windows PowerShell