1 (06-02-2009 09:43:07 отредактировано VaMpir)

Тема: Настройка ALTQ+PF в FreeBSD

Необходимо настроить шлюз для раздачи интернета с планировщиком altq. Имеется локальная сеть 192.168.100.0/24, сервер висит на 192.168.100.2. Скорость доступа в интернет - 2 Мбита. При этом скорость по некоторым подсетям (их много, городская сетка) не должна ограничиваться. Интернет каждому пользователю должен раздаваться с некоторой гарантированной скорость и, в случае свободного канала, увеличиваться.
С altq знаком буквально пару дней, поэтому не удается нормально настроить.
Что можно изменить в настройках?

Вот мой /etc/pf.conf :


int_if="rl0"
ext_if="tun0"

users_list="{ 192.168.100.14, 192.168.101.22, 192.168.100.29,\
192.168.100.37, 192.168.100.39, 192.168.100.46, 192.168.100.163,\
192.168.100.241 }"
lan="192.168.100.0/24"
odix="{ 193.22.84.0/24,193.39.118.0/24,194.8.56.0/24,194.44.45.0/24,\
# Здесь все городские IP-шники
212.86.240.0/21,213.155.0.0/19,213.231.0.0/18,217.146.240.0/20 }"

width=15% # Гарантированная пропускная способность для пользователя

set loginterface $ext_if

table <my>      {$lan}
table <me>      { 192.168.100.2 }

#перечисления пользователей (всего порядка 10-ти, я только часть перечислил)
table <andrey>  {192.168.100.37}
table <valera>  {192.168.100.29}
table <ksusha>  {192.168.100.22}

table <users>   {$users_list}


set block-policy return
set skip on lo0
set skip on $int_if
scrub in all

altq on $int_if cbq     bandwidth 100Mb queue   { inet_in, default_in }
queue inet_in           bandwidth 2Mb         \
         {                                      \
        #пользователи
                valera_in,                      \
                andrey_in,                      \
                ksusha_in,                      \
        }


queue valera_in         bandwidth $width cbq (  rio, borrow)
queue andrey_in         bandwidth $width cbq (  rio, borrow)
queue ksusha_in         bandwidth $width cbq (  rio, borrow)
queue default_in        bandwidth 97% cbq (default)

altq on $ext_if cbq     bandwidth 100Mb queue {inet_out,  default_out }
queue inet_out          bandwidth 2Mb        \
        {                                       \

                valera_out,                     \
                andrey_out,                     \
                ksusha_out,                     \

        }

queue valera_out        bandwidth $width cbq ( rio, borrow)
queue andrey_out        bandwidth $width cbq ( rio, borrow)
queue ksusha_out        bandwidth $width cbq ( rio, borrow)

queue default_out       bandwidth 97% cbq ( default)

nat on $ext_if from $users_list to any -> ($ext_if)
#antispoof quick for $ext_if
block in on $int_if
block in quick proto tcp from !<my> to port {21, 22}


#здесь доступ в городскую сеть, скорость без ограничений
pass in quick on $int_if from <users> to $odix    #queue od_user_out no state
pass out quick on $int_if from $odix to <users>   #queue od_user_in no state

#интернет
pass in on $int_if from <valera>        to any queue valera_out keep state
pass in on $int_if from <andrey>        to any queue andrey_out keep state
pass in on $int_if from <ksusha>        to any queue ksusha_out keep state

pass out on $int_if from any to <valera>        queue valera_in  keep state
pass out on $int_if from any to <andrey>        queue andrey_in  keep state
pass out on $int_if from any to <ksusha>        queue ksusha_in  keep state

2

Re: Настройка ALTQ+PF в FreeBSD

Господа, давайте коммерческие вопросы Вы будете решать самостоятельно.
Вам за это платят зарплату, и Вы обязаны сидеть в поисковиках по совести говоря.

Учиться, учиться и еще раз учиться.
Вам помогут Google, Yandex, Rambler и Ваше упорство и усердство.

3

Re: Настройка ALTQ+PF в FreeBSD

Alexander пишет:

Господа, давайте коммерческие вопросы Вы будете решать самостоятельно.
Вам за это платят зарплату, и Вы обязаны сидеть в поисковиках по совести говоря.

Учиться, учиться и еще раз учиться.
Вам помогут Google, Yandex, Rambler и Ваше упорство и усердство.

В том и дело, что вопрос не коммерческий и за него мне деньги не платят smile Раздаю интернет своим друзьям: дорогой у нас интернет, если подключаться поодиночке, очень дорогой. Намного дешевле оказалось собрать из старого хлама сервер и поднять на нем шлюз.  Но это оффтопик smile

Некоторые примеры настройки я нашел и использовал, но как-то все не очень получается. Если кто-то  загружает канал, то несмотря на ограничения, у остальных скорость может упасть вплоть до 0 sad

4

Re: Настройка ALTQ+PF в FreeBSD

Посмотрите в сторону включения в ядро DUMMYNET
и ограничения по скорости через ipfw pipe

Все что касается ограничения клиентов, надо рассматривать как "Жесткое ограничение", либо "Свободный доступ".
Вы настраиваете через PF. Но можно и через IPFW
опять же, читаем Maunal IPFW

и вдогонку о том как настроить ограничение скорости, смотрите раздел в man ipfw pipe

5

Re: Настройка ALTQ+PF в FreeBSD

может стоит посмотреть в сторону прокси, возможно и трафик тогда малость сэкономите

6

Re: Настройка ALTQ+PF в FreeBSD

crash пишет:

может стоит посмотреть в сторону прокси, возможно и трафик тогда малость сэкономите

Прокси не пойдет, много кто использует торренты, а они через прокси не идут нормально sad