You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 19 Next »

TDAT 2004 Datakommunikasjon med nettverksprogrammering

Oppgavenr 19 - Ressurs records

Jens Tobias Kaarud, Knut-Egil Opseth

1. Innledning

Resource Records (RR) er en del av DNS-tjenesten, som brukes til å sende informasjon som svar på en DNS-lookup. Formatet og datatypene er definert av "Internet Engineering Task Force", i en rekke "RFC" (Request for Comments)-dokumenter. De ble først beskrevet i RFC 1035 "Domain Names - Implementation and Specification", som kom ut i 1987. Dette RFC-dokumentet beskrev også mange andre detaljer om hvordan DNS-systemet skulle implementeres.

2. Ønsket funksjonalitet 

Resource records er en del av DNS-databasen som inneholder informasjon om domenet. Hvis man tenker på den aktuelle DNS-serveren som en tabell i en database, er ressursrecords de forskjellige attributtene (søylene) til hvert innslag. De lagres i "zone files" på DNS-serveren.

Ressursrecords inneholder nødvendig informasjon om adressene som DNS-serveren tjener. Den mest grunnleggende funksjonen til en DNS-tjener er å returnere IP-adressen som hører til et domenenavn, og dette er én type RR. Det finnes også mange andre typer data man kanskje vil sende som svar på en DNS-lookup, og RR-er brukes til akkurat dette.

3. Virkemåte

Alle RR-er på en server lagres i en "zone file". Når en applikasjon sender inn en adresse til DNS-serveren, returnerer serveren et sett med resource records sammen med IP-adressen som hører til tekstadressen. Hver RR har de følgende feltene:

FeltBeskrivelse
NAMEDomenenavnet til noden i DNS-treet.
TYPETypen informasjon som inneholdes i RR-en. Hver type er koblet til et tall, som brukes her.
CLASS"Klassen" til RR-en, vanligvis "IN" for internett-relaterte RR-er. 
TTL"Time to live", antall sekunder RR-en skal regnes som gyldig. Hvis en RR endres, vil TTL bestemme hvor lang tid det tar før den oppdateres. Dette feltet er ikke obligatorisk, og hvis det ikke finnes vil den arve TTL-tid fra SOA-recorden.
RDLENGTHLengden på datafeltet.
RDATASelve informasjonen som inneholdes i RR-en. Akkurat hva som finnes i dette feltet avhenger av TYPE-feltet.

Datatyper:

Det finnes svært mange datatyper. Her er en liste over noen som er i bruk i dag:

NavnFullt navnBeskrivelseFormateksempel
AAddressDette er en 32-bits IPv4-adresse, som brukes når DNS-serveren skal returnere IP-adressen som hører til et domenenavn. Dette er den mest grunnleggende funksjonen til en DNS-server.
;machinename	[TTL]	class	A	address
sirius		IN		A	123.45.6.1
AAAAAddressDette er det samme som A, men istedetfor en 32-bits IPv4-adresse er dette en 128-bits IPv6-adresse.
;machinename	[TTL]	class	AAAA	address
sirius		IN		AAAA	3ffe:1900:4545:2:02d0:09ff:fef7:6d2c
CNAMECanonical Name

Dette er en type "alias", eller "kallenavn", som brukes for å "videresende" DNS-lookups. Den inneholder et annet domenenavn, og hvis det første søket returnerer en CNAME vil DNS-tjenesten fortsette søket med det nye navnet som inneholdes i CNAME-RR-en.

;nickname      [TTL]	class	CNAME	canonical-name
mailhost		IN	CNAME	antares.doc.com
MXMail ExchangeDenne brukes for å identifisere hvilken server epost som sendes til et domene skal ende opp på. Man kan sette opp flere slike med et prioritetsnummer, som angir hvilken som brukes hvis den med lavest prioritetsnummer ikke kan nås. Man kan også gi samme nummer til flere, og da vil én velges vilkårlig.
;name	 	[TTL]	class		MX	 preference mailer-exchanger
Munnari.OZ.AU.		IN		MX	 0	Seismo.CSS.GOV.
foo.com.		IN		MX	 10	RELAY.CS.NET.
*.foo.com.		IN		MX	 20	RELAY.CS.NET.
SOAStart of Authority

