LINUX.ORG.RU
ФорумAdmin

Снова вопрос Shaper - tc


0

0

Есть пара вопросов, буду рад, если ктонить сможет прояснить:
Соответственно ману понял что скорость tc режет на ИСХОДЯЩЕМ интерфейсе .. у меня схема:

local-eth0-|linux|-eth2-internet

Из которой по идее следует, что чтобы зарезать скорость Закачки с Инеренета в локал нужно работать с интерфейсом eth0.

Вот правило.

======================================================
tc qdisc del dev eth0 root > /dev/null 2>&1 &
tc qdisc del dev eth0 ingress > /dev/null 2>&1 &
# HTB Queque
tc qdisc add dev eth0 root handle 1: htb default 11

# Class
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 100mbit ceil 100mbit burst 131000
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 512kbit ceil 1mbit burst 13100 prio 1
tc class add dev eth0 parent 1:1 classid 1:12 htb rate 10mbit ceil 100mbit burst 131000 prio 2

#
tc qdisc add dev eth0 parent 1:11 handle 10: sfq perturb 10
tc qdisc add dev eth0 parent 1:12 handle 40: sfq perturb 10

#Filter
tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 5 fw flowid 1:12

#Ring set mark (5) ТЕСТИРУЮ ПОКА ТОЛЬКО С ПАКЕТАМИ ИСХ. с сервера
iptables -t mangle -A INPUT -s 10.246.0.0/16 -j MARK --set-mark 5
iptables -t mangle -A INPUT -s 20.246.128.0/17 -j MARK --set-mark 5
===========================

Качаю - скорость как положено 100 МБит/с.

меняю параметр в tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 5 fw flowid 1:11 (сменил поток на 11, там скорость 512кбит)

Получается скорость промаркированных пакетов должна быть теперь 512Кбит-1Мбит. Скорость остается по прежнему 100 Мбит. в чом может быть дело ? Буду оч. признателен если кто-нибудь подскажет

Пакеты маркируются (качаю, потом смотрю таблицу mangle - скока скачал - стока отметилось). В tc -s -d qdisc ls dev eth0 пакеты тоже идут
===
qdisc htb 1: root r2q 10 default 11 direct_packets_stat 0 ver 3.17
Sent 106464582 bytes 432084 pkt (dropped 0, overlimits 173369 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 10: parent 1:11 limit 127p quantum 1514b flows 127/1024 perturb 10sec
Sent 106463034 bytes 432082 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 40: parent 1:12 limit 127p quantum 1514b flows 127/1024 perturb 10sec
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0

===


Да .. кстати когда почти тоже самое делаю для eth2 - того интерфейса что смотрит в инет - результат сразу заметен. Может всеже связка

== local-eth0-|linux|-eth2-internet

Из которой по идее следует, что чтобы зарезать скорость Закачки с Инеренета в локал нужно работать с интерфейсом eth0. ===

Неверная и для _закачки_ с локала всеже интерфейс eth2 нужно резать ?

time
() автор топика

iptables -t mangle -A INPUT -s 10.246.0.0/16 -j MARK --set-mark 5

Вроде не должны у вас пакеты маркироваться, INPUT это то, что пойдет на данный маршрутизатор, надо PREROUTING. А так не понятно, откуда и куда в качаете, чтобы замерять скорость.

mky ★★★★★
()
Ответ на: комментарий от mky

Ну как я написал немного выше

> #Ring set mark (5) ТЕСТИРУЮ ПОКА ТОЛЬКО С ПАКЕТАМИ ИСХ. с сервера


т.е тестирую с самого сервака, как я понимаю туда пакеты через INPUT приходят.
sfq очереди ведь по сессиям делятся так, что там без разницы должно быть с какого IP я качаю ...

Мне восновном интересно следующее .. правильно ли утверждение:

>Соответственно ману понял что скорость tc режет на ИСХОДЯЩЕМ интерфейсе .. у меня схема:


>local-eth0-|linux|-eth2-internet


>Из которой по идее следует, что чтобы зарезать скорость Закачки с Инеренета в локал нужно работать с интерфейсом eth0.


Т.е Интерфейс действительно eth0 резать надо ? или всеже eth2 ?
Проясните кто вкурсе

time
() автор топика
Ответ на: комментарий от time

> т.е тестирую с самого сервака, как я понимаю туда пакеты через INPUT приходят.

Для самого сервака ты ничего не зашейпишь. Так как в твоем случае шейпится только транзитный трафик.

iron ★★★★★
()
Ответ на: комментарий от time

>> #Ring set mark (5) ТЕСТИРУЮ ПОКА ТОЛЬКО С ПАКЕТАМИ ИСХ. с сервера

>т.е тестирую с самого сервака, как я понимаю туда пакеты через INPUT приходят.

Видимо я туплю, но я не понял, как пакеты проходят через -t mangle INPUT и уходят через eth0.

>Т.е Интерфейс действительно eth0 резать надо ? или всеже eth2 ?

Классика гласит, что шейпить нужно уходящие с интефейса пакеты, то есть в вашей схеме для ограничения скорости закачки из интернета в локалку нужно ограничивать eth0. При этом пакеты ставятся в очередь и "выпускаются в локалку" с заданной скоростью. Но закачки с самого сервера под эти правила не попадают. Для них нужно резать входящий интерфес eth2 дропая (уничножая) пакеты.

mky ★★★★★
()
Ответ на: комментарий от mky

Всё, теперь разобрался, спасибо :) Все работает.

time
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.