Systementor Education · Joakim Englund

IP-adressering & Routing

IPv4 · IPv6 · Subnätning · CIDR · NAT · ARP · Routingtabeller · TCP/IP-paket

🌐 IPv4-adresser

IPv4 är den nätverksprotokollstandard som arrangerar och dirigerar paket över IP-nätverk. En IPv4-adress är 32 bitar lång och skrivs som fyra oktetter (8 bitar vardera) separerade med punkter.

// Decimalt format (hur vi läser dem) 192.168.1.10 // Binärt format (hur datorn ser dem) 11000000.10101000.00000001.00001010

Varje oktet kan vara 0–255. Det ger totalt 2³² = ~4,3 miljarder möjliga adresser.

PRIVAT Privata adresser

Används i lokala nätverk, routas ej på internet:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

PUBLIK Publika adresser

Routbara på internet, tilldelade av IANA/ISP. Varje hemnätverk delar oftast en publik adress via NAT.

🧩 Nätverksdel & Värd-del

Varje IP-adress är uppdelad i två delar. Subnätmasken är en bitmask som talar om var gränsen går.

Nätverksdelen identifierar nätverket (t.ex. Googles nätverk, ett ISP-nät, stadsnätet).
Värd-delen pekar ut den specifika enheten på det nätverket.

Exempel: 192.168.1.10 med mask 255.255.255.0

IP
11000000
·
10101000
·
00000001
·
00001010
Mask
11111111
·
11111111
·
11111111
·
00000000
■ Nätverksdel = 192.168.1 ■ Värd-del = .10
Kom ihåg: Två adresser i värd-delen är alltid reserverade — den första (nätverksadressen) och den sista (broadcast). De kan inte tilldelas enheter.

🔢 CIDR & Subnätberäkning

CIDR (Classless Inter-Domain Routing) är ett kompaktare sätt att skriva subnätmasken — ett snedstreck följt av antalet ettor i masken.

CIDR Subnätmask Adresser totalt Användbara hosts
/8255.0.0.016 777 21616 777 214
/16255.255.0.065 53665 534
/24255.255.255.0256254
/25255.255.255.128128126
/26255.255.255.1926462
/28255.255.255.2401614
/30255.255.255.25242

Formeln: 2^(32 - prefix) - 2 = antal användbara hosts.

Subnätting i praktiken: Har du nätverket 192.168.50.0/24 och vill dela upp det i fyra delar? Låna 2 bitar från värd-delen → /26. Det ger fyra subnät med 64 adresser (62 hosts) var.

🔄 NAT & ARP

NAT Network Address Translation

En router översätter privata IP-adresser till en publik IP-adress när trafik lämnar hemnätverket. Syftet: spara på publika adresser + ge viss isolering. Routern håller koll på alla aktiva kopplingar i en NAT-tabell (port-mappning).

ARP Address Resolution Protocol

Används för att hitta MAC-adressen till en IP på samma nätverk. Enheten skickar en broadcast: "Vem har IP X? Svara med din MAC." Svaret cachas i enhetens ARP-tabell. Utan MAC kan paketet inte skickas på datalänklagret.

🚀 IPv6

IPv4-adresserna tog slut. IPv6 är svaret — med 128-bitars adresser (2¹²⁸ ≈ 340 undeciljoner adresser). Skrivs som 8 grupper à 16 bitar i hexadecimalt.

// Förkortningsregler // 1. Ledande nollor i varje grupp tas bort // 2. En sammanhängande följd av nollgrupper → "::" 2001:0db8:0000:0000:0000:0000:0000:00012001:db8::1 // förkortad form fe80:0000:0000:0000:1a2b:3c4d:5e6f:7a8bfe80::1a2b:3c4d:5e6f:7a8b
2000::/3 Global Unicast

Publika, routbara adresser — IPv6:s motsvarighet till publika IPv4-adresser. Prefix börjar med 001 i binärt.

fe80::/10 Link-Local

Skapas automatiskt på varje gränssnitt. Används bara på länknivå — ej routbar. Routrar kommunicerar med grannar via link-local.

fd00::/8 Unique Local (ULA)

Privata adresser för lokala nätverk — IPv6:s motsvarighet till 192.168.x.x. Routas normalt inte utanför organisationen.

ff00::/8 Multicast / Anycast

Multicast = skicka till en grupp (ersätter IPv4-broadcast). Anycast = samma adress på flera noder; paketet levereras till närmaste.

Egenskap IPv4 IPv6
Adresslängd32 bitar128 bitar
FormatDecimal, punkterHexadecimal, kolon
Privata adresserRFC 1918ULA (fc00::/7)
BroadcastJaNej (multicast istället)
NATNödvändigtBehövs inte
AdressupplösningARPNeighbor Discovery (NDP)
IPsecValfrittDel av arkitekturen

🗺 Routingtabeller & Beslut

En router tar emot paket och bestämmer vart de ska skickas. Det gör den med hjälp av en routingtabell — en databas med kända destinationer och hur man når dem.

Destination Next Hop Interface Metric Källa
172.16.32.128/25 on-link eth1 0 connected
172.16.32.0/19 10.0.0.2 eth0 10 OSPF
172.16.0.0/12 10.0.0.1 eth0 20 static
0.0.0.0/0 203.0.113.1 eth0 100 default

📏 Longest Prefix Match

Routern väljer alltid den mest specifika matchningen — den route med det längsta prefixet som matchar destinationen.

// Destination: 172.16.32.200 // Binärt: 10101100.00010000.00100000.11001000 172.16.0.0 /12 → 10101100.00010000.00000000.00000000 ✓ matchar 12 bitar 172.16.32.0/19 → 10101100.00010000.00100000.00000000 ✓ matchar 19 bitar 172.16.32.128/25 → 10101100.00010000.00100000.10000000 ✓ matchar 25 bitar ← VINNER
  1. Ta destinationens IP-adress från paketet.
  2. Gör longest-prefix match mot routingtabellen — välj raden med längst matchande prefix.
  3. Om flera rader matchar med samma prefix-längd: välj den med lägst metric.
  4. Skicka paketet till next hop via det angivna interface (eller leverera direkt om "on-link").
  5. Ingen träff? Använd default route 0.0.0.0/0 om den finns — annars droppas paketet.

📦 Hur TCP/IP-paket ser ut

Ett paket är egentligen bara en lång array av bytes. Data kapslas in (encapsulation) i lager — varje lager lägger till sin header med routing- och leveransinformation.

Lager 2 — Ethernet Frame
Dest MAC Src MAC EtherType → IP Packet (data) FCS
Lager 3 — IP Header
Ver IHL ToS Total Length TTL Protocol Checksum Src IP Dest IP → TCP (data)
Lager 4 — TCP Header
Src Port Dest Port Seq # Ack # Flags Window Checksum → Data (payload)
Lager 5–7 — Applikationsdata
HTTP / MQTT / TLS / DNS / … (faktisk payload)
Routern läser bara IP-headern (lager 3) — Source IP och Destination IP — och bestämmer nästa hopp. Den bryr sig inte om vad TCP eller applikationen innehåller.

Dagens mål uppnådda

IP Struktur

32-bitars IPv4, 128-bitars IPv6. Nätverksdel + värd-del separerade av subnätmasken.

Subnät Organisation

CIDR-notation, subnätmask via bitmanipulation (&). Nätverks- och broadcast-adresser är reserverade.

Routing Beslut

Longest-prefix match i routingtabellen. Default route som sista utväg. Static vs dynamic routes.

Paket Inkapslad data

Ethernet → IP → TCP → App. Routern läser lager 3-headern för att vidarebefordra paketet.