Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

HTB - další krůčky

Vítejte u dalšího (volného) pokračování článku o HTB. Dnes se pokusíme vyřešit (nebo obejít) několik problémů, které se objevily minule. Pokusím se též zodpovědět některé otázky, které mi čtenáři posléze položili.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Hned zpočátku musím ještě trochu okomentovat díl předchozí. Jsem velice rád, že se pod ním rozpoutala tak bohatá diskuse, a především mě těší to, že obsahovala mnoho doplňujících a upřesňujících informací. Ano, skutečně, ne vše, co jsem uvedl ve svém článku, bylo zcela přesné nebo úplné. To má v principu dva důvody. Za prvé, nechtěl jsem začátečníky zatěžovat přílišnými a zbytečnými detaily. Druhým důvodem je pak smutná skutečnost, že některé věci zkrátka neznám nebo znám jen povrchně. Programováním síťových serepetiček jsem se nikdy nezabýval, a proto dávám k dispozici pouze své praktické zkušenosti s dílky cizích lidí. Popis některých skutečností se pak může více či méně lišit od toho, jak vše původně myslel sám autor… :-(

Zkusme tentokrát začít přímo skriptem, který se však kvůli dlouhým řádkám nevejde do článku, proto jej naleznete ve zvláštním souboru.

Prvních několik řádků by mělo být s pomocí přečtení prvního článku snadno pochopitelných. Modifikace spočívají v užití možností shellu pro automatické dopočítávání šířky pásma. Všimněte si též, že jsem z řádku definujícího kořen odstranil parametr „default“. To úzce souvisí se změnou řádků pro značkování packetů pomocí iptables. V těch jsem totiž nahradil klíčové slovo POSTROUTING FORWARDem, čímž jsem dosáhl toho, že značkování se aplikuje pouze na routované packety. Z toho logicky vyplývá, že jakýkoliv jiný packet, který bude opouštět počítač na rozhraní eth0, musí být generován lokálně (pokud nevěříte, pozorně prostudujte sadu značkovacích příkazů. Pokud pak takový packet přijde na řadu, nevyhoví žádné z podmínek nadefinovaných u filtrů a „spadne“ někam mezi, kde na ně ovšem nejsou aplikována žádná omezení. Cesta je to sice nečistá, ale účinná (za vše se ještě omluvím na konci článku, nebojte). Elegantnějším řešením tohoto problému by mohlo (a mělo) být vytvoření zvláštní třídy s RATE třeba 100mbit, do níž bychom pak „házeli“ ty správné packety a vše by fungovalo mnohem čistěji. Teorie je krásná, ale praxe… …no škoda mluvit. :-( Pokud byste to zkusili, začne na vás jádro (jeho HTB část) křičet, že šířka pásma pro jednotlivé třídy je ve značné nerovnováze a že nemůže efektivně zaručit správnou funkci. Pokusy ukázaly, že jádro nelže a že takto napsaný traffic shaper se chová velmi podivně a je v podstatě k ničemu.

Dalším polo-řešením, které je k dispozici v mém skriptu, je i značkování packetů pomocí iptables v tabulce OUTPUT. To proto, že na routeru běží i transparentní proxy. Všechny požadavky zevnitř sítě ven do internetu na port 80 přesměruje na lokální port 3128, kde poslouchá squid, a ten pak sám stránku z internetu stáhne, nebo ji rovnou naservíruje z vlastní cache. Tím jsme si ale, jak už jsem psal minule, zadělali na pěkný problém. Co když se některý z uživatelů rozhodne stahovat pětisetmegový soubor přes HTTP (předpokládáme port 80)? Všechna data by pak šla pouze z programu běžícího na routeru, byla by tedy lokálně generovaná (odkud je vezme ten program, už je věc jiná) a neaplikovaly by se na ně žádné limity. Takový uživatel by pak byl, a je to opět i prakticky ověřeno a potvrzeno, schopen dokonale „obsadit“ linku. Proto zavádíme tuto „šaškárnu“ se značkováním i části lokálně generovaných packetů, aby byly správně zařazovány do patřičné třídy a tím pádem i omezovány. Polo-řešením jsem to celé pak nazval proto, že tím bohužel ztrácíme hlavní výhodu cachující proxy, tedy že je schopna poskytovat často nebo nedávno navštěvované stránky vysokou rychlostí. I když totiž, při našem způsobu nakládání s packety, budeme požadovat některou ze stránek, která se bude válet kdesi ve squidovských útrobách a mohla by k nám být tedy poslána teoretickou rychlostí 100mbit (může se samozřejměl lišit), dostaneme ji bohužel maximální rychlostí 64kbit (v našem případě, a to pouze tehdy, nestahujeme-li nic dalšího, propůjčování pásma mezi třídami jsme teď zanedbali). Ani po usilovném přemýšlení mě bohužel nenapadl žádný elegantní způsob, jak tento problém vyřešit, a proto jsem zatím „spokojen“ s tímto částečným řešením, které alespoň zaručí rovnost mezi uživateli.

Už mě začínají trochu pobolívat prstíky, takže jdeme do finále. :-) Na závěr článku jsem sliboval nějakou tu omluvu, tak tady je. Ze srdce se omlouvám za všechna polovičatá řešení, která jsem dnes nabídl, ale sám v tuto chvíli nevím o ničem lepším a mým záměrem bylo pomoci vám alespoň nějak. Každopádně zveřejněné nastavení (plus pár dalších složitostí) používám na svém routeru a bohatě pro domácí využití postačuje. Doufám, že se opět rozjede diskuse, která má řešení ještě vylepší. Alespoň do té minulé skutečně přispělo mnoho velmi zkušených a moudrých lidí (kteří mě znalostmi jistě převyšují). Mnoho lidí se mě též ptalo na časový plán dalších pokračování, ale jak můžete sami vidět, jsou mé časové dispozice velice mizerné, a proto mohu předem slíbit jen toliko, že se budu snažit… Zatím přeji: Shapování zdar!

Školení: Linux – Zálohování, Vysoká dostupnost, SNMP dohled

Na třídenním školení se naučíte nainstalovat a spravovat systém zálohování, replikace dat a vysoké dostupnosti dat. Dále také pracovat s RAID a LVM poli a nainstalovat a spravovat si vlastní dohledový systém.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,75

Přehled názorů

IMQ
Jerry 30. 10. 2003 00:24
Nový
├ 
Re: IMQ
Michal Kara 30. 10. 2003 08:17
Nový
│
├ 
Re: IMQ
Jerry 30. 10. 2003 08:28
Nový
│
└ 
Re: IMQ
Vladimir Smelhaus 30. 10. 2003 10:12
Nový
└ 
Re: IMQ
MaKr 30. 10. 2003 08:35
Nový
 
├ 
Re: IMQ
anonymní uživatel 30. 10. 2003 09:56
Nový
 
└ 
Re: IMQ
Vladimir Smelhaus 30. 10. 2003 09:56
Nový
 
 
└ 
Re: IMQ
Jerry 30. 10. 2003 10:04
Nový
 
 
 
└ 
Re: IMQ
Vladimir Smelhaus 30. 10. 2003 10:40
Nový
 
 
 
 
└ 
Re: IMQ
Jerry 30. 10. 2003 11:13
Nový
 
 
 
 
 
└ 
Re: IMQ
Tomas Janousek 31. 10. 2003 15:08
Nový
 
 
 
 
 
 
└ 
Re: IMQ
Tomas Janousek 31. 10. 2003 15:12
Nový
Nemohu odfiltrovat paket ....(invalid argument)
Petr 30. 10. 2003 01:11
Nový
├ 
Re: Nemohu odfiltrovat paket ....(invalid argument
TomCat1 24. 11. 2003 17:11
Nový
│
└ 
Re: Nemohu odfiltrovat paket ....(invalid argument
Lišák 17. 12. 2003 00:43
Nový
│
 
└ 
Re: Nemohu odfiltrovat paket ....(invalid argument
Witr 5. 2. 2004 18:55
Nový
└ 
Re: Nemohu odfiltrovat paket ....(invalid argument)
mirek 14. 4. 2004 17:42
Nový
IMQ
ienik 30. 10. 2003 06:52
Nový
HTB a squid
ZDR 30. 10. 2003 10:31
Nový
└ 
Re: HTB a squid
Michal Kara 30. 10. 2003 12:21
Nový
HTB/CBQ a SQUID
bman 30. 10. 2003 16:40
Nový
Qosovani linky + squid
David Kutalek 30. 10. 2003 21:33
Nový
Postrehy z delsiho provozu...
Vaclav Dvorak (Brno) 31. 10. 2003 00:58
Nový
├ 
Re: Postrehy z delsiho provozu...
LiM 31. 10. 2003 08:33
Nový
├ 
Re: Postrehy z delsiho provozu...
si 31. 10. 2003 11:33
Nový
└ 
Re: Postrehy z delsiho provozu...
lunix 1. 11. 2003 23:26
Nový
Jak si vypalit rybnik & otazky
Vaclav Dvorak (Brno) 31. 10. 2003 01:00
Nový
└ 
Re: Jak si vypalit rybnik & otazky
anonymní uživatel 20. 11. 2004 16:37
Nový
Jak neshapovat
Vaclav Dvorak (Brno) 31. 10. 2003 01:08
Nový
├ 
Re: Jak neshapovat
Radek Podgorny 31. 10. 2003 01:39
Nový
└ 
Re: Jak neshapovat
si 31. 10. 2003 11:41
Nový
Velke rozdily v rychlostech
Jezevec 31. 10. 2003 16:48
Nový
:-) tohle znam
xChaos 31. 10. 2003 23:22
Nový
Shaping na WLAN
Uzi 7. 11. 2003 00:52
Nový
└ 
Re: Shaping na WLAN
z0x 17. 12. 2003 12:13
Nový
Dotaz
Jan proch 19. 2. 2004 12:23
Nový
└ 
Re: Dotaz
Radek Podgorny 13. 10. 2004 17:23
Nový
classy - rozdělování rychlosti
Mik 19. 11. 2004 19:42
Nový
└ 
Re: classy - rozdělování rychlosti
Dalibor Straka 20. 11. 2004 17:39
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem