Mrezni sloj, IPv4

Mrežni sloj

Zadatak mrežnog sloja je da podatke kroz mrežu prenese od ishodišnog do odredišnog uređaja. Podaci se segmentiraju i prenose u paketima, pa se takav prijenos podataka naziva paketni prijenos. Na mrežnom se sloju svakom segmentu dodaje zaglavlje mrežnog sloja s podacima potrebnim za prijenos.

Kako bi mrežni sloj znao proslijediti pakete do cilja, paketi moraju imati odredišnu adresu, a da bi se podaci mogli vratiti, potrebno je znati i ishodišnu adresu. Adrese mrežnog sloja zovu se IP adrese i nalaze se u zaglavlju paketa.

Uređaji koji odlučuju kojim putem poslati paket prema cilju zovu se usmjernici (router). Paket se od usmjernika do usmjernika približava odredištu. Usmjernici prihvate paket, pročitaju odredišnu adresu, nađu najbolji put prema odredištu i prosljeđuju paket prema cilju. Taj se proces zove usmjeravanje (prosljeđivanje, routing) paketa prema cilju na temelju odredišne (IP) adrese.

Slikovni rezultat za packet routing

 

Mrežni sloj obavlja slijedeće osnovne zadatke:

  • adresiranje paketa pomoću ishodišne i odredišne IP adrese
  • enkapsulacija, odnosno dodavanje IP zaglavlja
  • usmjeravanje paketa (routing) ili pronalaženje najboljeg puta do odredišta
  • dekapsulacija, odnosno skidanje IP zaglavlja na odredištu

4.2. Mrežni protokol IPv4

Zadatke mrežnog sloja odrađuju mrežni protokoli. Protokol IP (internetski protokol) je gotovo sinonim za mrežni protokol jer se upotrebljava na Internetu. IPv4 protokol opisuje strukturu zaglavlja mrežnog sloja.

IPv4 ne uspostavlja vezu prije slanja paketa i ne brine o pouzdanosti prijenosa. Ako je potrebno, taj posao odradi TCP protokol na transportnom sloju tako da zahtjeva ponovno slanje segmenta, odnosno paketa ako nije stigao ili nije stigao ispravan do odredišta. Ako se na transportnom sloju upotrebljava protokol UDP koje ne upostavlja vezu i ne provjerava ispravnost prijenosa (kao i protokol IP), provjera ispravnosti prijenosa, ako je potrebno, treba se ugraditi u aplikaciju. Protokol IPv4 radi neovisno o vrsti medija za prijenos. Struktura bitova u IP paketu neće se promijeniti ako se paket šalje različitim medijima za prijenos podataka.

IPv4 zaglavlje

Protokol IPv4 definira zaglavlje s kojim se enkapsuliraju podaci na mrežnom sloju:

Slikovni rezultat za ipv4 header

Polja u zaglavlju:

Polje „Verzija“(engl. Version) označava verziju protokola i kod IPv4 zauzima četiri bita.

Polje „Veličina zaglavlja“(engl. Internet Header Length, IHL) služi specificiranju ukupne duljine zaglavlja i izražena je kao broj 32 bitnih riječi. Najmanja vrijednost koju ovo polje može imati je 5, što znači da je minimalna vrijednost IP zaglavlja 5 x 32 bita = 160 bitova = 20 bajta. Maksimalna vrijednost za 4 bitnu kombinaciju je 15 riječi, kada je 15 x 32 = 480 bitova što iznosi 60 bajta.

Polje „Vrsta usluge“(engl. Type of Service, TOS) omogućuje određeno upravljanje prijenosom paketa. Služi za označavanje paketa u slučaju upotrebe QoS sustava. To je polje duljine 8 bita. Polje je osmišljeno za određivanje kvalitete usluge (engl. Quality of Service, QoS). Novije implementacije IPv4 protokola ovo polje mijenjaju sa 6 bitnim DSCP (engl. Differentiated Service Code Point) i 2bitnim ECN (engl. Explicit Congestion Notification) poljem. DSCP polje određuje vrijednost QoS-a za svaki paket. ENC polje služi za dobivanje informacija o zagušenjima kroz mrežu.

