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í
×
    dnes 18:33 | IT novinky

    Google představil telefon Pixel 10a. S funkci Satelitní SOS, která vás spojí se záchrannými složkami i v místech bez signálu Wi-Fi nebo mobilní sítě. Cena telefonu je od 13 290 Kč.

    Ladislav Hagara | Komentářů: 0
    dnes 16:22 | Komunita

    Byl publikován přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Fedora 43 Asahi Remix s KDE Plasma už funguje na M3. Zatím ale bez GPU akcelerace. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.

    Ladislav Hagara | Komentářů: 0
    dnes 14:00 | IT novinky

    Red Hat představil nový nástroj Digital Sovereignty Readiness Assessment (GitHub), který organizacím umožní vyhodnotit jejich aktuální schopnosti v oblasti digitální suverenity a nastavit strategii pro nezávislé a bezpečné řízení IT prostředí.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Zajímavý software

    BarraCUDA je neoficiální open-source CUDA kompilátor, ale pro grafické karty AMD (CUDA je proprietární technologie společnosti NVIDIA). BarraCUDA dokáže přeložit zdrojové *.cu soubory (prakticky C/C++) přímo do strojového kódu mikroarchitektury GFX11 a vytvořit tak ELF *.hsaco binární soubory, spustitelné na grafické kartě AMD. Zdrojový kód (převážně C99) je k dispozici na GitHubu, pod licencí Apache-2.0.

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 17:00 | IT novinky

    Podvodné reklamy na sociálních internetových platformách, jako je Facebook, Instagram nebo X, vytvořily loni v Česku jejich provozovatelům příjmy 139 milionů eur, tedy zhruba 3,4 miliardy korun. Proti roku 2022 je to nárůst o 51 procent. Vyplývá to z analýzy Juniper Research pro společnost Revolut. Podle výzkumu je v Česku zhruba jedna ze sedmi zobrazených reklam podvodná. Je to o 14,5 procenta více, než je evropský průměr, kde je podvodná každá desátá reklama.

    Ladislav Hagara | Komentářů: 3
    včera 15:44 | Nová verze

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.6 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    včera 03:22 | Nová verze

    Czkawka a Krokiet, grafické aplikace pro hledání duplicitních a zbytečných souborů, byly vydány ve verzi 11.0. Podrobný přehled novinek v příspěvku na Medium. Od verze 7.0 je vedle frontendu Czkawka postaveného nad frameworkem GTK 4 vyvíjen nový frontend Krokiet postavený nad frameworkem Slint. Frontend Czkawka je už pouze v udržovacím módu. Novinky jsou implementovány ve frontendu Krokiet.

    Ladislav Hagara | Komentářů: 25
    včera 02:00 | Zajímavý článek

    Jiří Eischmann na svém blogu publikoval článek Úvod do MeshCore: "Doteď mě radioamatérské vysílání úplně míjelo. Když jsem se ale dozvěděl, že existují komunity, které svépomocí budují bezdrátové sítě, které jsou nezávislé na Internetu a do značné míry taky elektrické síti a přes které můžete komunikovat s lidmi i na druhé straně republiky, zaujalo mě to. Když o tom přede mnou pořád básnili kolegové v práci, rozhodl jsem se, že to zkusím taky.

    … více »
    Ladislav Hagara | Komentářů: 4
    16.2. 22:55 | Nová verze

    Byla vydána verze 0.5.20 open source správce počítačových her na Linuxu Lutris (Wikipedie). Přehled novinek v oznámení na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    16.2. 12:44 | IT novinky

    Peter Steinberger, autor open source AI asistenta OpenClaw, nastupuje do OpenAI. OpenClaw bude převeden pod nadaci a zůstane otevřený a nezávislý.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (11%)
     (27%)
     (3%)
     (4%)
     (2%)
     (12%)
     (27%)
    Celkem 898 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    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: 25087×

    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.