Göm menyn

TDDI41 Grundläggande systemadministration

Teori

DNS, Domain Name System, agerar internets telefonkatalog. Framförallt låter den en slå upp IP-addresser från domännamn. T.ex. ser vi att liu.se pekar på 130.236.18.52. 1

$ host liu.se
liu.se has address 130.236.18.52
liu.se has IPv6 address 2001:6b0:17:f100::18:52
liu.se mail is handled by 20 e-mailfilter03.sunet.se.
liu.se mail is handled by 20 v-mailfilter03.sunet.se.
liu.se mail is handled by 20 e-mailfilter04.sunet.se.

Domännamn är uppdelade i subdomäner. T.ex. är e-mailfilter04 en subdomän till 'sunet.se.', vilket i sin tur är en subdomän till 'se.'. '.se.' är en topdomän, notera dock att den dock ligger under rootdomänen '.' (bara punkt).

Samtliga domännamn slutar egentligen med en punkt, men den sista punkten missas ofta. Jämför med ert filträd, med skillnaden att komponenterna här skrivs baklänges.

Det finns många bra beskrivningar av DNS-protokollet. En populärförklaring, med tydliga bilder, är Internetstiftelsens Domännamnsguide. Vill ma ha en lite mer utförlig förklaring från nätverks-grundkursboken Kurose & Ross 2, har författarna resurser som miniföreläsningar på bokens hemsida. Primärkällan för hur DNS fungerar är standarddokumentet RFC 1035 Domain names - Implementation and Specification.

Inlämning: Ge kortfattade egna svar på frågorna nedan:
  1. Vad är en auktoritativ namnserver?
  2. Vad är alternativet till en auktoritativ namnserver
  3. Är det skillnad mellan en domän och en zon? Vilken skillnad isåfall?
  4. Vad innebär rekursiv slagning? Iterativ? Hur vet DNS-servern du frågar om det är en rekursivt ställd fråga?
  5. I DNS delegerar vi ansvaret för olika zoner. Varför?
  6. Ovan beskriver vi hur man kommer fram till att liu.se har adressen 130.236.18.52 (och hela delegerings-hierarkin från root till auktoriteten för .se-domänen, till liu.se). Hur sker en uppslagning ''åt andra hållet'', där man vill slå upp om adressen 130.236.18.52 motsvarar någon webbadress (enligt din DNS-server)? Du kan vilja läsa om reverse DNS.

Oftast slår man implicit i DNS:en, t.ex. när man skriver in www.liu.se i sin webbläsare. Man kan också slå explicit. dig(1) är en del av Bind 9:s mjukvara, och ett av de kraftfullare verktygen.

Kör dig www.liu.se, vilket bör ge outputen:
; <<>> DiG 9.11.3-1ubuntu1.13-Ubuntu <<>> www.liu.se
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64544
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.liu.se.			IN	A

;; ANSWER SECTION:
www.liu.se.		7882	IN	A	130.236.18.52

;; Query time: 0 msec
;; SERVER: 130.236.1.9#53(130.236.1.9)
;; WHEN: Fri Oct 23 10:01:05 CEST 2020
;; MSG SIZE  rcvd: 55
Inlämning:
  1. Förklara kortfattat vad de olika delarna av utskriften innebär.
  2. När du gör en query som till exempel dig ANY liu.se @ns4.liu.se kan du få flera olika sorters resource records (RR) tillbaka. Vad ska A-, AAAA-, NS-, MX- och SOA-records innehålla?

Inlämning: Kör dig +trace www.google.com och förklara kortfattat vad som står.

Konfiguration av er namnserver

Innan ni sätter igång, besvara (och lämna in tillsamans med resten):
  1. Hur sätter man önskad DNS-server på Linux
  2. Vad är en SOA post? Vad innebär dess olika fält?

Ens egenuppsatta namnserver har två distinkta funktioner. Dels att cacha DNS-slagningar för nätverket. Dels att vara auktoritet för någon zon.

Många olika DNS-servar finns. Här kommer vi använda oss av Named (ibland kallad Bind 9). En stabil och väldokumenterad historia. Framförallt är dess manual bra, och finns här. När ni skriver zonfiler är det viktigt att hålla koll på avslutande punkter (avsaknad gör addressen relativ till nuvarande zon). Zonfilerna går att redigera med godtyckligt textredigerare. Dock rekommenderas Emacs då den autouppdaterar SERIAL.

Då era maskiner inte nås från omvärlden delegerar kursen ingen zon till dem. Använd därför gruppnamn.example.com som er zon.

Välj en av era maskiner och sätt upp den som DNS-server. Den ska:

  1. Agera auktoritet för er zon.
  2. Innehålla namn för alla era maskiner, och koppla deras namn till IP-adress.
  3. Agera cache och rekurserare när frågor (queries) ställs från ert lokala nätverk, men ingen annan
  4. Hantera reverse DNS för alla era maskiner.

Se sen till att alla era maskiner gör sina slagningar genom er DNS-server.

Inlämning: Er konfiguration, samt kortfattade motiveringar/förklaringar av de val ni gjort, Framförallt hur ni satt er SOA-post.

Tester

Named kommer med sin egna testsvit. named-checkconf samt named-checkzone testar konfigurationen respektive zon-data.

Inlämning: Tester som åtminstone visar att

  • varje klient
    • Är inställd för att göra slagningar mot rätt DNS-server.
  • er DNS-server
    • har named/bind9 korrekt konfigurerat.
    • har korrekta och hela zonfiler.
    • har named körandes utan problem.
    • svarar korrekt på frågor om era maskiner, både forward (fråga om hostname.gruppnamn.example.com ger rätt svar) och reverse (fråga utifrån IP-adress ger rätt host-namn). Notera att konfigurationsfrågan ovan kan besvaras genom att (maskinellt) titta på inställningsfiler, medan era skript här gör faktiska slagningar (och tolkar resultatet).

Redovisning

Visa upp ett korrekt konfigurerat system, samt fungerande tester för er labass. Skicka sedan innan svar på frågorna, era tester, samt tillräcklig information för att kunna sätta upp ett system identiskt med det ni satt upp (förslagsvis genom en beskrivande text, eller konfigurationsfiler).

Ytterligare frågor

Inlämning: Besvara frågorna nedan (som ibland kan vara lite mer filosofiska eller tänk-på-att-aktiga än de ovan) kortfattat.

  1. Nu har ni kallat er zon för gruppnamn.example.com. Finns det något i DNS-protokollet som hindrar att ni istället sade att ni var google och hade alla deras domäner? I någon utökning av protokollet? Om ni satte upp en falsk tjänst och pekade adressen gmail.com till den via er DNS-server, är det något i DNS eller annat protokoll som skulle hjälpa en användare som använder er DNS-server att upptäcka bluffen?
  2. Nu har ni skrivit zonfiler. Om ni skulle delegera auktoritet för users.gruppnamn.example.com hade ni behövt lägga till några rader i er zon-fil. Vilka, och varför? (Ni kan fundera på delegering av delar av reverse-zon, men utöver att lösningen blir ful, är det inte obligatoriskt.)

Fotnötter

  1. Vi får även en IPv6-address, samt vart epost addresserad till @liu.se ska skickas. return
  2. Boken heter "Computer Networking: A top-down approach", och används till exempel i LiU:s nätverkskurser. Den är rätt bra, och rätt amerikanskt pratig. Läser du en grundkurs i nätverk någonstans i världen, är det inte osannolikt att du läser den. return

Sidansvarig: Anders Fröberg
Senast uppdaterad: 2021-09-03