IP v4 adresser og subnetting – Del I

For nogle (de fleste) er det her med IP adresser, subnetting, binære tal etc. noget af en mavepuster. Det er rigtig svært at se logikken bag det hele og det tager for nogle lang tid og andre kort tid at finde ud af.

Men vær rolig – DU SKAL NOK SE LYSET – Det er heldigvis ikke den store matematik, men blot viden og forståelse for hvordan de forskellige talsystemer arbejder og fungerer. Vi tager det helt i slowmotion og ja – det kan godt virke som om vi taler ned til dig, men vi prøver at skære det ud i pap. Mest fordi det faktisk ser ud til at virke når vi gør det så simpelt som muligt og så bygger på hen af vejen.

Herunder ser du et luftbillede af et vilkårligt beboelseskvarter. For et postbud ville det være et mareridt hvis ikke der var et eller andet system i adresseringen. Derfor er det jo blevet noget nemmere for postbuddet at finde præcis den rigtige lokation, efter at vi begyndte at benytte by, postnr, vejnavn og husnumre, siden 1859.

Hvis vi bliver lidt ved postbudene (!) – Hvis vi skal sende et enkelt brev til Peter, skal vi altså skrive Peter’s specifikke adresse på konvolutten. Men hvis vi nu ønsker at sende et brev til alle på den samme vej som Peter, så kan vi “nøjes” med at skrive by, postnr, og vejnavn på konvolutten. Dvs. at husnummeret i sig selv ikke er interessant, da vi ønsker at alle på samme vej skal have et brev uanset hvilke husnumre de har.

På samme måde kan vi forestille os IP adresser bliver brugt.

Alle enheder på et IP baseret netværk skal have en IP adresse (med ganske få undtagelser). Men IP adresserne skal indordnes efter et system, så vi kan styre hvor IP pakkerne skal sendes fra og til, mellem sender og modtager i et netværk.

I selve IP netværket kan der ikke benyttes bogstaver som adresser, men kun tal og tilmed kun tal i det binære talsystem. Men for ikke at gøre det for svært, bruger vi ganske almindelige decimaltal, som så bliver oversat mellem decimaltal og binære tal af alle enhederne i netværket.

Vi benytter også andre tal systemer, som f.eks. hexadecimal tal og octal tal, men det kan du læse mere om herunder. Det “sværeste” i alt det her, er at få lært at “oversætte” mellem de forskellige talsystemer. Der findes heldigvis nogle enkelte huskeregler til de mest benyttede “oversættelser” og så er der gode værktøjer på nettet. I Windows er der en lommeregner, som kan regne mellem de forskellige talsystemer.

Talsystemer:

Arabiske talsystem / Decimale talsystem (10-tals system – Grundtallet = 10 – Tal fra 0 til 9)

Den kender vi alle til fra folkeskolen. Indenfor IT verden og IP adresser benytter vi dog kun alle de positive heltal i 10-talssystemet inkl. tallet 0.

Oktale talsystem  (8-tals system – Grundtallet = 8 – Tal fra 0 til 7)

Mange steder indenfor IT benytter vi udtrykket octet, når noget har med 8 stk af et eller andet at gøre. Vi bruger dog ikke selve octal tal til beregninger m.m. En Byte er en oktet af binære værdier, altså 8 bit = 1 Byte = 1 Octet.

Hexadecimale talsystem (16-tals system – Grundtallet = 16 – Tal fra 0 til 9 og A til F)

Når vi skal bruge meget store decimal tal eller binære tal, har hexadecimal tal den store fordel, at vi kan skrive store tal med ganske få tegn. F.eks. vil det binære tal; 111010110111100110100010101 = 75BCD15 i hexadecimal tal.‬

Decimaltallet 127 vil være 7F i hexadecimal og det skal siges som det står skrevet.

Binære talsystem (2-tals system – Grundtallet = 2 – Tal fra 0 til 1)

