НТВ

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

tramX
Сообщения: 200

НТВ

Сообщение tramX »

Здравствуйте. Объясните как работать с НТВ. В одном примере сразу написано - На ядро нужно наложить заплату, для поддержки HTB.
iproute

Убедитесь, что tc поддерживает HTB. Скомпилированная версия распространяется вместе с HTB.
iptables

Как наложить заплатку. и как убедиться что tc поддерживает НТВ. Что потом делать? Создать файл прописать в нем правила, сделать его исполняемым и поместить в /etc/init.d чтоб он запускался при старте системы? У меня Debian Etch 2.6.18-4-k7. Нужно просто порезать скорость для ip
Спасибо сказали:
zkrvova
Сообщения: 280

Re: НТВ

Сообщение zkrvova »

У меня Htb поддерживался и на RedHat 9, ядро 2.4, думаю что у тебя тоже уже всё ок.

А на счёт как работать, я читал тут:
http://www.nixp.ru/articles/iproute2
очень подробно описывается.
ну ещё в других местах.

Я конечно ещё не полностью разобрался но если будут вопросы попробую помочь.
Спасибо сказали:
tramX
Сообщения: 200

Re: НТВ

Сообщение tramX »

Напишите пример как для отдельных ip адресов поделить входящую и исходящую скорость.
Спасибо сказали:
tramX
Сообщения: 200

Re: НТВ

Сообщение tramX »

tc qdisc add dev ppp0 root tbf rate 220kbit latency 50ms burst 1500 - В этом примере мы указываем что максимальная скорость интерфейса в обе стороны не превышает 220kbit ? Или это только входящий? Как отдельно задавать вход и исход?
Спасибо сказали:
zkrvova
Сообщения: 280

Re: НТВ

Сообщение zkrvova »

tramX писал(а):
02.10.2007 11:48
tc qdisc add dev ppp0 root tbf rate 220kbit latency 50ms burst 1500 - В этом примере мы указываем что максимальная скорость интерфейса в обе стороны не превышает 220kbit ? Или это только входящий? Как отдельно задавать вход и исход?


Все шейперы ограничивают только исходящий. Если хочеш ограничить входящий трафик, то надо ограничивать исходящий на противоположном интерфейсе.
Спасибо сказали:
tramX
Сообщения: 200

Re: НТВ

Сообщение tramX »

Вот пример как порезать входящий и исходящий трафик http://lafox.net/support/index.php?showtopic=5551 Как правильно описать ?
Спасибо сказали:
Аватара пользователя
serge_m
Сообщения: 317
ОС: ASP Linux 14

Re: НТВ

Сообщение serge_m »

tramX писал(а):
02.10.2007 22:35
Вот пример как порезать входящий и исходящий трафик http://lafox.net/support/index.php?showtopic=5551 Как правильно описать ?

Резать и входящий_в_локалку_из_инета и исходящий_из_локалки_в_инет трафик можно только на роутере. Как уже было сказано выше резать можно только трафик !уходящий! на какой-либо сетевой интерфейс. В случае роутера мы для входящего и для исходящего трафика просто режем исходящий_на_нужном_интерфейсе. В случае машины конечного пользователя всё что можно сделать - попытаться уменьшить входящий трафик косвенно, тоесть урезанием исходящего. Сам недавно занимался нарезкой трафика для своей миниатюрной сети, реализовал именно при помощи HTB, если надо - могу дать свой скрипт.


PS Прочитал то что написал и понял что слово "трафик" не кореектно употребляется...речь идёт скорее о пропускной способности канала или скорости интернета :) кому как удобнее/привычне/правильнее
Спасибо сказали:
tramX
Сообщения: 200

Re: НТВ

Сообщение tramX »

Поделитесь скриптом. На готовом примере легче разбираться.
Спасибо сказали:
Аватара пользователя
serge_m
Сообщения: 317
ОС: ASP Linux 14

Re: НТВ

Сообщение serge_m »

Код:

