Jump to content
Local
Sign in to follow this  
Bungee

как зарезать исходящий трафик:?

Recommended Posts

В общем входящий режу с помощью cbq, как зарезать исходящий??

Share this post


Link to post
Share on other sites

tc filter add dev eth0 parent ffff: protocol ip prio 50 u32 match ip src $ip police rate 64kbit burst 10k drop flowid :1

Share this post


Link to post
Share on other sites

Так же как и входящий, только на другом интерфейсе, нпример есть eth0 и eth1. eth0 это входящий, eth1 исходящий.

Share this post


Link to post
Share on other sites

если я не ошибаюсь резать оно не будет если за натом

Share this post


Link to post
Share on other sites
если я не ошибаюсь резать оно не будет если за натом

Совершенно верно, не ошибаешься. Если интерфейс уже за НАТом, то ограничить траффик с него для каждого из юзероф не плучится. Поэтому долго трахал моск ))) как это сделать. Все оказалось проще паренной репы:

iptables -t mangle -A PREROUTING -s 192.168.90.128 -j MARK --set-mark 128

а для cbq вместо

 RULE=192.168.90.128,

пишем

MARK=128

 

и фсе в шляпе ))

Share this post


Link to post
Share on other sites

хм интересно глянуть пример полностью

но тут сразу вижу минус в ограничении --set-mark их всего 254

Share this post


Link to post
Share on other sites
хм интересно глянуть пример полностью

но тут сразу вижу минус в ограничении --set-mark их всего 254

Кто сказал? :)

Щас уже около 500 марок используется :)

Share this post


Link to post
Share on other sites
хм интересно глянуть пример полностью

но тут сразу вижу минус в ограничении --set-mark их всего 254

Действительно, кто сказал? Марка - это ДЕСЯТИЧНОЕ число и все ограничение, у меня она равна ip адресу для удобства использования ))) но никто не запрещает сделать марку 90128 )))

Насчет полного примера - не поверишь, но это пример в полном объеме ))

Share this post


Link to post
Share on other sites

Закроем тему про марки:

The mark field is an unsigned integer, hence there can be a maximum of 4294967296 different marks

Share this post


Link to post
Share on other sites

Вот мне нужно тоже зарезать ВСЕМ исходящий трафик (потому что инет собираюсь раздовать с тарелки,а исходящий канал дохленький).Ну так вот,как всем одним махом зарезать исходящий трафик скажем до 32 кбит\с? Операционка suse 10.3 , на нем поднят нат и биллинг, за этим всем делом шарманка со спутниковой антеной и исходящим скай-линком.

А за одно и как входящий до пол мегабита обрубить тоже всем.Помогите пожалуйста.

Share this post


Link to post
Share on other sites
Вот мне нужно тоже зарезать ВСЕМ исходящий трафик (потому что инет собираюсь раздовать с тарелки,а исходящий канал дохленький).Ну так вот,как всем одним махом зарезать исходящий трафик скажем до 32 кбит\с? Операционка suse 10.3 , на нем поднят нат и биллинг, за этим всем делом шарманка со спутниковой антеной и исходящим скай-линком.

А за одно и как входящий до пол мегабита обрубить тоже всем.Помогите пожалуйста.

Тут уже все описали и разжевали. Покопай в сторону cbq - это скрипт такой, который при помощи конфига рулит хитрыми правилами iproute2

чтобы всем исходящий резануть достаточно всех промаркировать одной маркой )))

iptables -t mangle -A PREROUTING -s 192.168.90.0/24 -j MARK --set-mark 333

Share this post


Link to post
Share on other sites
Вот мне нужно тоже зарезать ВСЕМ исходящий трафик (потому что инет собираюсь раздовать с тарелки,а исходящий канал дохленький).Ну так вот,как всем одним махом зарезать исходящий трафик скажем до 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 порезать скорость входящую,так и не понял.везде говорят только про входящую скорость от провайдера и не чего про уменьщение скорости на самом шлюзе...

Можно конечно проксей резать абсолютно все классы трафика,но я думаю это не самый лучщий способ...и что будет тварится если вдруг прокся рухнет!

Вот такой вот я чайник получается,но очень стараюсь во все это въехать,поэтому прошу о помощи.

Share this post


Link to post
Share on other sites

Уф.. ели осилил.

Короче говоря. Забываем про все на свете кроме 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

это правила файрвола, которое надо прописать предварительно в скрипте его запуска для того чтобы поставить какую-нить марку на пакеты, идущие от сети.

Share this post


Link to post
Share on other sites
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

?

Share this post


Link to post
Share on other sites
ну как же прикрутить...

Да тут тебе никто не доктор. Я же говорил забудь обо всем и читай про cbq. Тогда прикрутишь легко. Ты не слушаешься и cbq не используешь а сразу кинулся делать все ручками. Вот и вылавливай теперь эту марку руками )))

Share this post


Link to post
Share on other sites
ну как же прикрутить...

Да тут тебе никто не доктор. Я же говорил забудь обо всем и читай про cbq. Тогда прикрутишь легко. Ты не слушаешься и cbq не используешь а сразу кинулся делать все ручками. Вот и вылавливай теперь эту марку руками )))

а как мне еще если не ручками все делать... :'(

Share this post


Link to post
Share on other sites
Я же говорил забудь обо всем и читай про cbq. Тогда прикрутишь легко.

а htb не легче получится?

нельзя как нибудь сделать, чтобы сначала резалась скорость от каждого ip сети,а потом уже выполнялась вся требуха,которую я привел выще?где она должна резаться, в корневой дисциплине?

Share this post


Link to post
Share on other sites
Я же говорил забудь обо всем и читай про cbq. Тогда прикрутишь легко.

а htb не легче получится?

нельзя как нибудь сделать, чтобы сначала резалась скорость от каждого ip сети,а потом уже выполнялась вся требуха,которую я привел выще?где она должна резаться, в корневой дисциплине?

Может НТВ тебе поможет http://htb-tools.arny.ro/content.php?content.11

Share this post


Link to post
Share on other sites
Может НТВ тебе поможет 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 делать... :)

Share this post


Link to post
Share on other sites
Если хочешь справедливого разделения канала на всю сеть - ман тебе в помощь, там все есть.

Немогли бы Вы дать ссылочку где можно почитать.... Спасибо!

Share this post


Link to post
Share on other sites

Вот написал скрипт ограничение трафика приходящего от каждого пользователя из сети.Кто подскажет,будет ли он работать?

И как его вообще поставить в автоматическую загрузку?

 

#интерфейс смотрящий в сеть.режем скорость сразу на входе.
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

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×