ALT indenfor IT benytter binære tal. Ja faktisk kan man snart sige at alt gør, da kaffemaskinen, bilen, telefonen osv. også benytter binære tal. Så alt hvad der er DIGITALT bruger binære tal. Da en binær værdi kun kan have 2 tilstande (on / off, af / på, tændt / slukket, oppe / ned etc) er det oplagt at den er alle steder i den digitale verden.

Til gengæld kan et binær tal være meget langt og bliver derfor ofte “oversat” til hexadecimaltal eller decimaltal.

Lidt om regler ved IP adresser:

Da man i sin tid i 1969 fandt på internettet og dermed IP protokollen, vidste man fra starten at der skulle bruges IP adresser og for at være lidt forsigtig optimistisk, valgte man at der skulle være mange – rigtig mange – IP adresser. IP-adresserne blev derfor besluttet skulle udgøres af 32 bit i det binære talsystem og det ville dermed give:

Det er rigtig mange IP adresser og i starten af internettets begyndelse, var der da heller ikke mange der havde forudset at vi ville få mangel på dem. Internettet opstod mellem de store universiteter i USA og derfor fik hver universitet op til flere tusinde adresser de kunne bruge løs af. Da internettet blev “frigivet” og flere og flere kom til, var der stadig en rundhåndet liste af IP adresse-puljer til hver af dem. Efterhånden blev det dog åbenlyst at man var nødt til at få styr på alle de mange IP adresser og IANA (Internet Assigned Numbers Authority) valgte ret hurtigt at inddele adresserne i forskellige puljer, hvoraf nogle af dem er følgende:

  • Private IP adresser (LAN IP adresser):
    • 10.0.0.0 – 10.255.255.255 /8
    • 172.16.0.0 – 172.31.255.255 /12
    • 192.168.0.0 – 192.168.255.255 /16
  • Beskyttede IP adresser:
    • 169.254.0.0 /16 (Microsoft / Apple definerede adresse område)
    • 127.0.0.0 (Loopback adresser internt i en PC)

Da vi ikke har nok IP adresser begyndte bl.a. IANA at udvikle IP v6 protokollen, velvidende at det ville tage en del år at få standardiseret og integreret protokollen. Derfor fandt man på flere “nødløsninger” for at “forsinke” behovet for flere IP adresser. Bl.a. NAT (Network Address Translation) funktionen, som faktisk er et fremragende værktøj til at “oversætte” mellem private og offentlige (LAN og WAN) IP adresser, opfundet og bruges over hele verden og vil sikkert være en vigtig funktion i mange routere i rigtig mange år fremover.

Nogen gange hjælper det at få forklaret tingene af på forskellige måder og vi har derfor udvalgt 3 videoklip (ud af mange mulige, men søg evt. selv på youtube.com efter andre), som på hver deres måde prøver at forklare hvordan IP adresser og netværk fungerer.

Se dem igennem i ro og mag og følg så resten af vores forklaring herunder og fremefter. Du skal ikke presse dig selv til at prøve at forstå hvordan det virker. Hvis du ikke forstår det fra starten er du ikke den eneste, da langt de fleste skal bruge noget tid og lad det komme stille og roligt. Vi er helt sikre på at du nok skal komme til at forstå logikken bag IP adresser inden du er færdig på Grundforløb 2.

Vi har altså 3 LAN IP adresser (10.0.0.0, 192.168.0.0 og 172.16.0.0-172.31.255.255) og hvis vi nu fokuserer på den ene af dem og prøver at se hvordan IP adresserne fungerer.

10.0.0.0 er en LAN adresse. Dvs. at ALLE IP adresser der starter med 10.-et-eller-andet er en IP adresse i et privat netværk.

