Vad är DNS?
DNS (domännamnssystemet) är internets telefonbok. Det översätter läsbara domännamn som "example.com" till maskinläsbara IP-adresser som "93.184.216.34", vilka datorer använder för att hitta och kommunicera med varandra. Utan DNS skulle du behöva memorera IP-adresser för att besöka webbplatser. Föreställ dig att skriva 142.250.80.46 i stället för google.com.
Så fungerar DNS
När du anger ett domännamn i webbläsaren inträffar en komplex men mycket snabb process:
DNS-upplösningsprocessen
1. Kontroll av lokal cache: Webbläsaren och operativsystemet kontrollerar först sin lokala DNS-cache efter en aktuell sökning efter domänen.
2. Fråga till rekursiv resolver: Om resultatet inte finns i cachen skickas frågan till en rekursiv DNS-resolver, som vanligtvis drivs av din internetleverantör eller en tjänst som Cloudflares 1.1.1.1 eller Googles 8.8.8.8.
3. Fråga till rotnamnserver: Resolvern frågar en rotnamnserver, som hänvisar den till lämplig TLD-server.
4. Fråga till TLD-server: TLD-servern, till exempel för .com, tillhandahåller de auktoritativa namnservrarna för den specifika domänen.
5. Fråga till auktoritativ namnserver: Slutligen returnerar den auktoritativa namnservern domänens faktiska IP-adress.
6. Cachning av svar: Resultatet cachas på flera nivåer baserat på TTL-värden (livslängd).
Hela processen slutförs vanligtvis på några millisekunder.
Typer av DNS-poster
DNS lagrar olika typer av poster, som alla har olika syften:
| Posttyp | Syfte | Exempel |
|---|---|---|
| A | Mappar domänen till en IPv4-adress | example.com → 93.184.216.34 |
| AAAA | Mappar domänen till en IPv6-adress | example.com → 2606:2800:220:1:... |
| CNAME | Alias som pekar på en annan domän | www.example.com → example.com |
| MX | Anger e-postservern | example.com → mail.example.com |
| TXT | Textdata (SPF, DKIM, verifiering) | Olika verifieringssträngar |
| NS | Delegering till namnserver | example.com → ns1.provider.com |
DNS-hierarkin
DNS fungerar som en distribuerad hierarkisk databas:
. (root)
├── com (TLD)
│ ├── example (SLD)
│ │ ├── www (subdomain)
│ │ └── mail (subdomain)
│ └── google
├── org (TLD)
└── io (TLD)
Denna hierarki möjliggör distribuerad hantering av miljarder domännamn över tusentals organisationer.
DNS för utvecklare
Att förstå DNS är avgörande för webbutveckling:
Vanliga utvecklingsuppgifter
Domänkonfiguration: Att konfigurera A-poster, CNAME-poster för underdomäner och MX-poster för e-post kräver DNS-kunskap. SSL/TLS-verifiering: Många certifikatutfärdare använder DNS-poster (TXT eller CNAME) för att verifiera domänägarskap. CDN-konfiguration: Innehållsleveransnätverk kräver ofta CNAME-poster för att dirigera trafik via sina kantservrar. E-postleverans: SPF-, DKIM- och DMARC-poster är alla DNS TXT-poster som är nödvändiga för e-postautentisering.DNS-utbredning
När du uppdaterar DNS-poster träder ändringarna inte i kraft omedelbart. DNS-utbredning, alltså tiden det tar för ändringar att spridas över den globala DNS-infrastrukturen, kan ta från några minuter till 48 timmar beroende på TTL-inställningar och cachningsbeteenden.
DNS-säkerhet
DNS har säkerhetskonsekvenser som utvecklare bör förstå:
DNS-förfalskning: Angripare kan försöka returnera falska DNS-svar och omdirigera användare till skadliga webbplatser. DNSSEC (DNS Security Extensions) bidrar till att förhindra detta genom kryptografiska signaturer. DNS-läckor: VPN-användare kan oavsiktligt skicka DNS-frågor utanför den krypterade tunneln, vilket avslöjar surfaktivitet. DDoS-förstärkning: DNS kan utnyttjas i förstärkningsattacker eftersom protokollet kan returnera svar som är större än förfrågningarna.DNS och domäntillgänglighet
DNS-upplösningsstatus kan indikera om en domän är tillgänglig. Om det inte finns några DNS-poster kan domänen vara oregistrerad. RDAP/WHOIS-frågor ger dock mer tillförlitlig information om tillgänglighet, eftersom registrerade domäner ännu kan sakna konfigurerade DNS-poster.