Jump to content
Калькуляторы

Пиринг и шейпер на Linux

Имеется: Бордер под управлением Linux с двумя апстримами и одной пиринговой сеткой. Два гигабитных физических интерфейса на борту: bge0 - во внутрь, bge1 - во вне. Внешний трафик и трафик с пиринговой сети бегает через bge1, поделенный vlan'ми. Нужно приоритизировать входящий внешний трафик с апстримов не учитывая трафик с пиринговой сети.

От каждого апстрима имеется гарантированная ширина полосы пропускания: 120 и 100 мегбаит соответственно, на пиринговую сеть выделенно 50 мегабит (отрезано acl-ем на коммутаторе).

Приоритизировать будем при помощи пакета iproute2.

Из всего вышесказанного следует, что нужно шейпить исходящий трафик с bge0, смотрящий в сторону пользовательской сети.

Только тут возникает непонятка, как не брать в учет трафик с пиринговой сети при создании родительского класса, в котором надо будет указать максимальную ширину полосы пропускания? Если я укажу последнюю в 100+120=220 мбит, то избыточный пиринговый трафик не даст расскачаться каналам апстримов. А если наоборот включу пиринговые 50 мбит в ширину полосы для родительского класса, приоритизация не будет работать должным образом, или я не прав?

Что посоветуете в данной ситуцаии?

Share this post


Link to post
Share on other sites

Метить пакеты с вланов иптейблсом, далее - помеченые заворачивать в шейпер (htb с хеш-таблицами к примеру). Соответственно 2 корневых класса: один - для инета, 2й - для пиринга (а еще лучше - 3 класса, на каждый аплинк).

Share this post


Link to post
Share on other sites

А как одновременно отлавливать промаркированные пакеты и матчить их классификтором u32?

 

Такая конструкция не работает:

iptables -t mangle -A PREROUTING -i vlan8 -j MARK --set-mark 10 
tc filter add dev bge0 parent 1: protocol ip prio 1 handle 10 fw u32 match ip protocol 1 0xff flowid 1:10

 

Использовать ifb? Манипулировать байтами TOS?

Бдует ли вообще работать совместно handle fw и u32 разнесенные по разным фильтрам на разные интерфейсы?

Edited by Dimic

Share this post


Link to post
Share on other sites

А как одновременно отлавливать промаркированные пакеты и матчить их классификтором u32?

 

Такая конструкция не работает:

iptables -t mangle -A PREROUTING -i vlan8 -j MARK --set-mark 10 
tc filter add dev bge0 parent 1: protocol ip prio 1 handle 10 fw u32 match ip protocol 1 0xff flowid 1:10

 

Использовать ifb? Манипулировать байтами TOS?

Бдует ли вообще работать совместно handle fw и u32 разнесенные по разным фильтрам на разные интерфейсы?

Меняйте DSCP в PREROUTING, а fw mark вообще ни к чему.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this