Men lad os lige kigge på nogle simple huskeregler først:

  • ALLE computere, servere, printere, routere, telefoner, videokameraer osv. skal have en IP adresse.
  • Den samme IP adresse må kun bruges ÉN gang i hvert netværk.
  • Alle IP adresser der skal kunne “tale” med hinanden skal være i samme netværk.
  • Alle enheder der har en IP adresse SKAL desuden vide hvilket netværk de tilhører.
  • Alle enheder der har en IP adresse skal desuden vide hvordan de kommer ud af deres eget netværk.
  • Alle enheder vil automatisk få tildelt en “lytte” (broadcast) adresse.

Ovenstående information kan læses ud af én enkelt IP adresse oplysning. Så f.eks. vil en IP adresse som 10.21.13.17 /24 fortælle følgende:

  • Enhedens IP adresse er: 10.21.13.17
  • Netværket “hedder”: 10.21.13.0
  • Udgangen (Gateway) hedder: 10.21.13.1
  • Lytte (broadcast) adressen er: 10.21.13.255
  • Der kan være i alt 254 enheder i netværket.
  • Det er et privat netværk.

Hvordan dælen vidste jeg alt det? – Det er sådan set meget logisk, når man forstår hvordan IP adresser skal læses og det kigger vi nærmere på nu.

Hvis vi deler IP adressen op i de 32 bit som er udgangspunktet for opbygningen af IP adresser, ser det således ud:

Men hov – der stod jo 10.21.13.17 /24 (slash 24). Værdien 24 henviser til det som vi kalder Subnetmasken og er en del af selve IP adressen. Subnetmasken skal derfor altid være med når vi angiver en IP adresse, da vi ellers ikke får alle oplysninger med.

Subnetmasken angiver opbygningen af IP adressen og deler den op i hvilken del er netværkets ID og hvilken del af IP adressen er enhedens ID. IP adressen bliver opdelt i 4 “blokke” adskilt med et punktum. I hver blok kan der være den værdi der svarer til 8 bits (11111111.11111111.11111111.11111111) og dermed er vi oppe på de 32 bit der er i alt i en IP adresse.

En blok består altså af 8 bits og er dermed en oktet (som du sikkert kan huske under gennemgangen af talsystemer er octal talsystemet et 8-tals system), så vi har 4 oktetter i alt i en IP adresse. Hver oktet kan have værdier fra “00000000” til “11111111”, svarende til til decimal tallene fra 0 til 255. Men hvordan er det lige man omregner fra Binære tal til Decimal tal?

I videoen her til højre bliver det meget fint gennemgået hvordan man omregner fra binær til decimal og omvendt. I virkeligheden drejer det sig blot om at kunne huske en talrække. Når først denne talrække ligger fast er det relativt nemt at omregne mellem de 2 talsystemer.

Talrækken er: 1 – 2 – 4 – 8 – 16 – 32 – 64 – 128 – 256 – 512 – 1024 – 2048 – 4096 – 8192 …….

Dvs. at vi starter med 1 og så fordobler vi hele tiden. Du har helt sikkert stødt på nogle af disse lidt “magiske” tal, når du har kigget på f.eks. Harddiske og RAM, men du kender også begreberne “Windows 32 bit / 64 bit”, eller hvad med 4, 8, 16 GB hukommelse.

Så prøv at huske ovenstående talrække, da den vil være en stor hjælp flere gange indenfor IT.

Tilbage til IP adresserne 🙂 IP adressen bestod altså af selve IP adressen og en tilhørende Subnetmaske. I vores tidligere eksempel var IP adressen 10.21.13.17 og Subnetmasken beskrev vi som “/24”, så lad os kigge lidt på den der “slash” værdi.

Der er 32 bit fordelt på 4 oktetter; 11111111.11111111.11111111.11111111 Ved at angive “/24” markerer vi at de første 24 bit (set fra venstre) er sat til værdien “1” og resten til værdien “0”. Så “/24” er; 11111111.11111111.11111111.00000000.

Hvis vi omregner 10.21.13.17 til en binær værdi og så sætter de to IP værdier over hinanden som sådan her: 

