Počítačové sítě Ing. Petr Machník, Ph.D. Ing. Libor Michalek, Ph.D.
Ostrava, 2010
1 Úvod Cílem těchto studijních materiálů ke kurzu Počítačové sítě je seznámit čtenáře s vybranými tématy z oblasti počítačových sítí. Druhá kapitola se věnuje principům IP adresování v počítačových sítích za pomocí metody VLSM – subnetting s proměnnou délkou masky. Ve třetí kapitole bude popsán mechanizmus směrování a směrovacích protokolů. Budou zde srovnány dvě skupiny směrovacích protokolů – distance vector směrovací protokoly a link state směrovací protokoly. Čtvrtá kapitola se zaměřuje na význam použití sítí VLAN vytvořených pomocí přepínačů. Bude zde také charakterizován VTP a Spanning tree protokol. Nedílnou součástí studijních materiálů ke kurzu Počítačové sítě je, kromě této teoretické části, i část praktická, která obsahuje ukázky konfigurace směrovacích protokolů a sítí VLAN na zařízeních Cisco a MikroTik. Jako doplňkové materiály slouží jednak animace názorně popisující některé vlastnosti počítačových sítí, jednak videa, která slouží k lepšímu pochopení způsobu konfigurace směrovačů a přepínačů Cisco a MikroTik.
2 Subnetting Beztřídní směrování CIDR (Classless Interdomain Routing) vzniklo jako řešení při nedostatku veřejných IPv4 adres, ke kterému došlo s masivním rozšiřováním Internetu po celém světě. Beztřídní směrování využívá efektivněji adresního prostoru. Při běžném směrování (Classful Routing) je vždy pro konkrétní třídu IP adresy přiřazena síťová maska, kterou nelze změnit. Příkladem může být IP adresa 10.10.10.1, kde je pevně přiřazena síťová maska 255.0.0.0. Pevně daná délka síťové masky ovšem není ideální a hlavně není efektivní V určitých případech může být adresní prostor zbytečně rozsáhlý (plýtvání IP adresami) a v jiných naopak nedostatečný (málo IP adres). Proto vyšla v roce 1993 doporučení RFC 1517 až 1520, která strategii dělení adresního prostoru radikálně upravila. Přestalo se na sítě nahlížet „třídně“ a začala se výhradně používat síťová maska. Aby nedošlo k nejednoznačnosti, je třeba oprostit se od třídního náhledu na sítě a vždy k adrese doplnit i příslušnou masku sítě. Tato metoda rozdělení sítě na menší části se nazývá podsíťování (subnetting). Maska podsítě má tak více jedniček než maska standardní pro danou třídu. Jedničky lze ale z masky rovněž odebírat (nahrazovat zprava nulami), a vytvářet tak sítě větší tzv. supersítě (supernetting). Maska podsítě má potom jedniček méně než standardní maska třídy. Protože je dekadický zápis velmi dlouhý, zavedl se zjednodušený zápis masky sítě tzv. prefix ve formě celého čísla uváděného za adresou sítě, za lomítkem. Toto číslo je rovno počtu jedniček v masce sítě. Kupříkladu maska sítě z předchozího příkladu 255.0.0.0 by byla zapsána /8 a celý zápis adresy sítě by pak vypadal 10.10.10.1/8.
2.1 VLSM (Variable Lenght Subnet Mask) VLSM neboli síťová maska s proměnnou délkou řeší potřebu rozdělit síť na různě velké části. Praktické využití je nastíněno v následujícím příkladu: Předpokládejme, že je našim úkolem vytvořit adresování sítě uvedené na obr. 2.1. Síť je tvořena pěti směrovači v různých městech, propojený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. 2.1 Architektura sítě
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. 2.2.
Obr. 2.2 Vyznačení jednotlivých podsítí
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 Hlučíně nepostačí tři bity, jak by se mohlo zdát na první pohled, ale je potřeba čtyři bity. Na obr. 2.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. point-to-point) linek. Všimněte si, že pro adresování stanic spojovací linky je třeba dvou bitů, poskytujících 4 kombinace: •
adresa jednoho směrovače,
•
adresa druhého směrovače,
•
označení sítě jako takové,
•
broadcast adresa.
Obr. 2.3 Vyznačení počtu požadovaných stanic na jednotlivých segmentech
Celkový počet adres potřebných pro danou síť (se započtením rozhraní směrovačů i nepoužitelných adres a v jednotlivých podsítích upravený na mocninu dvou) je 128+64+32+16+4+4+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 213.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ě VLSM. 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 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 213.1.20.128 - 213.1.20.255 (adresa 213.1.20.128 je adresou sítě samotné a 213.1.20.255 je broadcast adresa). Na všechny ostatní sítě tedy zbývá druhá polovina přiděleného rozsahu, tedy adresy 213.1.20.0 - 213.1.20.127. Pro přehlednost jsou uvedeny v tab. 2.1 prefixy jednotlivých sítí a jim odpovídající adresní rozsahy, využít můžeme i přehlednou tabulku v Příloze č.1. Tab. 2.1 Adresní rozsahy jednotlivých podsítí označení
adresa sítě
maska podsítě
použitelné adresy
Ostrava
lokalita - podsíť
S1
213.1.20.128/25
255.255.255.128
213.1.20.129 - 213.1.20.254
broadcast
Olomouc
S2
213.1.20.64/26
255.255.255.192
213.1.20.65 - 213.1.20.126
213.1.20.127
Havířov
S3
213.1.20.32/27
255.255.255.224
213.1.20.33 - 213.1.20.62
213.1.20.63
213.1.20.255
Hlučín
S4
213.1.20.16/28
255.255.255.240
213.1.20.17 - 213.1.20.30
213.1.20.31
Spoj Hlučín-Ostrava1
S5
213.1.20.12/30
255.255.255.252
213.1.20.13 - 213.1.20.14
213.1.20.15
Spoj Ostrava2-Havířov
S6
213.1.20.8/30
255.255.255.252
213.1.20.9 - 213.1.20.10
213.1.20.11
Spoj Hlučín-Havířov
S7
213.1.20.4/30
255.255.255.252
213.1.20.5 - 213.1.20.6
213.1.20.7
Spoj Havířov-Olomouc
S8
213.1.20.0/30
255.255.255.252
213.1.20.1 - 213.1.20.2
213.1.20.3
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šší, viz obr. 2.4. S8
S7
S6
S5
S4 S2 S3
S1
Obr. 2.4 Grafická reprezentace jednotlivých podsítí
2.2 Podpora síťových prvků Výskyt různých délek podsítě, tj. síťových masek v rámci jedné sítě ovšem vyžaduje implementaci beztřídního routovacího protokolu (Classless Routing Protocol). Podporuje ho směrovací protokol RIPv2, EIGRP, OSPF, ISIS. Směrovací protokoly RIP a IGRP beztřídní směrování nepodporují.
Literatura: [1]
KABELOVÁ, Alena; DOSTÁLEK, Libor. Velký průvodce protokoly TCP/IP a systém DNS. 5. vydání. Praha : Computer Press, 2008. 488 s. ISBN 978-80-251-2236-5. [kniha]
[2]
Cisco.com [online]. 2005 [cit. 2010-11-15]. IP Addressing and Subnetting for New Users. Dostupné z WWW: http://www.cisco.com/e/UStechk365/technologies_technote09186a00800a67f .shtml>.
[3]
GRYGÁREK, Petr. Adresování s maskou podsítě proměnné délky (Variable-Length Subnet Mask, VLSM) [online]. 2008 [cit. 2010-11-15]. Adresování s maskou podsítě proměnné délky (Variable-Length Subnet Mask, VLSM) . Dostupné z WWW:
.
3 Směrování a směrovací protokoly Směrování je proces, jehož účelem je zjištění, kam poslat datové pakety, jejichž cíl je vně lokálního segmentu sítě. Směrovače (angl. router) jsou síťová zařízení, která sbírají a aktualizují směrovací informace, které se využívají při procesu směrování. Směrovací informace mají formu záznamů ve směrovací tabulce. Jeden záznam obsahuje informace potřebné k směrování datových paketů do jedné sítě nebo podsítě (z hlediska IP adresování). K vytvoření záznamů ve směrovací tabulce mohou směrovače použít směrovací protokoly. Takto vytvořené záznamy se dokáží dynamicky aktualizovat, pokud nastanou v síti nějaké změny. Záznamy mohou být do směrovací tabulky vloženy také staticky, tj. manuálně vloženy správcem sítě.
K realizaci směrování musí být směrovač schopen provádět následující úkony: •
Identifikace cílové adresy směrovaného paketu.
•
Identifikace zdroje směrovací informace – zjištění od jakých zdrojů (obvykle od jiných směrovačů) se může daný směrovač naučit cesty k danému cíli.
•
Identifikace všech možných cest k danému cíli.
•
Výběr nejlepší cesty k danému cíli.
•
Ověřování a aktualizace směrovacích informací.
Směrovač je schopen sám zjistit cestu jen do přímo připojených sítí nebo podsítí. V takovém případě je totiž jedno rozhraní (port) směrovače součástí takovéto sítě a směrovač je tudíž schopen zjistit síťovou adresu této sítě na základě znalosti IP adresy a síťové masky tohoto rozhraní.
3.1 Statické a dynamické směrování 3.1.1 Statické směrování Statické záznamy jsou směrovači zadány manuálně správcem sítě. Jakákoliv změna těchto záznamů, například z důvodu změny topologie sítě, musí být provedena opět manuálně správcem sítě. Statické směrování umožňuje precizní kontrolu procesu směrování paketů v síti.
3.1.2 Dynamické směrování S využitím směrovacích protokolů se směrovač dynamicky naučí možné cesty do jednotlivých sítí. V případě změny topologie sítě umí směrovač automaticky aktualizovat záznamy ve směrovací tabulce. Učení se cest do vzdálených sítí je umožněno díky výměně směrovacích informací ve formě zpráv směrovacích protokolů. Směrovací protokoly definují pravidla takovéto komunikace mezi směrovači. Dále je třeba vysvětlit rozdíl mezi směrovanými a směrovacími protokoly: Směrované protokoly jsou protokoly síťové vrstvy OSI modelu (resp. internetové vrstvy TCP/IP modelu), které realizují přenos paketů mezi zařízeními v počítačové síti na základě adresní informace v záhlaví paketu bez znalosti přesné cesty od zdroje k cíli. Příkladem směrovaných protokolů jsou IP (Internet Protocol), IPX (Internetwork Packet Exchange) nebo CLNP (Connectionless Network Protocol). Směrovací protokoly umožňují směrovačům vytvořit si záznamy ve směrovacích tabulkách, které slouží při procesu směrování paketů na cestě k cíli. Tento proces má podobu přeposlání paketu k dalšímu směrovači, který se nachází na cestě k cíli přenosu paketu. Příkladem směrovacích protokolů jsou RIP (Routing Information Protocol), OSPF (Open Shortest Path First) nebo BGP (Border Gateway Protocol).
3.1.3 Druhy směrovacích protokolů Základní rozdělení směrovacích protokolů je provedeno podle toho, jestli se používají uvnitř autonomních systémů nebo mezi autonomními systémy (viz. obr. 3.1). Autonomní
systém reprezentuje skupinu sítí, které jsou pod jednotnou správou a používají jednotnou směrovací strategii. •
IGP (Interior Gateway Protocol) – IGP směrovací protokoly provádějí výměnu směrovacích informací pouze uvnitř autonomních systémů. Příkladem jsou RIP nebo OSPF.
•
EGP (Exterior Gateway Protocol) – EGP směrovací protokoly provádějí výměnu směrovacích informací mezi různými autonomními systémy. Příkladem je BGP.
Obr. 3.1 IGP a EGP směrovací protokoly
IGP směrovací protokoly se dále dělí na dvě skupiny směrovacích protokolů podle toho, jaký algoritmus pro výběr cest k cíli používají: •
Distance
vector
směrovací
protokoly
zkoumají
směr
a
vzdálenost
od jednotlivých sítí. Nepotřebují znát topologii sítě. •
Link state směrovací protokoly shromažďují topologické informace o jednotlivých sítích. Pomocí SPF (Shortest Path First) algoritmu z nich pak vypočtou nejvhodnější cesty k cílovým sítím.
Jedním z hlavních úkolů směrovacích protokolů je vybrat nejlepší cestu k cílové síti, pokud existuje více možných cest. Různé směrovací protokoly používají různé algoritmy pro
stanovení, která z možných cest je ta nejlepší. Pokud existuje dvě nebo více různých cest k stejné cílové síti, o kterých se daný směrovač dozvěděl pomocí stejného směrovacího protokolu, provede se výběr té nejlepší cesty obvykle pomocí tzv. metriky. Obvykle platí, že čím menší je hodnota metriky, tím lepší je cesta, která je touto metrikou ohodnocena. To v důsledku znamená, že pokud například existují dvě cesty k cílové síti, o nichž se daný směrovač dozvěděl pomocí stejného směrovacího protokolu, bude pro přenos paketů použita cesta, která má menší hodnotu metriky. Směrovací záznam pouze o této vybrané cestě pak bude vložen do směrovací tabulky. Metrika je obvykle vypočítána z jednoho nebo více parametrů přenosové cesty. Nejčastěji se používají tyto parametry: •
Hop count – Udává kolika směrovači projde paket na cestě k cílové síti.
•
Bandwidth – Je odvozen od přenosových rychlostí jednotlivých úseků mezi směrovači.
•
Delay – Jedná se o dobu potřebnou k přenosu paketu z daného směrovače do cílové sítě.
•
Load – Udává zatížení směrovače nebo datového spoje.
•
Reliability – Udává spolehlivost datového spoje, což je odvozeno z množství přenosových chyb.
•
Cost – Je to konfigurovatelná hodnota. Může například odpovídat přenosovým rychlostem jednotlivých portů směrovačů.
Pokud existuje dvě nebo více různých cest k stejné cílové síti, o kterých se daný směrovač dozvěděl pomocí různých směrovacích protokolů nebo pomocí statického směrování, provede se výběr té nejlepší cesty pomocí tzv. administrativní vzdálenosti (administrative distance). V takovém případě není totiž možné srovnat metriky různých směrovacích protokolů, protože byly vypočítány různým způsobem a pomocí různých parametrů přenosové cesty. Administrativní vzdálenost vyjadřuje důvěryhodnost a spolehlivost jednotlivých směrovacích protokolů a statického směrování v porovnání s ostatními. Jedná se o celé číslo v rozsahu 0 až 255 a platí, že čím menší je tato hodnota, tím důvěryhodnější je daný způsob směrování. To v důsledku znamená, že pokud například existují dvě cesty k cílové síti, o nichž se daný směrovač dozvěděl pomocí dvou různých směrovacích protokolů, bude pro přenos paketů použita cesta, která byla doporučena
směrovacím protokolem s menší hodnotou administrativní vzdálenosti. Směrovací záznam pouze o této vybrané cestě pak bude vložen do směrovací tabulky. Hodnoty administrativních vzdáleností nejsou vypočítávány jako hodnoty metriky, ale jsou na směrovači přednastaveny (viz. tab. 2.1). Často je lze ale změnit.
Tab. 3.1 Přednastavené administrativní vzdálenosti na směrovačích Cisco
Způsob směrování
Administrativní vzdálenost
Přímo připojené sítě
0
Statické směrování
1
EIGRP
90
OSPF
110
RIP
120
Nedůvěryhodný zdroj
255
3.2 Distance vector směrovací protokoly Distance vector1 směrovací protokoly jsou založeny na Bellman-Ford-Moorově algoritmu. Směrovače, které využívají tyto směrovací protokoly, si vyměňují v periodických intervalech kopie svých směrovacích tabulek. Každý směrovač tedy obdrží směrovací tabulky od sousedních směrovačů. Záznamy ze směrovací tabulky, které nezná nebo u kterých má vyšší hodnotu metriky, si uloží do své směrovací tabulky a navýší hodnotu metriky, čímž zohlední úsek cesty od sousedního směrovače. Takto aktualizovanou směrovací tabulku pak pošle svým sousedním směrovačům. Tímto způsobem se informace o vzdálených sítích šíří mezi směrovači. Směrovače ale nemají přesné informace o síťové topologii. Znají jen směr k cíli, tj. přes který sousední směrovač tam vede cesta, a vzdálenost k cíli. Na obrázku 3.2 je názorně ukázán princip fungování distance vector směrovacích protokolů. Jako metrika je v tomto případě použit parametr hop count, který používá směrovací protokol RIP. Přímo připojené sítě mají hodnotu metriky 0, u vzdálenějších sítí je hodnota metriky větší.
1
Distance – vzdálenost, vector – směr
Obr. 3.2 Princip fungování distance vector směrovacích protokolů
Z obrázku 3.2 lze vyčíst, že směrovač C zná podsíť 10.4.0.0/24 jako přímo připojenou podsíť s metrikou 0 a že je dostupná přes rozhraní E0. Směrovač B se o této podsíti dozvěděl od směrovače C. Z pohledu směrovače B je hodnota metriky 1, protože na cestě k podsíti 10.4.0.0/24 je 1 směrovač, směrovač C. Cesta k této podsíti vede přes rozhraní S1 směrovače B směrem k směrovači C. Směrovač A se o podsíti 10.4.0.0/24 dozvěděl od směrovače B (který se cestu k ní naučil už dříve od směrovače C). Z pohledu směrovače A je hodnota metriky 2, protože na cestě k podsíti 10.4.0.0/24 jsou 2 směrovače, směrovač B a směrovač C. Cesta k této podsíti vede přes rozhraní S0 směrovače A směrem k směrovači B. V případě změny v topologii sítě – například v důsledku vytvoření nové nebo zániku staré podsítě – si přímo připojený směrovač aktualizuje svou směrovací tabulku. Po uplynutí pravidelného časového intervalu pošle svou aktualizovanou směrovací tabulku sousedním směrovačům. Ty zase pošlou své aktualizované směrovací tabulky dalším směrovačům. Tímto způsobem se informace o změně v síťové topologii postupně šíří mezi směrovači. V okamžiku, kdy všechny směrovače v určité oblasti (např. v autonomním systému) mají aktuální informace o síťové topologii, dochází k tzv. konvergenci sítě. Doba od vzniku změny v topologii sítě až po okamžik konvergence sítě se nazývá doba konvergence. Je žádoucí, aby doba konvergence byla co nejmenší. V případě distance vector směrovacích protokolů je ale doba konvergence poměrně velká, zvláště v případě rozsáhlých sítí.
3.2.1 Směrovací smyčky Jak už bylo dříve uvedeno, je žádoucí, aby se všechny směrovače, které zajišťují směrování v určité oblasti, dozvěděly o změně síťové topologie co nejrychleji, tj. aby doba konvergence byla malá. Nežádoucím důsledkem pomalé konvergence je vznik směrovacích smyček. Na obrázku 3.3 je znázorněn vznik takovéto směrovací smyčky. Podsíť 10.4.0.0/24 byla přerušena a stala se nefunkční. Směrovač C to zjistil a přestal posílat pakety do této podsítě přes své rozhraní E0. Směrovače A a B se ale stále domnívají, že síť 10.4.0.0/24 je dostupná. V této chvíli pošle směrovač B směrovači C svou směrovací tabulku, ve které je stále záznam o existenci cesty do sítě 10.4.0.0/24. Směrovač C se tedy domnívá, že síť 10.4.0.0/24 je dostupná po nějaké jiné cestě (viz. obr. 3.4). Vytvoří si proto záznam ve své směrovací tabulce, kde označí síť 10.4.0.0/24 jako dostupnou přes směrovač B s metrikou 2 (navýší metriku používanou směrovačem B o 1).
Obr. 3.3 Princip vzniku směrovací smyčky I
Obr. 3.4 Princip vzniku směrovací smyčky II
V pravidelném časovém intervalu pošle směrovač C směrovači B svou směrovací tabulku. Protože směrovač B měl záznam o síti 10.4.0.0/24 původně naučený od směrovače C a protože o jiné lepší cestě do této sítě neví, aktualizuje si záznam ve své směrovací tabulce podle informací od směrovače C, i když nová hodnota metriky je 3 a tedy vyšší (viz. obr. 3.5). Ze stejných důvodů si směrovač A následně nastaví hodnotu metriky u sítě 10.4.0.0/24 na 4. Tímto způsobem bude hodnota metriky stále narůstat. Protože je definována určitá maximální hodnota metriky, je po jejím dosažení síť označena jako nedostupná.
Obr. 3.5 Princip vzniku směrovací smyčky III
Paket, který by byl v tomto okamžiku poslán do této sítě, by byl směrovačem B poslán na základě údajů z jeho směrovací tabulky ke směrovači C, který by jej zase poslal zpět ke směrovači B. Vznikla by tím směrovací smyčka, díky níž by paket neustále cestoval mezi směrovačem B a C. Až po dosažení hodnoty 0 pole TTL2 v záhlaví IP paketu by byl paket odstraněn. Riziko vzniku směrovací smyčky lze snížit několika způsoby: •
Split horizon – Směrovací informaci o určité síti směrovač neposílá sousednímu směrovači, od kterého se tuto směrovací informaci naučil. Toto pravidlo by zabránilo vzniku směrovací smyčky ve výše popsaném případě, ale nestačilo by v sítích se složitější topologií.
•
Route poisoning – Směrovač, jehož přímo připojená síť se stane nedostupnou, nastaví metriku na hodnotu vyšší než je maximální hodnota pro dostupnou síť. Tuto směrovací informaci pak pošle sousedním směrovačům, které ji šíří dále. Tímto způsobem se všechny směrovače dozví o nedostupnosti dané sítě mnohem rychleji, než kdyby musely čekat na vypršení platnosti směrovacího záznamu o dostupnosti této sítě ve směrovací tabulce. Směrovače, které obdrží zprávu route poisoning, odešlou zpět zprávou poison reverse.
•
Hold-down timer – Směrovač, který se dozví o nedostupnosti určité sítě, ignoruje po určitou dobu směrovací informace o dostupnosti této sítě od jiných směrovačů s horší metrikou, než byla ta původní (viz. obr. 3.6). Tyto informace jsou totiž pravděpodobně zastaralé a chybné. Směrovač takto čeká, než se o nedostupnosti sítě dozví i ostatní směrovače.
Obr. 3.6 Hold-down timer 2
Hodnota pole TTL (Time to Live) je při odeslání vysílačem nastavena na určitou hodnotu (např. 255). Po každém průchodu paketu směrovačem je tato hodnota snížena o 1.
•
Triggered updates – Informaci o změně pošle směrovač ihned, nečeká na uplynutí doby pro periodické zasílání směrovacích tabulek sousedním směrovačům.
Vzniku směrovacích smyček se nejlépe zabrání kombinací všech výše uvedených metod.
3.2.2 Druhy distance vector směrovacích protokolů Typickým zástupcem distance vector směrovacích protokolů je směrovací protokol RIP (Routing Information Protocol). Jedná se o poměrně jednoduchý směrovací protokol, který pro výpočet metriky používá parametr hop count. Tento parametr je málo přesný při výběru nejlepších cest k cíli, proto se RIP používá většinou jen v malých sítích. RIP verze 2 lze na rozdíl od verze 1 použít i v sítích, kde se IP adresování provádí pomocí VLSM. Mnohem komplexnějším směrovacím protokolem je EIGRP (Enhanced Interior Gateway Routing Protocol). Používá se ve směrovačích Cisco a jeho metrika se počítá z parametrů bandwidth, delay, reliability a load. Má řadu vlastností převzatých z link state směrovacích protokolů, díky nimž má krátkou dobu konvergence.
3.3 Link state směrovací protokoly Link state3 směrovací protokoly vytvářejí záznamy ve směrovací tabulce pomocí SPF (Shortest Path First) algoritmu a údajů v topologické databázi. Údaje o stavu jednotlivých sítí si směrovače vyměňují mezi sebou pomocí LSP (Link State Packet) zpráv. Tyto informace si každý směrovač uloží do své topologické databáze. SPF algoritmus vytvoří na základě údajů z topologické databáze SPF strom. Směrovač má díky SPF stromu detailní informace o síťové topologii a je tak schopen vybrat nejlepší cestu do jednotlivých sítí. Informace o těchto cestách pak vkládá do směrovací tabulky. Každý směrovač to provádí nezávisle na ostatních směrovačích a je proto méně pravděpodobný chybný výběr cesty, jako je tomu u distance vector směrovacích protokolů. Celý proces je schématicky naznačen na obrázku 3.7. 3
Link – spoj, linka, state - stav
Obr. 3.7 Princip link state směrovacích protokolů
Link state směrovací protokoly mají oproti distance vector protokolům krátkou dobu konvergence. Směrovače totiž posílají LSP zprávy ihned po detekci změny stavu přímo připojené sítě (triggered updates). Tyto zprávy se posílají pomocí multicastů ostatním směrovačům v určité oblasti. LSP zprávy se skládají z LSA (Link-State Advertisement), které nesou informace o stavu jednotlivých přímo připojených sítí (tj. IP adresa a síťová maska příslušného rozhraní, typ sítě, směrovače připojené k dané síti atd.). Pomocí Hello zpráv si směrovače udržují spojení se sousedními směrovači. Celý princip fungování link state směrovacích protokolů je názorně ukázán pomocí animace Link state směrovací protokoly. Nevýhodou link state směrovacích protokolů je nutnost nového výpočtu SPF algoritmu při každé změně údajů v topologické databázi, což může směrovače nadměrně zatěžovat. Zvláště v rozsáhlejších sítích k takovým změnám dochází relativně často. Proto je vhodné vytvořit více oddělených oblastí (area), v rámci kterých se shromažďují topologické informace (viz. obr. 3.8). Mezi jednotlivými oblastmi jsou vyměňovány pouze sumarizované topologické informace. Oblast číslo 0 je páteřní oblastí. Jejím prostřednictvím jsou propojeny mezi sebou ostatní oblasti. Všechny oblasti dohromady jsou pak součástí autonomního systému.
Obr. 3.8 Oblasti link state směrovacího protokolu
3.3.1 Druhy link state směrovacích protokolů Hlavním zástupcem link state směrovacích protokolů je směrovací protokol OSPF (Open Shortest Path First). Protokol OSPF je v současnosti nejrozšířenějším směrovacím protokolem ze skupiny protokolů IGP. Díky jeho schopnosti rozdělit síť do více oblastí je vhodný i pro rozsáhlejší sítě. Jako metriku používá parametr cost, který je obvykle odvozen od přenosových rychlostí jednotlivých portů směrovačů na dané cestě. Dalším příkladem link state směrovacích protokolů je směrovací protokol IS-IS (Intermediate System to Intermediate System). Tento protokol ale není příliš rozšířený.
3.4 Srovnání distance vector a link state směrovacích protokolů Výhody link state směrovacích protokolů •
Směrovače posílají LSP zprávy ihned po detekci změny stavu přímo připojené sítě – triggered updates. Doba konvergence je díky tomu krátká.
•
Protože směrovače znají topologii sítě, je riziko vzniku směrovacích smyček nízké.
•
Jako metrika se používá parametr cost, který ohodnocuje cesty lépe než například parametr hop count u protokolu RIP.
•
U LSP zpráv je sledováno jejich pořadí a stáří, čímž se zajistí aktuálnost informací, které obsahují.
•
Rozdělení sítě do více oblastí zmenší velikost topologické databáze, což vede k jednodušším výpočtům SPF algoritmu a rychlejší konvergenci.
Nevýhody link state směrovacích protokolů •
Směrovače si vedle směrovací tabulky musí vytvářet a aktualizovat topologickou databázi, databázi sousedních směrovačů a databázi možných cest k jednotlivým cílům.
•
Výpočet SPF algoritmu zatěžuje procesor směrovače. Výrazné je to především v rozsáhlých sítích a při častých změnách topologie sítě.
•
Link state směrovací protokoly jsou náročnější na velikost paměti a výkon procesoru směrovače. Takovéto směrovače pak mohou být dražší (především pokud jsou učeny pro rozsáhlejší sítě).
•
Konfigurace link state směrovacích protokolů může být u složitějších sítí náročnější.
•
Během počáteční výměny LSP zpráv může být přenosová kapacita sítě omezena.
Literatura: [1]
MCQUERRY, Stephen. Interconnecting Cisco Network Device, Part 1. Indianapolis: Cisco Press, 2008. ISBN 978-1-58705-462-4.
[2]
MCQUERRY, Stephen. Interconnecting Cisco Network Device, Part 2. Indianapolis: Cisco Press, 2008. ISBN 978-1-58705-463-1.
4 VLAN (Virtual Local Area Network) Virtuální LAN slouží k logickému rozdělení sítě nezávisle na fyzickém uspořádání. Hlavním principem VLAN je segmentace na menší sítě uvnitř fyzické struktury původní sítě. Pomocí VLAN můžeme takovéto dvě sítě vytvořit na jednom nebo několika propojených přepínačích. Mechanismus VLAN dovoluje rozdělit porty přepínače do skupin - virtuálních sítí s tím, že provoz může procházet vždy jen mezi porty téže skupiny, viz. obr. 4.1.
Obr. 4.1 VLAN na přepínači
Pro každou virtuální síť si přepínač vytváří a používá samostatnou přepínací tabulku. Přepínač je tak logicky rozdělen na více nezávislých logických přepínačů a to čistě na základě konfigurace přepínače, bez potřeby jakéhokoli fyzického přepojování. Tímto získáváme možnost seskupování stanic do vzájemně nezávislých, tzv. virtuálních sítí. Logická struktura sítě se tím stává nezávislou na fyzické topologii. Viz. animace VLAN.
4.1 Standard IEEE 802.1q V praxi je nutno propojit virtuální sítě na portech různých přepínačů. Spoje mezi přepínači však v tomto případě musí nést současně provoz z více virtuálních sítí, proto je nutné na spojích mezi přepínači identifikovat příslušnost jednotlivých rámců k virtuální síti, ze které byly vyslány. K tomu se používá speciální identifikace v hlavičce rámce Ethernet, tzv. tag. Spoje mezi přepínači, na kterých jsou rámce označovány značkou, jsou často nazývány trunk, viz. obr. 4.2.
Obr. 4.2 Trunk linka mezi přepínači
K identifikaci příslušné VLAN dochází ve formátu rámce Ethernet. Používá se hlavička obsahující číslo VLAN v rozsahu 0-4095 vložená do pole Tag Header. Mimo čísla VLAN hlavička podle normy 802.1q může nést i prioritu rámce. Původní hodnota pole EtherType pak následuje za hlavičkou 802.1q., viz. obr. 4.3.
Obr. 4.3 Rámec Ethernetu s hlavičkou 802.1q s identifikátorem VLAN
Záhlaví podle IEEE 802.1q prodlužuje rámec o 2B. Hardware síťových karet, resp. portů přepínačů tak musí být schopny zpracovávat rámce s maximální délkou (MTU) o 2B vyšší, než definuje klasická norma Ethernetu.
4.2 Protokol VTP Většinou chceme, aby vytvořené VLANy existovaly v celé síti na všech přepínačích. Pro přenášení informací o těchto VLAN se využívá protokolu VTP (VLAN Trunking Protocol). VTP je L2 protokol, který tedy slouží ke správě (přidávání, mazání, přejmenování) VLAN uvnitř VTP domény. VTP doména je tvořena jedním nebo více síťovými zařízeními, která mají nastaveno stejné jméno domény (volitelně i heslo) a jsou propojeny pomocí trunk spoje. Přepínač může pracovat v režimu:
•
server – spravuje seznam všech VLAN, má jej uložen v NVRAM, může vytvářet a mazat VLAN, přijímá a odesílá informace o VLAN přes trunk linky ve VTP doméně
•
klient – přijímá konfiguraci ze serveru, udržuje lokální kopii všech VLAN, kterou nelze měnit a nemá ji uloženou v NVRAM, přijímá a odesílá informace o VLAN
•
transparentní – neúčastní se VTP, pracuje samostatně, může vytvářet i mazat VLANy, ale změny jsou lokální, přijímá advertisements a ve verzi 2 je i přeposílá (ale nesynchronizuje svoje VLANy, ani je nezveřejňuje), je to jediný mód, kde můžeme vytvářet Extended a Private VLANy, VTP a VLAN konfigurace je uložena v NVRAM
4.2.1 Prořezávání (pruning) protokolu VTP Ethernet rámce vyslané na broadcast adresu jsou vyslány na všechny trunk porty. Zde však může dojít k situaci, kdy přes trunk linky putují rámce k cílovému přepínači i z těch VLAN, u kterých není na cílovém přepínači zařazen žádný port, tj. VLAN na cílovém přepínači není, viz obr. 4.4.
Obr. 4.4 Ethernet rámec s VLAN30 vyslaný na všechny přepínače
Proto přepínače některých výrobců implementují protokol pro tzv. prořezávání topologie jednotlivých VLAN, jímž se jednotlivé přímo propojené přepínače informují o číslech VLAN, které mají na jednotlivých portech. Jedná se zpravidla o protokol Cisco VTP, viz. obr. 4.5.
Obr. 4.5 Aplikace protokolu VTP
V případě kombinace výrobců zařízení, a tedy nemožnosti použít jednotný protokol pro prořezávání topologie, se pro filtraci jednotlivých VLAN používá statické konfigurace. Tj. danému přepínači se nastaví na příslušném trunk portu které VLAN má propouštět a které nikoliv.
4.3 Směrování mezi VLAN V některých případech bývá užitečné zajistit směrování mezi dvěma VLAN. Toto můžeme realizovat dvěma způsoby: •
pro každý VLAN použijeme fyzický port směrovače, viz. obr. 4.6.
•
nebo směrování umožníme pomocí jednoho fyzického portu směrovače, tzv. Router on the stick, viz. obr. 4.7.
V druhém případě musí mít jeden fyzický port směrovače nastaven tolik tzv. subinterface, kolik VLAN je potřebováno směrovat. Nesmíme zapomenout nastavit typ enkapsulace na L2 vrstvě 802.1q a každém subinterface přiřadit samostatnou IP adresu. Výhodou tohoto druhého přístupu je ušetření počtu rozhraní směrovače, kdy počet požadovaných rozhraní směrovače neroste s počtem VLAN mezi kterými má směrovač směrovat. Nevýhodou je nižší propustnost, protože při směrování paketu mezi VLAN se využívá jedné fyzické linky.
Obr. 4.6 Směrování mezi VLAN pomocí různých portů směrovače
Obr. 4.7 Směrování mezi VLAN pomocí Router on the stick
4.4 Protokol Spanning Tree Protokol Spanning Tree (STP) je algoritmus k vytvoření logické topologie sítě bez smyček v přepínané síti se smyčkami. Představme si síť na obr. 4.8. Tato sít je tvořena dvěma přepínači, kde data mohou být směrována ze segmentu A do segmentu B přes dvě cesty (přes přepínač S1 nebo přes přepínač S2). V této topologii se takto vytváří smyčka, ve které by např. broadcast rámce cirkulovaly nekonečně.
Obr. 4.8 Cirkulace rámců v topologii se smyčkou
Navíc přítomnost smyčky vede nejen k cirkulaci nebo generování kopií rámců, ale zcela nabourává i samotný princip automatického učení přepínací tabulky přepínače. Cirkulující rámce se zdrojovou adresou stanice A jednou přicházejí do přepínačů z LAN1 a jindy z LAN2. Tímto si přepínače neustále střídavě a v polovině případů nesprávně podle portu příchozího rámce aktualizují informaci, za kterým portem je vlastně stanice A připojena. Z uvedeného případu je zřejmé, že vytvoření smyčky v síťové topologii je nežádoucí. Žádoucí ale je mít redundantní linky pro případ zálohy spojení. Proto musíme mít k dispozici mechanismus, který v topologii obsahující smyčky zablokuje některé porty přepínačů tak, aby výsledná topologie byla stromová, např. viz. obr. 4.9.
Obr. 4.9 Stromová topologie bez vytvořených smyček
Takovýto mechanismus zajišťuje protokol Spanning Tree IEEE 802.1d. Úkolem tohoto protokolu je neustálé udržování stromové struktury na danou topologií přepínačů. Důležité vlastnosti Spanning Tree protokolu jsou: •
blokace linky probíhá vždy jen z jedné strany přepínače, viz. obr. 4.10,
•
algoritmus pracuje neustále, v případě výpadku linky nebo portu přepínače se strom automaticky přepočte (odblokuje se některý doposud zablokovaný port).
Vytváření stromu se děje ve dvou krocích, které však probíhají neustále a současně: 1.
volba kořenu stromu, tzv. Root Bridge
2.
vytvoření stromu preferovaných (nejmenší cost) cest z každého přepínače k Root Bridge.
Obr. 4.10 Blokace portu při použití Spanning Tree
Redundantní spoje, které nejsou součástí nejkratší cesty stromu, jsou blokovány. Data, která přicházejí na blokované spoje, jsou zahozena. Díky tomu vznikne logická topologie bez smyček. Protokol Spanning Tree vyžaduje komunikaci mezi zařízeními, aby detekoval smyčky. Spoje, které vytváří smyčky, jsou dány do blokujícího stavu (Blocking State). Přepínače si posílají zprávy Bridge Protocol Data Units (BPDU) pro získání informací o logické topologii bez smyček. Blokované porty přijímají BPDU a to zabezpečí, že když selže aktivní cesta nebo zařízení, vypočítá se nový strom. BPDU obsahují informace, pomocí nichž si mohou přepínače: •
vybrat jeden přepínač, který bude fungovat jako Root Bridge,
•
spočítat nejkratší cestu k Root Bridge,
•
vybrat jeden ze svých portů jako kořenový port (Root Port) pro každý přepínač, který není kořenovým přepínačem. Root Port je port s nejlepší cestou k Root Bridge.
•
Nastavit porty, které jsou součástí spanning tree, tzv. Designated Ports.
Z důvodu zabránění smyčkám během konvergence (volba Root Bridge) algoritmus definuje přechodné stavy portů, tzv. Learning a Listening. Port ve stavu Listening nepřeposílá rámce, ale pouze po dobu 15 sekund sleduje okolní provoz, aby mohl rozhodnout, zda se přepne do stavu Forwarding (běžný provoz) nebo Blocking. Před přechodem do stavu Forwarding se navíc 15 sekund ve stavu Learning bez přeposílání rámců pouze učí MAC adresy okolních stanic. Tímto se omezí procento rámců, jejichž příjemce není v přepínací tabulce a musí být tudíž rozeslány na všechny porty. Jednotlivé fáze portu jsou uvedeny na obr. 4.11.
Obr. 4.11 Fáze portu přepínače protokolu Spanning Tree
•
Blocking state – porty přijímají pouze BPDU. Data jsou zahazována a přepínač se na tomto portu neučí MAC adresy. V tomto stavu přetrvává maximálně 20 sekund.
•
Listening state – přepínač zjišťuje, zda nevede další cesta k root bridge. Cesty, které nemají nejnižší cost path k root bridge se vrátí do blocking state. Doba naslouchání se nazývá forward delay a trvá 15 sekund. Data nejsou přeposílána a MAC adresy se neučí, ale BPDU se stále zpracovávají.
•
Learning state – učí se MAC adresy, ale data stále nejsou přeposílána. BPDU jsou stále zpracovávána. Trvá 15 sekund.
•
Forwarding state – se přeposílají data, učí se MAC adresy a BPDU jsou zpracovávána.
•
Port může být i v Disabled State. V tomto stavu je port, když je administrátorem vypnut nebo má poruchu.
Literatura: [1]
KABELOVÁ, Alena; DOSTÁLEK, Libor. Velký průvodce protokoly TCP/IP a systém DNS. 5. vydání. Praha : Computer Press, 2008. 488 s. ISBN 978-80-251-2236-5. [kniha]
[2]
Cisco.com [online]. 2008 [cit. 2010-11-24]. Understanding VLAN Trunk Protocol (VTP). Dostupné z WWW: .
Příloha č.1: Přehledná tabulka pro VLSM subnetting: Class C Subnet Table .0 .4 .8 .12 .16 .20 .24 .28 .32 .36 .40 .44 .48 .52 .56 .60 .64 .68 .72 .76 .80 .84 .88 .92 .96 .100 .104 .108 .112 .116 .120 .124 .128 .132 .136 .140 .144 .148 .152 .156 .160 .164 .168 .172 .176 .180 .184 .188 .192 .196 .200 .204 .208 .212 .216 .220 .224 .228 .232 .236 .240 .244 .248 .252
/24 .0 (00000000)
/25 .128 (10000000)
/26 .192 (11000000)
/27 .224 (11100000)
/28 .240 (11110000)
/29 .248 (11111000)
/30 .252 (11111100)
0 subnets 254 hosts
0 subnet 126 hosts
2 subnets 62 hosts
6 subnets 30 hosts
14 subnets14 hosts
30 subnets 6 hosts
62 subnets 2 hosts
.0
.0
.0
.0
.0
.0 (.1 - .6) .8 (.9 - .14) .16 (.17 - .22) .24 (.25 - .30) .32 (.33 - .38) .40 (.41 - .46) .48 (.49 - .54) .56 (.57 - .62) .64 (.65 - .70) .72 (.73 - .78) .80 (.81 - .86) .88 (.89 - .94) .96 (.97 - .102) .104 (.105 - .108) .112 (.113 - .118) .120 (.121 - .126) .128 (.129 - .130) .136 (.137 - .142) .144 (.145 - .150) .152 (.153 - .158) .160 (.161 - .166) .168 (.169 - .174) .176 (.177 - .182) .184 (.185 - .190) .192 (.193 - .198) .200 (.201 - .206) .208 (.209 - .214) .216 (.217 - .222) .224 (.225 - .230) .232 (.233 - .238) .240 (.241 - .246) .248 (.249 - .254)
.0 (.1 -.2) .4 (.5 - .6) .8 (.9 - .10) .12 (.13 - .14) .16 (.17 - .18) .20 (.21 - .22) .24 (.25 - .26) .28 (.29 - .30) .32 (.33 - .34) .36 (.37 - .38) .40 (.41 - .42) .44 (.45 - .46) .48 (.49 - .50) .52 (.53 - .54) .56 (.57 - .58) .60 (.61 - .62) .64 (.65 - .66) .68 (.69 - .70) .72 (.73 - .74) .76 (.77 - .78) .80 (.81 - .82) .84 (.85 - .86) .88 (.89 - .90) .92 (.93 - .94) .96 (.97 - .98) .100 (.101 - .102) .104 (.105 - .106) .108 (.107 - .108) .112 (.113 - .114) .116 (.117 - .118) .120 (.121 - .122) .124 (.125 - .126) .128 (.129 - .130) .132 (.133 - .134) .136 (.137 - .138) .140 (.141 - .142) .144 (.145 - .146) .148 (.149 - .150) .152 (.153 - .154) .156 (.157 - .158) .160 (.161 - .162) .164 (.165 - .166) .168 (.169 - .170) .172 (.173 - .174) .176 (.177 - .178) .180 (.181 - .182) .184 (.185 - .186) .188 (.189 - .190) .192 (.193 - .194) .196 (.197 - .198) .200 (.201 - .202) .204 (.205 - .206) .208 (.209 - .210) .212 (.213 - .214) .216 (.217 - .218) .220 (.221 - .222) .224 (.225 - .226) .228 (.229 - .230) .232 (.233 - .234) .236 (.237 - .238) .240 (.241 - .242) .244 (.244 - .246) .248 (.249 - .250) .252 (.253 - .254)
(.1 - .14) (.1 - .30) .16 (.17 - .30) (.1 - .62) .32
.32 (.33 - .46)
(.33 - .62) .48 (.49 - .62) (.1 - .126) .64
.64
.64 (.65 - .78)
(.65 - .94) .80 (.81 - .94) (.65 - .126) .96
.96 (.97 - .108)
(.97 - .126) .112 (.113 - .126) (.1 - .254)
.128
.128
.128
.128 (.129 - .142)
(.129 - .158) .144 (.145 - .158) (.129 - .191) .160
.160 (.161 - .174)
(.161 - .190) .176 (.177 - .190) (.129 - .254)
.192
.192
.192 (.193 - .206)
(.193 - .222) .208 (.209 - .222) (.191 - .254) .224
.224 (.225 - .238)
(.225 - .254) .240 (.241 - 254)