Dator- och nätverksteknik · område 9 · lektion 48
DNS, HTTP och HTTPS
Sex pass har öppnat ett lager i taget — ramen, ARP, IP, ICMP, TCP och UDP, DHCP. Här används alla på en gång. Någon skriver en webbadress, och på en bråkdel av en sekund slås namnet upp, en anslutning öppnas och en sida hämtas. Sidan går igenom DNS, HTTP och HTTPS — inklusive vad HTTPS döljer och vad det faktiskt lämnar synligt — och följer sedan ett enda paket genom alla fyra lagren, ut och in. Det är samma sekvens som ska stå i labbrapporten.
1. DNS
DNS — Domain Name System — översätter ett namn till en IP-adress:
webb.lab → 192.168.1.2
Se det i kopian:
- Reset Simulation, filter på DNS, TCP och HTTP
- PC:ns Web Browser:
http://webb.lab, Go - Klicka fram och titta på ordningen: först två DNS-kuvert — frågan och svaret, klara och avslutade
- Först därefter börjar TCP-handskakningen, mot adressen DNS svarade med
Webbläsaren kan inte öppna en anslutning mot ett namn. Den behöver adressen först, och den frågar efter den i ett eget utbyte som är över innan webbanslutningen ens börjar.
På internet är det fler steg än i kopian:
| Steg | Vem frågas | Svarar |
|---|---|---|
| 1 | Din resolver — ofta internetleverantörens | Jag vet inte, men jag frågar |
| 2 | En root-server | Fråga .com-servrarna |
| 3 | En TLD-server för .com | Fråga example.com:s egen server |
| 4 | Den auktoritativa servern | 93.184.216.34 |
Sedan cachen, samma idé som ARP-cachen på lektion 44: svaret sparas, och nästa gång går det på ett steg. I Packet Tracer är servern själv den auktoritativa för webb.lab.
2. HTTP
HTTP — HyperText Transfer Protocol — är webbens protokoll. Det är vanlig text, rad för rad. En förfrågan ser ut så här, och avslutas med en tom rad:
GET / HTTP/1.1
Host: webb.lab
GETär metoden — hämta.POSTskickar in data, som ett formulär/är sökvägen — vilken sida på servernHost:säger vilken webbplats. En server kan ha många
Svaret börjar med en statuskod:
| Kod | Betyder |
|---|---|
| 200 OK | Här är sidan |
| 404 Not Found | Servern fanns. Sidan fanns inte |
| 301 Moved Permanently | Sidan har flyttat — här är den nya adressen |
Anslutningen fungerade, DNS fungerade, TCP fungerade — det var bara sökvägen som var fel. Samma tanke som med pingen på lektion 45: svaret säger vad som gick fel, och ingenting mer.
Öppna ett HTTP-kuvert i kopian. Layer 7: HTTP. Layer 4: TCP, port 80.
3. HTTPS
HTTPS är HTTP med kryptering runt — TLS, Transport Layer Security. Samma förfrågan, men ingen på vägen kan läsa den.
- Servern: Services → HTTP. Kontrollera att HTTPS On är på
- Simulation, filter på DNS, TCP, HTTP och HTTPS
- PC:ns Web Browser:
https://webb.lab - Klicka fram. Samma DNS först — okrypterat, över UDP
53. Sedan TCP-handskakningen mot port443i stället för80. Sedan HTTPS-kuverten, där innehållet inte går att läsa
Det viktiga är vad HTTPS döljer — och vad det inte döljer:
| HTTPS döljer | HTTPS lämnar synligt |
|---|---|
| Sidans innehåll | Käll- och mål-IP — nätet måste veta vart paketet ska |
Sökvägen — /konto/installningar | Portnumret 443 |
| Formulär och lösenord | Värdnamnet — i SNI, se nästa avsnitt |
| Kakor | DNS-frågan före — den skickades okrypterad |
4. Det som syns: SNI
Den tredje raden i högerkolumnen är den som brukar överraska. Så här ser handskakningens allra första meddelande ut, ClientHello:
TLS Handshake: ClientHello
Version: TLS 1.3
Extension: server_name
Server Name: webb.lab ← klartext
Extension: key_share
(klientens nyckeldel)
SNI — Server Name Indication — är ett fält i ClientHello. Klienten talar om vilken webbplats den vill nå, eftersom servern kan ha många och behöver välja rätt certifikat. Det skickas innan krypteringen är upprättad. Alltså i klartext.
Packet Tracer visar HTTPS-trafiken, men öppnar inte TLS-handskakningen. Meddelandena där nycklar utbyts och där SNI-fältet står syns inte som egna kuvert. I ett verktyg som fångar riktig trafik syns fältet precis som på bilden ovan.
Den som ser trafiken vet vilken webbplats du besökte — men inte vad du gjorde där.
Om HTTPS döljer innehållet, varför skickas DNS-frågan okrypterad? Det finns nyare lösningar — DNS över HTTPS, och krypterad ClientHello, ECH — som döljer också namnet. Men de används inte överallt.
5. Kapslingen hela vägen
Områdets huvudidé, i ett enda paket. Ett meddelande som skrivs i en applikation kapslas in i ett TCP- eller UDP-segment, segmentet i ett IP-paket, paketet i en Ethernet-ram — och ramen skickas som bitar på kabeln. Hos mottagaren packas samma lager upp i omvänd ordning.
- Klicka fram HTTPS-sekvensen från avsnitt 3 till det första HTTPS-kuvertet efter handskakningen, från PC:n till servern
- Öppna det hos PC:n: Out Layers. Läs lager för lager, uppifrån
- Klicka fram till servern. Öppna kuvertet igen: In Layers
Hos PC:n, på väg ut:
| TCP/IP-lager | Layer | Vad lagret tillförde | Enheten heter |
|---|---|---|---|
| Applikation | 7 | Förfrågan, krypterad av TLS | data |
| Transport | 4 | TCP: källport, målport 443, sekvensnummer | segment |
| Internet | 3 | IP: käll-IP, mål-IP 192.168.<grupp>.2 | paket |
| Nätverksåtkomst | 2, 1 | Ethernet: käll-MAC, mål-MAC. Sedan bitar på porten | ram, bitar |
Hos servern, på väg in — samma rader, nerifrån och upp. Varje lager tar bort sitt eget kuvert och lämnar resten uppåt:
- Layer 1–2: ramen tas emot. Mål-MAC:en är serverns, FCS stämmer. Ethernet-kuvertet av
- Layer 3: mål-IP:n är serverns. IP-kuvertet av
- Layer 4: port
443— det är webbservern. TCP-kuvertet av - Layer 7: TLS dekrypterar. Förfrågan är framme
Exakt den här sekvensen — ut hos sändaren, in hos mottagaren, vad varje lager tillförde — ska stå i rapporten, för det paket du själv väljer på lektion 49. Skriv av tabellen eller fotografera den.
Följ DNS-frågan genom lagren på samma sätt och jämför: vad skiljer Layer 4? Öppna Outbound PDU Details i HTTPS-kuvertet och se vad som står i TCP-headern. Är sekvensnumret samma som i handskakningen?
6. Noderna
DNS-uppslaget
ComputerExplorer → networking → dns — nodens titel är DNS.
Tryck ▸ Slå upp www.example.com. Följ den kalla uppslagningen — root, TLD, auktoritativ — och titta i Resolverns cache. Tryck igen: nu står det Cacheträff. Samma idé som ARP-cachen. Tryck Töm cache och se kedjan komma tillbaka.
Förfrågan och svaret
ComputerExplorer → networking → http — nodens titel är HTTP-förfrågan. Kör scenariot GET → 200 och sedan GET → 404. Läs förfrågan rad för rad. Vad skiljer svaren?
Kör också GET → 301 och leta upp Location-huvudet. Det är så http:// blir https:// när du skriver en adress utan att tänka på det.
Handskakningen
ComputerExplorer → networking → tls-handshake — nodens titel är TLS-handskakning. Stega igenom handskakningen. Första steget är ClientHello — meddelandet som bär SNI-fältet från bilden i avsnitt 4. Noden nämner inte SNI själv; den visar var i handskakningen meddelandet hör hemma.
Vid vilket steg blir kanalen krypterad? ClientHello skickas före det steget. Vad betyder det för SNI?
7. Paketets resa
ComputerExplorer → networking → packet-journey — nodens titel är Paketets resa. Tryck Spela ⏵ och låt den gå igenom nio steg:
Tolka URL:en → DNS-uppslagning → ARP → Routa över internet → TCP-handskakning → TLS-handskakning → HTTP-förfrågan → HTTP-svar → Rendera sidan
Nästan varje steg har du sett i området. Det fjärde, Routa över internet, är område 10 — en förhandstitt på hur routern väljer väg.
8. Inför labben
På lektion 49 väljer du det paket du följer genom lagren i rapporten. Hela genomgången av valet, kraven och bedömningen står på labbsidan. Det korta:
- Minst tre protokoll identifierade i fångsten som helhet — inte nödvändigtvis i det paket som följs
- Ett paket följt genom lagren, med Out Layers hos sändaren och In Layers hos mottagaren
- Vad varje lager tillförde, med egna ord — inte vad Packet Tracer skrev, utan vad det var till för
Men ett paket med alla fyra lager fyllda ger mer att förklara, och det är där C och A skrivs. A-nivån förklarar sambandet mellan lagren: varför ARP måste komma före ICMP, varför DHCP går över UDP, vad HTTPS inte döljer — och varför det inte kan dölja det.
9. Vanliga missuppfattningar
7 rader
| Man tror ofta | Men |
|---|---|
| HTTPS döljer vilken sida jag besöker | Innehållet och sökvägen, ja. Värdnamnet och IP-adressen, nej |
| 404 är ett nätverksfel | Nätet fungerade. Sökvägen var fel. Svaret säger bara det |
| DNS och HTTP är samma anslutning | Två transaktioner. DNS är klar innan TCP börjar |
| SNI går att hitta i Packet Tracer | Simulatorn öppnar inte TLS-handskakningen. Därför bilden i avsnitt 4 |
| DNS-kuverten kommer alltid före TCP | Bara om namnet skrevs och inte låg i cachen. Reset Simulation, och skriv namnet |
https://webb.lab borde fungera direkt | HTTPS kan vara av på servern: Services → HTTP → HTTPS On |
| Det lättaste paketet är det bästa att följa | ICMP räcker för E. Fyra lager ger mer att förklara |
10. Ordlista
Ordträning
| Ord | Betyder |
|---|---|
| DNS | Domain Name System — översätter ett namn till en IP-adress, i en egen transaktion |
| Resolver | Den DNS-server du frågar först, ofta internetleverantörens. Frågar vidare åt dig |
| Root-server | Toppen av DNS-hierarkin. Svarar med vilka servrar som har hand om till exempel .com |
| TLD | Top-level domain — sista delen av namnet, som .com |
| Auktoritativ server | Den server som har det riktiga svaret för ett visst namn |
| HTTP | HyperText Transfer Protocol — webbens protokoll. Vanlig text, rad för rad. Port 80 |
| Statuskod | Talet först i HTTP-svaret: 200, 404, 301 |
| HTTPS | HTTP med TLS-kryptering runt. Port 443 |
| TLS | Transport Layer Security — krypteringen i HTTPS |
| ClientHello | Första meddelandet i TLS-handskakningen, skickat innan krypteringen är upprättad |
| SNI | Server Name Indication — värdnamnet i ClientHello. Syns i klartext |
| Kapsling | Varje lager lägger sitt kuvert runt lagret ovanför på väg ut, och tar bort sitt på väg in |