Polje „Ukupna duljina“(engl. Total Length) služi za određivanje ukupne duljine IP paketa uključujući i podatke. Ova vrijednost uključuje veličinu podatkovnog dijela, veličinu TCP/UDP zaglavlja i veličinu IP zaglavlja. Ovo polje prezentira se oktetima i u zaglavlju zauzima 16 bita.

Polje „Identifikacija“(engl. Identification)- jedinstvena identifikacija fragmenata jednog paketa. Upotrebljava se kako se fragmenti različitih paketa ne bi pomiješali (kad se paket pri prolazu kroz mrežu dijeli ili fragmentira na više dijelova). Zauzima 16 bita, a određeno je od strane pošiljatelja. Služi identifikaciji pojedinačnih paketa, koji su rastavljeni na fragmente od strane usmjernika.

Polje „Zastavice“ (Flags), služi za određivanje postupanja uređaja prema određenom IP paketu. Polje se sastoji od tri bita – zastavice. Prvi bit uvijek ima vrijednost 0, drugi bit služi za određivanje fragmentacije (0 –paket se smije fragmentirati, 1 –paket se ne smije fragmentirati), dok treći bit prezentira lokaciju paketa u nizu fragmentiranih paketa (0 –paket se nalazi kao zadnji fragment u nizu ili paket nije fragmentiran uopće, 1 –paket nije zadnji u nizu fragmentiranih paketa i treba se očekivati dolazak više fragmentiranih paketa). Prva je zastavica neiskorišteni bit u IP zaglavlju (Reserved), druga upravlja fragmentacijom (DF, Don’t Fragment), a treća označava posljednji fragment u izvornom paketu (MF, More Fragments).

Polje „Oznaka fragmenta“, (Fragment Offsett) koristi 13 bita i upotrebljava se za određivanje pozicije fragmenta u paketu. Paketi koji nisu fragmentirani i prvi paketi u nizu fragmentiranih paketa uvijek imaju vrijednost ovog polja postavljenu u 0.

Polje „Vrijeme života“(engl. Time to Live, TTL) je vrijednost u rasponu od 0 do 255 i označava starost paketa. Svaki put kada paket dođe na usmjernik, ova se vrijednost umanjuje za jedan. Kada padne na nulu, paket se briše, odnosno uklanja s mreže. Upotrebljava se za sprečavanje nastanka petlji na mrežnom sloju.

Polje „Protokol“(engl. Protocol) – identifikacija višeg protokola koji se upotrebljava. Polje je veličine 8 bita, što znači da može poprimiti vrijednost između 0 i 255. Primjerice, broj ptorokola TCP je 6, a protokola UDP 17. Ssluži označavanju protokola za slanje paketa. Ako polje poprimi vrijednost 0x06 (u heksadekadskom zapisu) ili 00000110(u binarnom zapisu), koristi se TCP (engl. Transmission Control Protocol) protokol. Ako polje poprimi vrijednost 0x11 (u heksadekadskom zapisu) ili 00010001(u binarnom zapisu), koristi se UDP (engl. User Datagram Protocol) protokol. Internet Control Message Protocol (ICMP) predstavljen je heksadekadskim zapisom 0x01 ili binarnim zapisom 00000001.

Polje „Sažetak zaglavlja“ (Header Checksum) zauzima 16 bita. Služi kao metoda za provjeravanje i potvrđivanje da nije došlo do promjene niti jednog polja zaglavlja IP paketa. Upotrebljava se za provjeru ispravnosti paketa.

Polja „Izvorišna addresa“(engl. Source IP Address) i „Odredišna adresa“(engl. Destination  IP Address) adresa, određena s 32 bita, označavaju IP adresu izvorišnog, računala s kojeg je paket poslan i odredišnog uređaja, računala na koju je paket poslan.

Polje „Opcije“(engl. Options, Padding) ima varijabilnu vrijednost duljine i u njemu se određuju dodatne opcije za slanje. Većina IP paketa, koji se šalju u suvremenim mrežama, nemaju ovo polje, zato što se ovo polje najčešće ne koristi. To su polje dodatne IP opcije. Ispuna se upotrebljava kako bi zaglavlje bilo djeljivo s 32.