En SOA-RR viser hvor en ny DNS-sone begynner. Den inneholder autorisasjonsinformasjon om DNS-sonen, og må finnes der domenet delegeres fra foreldredomenet. Den inneholder den følgende informasjonen:

MNAMEDomenenavnet til serveren som er hovedkilden til dataen i denne sonen.
RNAMEEpostadressen til administratoren i denne sonen.
SERIALEt versjonsnummer, som brukes for å sjekke om sonen er oppdatert. Ofte brukes en dato, men det er også vanlig å bruke et enkelt inkrementerende heltall. Den brukes for å sjekke om en barnesone må oppdatere sin egen DNS-database.
REFRESHEt antall sekunder man skal vente mellom hver gang man spør foreldresonen om den er oppdatert. Dette gjøres ved å sjekke sin egen SERIAL mot foreldrens.
RETRYEt antall sekunder man skal vente mellom forsøk på å refreshe sonen ved å hente ny DNS-database fra foreldresonen.
EXPIREDenne sier hvor lenge sonen skal uavhengig svare på requests (hvis den ikke får svar fra foreldresonen), før man må gå gjennom foreldresonene igjen for å komme seg hit.
MINIMUMDette feltet viser en minimumstid for TTL-feltet i RR-er, og brukes når det ikke er spesifisert noen TTL i en RR.

De tre timerne REFRESH, RETRY og EXPIRE er alle i et antall sekunder, og har mye å si for hvor lang tid det tar før en DNS-oppdatering sprer seg gjennom internett.

;name class 		SOA 	origin				 person-in-charge
doc.com. IN		SOA	dnsmaster.doc.com. root.nismaster.doc.com. (
							101			;Serial
							7200		;Refresh
							3600		;Retry
							432000		;Expire	
							86400)		;Minimum			 )
TXTTextDenne kan brukes for å sette inn vilkårlig informasjon i tekstform. Opprinnelig ment for lesbar tekst, men den brukes nå til mange andre formål, for eksempel verifisering av e-post. Man kan ha flere TXT-felt som hører til samme adresse.
;hostname      [TTL] 	 class	TXT	text	
www            90000     IN	TXT 	"Hello"
NSName ServerViser hvilken navneserver som er ansvarlig for sonen. Det må finnes én slik record for hver server i domenet.
;domainname    [TTL] 	 class	NS	nameserver	
doc.com        90000     IN	NS 	sirius.doc.com.
PTRPointer

I teorien er denne veldig lik CNAME, i det at den peker til en annen adresse i domenet.

Denne brukes i praksis som en omvendt "A", i at den mapper et domenenavn til en IP-adresse. Den kan brukes for å slå opp hva det faktiske ("canonical") domenenavnet til en IP-adresse er. Dette kan for eksempel brukes som en sikkerhetsfunksjon i epostmottak, da man kan slå opp IP-adressen som sendte mailen og sjekke hvor den kom fra.

;special name   [TTL]	class	PTR-real-name
1			IN	PTR sirius.doc.com.
HINFOHost InfoDenne inneholder informasjon om hvilken hardware og OS som brukes i vertsmaskinen. Noen ser på denne som en sikkerhetsrisiko, fordi den gir informasjon om vertsmaskinen, så den er mindre i bruk i dag.
;[name]   [TTL] class HINFO   hardware    OS
                IN    HINFO   Sparc-10    UNIX


4. Referanser

IETF RFC 1035 fra 1987, der man først definerte RR-systemet (i kapittel 3).

Formateksemplene ovenfor er stort sett hentet fra denne siden.

  • No labels