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 04:00 | Bezpečnostní upozornění

    Byly publikovány informace (technické detaily) o bezpečnostním problému Snapu. Jedná se o CVE-2026-3888. Neprivilegovaný lokální uživatel může s využitím snap-confine a systemd-tmpfiles získat práva roota.

    Ladislav Hagara | Komentářů: 4
    dnes 03:33 | Zajímavý software

    Nightingale je open-source karaoke aplikace, která z jakékoliv písničky lokálního alba (včetně videí) dokáže oddělit vokály, získat text a vše přehrát se synchronizací na úrovni jednotlivých slov a hodnocením intonace. Pro separaci vokálů využívá UVR Karaoke model s Demucs od Mety, texty písní stahuje z lrclib.net (LRCLIB), případně extrahuje pomocí whisperX, který rovněž využívá k načasování slov. V případě audiosouborů aplikace na

    … více »
    NUKE GAZA! 🎆 | Komentářů: 1
    včera 18:22 | Nová verze

    Po půl roce vývoje od vydání verze 49 bylo vydáno GNOME 50 s kódovým názvem Tokyo (Mastodon). Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.

    Ladislav Hagara | Komentářů: 12
    včera 17:22 | Nová verze

    Článek na stránkách Fedora Magazinu informuje o vydání Fedora Asahi Remixu 43, tj. linuxové distribuce pro Apple Silicon vycházející z Fedora Linuxu 43.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | Pozvánky

    Byl zveřejněn program konference Installfest 2026. Konference proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13. Vstup zdarma.

    Ladislav Hagara | Komentářů: 3
    včera 03:55 | Nová verze

    Byla vydána Java 26 / JDK 26. Nových vlastností (JEP - JDK Enhancement Proposal) je 10. Odstraněno bylo Applet API.

    Ladislav Hagara | Komentářů: 10
    17.3. 23:55 | Nová verze

    Byla vydána nová verze 260 správce systému a služeb systemd (Wikipedie, GitHub). Odstraněna byla podpora skriptů System V. Aktualizovány byly závislosti. Minimální verze Linuxu z 5.4 na 5.10, OpenSSL z 1.1.0 na 3.0.0, Pythonu z 3.7.0 na 3.9.0…

    Ladislav Hagara | Komentářů: 24
    17.3. 18:11 | Nová verze

    Byla vydána nová verze 5.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v poznámkách k vydání. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 0
    17.3. 04:55 | Nová verze

    Bylo oznámeno vydání nové verze 8.1 "Hoare" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Doprovodný příspěvek na blogu Khronosu rozebírá kódování a dekódování videa pomocí Vulkan Compute Shaders v FFmpeg.

    Ladislav Hagara | Komentářů: 12
    17.3. 04:33 | Zajímavý projekt

    Byl představen open-source a open-hardware prototyp nízkonákladového raketometu kategorie MANPADS, který byl sestaven z běžně dostupné elektroniky a komponent vytištěných na 3D tiskárně. Raketa využívá skládací stabilizační křidélka a canardovou stabilizaci aktivně řízenou palubním letovým počítačem ESP32, vybaveným inerciální měřicí jednotkou MPU6050 (gyroskop a akcelerometr). Přenosné odpalovací zařízení obsahuje GPS,

    … více »
    NUKE GAZA! 🎆 | Komentářů: 49
    Které desktopové prostředí na Linuxu používáte?
     (16%)
     (7%)
     (1%)
     (11%)
     (29%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1110 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Jak na sdílení pásma aka (traffic) shaping

    Sdílením pásma (dale jen shaping) se rozumí přidělení určité maximální rychlosti některým datovým tokům tekoucím přes router. Sepsal bych několik heslovitých poznámek, ostatní se dá dobře najít v dokumentaci (především v LARTC):

    * Vlastní shaping se provádí pomocí tzv. Queueing Discipline, zkráceně qdisc. Tyto se definují pomocí příkazu tc (zkratka od traffic control). Tyto qdiscy se nastavují pro každou síťovou kartu zvlášť, na každé síťové kartě jich může být hodně a různě uspořádaných.

    * Příkaz tc má poměrně složitou syntaxi a pro začátečníka není moc vhodný (nekamenovat, můj názor). Proto je dobré používát různé skripty, které shaping nastaví podle zadaného konfig. souboru (např. cbq.init, htb.init)

    * Pozornosti doporučuju qdisc HTB (Hierarchical Token Bucket) a SFQ (Stochastic Fair Queuing). Zatímco první slouží k (hierarchickému) rozdělení pásma mezi datové taky, druhý slouží k rovnoměrnému a spravedlivému rozdělení toku mezi několik spojení. Např: pomocí HTB se rozdělí pásmo mezi uživatele A,B a C a pomocí SFQ se každému uživateli zajistí spravedlivé rozdělení jeho pásma mezi všechny jeho spojení

    * HTB uspořádává třídy do stromu, v kořeni je celé síťové rozhraní, dál je to na vás. Jednotlivé sourozenecké uzly si navíc mezi sebou mohou půjčovat nevyužité pásmo. Na každém listu je pak potřeba pověsit nějaký qdisc, který zajistí rozdělení pásma přiděleného od HTB dané třídě mezi spojení, které ve třídě jsou. Většinou to bývá SFQ, případně FIFO.

    * Všechno popsané v minulém odkazu za vás nastaví htb.init, stačí mu jen předhodit několik konfiguračních souborů.

    * Pokud se na daném rozhraní provádí i NAT, je potřeba si uvědomit, že packety prochází shapingem až po provedení NATu, takže přicházíme o interni zdrojovou adresu u odeslaných packetů a nemůžeme tedy podle ní přímo rozlišovat provoz. Provoz je dobré rozlišovat pomocí FWMARK, které si ve firewallu pomocí iptables -j MARK můžeme nastavit jak chceme (a případně je můžeme využít i třeba pro statistiky přenosu)

    * Shaping se z principu dá provádět pouze na odchozím interface (na příchozím rozhraní se musí data přijímat takovou rychlostí, jakou je vysílající strana posílá). Toto je poměrně často nemožné (provider vám většinou provoz shapeovat nebude a i kdyby chtěl, tak pokud používáte NAT, tak z principu provider nemůže mít k dispozici dostatek informací). Většina používaných protokolů má naštěstí nějakou detekci rychlosti, takže je možné pomocí shapeování na odchozím interface do LOKÁLNÍ sítě nepřímo rychlost posílání omezovat. Při dodržení některých pravidel to funguje i docela spolehlivě. Především není možné moc dobře používat půjčování nevyužitého pásma, protože může dojít k situaci, kdy u providera packety z jedné třídy hlavičkami umlátí packety z druhé třídy. Příklad: Máme dvě lokální třídy A (max 1Mbit/s) a B (max 1Mbit/s). Celkem máme linku 1,5Mbit/s. Obě třídy chtějí využít maximální rychlosti, takže u providera "čeká" na doručení 2Mbit/s packetů. Protože linka má jen 1,5Mbit/s musí se proto router u providera rozhodovat, které packety pošle. Pokud není poměr packetů z obou tříd vyrovananý (jedna má např. hodně malých packetů a druhá málo velkých), tak na náš router přijde například 0,9MBit/s z jedné třídy a 0,6Mbit/s z druhé třídy. Router si ověšem myslí, že druhá třída nevyužívá plně svoje pásmo a proto "volné" pásmo přidělí první třídě. Takže místo aby se obě třídy spravedlivě rozdělily 0,7 vs 0,7, tak budou hodnoty různě oscilovat. Dále samozřejmě není možné shapeovat provoz určený pro router.

    * Je dobré udělat speciální třídu pro malé packety (iptables -m length), cca do 80-100B a ty pouštět prioritně. Zrychlí se tak odezva SSH, pošty a spol. Je to velice vhodné i pro síťové hry. Také se tak upřednostní potvrzovací packety, takže se vyřeší známý problém DC++, kdy velké packety odchozích spojení (cca 1500B) vůbec nepustily k lince malé potvrzující packety pro příchozí data a download tak klesl třeba na 20%.

    * Není jednoduché shapeovat služby jako DC++ a spol., protože používají různá čísla portů. Nejúčinější řešení je použít moduly pro iptables, které tyto spojení poznají (většinou ale jen úvodní packet) a rozšíření Connection Marking (řeší problém poznávání, které packety patří do spojení, které jsme podle úvodního packetu označili jako např. DC).

    * Do modemu se většinou doporučuje posílát o pár procent menší datový tok, než kolik máme od providera. Efektivně se tak z činnosti vyřadí buffer modemu, který je poměrně hloupý, a náš router získá lepší kontrolu nad řízením toku linky.

    * Papír a tužka nejsou nepřátelé a pěkný diagrámek často pomůže rozmyslet situaci a/nebo vyřešit problém.

    Související dokumenty

    HTB Home (externí dokument)
    htb.init (externí dokument)
    LARTC - Linux Advanced Routing and Traffic Control Howto (externí dokument)
    IPP2P - poznávání peer-to-peer spojení (externí dokument)

    Dokument vytvořil: Radek Hladik, 9.12.2005 23:23 | Poslední úprava: Käyttäjä 11133, 24.4.2007 21:23 | Historie změn | Zobrazeno: 2456×

    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.