Treba naglasiti da usmjernici čitaju i mijenjaju samo IP zaglavlje zbog promjene polja TTL i sažetak zaglavlja, a da podatke koji su enkapsulirani (TCP ili UDP segment) ne diraju.

Tipično IPv4 zaglavlje: verzija=4 (za IPv4), veličina zaglavlja=5(5*4=20 okteta), ukupna duljina=472 (veličina zaglavlja i podataka je 472 okteta), identifikacija=111 (jedinstveni identifikator, u slučaju da paket bude fragmentiran), zastavice=0 (označava da paket može biti fragmentiran), oznaka fragmenta=0 (označava da paket još nije fagmentiran), vrijeme života=123, protokol=6 (označava da paket nosi TCP segment).

4.3. IPv4 adresiranje

4.3.1. Struktura IPv4 adrese

Svaki uređaj u mreži mora biti jednoznačno definiran, odnosno mora imati svoju adresu. Ta se adresa u skupu protokola TCP/IP zove IP adresa. Sastoji se od četiri broja odvojena točkom. Brojevi mogu biti u intervalu od 0 do 255, npr. 192.168.10.1

Duljina IP adrese u binarnom obliku je 32 bita. Svaki osam bitova je jedan broj. Brojevi su odvojeni točkama radi lakšeg snalaženja u radu s IP adresama. 

Svaka IP adresa podijeljena je na dva dijela: dio za adresu logičke mreže (3 okteta, 3 broja) i dio za adresu računala unutar logičke mreže (1 oktet, 1 broj).

Za sve uređaje koji imaju isti mrežni dio IP adrese, odnosno isti niz bitova koji definira mrežni dio kažemo da se nalaze na istom mrežnom segmentu ili da su u istoj logičkoj mreži. Adresu mreže dobijemo tako da mrežni dio adrese prepišemo, a dio adrese koji definira računalo postavimo u nulu, pa možemo zaključiti da se računala nalaze u npr. mreži 192.168.10.0. 

Dvije logičke mreže mogu biti povezane pomoću usmjernika. Ako su dvije logičke adrese jednake u trećem oktetu onda kod njih prva dva okteta određuju logičku mrežu. Usmjernik je ovdje uređaj koji prosljeđuje pakete između logičkih mreža.

Image result for two networks connected with router

4.3.2. Tipovi IPv4 adresa

  • mrežne adrese (network)
  • broadcast adrese
  • jednoodredišne adrese (unicast)
  • višeodredišne adrese (multicast)

Mrežne adrese – adrese koje određuju logičku mrežu, dio koji definira uređaj u logičkoj mreži ima vrijednost nula.

Broadcast adrese –  paketi s odredišnom broadcast adresom namijenjeni su svim uređajima (na mrežnom segmentu) koji su u istoj logičkoj mreži. Domet broadcast adrese je samo unutar mrežnog segmenta jer usmjernik dijeli mreže i ne propušta broadcast pakete. Broadcast adresa je ona u kojoj su svi bitovi koji definiraju uređaj (zadnji oktet) postavljeni u 1, što znači da je to zadnja adresa u logičkoj mreži (255).

Jednoodredišne adrese – adresiraju samo jedan uređaj u mreži (1-254).

Višeodredišne adrese –  adresiraju grupu uređaja koji imaju pridruženu zajedničku višeodredišnu adresu. Primjer uporabe je gledanje videosadržaja na internetu (video streaming). Poslužitelj koji šalje video sadržaj šalje samo jedan paket, a svi uređaji koji imaju pripadajuću višeodredišnu adresu primaju poslani paket. Tako poslužitelj ne mora slati paket posebno svakom uređaju. Za višeodredišne je adrese rezerviran poseban skup IP adresa koje počinju brojevima od 223 do 234.

Adrese

4.3.3. Podjela logičkih mreža na klase

Ponekad je logička mreža definirana s 24 bita, a ponekad sa 16. Kako znati koliko je bitova rezervirano za mrežni dio, a koliko za uređaje u pojedinoj mreži samo na temelju IP adrese? Kako odrediti koliko će bitova biti mrežni dio, a koliko će biti za adresiranje uređaja u IP adresi? 

