abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 16:44 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.18. Díky 174 přispěvatelům.

    Ladislav Hagara | Komentářů: 2
    včera 15:11 | IT novinky

    Miliardy korun na digitalizaci služeb státu nestačily. Stát do ní v letech 2020 až 2024 vložil víc než 50 miliard korun, ale původní cíl se nepodařilo splnit. Od loňského února měly být služby státu plně digitalizované a občané měli mít právo komunikovat se státem digitálně. Do tohoto data se povedlo plně digitalizovat 18 procent agendových služeb státu. Dnes to uvedl Nejvyšší kontrolní úřad (NKÚ) v souhrnné zprávě o stavu digitalizace v Česku. Zpráva vychází z výsledků víc než 50 kontrol, které NKÚ v posledních pěti letech v tomto oboru uskutečnil.

    Ladislav Hagara | Komentářů: 7
    včera 13:55 | IT novinky

    Nadace Wikimedia, která je provozovatelem internetové encyklopedie Wikipedia, oznámila u příležitosti 25. výročí vzniku encyklopedie nové licenční dohody s firmami vyvíjejícími umělou inteligenci (AI). Mezi partnery encyklopedie tak nově patří Microsoft, Amazon a Meta Platforms, ale také start-up Perplexity a francouzská společnost Mistral AI. Wikimedia má podobnou dohodu od roku 2022 také se společností Google ze skupiny

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 02:22 | Nová verze

    D7VK byl vydán ve verzi 1.2. Jedná se o fork DXVK implementující překlad volání Direct3D 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

    Ladislav Hagara | Komentářů: 0
    včera 02:00 | Nová verze

    Byla vydána verze 12.0.0 knihovny libvirt (Wikipedie) zastřešující různé virtualizační technologie a vytvářející jednotné rozhraní pro správu virtuálních strojů. Současně byl ve verzi 12.0.0 vydán související modul pro Python libvirt-python. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    15.1. 19:22 | Humor

    CreepyLink.com je nový zkracovač URL adres, 'díky kterému budou vaše odkazy vypadat tak podezřele, jak je to jen možné'. Například odkaz na abclinuxu.cz tento zkracovač převádí do podoby 'https://netflix.web-safe.link/logger_8oIlgs_free_money.php'. Dle prohlášení autora je CreepyLink alternativou ke zkracovači ShadyURL (repozitář na githubu), který dnes již bohužel není v provozu.

    NUKE GAZA! 🎆 | Komentářů: 3
    15.1. 12:33 | IT novinky

    Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.

    Ladislav Hagara | Komentářů: 3
    15.1. 12:11 | Komunita

    Wikipedie slaví 25. výročí svého založení. Vznikla 15. ledna 2001 jako doplňkový projekt k dnes již neexistující encyklopedii Nupedia. Doména wikipedia.org byla zaregistrována 12. ledna 2001. Zítra proběhne v Praze Večer svobodné kultury, který pořádá spolek Wikimedia ČR.

    Ladislav Hagara | Komentářů: 1
    15.1. 04:44 | Nová verze

    Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 2
    15.1. 02:22 | Nová verze

    Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (5%)
     (0%)
     (9%)
     (19%)
     (3%)
     (6%)
     (3%)
     (11%)
     (42%)
    Celkem 463 hlasů
     Komentářů: 12, poslední 14.1. 21:12
    Rozcestník

    Statické routování

    Mějme malou síť, na ní si polopaticky vysvětlíme principy statického routování.
    
    26.87.34.0/30        eth0/nat|------------|eth1            10.0.1.0/29
    |    inet   |----ethernet----|  router-1  |----ethernet----|  LAN-1  |
    \~~~~~~~~~~~/      ...34.2/30|------------|...1.1/29       \~~~~~~~~~/
                                   ath0|...4.1/30
                                       |
                                       |
                                    wifi-PtP - 10.0.4.0/30
                                       |
                                       |
                                   ath0|...4.2/30
    10.0.3.0/28         ...3.1/28|------------|...2.1/27       10.0.2.0/27
    | wifi-ap |-------koax-------|  router-2  |----ethernet----|  LAN-2  |
    \~~~~~~~~~/              eth0|------------|eth1            \~~~~~~~~~/
    
    Takže nejprve musíme spočítat kolik máme subnetů. Je jich tam 5. Kdo neví jak jsem k tomu došel, podívejte se dlouze na obrázek a pak to zkuste ještě jednou. Z počtu 5 jsou 4 subnety interní (to je ta naše síť) a jeden je externí, to je připojení od providera. Naše síť je maskovaná za NATem, takže s tím externím subnetem nebude moc práce.

    Při vysvětlování principu routování začnu možná překvapivě od konce, to jest od koncových klientských počítačů. Představme si PC ( pro názornost "pepův PC") v LAN-2, zde je jeho konfigurace (pro teď zcela zapomeneme na DNS):
    IP: 10.0.2.12
    maska: /27
    výchozí brána: 10.0.2.1
    
    Tak, výchozí brána je první věc kolem routování.

    PRAVIDLO 1: Brána je VŽDYCKY v lokálním subnetu.

    Výchozí brána je tedy cesta, kudy ven z lokálního subnetu. Představte si že jste se zavázanýma očima v místnosti a hledáte dveře ven. Výchozí brána říká, že dveře ven jsou např. po pravici. To znamená, že výchozí brána určuje, kudy ven ze současné místnosti. Pokud budete v té místnosti hledat dveře a někdo vám řekne kde jsou hlavní domovní dveře, je to samozřejmě k ničemu.

    Máme paket, který vznikl na pepově PC a jako cíl má IP 87.56.4.21 (nějaká vymyšlená IP v internetu). Nebohý paket neví kam má jít, protože kolem něho je síť 10.0.2.0/27. Použije tedy výchozí bránu a přeskočí na router-2, který je právě tou výchozí branou. Router tedy dostane paket, jehož cíl je opět 87.56.4.21. Router se podívá do své routovací tabulky. Jelikož IP 87.56.4.21 není žádný z jeho lokálních subnetů, router ten paket pošle opět na výchozí bránu, takže paket se dostane na router-1. Tam se situace opakuje, router vpodstatě neví kam s ním, proto ten paket pošle na výchozí bránu, což je další router, tentokrát už v síťi providera. V internetu routování funguje, takže paket dorazí kam má, vygeneruje se odpověď a paket putuje zpátky. Kabelem od providera paket přiteče do routeru-1. NAT změní jeho cílovou IP na 10.0.2.12. A co teď s ním.

    PRAVIDLO 2: Routování je vlastně postupné hopsání po routerech až k cíli.

    Pokud by jsme žádné další routovací pravidla nepřidávali, routery by ten paket poslal zpět na výchozí bránu (protože IP 10.0.2.12 nepasuje do žádného z routovacích pravidel mimo výchozí bránu). Provider by ho poslal zase k nám a takhle by tam chvíli hrál pink-ponk, než vyprší TTL. Pokud routování zkoušíme pingem, tak Linux bude psát "Time To Live exceeded" a wokýnka píšou "Hodnota TTL vypršela při přechodu".

    Na router-1 musíme přidat routovací pravidlo, aby ten router věděl, kudy vede cesta k subnetu 10.0.2.0/27.

    PRAVIDLO 3: Obecný zápis routovacího pravidla: subnet/maska -> brána, nebo také "chcete kam" -> "jděte tudy". Kombinace subnet/maska je vždy adresa sítě (nikoli počítače) a brána je naopak vždy adresa konkrétního routeru.

    Při představě toho domečku s místnostmi (aneb film Kostka) to vypadá takhle. Stojíte hned za hlavními dveřmi. Vidíte dvoje dveře - modré a červené, ale vy se chcete dostat do místnosti se zelenými dveřmi. Routovací pravidlo zní "zelená -> červená". Takže projdete červenými dveřmi a před vámi budou zase dvoje dveře - hnědé a fialové. Routovací pravidlo v této místnosti zní "zelená -> hnědá". Takže projdete hnědými dveřmi a najednou je před vámi zelená místnost, takže jsme došli kam potřebujeme.

    Toto byl příklad postupu přes 2 routery. Všimněte si, že cíl cesty je vždy stejný (např. jedeme do prahy) ale pokaždé se liší brána (nejprve vlevo, potom vpravo, pak rovně,...)

    Teď to vezmeme z pohledu IP paketu. Na router-1 musíme přidat následující 2 routovací pravidla:
    10.0.3.0/28 -> 10.0.4.2
    10.0.2.0/27 -> 10.0.4.2
    
    Ty pravidla říkají, kudy vede cesta k subnetům 10.0.2.0/27 a 10.0.3.0/28.

    Takže paket s cílem 10.0.2.12 přitekl do routeru a první co udělá je to, že začne postupně zvrchu procházet routovací tabulku. To jsou vlastně ty 2 pravidla co jsme přidali. Další pravidla v routovací tabulce vytvoří systém automaticky. Na konci routovací tabulky je ještě výchozí brána. Každý paket prochází tabulku zvrchu dokavad nenarazí na pravidlo kterým projde. Výchozí brána má na routeru-1 zápis "0.0.0.0/0 -> 26.87.34.1". Cíl "0.0.0.0/0" znamená doslova cokoliv, takovému pravidlu vyhoví jakákoliv IP adresa. Routovací tabulka je řazená podle masky subnetu. Na začátku jsou nejmenší subnety (velké číslo masky, např. /30 nebo /27) a dole nejvetší subnety (malé číslo masky, např /8 nebo /0). Začneme tedy procházet tabulku zvrchu. Pasuje IP 10.0.2.12 do subnetu 10.0.3.0/28? Nepasuje a proto se přistoupí k dalšímu řádku. Pasuje IP 10.0.2.12 do subnetu 10.0.2.0/27? Ano pasuje a proto router tento paket odešle na počítač s IP 10.0.4.2. Paket tedy doputuje na další router-2. A zase to samé. Cílová IP paketu je pořád 10.0.2.12 a zase se začne procházet routovací tabulka. Zde je však jeden rozdíl. Cílová síť 10.0.2.0/27 je připojená k routeru-2. Pro tento router je to tzv lokální subnet.

    LOKÁLNÍ SUBNET: subnety (sítě) připojené přímo k routeru na kterém je paket, o který teď jde, o kterém je řeč atd.

    VZDÁLENÝ SUBNET: takový subnet je připojený k nějakému jinému routeru. Buď přímo za sousedním routerem, nebo i za dvěma, třema routery, to je jedno. Router sám o sobě neví nic o existenci vzdálených subentů, musíme mu o nich říct - právě prostřednictvím routovacích pravidel do routovací tabulky.

    Operační systém sám naplní routovací tabulku záznamy o lokálních subnetech. Zápis těchto pravidel je trochu odlišný: "subnet -> rozhraní". Vpodstatě to znamená, že routovací pravidlo nemá určenou bránu, ale je definováno kterým síťovým rozhraním pakety vyleze ven.

    Takže paket s cílovou IP 10.0.2.12 dorazil na router-2 a zase prochází routovací tabulku až narazí na řádek "10.0.2.0/27 -> eth1". Paket tedy vyleze síťovkou eth1 ven. Tady se do toho ještě přimotá arp tabulka, ale to je jiná věc a funguje zcela automaticky bez jakéhokoliv zásahu administrátora. Switche po cestě už zařídí doručení paketu na cílový počítač s IP 10.0.2.12.

    Ukázka z routovací tabulky:
    $route (starší příkaz, ale přehlednější)
    10.193.120.72   10.193.124.130  255.255.255.248 UG    900    0        0 eth0 <-- přidané routovací pravidlo
    10.193.120.128  *               255.255.255.240 U     0      0        0 eth0 <-- záznam o lokálním subnetu na eth0
    
    $ip route show (ip r s - novější příkaz)
    10.193.64.64/27 via 10.193.64.162 dev eth4 <-- přidané routovací pravidlo
    10.193.64.32/27 dev eth3  proto kernel  scope link  src 10.193.64.33 <-- záznam o lokálním subnetu na eth3
    
    Takže resumé: Každý počítač i router musí mít nastavenou výchozí bránu. Brána je vždy router v lokálním subnetu kudy vede nejbližší cesta k internetu. Prostě skákáním přes výchozí brány se dostaneme do internetu. Samotné nastavení výchozích bran nám zajistí aby se paket z jakéhokoliv počítače dostal směrem ven, k hlavním vchodovým dveří. Je to podobné jako zelené tabulky "EXIT --->" v domech - značí nejbližší cestu ven.

    Naopak opačnou cestu od hlavních dveří do konkrétní kanceláře (subnetu) musíme přesně definovat. Vždy je to hop za hopem. Cíl cesty je vždy stejný a mění se brána, neboli adresa dalšího routeru.

    Routování není těžké na pochopení, velmi dobré je představit si že jsme paket, určit si nějaký cíl a na routerech koukat na routovací tabulky, zda je tam potřebnmý záznam, pomocí kterého dojdeme kam potřebujeme.

    --------------------

    Praxe:

    Na linuxu se statické routování zapisuje dvěma způsoby. Starší, již nedoporučovaný, ale přesto stále používaný je příkaz route. Používejte radši příkaz ip.
    router-1:
    route add default gw 26.87.34.1
    route add -net 10.0.3.0 netmask 255.255.255.240 gw 10.0.4.2
    route add -net 10.0.2.0 netmask 255.255.255.224 gw 10.0.4.2
    
    router-2:
    route add default gw 10.0.4.1
    
    Novější příkaz ip:
    
    router-1:
    ip route add default via 26.87.34.1
    ip route add 10.0.3.0/28 via 10.0.4.2
    ip route add 10.0.2.0/27 via 10.0.4.2
    
    router-2:
    ip route add default via 10.0.4.1
    
    --------------------

    Kombinace statického a dynamického routování:

    Pokud používáte na síti dynamické routování (typicky OSPF z balíku Quagga), tak v žádném případě nepřidávejte statické routy výše uvedenými příkazy. Ono by to sice fungovalo, ale udělali by jste si v tom pěkný zmatek. Statické routy lze zapsat do konfiguračního souboru zebra.conf. Spuštění démonu zebra zajistí použití zapsaných pravidel. Toto se používá pro naroutování subnetů za routery, na kterých neběží Quagga - typicky domácí wifi routery (bez NATu samozřejmě) u uživatelů sítě. Syntaxe je jednoduchá: "ip route cíl/maska brána" - příklady nerespektují výše uvedené rozdělení IP adres:
    !routa k frantovi domu
    ip route 10.0.1.0/27 10.2.9.4
    !výchozí brána
    ip route 0.0.0.0/0 212.87.52.1
    
    Pokud na jednom routeru rozjedete quaggu a všechno routování provedete tímto statickým způsobem, tak to sice bude fungovat, ale s dynamickým routováním to nemá nic společného.

    Dokument vytvořil: Zdeněk Štěpánek, 13.4.2008 22:35 | Poslední úprava: Smajchl, 2.6.2008 17:29 | Další přispěvatelé: Zdeněk Štěpánek, krazy | Historie změn | Zobrazeno: 25076×

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.