#!/bin/sh IPT="/sbin/iptables" #Удаляем дисциплину вместе со всеми классами и фильтрами которые касаются ppp0, то есть исходящего трафика tc qdisc del dev ppp0 root #Удаляем дисциплину вместе со всеми классами и фильтрами которые касаются eth0, то есть входящего трафика tc qdisc del dev eth0 root #Удаляем все правила в таблице mangle из цепочек iptables $IPT -t mangle -F ################################_РЕЖЕМ ИСХОДЯЩИЙ ГРАФИК_################################################### #По-умолчанию трафик проходит через класс 1:13 tc qdisc add dev ppp0 root handle 1: htb default 13 tc class add dev ppp0 parent 1: classid 1:1 htb rate 60kbit ceil 60kbit #Интерактивный трафик ping,SSH,DNS,ICQ и пакеты с установленным битом SYN tc class add dev ppp0 parent 1:1 classid 1:10 htb rate 50kbit ceil 50kbit prio 0 #Трафик от локальных WWW,FTP -серверов tc class add dev ppp0 parent 1:1 classid 1:11 htb rate 20kbit ceil 60kbit prio 1 #Трафик от локальных процессов и пакеты с установленным битом Maximize-Throughput в поле TOS tc class add dev ppp0 parent 1:1 classid 1:12 htb rate 20kbit ceil 60kbit prio 2 #Исходящий трафик из локальной сети tc class add dev ppp0 parent 1:1 classid 1:13 htb rate 30kbit ceil 60kbit prio 3 ##Устанавливаем фильтры, которые будут выполнять классификацию пакетов основываясь на метках iptables #устанавливается соответствие между {handle x fw} и классами {classid x:x} tc filter add dev ppp0 parent 1:0 protocol ip prio 1 handle 1 fw classid 1:10 tc filter add dev ppp0 parent 1:0 protocol ip prio 2 handle 2 fw classid 1:11 tc filter add dev ppp0 parent 1:0 protocol ip prio 3 handle 3 fw classid 1:12 tc filter add dev ppp0 parent 1:0 protocol ip prio 4 handle 4 fw classid 1:13 $IPT -t mangle -A OUTPUT -j MARK --set-mark 0x3 $IPT -t mangle -A OUTPUT -j RETURN echo -n "Set-MARK 1" $IPT -t mangle -A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 0x1 $IPT -t mangle -A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j RETURN $IPT -t mangle -A PREROUTING -p icmp -j MARK --set-mark 0x1 $IPT -t mangle -A PREROUTING -p icmp -j RETURN $IPT -t mangle -A PREROUTING -m tos --tos Minimize-Delay -j MARK --set-mark 0x1 $IPT -t mangle -A PREROUTING -m tos --tos Minimize-Delay -j RETURN $IPT -t mangle -A PREROUTING -p tcp -m tcp --sport 22 --dport 22 -j MARK --set-mark 0x1 $IPT -t mangle -A PREROUTING -p tcp -m tcp --sport 22 --dport 22 -j RETURN $IPT -t mangle -A PREROUTING -p udp --sport 68 --dport 67 -j MARK --set-mark 0x1 $IPT -t mangle -A PREROUTING -p udp --sport 68 --dport 67 -j RETURN $IPT -t mangle -A PREROUTING -p tcp -m tcp --dport 5190 -j MARK --set-mark 0x1 $IPT -t mangle -A PREROUTING -p tcp -m tcp --dport 5190 -j RETURN echo [ok] echo -n "Set-MARK 2" echo [ok] echo -n "Set-MARK 3" #$IPT -t mangle -A PREROUTING -m tos --tos Maximize-Throught -j MARK --set-mark 0x3 #$IPT -t mangle -A PREROUTING -m tos --tos Maximize-Throught -j RETURN echo [ok] echo -n "Set-MARK 4" $IPT -t mangle -A PREROUTING -s 192.168.0.0/24 -d ! 192.168.0.0/24 -j MARK --set-mark 0x4 $IPT -t mangle -A PREROUTING -s 192.168.0.0/24 -d ! 192.168.0.0/24 -j RETURN echo [ok] ################################_РЕЖЕМ ВХОДЯЩИЙ ТРАФИК_################################# tc qdisc add dev eth0 root handle 1: htb default 20 tc class add dev eth0 parent 1: classid 1:1 htb rate 256kbit ceil 256kbit tc class add dev eth0 parent 1:1 classid 1:20 htb rate 64kbit ceil 200kbit prio 0 tc class add dev eth0 parent 1:1 classid 1:21 htb rate 64kbit ceil 256kbit prio 0 tc class add dev eth0 parent 1:1 classid 1:22 htb rate 64kbit ceil 256kbit prio 0 tc class add dev eth0 parent 1:1 classid 1:23 htb rate 64kbit ceil 256kbit prio 0 tc class add dev eth0 parent 1:1 classid 1:24 htb rate 32kbit ceil 256bit prio 1 tc class add dev eth0 parent 1:1 classid 1:25 htb rate 32kbit ceil 32kbit prio 2 tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 20 fw classid 1:20 tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 21 fw classid 1:21 tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 22 fw classid 1:22 tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 23 fw classid 1:23 tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 24 fw classid 1:24 tc filter add dev eth0 parent 1:0 protocol ip prio 2 handle 25 fw classid 1:25 $IPT -t mangle -A FORWARD -i ppp0 -d 192.168.0.2 -j MARK --set-mark 20 $IPT -t mangle -A FORWARD -i ppp0 -d 192.168.0.3 -j MARK --set-mark 21 $IPT -t mangle -A FORWARD -i ppp0 -d 192.168.0.4 -j MARK --set-mark 22 $IPT -t mangle -A FORWARD -i ppp0 -d 192.168.0.242 -j MARK --set-mark 23 $IPT -t mangle -A INPUT -i ppp0 -j MARK --set-mark 24 #$IPT -t mangle -A FORWARD -i ppp0 -d 192.168.0.2 -j MARK --set-mark 25

