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

Оптимизация шейпера Как бы правильно и с наименьшими задержками?

Собственно возник вопросик по оптимизации шейпера, да и как итог хочется прикрутить небольшую приоритезацию трафика для пользователей.

Зверей всего порядка 80чел с тарифами от 1 до 8 мегабит. Правда сейчас запустим сегмент и там тарифы будут до 80мегабит.

Что сейчас имеем:

 

 

cat /scripts/01initshaper.sh

#!/bin/sh

/sbin/iptables -t mangle -F FORWARD

/sbin/tc qdisc add dev eth1 root handle 1:0 htb

/sbin/tc class add dev eth1 parent 1:0 classid 1:1 htb rate 100mbit ceil 100mbit burst 10k

/sbin/tc qdisc add dev eth0 root handle 1:0 htb

/sbin/tc class add dev eth0 parent 1:0 classid 1:1 htb rate 100mbit ceil 100mbit burst 10k

#

 

Дальше при включении абонента добавляется правила:

# cat /scripts/05addshaper.sh

#!/bin/bash

 

INTIF=eth1

EXTIF=eth0

 

let mark=${ID}+50

let mark2=${mark}+4000

 

/sbin/tc class add dev eth1 parent 1:1 classid 1:$mark htb rate ${SPEED}kbit ceil ${SPD}kbit burst 40k

/sbin/tc filter add dev eth1 parent 1:0 protocol ip prio 5 handle $mark fw classid 1:$mark

 

/sbin/tc class add dev eth0 parent 1:1 classid 1:$mark2 htb rate ${SPEED}kbit ceil ${SPD}kbit burst 40k

/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 5 handle $mark2 fw classid 1:$mark2

 

/sbin/iptables -t mangle -A FORWARD -d $IP -j MARK --set-mark $mark

/sbin/iptables -t mangle -A FORWARD -s $IP -j MARK --set-mark $mark2

#

 

То есть никаких наворотов, в этом случае все на одном тазике.

Понятно что в последствии этот тазик останется только для шейпера, а приоритезация трафика уже будет на пограничном маршрутизаторе, но пока так.

Стоит ли стремится тут в сторону hash в tc и как это можно прикрутить сюда?

 

И стоит ли заморачиваться с приоритезацией полосы для конечного абона чтобы допустим пользователю было комфортно сниферить по нету, и общаться по скайпу?

И лучше это реализовывать и дальше на eth0 и eth1 или использовать ib0?

 

Сеть с 0.0/16 серая, есть пользователи которым выдаем внешники, но уже через pppoe с mpd

Share this post


Link to post
Share on other sites

1) Нет смысла делать двухшаговый "iptables -t mangle -j MARK --set-mark" и "tc filter".

То же самое можно сделать в один шаг: "iptables -t mangle -j CLASSIFY --set-class".

 

2) На листья внутрь классов HTB лучше явно вешать дисциплину SFQ.

По умолчанию будет совершенно неадекватная PFIFO.

Share this post


Link to post
Share on other sites

Приоритизацию трафика в зависимости от номера портов лучше не совмещать с шейпингом и хэш-фильтрами, иначе получится слишком сложное дерево классов. Лучше вынести это дело на псевдоустройство, а еще лучше -- на пограничный маршрутизатор. Пока что действительно проще повесить SFQ в качестве краевой дисциплины, чтобы юзерские соединения друг друга не душили.

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