Есть сервер, на нам стоит 12.04 с прозрачным прокси, eth0 - локалка, eth1 - роутер с инетом. На этой же машине стоит Asterisk с FreePBX. Настроил шейпинг по
этой статье с помощью
htbinit.
# class for outgoing voip
RATE=256Kbit
CEIL=1Mbit
RULE=*:5060,
RULE=*:10000-20000,
PRIO=1
Тут вроде всё верно. Но при звонке с внешнего екстеншна, который заходит на Asterisk через интернет, с помощью jnettop наблюдаю, что порты не всегда находятся в диапазоне 10000-20000, как указано в rtp.conf Астера. На роутере проброшены порты этого же диапазона для UDP пакетов.
Вижу два пути выхода из засады:
1. Заставить Asterisk договариваться об использовании портов только из указанного диапазона;
2. Маркировать с помощью iptables пакеты, исходящие от Asterisk определенным маркером, а с помощью htb уже маркированные пакеты шейпить.
Вот теперь, собственно, как это сделать?