DNS, etc. lookup

by Gisle Hannemyr

This chapter shows …

Table of contents

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.

noteIn 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

noteIf 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 Infoformation

Final word

[TBA]


Last update: 2013-03-02 [gh].