Routing, česky řečeno směrování, ale častěji se používá slovo routování (alespoň v mém okolí). Jedná se o techniku, která slouží k propojení jednotlivých sítí (přesněji subnetů). Původním zařízením, určeným pro routování byl router, ale v dnešní době se velmi využívají L3 switche, firewally nebo pouze servery/počítače. Router přeposílá komunikaci z jedné sítě do jiné.
Následující obrázek ukazuje jednoduchý příklad sítě, kde máme subnety A, B a C. Tyto subnety jsou propojeny přes router mezi sebou a také do internetu. Takže pokud chce například stanice ze subnetu B komunikovat se serverem v subnetu A, tak pošle data na router a ten zařídí doručení do subnetu A. Pokud by stanice chtěla komunikovat do internetu, tak router naopak zašle data na jiný interface.
Dělení sítě na subnety je hierarchické a ve všech propojích musí být router. Při komunikaci pak postupujeme směrem nahoru ve stromu na nejbližší vrstvu, která propojuje dané subnety, a pak opět dolů. Délka cesty se počítá podle počtu hopů (skok), což je každý přechod ze zařízení na zařízení, je to tedy počet routrů v cestě + 1. Přímé spojení dvou počítačů je dlouhé 1 hop. Používá se také termín next hop (další skok) a označuje se jím adresa dalšího routeru v cestě.
Na dalším obrázku jsem se pokusil zachytit tuto situaci. Je zde malý (a pouze schematický) výřez větší sítě (či internetu). Na listech stromu jsou malé routery, ke kterým jsou připojeny switche a počítače. Tyto routery se sdružují do dalších (větších) a tak dále na několika úrovních. Samozřejmě v praxi jsou větší routery vždy redundantně, aby byla síť odolná vůči výpadku či kvůli vyvažování zátěže.
Důležité pojmy pro routování
- Router
- zařízení, které provádí routování
- Routing
- routování, přeposílání (forwarding) dat mezi sítěmi
- Route
- cesta, která se použije, zapsaná v routovací tabulce
- Routing table
- routovací tabulka obsahuje záznamy o jednotlivých cestách
- Routing protocol
- routovací protokol slouží ke směrování routovaného protokolu, určuje nejlepší cestu k cíli a posílá routovací informace dalším routrům
- Routed protocol
- routovaný protokol je IP, IPX nebo Apple Talk
Ještě jeden občas používaný termín, který je dobré znát.
- Router on stick
- je router, který je připojený do switche pomocí jednoho trunk portu - tzn. máme pouze jeden router a pouze jednu linku, což přináší velkou zátěž na router i linku a problémy při výpadku
Dělení routovacích protokolů
Do routovací tabulky se vytváří několik typů záznamů cest (route), záleží na tom, jakým způsobem vznikly. Pakety jsou podle toho směrovány jedním ze základních způsobů routování:
- statické routování – ručně zadané cesty (záznamy v routovací tabulce), bezpečné a dobré, ale nereflektuje změny v topologii sítě
- dynamické routování - síť se automaticky přizpůsobuje změnám v topologii a dopravě, automaticky se vypočítávají cesty pomocí routovacího protokolu
- defaultní routování - pokud neexistuje jiná cesta, tak se použije defaultní
Dynamické routovací protokoly jsou dvou základních typů
- distance-vector routing protocol – routery udržují routovací tabulku s informací o (vektoru) vzdálenosti do dané sítě, periodicky routovací tabulku zasílají sousedům, ti si upraví svoji tabulku a tu opět odešlou dál, pro výpočet nejlepší cesty se používá jedna (počet hopů u RIP) nebo více metrik (propustnost linky a zpoždění u IGRP). Upraveným typem distance-vector protokolu je path-vector protocol.
- link-state routing protocol – routery udržují komplexní databázi síťové topologie (vytvořenou pomocí LSA), vyměňují si link-state advertisements (LSA), LSA jsou vyvolány nějakou událostí v síti, do svého okolí také odesílá Hello pakety, kde zasílá informace o sobě, rychle reaguje na změny topologie, ale spotřebovává více pásma a zdrojů na routeru, metrika je komplexní, nejlepší cesta se počítá pomocí Dijkstrova algoritmu shortest path first (SPF)
Pozn.: Ještě je zde jeden speciální typ, který vychází z distance-vector protokolu a přidává některé vlastnosti link-state protokolu, označuje se jako hybrid routing protokol nebo advanced distance-vektor protokol. Jeho jediným zástupcem je EIGRP.
Dále dělíme dynamické protokoly podle toho, zda jsou určeny pro nasazení uvnitř lokální sítě (přesněji řečeno uvnitř autonomního systému (AS), který může obsahovat několik LAN) nebo fungují napříč sítěmi (spojují AS dohromady)
- interior gateway protocol - IGP - routuje uvnitř Autonomous System (AS)
- exterior gateway protocol - EGP - routuje mezi AS
Obecné termíny
- Variable Length Subnet Masking (VLSM)
- používá se v Classless Inter-Domain Routing (CIDR). V tomto případě můžeme v subnetu použít různé velikosti masky. Můžeme například použít dohormady subnety 10.0.0.0/26 a 10.0.0.64/28.
- Autonomní systém - AS (Autonomous System)
- je skupina IP sítí a routrů, které jsou pod správou jedné (nebo více) jednotek.
- Administrativní vzdálenost - AD (Administrative Distance)
- je vlastnost používaná na routrech k určení nejlepší cesty mezi více routovacími protokoly. Definuje spolehlivost protokolu a prioritizuje lepší nižším číslem. Jinak řečeno na routeru může běžet více routovacích protokolů a podle AD se rozhoduje, který se použije. Na Cisco routrech můžeme měnit defaultní hodnoty.
protokol | Administrativní vzdálenost |
---|---|
přímo připojený interface | 0 |
statická routa | 1 |
EIGRP | 90 |
IGRP | 100 |
OSPF | 110 |
RIP | 120 |
EGP | 140 |
- Split horizon
- metoda, která slouží k zamezení vzniku smyček v Distance Vector Routing protokolech. Používá se u RIP, IGRP a EIGRP. Funguje tak, že zakazuje posílání routovací cesty zpět na rozhranní, z kterého se naučila.
- Hold-down timer
- je metoda, kterou používají routovací protokoly, aby zabránily zbytečnému nebo předčasnému rozesílání routovacích cest v nestabilním prostředí (ve chvíli, kdy dochází k časté změně stavu). Router čeká určitý čas než je síť stabilní.
Jednotlivé routovací metody
RIP - Routing Information Protocol
- jednoduchý pro konfiguraci a funguje všude
- pro malé a střední sítě
- RIP 1 nepodporuje VLSM
- plýtvá pásmem (velká režijní komunikace)
- pomalá konvergence (rozšiřování)
- hloupá metrika - počet hopů
- posílá celou routovací tabulku svým sousedům
- maximálně 15 hopů
Definují se pouze sítě, které jsou přímo na tomto routeru, ostatní se naučí pomocí updatů. Nastavení na Ciscu pomocí
SWITCH(config)#router rip SWITCH(config-router)#network 132.43.54.0 SWITCH(config-router)#network 145.65.76.0
IGRP - Interior Gateway Routing Protocol
- proprietární Cisco protokol
- nepodporuje VLSM
- jako metriku používá cenu, záleží na pásmu a zpoždění
- maximální počet hopů 255
Nastavení na Cisco routru (33 je číslo AS)
SWITCH(config)#router igrp 33 SWITCH(config-router)#network 134.43.54.0 SWITCH(config-router)#network 143.56.76.0
EIGRP - Enhanced Interior Gateway Routing Protocol
- proprietární Cisco protokol
- rychlá konvergence
- redukuje spotřebu pásma pro routovací updaty
- podporuje různé protokoly (apple talk, IPX, IP) a VLSM
- metrika - pásmo, zpoždění (případně i zátěž, spolehlivost)
- routovací update se vyměňují pouze mezi routry ve stejném AS
- maximální počet hopů 255
- bez smyček
Používá tabulku sousedů (informace o přímých sousedech), tabulku topologie (všechny routovací záznamy, které se naučil) a routovací tabulku (nejlepší routy z tabulky topologie).
Nastavení na Cisco routeru (33 je číslo AS)
SWITCH(config)#router eigrp 33 SWITCH(config-router)#network 172.16.0.0 SWITCH(config-router)#network 10.0.0.0
OSPF - Open Shortest Path First
- hierarchický systém - jedna nebo více oblastí je spojena k páteřní oblasti (oblast 0)
- routry posílají linkstate (pásmo a stav interfacu) informace všem sousedním routrům v oblasti
- routry vytvářejí databázi topologie, což je model celé oblasti
- z databáze se pomocí Dijkstry vypočítá nejkratší cesta a zapíše do routovací tabulky
- neomezený počet hopů
- určeno pro rozsáhlé sítě heterogenní sítě
- podporuje VLSM
Nastavení na Cisco routeru (1 je ID číslo procesu, pouze lokálně významné)
SWITCH(config)#router ospf 1 SWITCH(config-router)#network 132.43.56.0 0.0.0.255 area 0 SWITCH(config-router)#network 145.54.34.6 0.0.63.255 area 0
Static routing
- používá se například mezi ISP a firmou, není zde třeba, aby běhal složitý routovací protokol
- pro každou síť je vložen záznam do routovací tabulky
- žádná zátěž
- pouze pro malé sítě
Nastavení na Cisco routru
ip route [destination_network] [mask] [next_hop or exit_interface] [administrative_distance] [permanent] SWITCH(config)#ip route 192.168.50.0 255.255.255.0 192.168.1.1
next_hop je IP adresa dalšího routeru v cestě, přesněji, je to adresa interfacu sousedního routeru, který sousedí s tímto routerem,
exit_interface je jméno lokálního výstupního interfacu (třeba s0), přes který vede cesta k cílové síti.
Default routing
- může se použít pouze na kraji sítě, kde je jeden port, který vede mimo síť
- pokud není definována jiná cesta k dosažení cíle, tak se použije defaultní routa, což je gateway
Nastavení na Cisco routru
ip route 0.0.0.0 0.0.0.0 [next_hop or exit_interface] SWITCH(config)#ip route 0.0.0.0 0.0.0.0 62.102.58.12
Routování a Windows
I pracovní stanice, kde je například OS Windows XP, musí provádět rozhodnutí o tom, kam směrovat síťová data. Vychází se z toho, jak jsou nastaveny síťové karty v počítači. Podle tohoto nastavení se dynamicky upravuje routovací tabulka. Ale údaje v tabulce můžeme upravovat i ručně. Podle routovací tabulky se Windows rozhodují, přes kterou síťovou kartu zaslat určitá data.
Základní routy jsou pro gateway, tedy to co nevím kam jinam poslat, označuje se jako default route. Pak jsou routy pro hosta a loopback (127.0.0.0/8), které vedou na MS TCP Loopback Interface. Dále je routa pro multicast (224.0.0.0/4). V neposlední řadě je zde routa pro lokální subnet.
Jednotlivé routy mají metriku (1 až 9999), která určuje jejich prioritu. Čím nižší hodnota, tím větší priorita. Routa se vybírá nejprve tak, aby nejblíže odpovídala cílové adrese. Pokud je třeba, tak je druhým kritériem metrika.
Jak jsem psal, tak se routovací tabulky vytváří a upravuje dynamicky podle interfaců. Můžeme manuálně mazat, přidávat či upravovat záznamy, ale tyto změny se při restartu počítače ztratí. Pokud chceme vytvořit trvalou statickou routu, tak ji musíme vytvořit jako persistant. Tyto routy jsou pak uloženy v registech HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes
.
Pro manipulaci s routovací tabulkou ve Windows XP (ale dalších MS OS) slouží příkaz route
. Pár příkladů použití:
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]] route print // vypíše routovací tabulku route add 0.0.0.0 mask 0.0.0.0 192.168.12.1 // vytvoří dočasnou defaultní routu, tedy gateway route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7 // vytvoří trvalou (persistant) routu pro 10.41.0.0/16 route delete 10.41.0.0 mask 255.255.0.0 // smaže záznam pro 10.41.0.0/16
Windows jako router
Routování, o kterém jsem tu psal, se týká pouze rozhodnutí, kam směrovat provoz generovaný na tomto počítači. Pokud bychom chtěli použít počítač jako router, tedy aby příchozí komunikaci posílal dál, tak musíme tuto funkci zapnout v registrech.
V registrech HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
musíme změnit hodnotu položky IPEnableRouter
na 1
.
Pozn.: Chtěl bych upozornit, že zapnutí této funkce je třeba dobře rozvážit, protože se může jednat o bezpečnostní riziko. Pomocí této funkce může dojít k propojení několika sítí (což asi v tomto případě chceme), takže ji nezapínat bezdůvodně.
Kdyz se uz rozpisujes s prikazy network.. tak bys mohl možná přidat, jak se nastavuje defaultni routa v urcitem protokolu... at to tady mam pohromade ;-) Myslim treba: def inf originate, atd.. Dik za fajn clanky!
Přiznám se, že routingu se v praxi nevěnuji (a co jsem potřeboval, tak jsem vystačil s ip route...). Tento článek přináší informace, které by měli být potřebné pro test na CCNA. Je to hlavně o teorii a ne o příkazech IOSu (těch pár je tu proto, že mě stačily u testu).
zdarec lidi...
mam problem se sdilenym pripojenim ve win xp. router pc prideli adresu, z toho druhyho pc se pingnu na jakoukoliv ip adresu (vcetne DNS serveru), ale webovou adresu mi to nejak nepreklada. firewall mam nastavenej spravne, routing v registrech povolenej...
nejakej cas mi to fungovalo, ale najednou to prestalo a ja uz vazne nevim kde by mohla byt chyba:-(
odpověď na [3]bobo: Tohle by bylo lepší dát do fóra. Ale těžko se takhle hledá problém. Pokud funguje ping na DNS server, tak bych zkusil nslookup, jestli se připojí k DNS serveru a jestli překládá jména.
Zdravim, clanek je super, jen malinka poznamecka. V clanku se na nekolika mistech pise o EIGRP, ale uvadi se IGRP (chybi pismenko ;-) ). Mozna by to nebylo od veci to {opravit}:
# uvnitř sítě
* RIP1, RIP2, IGRP, OSPF, ISIS, IGRP {EIGRP}
..
* Hybrid Routing - IGRP {EIGRP} - kombinace obojího
odpověď na [5]Radim: Díky za upozornění, asi se mě při nějakém hromadném upravování ztratilo všude E. Přitom v titlu u abbr na IGRP bylo EIGRP.
Ahoj, bezva clanek! jen snad mala uprava. Ve vsech konfiguracich je na CLI: Switch(config)# .....
routovani leda na L3,jinak by melo byt vsude Router(config)#
kdyz uz jsme u tech routeru .-)
jinak pekny souhrn! diky
odpověď na [7]MLOK: jestli se nemýlím tak L3 switche umějí i routovat, takže to nebude nějaká chyba, že tam má switch... hodně switchů už dneska dokáže zastoupit i DHCP server, ale využitelnost v praxi na větších sítích nic moc.
next_hop je IP adresa interfacu, přes která je daná cílová síť dostupná,........
tam nie je IP adresa interface-u daneho routra ale IP adresa interface-u "next" routra v ceste.... nie?
odpověď na [9]kammmo: Samozřejmě máte pravdu, děkuji. Takhle by to byl nesmysl (přitom na začátku článku popisuji next hop).
ja by som potreboval prepojit 3 siete tak, ako znovku boli pristupne, ale aby sa envideli medzi sebou. ako postupovat. poradite niekto, pls ;)
diky
Měl bych dotaz na první obrázek v tomto článku. Je možné propojit subnety A,B,C s tímto adresovaním na malém domácím routeru? Snažil jsem se to rozchodit, kvůli takovému úkolu, takto rozvržené pomocí statického routování, ale nefunguje mi to.
odpověď na [12]Vít: Nemám zkušenosti s malými routery, ale pokud můžete na jednotlivé porty nastavit IP adresy (což budou GW pro jednotlivé subnety), tak by to chodit mělo. Jedná se o přímo připojené interfacy, takže nepotřebujete ani žádný routovací protokol, ale pouze routovací funkci.
:-)Ve winbdows PC 10.201.40.101 mask 255.255.255.0 gw 10.201.40.1
mám staticky routovat na 10.201.121.192 mask 255.255.255.240 přes 10.201.40.254 na server bez routeru. Jak by vypadal příkaz route -p add ?
dík moc, pomohlo :)
Zdravím, chtěl bych se zeptat, jak se dá router přepnout na switch. Popsat nějaký obecný návod.
pište prosím na meil horno.h@seznam.cz
super clanok, dost mi pomohol pri studiu. stale neviem ci musia byt rutre navzajom spojene aby sa mohol pouzit rutovaci protokol napr ospf alebo sa da nakonfigurovat aj jeden ruter prip tri?
odpověď na [17]yoseph: Routovací protokoly (jako OSPF) jsou založeny na tom, že si dynamicky vyměňují informace a budují routovací tabulku. Pokud budu mít pouze jeden router, tak ztrácí smysl a stačí mi statické routování.
Zdravim, rad bych se zeptal na jednu vec. Sit je postavena jako hvezda a nikde neni propojena do kruhu. Jaky routovaci protokol pouzit? Ma v tomto pripade smysl uvazovat o OSPF nebo staci staticke routovani? Predem diky za nazor.
odpověď na [19]Daxxim: Záleží na velikosti a struktuře sítě. Běžná firemní LAN si vystačí se statickým routováním a nepotřebuje vyměňovat informace s dalšími routery. To je v případě, kdy se používá jeden (případně několik napevno zapojených) router. Použití routovacích protokolů nemá význam. Pokud ale jsou v síti desítky routerů nebo se počítá, že se budou často obměňovat, nebo máme řadu poboček, mezi kterými řešíme routování a existuje tam více cest, pak se vyplatí rozjet routovací protokol.
Ahoj,
Ten článek se mi fakt líbí. Díky moc!
Zdravím,
Ve škole to nelze pochopit, odsud se dá pochopit všechno.
Díky moc ;-)
Zdravim,
nevíte, jak by vypadaly routovací tabulky s agregovanými sítěmi za předpokladu, že chceme pokud možno co nejmenší počet záznamů v routovací tabulce?
Děkuji