Nslookup

From EIK wiki

Sissejuhatus

Nslookup on arvutiprogramm (Windows ja *nix süsteemides) mida kasutatakse päringute esitamiseks DNS serverile, et saada infot võrgu kohta,
muu hulgas konkreetse arvuti IP aadress, MX record (domeeni elektronposti süsteemi kirje, nimi ja aadress) ja domeeni nimeserver.
Nimi Nslookup on lahtiseletatult „name server lookup“ ehk nimeserveri otsing.

Kasutus valdkonnad

Nslookup on kasulik tööriist DNS (Domain Name System „domeeninimede süsteem“) probleemide lahendamisel, näiteks arvuti võrgunime leidmine. Nslookup’i käivitamisel näitab see esmalt arvuti nime ja kohaliku süsteemi DNS aaddressi (Windows keskonnas) ning seejärel kuvab käsuviiba edasiste päringute jaoks. Sisestades ? (küsimärgi) näitab Nslookup kõiki võimalikke käske.
Programmist saab väljuda kirjutades exit ja vajutades Enter.

Nslookup help.png
Nslookup'i abifunktsioon

Arvuti (host'i) IP aadressi otsinguks, kasutades DNS’i, kirjutada arvuti nimi ja vajutada Enter. Nslookup kasutab otsinguks vaikimisi arvutis seadistatud DNS serverit, kuid seda on võimalik suunata ka mujale teisele DNS serverile, kirjutades selleks server name (kus name on arvuti nimi kus asub server mida tahetakse tulevikus kasutada) Kui teine server on määratud, siis kõik mida peale seda sisestada tõlgendatakse arvuti nimena.

Nslookup name-to-IP.png
Nslookup'i mitte-interaktiivne režiim (Nslookup andis nimele starman.ee vastava IP aadressi)

W7 command prompt.png
Nslookup' interaktiivne režiim > nslookup / > set debug / > starman.ee Command Prompt'i käsureal ...


Nslookup (smaller).png
... samad käsud Terminal'i aknas (esmast arvuti nime ja DNS aaddressi näitamist ei ole)

Nslookup Windows PowerShell.png
Nslookup /set all käsk Windows PowerShell aknas.

Kogu > nslookup / > set debug / > starman.ee korraldusega Command Prompt'i aknas kuvatav info


Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Heiki>nslookup
Default Server:  buffalo.setup
Address:  192.168.1.1

> set debug
> starman.ee
Server:  buffalo.setup
Address:  192.168.1.1

------------
Got answer:
    HEADER:
        opcode = QUERY, id = 2, rcode = NXDOMAIN
        header flags:  response, auth. answer, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        starman.ee.starman.ee, type = A, class = IN
    AUTHORITY RECORDS:
    ->  starman.ee
        ttl = 5186 (1 hour 26 mins 26 secs)
        primary name server = ns.starman.ee
        responsible mail addr = hostmaster.starman.ee
        serial  = 2010042801
        refresh = 10800 (3 hours)
        retry   = 1800 (30 mins)
        expire  = 604800 (7 days)
        default TTL = 259200 (3 days)

------------
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 3, rcode = NXDOMAIN
        header flags:  response, auth. answer, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        starman.ee.starman.ee, type = AAAA, class = IN
    AUTHORITY RECORDS:
    ->  starman.ee
        ttl = 5186 (1 hour 26 mins 26 secs)
        primary name server = ns.starman.ee
        responsible mail addr = hostmaster.starman.ee
        serial  = 2010042801
        refresh = 10800 (3 hours)
        retry   = 1800 (30 mins)
        expire  = 604800 (7 days)
        default TTL = 259200 (3 days)

------------
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 4, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 2,  additional = 2

    QUESTIONS:
        starman.ee, type = A, class = IN
    ANSWERS:
    ->  starman.ee
        internet address = 62.65.192.24
        ttl = 6887 (1 hour 54 mins 47 secs)
    AUTHORITY RECORDS:
    ->  starman.ee
        nameserver = ns.starman.ee
        ttl = 8589 (2 hours 23 mins 9 secs)
    ->  starman.ee
        nameserver = ns2.starman.ee
        ttl = 8589 (2 hours 23 mins 9 secs)
    ADDITIONAL RECORDS:
    ->  ns.starman.ee
        internet address = 62.65.192.1
        ttl = 9009 (2 hours 30 mins 9 secs)
    ->  ns2.starman.ee
        internet address = 85.253.0.134
        ttl = 10795 (2 hours 59 mins 55 secs)

------------
Non-authoritative answer:
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 5, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        starman.ee, type = AAAA, class = IN
    AUTHORITY RECORDS:
    ->  starman.ee
        ttl = 5187 (1 hour 26 mins 27 secs)
        primary name server = ns.starman.ee
        responsible mail addr = hostmaster.starman.ee
        serial  = 2010042801
        refresh = 10800 (3 hours)
        retry   = 1800 (30 mins)
        expire  = 604800 (7 days)
        default TTL = 259200 (3 days)

------------
Name:    starman.ee
Address:  62.65.192.24

>



Selles näites andis nslookup ISP (Internet Service Provider - Interneti teenuse pakkuja)
* IP aadressi
* ISP mõlema nimeserveri IP aadressid
ehk ISP ametlik võrguinfo mis on vajalik Interneti teenuse kasutamiseks.


Nslookup kasutab domeeni nime taandamise (devolution) meetodit. Kui kirjutada arvuti nimi ja vajutada Enter, siis Nslookup lisab arvuti nimele lõppu arvuti domeeninime (näiteks: cswatcp.reskit.com) enne DNS -ile päringu saatmist. Kui nime ei leita siis domeeni nimi taandatakse ühe taseme võrra (antud näites reskit.com) ja päringut korratakse.
Windows 2000 arvutid taandavad nimed ainult teise taseme domeenini (selles näites reskit.com), nii et kui päring ei anna tulemusi siis rohkem nime lahendamise katseid ei tehta. Kui täielik domeeninimi sisse tippida (seda näitab punkt nime alguses), siis DNS serverile saadetakse päring ainult selle nime kohta ja mitte mingisugust taandamist ei tehta.
Et otsida nime arvutile mis asub täielikult väljaspool oma domeeni, on vaja sisestada täielik domeeninimi („fully qualified domain name“).

Nslookup’i silumisrežiim

Nslookup’i silumisrežiim on kasulik veaotsingul; kohaliku arvuti saab panna sellesse režiimi kirjutades set debug , või veelgi detailsema diagnostika jaoks, set d2 . Silumisrežiimis (debug mode), Nslookup näitab nimekirja kõikidest sammudest mida tehti et käsku täita nagu näha sellest näitest:


C:\>nslookup

(null) testpc1.reskit.com

Address: 172.16.8.190

> set d2

> rain-city

(null) testpc1.reskit.com

Address: 172.16.8.190

------------

SendRequest(), len 49

HEADER:

opcode = QUERY, id = 2, rcode = NOERROR

header flags: query, want recursion

questions = 1, answers = 0, authority records = 0, additional = 0

QUESTIONS:

rain-city.reskit.com, type = A, class = IN

------------

------------

Got answer (108 bytes):

HEADER:

opcode = QUERY, id = 2, rcode = NOERROR

header flags: response, auth. answer, want recursion, recursion avail.

questions = 1, answers = 2, authority records = 0, additional = 0

QUESTIONS:

rain-city.reskit.com, type = A, class = IN

ANSWERS:

-> rain-city.reskit.com

type = CNAME, class = IN, dlen = 31

canonical name = seattle.reskit.com

ttl = 86400 (1 day)

-> seattle.reskit.com

type = A, class = IN, dlen = 4

internet address = 172.16.2.3

ttl = 86400 (1 day)

------------

(null) seattle.reskit.com

Address: 172.16.2.3

Aliases: rain-city.reskit.com


Selles näites andis kasutaja korralduse set d2 et viia Nslookup silumisrežiimi. Kasutaja proovis lihtsat aadressiotsingut nimele „rain-city“.
Esimesed kaks rida näitavad arvuti nime ja DNS serveri aadressi kuhu päring läks. Järgmine lõik näitab kohaliku arvuti domeeninime (reskit.com) liidetuna nimele „rain-city“. Nslookup esitas selle nime DNS serverile päringuks.

Järgnev lõik näites viitab sellele, et Nslookup sai serverilt vastuse. DNS server andis kaks kirjet vastusena samale päringule. Küsimus (päring) on vastuses näidatud kaks korda koos mõlema saadud vastusega. Praegusel juhul esimene vastuskirje näitab, et nimi „rain-city.reskit.com“ on tegelikult cname, ehk canonical name (kanooniline nimi) ehk alias arvutile nimega „seattle.reskit.com“. Teine vastuskirje näitab sellele arvutile kuuluvat IP aadressi 172.16.2.3


Nslookup’i käsud

Kokkuvõttlikul kujul <Käsk - funktsioon> kokku kõik Nslookup’i võtmed.
Identifikaatorid on näidatud suurete tähtedega ja valikulised käsud on sulgudes.
Vigast käsku tõlgendab Nslookup arvuti nimena

nslookup - käivitab nslookup programmi
set debug - käivitab nslookup’i sisemise silumisrežiimi
set d2 - käivitab nslookup’i paljusõnalise silumisrežiimi
host name - tagastab arvuti nimele vastava IP aadressi
NAME - esitab info arvuti / domeeni kohta kasutades selleks vaikimisi määratud serverit
NAME1 NAME2 - sama mis eelmine kuid kasutab teist nime reas serverina
help või ? - näitab infot enimkasutatavate käskude kohta
set OPTION - seab valikulise võimaluse (vt. ka Nslookup: set type)
All - näitab valikud , serveri IP aadressi ja arvuti nime, so. hetkel kehtivaid seadeid
[no]debug - näitab silumis infot
[no]defname - lisab igale päringule domeeni nime
[no]recurse - nõuab iseendale viitavat vastust (rekursiivset vastust)
[no]search - kasutab domeeni otsingu nimekirja
[no]vc - kasutab alati virtuaalset ahelat "Virtual Circuit"
domain=NAME - seab vaikimisi domeeninime ANTUD NIMEKS
port - määrab TCP/UDP DNS nimeserveri vaikimisi pordinumbrite asemele antud pordinumbri
search - lisab DNS domeeninimesid DNS domeeniotsingu nimekirja kuni saab päringule vastuse. See on kehtiv siis, kui otsingunimede hulk ning otsingu päring sisaldab vähemalt ühe punkti ".", kuid ei lõppe punktiga.
srchlist=N1[/N2/.../N6] - seab domeeni nimeks N1 ja otsingu nimekirjaks N1, N2 jne.
root=NAME - seab juurserveriks ANTUD NIMELE vastava serveri
retry=X - seab uuesti proovimiste arvu X korrale
timeout=X - seab algse loobumisaja X sekundile
type=X - seab päringutüübi (näiteks A, ANY, CNAME; MX; NS; PTR, SOA, SRV) vt. SET Type
querytype=X - sama mis „type=X“ vt. eelmine
class=X - seab päringu klassi (nt. IN (Internet), ANY)
[no]msxfr - kasutab MS kiiret tsooni ülekannet
ixfrver=X - versiooninumber (X) mida kasutada IXFR ülekande päringul
ignore - ignoreerib pakettide lühenemise vigu
Server NAME - seab vaikeserveri NIMELISEKS kasutades jooksvat vaikeserverit
Lserver NAME - seab vaikimisi NIME kasutades algset serverit
Finger [USER - (Finger on programm mis näitab sisseloginud kasutajate andmeid.) Näitab KASUTAJA andmeid jooksval arvutil.
Root - seab jooksva vaikeserveri juurserveriks
ls [opt] DOMAIN [> FILE] - väljastab DOMEENIS olevate aadresside nimekirja (valik: väljastab nimekirja FAILINA)
-a - väljastab kanoonilised nimed ja aliased
-d - väljastab loendi kõikidest kirjetest
-t TYPE - väljastab loendi ainult määratub tüüpidest (nt. A, CNAME, MX, NS, PTR jne. )
View FILE - sorteerib eelnevalt kirjeldatud ’ls’ valiku väljundfaili ning näitab seda lehekülg haaval
exit - väljub Nslookup programmist ning naaseb käsureale

Nslookup: set type

Nslookup: set type käsk mõjutab Nslookup'i otsinguid.

Süntaks

set ty[pe]=ResourceRecordType 

parameeter ResourceRecordType  : määrab DNS ressursi kirje tüübi
Vaikimisi tüüp on A.
Järgnev loendi näitab sellele käsule lubatud väärtused kujul <Väärtus - Kirjeldus>

A - määrab kasutatavaks arvuti IP aadressi
ANY - määrab kasutatavaks kõik andmetüübid
CNAME - määrab aliase kanoonilise nime
GID - määrab grupi ID või grupi nime
HINFO - määrab kasutatavaks arvuti protsessori ja OP süsteemi tüübi
MB - määrab kasutatavaks e-postkasti domeeni nime
MG - määrab kasutatavaks mailigrupi liikme nime
MINFO - määrab kasutatavaks postkasti või postitusnimekirja info
MR - määrab maili ümbernimetamise domeeni nime
MX - määrab kasutatavaks e-posti vahendaja
NS - määrab nimetatud tsoonile DNS nimeserveri
PTR - määrab arvuti nime kui päringus on IP aaderss, muul juhul viitab muule infole
SOA - määrab start-of-authority DNS tsoonile.
TXT - määrab tekstilise info
UID - täpsustab kasutaja ID
UINFO - täpsustab kasutajainfo
WKS- kirjeldab teada-tuntud teenust

Nslookup veateated

Kui otsingul päring nurjub, väljastab Nslookup veateate.
Veateated võivad olla:


Timed out - server ei vastanud määratud aja ja määratud proovimiskordade jooksul. (võib proovida muuta päringu aegumise perioodi set timeout käsuga ja proovimiskordade arvu set retry käsuga)
No response from server - serverarvutis DNS ei tööta
No records - DNS nimeserveril pole esitatud päringutüübile vastavaid kirjeid, kuigi arvuti nimi on kehtiv. (päringu tüübi saab määrata set querytype käsuga)
Nonexistent domain - sellenimelist arvutit või DNS domeeninime ei eksisteeri
Connection refused või Network is unreachable - DNS server või finger serveriga pole võimalik ühenduda. (see viga ilmneb tavaliselt ls ja finger päringute puhul)
Server failure - DNS server avastas oma andmebaasis mittetäielikud andmed ega suuda anda tõest vastust
Refused - DNS nimeserver keeldus vastamast
Format error - - DNS server leidis, et päringupakett ei olnud õiges formaadis. (võib viidata veale NSlookup programmis)

Veebipõhine Nslookup

On olemas ka veebipõhised nslookup töövahendid, kuid need on märksa vähemate võimalustega. Sobivad eelkõige juhul, kui ei ole tarvis põhjalikku diagnostikat või, kui käsurea kasutamine pole võimalik.


Allikad

Autor

Heiki Tamm
DK21