едно оточнение
От: stoian genov <stoian_genov< at >mail[ точка ]bg>
На: 17-10-2006@16:00 GMT+2
Оценка: 1/НеутраленЕдно малко оточнение от мен.
Маркирането с IPMARK според мен не е най-доброто решение.
Защо?. Да допуснем че имаме 200 кллиента, които искаме да "шейпнем" с определена скорост. Ако исползваме маркиране на пакетите с IPMARK, то тогава пакетите за/от всеки един клент ще бъдат с различна марка. От тука следва че в tc-то ще имаме поне 4х200=800 класа.Това едва ли е най-доброто решение. Според мен много по-добре е клиентите да се разделят в групи според скороста с която ги "шейпваме".
напр:
група bg_in bg_out int_in int_out
за_една_малка 128KBps 64KBps 32KBps 24KBps
Правим си един "SET", в който слагаме IP-тата на всички клиенти от тази група и маркираме с дадена марка.По този начин ще имаме толкова класове в tc-то, колкото са групите х 4, което е доста по-малко.
Редактиран на: 17-10-2006@16:11
[Отговори на този коментар]
Към: едно оточнение
От: Vladsun <vsmin __@__ mail[ точка ]bg>
На: 17-10-2006@21:13 GMT+2
Оценка: 1/НеутраленЧестно казано не ми стана много ясно какво става според твоя пост.
При мен е така: имам канал X Mbit и искам да го споделя м/у Y потребителя. Правя главен клас X Mbit и Y подкласове за определени скорости, които се черпят от този главен клас с дадените им RATE и BURST (мин. и макс. скорост) и се разпределят относително равномерно и пропорционално на тези параметри. Поради това имам толкова класове колкото и потребители за всяко направление. И според методът използван в тази статия ще имам точно по 1 филтър за всяко направление.
Спред моите разбирания класът определя скоростта на трафика, филтърът определя кой пакет към кой клас да се отнесе и qdisc определя как точно (метод) да се извърши шейпването.
Според мен няма как да имаш N на брой потребители и да нямаш минимум N на брой класове + N на брой qdisc.
Редактиран на: 18-10-2006@1:37
[Отговори на този коментар]
Относно маските при маркиран
От: bextar <sonyxwing< at >mail< dot >bg>
На: 25-10-2006@8:36 GMT+2
Оценка: 1/НеутраленVladsun и двете статии са доста добри. Но кажи ми моля те, какво се случва с маските при маркиране на пакетите с IPMARK,
ако маската на мрежата не е /24 а е /22 (как при това положение би работило tc_to)
[Отговори на този коментар]
Кън едно оточнение
От: stoian genov <stoian_genov (a) mail< dot >bg>
На: 18-10-2006@6:52 GMT+2
Оценка: 1/НеутраленЯвно не си ме разбрал. Ще се опитам обесня малко по-разбрано.
Напр.
Нека файла grupa_1 съдържа списък със всички IP-та, които искаме да шейпнем с една скорост.
Файла grupa_1
192.168.1.2
192,168.1.3
192.168.1.35
192.168.1.89
192.168.1.100
192.168.1.191
ipset -N za_edna_malka ipmap
for i in `cat grupa_1`
do
ipset -A $i
done
iptables -I FORWARD -m set --set za_edna_malka src,dst -j MARK --set-mark 1
По този начин всички IP-та от фаила grupa_1 ще бъдат маркирани с една марка и съответно ще минават през един клас на тс-то.
Напр:
eth0- Входяш интерфейс 100MBps
eth1- Изходяш интерфейс 100MBps
upload-128KBps
download-256KBps
Правим по един съответно за входящия и изходящ трафик.
tc qdisc add dev eth0 root handle 1: htb
tc qdisc add dev eth1 root handle 2: htb
tc class add dev eth0 parent 1: classid 1:10 htb seil 128KBps rate 128KBps
tc class add dev eth1 parent 2: classid 2:10 htb sel 256KBps rate 256KBps
Правим и филтрите
tc filter add dev eth0 parent 1: protocol ip handle 1 fw classid 1:10
tc filter add dev eth1 parent 2: protocol ip handle 1 fw classid 2:10
По този начин всички клиент минават само през два класа
Дано си ме разбрал.
Успех.
Редактиран на: 18-10-2006@7:00
[Отговори на този коментар]
Към: Кън едно оточнение
От: Vladsun <vsmin (a) mail__dot__bg>
На: 18-10-2006@11:01 GMT+2
Оценка: 1/НеутраленСпоред мен по този начин ти даваш на групата ИП-та ОБЩО 128КБ/256КБ канал, като делене на скоростите вътре в групата няма.
Какво ще стане ако две ИП-та от тази група почнат да теглят? Кой с колко ще тегли според теб?
[Отговори на този коментар]
Към: Към: Кън едно оточнение
От: stoian genov <stoian_genov __@__ mail __точка__ bg>
На: 18-10-2006@13:32 GMT+2
Оценка: 1/НеутраленНапротив. Имаш клас 128KB. Този клас определя, че пакетите които минават от там ще минават с 128KB, без значение какви са. Филтъра определя кои пакети ще минат от този клас. Ако не ми вярваш пробвай и ще се обедиш.
Ако двама клента почнат да теглят едновременно и двамата ще теглят с по 128К
Редактиран на: 18-10-2006@13:43
[Отговори на този коментар]
Към: Към: Към: Кън едно оточнение
От: Vladsun <vsmin< at >mail[ точка ]bg>
На: 18-10-2006@14:20 GMT+2
Оценка: 1/НеутраленДа приемем, че е така.
Тогава как ще изглежда tc скрипт за един канал от 128К и двама потребителя, които трябва да го използват 50/50 при условие, че и двамата теглят или 100%, ако само единият тегли?
Редактиран на: 18-10-2006@14:45
[Отговори на този коментар]
Към: Към: Към: Към: Кън едно оточнение
От: stoian genov <stoian_genov< at >mail __точка__ bg>
На: 18-10-2006@14:52 GMT+2
Оценка: 1/НеутраленНе разбрах какво точно имаш в предвид но едва ли ти е проблем да пробваш.
[Отговори на този коментар]
Към: Към: Към: Към: Към: Кън едно оточнени
От: Vladsun <vsmin (a) mail __точка__ bg>
На: 19-10-2006@12:36 GMT+2
Оценка: 1/НеутраленХм, имам действащ шейпър, в който имам както отделни потребители (разбирай ИП-та), така и групи от потребители (разбирай един потребител с няколко ИП-та).
Шейпърът е построен така (за едно направление):
1. главен клас със скорост - скоростта на канала ми;
2. подклас за всеки потребител;
3. подклас за всяка група потребители.
4. пакетите са маркирани с отделен маркер за всяко ИП (потребител), като групите имат еднакъв маркер за всяко ИП от групата.
Според твоята логика, след като съм задал един клас и един маркер за групата, то всяко ИП от тази група ще тегли със скоростта разрешена в класа му (който според мен определя общия трафик за групата). Е, със сигурност не се получава така.
Редактиран на: 19-10-2006@14:25
[Отговори на този коментар]
Въпрос за MAC филтрирането
От: dino <asa (a) spnet __точка__ net>
На: 21-10-2006@19:47 GMT+2
Оценка: 1/НеутраленДоста полезна статия. Откакто се ipset се появи в debiana исках да го пробвам но все не ми оставаше време. Статията ти ми спести доста от ровенето по документациите и известно количество неудачни експерименти, така че се реших да оптимизирам рутера на кварталния ми доставчик. Наистина има осезаем ефект.
Как мислиш, дали използването на ipset ще се окаже по-оптимално от използването на arptables за MAC филтриране? Тук нямат толкова абонати, че да трябва да им напомнят със специална страница да си платят. Спират достъпа само ръчно и то само на злостни авантаджии с дълъг стаж. Струва ми се че при тези условия arptables си остава по-удачно?
Машината им не е точно каквото би трябвало да ползват и всяко намаляване на натоварването е добре дошло за Jabber сървъра, който я измъчвам да държи.
Редактиран на: 21-10-2006@19:59
[Отговори на този коментар]
Към: Въпрос за MAC филтрирането
От: Vladsun <vsmin__at__mail< dot >bg>
На: 21-10-2006@20:23 GMT+2
Оценка: 1/НеутраленЗа оптималност - не мога да ти кажа. Най-оптимално спред мен би било да използваш статична ARP таблица в твоя случай (arp -f FILE).
Но, ако използваш ipset ще имаш възможност да покажеш съответна страница, която да обяснява какъв е проблемът. А не да де получава "от 2 дена нямам нет, какво става" и чак тогава да става ясно, че е сменена ЛАН-картата.
ПП:
"...Наистина има осезаем ефект..."
Ще споделиш ли впечатления - латентност, свобдни системни ресурси и т.н.?
Редактиран на: 21-10-2006@21:40
[Отговори на този коментар]
Относно маските при маркиране на пакетите
От: bextar <sonyxwing__at__mail __точка__ bg>
На: 25-10-2006@8:43 GMT+2
Оценка: 1/НеутраленVladsun и двете статии са доста добри.
Но има нещо което не ми е ясно. Кажи ми моля те, какво се случва с маските при маркиране на пакетите с IPMARK, ако маската на мрежата не е /24 а е /22 (как при това положение би работило tc_to)
[Отговори на този коментар]
Към: Относно маските при маркиране на паке
От: Vladsun <vsmin< at >mail__dot__bg>
На: 25-10-2006@12:10 GMT+2
Оценка: 1/Неутрален/24 маска - взимат се последните 8 бита;
000...0000 1111 1111 - 00..0FF
/23 маска - взимат се последните 9 бита;
000...0001 1111 1111 - 00..1FF
/22 маска - взимат се последните 10 бита;
000...0011 1111 1111 - 00..3FF
;)
т.е.
--and-mask=0x3ff
OR-маската трябва да ти е извън AND-маската и задължитено да е от вида 0001 XXXX, заради действието на неявните филтри в TC-то. Освен това разликата между всеки две OR-маски използвани за маркиране на различните видове трафици трябва да е не по-малка от броят на хостовете в мрежата, която избираш чрез AND-маската.
Примерно:
--or-mask=0x11000 BG/DN
--or-mask=0x12000 INT/DN
--or-mask=0x13000 BG/UP
--or-mask=0x14000 INT/UP
Редактиран на: 27-10-2006@1:49
[Отговори на този коментар]
Към: Към: Относно маските при маркиране на паке
От: bextar <sonyxwing (a) mail __точка__ bg>
На: 27-10-2006@15:18 GMT+2
Оценка: 1/НеутраленМного благодаря за разяснението!!!
[Отговори на този коментар]
patchvane
От: pepino
На: 1-11-2006@15:05 GMT+2
Оценка: 1/НеутраленМоже ли да дадеш описание и линкчета, как точно пачваш iptables и кернела за IPMARK, че аз нещо не успявам :(
[Отговори на този коментар]
Към: patchvane
От: Vladsun <vsmin__at__mail __точка__ bg>
На: 2-11-2006@9:38 GMT+2
Оценка: 1/Неутрален./runme IPMARK в директорията, където си разархивирал Patch-O-Matic-NG. И това е :)
Файловете можеш да ги дръпнеш от
http://ipset.netfilter.org/install.html
[Отговори на този коментар]
Към: Към: patchvane
От: pepino <pepi (a) ibn__dot__bg>
На: 2-11-2006@19:35 GMT+2
Оценка: 1/НеутраленЗа съжаление при мене не мина толкова гладко:
1. инсталирах SET от patch_o_matic_ng : ./runme set
2. в най-новия patch_o_matic нема IPMARK:
- дърпам некой стар прилагам един друг пач в/у пача :) и чак тогава може да се проложи ./runme IPMARK.
"Ако сам не си помогнеш, никой не може да ти помогне!" ;)
[Отговори на този коментар]
Към: Към: Към: patchvane
От: Vladsun <vsmin< at >mail __точка__ bg>
На: 3-11-2006@11:38 GMT+2
Оценка: 1/Неутрален"... 2. в най-новия patch_o_matic нема IPMARK: ..."
А сигурен ли си, че вече не ти е бил препачнат в кернела?
[Отговори на този коментар]
Към: Към: Към: Към: patchvane
От: pepino
На: 3-11-2006@14:10 GMT+2
Оценка: 1/НеутраленАми сигурен съм, немаше нищо в кернела. Кернела го дърпам от kernel.org. След патчовете се появяват съответните опции.
[Отговори на този коментар]
Към: Към: Към: Към: Към: patchvane
От: vanka <filipov__at__bol __точка__ bg>
На: 22-01-2007@21:59 GMT+2
Оценка: 1/НеутраленАми може преди това да кажеш runme --download.След това ще видиш, че ще имаш още няколко пача.След това можеш да го пачнеш. Аз съм го пачнал с IPTABLES 1.3.7 , IPSET 20070116 , patch-o-matic от същата дата.Проблема е в това при мене, че не мога да видя как ще намаля tc командите със съответните класове и филтри на 4 за една мрежа от 256 адреса ?Някой дали може да каже ? В примерите няма дадено или по точно в един от тях има дадени , но там пак ще се изгенерират много класове и qdisc правила.
[Отговори на този коментар]
Problem s izpolzvaneto na ipset & bash scr
От: diablodh <diablodh__at__mail__dot__bg>
На: 16-11-2006@12:54 GMT+2
Оценка: 1/НеутраленИмам следния проблем след компилирането на ипсет в/у 3 машини на 2 от тях СуСЕ 10.1 64бит и Слак 32
ипсет не иска да се стартира през баш скрипт, а от конзолата работи
на СуСЕ 10.1 32бит работи и през баш .
strace показва, че stat64() ne намира faila ipset където и да е сложен.
[Отговори на този коментар]
Към: Problem s izpolzvaneto na ipset & bas
От: Vladsun <vsmin (a) mail< dot >bg>
На: 16-11-2006@23:35 GMT+2
Оценка: 1/НеутраленСъжалявам, но не мога да ти помогна - нямам знания за това.
Пусни една тема във форума, може пък някой да ти помогне.
[Отговори на този коментар]
Към: Към: Problem s izpolzvaneto na ipset
От: diablodh <diablodh (a) mail __точка__ bg>
На: 18-11-2006@12:21 GMT+2
Оценка: 1/НеутраленОткрих решение преименуването на изпълнимия файл решава проблема.
Сега търся защо когато се вкарват редове в сета в движение не сработва а трябва да се флушне за да направи промените.
[Отговори на този коментар]
Към: Към: Към: Problem s izpolzvaneto na i
От: Vladsun <vsmin __@__ mail__dot__bg>
На: 19-11-2006@22:16 GMT+2
Оценка: 1/НеутраленСигурен ли си, че $PATH в конзолата и в bash-скрипта са ти еднакви. Имам подозрение, че работиш с различни версии на ipset/ipstables през конзолата и bash.
[Отговори на този коментар]
kernel panic
От: bad_day
На: 18-01-2007@9:54 GMT+2
Оценка: 1/Неутраленtc filter add dev ethX parent 1:0 protocol ip fw
гърми с kernel panic...
при някого другиго случва ли се...
и от какво може да е... как да debug?
[Отговори на този коментар]
Хубава статия, но ... нещо не разбрах ...
От: vanka <filipov__at__bol< dot >bg>
На: 22-01-2007@23:09 GMT+2
Оценка: 1/НеутраленНещо не ми стана ясно как след като маркирам с IPMARK пакетите , мога да се отърва от многото правила за филтри, класове и qdisc-ове които по принцип са по 4 за IP. До колкото видях може би мога да се махнат само филтрите, но тогава пак остават достатъчно от класове и qdisc-ове и не виждам как могат да се направят на 4 за една мрежа от клас C (256 адреса) ?Някой дали може да каже как се прави ?
[Отговори на този коментар]
Вижте тук
От: Начинаещ
На: 24-01-2007@9:56 GMT+2
Оценка: 1/НеутраленЧовека го е направил.
http://openfmi.net/projects/flattc/
[Отговори на този коментар]
FATAL: Module ip_tables not found.
От: Darky <vasilvalchev __@__ abv< dot >bg>
На: 28-01-2007@14:01 GMT+2
Оценка: 1/Неутраленroot@gamearea:~# iptables -A FORWARD -t
mangle -j MARK --set-mark 1
FATAL: Module ip_tables not found.
Ето това е кода който ми създава проблеми!
Качих си новия кернел, компилирах го с
ipset, ipmark, iptables, прекомпилирах си
нещата и уж всичко си работи...
Да ама не...на тоя ред ми прави парчета!
Какво би трябвало да значи това, след като
почти всичко в Networking Options на кернела
ми е активирано(изключая трите модула дето
пи правят парчета при конфига, ip_tables не
е между тях). На iptables всички модули
освен 1 ненужен са активирани и вградени в
ядрото.
Помагайте... какво е това чудо !?
[Отговори на този коментар]
Could someone translate into english?
От: theologu <theologu (a) gmail[ точка ]com>
На: 2-08-2007@14:56 GMT+2
Оценка: 1/НеутраленHello guys,
I looked of this article and find it very interesting, but I am not a bulgarian speaker and I cannot understand the whole of it. Could someone be so kind and translate it in english? I left my email here. Thanks!
[Отговори на този коментар]
iptables v1.3.5: Unknown arg `--addr=dst'
От: mile
На: 30-10-2007@22:06 GMT+2
Оценка: 1/Неутраленiptables v1.3.5: Unknown arg `--addr=dst'
ядрото е пачнато с всичко какво да модпробна за
да оправиа това
[Отговори на този коментар]