TDDI41 Grundläggande systemadministration
Labb DNS: Domännamn och namnuppslagning
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 & Ross2, 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.
Grunderna i DNS - [DNS.1]
- Vad är en auktoritativ namnserver?
- Vad är alternativet till en auktoritativ namnserver
- Är det skillnad mellan en domän och en zon? Vilken skillnad isåfall?
- Vad innebär rekursiv slagning? Iterativ? Hur vet DNS-servern du frågar om det är en rekursivt ställd fråga?
- I DNS delegerar vi ansvaret för olika zoner. Varför?
- Ovan beskriver vi hur man kommer fram till att
liu.se
har adressen130.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 adressen130.236.18.52
motsvarar någon webbadress (enligt din DNS-server)? Du kan vilja läsa om reverse DNS.
Inlämning: Ge kortfattade egna svar på frågorna ovan.
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.
dig
- [DNS.2]
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:
- Förklara kortfattat vad de olika delarna av utskriften innebär.
- 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? - Kör
dig +trace www.google.com
och förklara kortfattat vad som står.
Konfiguration av er namnserver
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.
Bra att veta:
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.
Det kan också hända att det går långsamt att starta om er bind-server (även när konfigurationen är korrekt).
Ni kan vilja kolla om rndc-porten (953/tcp) i brandväggen är öppen för trafik från loopback
-gränssnittet (om ni inte redan tillåter all inkommande trafik på loopback
).
Konfiguration av namnserver - [DNS.3]
Innan ni sätter igång, besvara (och lämna in tillsamans med resten):
- Hur sätter man önskad DNS-server på Linux
- Vad är en SOA post? Vad innebär dess olika fält?
Välj en av era maskiner och sätt upp den som DNS-server. Den ska:
- Agera auktoritet för er zon.
- Innehålla namn för alla era maskiner, och koppla deras namn till IP-adress.
- Agera cache och rekurserare när frågor (queries) ställs från ert lokala nätverk, men ingen annan
- Hantera reverse DNS för alla era maskiner.
På routern kommer DHCP-klienten att nollställa era inställningar (samtidigt som den får en dynamisk IP-adress, får den DNS-inställningar).
Kolla på det finns en lämplig inställning i /etc/dhcp/dhclient.conf
för att se till att ni kan använda er DNS-server också.
Inlämning: Svar på frågorna, 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.
Testning av DNS-konfiguration - [DNS.4]
Skriv tester som verifierar att
- varje klient
- är inställd för att göra slagningar mot rätt DNS-server; samt
- er DNS-server
- har named/bind9 korrekt konfigurerat,
- har korrekta och hela zonfiler,
- har named körandes utan problem, och
- 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).
Inlämning: Testkod och utdata.
Redovisning
Visa upp ett korrekt konfigurerat system, samt fungerande tester för er labassistent. Skicka sedan era lösningar för uppgifterna till er labbassistent enligt de allmänna instruktionerna kring inlämning.
Sidansvarig: Daniel de Leng
Senast uppdaterad: 2025-08-13