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 13:11 | Pozvánky

Spolek OpenAlt zve příznivce otevřeného přístupu na 142. brněnský sraz, který proběhne v pátek 21. července od 18:00 hodin ve Sport Centru Srbská (Srbská 4). Od 19:00 je pro zájemce zamluveno hřiště na plážový volejbal.

Ladislav Hagara | Komentářů: 0
dnes 12:34 | Bezpečnostní upozornění

V GNOME Soubory, původně Nautilus, konkrétně v generování náhledů exe, msi, dll a lnk souborů byla nalezena a opravena bezpečnostní chyba CVE-2017-11421 s názvem Bad Taste. Při otevření složky obsahující tyto soubory může být spuštěn VBScript obsažen v názvech těchto souborů.

Ladislav Hagara | Komentářů: 1
dnes 11:00 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno bylo celkově 308 bezpečnostních chyb. V Oracle Java SE je například opraveno 32 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 28 z nich. V Oracle MySQL je opraveno 30 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 9 z nich.

Ladislav Hagara | Komentářů: 0
dnes 01:00 | Komunita

Mark Krenz, známý svým twitterovým účtem @climagic (Command Line Magic), kde ukazuje, co vše a jak lze dělat v příkazovém řádku, přednášel včera v Praze. Záznam přednášky je k dispozici na YouTube.

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

Microsoft vydal Skype pro Linux ve verzi 5.4 Beta. Nejnovější Skype pro Linux je postaven na frameworku Electron 1.7.4 a přináší skupinové videohovory.

Ladislav Hagara | Komentářů: 11
včera 06:00 | Nová verze

Werner Koch, zakladatel a hlavní vývojář GnuPG, oznámil vydání verze 1.8.0 svobodné kryptografické knihovny Libgcrypt. Jedná se o první stabilní verzi nové řady 1.8. Ta je API i ABI kompatibilní s řadou 1.7. Z novinek vývojáři zdůrazňují podporu kryptografických hašovacích funkcí Blake2 (Wikpedie), šifrovací mód XTS nebo zvýšení výkonu na architektuře ARM.

Ladislav Hagara | Komentářů: 0
18.7. 15:55 | Zajímavý projekt

Stefan Vorkoetter představil na svých stránkách DIY tablet s Raspberry Pi 3 Model B. Z Raspberry Pi odstranil USB porty, ethernetový port i GPIO konektor. Použil oficiální sedmipalcový dotykový displej s rozlišením 800x480 pixelů. Hmotnost tabletu je 484  g.

Ladislav Hagara | Komentářů: 6
18.7. 06:00 | Zajímavý projekt

Podpořit vývoj otevřených technologií pro rozpoznávaní řeči lze na stránkách Common Voice. Jedná se o projekt Mozilly, jehož prvním cílem je nahrání a následné zveřejnění pod open source licencí 10 000 hodin záznamů řeči. Pomoci může kdokoli. Stačí na stránkách projektu do mikrofonu přečíst napsaný text nebo si nechat přehrávat již nahrané záznamy a určovat, zda napsaným textům odpovídají. Podrobnosti v často kladených otázkách (FAQ).

Ladislav Hagara | Komentářů: 4
18.7. 05:00 | IT novinky

Do pátku probíhá v Praze IETF 99, tj. 99. setkání organizace Internet Engineering Task Force (IETF) odpovědné za tvorbu internetových standardů RFC (Request for Comments). Vybrané přednášky a jednání lze sledovat online. Záznamy jsou k dispozici na YouTube. Těsně před setkáním bylo vydáno RFC 8200 nahrazující RFC 2460 a po více než 18 letech standardizující IPv6 (STD 86).

Ladislav Hagara | Komentářů: 0
18.7. 00:33 | Nová verze

Byl spuštěn další Humble Book Bundle. Tentokrát jsou v nabídce elektronické knihy věnované kybernetické bezpečnosti od vydavatelství Wiley. Všech 14 knih lze koupit za 15 dolarů.

Ladislav Hagara | Komentářů: 0
Chystáte se pořídit CPU AMD Ryzen?
 (7%)
 (31%)
 (1%)
 (10%)
 (43%)
 (8%)
