Bungee 0 Posted 2008-01-07 13:23:53 Share Posted 2008-01-07 13:23:53 В общем входящий режу с помощью cbq, как зарезать исходящий?? Link to post Share on other sites
Goblin 1 Posted 2008-01-07 16:24:42 Share Posted 2008-01-07 16:24:42 реж на другом интерфейсе Link to post Share on other sites
fredik 0 Posted 2008-01-07 17:30:11 Share Posted 2008-01-07 17:30:11 tc filter add dev eth0 parent ffff: protocol ip prio 50 u32 match ip src $ip police rate 64kbit burst 10k drop flowid :1 Link to post Share on other sites
Bungee 0 Posted 2008-01-07 21:58:01 Author Share Posted 2008-01-07 21:58:01 реж на другом интерфейсе поподробнее Link to post Share on other sites
rtrt 53 Posted 2008-01-12 19:01:19 Share Posted 2008-01-12 19:01:19 Так же как и входящий, только на другом интерфейсе, нпример есть eth0 и eth1. eth0 это входящий, eth1 исходящий. Link to post Share on other sites
point 0 Posted 2008-01-13 14:04:24 Share Posted 2008-01-13 14:04:24 если я не ошибаюсь резать оно не будет если за натом Link to post Share on other sites
Cell 7 Posted 2008-01-13 20:16:40 Share Posted 2008-01-13 20:16:40 если я не ошибаюсь резать оно не будет если за натом Совершенно верно, не ошибаешься. Если интерфейс уже за НАТом, то ограничить траффик с него для каждого из юзероф не плучится. Поэтому долго трахал моск ))) как это сделать. Все оказалось проще паренной репы: iptables -t mangle -A PREROUTING -s 192.168.90.128 -j MARK --set-mark 128 а для cbq вместо RULE=192.168.90.128, пишем MARK=128 и фсе в шляпе )) Link to post Share on other sites
point 0 Posted 2008-01-14 02:46:16 Share Posted 2008-01-14 02:46:16 хм интересно глянуть пример полностью но тут сразу вижу минус в ограничении --set-mark их всего 254 Link to post Share on other sites
Sergek 123 Posted 2008-01-14 05:17:36 Share Posted 2008-01-14 05:17:36 хм интересно глянуть пример полностьюно тут сразу вижу минус в ограничении --set-mark их всего 254 Кто сказал? Щас уже около 500 марок используется Link to post Share on other sites
Cell 7 Posted 2008-01-14 19:30:18 Share Posted 2008-01-14 19:30:18 хм интересно глянуть пример полностьюно тут сразу вижу минус в ограничении --set-mark их всего 254 Действительно, кто сказал? Марка - это ДЕСЯТИЧНОЕ число и все ограничение, у меня она равна ip адресу для удобства использования ))) но никто не запрещает сделать марку 90128 ))) Насчет полного примера - не поверишь, но это пример в полном объеме )) Link to post Share on other sites
-HS- 0 Posted 2008-01-14 20:47:55 Share Posted 2008-01-14 20:47:55 Я воспользовался следующим методом (конечно это касательно впн): http://local.com.ua/forum/index.php?showto...=45entry76558 Link to post Share on other sites
Keen 10 Posted 2008-01-14 22:31:30 Share Posted 2008-01-14 22:31:30 Закроем тему про марки: The mark field is an unsigned integer, hence there can be a maximum of 4294967296 different marks Link to post Share on other sites
shyrikos 0 Posted 2008-02-06 19:48:25 Share Posted 2008-02-06 19:48:25 Вот мне нужно тоже зарезать ВСЕМ исходящий трафик (потому что инет собираюсь раздовать с тарелки,а исходящий канал дохленький).Ну так вот,как всем одним махом зарезать исходящий трафик скажем до 32 кбит\с? Операционка suse 10.3 , на нем поднят нат и биллинг, за этим всем делом шарманка со спутниковой антеной и исходящим скай-линком. А за одно и как входящий до пол мегабита обрубить тоже всем.Помогите пожалуйста. Link to post Share on other sites
Cell 7 Posted 2008-02-08 12:34:18 Share Posted 2008-02-08 12:34:18 Вот мне нужно тоже зарезать ВСЕМ исходящий трафик (потому что инет собираюсь раздовать с тарелки,а исходящий канал дохленький).Ну так вот,как всем одним махом зарезать исходящий трафик скажем до 32 кбит\с? Операционка suse 10.3 , на нем поднят нат и биллинг, за этим всем делом шарманка со спутниковой антеной и исходящим скай-линком.А за одно и как входящий до пол мегабита обрубить тоже всем.Помогите пожалуйста. Тут уже все описали и разжевали. Покопай в сторону cbq - это скрипт такой, который при помощи конфига рулит хитрыми правилами iproute2 чтобы всем исходящий резануть достаточно всех промаркировать одной маркой ))) iptables -t mangle -A PREROUTING -s 192.168.90.0/24 -j MARK --set-mark 333 Link to post Share on other sites
shyrikos 0 Posted 2008-02-08 22:02:17 Share Posted 2008-02-08 22:02:17 Вот мне нужно тоже зарезать ВСЕМ исходящий трафик (потому что инет собираюсь раздовать с тарелки,а исходящий канал дохленький).Ну так вот,как всем одним махом зарезать исходящий трафик скажем до 32 кбит\с? Операционка suse 10.3 , на нем поднят нат и биллинг, за этим всем делом шарманка со спутниковой антеной и исходящим скай-линком.А за одно и как входящий до пол мегабита обрубить тоже всем.Помогите пожалуйста. Тут уже все описали и разжевали. Покопай в сторону cbq - это скрипт такой, который при помощи конфига рулит хитрыми правилами iproute2 чтобы всем исходящий резануть достаточно всех промаркировать одной маркой ))) iptables -t mangle -A PREROUTING -s 192.168.90.0/24 -j MARK --set-mark 333 не могли бы привести какой нибудь пример разбора такого случая,а то сложновато разобраться,немного запутался в этих скриптах. Не могу толком понять что и в каком порядке использовать: Так как уже прочитал материал и из них узнал про разные скрипты,пока что сузил обзор на такие скрипты как ESFQ,HTB и cbq. а дальще какая то путаница пошла.Но немного разобравшись сузил для такой задачи,но все равно не хватает опыта и наглядности: 1)для исходящего! нужно как то сделать всякие приоритеты и прочее для разного типа трафика,я так понял это делается с помощью HTB и cbq.только вот толком не понял в каком случае использовать какой скрипт :00: далее нужно впихнуть во все это ESFQ,чтобы все делилось поровну. Так я понимаю,не чего не пропустил?я это сейчас осмысливаю в первый раз,так что поправте меня пожалуйста,если я не так все понимаю... Дальше совсем не понятно как прикрутить это: iptables -t mangle -A PREROUTING -s 192.168.90.0/24 -j MARK --set-mark 333 и совместить с остальными правилами или классами или марками...ааа,попа!не пойму... 2)для входящего решил поставить Squid в прозрачном режиме и валить всякие злостные закачки + тут я делаю выигрышь небольшой на кэше. Вот как конкретно каждому ip порезать скорость входящую,так и не понял.везде говорят только про входящую скорость от провайдера и не чего про уменьщение скорости на самом шлюзе... Можно конечно проксей резать абсолютно все классы трафика,но я думаю это не самый лучщий способ...и что будет тварится если вдруг прокся рухнет! Вот такой вот я чайник получается,но очень стараюсь во все это въехать,поэтому прошу о помощи. Link to post Share on other sites
Cell 7 Posted 2008-02-09 20:06:31 Share Posted 2008-02-09 20:06:31 Уф.. ели осилил. Короче говоря. Забываем про все на свете кроме cbq. Если хочешь справедливого разделения канала на всю сеть - ман тебе в помощь, там все есть. Насчет как резать на всю сеть исходящий траффик: в том месте, где ты будешь описывать исходящий трафик от сети - вместо RULE=192.168.90.0/24, не стоит понимать буквалльно т.к. это пример ))) MARK=333 и это тоже пример ))) а iptables -t mangle -A PREROUTING -s 192.168.90.0/24 -j MARK --set-mark 333 это правила файрвола, которое надо прописать предварительно в скрипте его запуска для того чтобы поставить какую-нить марку на пакеты, идущие от сети. Link to post Share on other sites
shyrikos 0 Posted 2008-02-10 21:49:37 Share Posted 2008-02-10 21:49:37 iptables -t mangle -A PREROUTING -s 192.168.90.0/24 -j MARK --set-mark 333 это правила файрвола, которое надо прописать предварительно в скрипте его запуска для того чтобы поставить какую-нить марку на пакеты, идущие от сети. я так понял,мы создаем это правило и помечаем его маркой. потом делаем примерно то что приведено в этом примере: пример и начинаю делать себе по аналогии с этим:пример который я использую 1) создаем различные классы обработки трафика tc qdisc add dev $DEV root handle 1: htb default 26 tc class add dev $DEV parent 1: classid 1:1 htb rate ${RATEUP}kbit tc class add dev $DEV parent 1:1 classid 1:20 htb rate $[$RATEUP/7]kbit ceil ${RATEUP}kbit prio 0 tc class add dev $DEV parent 1:1 classid 1:21 htb rate $[$RATEUP/7]kbit ceil ${RATEUP}kbit prio 1 tc class add dev $DEV parent 1:1 classid 1:22 htb rate $[$RATEUP/7]kbit ceil ${RATEUP}kbit prio 2 tc class add dev $DEV parent 1:1 classid 1:23 htb rate $[$RATEUP/7]kbit ceil ${RATEUP}kbit prio 3 tc class add dev $DEV parent 1:1 classid 1:24 htb rate $[$RATEUP/7]kbit ceil ${RATEUP}kbit prio 4 tc class add dev $DEV parent 1:1 classid 1:25 htb rate $[$RATEUP/7]kbit ceil ${RATEUP}kbit prio 5 tc class add dev $DEV parent 1:1 classid 1:26 htb rate $[$RATEUP/7]kbit ceil ${RATEUP}kbit prio 6 2)подключаем дисциплины обработки очереди к подклассам: tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10 tc qdisc add dev $DEV parent 1:21 handle 21: sfq perturb 10 tc qdisc add dev $DEV parent 1:22 handle 22: sfq perturb 10 tc qdisc add dev $DEV parent 1:23 handle 23: sfq perturb 10 tc qdisc add dev $DEV parent 1:24 handle 24: sfq perturb 10 tc qdisc add dev $DEV parent 1:25 handle 25: sfq perturb 10 tc qdisc add dev $DEV parent 1:26 handle 26: sfq perturb 10 3)направляем трафик в классы tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:20 tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 21 fw flowid 1:21 tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 22 fw flowid 1:22 tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 23 fw flowid 1:23 tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 24 fw flowid 1:24 tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 25 fw flowid 1:25 tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 26 fw flowid 1:26 4)а теперь делаем правила файрвола: эти правила пока что бездумно взяты... # маркируем пакеты с помощью fwmark - устанавливаем значения 20-26 в зависимости от # нужного класса. Высший приоритет - 20. iptables -t mangle -A MYSHAPER-OUT -p tcp --sport 0:1024 -j MARK --set-mark 23 # Низкоприоритетный трафик iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 0:1024 -j MARK --set-mark 23 # "" iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 20 -j MARK --set-mark 26 # порт ftp-data, низкий приоритет iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 5190 -j MARK --set-mark 23 # интернет-пейджер aol iptables -t mangle -A MYSHAPER-OUT -p icmp -j MARK --set-mark 20 # ICMP (ping) - высокий приоритет, # будем удивлять друзей iptables -t mangle -A MYSHAPER-OUT -p udp -j MARK --set-mark 21 # распознавание имен DNS (маленькие пакеты) iptables -t mangle -A MYSHAPER-OUT -p tcp --dport ssh -j MARK --set-mark 22 # secure shell iptables -t mangle -A MYSHAPER-OUT -p tcp --sport ssh -j MARK --set-mark 22 # secure shell iptables -t mangle -A MYSHAPER-OUT -p tcp --dport telnet -j MARK --set-mark 22 # telnet (ew...) iptables -t mangle -A MYSHAPER-OUT -p tcp --sport telnet -j MARK --set-mark 22 # telnet (ew...) iptables -t mangle -A MYSHAPER-OUT -p ipv6-crypt -j MARK --set-mark 24 # IPSec - мы не знаем полезную нагрузку, однако... iptables -t mangle -A MYSHAPER-OUT -p tcp --sport http -j MARK --set-mark 25 # локальный веб-сервер iptables -t mangle -A MYSHAPER-OUT -p tcp -m length --length :64 -j MARK --set-mark 21 # маленькие пакеты # скорее всего ACK-пакеты iptables -t mangle -A MYSHAPER-OUT -m mark --mark 0 -j MARK --set-mark 26 # избыточно - смаркировать все неотмаркированые В принципи шаблон наверное какой то такой?!для того чтобы мой слабенький исходящий канал использовать с максимальной отдачей. Этим я оптимизирую исходящий трафик.Делать нужно это на интерфейсе смотрящем в интернет я так понимаю?! А теперь помимо этого,нужно сделать,чтобы люди из сети,могли отсылать через шлюз данные в интернет со скоростью не больще 32 kbit\s c каждого ip. Получается мне нужно отбрасывать пакеты которые приходят от них,тем самым добившись понижения скорости?Это нужно делать на каком интерфейсе,который смотрит в сеть?и куда прикручивать эту строчку: iptables -t mangle -A PREROUTING -s 192.168.90.0/24 -j MARK --set-mark 333 ? Link to post Share on other sites
shyrikos 0 Posted 2008-02-11 16:30:58 Share Posted 2008-02-11 16:30:58 ну как же прикрутить... Link to post Share on other sites
Cell 7 Posted 2008-02-11 20:11:19 Share Posted 2008-02-11 20:11:19 ну как же прикрутить... Да тут тебе никто не доктор. Я же говорил забудь обо всем и читай про cbq. Тогда прикрутишь легко. Ты не слушаешься и cbq не используешь а сразу кинулся делать все ручками. Вот и вылавливай теперь эту марку руками ))) Link to post Share on other sites
shyrikos 0 Posted 2008-02-11 20:29:58 Share Posted 2008-02-11 20:29:58 ну как же прикрутить... Да тут тебе никто не доктор. Я же говорил забудь обо всем и читай про cbq. Тогда прикрутишь легко. Ты не слушаешься и cbq не используешь а сразу кинулся делать все ручками. Вот и вылавливай теперь эту марку руками ))) а как мне еще если не ручками все делать... :'( Link to post Share on other sites
shyrikos 0 Posted 2008-02-11 20:41:38 Share Posted 2008-02-11 20:41:38 Я же говорил забудь обо всем и читай про cbq. Тогда прикрутишь легко. а htb не легче получится? нельзя как нибудь сделать, чтобы сначала резалась скорость от каждого ip сети,а потом уже выполнялась вся требуха,которую я привел выще?где она должна резаться, в корневой дисциплине? Link to post Share on other sites
Watson 0 Posted 2008-02-11 20:54:23 Share Posted 2008-02-11 20:54:23 Я же говорил забудь обо всем и читай про cbq. Тогда прикрутишь легко. а htb не легче получится? нельзя как нибудь сделать, чтобы сначала резалась скорость от каждого ip сети,а потом уже выполнялась вся требуха,которую я привел выще?где она должна резаться, в корневой дисциплине? Может НТВ тебе поможет http://htb-tools.arny.ro/content.php?content.11 Link to post Share on other sites
shyrikos 0 Posted 2008-02-11 21:22:07 Share Posted 2008-02-11 21:22:07 Может НТВ тебе поможет http://htb-tools.arny.ro/content.php?content.11 врятли...если сейчас еще буду переводить что то,то вскроюсь... может можно как то поставить фильтр на корневой класс 1:1 и и оформить этот фильтр как нибудь чтобы присутствовало: match ip src 192.168.1.0/24 или вот тут нашел кусочек: tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 360kbit tc class add dev $DEV parent 1: classid 1:1 cbq rate 32kbit \ allot 1500 prio 5 bounded isolated tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip src 195.96.96.97 flowid 1:1 но тогда действительно дальще походу придется все на cbq делать... Link to post Share on other sites
rtrt 53 Posted 2008-02-12 12:31:18 Share Posted 2008-02-12 12:31:18 Если хочешь справедливого разделения канала на всю сеть - ман тебе в помощь, там все есть. Немогли бы Вы дать ссылочку где можно почитать.... Спасибо! Link to post Share on other sites
shyrikos 0 Posted 2008-02-12 14:46:35 Share Posted 2008-02-12 14:46:35 Вот написал скрипт ограничение трафика приходящего от каждого пользователя из сети.Кто подскажет,будет ли он работать? И как его вообще поставить в автоматическую загрузку? #интерфейс смотрящий в сеть.режем скорость сразу на входе. DEV=eth1 RATEUP=360 RATEDN=3800 # Ограничиваем трафик приходящий от пользователя tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 360kbit tc class add dev $DEV parent 1: classid 1:1 cbq rate 64kbit \ allot 1500 prio 5 bounded isolated tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \ match ip dst 192.168.0.0/16 flowid 1:1 iptables -t mangle -N SHAPER-IN iptables -t mangle -I PREROUTING -i $DEV -j SHAPER-IN iptables -t mangle -A SHAPER-IN -s 192.168.0.0/16 -j MARK --set-mark 10 Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now