Vi bruger subnetmasken til at adskille hvad der er netværkets ID og hvad der er de enkelte enheders ID. Herover kan du se at den første oktet (set fra venstre) har værdien “11111111” hvilket betyder at den ovenstående IP værdi (10) er “låst” til at være første del af Netværkets ID. Således gælder det også for 2. og 3. oktet, som så ligeledes er en del af netværkets ID. Den 4. oktet har værdien “00000000” og er dermed ikke låst og kan dermed bruges til tildeling af IP adresser. Således kommer netværket til at hedde: 10.21.13 + den laveste værdi i 4. oktet (0), hvilket vil sige at den totale NetID = 10.21.13.0.

Subnetmasken er som vist sat til at være 255.255.255.0 og er det samme som “/24” (de 24 bit ud af de i alt 32 bit læst fra venstre). Således har vi nu NetID og Subnetmasken på plads, men hvad med Gateway og Broadcast?

Gateway er hele netværkets vej ud af netværket. Dvs. at hvis én PC skal kommunikere med en anden PC i et andet netværk, så bliver IP pakkerne automatisk henvist til Gateway’en, som så sørger for at finde ud af hvor pakkerne skal hen. Hvis PC’en skal kommunikere med en anden PC i samme netværk, bliver Gateway’en ikke benyttet, da IP protokollen godt ved hvor den skal sende pakkerne hen. Som hovedregel benyttes den første mulige IP adresse til Gateway, men det er ikke en lov. Den kan altså hvad som helst inden for de IP adresser der er til rådighed, men det er en MEGET udbredt uskreven lov, at vi benytter den første ledige IP adresse. I ovenstående tilfælde vil det altså være 10.21.13.1.

Broadcast er en speciel IP adresse som alle i samme netværk “lytter” på. Når en PC starter op, sender den som det første en broadcast meddelelse ud på nettet for at spørge efter en DHCP server. Enhver enhed i et netværk kan sende informationer (datagrammer) ud til alle andre enheder på samme netværk. Broadcast adressen er ALTID den sidste IP adresse og i ovenstående eksempel bliver det altså: 10.21.13.255.

I det viste eksempel herover kan vi også udlede at vi har i alt 254 IP adresser vi kan bruge til vores udstyr:

  • 10.21.13.0 = NetID
  • 10.21.13.1 = Gateway /Router
  • 10.21.13.2 – 254 = IP adresser til vores udstyr
  • 10.21.13.255 = Broadcast

Herunder ser du et helt andet eksempel, hvor vi har 2 netværk er forbundet igennem en router til hinanden. Routeren er for hvert netværk den Gateway som netværkets enheder skal benytte, hvis de vil kommunikere på tværs af hinanden.

Det ene netværk hedder 192.168.0.0 /24 og det andet hedder 192.168.1.0 /24. Selv om de lyder til at være næsten ens, er de lige så forskellige som hvis det ene hed 10.21.13.0 /24 og var placeret i Hong Kong og det andet hed 172.16.22.0 /24 og var placeret i Helsinki.

Læg mærke til at switchen ikke har nogen IP adresse. Den skal ikke bruge en IP adresse, da den opererer på Lag 2 i OSI modellen og derved benytter Ethernet protokollen og MAC adresser til at “styre” pakkerne efter.

Hvis en PC i det ene netværk har fået en IP adresse der slutter på f.eks. 27 og en tilsvarende PC i det andet netværk ligeldes har IP adressen 27, vil der ikke opstå en konflikt da de tilhører h.h.v. NetID 192.168.0.0 og NetID 192.168.1.0 og derved ikke eksisterer på samme netværk.

Hvis en PC i netværket sender datapakker ud til en IP adresse der ikke findes på netværket, bliver pakkerne automatisk sendt til Gateway’en / Router’en. Gateway vil så forsøge at finde ud af hvor pakkerne skal hen.

I det næste afsnit vil vi fortælle og vise dig hvordan vi kan lave større eller mindre netværk ved hjælp af subnetmasken.