DNS, etc. lookup
This chapter shows …
Table of contents
- Check connection: ping
- Check routing: traceroute
- Check domain ownership: whois
- DNS queries
- Final word
Introduction
[Legacy text from the Oslonett end user manual. Need to be updated and translated to English.]
Det er mulig fra CLI å rette en rekke forespørseler til ulike administrative databaser og informasjonstjenenere. Adgangen til slike forespørsler er uunnværlig for administratorer, men også andre typer brukere kan fra tid til annen ha behov for å hente ut informasjon om maskiner og nett. Beskrivelse av de mest sentrale kommandoer for å gjøre dette er samlet i dette kapitlet.
I tillegg til CLI, så finnes det også web-grensesnitt mot en del av informasjonstjenerene. Se for eksempel: http://www.internic.net/ og http://www.ripe.net/.
Check connection: ping
Kanskje er ikke ping
verdens mest spennende program, men til feilsøking er det
uunværlig.
Det ping
gjør er å sende en eller flere av
ICMP-protokollens ECHO_REQUEST
datagram til en
annen maskin, som så sender de samme pakkene tilbake. Fordi ping er et
så enkelt program er det lite som kan gå galt. Det er altså et
program som du kan bruke til å sjekke at du kan sende pakker ut på
Internett, at du kan motta pakker fra Internett og at maskinen du
anroper er i stand til å svare.
Det finnes mange ulike utgaver ping
som følger med ulike utgaver av Unix og GNU/Linux.
Som argument til ping
oppgir du maskinen du
vil, anrope, for eksempel elvis.com. Eksempel:
$ ping elvis.com elvis.com is alive
Svaret (elvis.com is alive) indikerer at alt er i orden. Dersom noe er galt kan man i stedet få som svar:
$ ping george.w.bush.com no answer from george.w.bush.com $ ping ivana.trump.com /usr/etc/ping: unknown host ivana.trump.com
I det første tilfellet eksisterer den vertsmaskin man anroper (george.w.bush.com), men den er ikke i stand til å gi noe fornuftig svar. I det andre tilfellet finnes ikke vertsmaskinen.
For sjekk av kvaliteten på en bestemt forbindelse kan du oppgi
velgeren -s
til ping
. Da vil
programmet sende en pakke hvert sekund, og rapportere hvor lang tid
signalet bruker fram og tilbake. Du avbryter ved å trykke
^C
, og programmet vil da skrive ut oppsummerende
statistikk. Alt dårligere en 0% pakketap (packet loss) indikerer at
noe er galt.
$ /usr/etc/ping -s elvis.com PING elvis.com: 56 data bytes 64 bytes from elvis.com (207.19.162.6): icmp_seq=0. time=137. ms 64 bytes from elvis.com (207.19.162.6): icmp_seq=1. time=145. ms 64 bytes from elvis.com (207.19.162.6): icmp_seq=2. time=136. ms ^C ----elvis.com PING Statistics---- 3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms) min/avg/max = 136/139/145
Check domain ownership: whois
The whois CLI command is an interface to a query and response protocol (also named whois) that may be used to query databases that store the registered users or assignees of an Internet resource. In this context, an Internet resource may be a domain name, an IP address block, or an AS (autonomous system). The protocol also provides means to access other information stored in these databases.
$ whois hannemyr.com [Querying whois.internic.net] [Redirected to whois.dotregistrar.com] [Querying whois.dotregistrar.com] [whois.dotregistrar.com] […] Registrant: Hannemyr Nye Medier AS (HANNEMYR-COM-DOM) […]
Check routing: traceroute
[TBA]
DNS queries
DNS (Domain Name System) is a hierarchical distributed naming system for computers, services, or any resource connected to the Internet or a private network. It associates various information with domain names assigned to each of the participating entities. Most prominently, it translates domain names meaningful for humans to the numerical IP addresses needed for the purpose of locating computer services and devices worldwide. By providing a worldwide, distributed keyword-based redirection service, DNS is an essential component of the Internet.
Informasjonen i DNS befinner seg ikke i en sentral database. Den er distribuert ut i en mengde innbyrdes forbundne navnetjenere spredt ut over hele Internett.
A DNS name server will hold two sets of data: Zone data and cached data.
A DNS zone is a portion of a domain name space for which administrative responsibility has been delegated. The root zone xxxxxxx The first type are datasets refered to as zones. A zone is simply a complete database for a specific part of the domain namespace.
Data i en sone kalles for autoritative.
Den andre typen er kopier av data som nylig er benyttet. Disse dataene er verken autoritative eller komplette, men ved å ha dem liggende midlertidig i en lokal navnetjener går det langt raskere å slå opp data fra DNS som ofte gjenbrukes.
DNS er hierarkisk organisert. På toppen av et invertert tre finner vi roten. Rett under roten finner vi såkalte toppdomener (com, net, osv. såvel som alle de nasjonale tobokstavs-kodene.
De fleste Unix-systemer tilbyr en rekke ulike kommandoer for å spørre DNS-tjenere om ulike ting. Brukes av noen av disse kommandoene vises nedenfor.
In some literature, you may come across references to the program nslookup as the preferred means for doing DNS queries. However, the Internet Systems Consortium has deprecated nslookup in favour of host and dig.
DNS query: host
Kommandoen host
kan benyttes for å slå opp i
DNS for å hente ut den informasjonen som DNS vedlikeholder om
Internett vertsmaskiner.
Uten velgere vil host
rett og slett konvertere mellom
IP-adresser (IP-nummer) og DNS-navn (domenenavn). Gitt det ene
vil kommandoen forsøke å returnere det andre (formatet på svaret
kan imidlertid variere litt med ulike versjoner av
host
):
$ host hasle.sn.no hasle.sn.no has address 194.143.8.25 $ host 194.143.8.25 Name: hasle.sn.no Address: 194.143.8.25
IP-nummeret er svært viktig informasjon dersom man etterforsker ulike type misbruk (abuse) som har utspring i et domene. Ut fra IP-nummeret kan man identifisere hvem som eier nettblokken som IP-nummeret befinner seg i, og dermed hvem som klager og notice and takedown forespørsler skal rettes til. For dynamiske IP-adresser vil nettblokkeier også være ISP med tilgang logger som kan knytte IP-adresser opp mot en bestemt abonnent på et gitt tidspunkt.
For nettsteder som befinner seg på virtuelle vertsmaskiner (virtual hosts), kan vi benytte reversoppslag for å finne ut hva slags DNS-navn vertsmaskinen “egentlig” har.
$ host hannemyr.com hannemyr.com has address 156.116.1.6 $ host 156.116.1.6 6.1.116.156.in-addr.arpa domain name pointer bar.nr.no.
Vær imidlertid klar over at revers-oppslaget ikke alltid forteller hele historien. Innholdet som lagres under to domenene hannemyr.com og hannemyr.no befinner seg fysisk på samme vertsmaskin, men det er bare hannemyr.com som er satt opp med en adresse-record (A-record) i DNS. Domenet hannemyr.no er realisert som www-videresending. Det vil si forespørselen først går til en annen vertsmaskin, som umiddelbart videresender denne til maskinen det pekes til. At en slik videresending skjer fremgår imidlertid ikke av revers-oppslaget, jf.:
$ host hannemyr.no hannemyr.no has address 194.63.248.47 $ host 194.63.248.47 47.248.63.194.in-addr.arpa domain name pointer grand.domeneshop.no.
Et domene kan også registreres som en såkalt CNAME record eller C record (C=Canonical Domain). Dette er DNS-pekere som viser til en eksisterende A record. De brukes for å registrere subdomener og alias (der samme maskin kan ha flere navn). Nedenfor vises resultatet av et DNS-oppslag der hannemyr.com er et CNAME for bar.nemo-project.org.. I motsetning til www-videresending framgår pekingen her av DNS queryet.
$ host www.hannemyr.com www.hannemyr.com is an alias for bar.nemo-project.org. bar.nemo-project.org has address 156.116.1.6
Revers-oppslag skal i prinsippet returnere DNS-navnet på en vertsmaskin, gitt en IP-adresse. Desverre er det ingen garanti for at dette fungerer, eller gir riktig svar. For at revers-DNS skal fungerer er man avhengig av å kunne vite hvilken navnetjener som betjener revers DNS for domenet. I mange tilfelle er DNS delegert til et domene, uten at dette er den som eier navneblokken for domenet (ISP) har registrert hvem dette er delegert til, jf.:
$ host starkdigital.co.uk starkdigital.co.uk has address 209.160.72.113 $ host 209.160.72.113 Host 113.72.160.209.in-addr.arpa not found: 3(NXDOMAIN)
I slike tilfelle må vi benytte andre teknikker for å finne ut
navnet på vertsmaskinen. I eksemplet under gir telnet
til port 25 (smtp) et velkomst-banner der maskinens navn er
oppgitt. Et forover-oppslag med host
bekrefter at dette
er gyldig:
$ telnet 209.160.72.113 25 Trying 209.160.72.113… Connected to 209.160.72.113. Escape character is '^]'. 220-admin.jhost.name ESMTP Exim 4.52 #1 Sat, 09 Dec 2006 09:07:01 -0500 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk email. 221 admin.jhost.name closing connection ^] telnet> quit $ host admin.jhost.name admin.jhost.name has address 209.160.72.113
If
you cannot cannot type ^] (Ctrl+]
) on your keyboard, you may start telnet with a custom escape key:
$ telnet -e x 209.160.72.113 25
.
Escape character is 'x'.
Andre porter som kan gi slik informasjon er 110 (pop) og 119 (nntp).
Legg merke til at det domenenavnet vi nå finner (admin.jhost.name) er et annet enn det vi tidligere har funnet gir forover-oppslag til 209.160.72.113 25 (starkdigital.co.uk). Dette er fordi denne vertsmaskinen tilhører en ISP som selger såkalte virtuelle domener og starkdigital.co.uk er bare ett av mange hundre domener denne maskinen er vertsmaskin for. Når vi kjenner vertsmaskinenes domenenavn kan vi som regel finne hvem som er ISP for domenet, og dermed hvem som klager over misbruk av domenet kan rettes mot.
Du kan bruke host
til å hente ut ytterligere
informasjon om en maskin eller et domene ved hjelp av flere
velgere. Det er ganske mange av dem (les manualsiden for hele
historien). De viktigste er -a
og -t
.
Velgeren -a
gir deg all tilgjengelig informasjon som
navnetjeneren har om et domene.
Velgeren -t
lar deg angi nærmere hvilken type
informasjon du er interessert i. Tre av de mest nyttige type
forespørsler er mail exchanger (mx), start of
zone of autorithy (soa) og descriptive text (txt).
En mail exchanger er en angivelse av en hvilke maskiner som er ansvarlig for å utveksle epost på vegne av domenet (et slags postkontor). Ikke alle domener håndterer siden egen epost. For eksempel er et domene som befinner seg på en oppringt forbindelse, og som derfor bare er sporadisk tilgjengelig online, være avhengig av at det eksisterer et postkontor som alltid er tilgjengelig for mottak av post til domenet.
$ host -t mx hannemyr.no hannemyr.no mail is handled by 10 mx.domeneshop.no.
Ved å spørre om start of zone of autorithy kan vi vite hvilken maskin det er som er første autoritet for sonen. Forespørselen forteller oss dessuten hvilket domene sonen vedlikeholdes fra, et serienummer, og følgende tidsparametre i sekunder for ikke-autoritative navnetjenere som skal inneholde en kopi av data fra sonen: hvor ofte dataene skal fornyes (refresh), hvor raskt den skal forsøke på nytt dersom en feilsituasjon oppsto ved fornyelse (retry), hvor data det skal gå for en kopi skal betraktes som utløpt (expire), og minimum levetid for lokale kopier (minimum Time To Live).
$ host -t soa hannemyr.com hannemyr.com start of authority ns.eyepublish.com hostmaster.eyepublish.com( 98120200 ;serial (version) 86000 ;refresh period 7200 ;retry refresh this often 3600000 ;expiration period 43200 ;minimum TTL )
Av og til kan det være nyttig å finne ut hvilken
navnetjener som faktisk er autorativ for sonen. Dette
gjøres med såkalt revers oppslag og velgeren
-t soa
. Reverser ip-addr, fjern ett eller flere ledd og
legg til .in-addr.arpa
. Fortsett å fjerne ledd til
du ikke får oppgitt en soa:
Eksempel: Hvem er ansvarlig for sonen der en vertsmaskin med
IP-adresse 205.152.253.7
befinner seg?
$ host -t soa 7.253.152.205.in-addr.arpa There is an entry for this host, but it doesn't have a Start of Authority record. $ host -t soa 253.152.205.in-addr.arpa 253.152.205.in-addr.arpa start of authority home.soflo.net postmaster.home.soflo.net( 1997123323 ;serial (version) 10800 ;refresh period 3600 ;retry refresh this often 604800 ;expiration period 86400 ;minimum TTL ) $ host -t soa 152.205.in-addr.arpa 152.205.in-addr.arpa start of authority ns.bellsouth.net hostmaster.bellsouth.net( 1998061501 ;serial (version) 10800 ;refresh period 3600 ;retry refresh this often 604800 ;expiration period 43200 ;minimum TTL )
Det blir stadig mer vanlig å legge inn et tekstfelt som beskriver domenet i DNS. En slik descriptive text kan hentes ut som følger:
$ host -t txt socrates.ti.telenor.net socrates.ti.telenor.net descriptive text "This is a web cache server"
Desverre inneholder ikke alle poster i DNS et slikt felt, slik at forespørselen ofte resulterer i en tom streng.
DNS query: dig
The command dig
(Domain Information Groper) is a
powerful and flexible command for querying DNS information. Look up
the man-page for a full list of commands and options. Typing
dig -h
will give you an overview. The query format is:
$ dig [@nameserver] [domain] [queryoption]
Omitting @nameserver will query the default name server.
Det finnes mer enn femti mulige forespørsler (queryoptions) man kan
rette til dig
. Nedenfor lister jeg bare opp de
vanligste/nyttigste:
-
A
The Address of a hostname. There's only one A-record for each host.
-
NS
The authoritative nameserver for a domain.
-
MX
The mail exchanger for the domain. For example, there is no such machine as demon.net, yet you can send email to user@demon.net. The MX record tells the mail system to send mail for user@demon.net to user@relay-1.mail.demon.net instead.
-
CNAME
An alias for a machine. A number of different names may resolve to the same IP address. A CNAME entry for a domain points you at the real name of the system.
-
HINFO
Hardware and software used by the host
-
RP
The responsible person for a domain.
-
ANY
All records available
-
AXFR
Request a zone transfer.
AXFR is useful – it asks the nameserver to send you all the records it has for a domain. If there is no reverse DNS setup this can be the only way of getting a full list of the machines within a domain. You can only do a zone transfer from the name server that is authoritative for a domain – you can do an NS query at your local nameserver to find out where that is.
Alle tre parametre kan utelates. Skriver du
dig
uten å oppgi noen argumenter:
$ dig
så vil dig
utføre et navnetjenersøk
(NS
) etter navnetjenere som betjener roten
(.
). Resultatet vil være en liste over de
tretten såkalte
“rotserverene”
som gir autoritative svar i forhold til DNS. Skriver du søket
fullt ut (dig . NS
) skal du få samme resultat.
$ dig . NS ; <<>> DiG 9.2.3 <<>> . NS ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34410 ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 1 ;; QUESTION SECTION: ;. IN NS ;; ANSWER SECTION: . 50505 IN NS I.ROOT-SERVERS.NET. . 50505 IN NS J.ROOT-SERVERS.NET. . 50505 IN NS K.ROOT-SERVERS.NET. . 50505 IN NS L.ROOT-SERVERS.NET. . 50505 IN NS M.ROOT-SERVERS.NET. . 50505 IN NS A.ROOT-SERVERS.NET. . 50505 IN NS B.ROOT-SERVERS.NET. . 50505 IN NS C.ROOT-SERVERS.NET. . 50505 IN NS D.ROOT-SERVERS.NET. . 50505 IN NS E.ROOT-SERVERS.NET. . 50505 IN NS F.ROOT-SERVERS.NET. . 50505 IN NS G.ROOT-SERVERS.NET. . 50505 IN NS H.ROOT-SERVERS.NET. ;; ADDITIONAL SECTION: J.ROOT-SERVERS.NET. 223308 IN A 192.58.128.30 ;; Query time: 2 msec ;; SERVER: 129.240.65.5#53(129.240.65.5) ;; WHEN: Tue Nov 22 17:11:11 2005 ;; MSG SIZE rcvd: 244
Eksemplet under viser hvordan man ved hjelp av
dig
finner hvilke maskiner som fungerer som mx
(mail exchange) for domenet
hannemyr.no.
$ dig hannemyr.no mx ; <<>> DiG 9.16.1-Ubuntu <<>> hannemyr.no mx ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11581 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;hannemyr.no. IN MX ;; ANSWER SECTION: hannemyr.no. 3599 IN MX 10 mx.domeneshop.no. ;; Query time: 24 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sat Oct 31 15:06:08 UTC 2020 ;; MSG SIZE rcvd: 70
The default is to print the answer in a verbose form. However, if
you add the query option “+short
”, you will get a terse
answer that just reports the essential information from the answer
section:
$ dig +short hannemyr.no mx 10 mx.domeneshop.no.
For å se om ICANN har godkjent et nytt generisk toppdomene, kan
du bruke dig
for å undersøke om det finnes
autoritative navnetjenere som betjener domenet. Eksempel:
$ dig aero NS […] ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 4 […] $ dig xxx NS […] ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 […]
Dersom det står en null i ANSWER-feltet eksisterer ikke domenet.
willem.com: Dig for dummies.
Autonomous System Numbers
UltraTools ASN InfoformationFinal word
[TBA]
Last update: 2013-03-02 [gh].