Prvi pokušaj rješenja tog problema bio je podjela mreža na klase. Mreže su bile podijeljene na klase: A, B, C, D i E. Ovisno u kojoj klasi se IP adresa nalazi, određeni se broj bitova dijeli na mrežni dio adrese i dio za adresu računala u toj mreži. Dakle, klasa je određivala mrežni dio adrese.

Image result for ipv4 classes

Image result for ipv4 classes examplesKako znati u kojoj je klasi koja adresa, odnosno koji je dio adrese mreža, a koji adresa unutar mreže? Dogovoreno je da prvi broj adrese definira klasu. Definiranjem klase definira se i mrežni dio. Klasa A je od 0 do 127.

Najviše različitih logičkih mreža može se napraviti u klasi C, jer su tri okteta rezervirana za brojeve mreža, a u toj klasi se najmanje IP adresa može pridružiti uređajima u jednoj od mreža jer je samo jedan oktet rezerviran za adrese uređaja unutar mreže. U klasi C može se pridružiti 254 različite adrese (prva adresa je adresa mreže, a zadnja adresa je broadcast 256-2=254).

U klasi A je suprotan slučaj. Samo je jedan oktet za adrese mreža, a tri su okteta za adrese uređaja u mreži. U jednoj od mreža u klasi A može se adresirati (2 na 24)-2 uređaja. Klasa B je u sredini, 2 okteta za mrežu i dva okteta za uređaje u mreži.

Iz koje će klase biti dodijeljena mreža ovisit će o broju potrebnih adresa. Ako je potrebno malo adresa (manje od 254) dovoljna je klasa C. Ako je potrebno više od 254 adrese, treba preći u mrežu klase B. Opisana je podjela IP adresa na klase bila prvo načelo organizacije mreža. Prvi je broj u IP adresi određivao klasu, klasa je određivala koliko je bitova rezervirano za mrežni dio, a koliko za uređaje u mreži. 

Uređajima se može uz jednoodredišnu adresu pridružiti i više višeodredišnih adresa. To su adrese iz klase D. Klasi D pripadaju sve adrese koje počinju brojevima od 224 do 239.

Klasa E upotrebljava se u eksperimentalne svrhe. Adrese u klasi E počinju brojevima od 240 do 255.

O IPv4 adresama

4.3.4. Privatne i javne IP adrese

IP adresa na Internetu mora biti jedinstvena. Sukladno tome mora postojati organizacija koja organizira adresni prostor i brine se o dodjeli javnih IP adresa. Sve javne IP adrese moraju biti registrirane kod regionalne organizacije za dodjelu internetskih adresa RIR (Regional Internet Registries). Davatelji internetskih usluga IP adrese dobivaju od RIR-a, a organizacije od svog davatelja internetskih usluga ISP-a.

Česte adrese u lokalnim mrežama i na osobnim računalima imaju prvi broj 10, 172 ili 192. To su privatne IP adrese koje se upotrebljavaju samo unutar lokalne mreže i njima se ne može koristiti na Internetu.

U svakoj je klasi definiran skup adresa koji je proglašen privatnim adresama i služi isključivo za upotrebu unutar lokalne mreže, odnosno izvan Interneta.

Slikovni rezultat za private ip addresses cidr

Za razliku od javnih IP adresa koje moraju biti jedinstvene, a dodijeliti ih moraju ovlaštene organizacije, privatnim istim IP adresama može se koristiti bilo tko. Da ne bi došlo do sukoba među adresama, granični usmjernici prema Internetu podešeni su da ne prosljeđuju privatne IP adrese na Internet. Privatne adrese štede javne IP adrese kojih ionako nema dovoljno i omogućuju fleksibilnost pri projektiranju lokalnih mreža bez ograničenja javnog IP adresiranja.

Ako dvije takve mreže, odnosno računala iz tih mreža, žele komunicirati preko Interneta (na koji se može samo adresom iz skupa javnih), rješenje je u sustavu koji privatne adrese prevodi u javne adrese. Granični usmjernik prema Internetu prevodi privatne adrese u javne i obrnuto. Tehnika prevođenja privatnih IP adresa u javne i obrnuto zove se NAT (Network Address Translation).

