Byg dit eget netværk med Raspberry Pi

Ti stationer fører jer fra tom SD-kort til et fælles LAN, som I selv har konfigureret, sikret og dokumenteret. Løs opgaverne, og se jeres internetforbindelse blive hurtigere undervejs.

0 Mbit/s
Ingen forbindelse endnu
0 af 11 opgaver løst
🔌
📶
🌐
🚀

I får udleveret en imagefil med Raspberry Pi OS Lite, korrekt SSH-opsætning og den rigtige start-IP. I skal skrive den fil til jeres 32 GB micro SD-kort med Raspberry Pi Imager.

Image-fil Raspberry Pi Imager SD-kort
  1. Download og installer Raspberry Pi Imager fra rpi.org.
  2. Sæt SD-kortet i en kortlæser i jeres PC.
  3. Åbn Imager → Choose OSUse custom → vælg den udleverede image-fil.
  4. Choose Storage → vælg jeres 32 GB SD-kort (dobbelttjek at det er det rigtige drev!).
  5. Tryk Write og bekræft. Lad Windows skrive og verificere færdig – rør ikke kortet undervejs.
  6. Når der står "Skrivning fuldført", kan kortet tages ud.
  1. Download og installer Raspberry Pi Imager til macOS.
  2. Sæt SD-kortet i via en USB-kortlæser.
  3. Åbn Imager → Choose OSUse custom → vælg image-filen.
  4. Choose Storage → vælg SD-kortet (bekræft størrelsen, 32 GB).
  5. Tryk Write, giv adgangskode til macOS hvis I bliver bedt om det.
  6. Vent til processen viser "Skrivning fuldført" og fjern kortet.

I har fået fire dele: Raspberry Pi 4 (4 GB), kabinet, USB-strømforsyning og 32 GB micro SD-kort. Klik jer igennem samlingen herunder – hvert klik lægger et lag på.

1. Kabinettets bundstykke

Rækkefølge

  1. Sæt SD-kortet i kortholderen på undersiden af Pi'en, inden den lægges i kabinettet.
  2. Læg Raspberry Pi-kortet ned i kabinettets bundstykke – hjørnerne passer kun én vej.
  3. Klik kabinettets topstykke på plads.
  4. Forbind USB-strømforsyningen til Pi'ens USB-C-strømstik som det allersidste – Pi'en tænder, så snart strømmen sættes til.

Jeres Raspberry Pi svarer på 192.168.1.188. Din PC skal have en adresse på samme subnet men med et andet sidste tal. I skal sætte jeres RJ45-porte til 192.168.1.8, subnetmaske 255.255.255.0.

  1. Åbn IndstillingerNetværk og internetEthernet.
  2. Klik Rediger ud for "IP-tildeling" (IP assignment).
  3. Skift fra Automatisk (DHCP) til Manuel, og slå IPv4 til.
  4. IP-adresse: 192.168.1.8 · Undernetpræfikslængde: 24 (svarer til 255.255.255.0).
  5. Gateway og DNS kan stå tomme – I skal kun tale med Pi'en direkte.
  6. Gem, og vent få sekunder på at forbindelsen genopretter.
  1. Åbn SystemindstillingerNetværk.
  2. Vælg jeres Ethernet-forbindelse (evt. via USB-adapter) i venstre side.
  3. Sæt Konfigurér IPv4 til Manuelt.
  4. IP-adresse: 192.168.1.8 · Undernetmaske: 255.255.255.0.
  5. Router kan stå tom. Klik OK og derefter Anvend.

Refleksionsopgave

Svar for jer selv – og tjek om I har ret:

Hvorfor skal PC'en og Raspberry Pi'en have de samme første tre tal i IP-adressen, men et forskelligt sidste tal?

Rigtigt tænkt: de tre første tal (subnettet) fortæller hvilket lokalt netværk enheden hører til, og det sidste tal (host-delen) skal være unikt for hver enhed på det netværk.

I adressen 192.168.1.188 med undernetmasken 255.255.255.0 – hvad er subnet-delen, og hvad er den unikke (host-)del?

