CZ 
06.10.2024 Hanuš VÍTEJTE V MÉM SVĚTĚ

An English translation is available for this article. Pro tento článek je dostupný anglický překlad.
TCP/IP - Routing

TCP/IP - Routing - směrování

| Petr Bouška - Samuraj |
V jedenácté části seriálu o počítačových sítích se věnuji routingu, tedy směrování v sítích. Je zde stručný popis, vysvětlení termínů a pak jsou velmi stručně popsány některé běžnější routovací metody (RIP, IGRP, EIGRP a OSPF) včetně dělení těchto metod. U metod je ukázka základní konfigurace na Ciscu. Článek není zdaleka vyčerpávající a popis je často bodový. V závěru je zmíněno routování na Windows.
zobrazeno: 192 636x (192 607 CZ, 29 EN) | Komentáře [23]

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.

Princip routování

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.

Ukázka propojení routerů v internetu

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
Dělení dynamických routovacích protokolů

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ě.

Související články:

Počítačové sítě - Computer networks

Tento seriál se věnuje základům počítačových sítí. Jsou zde stručně popsány důležité praktické aspekty, které by měl znát každý, kdo se o sítě zajímá. Obsahuje jedny z nejčtenějších článků na tomto webu. Je využíváno pro výuku na školách.

Routing - směrování

Směrování paketů mezi jednotlivými počítačovými sítěmi (LAN) se provádí technikou zvanou routing. Používají se k tomu různé routovací protokoly. Routing je jedna ze základních částí komunikace v internetu.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře
  1. [1] maro

    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!

    Úterý, 25.12.2007 17:53 | odpovědět
  2. [2] Samuraj

    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).

    Úterý, 25.12.2007 20:15 | odpovědět
  3. [3] bobo

    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:-(

    Sobota, 09.02.2008 08:39 | odpovědět
  4. [4] Samuraj

    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.

    Neděle, 10.02.2008 12:27 | odpovědět
  5. [5] Radim

    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

    Středa, 19.03.2008 12:38 | odpovědět
  6. [6] Samuraj

    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.

    Středa, 19.03.2008 16:04 | odpovědět
  7. [7] MLOK

    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

    Neděle, 30.03.2008 11:53 | odpovědět
  8. [8] Chomi

    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.

    Pátek, 15.08.2008 10:29 | odpovědět
  9. [9] kammmo

    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?

    Pátek, 26.12.2008 23:43 | odpovědět
  10. [10] Samuraj

    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).

    Sobota, 27.12.2008 13:13 | odpovědět
  11. [11] bambulko

    ja by som potreboval prepojit 3 siete tak, ako znovku boli pristupne, ale aby sa envideli medzi sebou. ako postupovat. poradite niekto, pls ;)

    diky

    Pondělí, 04.05.2009 09:23 | odpovědět
  12. [12] Vít

    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.

    Pondělí, 08.02.2010 20:45 | odpovědět
  13. [13] samuraj

    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.

    Úterý, 09.02.2010 10:12 | odpovědět
  14. [14] Ivan

    :-)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 ?

    Úterý, 30.11.2010 21:59 | odpovědět
  15. [15] n3z

    dík moc, pomohlo :)

    Čtvrtek, 10.02.2011 19:25 | odpovědět
  16. [16] Honza

    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

    Sobota, 13.08.2011 11:20 | odpovědět
  17. [17] yoseph

    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?

    Sobota, 07.01.2012 20:15 | odpovědět
  18. [18] Samuraj

    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í.

    Pondělí, 09.01.2012 08:44 | odpovědět
  19. [19] Daxxim

    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.

    Středa, 18.07.2012 13:11 | odpovědět
  20. [20] Samuraj

    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.

    Středa, 18.07.2012 14:03 | odpovědět
  21. [21] Keke

    Ahoj,

    Ten článek se mi fakt líbí. Díky moc!

    Pondělí, 30.07.2012 11:57 | odpovědět
  22. [22] Lamík

    Zdravím,

    Ve škole to nelze pochopit, odsud se dá pochopit všechno.

    Díky moc ;-)

    Pondělí, 18.02.2013 23:14 | odpovědět
  23. [23] Alex

    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

    Neděle, 02.06.2013 19:43 | odpovědět
Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách