Product SiteDocumentation Site

10.6. Domenenavnetjenere (DNS)

10.6.1. Prinsipp og mekanisme

Domain Name Service (DNS) er en fundamental del av Internettet: den kartlegger vertsnavn til IP-adresser (og vice versa), som tillater bruk av www.debian.org i stedet for 5.153.231.4 eller 2001:41c8:1000:21::21:4.
DNS-oppføringer er organisert i soner; hver sone svarer enten til et domene (eller et underdomene), eller et IP-adresseområde (siden IP-adresser generelt tildeles fortløpende i rekkefølge). En primærtjener er autoritativ når det gjelder innholdet i en sone; sekundære tjenere, som vanligvis ligger på separate maskiner, gir jevnlig oppdaterte kopier av primærsonen.
Hver sone kan inneholde registreringer av ulike slag (Resource Records):
  • A: IPv4-addresse.
  • CNAME: alias (canonical navn).
  • MX: mail exchange, en e-posttjener. Denne informasjonen blir brukt av andre e-posttjenere for å finne hvor e-poster adressert til en gitt adresse skal sendes. Hver MX-posten har en prioritet. Tjeneren med høyeste prioritet (med lavest nummer) blir prøvd først (se sidefelt DET GRUNNLEGGENDE SMTP); andre tjenere blir kontaktet etter synkende prioritet hvis den første ikke svarer.
  • PTR: Kartlegging av en IP-adresse for et navn. En slik post blir lagret i en «reversert DNS»-sone oppkalt etter IP-adresseområdet. For eksempel er 1.168.192.in-addr.arpa sonen med den reverserte kartleggingen av alle adresser i 192.168.1.0/24-rekkefølgen.
  • AAAA: IPv6-addresse.
  • NS: kartlegger et navn til en navnetjener. Hvert domene må ha minst et NS-opptak. Disse opptakene peker på en DNS-tjener som kan svare på spørsmål om dette domenet; de peker vanligvis på de primære og sekundære tjenere for domenet. Disse opptakene tillater også DNS-delegasjon; for eksempel kan falcot.com-sonen inkludere et NS-opptak for internal.falcot.com, som betyr at internal.falcot.com-sonen håndteres av annen tjener. Selvfølgelig må denne tjeneren melde en internal.falcot.com-sone.
Referansenavnetjeneren, Bind, ble utviklet og vedlikeholdt av ISC (Internet Software Consortium). I Debian er den tilgjengelig i bind9-pakken. Versjon 9 bringer to store endringer i forhold til tidligere versjoner. Først nå kan DNS-tjeneren kjøre under en ikke-privilegert bruker, slik at et sikkerhetsproblem i tjeneren ikke gir rot-tilgang til angriperen (som forekom gjentatte ganger med versjoner 8.x).
Videre støtter Bind DNSSEC-standarden for signering (og dermed autentisering) av DNS-opptak, som tillater blokkering av all forfalskning av data under man-in-the-middle angrep.

10.6.2. Oppsett

Oppsettsfiler for bind, uavhengig av versjon, har den samme strukturen.
Falcots administratorer opprettet en primær falcot.com-sone for å lagre informasjon relatert til dette domenet, og en 168.192.in-addr.arpa-sone for reversert kartlegging av IP-addresser i de lokale nettverkene.
Det følgende oppsettsutdraget, hentet fra Falcot-filene, kan tjene som utgangspunkt for å sette opp en DNS-server:

Eksempel 10.12. Excerpt of /etc/bind/named.conf.local

zone "falcot.com" {
        type master;
        file "/etc/bind/db.falcot.com";
        allow-query { any; };
        allow-transfer {
                195.20.105.149/32 ; // ns0.xname.org
                193.23.158.13/32 ; // ns1.xname.org
        };
};

zone "internal.falcot.com" {
        type master;
        file "/etc/bind/db.internal.falcot.com";
        allow-query { 192.168.0.0/16; };
};

zone "168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.192.168";
        allow-query { 192.168.0.0/16; };
};

Eksempel 10.13. Utdrag av /etc/bind/db.falcot.com

; falcot.com-sonen
; admin.falcot.com. => zone contact: admin@falcot.com
$TTL    604800
@       IN      SOA     falcot.com. admin.falcot.com. (
                        20040121        ; Seriellnummer
                         604800         ; Fornying
                          86400         ; Nytt forsøk
                        2419200         ; Utløp
                         604800 )       ; Negativ mellomglagrings-TTL
;
; @ refererer til sonenavnet ("falcot.com" her)
; eller til $ORIGIN hvis det uttrykket har vært brukt
;
@       IN      NS      ns
@       IN      NS      ns0.xname.org.

internal IN      NS      192.168.0.2

@       IN      A       212.94.201.10
@       IN      MX      5 mail
@       IN      MX      10 mail2

ns      IN      A       212.94.201.10
mail    IN      A       212.94.201.10
mail2   IN      A       212.94.201.11
www     IN      A       212.94.201.11

dns     IN      CNAME   ns

Eksempel 10.14. Utdrag fra /etc/bind/db.192.168

; Reverssone for 192.168.0.0/16
; admin.falcot.com. => zone contact: admin@falcot.com
$TTL    604800
@       IN      SOA     ns.internal.falcot.com. admin.falcot.com. (
                        20040121        ; Seriellnummer
                         604800         ; Fornying
                          86400         ; Nytt forsøk
                        2419200         ; Utløp
                         604800 )       ; Negativ mellomlagrings-TTL

        IN      NS      ns.internal.falcot.com.

; 192.168.0.1 -> arrakis
1.0     IN      PTR     arrakis.internal.falcot.com.
; 192.168.0.2 -> neptune
2.0     IN      PTR     neptune.internal.falcot.com.

; 192.168.3.1 -> pau
1.3     IN      PTR     pau.internal.falcot.com.