Celkem 1023 hlasů
 Komentářů: 65, poslední 1.6. 19:16
    Rozcestník

    Traffic shaping - 2 (IMQ a úvod do shapingu)

    20. 9. 2006 | Max Devaine | Sítě | 22985×

    Imq je dlouho diskutovaná věcička. Někdo tvrdí, že není třeba, jiný zase oponuje. Jak to s ním vůbec je, co dělá a kdy je vhodné ho použít? Pokud si kladete tyto otázky, tak vám snad s nimi tento článek pomůže. Přednostně se ovšem podíváme na pravidla shapování.

    Co přesněji máme dnes v plánu?

    Vysvětlení principu shapingu

    link

    Cílem shapování je nějaká úprava trafficu. Většinou se snažíme ladit jak příchozí (download), tak i odchozí (upload) traffic. Každý myslí na ladění příchozího trafficu a na odchozí se občas zapomene. Proč by se měl člověk zabývat nějakým odchozím provozem, když chce jen dobře stahovat. Ne každý si uvědomuje, že i odchozí provoz má celkem velký vliv na kvalitu celého pásma.

    Shapování příchozího provozu se provádí na rozhraní, které směřuje do vnitřní (lokální) sítě (LAN). Upload se ladí na rozhraní, které směřuje do internetu nebo do nějaké jiné vnější sítě (WAN). Vždy prostě nastavíme pravidla s filtry na to rozhraní, které posílá později shapovaná data.

    traffic shaping 2 schema

    Tak, teď asi dost lidí napadají otázky typu: no jo, ale co když nemá router dvě síťová rozhraní, ale jen jedno, které vede přímo do internetu? Nebo naopak rozhraní přebývají. Kam se potom nastaví pravidla pro příslušný shaping?

    traffic shaping 2 schema traffic shaping 2 schema

    Není mnoho možností, jak tyto situace řešit, jedno si však ukážeme.

    IMQ

    link

    Jak už padlo v předchozím článku, imq je virtuální síťové rozhraní, kam se přesměruje síťový provoz, který chceme shapovat. Děláme tak z několika důvodů. Hlavním je třeba chybějící rozhraní, na kterém bychom prováděli shapování. Dalším je potom přebývající rozhraní. V neposlední řadě umožňuje lehký shaping s NATem. Nevýhodou imq je to, že provádí nečisté věcičky, a proto ho asi nikdy nenajdeme oficiálně v kernelu - a musíme patchovat. Také jeho stabilita bývala někdy sporná. Mně osobně mi jednou vytuhl PC. To ovšem nebylo za klasického provozu, ale laboroval jsem s imq, co to dá. Pokud si nějaké nastavení odzkoušíte, a nebudete provádět testy při ostrém provozu, tak pochybuji, že vám imq způsobí potíže.

    IMQ: nastavení modulu a kernelu

    link

    Základem je mít opatchované jádro a iptables, což můžeme zhotovit podle minulého článku. Jako výchozí bývá v jádře nastaven počet rozhraní na dvě, takže když provedete načtení modulu bez parametrů

    modprobe imq

    tak se nám vytvoří dvě imq zařízení (imq0 a imq1)

    ip link
    ...
      11: imq0: <NOARP> mtu 1500 qdisc noop qlen 30
         link/void
      12: imq1: <NOARP> mtu 1500 qdisc noop qlen 30
         link/void
    ...
    

    Počet virtuálních imq zařízení můžeme také ovlivnit parametrem při připojování modulu (pro vytvoření jednoho imq zařízení):

    modprobe imq numdevs=1

    Další věcí, která bývá v jádře nastavena, je schéma zapojení imq v jednotlivých tabulkách před NATem či za ním. Tuto důležitou skutečnost jsem v předchozím článku nezmínil, tak jí teď zařadím.

    Imq může být nastaveno takto (zakřížkovaná položka je výchozí nastavení):

    Device Drivers -->
       Network device support  --->
          <M> IMQ (intermediate queueing device) support
              IMQ behavior (PRE/POSTROUTING) (IMQ BA) --->
    		( ) IMQ AA
    		( ) IMQ AB
    		(X) IMQ BA
    		( ) IMQ BB
             (2)   Number of IMQ devices 
    

    Význam jednotlivých zkratek :

    První písmeno značí nastavení v tabulce PREROUTING a druhé v POSTROUTING:

    A = after (po) => imq projde paket až po natu
    B = before (před) => imq projde paket před natem

    Pro změnu schématu stačí jen přenastavit .config a překompilovat modul imq:

    make menuconfig
    make
    make modules_install
    rmmod imq
    modprobe imq

    Typ schématu potom můžeme vidět ve výpisu dmesg hned po připojení modulu imq.

    Než si zvolíme schéma sobě blízké, musíme nejprve vědět, jak paket vůbec cestuje netfilterem.

    Cesta paketu

    link

    Vše by mělo znázorňovat následující schéma. Jen upozorním, že toto zdaleka není kompletní schéma, ale pro naše potřeby postačí.

    traffic shaping 2 schema

    Paket postupně prochází přes PREROUTING. Zde a nikde jinde probíhá změna adresy na adresu příjemce (DNAT). Pak dorazí na rozhodovák. Pokud má paket IP routeru, tak vleze přes chain INPUT k lokálním procesům na serveru. Odtud dále přes chain OUTPUT, který lze použít k DNATování paketů vzniklých pouze na lokálním počítači. Pokud paket nenáleží routeru, tak jde přes chain FORWARD. Všechny pakety potom odcházejí přes POSTROUTING, kde mohou být SNATovány (změní se zdrojová IP adresa za cílovou => IP adresy, na které je aplikován SNAT, budou mít IP adresu stejnou jako má router). Toto schéma se aplikuje na každé rozhraní.

    Velice jednoduchý obrázek níže by snad mohl pomoci k porozumění. PREROUTING je první věc, kterou paket potká, když vyleze z rozhraní. POSTROUTING je poslední věc, kterou paket proleze. Zelené kolečko značí vstup do "magické iptables tabulky (router)" a červené zase výstup. (Velice jednoduše a nepřesně řečeno, snad mi znalí uživatelé odpustí.) Když jsem přemítal, na co aplikovat filtry pro download apod., tak mi tento obrázek velice pomohl.

    traffic shaping 2 schema

    Tak, teď jistě chápete, proč je zvolený typ schématu velice důležitý.

    Pokud tedy používáte SNAT/maškarádu, tak by bylo asi nejlepší, kdybyste si zvolili typ AB. Paket přiletí do PREROUTINGu, tam NAT převede IP na zdrojovou a potom se aplikuje imq - takže potom ve filtru pracujeme se zdrojovými adresami a jsme za vodou. Když chceme aplikovat shapovací skript na upload, tak imq umístíme do POSTROUTINGu před (before) NAT.

    Když používáme klasický SNAT/maškarádu, tak nemusíme aplikovat imq na PREROUTING s tím, že shapovací skript hodíme přímo na rozhraní do LANu. To má ovšem jeden malinkatý háček/výhodu/nevýhodu. Takový skript nám neumožní shapovat lokální traffic na routeru, protože se filtr aplikuje až někde u POSTROUTINGu na rozhraní do LAN a tudy lokální provoz na serveru neprotéká.

    Finální řešení pomocí imq

    link

    Tak, dost teorie a jdeme konečně něco nahodit. Nejprve se podíváme k problému s chybějícími rozhraními. Do vytvořeného virtuálního imq0 přesměrujeme traffic, který proudí z internetu k nám (eth0 = WAN; eth1 = LAN).

    iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 0

    Kde číslo za --todev značí očíslované imq, v našem případě imq0.

    Teď, když máme přesměrovaný provoz z internetu přes naše imq, tak můžeme celé virtuální imq rozhraní nahodit:

    ip link set imq0 up

    Když si pak spustíte např. nějaké stahování z internetu, tak byste měli vidět, jak přes imq0 cestují pakety. To zjistíte např. příkazem:

    ifconfig
    ....
    Zapouzdření:NEZNÁM HWadr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
    AKTIVOVÁNO BĚŽÍ NEARP MTU:1500 Metrika:1
    RX packets:879774 errors:0 dropped:0 overruns:0 frame:0
    TX packets:879338 errors:0 dropped:0 overruns:0 carrier:0
    kolizí:0 délka odchozí fronty:30
    RX bytes:369590578 (352.4 MiB) TX bytes:369321146 (352.2 MiB)
    ...

    Pozor - když se na něj zkusíte podívat s tcpdumpem pomocí:

    tcpdump -i imq0

    tak nic neukáže.

    Celé naše snažení by pak mělo vypadat nějak takto :

    traffic shaping 2 schema

    Druhý příklad je o dva řádky delší (eth0 = WAN; eth1, eth2, eth3 = LAN):

    iptables -t mangle -A POSTROUTING -o eth1 -j IMQ --todev 0
    iptables -t mangle -A POSTROUTING -o eth2 -j IMQ --todev 0
    iptables -t mangle -A POSTROUTING -o eth3 -j IMQ --todev 0
    ip link set imq0 up

    Tímto jsme vlastně přesměrovali veškerý odchozí provoz do LANu přes imq. Shapování downloadu by teď měla být hračka.

    traffic shaping 2 schema

    Vnímavější by možná napadlo hodit na LAN 1, 2 a 3 bridge br0. Tím by se vytvořilo jedno virtuální zařízení, které by dokonce umožňovalo, aby byly všechny podsítě ve stejném rozsahu. Je to velice dobrý nápad, avšak má jednu drobnou chybku. Na br0 se nedá provádět shapování, protože iptables na něj neplatí (i když někdo tvrdí, že mu to iptables dokáže) a je k dispozici pro konfiguraci balíček ebtables. Takže pokud má někdo nakonfigurovaný bridge, tak bude stejně asi muset sáhnout po imq.

    IMQ a oba směry

    link

    Jak vidíte, tak do imq zařízení se dá přesměrovat více než jeden provoz. IMQ zařízením nemusí být přesměrován jen jednosměrný provoz, můžete do něj přesměrovat jak odchozí, tak příchozí traffic:

    iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 0
    iptables -t mangle -A POSTROUTING -o eth0 -j IMQ --todev 0
    ip link set imq0 up

    Nyní můžeme na jednom imq zařízení shapovat jak download, tak upload.

    traffic shaping 2 schema

    Rekapitulace

    link

    Co nám ten dnešek nakonec dal?:

    • Víme, že imq umí nahrazovat chybějící rozhraní, umí spojovat více rozhraní, a dokonce umožňuje shaping přímo se zdrojovými IP a to i v přítomnosti NATu.
    • Měli bychom vědět, kdy a jak použít imq (každá akce navíc způsobuje ztrátu času).
    • Obecnou cestu paketu bychom měli umět přeříkat i o půlnoci s dudlíkem v puse.

    Dodatek:

    IMQ lze umístit např. i do chainu FORWARD. Na druhou stranu nelze provozovat více imq zařízení v jednom směru. Pokud tak učiníme, bude fungovat poslední vytvořené.

    Závěr

    link

    V závěru bych se chtěl omluvit za prozatímní absenci skriptů, které byly slibovány minule v závěru. Bohužel došlo minule k drobnějšímu nedorozumění, takže ničeho se nebát, skripty budou příště :-). Stále mám takový pocit, že jsem někde udělal nějakou chybu, ale to vy určitě v diskusi opravíte.

    Nejčtenější články posledního měsíce

    HW novinky: objevují se smartphony s 8 GB RAM
    Týden na ScienceMag.cz: Mezi nejvýkonnějšími superpočítači je i ten ostravský
    Jaderné noviny – 8. 6. 2017: Čekání na entropii

    Nejkomentovanější články posledního měsíce

    HW novinky: objevují se smartphony s 8 GB RAM
    Jaderné noviny – 8. 6. 2017: Čekání na entropii
    HW novinky: AMD představila 32jádrový/64×HT Epyc se 128 PCIe linkami
      všechny statistiky »

    Související články

    Traffic shaping (patchování a instalace)
    Jemný úvod do adresace v protokolu IP verze 4
    OSPF - dynamické routování
    Nastavení DNS
    Čo keď nechodí sieť?
    IPSec v kernelu 2.6
    Kešovací DNS server BIND
    Jak nabootovat Linux po síti
    Směrování v sítích IP
    NFS+NIS+LTSP - přihlašování na server
    Seriál: Domácí síť
    Seriál: Soukromá síť
    Seriál: Stavíme bezdrátovou síť
    Seriál: Linuxové DMZ
    Seriál: Nastavení poštovního subsystému v Linuxu
    Seriál: Spam: naučte se bránit

    Odkazy a zdroje

    Frequently Asked Questions About IMQ
    Firewally
    Firewally, bezpečnost
    KIV/PD (Přenos dat), Filtrování paketů
    NAT HOWTO: Jak modifikovat pakety
    Iptables Tutorial 1.1.19
    Linux Advanced Routing & Traffic Control

    Další články z této rubriky

    PowerDNS – přívětivý a jednoduchý DNS server
    Bootování ze sítě: pxelinux a kořenový adresář na NFS
    Těžký život Do Not Track
    OpenAFS – servery
    Architektura IPv6 – konfigurace adres a objevování sousedů (2)
           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    NbS avatar 20.9.2006 07:23 NbS | skóre: 26 | blog: Linux jako Linux ... vsude je neco jako /etc | Prague
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    jednim slovem Super :)
    Pan Bily byli bily strop, aby byl bily ... (Opravdu si myslite, ze je to spravne) ?
    Thunder.m avatar 20.9.2006 08:23 Thunder.m | skóre: 35 | blog: e17
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    IMQ mi snižuje stabilitu routerů dost zásadním způsobem na jádrech 2.6, jinak je to skvělá věc, ale uptime okolo 7-14 dnů je dost bída :(
    Heron avatar 20.9.2006 09:51 Heron | skóre: 51 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Zkus raději CBQ.
    20.9.2006 11:56 b42
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Muzu se zeptat jak lze pomoci cbq nahradit imq, popripade co maji vubec spolecneho?:)
    Heron avatar 20.9.2006 13:30 Heron | skóre: 51 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    CBQ je řekl bych standardní nástroj a v mnohých distribučních jádrech už je, společně třeba s HTB, QOS. Takže odpadnou problémy s patchováním jádra a především je stabilní. Jedniná "nevýhoda" oproti IMQ je složitější nastavení.
    Max avatar 20.9.2006 13:39 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Řekl bych, že CBQ bylo na světě a v jádře mnohem dřív, jak HTB. CBQ nemá nic funkčně společného s IMQ. Tvoje dvě věty mi připonýnají jedno howto, co jsem četl, akorát tam bylo místo IMQ napsáno HTB :-/ ...
    Zdar Max
    Měl jsem sen ... :(
    20.9.2006 15:07 b42
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Pro upresneni:

    CBQ je classful qdisc (queueing discipline), ktery umoznuje shapovani trafficu - ten se pomoci filtru klasifikuje do trid a cbq mu podle urciteho algoritmu prideluje sirku pasma. Mezi dalsi qdiscy patri treba htb, sfq, tbf, ...

    IMQ je specialni zarizeni, na ktere je mozno presmerovat traffic a ten je pak mozno pripojenymi qdiscy shapovat ... a to casto v situacich, ktere moc dobre standartnimi postupy nejde vyresit - napr. shapovani prichoziho trafficu ci sdileni trid classful qdiscu mezi vice rozhranimi.

    Jeste zjednoduseneji receno IMQ je bez qdiscu nanic a CBQ nema s IMQ prakticky nic spolecneho, takze bych si dovolil tvrdit ze ho nemuze nijak nahradit.

    OT: pekny clanek s peknymi obrazky:)
    Max avatar 20.9.2006 16:32 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Hehe, mě to nemusíš říkat, já to vím, viz. moje reakce :)
    Zdar Max
    PS:díky za OT :)
    Měl jsem sen ... :(
    20.9.2006 19:51 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    CBQ je skutečně starší, HTB totiž dokonce vznikl jako náhrada za CBQ, která by netrpěla jeho neduhy.
    23.9.2006 23:52 Pavel Janousek
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Neduh = slozitost, presnost, flexibilita? Devik to totiz psal (dle vlastnich slov) jako nahrada za CBQ, a z duvodu aby to bylo snazsi...:-) - ja jsem spise slysel narky, jak HTB neni dost presne pri vyssich (nad 512kbps) rychlostech... nevim, nejak jsem zamrzl v ere CBQ a nikdo si nikdy na moji implementaci nestezoval...
    21.9.2006 17:47 _
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    > Tvoje dvě věty mi připonýnají jedno howto, co jsem četl, akorát tam bylo místo IMQ napsáno HTB

    jj. vselijaky howto na qos jsou dost bida.

    mozna by stalo za to kdyby si uz konecne nekdo dal praci s tim, aby vysvetlil co je to v linuxu sitove zarizeni, jak se mu podoba imq a co je to ingress a egress qos scheduleru a ze se vaze na zarizeni.

    co v ingressu nejde a co v egressu proti ingressu a co nejde ani v ingressu ani egressu, kdyz se nepouzije imq na forwardovanych paketech.
    Max avatar 21.9.2006 22:33 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Nejni to taková bída. Myslel jsem tím, že je to jak vystřižené z jednoho howto, co jsem četl, ale tam nebylo o imq ani slechu. Prostě to bylo CBQ vs. HTB a úplně stejná věta. Prostě mi to připadalo, jako kdyby byla okopírovaná a bylo zaměněno slovíčko HTB na IMQ. Nic víc. Návodů je dost. Dokonce i v češtině, ale většinou je to tak nějak nepříliš dobře podané a hlavně né moc komplexně. Všude je to vzaný tak nějak obecně a počítá se s tím, že ty pojmy jsou známý apod.
    Zdar Max
    Měl jsem sen ... :(
    20.9.2006 18:01 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    řekl bych že jsi malinko mimo ...CBQ ani HTB nemají s IMQ nic společného.
    Heron avatar 20.9.2006 21:44 Heron | skóre: 51 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    A to jsem někde tvrdil?

    Článek hovoří o shapování, konkrétně pomocí IMQ. Já psal, že na shapovaní je lepší použít CBQ nebo HTB. Navíc je zbytečné vytvářet nějaké virt. rozhraní (což dělá IMQ), to k shapování není potřeba.
    Max avatar 20.9.2006 22:41 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Když používáš nat a nechceš / nemůžeš využívat markování packetů (které údajně v tisících velice markantně snižují výkon pc, latencí apod.), tak rozhodně není zbytečné vytvářet imq zařízení, které ti zajistí manipulaci ještě před natem ;-). Také nevím, jak by jsi efektivněji shapoval např. na více výstupních zařízeních. Myslím, že asi docela ztuha. Jsou hold případy, kdy se použití imq nevyhneme. Nelze říci, že je imq zcela zbytečné a k shapování není třeba. Jsou případy, kdy třeba je a případy, kdy třeba není. To jsem se snažil vysvětlit v článu. Tvoje rekce je celkem zavádějící a nepřesná.
    Zdar Max
    Měl jsem sen ... :(
    21.9.2006 15:33 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Po pravdě s tím markováním nevím nevím (prakticky to ověřeno sice nemám) ale projekt Prometheus (czfree) používá právě markování a ten umí opravdu tisíce klientů. Je ale fakt, že to nějak hashuje, aby to iptables rychlej stíhaly.
    Max avatar 21.9.2006 15:43 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Také to bohužel nemám v tisících ověřeno, takže opravdu nevím. Toto se říká ( nebo říkalo a je to minulostí ) :-/.
    Zdar Max
    Měl jsem sen ... :(
    Max avatar 20.9.2006 22:46 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    A to jsem někde tvrdil?

    Ano, tady :

    Jedniná "nevýhoda" oproti IMQ je složitější nastavení.

    Z čehož vyplynulo, že porovnáváš CBQ vs. IMQ. Nebo to bylo velice, velice špatně podáno, čemuž podle tvých dřívějších reakcí moc nevěřím ...
    Zdar Max
    Měl jsem sen ... :(
    20.9.2006 22:56 Michal
    Rozbalit Rozbalit vše ???
    Tak mi ukaž jinej způsob, jak oshapujes upstream s downstremem dohromady, než pomocí IMQ + [HTB|CBQ] (např když máš 1 Mbps linku a nechceš pevně definovat kolik dáš na downstream a kolik na upstream a chceš to přiřazovat podle požadavků a zachovat QoS). K tomu potřebuješ up i down dostat na jedno rozhraní a IMHO jedinej způsob je IMQ (a když ne jedinej, tak aspoň nejpoužívanější). BTW zajímalo by mě jak chceš použít IMQ pro shapovaní bez CBQ, HTB nebo ostatních queuing disciplines.
    Heron avatar 21.9.2006 06:53 Heron | skóre: 51 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: ???
    Pomocí CBQ jde docela dobře omezovat několik interfaců, jak down tak up. Veřejné IP jsou bez problémů, neveřejné je nutné nejdřív omarkovat. Opravdu v tom nevidím problém (jak bych taky mohl, když nám tohle řešení funguje no problem ;-) ).
    21.9.2006 15:24 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: ???
    Aby se ti například mezi třemi rozhraními spravedlivě půjčovala volná kapacita a to jen pomocí CBQ? Mohl bys mi to prosím ukázat? Pokud vím, tak ty zařízení o sobě vůbec nevědí.
    21.9.2006 17:52 _
    Rozbalit Rozbalit vše Re: ???
    a pointa je jaka? ze ty interface jsou vsechny zapojeny do sft bridge qdisc je poveseny na bridge a shaping je provedeny do toho rozhrani ktery neni v bridge ale do kteryho se to routuje?
    Heron avatar 22.9.2006 07:42 Heron | skóre: 51 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: ???
    Pointa je taková, že každá IP adresa (nebo mark, jedná-li se o neveřejnou IP), za příslušným rozhaním dostane přesně tu rychlost, kterou má mít.
    21.9.2006 15:20 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    A už jsi někdy shapoval ingress? Bez IMQ to jde docela blbě. Schválně to zkus bez použití IMQ nebo něčeho podobného. Jinak článek se jmenuje IMQ a úvod do shapingu. Pokud jsem dobře četl, tak nehovoří o shapování pomocí IMQ, ale o tom, jak si pomocí IMQ shaping zjednodušit, což je docela rozdíl.
    anydot avatar 21.9.2006 01:14 anydot | skóre: 7 | blog: syslog
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Napada mne jedinne: eh?
    Lidi o mě říkají, že jsem flegmatik. Ale mi je to jedno
    21.9.2006 09:57 Dan Ohnesorg | skóre: 29 | blog: Danuv patentovy blog | Rudná u Prahy
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    To se mi moc nezda, na tomhle obstaroznim jadre 2.6.12.4 udelam s imq pres ktere tece 10Mbps klidne 100 dni uptime. Nemate tam spise hostap nebo madwifi?
    I'm an Igor, thur. We don't athk quethtionth. Really? Why not? I don't know, thur. I didn't athk. TP -- Making Money
    21.9.2006 14:14 Libor Chocholaty | skóre: 12
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    $ uptime
     14:11:45 up 66 days, 21:26,  1 user,  load average: 0.46, 0.45, 0.32
    
    pouzivam IMQ pro shapovani provozu pres 4 rozhrani.
    17.12.2006 23:45 thiemel | skóre: 4 | 49°55'21.691N, 18°5'3.288E
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Ahoj, napsal jsem si vlastní patch... Je to sice psané "intuitivně", ale očividně to funguje a "soft lockup detected on cpu#0" mi už nevyskakuje... Jinak jedu na AMD X2 3800+ a po patchnutí si nemůžu stěžovat :-)
    --- imq.c.orig  2006-11-18 00:08:42.000000000 +0100
    +++ imq.c       2006-12-17 23:34:03.000000000 +0100
    @@ -201,13 +201,14 @@
                            ret = 0;
                    }
            }
    -       if (spin_is_locked(&dev->xmit_lock))
    -               netif_schedule(dev);
    -       else
    -
    -        while (!netif_queue_stopped(dev) &&
    -               qdisc_restart(dev)<0)
    -                /* NOTHING */;
    +
    +
    +if (spin_trylock(&dev->xmit_lock)) {
    +    qdisc_run(dev);
    +    spin_unlock(&dev->xmit_lock);
    +}else{
    +    netif_schedule(dev);
    +}
     
            spin_unlock_bh(&dev->queue_lock);
     
    
    Tomáš Thiemel WifiZábřeh u Hlučína e-mail:thiemel(zavináč)centrum.cz Jabber: thiemel(zavináč)jabber.cz ICQ:170438916
    Thunder.m avatar 17.12.2006 23:53 Thunder.m | skóre: 35 | blog: e17
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    A patch pro jádro 2.6.18 máte?
    Thunder.m avatar 18.12.2006 15:49 Thunder.m | skóre: 35 | blog: e17
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Díky, upravil jsem si to tak aby to chodilo na jádře 2.6.18.2, bohužel kernel-panicem to při dhclient stále trpí, ale jinak to funguje parádně, hodím odkaz na patch někam do blogu.
    20.9.2006 10:16 pasmen | skóre: 45 | blog: glob | Praha
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Moc hezky clanek.
    20.9.2006 10:42 Glin | skóre: 2
    Rozbalit Rozbalit vše IMQ Replacement

    Asi tak 4 roky zpet jsem potreboval IMQ pro spojeni dvou sitovek v routeru, na ktery jsem potreboval udelat shaping. Brzy to nejspis budu potrebovat znovu, proto jsem se koukal, jestli uz neni nejaka nahrada, protoze patchovat jadro bych jeste prezil, ale jeste dalsi 2 baliky (iproute2 a iptables), to uz je trochu moc.

    Prvni vec kterou jsem nasel, byla naprogramovana tusim clovekem s jmenem Jamal Hadi Salim, se zajimavym napadem: Doprogramoval funknost IMQ jako rozsireni vlastnosti dummy zarizeni. Bohuzel jsem uz nenasel zadnou zpravu, zda se to do kernelu dostalo ci nikoliv. Diskuze dummy

    Druou vec, kterou jsem nasel je nove zarizeni IFB (Intermediate Functional Block). O tom vim, ze uz se do kernelu dostalo.

    Nemate s IFB zkusenot? Mozna by to bylo dobre tema pro dalsi clanek. Diskuze o IFB

    Max avatar 20.9.2006 13:35 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: IMQ Replacement
    Patchovat se musí jen iptables a kernel (pokud jde pouze jen o imq). Jinak na IFB chci mrknout, docela mě jeho funkčnost zajímá ...
    Zdar Max
    Měl jsem sen ... :(
    20.9.2006 14:42 PSIkappa
    Rozbalit Rozbalit vše Re: IMQ Replacement
    Dost zaujimavy napad, i ked nie celkom riesiaci tvoj problem je pouzitie "ppp-pipe"

    Internet (eth0) <-> ppp0 ----- ppp1 <-> LAN (eth1)

    kde ppp0 a ppp1 je na lokalnej masine spravene cez fifo device, viac o tom:

    http://mailman.ds9a.nl/pipermail/lartc/2004q1/011477.html
    20.9.2006 15:13 b42
    Rozbalit Rozbalit vše Re: IMQ Replacement
    Pokud jsem to dobre pochopil tak z funkcionality IMQ umoznuje IFB pouze shapovani prichoziho trafficu. Navic si nejsem jisty jestli pres ifb prochazeji pakety pred (de)NATem, nebo po.

    Nebo se pletu? Neexperimentoval s nim nekdo? Budu vdecny za kazdou informaci, jelikoz jich po netu neni mnoho:)
    20.9.2006 19:51 Orrie
    Rozbalit Rozbalit vše Re: IMQ Replacement
    Problem s IFB je v tom, ze se hookuje pred netfilter, takze neni mozno pouzivat iptables, je nutno pouzit tc filtry. Vice info treba tady http://linux-net.osdl.org/index.php/IFB.
    20.9.2006 12:25 Trevor
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Dodatek:

    IMQ lze umístit např. i do chainu FORWARD. Na druhou stranu nelze provozovat více imq zařízení v jednom směru. Pokud tak učiníme, bude fungovat poslední vytvořené.

    Ja by som zase potreboval urobit nieco take ze z forwardu by som z jedneho smeru posielal pakety na imq 1 a z druheho smeru na imq0 napr je to mozne ?
    Max avatar 20.9.2006 13:32 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Myslím, že ano, bohužel jsem na samostatném PC a nemohu to odzkoušet, takže zkus toto :
    iptables -t mangle -A FORWARD -i eth0 -j IMQ --todev 0
    iptables -t mangle -A FORWARD -i eth1 -j IMQ --todev 1
    ip link set imq0 up
    ip link set imq1 up
    
    Zdar Max
    Měl jsem sen ... :(
    20.9.2006 18:06 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Spojování dvou směrů do jednoho IMQ zařízení jsem zkoušel na jádře 2.4 a nepochodil jsem. Ale je pravdou, že každý směr byl z jiného rozhraní.
    Max avatar 20.9.2006 22:49 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Jak se zdá, tak nefungují dvě imq v jednom směru(jsem zkoušel). A ani přesměrování do jednoho imq z dvou interfaceů, i když v různých směrech (zkoušel tady někdo na abc). Funguje snad jen přesměrování dvou opačných provozů vztahující se k jedné síťovce. :-/. Ale myslím, že se to dá přežít :-D
    Zdar Max
    Měl jsem sen ... :(
    21.9.2006 15:26 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    přežít se to dá, vyřešil jsem to jinak a zatím to nedělá problémy :-)
    21.9.2006 01:05 Radek
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Tak nevim asi jsem natvrdlej a nebo mi to nejak nemysli :(

    Jak by to mnelo bejt v pripade ze chci sloucit oba smery jak upload tak download pro vice lan rozsahu?

    Vystupni rozhrani je eth0

    A pak eth1,eth2 eth3 jsou vnitrni site.

    spravne reseni je toto:

    iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 0
    iptables -t mangle -A POSTROUTING -o eth1 -j IMQ --todev 0
    iptables -t mangle -A POSTROUTING -o eth2 -j IMQ --todev 0
    iptables -t mangle -A POSTROUTING -o eth3 -j IMQ --todev 0
    ip link set imq up

    a nebo jen toto:

    iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 0
    iptables -t mangle -A POSTROUTING -o eth0 -j IMQ --todev 0
    Max avatar 21.9.2006 12:04 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    To první nefunguje, jak už jsem psal výše v komentáři :

    Jak se zdá, tak nefungují dvě imq v jednom směru(jsem zkoušel). A ani přesměrování do jednoho imq z dvou interfaceů, i když v různých směrech (zkoušel tady někdo na abc). Funguje snad jen přesměrování dvou opačných provozů vztahující se k jedné síťovce. :-/.

    Takže tvůj první případ si odporuje s tím, co jsem řekl. Takže buď můžeš udělat to, co jsi napsal jako druhé řešení :
    iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 0
    iptables -t mangle -A POSTROUTING -o eth0 -j IMQ --todev 0
    
    Nebo použít dvě imq zařízení :
    iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 0
    iptables -t mangle -A PREROUTING -i eth1 -j IMQ --todev 0
    iptables -t mangle -A PREROUTING -i eth2 -j IMQ --todev 0
    iptables -t mangle -A PREROUTING -i eth3 -j IMQ --todev 0
    
    Tvůj první případ by ti omezil (kdyby to fungovalo) jen jeden směr. Říká, že příchozí traffic z eth0 bude posílat do imq0 a odchozí traffic do ostatních interfaceůbude posílán také do imq0. Je to prostě jeden směr. Asi jsi myslel něco, jako je můj druhý příklad. Prostě nasypat vše do PREROUTINGů
    Zdar Max
    Měl jsem sen ... :(
    Max avatar 21.9.2006 12:07 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Ach jo, samozřejmě jsem to vysvětlil dobře, ale příklad zkazil, druhý případ by měl být takto :
    iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 0
    iptables -t mangle -A PREROUTING -i eth1 -j IMQ --todev 1
    iptables -t mangle -A PREROUTING -i eth2 -j IMQ --todev 1
    iptables -t mangle -A PREROUTING -i eth3 -j IMQ --todev 1
    
    Zdar Max
    Měl jsem sen ... :(
    25.1.2007 10:44 studna
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Chodi tento priklad tak ze sa da shapovat osobitne upload a download? Ma to niekto odskusane?
    21.9.2006 12:14 Pepe
    Rozbalit Rozbalit vše Jak se shapovanim UDP?
    TCP shapuju pomoci iptables znacek, filtru a HTB, ale ikdyz se mi UDP provoz zarazuje do spravnych classu, ignoruje jejich rychlostni limity. Je mi jasne, jak funguje UDP a ze neni zas tak dobre ho omezovat, ale prece kdyz mi nekdo ve svem classu udela napr. "VPN prez UDP", pojede vesele na plny kotel, co mi da moje lajna. Tusite, kde mi sedi na reseni bug? Pep.
    21.9.2006 14:55 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Jak se shapovanim UDP?
    Prichozi nebo odchozi?

    V prvnim pripade mas smulu a lajnu neuvolnis, protoze ji zahlcuje tvuj ISP, i kdyz prijemce v lokalni siti bude mit pocit, ze to jde pomalu.

    V druhem pripade to bude fungovat.
    LFCIB avatar 21.9.2006 20:42 LFCIB | skóre: 19 | blog: LFCIB | /home/lfcib
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Díky Maxi za super článek, těším se na pokračování.

    LFCIB
    -=:L:i:N:u:X:=-<=>-=:4:e:V:e:R:=- Vyhovuje mi Debian GNU/Linux
    22.9.2006 12:32 mior
    Rozbalit Rozbalit vše A ako je to so squidom
    Ako to celé spolupracuje so squidom?
    22.9.2006 14:36 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: A ako je to so squidom
    nijak. Tohle slouží pro dělení/QoS. Podle mého názoru používat v dnešní době squid je už trošku přežitek.
    26.9.2006 07:43 mior
    Rozbalit Rozbalit vše Re: A ako je to so squidom
    Nemyslim, ze je to zbytocne... Ako by ste chceli v skole blokovat zakazane stranky? Ako urcit, kto a kedy moze na ktoru stranku, ak nie squidom? Squid nie je len cache...
    26.9.2006 15:41 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: A ako je to so squidom
    no budeš se divit, ale jsou i jiné způsoby.
    23.9.2006 23:52 Pavel Janousek
    Rozbalit Rozbalit vše IMQ is out (dead) - new technolgy comming...:-)
    Takovy clanek by mel smysl a nikoli prekladat uz po X-te Advanced Routing Howto...:-)
    Max avatar 24.9.2006 02:35 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    Hmm, na co je teď naráženo? ( Že to má být holý překlad Advanced Routing Howta? To je asi nějaký vtip, ne? ) Vaše věta totiž trošku postrádá smysl :-/ ...
    Zdar Max
    Měl jsem sen ... :(
    24.9.2006 21:29 Pavel Janousek
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    Sledujte genezi/vyvoj, aspon pak Vase nepochopeni a kritika nebude vypadat tak naivne...:-) Mluvim o koncepcni zmene s tim, ze CBQ, HTB spolu s IMQ (RedHat asi vi, proc ho nedodadava ve svem enterprise kernelu, ackoli ma spoustu jinych vychytavek, vcetne treba ipt_recent - relativne nova vec v teto oblasti) a podobnymi ostruvky bez ladu a skladu neni jiz nejaky patek treba... jenze to radsi budeme debatovat nad vecmi leta starymi s dobrou dokumentaci, tutorialy atd. (uvadene demostrace jsou stejne spise teoreticka "zakladni" cviceni... a takovych cookbooku na slusny dotaz Googleho najdeme hafo) misto toho abychom psali opravdu o novych, uzitecnych a zajimavych vecech (u kterych je dokumentace poskrovnu a o cookboocich nemuze byt vubec rec) a to nejen z pohledu "kernel trafficu", ale predevsim z pohledu praktickeho vyuziti neceho, co uz je v produkcni fazi od jadra 2.6.11 (?)... Psat takto o IMQ melo smysl pred 2 lety, kdy se v LinuxCz konfere kazdou chvili vyskytoval dotaz na reseni shappingu, ktery inklinoval na vyuziti IMQ (pak by ten clanek mel smysl, protoze zdroju na IMQ bylo malo a mnoha lidem by to pomohlo, dnes se ten smysl znacne vytraci - krome nutnosti vydat denne aspon jeden clanek a odmeny autora), dnes, kdyz mame moderni a ve std. jadre obsazenou alternativu je to mysim trochu zastarale... - je mi lito, ze jsem Vam to musel takto po lopate nasazet a nejste schopen se dovtipit z kratkeho a presne vystizneho sdeleni... A pokud Vam to stale nesecvaklo nevadi, bud mate opravdovy zajem a najdete si podrobnosti, o kterych hovorim, a nebo to stejne nema smysl...:-)
    Max avatar 24.9.2006 21:49 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    Vím, co tím myslíte. Také vím, že je v jádře alternativa k imq, ale nemyslím si, že by bylo imq úplně mimo hru a že by na něj existovalo hodně článků a howto, které polopatě vysvětlují jeho funkce méně znalejším uživatelům apod. a ještě navíc v češtině :-/. Zatím jsem všude našel postup typu modprobe AND iptables na pár řádcích a tím to haslo. Proto jsem se také uchýlil k trošku širšímu rozepsání o imq. Samozřejmě mám v plánu také něco napsat o alternativě, ale na to teď nemám dostatek času :-/. Na nutnost vydávání článků každý den bych to moc nesváděl a na odměnu autora už vůbec ne ;-) ( Robert ví, o čem mluvím ) ..
    Zdar Max
    Měl jsem sen ... :(
    24.9.2006 09:43 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    Jo jo, už je to tu zas....kecat a kritizovat článek umí každý, napsat ho málokdo. Člověk co jej psal na tom strávil jistý čas a bylo by slušné jej ocenit tím, že mu nebudeme podrážet nohy. Nemyslíš?
    24.9.2006 21:30 Pavel Janousek
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    A co jste na charitu venoval Vy, ze mate plna usta kecu?
    Max avatar 24.9.2006 21:52 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    Snad se tu nechcete začít předhánět s tím, kdo toho nejvíc pro něco / někoho udělal ? :-D
    Zdar Max
    Měl jsem sen ... :(
    24.9.2006 23:01 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    Zatím tu máš plná ústa keců jen ty. Viz. příspěvek o kousek výš. Aneb chtěl jsem tím naznačit, že napadáš slovně autora, což mi na vzdělaného člověka, za kterého se vydáváš, moc nepasuje. Ale alespoň pro příště vím s kým mám tu čest.

    PS: k charitě .... A TY??
    25.9.2006 22:12 Pavel Janousek
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    Desitky diskusi a debat nad praktickymi implementacemi vyse uvedenym zdrojem informaci... napr.

    Clanky budu psat az to bude mit smysl a na tema, ktere jednak precizne ovladam (povrchni "zurnalista" jsem nikdy nebyl a znizovat se na stara kolena k tomu nebudu) a jednak bude zajimave... verim, ze jemne nuance a porodni bolesti J2EE serveru pod Apache licenci (Geronimo) asi nebude majoritni casti zde prijmut s nadsenim... stejne jako technologie okolo J2EE, kdyz vetsina nevyrostla z rise PHP (jen se podivejte na sledovanost a uspesnost clanku na jakem "systemu" bezi zdejsi server - uz jen z popularniho hlediska, bez odborneho, by to mohlo zdejsi navstevniky zajimat... - statistika vsak hovori jinak)

    Bud prispivame do odborneho periodika, ktere by melo byt urcitym garantem kvality a zejmena vecne spravnosti - bohuzel na ceskem "trhu" neni takovy casopis nebo e-zin zamereny na IT.. - srovnejte treba se zdravotnictvim, vedou (ona existuje i computer science)... nebo do popularniho platku, kde se na vecnou spravnost az tak nehledi a bud se to dela pro prachy nebo z charity... - pro prachy to delat nebudu, protoze clanek bez vecne zcela rigorozne spravnych a overenych poznatku zabere tolik casu a usili, ze se z nuzne odmeny autora stava charita stejne...:-)

    Dalsi tema k debate na tema charita a co kdo dela/dokazal?

    PS: A s tou charitou, docela jste mi nabeh na smec, kupodivu mezi nase reference lze zaradit dve charitativni organizace... (se specialnimi smluvnimi podminkami) - tak zas tak nevyskakujte...:-)
    25.9.2006 23:00 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    My my my....ptal jsem se na tebe ne na skupinu lidí. Opět hromada odborných slovíček, naučených frází a prakticky nic nového co by člověka zajímalo. "Tož díky" :-)
    28.9.2006 21:35 Pavel Janousek
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    Hele opicaku, co kdyby sis nejprve zjistil s kym mas tu cest nez takhle (znacne hloupe) vystartujes?

    PS: Kdyz Te neco nezajima, tak se na to neptej... pro priste!
    28.9.2006 22:15 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    Mě je to absolutně jedno s kým mám tu čest. Můžeš být třeba papež a "neposeru se". Zatím si myslím, že jsem narazil na značně arogantního a sebestředného člověka. A pro příště nevybuřuj, když nehodláš odpovědět na srozumitelně položenou otázku!
    Max avatar 28.9.2006 23:19 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    Pánové, pánové, Vy už to máte za pár ... :-D
    Zdar Max
    Měl jsem sen ... :(
    29.9.2006 08:24 Opičák | skóre: 18 | blog: Opicakovy_blaboly
    Rozbalit Rozbalit vše Re: IMQ is out (dead) - new technolgy comming...:-)
    Já možná ano :-) jenže asi jinak než myslíš :) Jakožto člověka s rakovinou mě nemůže nějaký Pavel Janousek rozhodit :-) Zatím jsem se nedal zubaté, tak proč bych měl nějakému prudiči :-)

    To víš, někteří lidé neocení ani snahu ani čas vynaložený pro ty, co nemrskají anglinu jak bozi, potřebují to polopatě ale rádi by tomu přišli na kloub. Já ti děkuju za smysluplné, pěkně ilustrované a hlavně ČESKÉ články, kterých je opravdu málo.
    25.9.2006 11:35 Nosík
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Nevíte někdo co by mohlo způsobovat to, že když zavedu imq pomocí mod_probe tak mi přestanou fungovat ostatní síťová rozhraní a musím restartovat server.??
    Max avatar 25.9.2006 13:03 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Co je to mod_probe? Nejni myšleno modprobe? Jaké jádro používáš? Distribuční (jaké?), nebo vanilla (jaké?) ? Používáš imq patch, který odpovídá pro danou verzi jádra?
    Zdar Max
    Měl jsem sen ... :(
    25.9.2006 13:23 Nosík
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    jo, sorry jasné že modprobe :o) Jádro mám Vanilla 2.6.16.27. postupoval jsem přesně podle návodu(1.díl tohoto seriálu). Verze patchů by měli souhlasit.
    Max avatar 25.9.2006 14:25 Max | skóre: 65 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Takže hned po načtení modulu se jakoby vypnou ostatní síťová rozhraní? Takže ani nestačíš imq zařízení ani nahodit pomocí ip (nebo ifconfig) ? A co říká výpis dmesg po připojení modulu imq? Co když modul znovu potom odpojíš? Stále nejdou?
    Zdar Max
    PS:opravdu musíš restartovat server? Nevyřeší to ani reload modulů apod. ?
    Měl jsem sen ... :(
    23.10.2006 11:37 iTomB
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Jo tak tohle jsem taky zazil. IMQ bylo blble patchle v jadre. Kdyz jsem se podival pres konzoli, tak IMQ melo jeden z udaju 0B (ted nevim zda Tx nebo Rx). Normalne si jsou rovmy, co prijme to odesle. Patch neni pro jadro 2.6.18.1 ale jen pro starsi 2.6.17. Tak jsem si musel upravit zdrojaky jadra (zmena v sch_generic). Po upravach se vse rozbehlo jak melo a ja doufam ze to pojede i na ostrem provozu.

    A ted trochu k te stabilite IMQ. Provozuji server s pomerne vetsim trafickem. Pred nedavnem se na nem zvedl trafik a jaksi zacalo padat jadro: BUG: soft lockup detected on CPU#0! CPU 0: Modules linked in: Pid: 0, comm: swapper Not tainted 2.6.16.16 #16

    Takze jsem server odstavil a predelal na jadro 2.6.18.1. Bohuzel vydrzelo to bezet cca 2h 45min nez hodilo opet soft lock. Po vypnuti shaperu to bezelo dobre, po par upravach to ted bezi tez dobre - vypnul jsem IMQ.

    Predtim bezel server beze zmeny bez problemu pres 1 mesic. Ale jakmile se zvedl trafick, tak zacalo padat IMQ (typuju, protoze ted na novem to tez padalo a co jsem vypl IMQ uz nepada).

    Takze jsem hodne pro clanek o necem novem. Napriklad IFB. Moc jsem o nem takt nenasel a bohate by asi stacilo malej popis a jak to nahodit tak, aby se to chovalo plne jako IMQ - kde by se shapoval cely opacny trafik.

    iTomB
    Thunder.m avatar 25.10.2006 20:09 Thunder.m | skóre: 35 | blog: e17
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Taky bych chtěl něco o IFB, o víkendu to zkusím implementovat, IMQ už nechci používat protože se pro nová jádra špatně schání patch a je to fakt nestabilní.
    27.10.2006 10:39 Orrie
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    http://mailman.ds9a.nl/pipermail/lartc/2006q3/019371.html a http://linux-net.osdl.org/index.php/IFB Tady mas vse podstatne. Pomoci ifb imq zcela nahradit nelze. Klasicky pripad je shaping prichoziho provozu z netu do LAN s NATem, kde shapujes na imq (imq after NAT) a klasifikujes pomoci cilove adresy klienta v LAN za NATem. Toto s ifb neni mozne, protoze paket prichozim smerem nejdrive prochazi pres ifb a az pak jde pres NETFILTER. Z pochopitelnych duvodu pak samozrejme nelze ani klasifikovat markovanim pres iptables. Vypada to asi nejak takto: [net] .... [ethx IN]->[IFBx]->[ethx NF_PREROUTING][DNAT] ... [lan]
    Thunder.m avatar 27.10.2006 11:50 Thunder.m | skóre: 35 | blog: e17
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    jj, toto jsem zjistil bohužel včera, když jsem zkoušel IFB vedle na routeru, MARK pomocí iptables prostě nechodí :(
    Thunder.m avatar 27.10.2006 12:02 Thunder.m | skóre: 35 | blog: e17
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Neexistuje nějaká možnost jak na IFB aplikovat rozdělení pomocí layer7 filtru?
    27.10.2006 13:59 Orrie
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Obavam se, ze neni. Je vsak otazkou na co ti imq slouzi. Pokud na tom routeru co shapujes nebezi zadne sluzby (squid, apache, ftp, router sam negeneruje ani neprijma zadny provoz) a imq pouzivas pouze pro spojeni odchoziho provozu do lan pres vice rozhrani tak to s ifb lze take udelat. V odchozim smeru se provoz presmeruje do ifb az po NETFILTER, takze uz mas DNATovane pakety a muzes je omarkovat pomoci L7 filteru.
    Thunder.m avatar 27.10.2006 17:15 Thunder.m | skóre: 35 | blog: e17
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    nenapověděl bys mi trochu nějakým příkazem jak to udělat?
    Thunder.m avatar 27.10.2006 17:16 Thunder.m | skóre: 35 | blog: e17
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Jinak samozřejmě že používám IMQ hlavně na tranzitních routerech, takže jediný lokální traffic bude snmp, ssh a dns, což mi nevadí.
    27.10.2006 19:45 Orrie
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Neco takoveho by mohlo fungovat:
    modprobe ifb numifbs=1
    ifconfig ifb0 up
    # presmerovani odchoziho provozu z eth 1,2,3 do ifb0
    tc filter add dev eth1 parent 1: protocol ip prio 1 u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0
    tc filter add dev eth2 parent 1: protocol ip prio 1 u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0
    tc filter add dev eth3 parent 1: protocol ip prio 1 u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0
    # na ifb0 asi povesit nejaky classful qdisc
    tc qdisc add dev ifb0 root handle 1 htb default 90 r2q 1
    tc class add dev ifb0 parent 1: classid 1:2 htb rate 256Kbit
    tc class add dev ifb0 parent 1:2 classid 1:10 htb rate 192Kbit ceil 256Kbit prio 0
    tc qdisc add dev ifb0 parent 1:10 handle 10 pfifo limit 32
    tc filter add dev ifb0 parent 1:0 protocol ip prio 10 handle 0x110 fw classid 1:10
    tc class add dev ifb0 parent 1:2 classid 1:90 htb rate 64Kbit ceil 256Kbit prio 7
    tc qdisc add dev ifb0 parent 1:90 handle 90 sfq perturb 10

    Osobne jsem to nezkousel, je to ciste teorie. Vyzkousej a dej vedet jestli to funguje.
    Thunder.m avatar 27.10.2006 21:04 Thunder.m | skóre: 35 | blog: e17
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Ano to funguje tak jak má, jen je ještě nutné předem vytvořit na daném rozhraní (eth1 eth2 eth3)
    "$TC qdisc add dev eth1 root handle 1:0 prio"
    hlavní třídu (jestli jsem to napsal správně). Problém je pouze ten že já QoS nechci používat na hlavní bráně. QoS chci použít na router kde každé rozhraní bude komunikovat s každým rozhraním a to ještě o různých rychlostech, tam se toto použít bohužel nedá.
    27.10.2006 21:58 Orrie
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    IFB (drive dummy) je relativne mlada vec a tyto "nedostatky" se mozna casem vyresi. Vzhedem k tomu jak IFB pracuje si to ovsem nemyslim. Myslim, ze kazdemu kdo cte nas minithread je jiz jasne, ze v soucasne dobe je v urcitych situacich IMQ nenahraditelne. Mozna dalsi namet pro autora tohoto serialu. Osobne s IMQ problemy nemam, ale pravdou je, ze se jedna o boxy kde traffic nepresahuje 4mbps. Ze zacatku jsem mel problemy v kombinaci IMQ s NETKEY (native ipsec stack), ale to je znamy problem a je zdokumentovano jak to obejit.
    Thunder.m avatar 27.10.2006 22:06 Thunder.m | skóre: 35 | blog: e17
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Já potřebuju routovat a omezovat traffic v desítkach Mbitů, případně i ve stovkách, zároveň například pro kernel 2.6.18 ještě patch ani není. Jako další nedostatek je to že asi neni možné shapovat poloduplexní zařízení, což s IMQ taktéž jde. Jediné co mě teď napadá jak vyřešit tento problém je přepsat celý skript aby místo layer7 filtru používal pro třídění paketů tc, ale moc si nedokážu představit jak to snadno udělat, nebo filtrovat jen jeden směr a ten druhý pouze omezit na určitou rychlost.
    6.11.2006 16:57 Margi
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Neposkytl bys, pls, ten upraveny patch? Ta nestabilita se nemusi projevit vsude a ja nyni nutne potrebuju 2.6.18 jadro a v nem imq. Dik Ke stabilite - na 2.6.17.11 mam 8 imq rozhrani s celkovym traffikem hodne pres 100mbit a uptime 50dni od posledniho rucniho rebootu, nepadlo mi to nikdy...
    17.12.2006 23:39 thiemel | skóre: 4 | 49°55'21.691N, 18°5'3.288E
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Dobrý den, chyba je přímo ve zdrojáku IMQ... "Intuitivně" jsem ho "patchnul" a očividně mi server (AMD X2 3800+) jede bez dalších "SOFT LOCKUP DETECTED on CPU#O" :-D

    Patch je zde:

    --- imq.c.orig 2006-11-18 00:08:42.000000000 +0100 +++ imq.c 2006-12-17 23:34:03.000000000 +0100 @@ -201,13 +201,14 @@ ret = 0; } } - if (spin_is_locked(&dev->xmit_lock)) - netif_schedule(dev); - else - - while (!netif_queue_stopped(dev) && - qdisc_restart(dev)<0) - /* NOTHING */; + + +if (spin_trylock(&dev->xmit_lock)) { + qdisc_run(dev); + spin_unlock(&dev->xmit_lock); +}else{ + netif_schedule(dev); +} spin_unlock_bh(&dev->queue_lock);
    Tomáš Thiemel WifiZábřeh u Hlučína e-mail:thiemel(zavináč)centrum.cz Jabber: thiemel(zavináč)jabber.cz ICQ:170438916
    17.12.2006 23:41 thiemel | skóre: 4 | 49°55'21.691N, 18°5'3.288E
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    --- imq.c.orig 2006-11-18 00:08:42.000000000 +0100
    +++ imq.c 2006-12-17 23:34:03.000000000 +0100
    @@ -201,13 +201,14 @@
    ret = 0;
    }
    }
    - if (spin_is_locked(&dev->xmit_lock))
    - netif_schedule(dev);
    - else
    -
    - while (!netif_queue_stopped(dev) &&
    - qdisc_restart(dev)<0)
    - /* NOTHING */;
    +
    +
    +if (spin_trylock(&dev->xmit_lock)) {
    + qdisc_run(dev);
    + spin_unlock(&dev->xmit_lock);
    +}else{
    + netif_schedule(dev);
    +}

    spin_unlock_bh(&dev->queue_lock);

    (mezery si budete muset asi bohužel dosadit sami) :-(
    Tomáš Thiemel WifiZábřeh u Hlučína e-mail:thiemel(zavináč)centrum.cz Jabber: thiemel(zavináč)jabber.cz ICQ:170438916
    30.8.2007 13:08 Tomáš
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    Zajímalo by mě, když používám v síti VLANky, jestli musím IMQ přiřadit ke každé VLANce? Díky
    28.2.2008 11:41 h/atack | skóre: 4
    Rozbalit Rozbalit vše Re: Traffic shaping - 2 (IMQ a úvod do shapingu)
    "Vnímavější by možná napadlo hodit na LAN 1, 2 a 3 bridge br0. Tím by se vytvořilo jedno virtuální zařízení, které by dokonce umožňovalo, aby byly všechny podsítě ve stejném rozsahu. Je to velice dobrý nápad, avšak má jednu drobnou chybku. Na br0 se nedá provádět shapování, protože iptables na něj neplatí (i když někdo tvrdí, že mu to iptables dokáže) a je k dispozici pro konfiguraci balíček ebtables. Takže pokud má někdo nakonfigurovaný bridge, tak bude stejně asi muset sáhnout po imq."

    Toto neni pravda, pokud mate linux jako router (a o tom tenhle serial je, ne?) a udelate si na nem bridge z nekolika (ne vsech) fyzickych rozhrani, br0 bude mit ip adresu a je to stejne zarizeni jako napr. ethernet a muzete na nej tedy pouzivat i iptables a QoS (ja to takto provozuji bez problemu s HTB). Vase pripominka plati pouze v pripade, ze z linuxu delate switch a ne router, tedy neprochazi "skrz" nej zadna data a ani nemusi mit IP adresu (i kdyz kvuli vzdalene sprave si ji tam zrejme date).

    Jinak hezky clanek, uz o pouziti IMQ uvazuji dost dlouho, ale stale cekam, az se to vic usadi a pripadne dostane do distribucniho jadra.

    Založit nové vláknoNahoru

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