01

Introduktion

Detta projekt syftar till att ge en djupgående förståelse för hur datornätverk fungerar i praktiken. Vi har byggt upp ett lokalt nätverk bestående av en router, en klient och en server.

Utöver detta har vi implementerat en webbserver för att demonstrera klient–server-kommunikation i praktiken.

02

Nätverksarkitektur

Nätverket är uppbyggt enligt en klassisk klient–server-modell där klienten begär resurser och servern tillhandahåller dessa. Routern fungerar som mellanhand och dirigerar trafiken.

  • LAN (Local Area Network) — det interna nätverket
  • WAN (Internet) — det externa nätverket
  • Privata IP-adresser — används inom LAN
  • Gateway (router) — förbinder LAN med WAN
03

Router & NAT

Routern använder NAT (Network Address Translation) för att översätta interna IP-adresser till en extern IP-adress. Detta gör att flera enheter kan dela på en och samma internetanslutning.

Exempel — NAT-översättning
192.168.1.10 → offentlig IP (ex. 82.145.x.x)
04

DHCP

DHCP används för att automatiskt tilldela IP-adresser till klienter i nätverket, vilket minskar behovet av manuell konfiguration. Klienten använde DHCP medan servern konfigurerades med statisk IP för stabilitet.

DORA-processen

D
Discover
Klienten sänder ut ett broadcast-meddelande för att hitta DHCP-servrar.
O
Offer
DHCP-servern erbjuder en ledig IP-adress till klienten.
R
Request
Klienten accepterar erbjudandet och begär adressen formellt.
A
Acknowledge
Servern bekräftar och klienten börjar använda IP-adressen.
05

IP-adressering

IP-adresser används för att identifiera enheter i nätverket. Vi använde IPv4 med privata adresser inom det lokala nätverket.

Privat IP

192.168.x.x — används inom LAN, ej routbar på internet

Loopback

127.0.0.1 — pekar alltid tillbaka på den egna maskinen

  • Subnet mask — bestämmer nätverkets storlek
  • Default gateway — enhetens väg ut till internet
06

OSI-modellen

OSI-modellen är ett referensramverk som beskriver hur nätverkskommunikation är uppdelad i sju abstraktionslager.

Lager Namn Exempel
7ApplikationslagerHTTP, FTP, DNS
6PresentationslagerTLS/SSL, JPEG
5SessionslagerNetBIOS, RPC
4TransportlagerTCP, UDP
3NätverkslagerIP, ICMP
2DatalänklagerEthernet, Wi-Fi
1Fysiskt lagerKablar, signaler
07

TCP & UDP

De två vanligaste transportprotokollen har olika egenskaper och lämpar sig för olika typer av kommunikation.

TCP — Tillförlitligt

Handskakningsprocess, garanterad leverans och rätt ordning. Används av HTTP/HTTPS.

UDP — Snabbt

Ingen handskakningsprocess, lägre fördröjning men ingen leveransgaranti. Används av streaming och DNS.

08

Installation av Debian

Vi installerade Debian på både klient och server. Efter grundinstallationen kördes följande kommandon för att uppdatera systemet.

Terminal — Grundkommandon
ip a # Visa nätverksgränssnitt och IP-adresser apt update # Hämta senaste paketlistor apt upgrade # Installera tillgängliga uppdateringar
09

Serverkonfiguration

Servern konfigurerades med statisk IP för att säkerställa att den alltid går att nå på samma adress. Detta gjordes genom att redigera nätverksinställningarna direkt.

Konfigurationsfil
/etc/network/interfaces
Varför statisk IP?

Med DHCP kan IP-adressen ändras vid omstart. En statisk IP garanterar att servern alltid nås på samma adress, vilket är nödvändigt för DNS-poster och interna konfigurationer.

10

Apache Webbserver

Apache installerades för att hantera inkommande HTTP-förfrågningar och servera webbsidor till klienter.

Terminal
apt install apache2 # Installera Apache systemctl start apache2 # Starta tjänsten systemctl enable apache2 # Starta automatiskt vid boot

Webbfiler placeras i dokumentroten:

Sökväg
/var/www/html/
11

HTTP-protokollet

HTTP (HyperText Transfer Protocol) fungerar enligt en request/response-modell. Klienten initierar alltid kommunikationen.

  1. Klienten skickar en HTTP-request med metod (GET, POST etc.)
  2. Servern behandlar förfrågan och genererar ett svar
  3. Servern skickar response med statuskod och data
  4. Webbläsaren renderar sidan för användaren
12

Extern åtkomst med ngrok

För att komma åt vår Debian-server utanför det lokala nätverket använde vi ngrok. Verktyget skapar en säker tunnel mellan den lokala servern och internet utan att port forwarding på routern behöver konfigureras.

Kommando
ngrok http 80 # Exponera port 80 (Apache) mot internet

Hur det fungerar

  1. ngrok startar en klientprocess på vår server
  2. Klienten ansluter till ngroks molntjänst via en utgående anslutning
  3. En publik URL genereras automatiskt
  4. All inkommande trafik tunnlas till vår lokala port 80
Fördelar

Ingen port forwarding. Snabb setup. Fungerar bakom NAT och brandväggar.

Nackdelar

Beroende av extern tjänst. Gratisversionen har begränsningar. Säkerhetsrisk om URL:en sprids.

Säkerhetsaspekter

Eftersom servern exponerades mot internet säkerställde vi att enbart nödvändiga tjänster var aktiva och att inga känsliga data var tillgängliga via webbservern.

13

DNS

DNS (Domain Name System) fungerar som internets telefonbok och översätter läsbara domännamn till numeriska IP-adresser.

Exempel — DNS-uppslag
google.com → 142.250.x.x
14

Säkerhet

Vi implementerade grundläggande säkerhetsåtgärder för att skydda servern under projektet.

  • Brandvägg — filtrerar inkommande och utgående trafik
  • Stängda portar — enbart nödvändiga portar öppna
  • Begränsad åtkomst — minimalt med tjänster exponerade
15

Test & felsökning

Följande verktyg användes för att verifiera att nätverket och tjänsterna fungerade som förväntat.

Diagnostikkommandon
ping 192.168.1.x # Testa nätverkskonnektivitet ssh user@192.168.1.x # Anslut till server via SSH systemctl status apache2 # Kontrollera Apache-status curl http://localhost # Testa webbservern lokalt
16

Problem & lösningar

Under projektets gång stötte vi på ett antal problem. Nedan dokumenteras de vanligaste och hur vi löste dem.

  • Fel IP-adress — löstes genom att kontrollera och förnya DHCP-lease
  • Apache startade inte — löst via systemctl status och kontroll av konfigurationsfiler
  • Ingen kontakt mellan klient och server — löst genom att kontrollera brandväggsregler
17

Slutsats

Projektet gav oss en djup och praktisk förståelse för hur datornätverk fungerar. Genom att kombinera teori med faktisk implementation fick vi erfarenhet av verkliga system och verktyg.

Vi lärde oss att konfigurera en Linux-server, sätta upp en webbserver och lösa nätverksproblem — kunskaper som är direkt tillämpbara i IT-branschen.

Grupprojekt

Jonathan, Isak och Tim — Dator- och nätverksteknik