4.3.5. NAT

NAT je tehnika koja skup privatnih adresa iz lokalne mreže prevodi u skup javnih adresa ili u samo jednu javnu IP adresu. Ako se privatne adrese prevode u samo jednu javnu IP adresu, tada Internet vidi cijelu mrežu kao jednu IP adresu.

NAT u određenoj mjeri povećava stupanj sigurnosti u mreži jer je cijela mreža sakrivena iza jedne IP adrese, ali glavna korist od NAT-a je ušteda IP adresa jer omogućuje upotrebu privatnih IP adresa u lokalnim mrežama. Na slici je primjer povezivanja privatne mreže sa privatnim adresama i javne mreže sa javnim adresama. Usmjernik je granica između privatne i javne mreže.

Slikovni rezultat za private and public ip addresses NAT

 

Povezana slika

Slikovni rezultat za private and public ip addresses NAT

Kada paket izlazi iz lokalne mreže, na graničnom se usmjerniku u polje ishodišne adrese stavlja javna IP adresa. Kada se paket vrati, javna se adresa ponovno zamjenjuje privatnom. Najčešći je slučaj da se skup privatnih adresa iz lokalne mreže prevodi u jednu javnu IP adresu.  Budući da su svi paketi otišli na Internet s istom ishodišnom javnom adresom, svi se i vraćaju s istom odredišnom javnom adresom.

Postavlja se pitanje kako usmjernik zna kojem računalu u lokalnoj mreži treba proslijediti vraćeni paket, odnosno koju privatnu adresu treba ponovno vratiti u paket? Da bismo povezali računalo i paket u slučaju da svi paketi izlaze sa istom javnom adresom, treba nam još jedan dodatni parametar koji će jednoznačno definirati uređaj s kojeg je paket poslan. Za taj se dodatni parametar upotrebljava broj priključka (port). Zato se ta tehnika često zove i PAT (Port Address Translation).

Razmjena privatnih i javnih adresa PAT tehnikom

Sustav pretvaranja više privatnih IP adresa u jednu javnu IP adresu.

Slikovni rezultat za pat port address translation"

Pretpostavimo da računalo s privatnom adresom 192.168.10.10 želi poslati zahtjev za web-stranicom web-poslužitelju na javnoj adresi 208.11.200.3. Kada paket stigne na granični usmjernik na kojem je konfiguriran NAT, odnosno PAT, usmjernik će u svoju tablicu upisati ishodišnu privatnu adresu i broj ishodišnog priključka (192.168.10.10:1333). Zatim će u polje ishodišne IP adrese upisati javnu adresu konfiguriranu na usmjerniku da predstavlja lokalnu mrežu na Internetu (200.1.20.35). Broj ishodišnog priključka ostat će isti.

Priključak je, dakle, veza između privatne i javne IP adrese. Paket sa zahtjevom doći će do web-poslužitelja i on šalje paket sa web-stranicom klijentu. Ishodišna adresa sada postaje odredišna. Jednako tako je i sa priključcima. Odredišni priključak postaje ishodišni. Paket se vraća na adresu 200.1.20.35 i priključak 1333.

Paket stiže do graničnog usmjernika. Usmjernik pročita broj odredišnog priključka (1333) i potraži u tablici taj broj priključka i nađe privatnu IP adresu. Tu adresu stavi u polje za odredišnu adresu i proslijedi paket u lokalnu mrežu.

Broj priključka pomaže nam pri prevođenju privatnih adresa u javne i obrnuto, ali nam i određuje klijentsku ili poslužiteljsku aplikaciju na računalu. Može se dogoditi da dva računala u lokalnoj mreži proizvode isti broj ishodišnog priključka pri slanju paketa (priključak je lokalnog karaktera). U tom slučaju NAT usmjernik promijeni i broj priključka, ali to ažurira u NAT tablici i pri povratku paketa s tim brojem priključka uz izvornu adresu u IP paket upiše ponovno i ishodišni broj priključka.

4.3.6. Upotreba mrežne maske (Subnet mask)

