Перейти к содержимому
Калькуляторы

[tc htb] Дать разную скорость на разные сети

Доброго дня! Кто как решает задачу нарезки разной скорости абонентам на мир и "пиринговые сети"?

 

Если просто выделить сети в обход шейпера, то

 

iptables -t mangle -A PREROUTING -s a.b.c.d/xx -j MARK --set-mark 110

tc filter add dev eth0 parent 1: prio 1 protocol ip fw
tc filter add dev eth0 parent 1: prio 1 protocol ip handle 110 fw flowid 1:110

tc class add dev eth0 parent 1:1 classid 1:110 htb rate 1000mbit ceil 1000mbit burst 4096k 
tc qdisc add dev eth0 parent 1:110 sfw perturb 10

а хеш-таблицы клиентских фильтров идут ниже с prio2.

В этой схеме получаем нешейпируемый трафик на сети, маркированные в prerouting, скорость у клиента на скорости линка.

 

Задача нужно нарезать скорость для определенных сетей с линка конкретного оператора, тоже решается несложно.

eth2 - линк оператора, добавляем к командам выше

 

modprobe ifb numifbs=3
ip link set dev ifb2 up 
ifconfig ifb1 txqueuelen 10000 up 

tc qdisc add dev eth2 ingress
tc filter add dev eth2 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb2

дальше вешаем на ifb2 фильтры \ классы, но с указанием нужной скорости. Получаем раздельную нарезку скорости на мир и заданные сети, с индивидуальной настройкой под абонента.

 

 

А если не знаешь, через какого оператора будет маршрут на нужные сети, как тогда нарезать?

Например, зеркалировать в ifb маркированный трафик, но оно похоже так не умеет.

Поделиться сообщением


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

Мир роутится на один интерфейс, IX - на другой, на каждом ифейсе - дерево шейпера.

Поделиться сообщением


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

Порекламирую модуль ipt-ratelimit

http://forum.nag.ru/forum/index.php?showtopic=108580

Вашу задачу решает без проблем, делаете две таблицы, одну вешаете на ipset до пиринга, другую просто на 0/0

:)

Поделиться сообщением


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

Порекламирую модуль ipt-ratelimit

http://forum.nag.ru/forum/index.php?showtopic=108580

Вашу задачу решает без проблем, делаете две таблицы, одну вешаете на ipset до пиринга, другую просто на 0/0

:)

интересная штука, попробую!

Поделиться сообщением


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.