Præcis. Masken 255.255.255.0 markerer de første 24 bit (192.168.1) som netværksdel, og de sidste 8 bit (188) som den enkelte enheds unikke plads på det netværk.

Forbind PC'en og Raspberry Pi'en direkte med et netværkskabel i hver RJ45-port. Moderne netkort finder selv ud af krydsning, så et almindeligt kabel er nok.

PC Pi

Test forbindelsen

Fra din PC – Windows: åbn PowerShell. Mac: åbn Terminal.

ping 192.168.1.188

Se derefter hvem der kender hinanden på "layer 2" (MAC-adresser) med ARP-tabellen:

arp -a

OSI-modellen: hvad tester I egentlig?

Lag 7-4: Applikation → Transport Lag 3: Netværk – ping (ICMP), IP Lag 2: Data link – ARP, MAC Lag 1: Fysisk – kabel, signal

Ping tester lag 3 (finder Pi'en er svarende på IP), ARP viser lag 2 (finder hvilken MAC-adresse der hører til IP'en), og selve kablet er lag 1.

Miniopgave

  • Dokumentér med et skærmbillede at ping giver svar fra Pi'en.
  • Dokumentér Pi'ens MAC-adresse fra jeres ARP-tabel.
  • Beskriv med egne ord, hvilket OSI-lag hver kommando primært afprøver.

SSH giver jer en terminal på Pi'en, uden at I skal koble skærm og tastatur til den. Brug den bruger og adgangskode, I har fået udleveret til jeres image.

Kommandoens opbygning

ssh <bruger>@<hostname>
  • <bruger> – brugernavnet, I logger ind som (i jeres image: pi).
  • <hostname> – enten en IP-adresse (fx 192.168.1.188) eller Pi'ens netværksnavn (fx raspberrypi.local).
  • @ adskiller de to dele og skal altid være med, når I angiver bruger og hostname sammen.

Denne syntaks er ikke noget, vi har opfundet til denne guide – den er defineret i den officielle OpenSSH-manual for kommandoen ssh, hvor destinationen angives som [bruger@]hostname: man.openbsd.org/ssh.1. Raspberry Pi's egen dokumentation viser den samme syntaks anvendt konkret på en Raspberry Pi: raspberrypi.com – Remote access: SSH.

I jeres tilfælde er <bruger> = find_selv_ud_af_det og <hostname> = 192.168.1.188, så den konkrete kommando bliver:

  1. Åbn PowerShell (Start-menu → skriv "PowerShell").
  2. Skriv:
ssh find_selv_ud_af_det@192.168.1.188
  1. Første gang spørger den om I stoler på værten – skriv yes.
  2. Indtast adgangskoden (den vises ikke mens I skriver – helt normalt).
  1. Åbn Terminal (Launchpad → Terminal, eller Spotlight-søgning).
  2. Skriv:
ssh pi@192.168.1.188
  1. Bekræft nøglen med yes ved første forbindelse.
  2. Indtast adgangskoden.

Alle jeres image-filer er ens, så alle Raspberry Pi'er svarer lige nu på 192.168.1.188. Sætter I flere på samme switch uden at ændre dem, opstår en IP-adressekonflikt, og ingen af dem virker rigtigt.

Lav derfor en IP-plan for bordet, inden I kobler jer sammen på en fælles switch. Prøv builderen herunder:

Skriv jeres endelige plan ned sammen med en simpel tegning af, hvem der sidder hvor på switchen – I skal bruge den i trin 7 og 8.

I er nu inde på Pi'en via SSH. Herfra retter I den faste IP-adresse, så den passer med jeres IP-plan i stedet for at kollidere med de andre.

Bemærk: aktuelle udgaver af Raspberry Pi OS (Bookworm, inkl. Lite 64-bit) styrer netværket med NetworkManager – samme system som langt de fleste almindelige Debian-installationer bruger. Den gamle fremgangsmåde med at redigere /etc/dhcpcd.conf virker derfor ikke længere; dhcpcd er slet ikke aktivt, så filen bliver ignoreret. I skal i stedet bruge kommandoen nmcli, som er standardværktøjet til at styre NetworkManager fra terminalen – det er også det, Raspberry Pi selv anbefaler i deres officielle dokumentation.

