Перейти к содержимому

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


Рекомендованные сообщения

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

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

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

а для cbq вместо

 RULE=192.168.90.128,

пишем

MARK=128

 

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

Ссылка на сообщение
Поделиться на других сайтах
хм интересно глянуть пример полностью

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
хм интересно глянуть пример полностью

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
  • 4 weeks later...

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

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

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

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

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

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

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

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

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

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

Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
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

?

Ссылка на сообщение
Поделиться на других сайтах
ну как же прикрутить...

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

Ссылка на сообщение
Поделиться на других сайтах
ну как же прикрутить...

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

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

Ссылка на сообщение
Поделиться на других сайтах
Я же говорил забудь обо всем и читай про cbq. Тогда прикрутишь легко.

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

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

Ссылка на сообщение
Поделиться на других сайтах
Я же говорил забудь обо всем и читай про cbq. Тогда прикрутишь легко.

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
Может НТВ тебе поможет 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 делать... :)

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

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

Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...