Титла: shaping на 2 интерфейса Публикувано от: Hapkoc в Oct 20, 2005, 16:27 или както предполагам - не?
Идеята е следната: ____ internet ----> ne3| | we0 <------------ local net 1 (192.168.1.0/24) -------- ep1 <------------- local net 2 (192.168.0.0/24) По средата кутийката е OpenBSD с пуснат NAT, бла бла... Въпроса е следния - да кажем, че download-а ми е ограничен на 1Mb. Мога ли тоя 1Mb да го разпределя така: 1/3 към local net 2 и 2/3 към local net 1, като ако не се използва да кажем от local net 2 трафика да отива към local net 1. Сега, подозирам, че принципно не може да стане това нещо, т.к. доколкото знам при всички системи за shape-ване се определя скорост за интерфейс, но моите познания са доста начални в тая област, така че ще замоля някой по-запознат да ме осветли. ![]() Титла: shaping на 2 интерфейса Публикувано от: VladSun в Oct 20, 2005, 17:40 Принципно шейп на много интерфейси става само с IMQ (в контекста на tc) ...
http://lartc.org/lartc.html#LARTC.IMQ Титла: shaping на 2 интерфейса Публикувано от: Hapkoc в Oct 20, 2005, 18:17 Ммм благодаря.
![]() Сега ако някой каже как се прави това с PF ще е чудно. Понеже мислих по въпроса и ще взема да споделя какво съм измислил, та някой да каже дали има резон. Значи, т.к. опашка може да се прави само за един интерфейс (поне с pf/altq), значи трябва по някакъв начин да се обединят двата интерфейса. Това ме наведе на мисълта за bridge. Та, ако пусна bridge интерфайс м/у двата интерфейса за локалните мрежи и му закача на него опашката се чудех дали няма да стане нещо подобно на това което искам. p.s. може би трябва да се премести тая тема в bsd секцията, знам ли... Титла: shaping на 2 интерфейса Публикувано от: Hapkoc в Oct 23, 2005, 20:35 Значи, пробвах да направя тая хава с bridge-а, обаче pf се оплаква, че bridge драйвера не поддържа altq. Щукна ми, че бих могъл през някакъв loopback интерфейс да прекарам трафика за двете мрежи и на него да shape-вам, обаче нещо не мога да се светна как трябва да се реализира това.
Ще съм благодарен за малко помощ. Титла: shaping на 2 интерфейса Публикувано от: в Oct 27, 2005, 16:32 сложи още една машина пред тази и ето ти го единия интерфейс :-)
Титла: shaping на 2 интерфейса Публикувано от: Hapkoc в Oct 27, 2005, 17:05 да, вярно :)
само дето аз се чудя къде да слагам щайгите дето ги имам в момента в нас, ти ми предлагаш още една да сложа. :) Титла: shaping на 2 интерфейса Публикувано от: roshisa в Dec 07, 2005, 11:20 Mozhesh da napravish i taka:
sheipni si dvata interfeisa kato im zadavash max skorost kakvato pozhelaesh, no im slozhi razlichni prioriteti. Sheipni i vunshniia interfeis kato zadadesh razlichni prioriteti na queue-tata za trafica idvassht ot razlichnite vutreshni interfeisi. Титла: shaping на 2 интерфейса Публикувано от: в Dec 07, 2005, 14:24 Ъъъъ, какво ще постигне така?
Титла: shaping на 2 интерфейса Публикувано от: mrvoland в Dec 09, 2005, 00:03 можеш да си шейпнеш всички интерфейси, в това ограничение няма
![]() за да ти е равномерен шейпъра за DL на users слагаш един главен (parent) клас който ще ти е пълната линия или максимума с който искаш да точат users в случая трябва да създадеш 2 главни класа за всеки интерфейс по отделно и е по правило се оставя малко свободно място да може да диша линията ако имаш 1Мбит слагаш главния на 900Кбит а при теб трябва да укажеш в главните класове по колко Кбит да се дава на всеки интерфейс след което създаваш за потребителите един подклас ( в твоя случай два за всеки интерфейс по един ) който да е закачен (bonded) към главния клас и потребителското ограничение го пускаш на 64Кбит като не го ограничаваш тотално с него а го оставяш "плаващо" т.е. потребителите да вземат един от друг когато линията е празна по този начин точещия Гошко установява че като се включи Пенчо да точи и скоростта му пада на половина ![]() но запомни нещо... можеш да шейпваш САМО изходящия трафик от интерфейса, т.е. ако искаш да ограничиш UL трябва да сложиш същия шейпър и на интернет интерфейса и да го съобразиш със скоростта на линията ето и малък пример за операции с tc или как да направим shaper@home
Титла: shaping на 2 интерфейса Публикувано от: Hapkoc в Dec 09, 2005, 00:36 mrvoland, благодаря за изчерпателния отговор, но не ми станаха съвсем ясни някои моменти.
![]() Значи, мисълта ми е следната. Има един интерфейс, за интернет и два към две вътрешни мрежи (да кажем 192.168.0.0/24 и 192.168.1.0/24). Ясно ми е как мога да укажа за всяка мрежа (т.е. за всеки интерфейс) колко трафик да се заделя и как да укажа при празна линия да се разпределя максимално трафика (примера с Гошко и Пенчо), за всеки интерфейс. Дотук добре, но не ми стана ясно как се прави същото това нещо м/у двата интерфейса. Не знам дали се изразявам ясно. Да кажем, че имаме downlink 1024Kbps. Създаваме две опашки за всеки от вътрешните интерфейси - по 512Kbps. Как указваме, че ако на единия интерфейс няма никакъв трафик, неговите 512Kbps трябва да се преразпределят към другия. Всъщност въпроса ми може да се формулира така - как постъпваме ако Гошко и Пенчо са интерфейси? ![]() Иначе основните неща са ми ясни - че се shape-ва на малко по-ниска скорост и че може да се shape-ва само изходящ трафик. Пак благодаря за отговора. ![]() П.С.: Примера, който си пуснал да кажа - не съм го разглеждал подробно. Ще го погледна малко по-късно. Титла: shaping на 2 интерфейса Публикувано от: VladSun в Dec 09, 2005, 00:58 Пробва ли IMQ-то?
Че, честно казано и на мен ми се ще някой да сподели как върви това чудо ![]() Сорри, ако си се почувствал като лаб. мишка ![]() Титла: shaping на 2 интерфейса Публикувано от: alex_c в Dec 09, 2005, 09:00 IMQ-то върви добре, засега не се дъни при мен, макар че тестовата машина не е много натоварена и не знам как ще работи при голям брой клиенти. По отношение на инсталирането, пачвате ядрото, но внимавайте, ако ще правите NAT на същата машина - внимателно огледайте опциите за NAT към IMQ-то: AA, BB, AB, BA (A - after, B - before IMQ), защото може да се наложи да прекомпилирате отново ядрото (при мен така се получи и не намерих начин да променям реда на прехвърляне към IMQ интерфейса on the fly). Ще трябва да прекомпилитарте и tc пакета - намерете tc-latest, както и iptables, за да разбират от IMQ. След това всичко върви нормално (поне засега).
Best wishes! Alex Титла: shaping на 2 интерфейса Публикувано от: Hapkoc в Dec 09, 2005, 10:44 VladSun, ако въпроса ти е към мен зададен - не, не съм.
В момента NAT/Shaping/etc правя с OpenBSD/PF/ALTQ, не с Linux/iptables/tc. ![]() По-скоро ме интересуваше теоретично как стоят нещата, но вероятно си зависи доста от конкретната реализация и инструменти, с които се прави. Титла: shaping на 2 интерфейса Публикувано от: mrvoland в Dec 10, 2005, 02:09
ами ![]() ![]() parent, subparent, subsubparent можеш да създадеш ахх... как мразя да рисувам с ASCI ![]() -(subparent1) eth1 споделено | parent (internet) eth0 или максимума на DL | -(subparent2) eth2 споделено примерно на eth1 потребителите вземат споделен трафик от eth2 потребителите, същевременно вече взетия споделен трафик се споделя между eth1 потребителите долкото знам бтк по този начин споделя скоростта между потребителите но може и да греша схвана ли мисълта че пожеш да слагаш и подподкласове на подкласа ![]() малко ми е късно в момента но това между Пешо и Гошо също може да се направи просто малко повече въображение п.п. само внимавай с многото класове и подкласове че на бавна машинка почва да се зори да смята трафика ![]() Титла: shaping на 2 интерфейса Публикувано от: в Dec 10, 2005, 09:48 mrvoland, и на мен, както на Наркос, не ми става ясна твоята идея. Скрипта, който си дал в предния постинг, разглежда случая само с един интерфейс към потребителите. Ако имаш възможност, метни тук и някой скрипт, описващ случая с два интерфейса към потребителите (какъвто е случая на Наркос). Лично аз ще бъда щастлив да видя решение, неизползващо IMQ.
Best wishes! Alex Титла: shaping на 2 интерфейса Публикувано от: mrvoland в Dec 10, 2005, 15:22 еми... не знам как по-ясно да го обясня...
идеята е към пуровначалния клас да се закачи подклас и към него подподклас като структурата е дървовидна напънете се да помислите логически как може да се разпредели трафика, знам че е трудно но като схванете идеята от там нататък ще е лесно да точно така примера е за един интерфейс просто исках да покажа как се създават класове и подкласове ако има някой който може да го обясни с по-прости думи нека да заповяда аз определено не мога да го обясня по-просто Титла: shaping на 2 интерфейса Публикувано от: VladSun в Dec 10, 2005, 15:49 Не можеш да сложиш parent класа на eth0, и да да имаш листо към него, което се намира на друг интерфейс ... поне аз доколкото знам ...
За това е направен IMQ ... Титла: shaping на 2 интерфейса Публикувано от: alex_c в Dec 10, 2005, 18:45 Напълно съм съгласен с VladSun - не можеш да си мешаш интерфейсите, както си искаш. А по отношение на създаването на класове и подкласове - няма спор, така е, но това е извън темата, пък и не е интересно. Още повече, че Наркос иска да направи това на *BSD. Аз не съм се качвал сериозно на *BSD, затова се въздържам да давам акъл там, единственото, което мога да кажа е, че ако това разпределяне на трафика му е жизнено необходимо и няма как да стане с *BSD, да ползва Линукс с IMQ пач.
P.S. По отношение на първия си постинг, извинявам се, че донякъде съм ви подвел (неволно) - tc пакета няма нужда от пачване, за да работи с IMQ - само iptables. Best wishes! Alex Титла: shaping на 2 интерфейса Публикувано от: mrvoland в Dec 11, 2005, 14:15 съжалявам alex нямам голям опит с BSD за това се опитах да обясня само идеята как може да стане а реализацията оставям на вас...
ако съм подвел някого то било е неволно Титла: shaping на 2 интерфейса Публикувано от: Hapkoc в Dec 11, 2005, 19:16 Значи, вече изобщо не ми е ноебходимо да я правя тая врътка, т.к. вече интерфейса ми е един. :)
Въпроса ми беше по-скоро принципен. Относно слабите машинки - определено има такъв момент със задъхването. В момента машината, която се занимава с NAT/shaping/etc. е 486DX2/66MHz - доста и е трудно и ще трябва да я сменям скоро. :) Титла: shaping на 2 интерфейса Публикувано от: в Dec 11, 2005, 21:48 Титла: shaping на 2 интерфейса Публикувано от: Hapkoc в Dec 12, 2005, 12:23 Аха, гледал съм я тая тема. Като имам време ще й хвърля още един по-задълбочен поглед.
![]() 10x |