1. Find navnet på jeres kabelforbindelse

nmcli connection show

Kommandoen lister alle "forbindelser" (connection profiles) og hvilken fysisk grænseflade (DEVICE) de hører til. Kig efter linjen, hvor DEVICE er eth0NAME-kolonnen hedder som regel "Wired connection 1", men brug det navn, I rent faktisk ser i jeres output.

2. Sæt fast IP-adresse, gateway og DNS på forbindelsen

sudo nmcli connection modify "Wired connection 1" ipv4.addresses 192.168.1.101/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8" ipv4.method manual

Skift 192.168.1.101 ud med den adresse, jeres Pi skal have ifølge IP-planen fra trin 6, og skift "Wired connection 1" ud, hvis jeres forbindelse hedder noget andet i trin 1. ipv4.method manual er det, der slår DHCP fra og gør adressen fast, ligesom static gjorde i den gamle opsætning.

3. Aktivér ændringen

I behøver ikke genstarte hele Pi'en – I kan genstarte selve forbindelsen:

sudo nmcli connection up "Wired connection 1"

Her afbrydes jeres SSH-session kortvarigt, fordi IP-adressen skifter med det samme.

4. Test og dokumentér

Genopret SSH-forbindelsen på den nye adresse, og bekræft opsætningen:

ssh pi@192.168.1.101 ip a show eth0

ip a show eth0 er standard-Debian-kommandoen til at se en grænseflades aktuelle IP-adresse (svarer til det, hostname -I gav et hurtigt overblik over, men viser også subnetmaske og status). Tag et skærmbillede der viser den nye IP-adresse som dokumentation.

Nu kobler I op til 5 Raspberry Pi'er og jeres PC'er til den samme switch efter IP-planen fra trin 6.

Switch Pi #1 Pi #2 Pi #3 PC #1 PC #2

Læs link-lysene

  • Fast grønt/gult lys på switch-porten og netkortet: der er fysisk forbindelse (lag 1) – kablet og begge ender er ok.
  • Blinkende lys: der sendes trafik lige nu – helt normalt under ping eller opstart.
  • Intet lys: tjek kablet, porten, eller at enheden i den anden ende er tændt.

Som konsulent skal I nu kortlægge "kundens" netværk (bordets LAN): hvilke noder findes, hvilket NIC-hardware/MAC de har, hvilket styresystem de kører, og hvilken IP de svarer på.

1. Find noderne med ping-sweep

Test hvert IP fra jeres plan:

ping 192.168.1.101 ping 192.168.1.102 ping 192.168.1.103

Blokerer en firewall ICMP (ping svarer aldrig, selvom enheden lever), så brug i stedet ARP – enheden svarer stadig på lag 2, selv når den tier på lag 3:

arp -a

2. Gæt styresystem ud fra svartiden (TTL)

Ping-svar indeholder en TTL-værdi, som ofte afslører platformen:

  • TTL ≈ 64 → typisk Linux/Raspberry Pi OS eller macOS
  • TTL ≈ 128 → typisk Windows

3. Brug Wireshark til at bekræfte hardware

Start en optagelse på jeres netkort, og kig på et par pakker fra hver node. De første tre bytes af MAC-adressen (OUI) fortæller hvilken producent netkortet er fra – nyttigt til at bekræfte, at en "node" faktisk er en Raspberry Pi og ikke en anden enhed.

Dokumentationskrav

  • En tabel med: node-navn, IP, MAC, formodet OS, formodet hardware.
  • Metoden I brugte pr. node (ping, ARP eller begge).
  • Et Wireshark-skærmbillede der understøtter mindst én konklusion.

I gav jeres Pi en unik IP-adresse i trin 7, så I kan tale med den enkeltvis. Men en IP-adresse er blot en vejskilt – den siger ikke noget om, hvem der reelt svarer i den anden ende. Hvis en falsk node en dag overtager den samme IP, vil jeres PC gerne bare tro på den, medmindre I har en anden måde at genkende den ægte Pi på.

Hvad er et SSH-fingerprint?