U ranim danima Interneta smatralo se da će podjela IP adresa na klase biti dovoljna. Naime, u mreži klase C uređajima se može pridružiti 254 adrese. Ako imamo mrežu u kojoj je potrebno više adresa, imamo klasu B gdje se može pridružiti 65534 adrese. Problem je u tome što ako trebamo npr. 300 adresa, moramo upotrijebiti klasu B. Posljedica ovakve grube podjele mnoštvo je rezerviranih, ali neupotrebljenih i za druge korisnike nedostupnih adresa. Zbog brzog rasta Interneta uvidjelo se da će takvim načinom podjele mreža sve mreže vrlo brzo biti potrošene.

Počelo je osmišljavanje tehnika koje bi ublažile problem koji uzrokuje format IP adrese. Krenulo se od ideje da podjela na broj bitova za mrežu može biti bilo koji broj a ne samo 8, 16 i 24. Na taj bi se način moglo prilagoditi broj bitova za mrežu i uređaje u mreži prema potrebi.

To se može postići stvaranjem podmreža unutar glavne mreže klase A, B ili C. Bitovi mreže produžuju se slijeva nadesno unutar bilo koje klase i pomoću njih se stvaraju podmreže proizvoljne duljine.

Slikovni rezultat za subnet table"

Kako sada znamo koliko je bitova za mrežu? Prvi nam broj IP adrese govori o kojoj je klasi riječ, a ako ukrademo određeni broj bitova iz drugog dijela adrese i pridružimo ih mreži, više ne znamo po prvom broju koliko je to bitova. Problem je riješen dodavanjem mrežne maske (subnet mask) koja nam govori koliko je bitova u adresi mrežni dio.

Mrežne maske formalizirane su 1985. Njihova je namjena bila da omoguće razbijanje mreža klase A, B i C u sitnije dijelove.

Prije uvođenja mrežne maske mrežni dio adrese morao je biti 8, 16 ili 24 bita. U kojoj se klasi nalazi adresa govorio nam je prvi broj IP adrese. Uvođenjem mrežne maske, mrežni dio adrese može biti bilo koji broj bitova.

Svaka IP adresa mora se nalaziti unutar neke mreže. Mrežna maska je broj koji pokazuje gdje se unutar IP adrese nalazi granica između mrežnog dijela i dijela za adresu računala unutar mreže (Host-ID).

Jedinice u mrežnoj maski označavaju bitove u IP adresi koji pripadaju mreži, a nule označavaju bitove koji pripadaju adresi unutar mreže. Npr. mrežna maska IP adresa u klasi C je 255.255.255.0. Mreža u kojoj se nalazi IP adresa određuje se pomoću mrežne maske tako da se napravi logički I između bitova IP adrese i mrežne maske.

Razumijevanje IP adresa

Primjeri: Određivanje logičke mreže pomoću mrežne maske.

Slikovni rezultat za calculation network logical address mask

IP adresa: 134.11.23.21
Subnet maska: 255.255.240.0
Mreža: 134.11.16.0

IP adresa: 194.160.48.67
Subnet maska: 255.255.255.192
Mreža: 194.160.48.64

Primjer: Kreiranje podmreža unutar mreže klase C

Produžimo mrežni dio IP adrese 192.168.10.0 za tri bita. Broj bitova za adresiranje uređaja unutar mreže je sada 5. Od tri dodana bita kreirat će se podmreže.

Duljina mrežnog dijela IP adrese je 27 bita. Stvorene podmreže imaju mrežnu masku 255.255.255.224 odnosno /27. Posuđivanje bitova za mrežu, odnosno produživanje mrežnog dijela smanjuje broj bitova za adresiranje računala unutar mreže (host ID), ali se dobije više logičkih podmreža unutar neke od mreža klase A, B ili C.

Sa tri bita dobije se 8 podmreža: 192.168.10.0/27, 192.168.10.32/27, 192.168.10.64/27, 192.168.10.96/27,192.168.10.128/27, 192.168.10.160/27, 192.168.10.192/27, 192.168.10.224/27 (od 000, 001, 010, 011… do 111).

Umjesto jedne mreže klase C s 254 moguće adrese koje se mogu pridružiti, dobili smo osam podmreža s po 30 adresa koje se mogu pridružiti svakoj podmreži.

