VLSM
Předpokládejme, že je našim úkolem vytvořit adresování sítě uvedené na obrázku 1. Síť je tvořena pěti směrovači v různých městech, projených spojovacími linkami. V jednotlivých městech jsou připojeny přepínače, na jejichž portech jsou stanice místní lokální sítě. Čísla uvedená u jednotlivých přepínačů určují, s kolika stanicemi připojenými do sítě je v dané lokalitě počítáno
Obrázek 1
Možná skutečná realizace sítě
Propojení mezi směrovači Ostrava1 a Ostrava2 je tvořeno lokální sítí Ethernet. Spoj mezi Třincem a Studénkou byl v naší síti historicky zřízen jako první a využívá virtuálního okruhu sítě Frame Relay poskytovaného telekomunikačním operátorem. Ostatní spoje mezi městy jsou tvořeny pronajatými optickými trasami (dark fiber).
Abychom mohli navrhnout adresování sítě, musíme nejprve stanovit počet IP podsítí a určit minimální počet bitů, který musí být na adresování stanic v každé podsíti vyhrazen. Oblasti tvořící jednotlivé podsítě jsou zobrazeny na obrázku 2. Je vidět, že síť obsahuje 8 podsítí (všimněte si, že přepínač mezi směrovači Ostrava1 a Ostrava2 pracuje na 2 vrstvě a tudíž je z pohledu protokolu IP nevýznamný).
Obrázek 2
Počet bitů, kterými budeme schopni adresovat všechny stanice na dané podsíti, určíme jako nejmenší možný počet bitů, do nichž lze zakódovat číslo odpovídající požadovanému počtu stanic. Jedná se tedy o nejbližší vyšší mocninu dvou větší než požadovaný počet stanic. Při tom však nesmíme zapomínat, že rozhraní směrovače do dané podsítě musí mít také svou IP adresu, takže musíme požadovaný počet stanic zvýšit o jedničku. Mimo to nesmíme zapomenout, že bitová kombinace obsahující samé jedničky je vyhrazena pro broadcast, kombinace samých nul pro označení podsítě jako takové. Proto pro lokální síť v Krnově nepostačí tři bity, jak by se mohlo zdát na první pohled, ale je potřeba čtyři bity. Na obrázku 3 jsou počty požadovaných stanic na jednotlivých segmentech upravené na nejbližší mocninu dvou se započtením nepoužitelných vyhrazených adres. Požadované počty adres jsou vyznačeny i u spojovacích (tj. dvoubodových) linek. Všimněte si, že pro adresování stanic spojovací linky je třeba dvou bitů, poskytujících 4 kombinace: adresa jednoho routeru, adresa druhého routeru, označení sítě jako takové a broadcast.
Obrázek 3
Celkový počet adres potřebných pro danou síť (se započtením rozhraní routerů i nepoužitelných adres a v jednotlivých podsítích upravený na mocninu dvou) je 128+64+32+16+4*4=256. Proto poskytovatel Internetu naši síti přidělil prefix o délce 24 bitů (jednu adresu třídy C), čímž pro podsíťování zbývá 8 bitů. Přidělená adresa je 200.1.20.0/24.
Pokusme se nyní adresovat síť s použitím konstantní masky podsítě. Podsíť s největším množstvím stanic vyžaduje 7 bitů. Z přidělených osmi tak zbývá jeden bit pro určení podsítě, můžeme tedy mít pouze dvě takto velké podsítě. Je zřejmé, že navrhnout adresování s konstantní maskou podsítě nebude při použití 24-bitového prefixu adresy možné. Všimněte si, že i kdyby poskytovatel přidělil více adres (kratší prefix), bylo by v naši síti adresování s konstantní síťovou maskou velice neefektivní: např. spojovacím linkám, vyžadujícím 4 adresy by bylo přiděleno adres 128, čímž by bylo 124 adres neužitečně vyplýtváno.
Proto přistoupíme k adresování s proměnnou maskou podsítě. Přidělený adresní prostor již nebudeme dělit do bloků o stejné velikosti, jako u konstantní masky podsítě, ale velikost bloků budeme přizpůsobovat počtu stanic na jednotlivých podsítích. Při tom se bloky adres nesmějí překrývat, každé stanici musí být přidělena jednoznačná IP adresa. Počet bitů, jejichž jednoznačnou kombinací jsou určeny bloky adres jednotlivých podsítí, se však bude podle velikosti bloku měnit
Poznámka
Jednoznačnou kombinaci bitů v adrese, které následující bezprostředně za poskytovatelem přiděleným prefixem sítě a jednoznačně určují podsíť, budeme dále označovat jako prefix podsítě. Tento prefix bude mít proměnnou délku, podle počtu adres v podsíti, kterou má identifikovat.
Na bity prefixu podsítě se budeme odkazovat jako na bit 7 až bit 0 příslušného bajtu adresy s tím, že bit 7 má nejvyšší váhu (je nejvíce vlevo). Bajty adresy budeme označovat zleva jako první až čtvrtý. Jelikož v tomto příkladu pro podsíťování používáme pouze poslední (tj. čtvrtý) bajt adresy, budeme hovořit pouze o bitech 7 až 0. Označování bitů a bajtů je vidět na obrázku 4.
Označování bajtů v IP adrese |
| |||
první | druhý | třetí | čtvrtý |
Označování bitů v bajtu IP adresy |
| |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Obrázek 4
S přidělováním adres u VLSM začneme od největší podsítě - S1. Na tu potřebujeme 7 bitů, z bitů použitelných pro podsíťování tedy zbývá pro určení podsítě jeden. Síti S1 se rozhodneme přidělit adresy v podsíti, jejíž prefix podsítě bude určen hodnotou 1 v bitu 7, tedy adresy 200.1.20.128-200.1.20.255 (adresa 200.1.20.128 je samozřejmě adresou sítě samotné a 200.1.20.255 je broadcast). Na všechny ostatní sítě tedy zbývá druhá polovina přiděleného rozsahu, tedy adresy 200.1.20.0-200.1.20.127.
Abychom si byli jisti, že jsou přidělené prefixy podsítí jednoznačné, zapíšeme pro lepší přehlednost prefix přidělený každé podsíti také binárně. Symbolem x označíme pozice v adresním rozsahu podsítě, které mohou mít libovolné hodnoty. Pro úplnost vždy také uvedeme dekadicky vyjádřený pevný prefix sítě přidělený poskytovatelem. Díky tomu, že délka přiděleného prefixu odpovídá v našem případě hranici třetího a čtvrtého bajtu, postačí nám binárně vyjadřovat poslední bajt.
Pro síť S1 tedy prefix podsítě bude:
S1: 200.1.20.1xxx xxxx
Poznámka:
Všimněme si, že síť s největším počtem adres bude vždy mít prefix podsítě nejkratší.
Poznámka:
Všimněte si také, že jsme přednostně použili nejvyšší možnou číselnou hodnotu prefixu, v tomto případě 1. To je výhodné pro další výpočty, protože jsme tím rozsah číselně vyšších adres již vyloučili a dále budeme počítat s menšími čísly.
Druhá největší posíť je v Třinci - S2. Pro tu potřebujeme 6 bitů, tedy prefix podsítě bude dvoubitový. Bit 7 musí být nulový (jednička již byla přidělena ostravské síti S1). Zvolíme tedy opět nejvyšší možnou a dosud nepřidělenou kombinaci, 01:
S2: 200.1.20.01xx xxxx
Další je na řadě síť S3 ve Studénce s pěti bity pro adresy. Prefixy 1 a 01 jsou již obsazeny, proto musí prefix podsítě začínat 00. Protože jsme S3 přidělili 5 bitů, zbývají pro prefix podsítě 3 bity. Nejvyšší možná kombinace je 001:
S3: 200.1.20.001x xxxx
Z lokálních sítí zbývá přidělit adresy síti S4 v Krnově. Pro adresy v S4 je třeba 4 bity, prefix tedy bude také 4-bitový. Doposud nepřidělená kombinace nejvyšších bitů je 000, takže podle námi zavedeného systému přidělování od vyšších adres přiřadíme síti S4 prefix 0001:
S4: 200.1.20.0001 xxxx
Tímto jsme přidělili adresy všem lokálním sítím. Zbývá ještě přiřadit adresy spojovacím linkám - sítím S5, S6, S7 a S8. Na každou z nich potřebujeme 4 adresy (tj. 2 bity), takže prefixy podsítí budou dlouhé 6 bitů. Jediná nepřidělená kombinace nejvyšších čtyřech bitů je 0000. Spojovací sítě jsou čtyři, takže další dva bity prefixu použijeme na jejich identifikaci takto:
S5: 200.1.20.0000 11xx S6: 200.1.20.0000 10xx S7: 200.1.20.0000 01xx S8: 200.1.20.0000 00xx
Adresní plán je tímto hotov. Pro přehlednost na závěr prefixy jednotlivých sítí a jim odpovídající adresní rozsahy do tabulky 1:
Adresní plán sítě |
| ||||||
lokalita | označení | prefix | adresa sítě | maska podsítě | použitelné adresy | broadcast | |
Ostrava | S1 | 200.1.20.1xxx xxxx | 200.1.20.128/25 | 255.255.255.128 | 200.1.20.129 - 200.1.20.254 | 200.1.20.255 | |
Třinec | S2 | 200.1.20.01xx xxxx | 200.1.20.64/26 | 255.255.255.192 | 200.1.20.65 - 200.1.20.126 | 200.1.20.127 | |
Studénka | S3 | 200.1.20.001x xxxx | 200.1.20.32/27 | 255.255.255.224 | 200.1.20.33 - 200.1.20.62 | 200.1.20.63 | |
Krnov | S4 | 200.1.20.0001 xxxx | 200.1.20.16/28 | 255.255.255.240 | 200.1.20.17 - 200.1.20.30 | 200.1.20.31 | |
Spoj Krnov-Ostrava1 | S5 | 200.1.20.0000 11xx | 200.1.20.12/30 | 255.255.255.252 | 200.1.20.13 - 200.1.20.14 | 200.1.20.15 | |
Spoj Krnov-Studénka | S6 | 200.1.20.0000 10xx | 200.1.20.8/30 | 255.255.255.252 | 200.1.20.9 - 200.1.20.10 | 200.1.20.11 | |
Spoj Studénka-Ostrava2 | S7 | 200.1.20.0000 01xx | 200.1.20.4/30 | 255.255.255.252 | 200.1.20.5 - 200.1.20.6 | 200.1.20.7 | |
Spoj Studénka-Třinec | S8 | 200.1.20.0000 00xx | 200.1.20.0/30 | 255.255.255.252 | 200.1.20.1 - 200.1.20.2 | 200.1.20.3 |
Tabulka 1
Pro lepší přehlednost můžeme bloky adres postupně přidělované jednotlivým podsítím vyjádřit také graficky. Představme si poskytovatelem přidělený adresní rozsah 256 adres jako čtverec 16 x 16, v jehož levém horním rohu je nejnižší adresa rozsahu, v pravém dolním nejvyšší (obrázek 5).
Obrázek 5
Nyní si uvědomme, že přidělením hodnoty 0 nebo 1 nejlevějšímu dosud nepoužitému bitu prefixu podsítě vždy rozdělíme rozsah zbývajících adres na poloviny. Např. přidělením prefixu 1xxx xxxx síti S1 jsme polovinu rozsahu přiřadili síti S1 (obrázek 6):
Obrázek 6
Dále pak vždy pracujeme jen se zbývající polovinou rozsahu. Prefix 01xx xxxx jsme přiřadili síti S2 (obrázek 7):
Obrázek 7
Postupné přidělování bloků adres sítím S3 až S8 dělením zbývajícího rozsahu ukazuje obrázek 8. Vyšší polovinu děleného rozsahu adres v našem schematu vždy vyjádříme spodní, resp. pravou polovinou děleného pravoúhelníka:
Obrázek 8
Z obrázků znázorňujících bloky adres je dobře vidět, že se jednotlivé bloky skutečně nepřekrývají. Také je vidět, že byl spotřebován celý přidělený rozsah adres.
Uvedený způsob grafického znázornění je mimořádně výhodný, pokud podsíťovaný adresní prostor je vymezen jedním bajtem (8 bity), což je v praxi dosti častý případ. Pokud by bylo k dispozici bitů k podsíťování méně, můžeme část rozsahu, která nám nepatří, z původního čtverce před začátkem podsíťování vyloučit (označit jako již přidělené). Naopak v připadě, kdy je počet bitů pro podsíťování větší, můžeme pracovat s více nezávislými čtverci. Například při 10 bitech bychom pracovali se čtyřmi čtverci (10=8+2 a ze dvou bitů vzniknou 4 různé kombinace, tedy 4 čtverce).
Poznámky
U VLSM může cílová adresa odpovídat i více řádkům směrovací tabulky. Vzpomeňte si však, že při směrování paketů volí směrovač vždy tu cestu, která se s cílovou adresou shoduje na největší počet bitů.
Směrovací protokol použitý v sítí s VLSM musí spolu s adresou sítě propagovat i její masku podsítě. To umožňují např. protokoly OSPF, EIGRP, IS-IS a RIP v.2, nikoli však RIP v.1 nebo IGRP.
Všimněte si, že u VLSM není problém s použitím subsítě označené bitovou kombinací samých binárních nul (subnet zero).
Ukažme si nyní, jak by adresováni vypadalo, kdyby vznikla potřeba přidat novou spojovací linku mezi směrovači Třinec a Ostrava2, jak ukazuje obrázek 9:
Obrázek 9
Značení podsítí ponecháme shodné jako v předchozím případě, subsíť nové spojovací linky označíme S9 (obrázek 10):
Obrázek 10
Ukažme si nyní, jak lze vytvořit adresování této sítě s použitím 23-bitového prefixu 200.1.20.0/23 přiděleného poskytovatelem. Protože rozsah adres je oproti předchozímu případu dvojnásobný, ponecháme rezervu jak na možnost vytváření dalších podsítí, tak na možné připojení většího počtu stanic v jednotlivých podsítích. Rozšíříme tedy počet použitelných adres v menších podsítích, konkrétně v Krnově a Studénce, aby počet připojitelných stanic byl 64. Adresní prostor podsítě S1 v Ostravě rozšiřovat nebudeme, protože budoucí rozšíření broadcastové domény (segmentu) nad 128 stanic se nejeví z pohledu zátěže segmentu příliš rozumné. Počty stanic a bitů nyní uvažovaných pro jednotlivé podsíte jsou shrnuty v tabulce 2:
Požadavky na počty stanic v podsítích (verze 2) |
| ||
Podsíť | Počet stanic | bitů | |
S1 | 128 | 7 | |
S2 | 64 | 6 | |
S3 | 64 | 6 | |
S4 | 64 | 6 | |
S5 | 4 | 2 | |
S6 | 4 | 2 | |
S7 | 4 | 2 | |
S8 | 4 | 2 | |
S9 | 4 | 2 |
Tabulka 2
Přiřazování prefixů započneme opět od nejvyšších adres:
S1: 200.1.00010101.1xxx xxxx S2: 200.1.00010101.01xx xxxx S3: 200.1.00010101.00xx xxxx S4: 200.1.00010100.11xx xxxx
Pro adresy spojovacích linek vyhradíme čtyři podsítě prefixu 200.1.00010100.1011 xxxx a jednu podsíť prefixu 200.1.00010100.1011 xxxx:
S5: 200.1.00010100.1011 11xx S6: 200.1.00010100.1011 10xx S7: 200.1.00010100.1011 01xx S8: 200.1.00010100.1011 00xx S9: 200.1.00010100.1010 11xx
Celý adresní plán je shrnut v tabulce 3:
Adresní plán sítě |
| ||||||
lokalita | označení | prefix | adresa sítě | maska podsítě | použitelné adresy | broadcast | |
Ostrava | S1 | 200.1.00010101.1xxx xxxx | 200.1.21.128/25 | 255.255.255.128 | 200.1.21.129 - 200.1.21.254 | 200.1.21.255 | |
Třinec | S2 | 200.1.00010101.01xx xxxx | 200.1.21.64/26 | 255.255.255.192 | 200.1.21.65 - 200.1.21.126 | 200.1.21.127 | |
Studénka | S3 | 200.1.00010101.00xx xxxx | 200.1.21.0/26 | 255.255.255.192 | 200.1.21.1 - 200.1.21.62 | 200.1.21.63 | |
Krnov | S4 | 200.1.00010100.11xx xxxx | 200.1.20.192/26 | 255.255.255.192 | 200.1.20.193 - 200.1.20.254 | 200.1.20.255 | |
Spoj Krnov-Ostrava1 | S5 | 200.1.00010100.1011 11xx | 200.1.20.188/30 | 255.255.255.252 | 200.1.20.189 - 200.1.20.190 | 200.1.20.191 | |
Spoj Krnov-Studénka | S6 | 200.1.00010100.1011 10xx | 200.1.20.184/30 | 255.255.255.252 | 200.1.20.185 - 200.1.20.186 | 200.1.20.187 | |
Spoj Studénka-Ostrava2 | S7 | 200.1.00010100.1011 01xx | 200.1.20.180/30 | 255.255.255.252 | 200.1.20.181 - 200.1.20.182 | 200.1.20.183 | |
Spoj Studénka-Třinec | S8 | 200.1.00010100.1011 00xx | 200.1.20.176/30 | 255.255.255.252 | 200.1.20.177 - 200.1.20.178 | 200.1.20.179 | |
Spoj Ostrava2-Třinec | S9 | 200.1.00010100.1010 11xx | 200.1.20.172/30 | 255.255.255.252 | 200.1.20.173 - 200.1.20.174 | 200.1.20.175 |
Tabulka 3
Pro názornou představu je spotřebovaná část přiděleného adresního prostoru graficky znázorněna na obrázku 11:
Obrázek 11