Сразу оговорочка, скрипт не претендует на уникальность и правильность во всех аспектах...вполне возможно есть варианты лучше.
Есть ещё простенький скрипт который выключает шейпинг....Всё это составлено благодаря LARTC
Спасибо сказали:
tramX
Сообщения: 200

Re: НТВ

Сообщение tramX »

Скажите чтоб скрипт заработал нужно создать в /etc/init.d файл поместить в него этот текст, сделать его исполняемым и все?
Спасибо сказали:
Аватара пользователя
serge_m
Сообщения: 317
ОС: ASP Linux 14

Re: НТВ

Сообщение serge_m »

tramX писал(а):
19.10.2007 17:23
Скажите чтоб скрипт заработал нужно создать в /etc/init.d файл поместить в него этот текст, сделать его исполняемым и все?

Не знаю как правильне, но я создал файл shaper с таким содержанием, сделал его исполняемым, поместил в /usr/bin/, а для автоматического запуска добавил в файл /etc/rc.d/rc.local строку

Код: Выделить всё

/usr/bin/shaper
Спасибо сказали:
tramX
Сообщения: 200

Re: НТВ

Сообщение tramX »

Так это нужно маркировать пакеты с помощью iptables
Спасибо сказали:
Аватара пользователя
serge_m
Сообщения: 317
ОС: ASP Linux 14

Re: НТВ

Сообщение serge_m »

tramX писал(а):
20.10.2007 01:23
Так это нужно маркировать пакеты с помощью iptables

:crazy: прошло больше чем две недели с того момента как я выложил свой скрипт. А вы только обнаружили для себя такую новость. УЖАССС Если посмотрите в скрипт ещё внимательнее то увидите что правила маркировки пакетов для iptables добавляются прямо этим скриптом. А что вас собственно не устраивает в iptables? Есть и другие фильтры которые не завязаны на маркирование пакетов файрволлом - всё в ваших руках
Спасибо сказали:
tramX
Сообщения: 200

Re: НТВ

Сообщение tramX »

прошло больше чем две недели с того момента как я выложил свой скрипт.
Отходил не на долго. Меня в IPTABLES все устраивает только у меня скрипт не запускается. Не может найти /sbin/iptables
Спасибо сказали:
Аватара пользователя
serge_m
Сообщения: 317
ОС: ASP Linux 14

Re: НТВ

Сообщение serge_m »

tramX писал(а):
20.10.2007 20:57
прошло больше чем две недели с того момента как я выложил свой скрипт.
Отходил не на долго. Меня в IPTABLES все устраивает только у меня скрипт не запускается. Не может найти /sbin/iptables

ну напишите в начале строки вместо
IPT="/sbin/iptables"
IPT=`which iptables`

А ещё выполните эту команду(which iptables) в консоли от рута и увидите куда он установлен.
Спасибо сказали:
tramX
Сообщения: 200

Re: НТВ

Сообщение tramX »

/sbin/iptables у меня тоже в этой директории. Только IPT не подходит надо менять на iptables

#Удаляем все правила в таблице mangle из цепочек iptables
$IPT -t mangle -F

Отдельно создавалась?
Спасибо сказали:
Аватара пользователя
serge_m
Сообщения: 317
ОС: ASP Linux 14

Re: НТВ

Сообщение serge_m »

Если вы спрашиваете про таблицу mangle, создавалась ли она отдельно - отвечу. Да она создавалась отдельно группой разработчиков iptrables и netfilter...это встроенная таблица iptables предназначенная для внесения изменений в заголовки пакетов


PS У модераторов наверное выходной сегодня :)
Спасибо сказали:
tramX
Сообщения: 200

Re: НТВ

Сообщение tramX »

/sbin/iptables у меня тоже в этой директории. Только IPT не подходит надо менять на iptables

#Удаляем все правила в таблице mangle из цепочек iptables
$IPT -t mangle -F

Отдельно создавалась?
Спасибо сказали:
Аватара пользователя
Juliette
Сообщения: 5058
Статус: ROSA Lab
ОС: Ubuntu LTS, Mandriva 2011

Re: НТВ

Сообщение Juliette »

Люди, мне кажется эту тему лучше закрыть.
Ибо очень странные тут ответы уважаемого автора топика... :crazy:
Спасибо сказали:
Аватара пользователя
Juliette
Сообщения: 5058
Статус: ROSA Lab
ОС: Ubuntu LTS, Mandriva 2011

Re: НТВ

Сообщение Juliette »

По совету совестливых гуманистов открываю и переношу в "новички". :not_i:
Спасибо сказали: