НТВ
Модератор: Bizdelnick
-
tramX
- Сообщения: 200
НТВ
Здравствуйте. Объясните как работать с НТВ. В одном примере сразу написано - На ядро нужно наложить заплату, для поддержки HTB.
iproute
Убедитесь, что tc поддерживает HTB. Скомпилированная версия распространяется вместе с HTB.
iptables
Как наложить заплатку. и как убедиться что tc поддерживает НТВ. Что потом делать? Создать файл прописать в нем правила, сделать его исполняемым и поместить в /etc/init.d чтоб он запускался при старте системы? У меня Debian Etch 2.6.18-4-k7. Нужно просто порезать скорость для ip
iproute
Убедитесь, что tc поддерживает HTB. Скомпилированная версия распространяется вместе с HTB.
iptables
Как наложить заплатку. и как убедиться что tc поддерживает НТВ. Что потом делать? Создать файл прописать в нем правила, сделать его исполняемым и поместить в /etc/init.d чтоб он запускался при старте системы? У меня Debian Etch 2.6.18-4-k7. Нужно просто порезать скорость для ip
-
zkrvova
- Сообщения: 280
Re: НТВ
У меня Htb поддерживался и на RedHat 9, ядро 2.4, думаю что у тебя тоже уже всё ок.
А на счёт как работать, я читал тут:
http://www.nixp.ru/articles/iproute2
очень подробно описывается.
ну ещё в других местах.
Я конечно ещё не полностью разобрался но если будут вопросы попробую помочь.
А на счёт как работать, я читал тут:
http://www.nixp.ru/articles/iproute2
очень подробно описывается.
ну ещё в других местах.
Я конечно ещё не полностью разобрался но если будут вопросы попробую помочь.
-
tramX
- Сообщения: 200
Re: НТВ
Напишите пример как для отдельных ip адресов поделить входящую и исходящую скорость.
-
tramX
- Сообщения: 200
Re: НТВ
tc qdisc add dev ppp0 root tbf rate 220kbit latency 50ms burst 1500 - В этом примере мы указываем что максимальная скорость интерфейса в обе стороны не превышает 220kbit ? Или это только входящий? Как отдельно задавать вход и исход?
-
zkrvova
- Сообщения: 280
Re: НТВ
Все шейперы ограничивают только исходящий. Если хочеш ограничить входящий трафик, то надо ограничивать исходящий на противоположном интерфейсе.
-
tramX
- Сообщения: 200
Re: НТВ
Вот пример как порезать входящий и исходящий трафик http://lafox.net/support/index.php?showtopic=5551 Как правильно описать ?
-
serge_m
- Сообщения: 317
- ОС: ASP Linux 14
Re: НТВ
tramX писал(а): ↑02.10.2007 22:35Вот пример как порезать входящий и исходящий трафик http://lafox.net/support/index.php?showtopic=5551 Как правильно описать ?
Резать и входящий_в_локалку_из_инета и исходящий_из_локалки_в_инет трафик можно только на роутере. Как уже было сказано выше резать можно только трафик !уходящий! на какой-либо сетевой интерфейс. В случае роутера мы для входящего и для исходящего трафика просто режем исходящий_на_нужном_интерфейсе. В случае машины конечного пользователя всё что можно сделать - попытаться уменьшить входящий трафик косвенно, тоесть урезанием исходящего. Сам недавно занимался нарезкой трафика для своей миниатюрной сети, реализовал именно при помощи HTB, если надо - могу дать свой скрипт.
PS Прочитал то что написал и понял что слово "трафик" не кореектно употребляется...речь идёт скорее о пропускной способности канала или скорости интернета
-
tramX
- Сообщения: 200
Re: НТВ
Поделитесь скриптом. На готовом примере легче разбираться.
-
serge_m
- Сообщения: 317
- ОС: ASP Linux 14
Re: НТВ
Код:
#!/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: НТВ
Скажите чтоб скрипт заработал нужно создать в /etc/init.d файл поместить в него этот текст, сделать его исполняемым и все?
-
serge_m
- Сообщения: 317
- ОС: ASP Linux 14
Re: НТВ
Не знаю как правильне, но я создал файл shaper с таким содержанием, сделал его исполняемым, поместил в /usr/bin/, а для автоматического запуска добавил в файл /etc/rc.d/rc.local строку
Код: Выделить всё
/usr/bin/shaper-
serge_m
- Сообщения: 317
- ОС: ASP Linux 14
Re: НТВ
-
tramX
- Сообщения: 200
Re: НТВ
прошло больше чем две недели с того момента как я выложил свой скрипт.
Отходил не на долго. Меня в IPTABLES все устраивает только у меня скрипт не запускается. Не может найти /sbin/iptables
Отходил не на долго. Меня в IPTABLES все устраивает только у меня скрипт не запускается. Не может найти /sbin/iptables
-
serge_m
- Сообщения: 317
- ОС: ASP Linux 14
Re: НТВ
ну напишите в начале строки вместо
IPT="/sbin/iptables"
IPT=`which iptables`
А ещё выполните эту команду(which iptables) в консоли от рута и увидите куда он установлен.
-
tramX
- Сообщения: 200
Re: НТВ
/sbin/iptables у меня тоже в этой директории. Только IPT не подходит надо менять на iptables
#Удаляем все правила в таблице mangle из цепочек iptables
$IPT -t mangle -F
Отдельно создавалась?
#Удаляем все правила в таблице mangle из цепочек iptables
$IPT -t mangle -F
Отдельно создавалась?
-
serge_m
- Сообщения: 317
- ОС: ASP Linux 14
Re: НТВ
Если вы спрашиваете про таблицу mangle, создавалась ли она отдельно - отвечу. Да она создавалась отдельно группой разработчиков iptrables и netfilter...это встроенная таблица iptables предназначенная для внесения изменений в заголовки пакетов
PS У модераторов наверное выходной сегодня
PS У модераторов наверное выходной сегодня
-
tramX
- Сообщения: 200
Re: НТВ
/sbin/iptables у меня тоже в этой директории. Только IPT не подходит надо менять на iptables
#Удаляем все правила в таблице mangle из цепочек iptables
$IPT -t mangle -F
Отдельно создавалась?
#Удаляем все правила в таблице mangle из цепочек iptables
$IPT -t mangle -F
Отдельно создавалась?
-
Juliette
- Сообщения: 5058
- Статус: ROSA Lab
- ОС: Ubuntu LTS, Mandriva 2011
Re: НТВ
Люди, мне кажется эту тему лучше закрыть.
Ибо очень странные тут ответы уважаемого автора топика...
Ибо очень странные тут ответы уважаемого автора топика...
-
Juliette
- Сообщения: 5058
- Статус: ROSA Lab
- ОС: Ubuntu LTS, Mandriva 2011
Re: НТВ
По совету совестливых гуманистов открываю и переношу в "новички". 