Prva IP adresa prve podmreže koja se može pridružiti uređaju je 192.168.10.1, a zadnja 192.168.10.30. Adresa 192.168.10.31 je broadcast adresa jer je zadnjih 5 bitova koji nisu dio mreže postavljeno u 1. Prva adresa druge podmreže je 192.168.10.33, a zadnja 192.168.10.62. Broadcast adresa je 192.168.10.63 i tako dalje.

4.3.7 VLSM (Variable Length Subnet Mask)

Mreže u prethodnom primjeru stvorene su pomoću podmreža (subneting). Pri stvaranju podmreža treba zadovoljiti uvjet da sve podmreže unutar iste klase imaju istu mrežnu masku, odnosno prefiks mreže (npr. 255.255.255.224), odnosno prefiks /27.

Stvaranje podmreža je znatno poboljšanje, ali je potrošnja IP adresa još uvijek veća nego što bi trebala biti.

Serijska veza je veza točka-točka i po definiciji ima samo dvije IP adrese i uvijek će ih imati. Kod adresiranja s podmrežama u prethodnom primjeru i serijske veze moraju imati prefiks /27. Pet bitova ostaje za adrese unutar mreže i s njima se može adresirati 30 računala. Dakle, na svakoj serijskoj vezi iskorištene su i tu samo dvije adrese, a ostatak od 28 adresa ostat će neiskorištene.

Adresiranje se može dodatno optimizirati tako da se unutar jedne od podmreža stvaraju nove podmreže, odnosno da se posude dodatni bitovi od dijela za adrese uređaja.

Ako npr. želimo stvoriti nove podmreže unutar podmreže 192.168.10.128/27 (subnetting a subnet), a koje nam trebaju za serijske veze, dovoljna su nam dva bita za dvije IP adrese. Dva bita omogućavaju četiri kombinacije, prva je kombinacija adresa mreže, a zadnja kombinacija broadcast adresa.

Ako smo uzeli dva bita za adresiranje uređaja unutar mreže, ostalo nam je 30 bitova za mrežni dio. Mrežna maska te mreže bit će 255.255.255.252 ili /30. Proces stvaranja podmreže unutar podmreže prikazan je u nastavku. Prvo se stvaraju podmreže /27 iz mreže 192.168.10.0/24, a zatim je odabrana podmreža 192.168.10.128/27 i iz nje se stvaraju podmreže /30.

Ako samo zadnja dva bita ostaju za adresiranje hostova, moguće je kreirati podmreže /30, od tri bita osam mreža: 192.168.10.128/30, 192.168.10.132/30, 192.168.10.136/30, 192.168.10.140/30, 192.168.10.144/30, 192.168.10.148/30, 192.168.10.152/30 i 192.168.10.156/30. To su podmreže od podmreže mreže 192.168.10.128/27.

Adrese koje se mogu pridružiti u mreži 192.168.10.128/30 su 192.168.10.129 i 192.168.10.130. 192.168.10.131 je broadcast adresa.

Od jedne mreže klase C s prefiksom /24 napravljeno je osam podmreža s prefiksom /27 (255.255.255.224), zatim je uzeta jedna podmreža /27 i napravljeno je osam novih mreža s prefiksom /30 (255.255.255.252). Umjesto jedne logičke mreže klase C, sada postoji 15 logičkih mreža, odnosno postoje mreže s mrežnom maskom 255.255.255.224(/27) i 255.255.255.252(/30).

Ova tehnika omogućuje mnogo fleksibilnije adresiranje. Naziva se VLSM (Variable Length Subnet Mask) ili podmreže s mrežnim maskama promjenjive duljine. VLSM su podmreže u podmrežama (subnetting a subnet). Stvaranje novih podmreža unutar podmreže može se nastavljati dok ima slobodnih bitova koje se može posuditi. U klasi C je moguće, ali teško napraviti više razina jer je samo osam bitova za adresiranje uređaja u logičkoj mreži. U klasi A i B je to mnogo lakše napraviti jer te klase imaju više host bitova.

Slikovni rezultat za example VLSM

Primjer primjene VLSM-a.