Når SSH-serveren på Pi'en starter første gang, genererer den et host-nøglepar (en privat og en offentlig nøgle), som er dens digitale identitet. Fingerprintet er en kort, læsbar hash af den offentlige nøgle – et "fingeraftryk" I kan sammenligne, uden at skulle læse hele nøglen. Første gang jeres PC forbinder til en given IP, viser SSH dette fingerprint og beder jer bekræfte det; herefter gemmer PC'en det i en lokal fil (known_hosts) og advarer jer, hvis den samme IP pludselig svarer med et andet fingerprint.

Pi #1 🔑 AB:12:CD… Pi #2 🔑 AB:12:CD… Pi #3 🔑 AB:12:CD… Samme image → samme nøgle → samme fingerprint på alle

Problemet med jeres opsætning lige nu

Alle jeres SD-kort er skrevet fra den samme image-fil. Det betyder, at host-nøglen (og dermed fingerprintet) blev genereret én gang, dengang image-filen blev lavet – og derefter kopieret ordret ud på hvert eneste SD-kort. Jeres Pi'er har altså hver deres egen IP-adresse, men identisk fingerprint. En falsk node, der kloner den samme image, ville se præcis lige så "ægte" ud som jeres egen Pi – IP-adressen alene beskytter jer ikke.

Hvad er et SSH-fingerprint helt grundlæggende?

Rigtigt. Fingerprintet er ikke en adgangskode, men en genkendelig repræsentation af serverens nøgle – det fortæller "det er stadig den samme server, jeg talte med sidst".

Hvorfor har alle jeres Raspberry Pi'er lige nu samme fingerprint, selvom de har forskellige IP-adresser?

Præcis – IP-adressen ændrer I selv efter flashning, men host-nøglen ligger som en fil på selve SD-kortet og er derfor identisk på alle kloner, indtil I aktivt genererer en ny.

Sådan giver I jeres Pi et nyt, unikt fingerprint

I skal ikke redigere nogen filer manuelt her – I sletter blot de gamle nøgler og lader SSH-tjenesten lave nye. Gør det via jeres SSH-forbindelse fra trin 5/7:

1. Slet de gamle host-nøgler

sudo rm /etc/ssh/ssh_host_*

Dette rammer kun nøglefilerne – ikke resten af systemet.

2. Lad SSH generere et helt nyt, unikt nøglesæt

sudo ssh-keygen -A

-A betyder "generér alle manglende host-nøgletyper" – da I lige har slettet dem alle, laver kommandoen et frisk sæt kun for jeres Pi.

3. Genstart SSH-tjenesten, så den nye nøgle tages i brug

sudo systemctl restart ssh

Test at ændringen virkede – direkte på Pi'en

Mens I stadig er logget ind (eller efter I er logget ind igen), kan I bede Pi'en vise sit eget fingerprint:

ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

Skriv fingerprint-værdien ned (den lange SHA256:…-streng) – I skal bruge den til at sammenligne med, hvad jeres egen PC viser om lidt.

Valider ændringen fra din egen PC

Fordi jeres PC allerede kendte det gamle fingerprint fra tidligere forbindelser, vil et almindeligt genforsøg nu fejle med en advarsel – det er faktisk et godt tegn, det beviser at noget har ændret sig:

ssh pi@192.168.1.101

I bør se en advarsel i stil med "REMOTE HOST IDENTIFICATION HAS CHANGED". Fjern den gamle, gemte nøgle for den IP, så PC'en er klar til at lære den nye at kende:

ssh-keygen -R 192.168.1.101

Den gemte nøgle ligger i C:\Users\<dit-navn>\.ssh\known_hosts – kommandoen fjerner blot linjen for den ene IP.

ssh-keygen -R 192.168.1.101

Den gemte nøgle ligger i ~/.ssh/known_hosts – kommandoen fjerner blot linjen for den ene IP.

Forbind igen:

ssh pi@192.168.1.101

Nu spørger SSH jer om at bekræfte et nyt fingerprint (samme SHA256:…-format som før). Sammenlign værdien med den, I skrev ned direkte på Pi'en – matcher de, ved I med sikkerhed, at I taler med jeres egen, ægte Pi, og I kan skrive yes for at gemme den nye nøgle.