Nätverksprojekt — Fullständig dokumentation
Debian klient, Debian server och Apache webbserver
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.
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
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.
192.168.1.10 → offentlig IP (ex. 82.145.x.x)
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
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.
192.168.x.x — används inom LAN, ej routbar på internet
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
OSI-modellen
OSI-modellen är ett referensramverk som beskriver hur nätverkskommunikation är uppdelad i sju abstraktionslager.
| Lager | Namn | Exempel |
|---|---|---|
| 7 | Applikationslager | HTTP, FTP, DNS |
| 6 | Presentationslager | TLS/SSL, JPEG |
| 5 | Sessionslager | NetBIOS, RPC |
| 4 | Transportlager | TCP, UDP |
| 3 | Nätverkslager | IP, ICMP |
| 2 | Datalänklager | Ethernet, Wi-Fi |
| 1 | Fysiskt lager | Kablar, signaler |
TCP & UDP
De två vanligaste transportprotokollen har olika egenskaper och lämpar sig för olika typer av kommunikation.
Handskakningsprocess, garanterad leverans och rätt ordning. Används av HTTP/HTTPS.
Ingen handskakningsprocess, lägre fördröjning men ingen leveransgaranti. Används av streaming och DNS.
Installation av Debian
Vi installerade Debian på både klient och server. Efter grundinstallationen kördes följande kommandon för att uppdatera systemet.
ip a # Visa nätverksgränssnitt och IP-adresser
apt update # Hämta senaste paketlistor
apt upgrade # Installera tillgängliga uppdateringar
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.
/etc/network/interfaces
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.
Apache Webbserver
Apache installerades för att hantera inkommande HTTP-förfrågningar och servera webbsidor till klienter.
apt install apache2 # Installera Apache
systemctl start apache2 # Starta tjänsten
systemctl enable apache2 # Starta automatiskt vid boot
Webbfiler placeras i dokumentroten:
/var/www/html/
HTTP-protokollet
HTTP (HyperText Transfer Protocol) fungerar enligt en request/response-modell. Klienten initierar alltid kommunikationen.
- Klienten skickar en HTTP-request med metod (GET, POST etc.)
- Servern behandlar förfrågan och genererar ett svar
- Servern skickar response med statuskod och data
- Webbläsaren renderar sidan för användaren
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.
ngrok http 80 # Exponera port 80 (Apache) mot internet
Hur det fungerar
- ngrok startar en klientprocess på vår server
- Klienten ansluter till ngroks molntjänst via en utgående anslutning
- En publik URL genereras automatiskt
- All inkommande trafik tunnlas till vår lokala port 80
Ingen port forwarding. Snabb setup. Fungerar bakom NAT och brandväggar.
Beroende av extern tjänst. Gratisversionen har begränsningar. Säkerhetsrisk om URL:en sprids.
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.
DNS
DNS (Domain Name System) fungerar som internets telefonbok och översätter läsbara domännamn till numeriska IP-adresser.
google.com → 142.250.x.x
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
Test & felsökning
Följande verktyg användes för att verifiera att nätverket och tjänsterna fungerade som förväntat.
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
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 statusoch kontroll av konfigurationsfiler - Ingen kontakt mellan klient och server — löst genom att kontrollera brandväggsregler
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.
Jonathan, Isak och Tim — Dator- och nätverksteknik