pf + altq(cbq или hfsc)

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
sith
проходил мимо

pf + altq(cbq или hfsc)

Непрочитанное сообщение sith » 2008-09-13 14:48:49

cbq:
Имеется:
ng0 - безлимит 128Kb
rl1 - локальная сеть
rl0 - сеть провайдера
Задача:
Поделить безлимит между двумя(пока) юсерами и предоставить им доступ к сетям провайдера на максимальной скорости (99Mb).

Заметил, что использование cbq не предоставляет описанное заимствование неиспользованной очереди у родительской(такое замечено не только у меня):

Код: Выделить всё

ext_if="ng0"
int_if="rl1"
a_ext_if="rl0"
sith="192.168.1.2"
dad="192.168.1.3"
table <private_net> { 10.0.0.0/8 } 
set block-policy return
set skip on lo0 
scrub in all 

altq on $int_if cbq bandwidth 100Mb queue { inet_in, default_in }
queue inet_in bandwidth 124Kb { q_sith_in, q_dad_in }
queue q_sith_in bandwidth 50% cbq(red, borrow)
queue q_dad_in bandwidth 50% cbq(red, borrow)
queue default_in bandwidth 99% cbq(default)

nat on $ext_if from $int_if:network to any -> ($ext_if) 
nat on $a_ext_if from $int_if:network to any -> ($a_ext_if)
pass out on $int_if from ! <private_net> to $sith queue q_sith_in
pass out on $int_if from ! <private_net> to $dad queue q_dad_in
При использовании hfsc вродебы все делится но открытие http страниц идет долговато(также при использовании cbq)
hfsc:

Код: Выделить всё

ext_if="ng0"
int_if="rl1"
a_ext_if="rl0"
dad="192.168.1.3"
sith="192.168.1.2"
table <a_private_net> { 10.0.0.0/8 192.168.1.0/24 81.28.160.181 }
set block-policy return
set skip on lo0
#scrub in all

altq on $int_if bandwidth 100Mb hfsc queue { inet_in, default_in }
        queue default_in bandwidth 99Mb priority 0 hfsc(default)
        queue inet_in bandwidth 128Kb priority 7 hfsc{ q_sith_in, q_dad_in }
                queue q_sith_in bandwidth 64Kb priority 5 hfsc(realtime 64Kb upperlimit 128Kb)
                queue q_dad_in bandwidth 64Kb priority 5 hfsc(realtime 64Kb upperlimit 128Kb)

nat on $ext_if from $int_if:network to any -> ($ext_if)
nat on $a_ext_if from $int_if:network to any -> ($a_ext_if)

pass out on $int_if from ! <a_private_net> to $sith queue q_sith_in
pass out on $int_if from ! <a_private_net> to $dad queue q_dad_in
Может кто-нибудь знает в чем дело?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Covax
мл. сержант
Сообщения: 131
Зарегистрирован: 2008-04-27 23:54:31
Откуда: Витебск, Беларусь
Контактная информация:

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение Covax » 2008-09-13 21:56:09

Попробуй bandwidth указывать на 5% меньше реальной.

sith
проходил мимо

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение sith » 2008-09-14 0:50:23

Попробывал вроде также все... Еще одна проблема если я качаю допустим bittorrent со скоростью 2Mb страницы начинают еще дольше грузиться хотя стоит приорететы на default очередь 0 а очередям со внешки 7. Или я не понимаю систему приотеризации или она не работает?=)

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение zingel » 2008-09-15 20:30:51

Код: Выделить всё

sockstat -4 && nestat -ib; vmstat -z | grep sock
в момент торможения и сюда...
Z301171463546 - можно пожертвовать мне денег

sith
проходил мимо

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение sith » 2008-09-16 1:13:09

Код: Выделить всё

# sockstat -4 && netstat -ib; vmstat -z | grep sock
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
scomp    sshd       51137 3  tcp4   192.168.1.1:22        192.168.1.2:1773
root     sshd       51133 3  tcp4   192.168.1.1:22        192.168.1.2:1773
root     smbd       49910 5  tcp4   10.1.130.253:139      10.1.153.133:1026
root     smbd       38595 18 tcp4   *:445                 *:*
root     smbd       38595 19 tcp4   *:139                 *:*
root     nmbd       38589 6  udp4   *:137                 *:*
root     nmbd       38589 7  udp4   *:138                 *:*
root     nmbd       38589 8  udp4   192.168.1.1:137       *:*
root     nmbd       38589 9  udp4   192.168.1.1:138       *:*
root     nmbd       38589 10 udp4   10.1.130.253:137      *:*
root     nmbd       38589 11 udp4   10.1.130.253:138      *:*
root     mpd4       17850 9  tcp4   10.1.130.253:64881    192.168.0.1:1723
root     sshd       919   4  tcp4   *:22                  *:*
root     amd        728   4  udp4   *:1023                *:*
root     amd        728   5  tcp4   *:934                 *:*
root     amd        728   6  udp4   *:882                 *:*
root     amd        728   7  udp4   *:1022                *:*
root     amd        727   4  udp4   *:1023                *:*
root     amd        727   5  tcp4   *:934                 *:*
root     amd        727   6  udp4   *:882                 *:*
root     amd        727   7  udp4   *:1022                *:*
root     amd        726   4  udp4   *:1023                *:*
root     amd        726   5  tcp4   *:934                 *:*
root     amd        726   6  udp4   *:882                 *:*
root     amd        726   7  udp4   *:1022                *:*
root     rpcbind    703   9  udp4   *:111                 *:*
root     rpcbind    703   10 udp4   *:618                 *:*
root     rpcbind    703   11 tcp4   *:111                 *:*
root     syslogd    688   7  udp4   *:514                 *:*
root     routed     629   5  udp4   *:520                 *:*
Name    Mtu Network       Address              Ipkts Ierrs     Ibytes    Opkts Oerrs     Obytes  Coll
rl0    1500 <Link#1>      00:80:48:4d:c5:4b 17875394     0  169887617 13370057     1 2542675508     0
rl0    1500 10.1.130.192/ 10.1.130.253       5696675     - 2864763616  4806156     - 1555108138     -
rl1    1500 <Link#2>      00:c0:26:a1:21:d6 11114455     0 1344843730 14384851     0 2824865181     0
rl1    1500 192.168.1     192.168.1.1         738136     -  192143534  1035058     - 1055071305     -
plip0  1500 <Link#3>                               0     0          0        0     0          0     0
pfsyn  2020 <Link#4>                               0     0          0        0     0          0     0
pflog 33208 <Link#5>                               0     0          0        0     0          0     0
lo0   16384 <Link#6>                               0     0          0        0     0          0     0
lo0   16384 fe80:6::1     fe80:6::1                0     -          0        0     -          0     -
lo0   16384 ::1           ::1                      0     -          0        0     -          0     -
ng0    1482 <Link#7>                          590451     0  300086076   585916     0   56740291     0
ng0    1482 81.28.174.4/3 81.28.174.4          20546     -    1382095    20643     -    1138807     -
socket:                   356,     8778,       47,       30,    39329,        0

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение zingel » 2008-09-16 1:20:45

Код: Выделить всё

 netstat -a | grep tcp
Z301171463546 - можно пожертвовать мне денег

sith
проходил мимо
Сообщения: 4
Зарегистрирован: 2008-09-16 1:18:08

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение sith » 2008-09-16 1:23:26

Код: Выделить всё

# netstat -a | grep tcp
tcp4       0      0  192.168.1.1.ssh        scomp.1773             ESTABLISHED
tcp4       0      0  10.1.130.253.netbios-s 10.1.153.133.1026      ESTABLISHED
tcp4       0      0  10.1.130.253.64881     192.168.0.1.pptp       ESTABLISHED
tcp4       0      0  *.netbios-ssn          *.*                    LISTEN
tcp4       0      0  *.microsoft-ds         *.*                    LISTEN
tcp4       0      0  *.ssh                  *.*                    LISTEN
tcp6       0      0  *.ssh                  *.*                    LISTEN
tcp4       0      0  *.934                  *.*                    LISTEN
tcp4       0      0  *.sunrpc               *.*                    LISTEN
tcp6       0      0  *.sunrpc               *.*                    LISTEN

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение zingel » 2008-09-16 1:25:45

в момент торможения?
Z301171463546 - можно пожертвовать мне денег

sith
проходил мимо
Сообщения: 4
Зарегистрирован: 2008-09-16 1:18:08

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение sith » 2008-09-16 1:26:04

да

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение zingel » 2008-09-16 1:45:02

Код: Выделить всё

cat /var/log/pf.today
Z301171463546 - можно пожертвовать мне денег

sith
проходил мимо
Сообщения: 4
Зарегистрирован: 2008-09-16 1:18:08

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение sith » 2008-09-16 2:01:56

Код: Выделить всё

cat /var/log/pf.today
block return in on rl0 proto tcp from any to any port = ssh [ Evaluations: 25178199 Packets: 0 Bytes: 0 States: 0 ]
block return in on ng0 proto tcp from any to any port = ssh [ Evaluations: 24568591 Packets: 0 Bytes: 0 States: 0 ]

NecAway
проходил мимо

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение NecAway » 2008-11-10 7:17:41

sith писал(а):Попробывал вроде также все... Еще одна проблема если я качаю допустим bittorrent со скоростью 2Mb страницы начинают еще дольше грузиться хотя стоит приорететы на default очередь 0 а очередям со внешки 7. Или я не понимаю систему приотеризации или она не работает?=)
Входящий трафик нельзя приоретизировать в принципе... Ты не можешь на прямую влиять на то, что тебе будет приходить из инета и с каким приоритетом... Приоретизируется только исходящий трафик...

kulver
проходил мимо

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение kulver » 2009-02-10 20:05:47

sith писал(а):cbq:
Имеется:
ng0 - безлимит 128Kb
rl1 - локальная сеть
rl0 - сеть провайдера
Задача:
Поделить безлимит между двумя(пока) юсерами и предоставить им доступ к сетям провайдера на максимальной скорости (99Mb).

Заметил, что использование cbq не предоставляет описанное заимствование неиспользованной очереди у родительской(такое замечено не только у меня):

Код: Выделить всё

ext_if="ng0"
int_if="rl1"
a_ext_if="rl0"
sith="192.168.1.2"
dad="192.168.1.3"
table <private_net> { 10.0.0.0/8 } 
set block-policy return
set skip on lo0 
scrub in all 

altq on $int_if cbq bandwidth 100Mb queue { inet_in, default_in }
queue inet_in bandwidth 124Kb { q_sith_in, q_dad_in }
queue q_sith_in bandwidth 50% cbq(red, borrow)
queue q_dad_in bandwidth 50% cbq(red, borrow)
queue default_in bandwidth 99% cbq(default)

nat on $ext_if from $int_if:network to any -> ($ext_if) 
nat on $a_ext_if from $int_if:network to any -> ($a_ext_if)
pass out on $int_if from ! <private_net> to $sith queue q_sith_in
pass out on $int_if from ! <private_net> to $dad queue q_dad_in
Может кто-нибудь знает в чем дело?
Если еще актуально -
попробуйте описать очередь таким образом:
altq on $int_if cbq bandwidth 100Mb queue { q_sith_in, q_dad_in, default_in }
queue default_in bandwidth 102276Kb cbq(default)
queue q_sith_in bandwidth 50% cbq(red, borrow)
queue q_dad_in bandwidth 50% cbq(red, borrow)

Ну и поиграться размером дефолтной очереди...

архипов
проходил мимо

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение архипов » 2009-03-22 12:35:14

Извиняюсь что в чужую тему, у меня просто близкий вопрос:
делаю тоже шлюзик, тоже решил средствами pf, правда у меня задачи нет не шейпить выход в сеть прова(ее нет):

Код: Выделить всё

ext_if="rl0"
int_if="rl1"
dad="192.168.0.3"
sith="192.168.0.2"
tit="192.168.0.4"
table <a_private_net> { 192.168.0.1 } #//Локальные сети провайдера гуляем максимально на скорости 99 mb
altq on $int_if bandwidth 100Mb hfsc queue { inet_in, default_in }

queue default_in bandwidth 512Kb priority 1 hfsc(default)
queue inet_in bandwidth 99Mb priority 1 hfsc{ q_sith_in, q_dad_in, q_tit_in}

scrub in all
queue q_sith_in bandwidth 128Kb priority 1 hfsc(realtime 128Kb upperlimit 256Kb)
queue q_dad_in bandwidth 64Kb  priority 1 hfsc(realtime 64Kb upperlimit 128Kb)
queue q_tit_in bandwidth 64Kb  priority 1 hfsc(realtime 64Kb upperlimit 128Kb)
nat on $ext_if from $int_if:network to any -> ($ext_if)

pass  on $int_if from ! <a_private_net> to $sith queue q_sith_in
pass  on $int_if from ! <a_private_net> to $dad queue q_dad_in
pass  on $int_if from ! <a_private_net> to $tit queue q_tit_in
входящий шейпит хорошо, а вот аплоады забивают весь канал, исходящий (понятно когда входящего мало) не контролируется. Подскажите что добавить чтобы ограничить преобладающий исходящий?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение zingel » 2009-03-23 10:01:01

Код: Выделить всё

pfctl -sa
потому, что я уверен - дело в тюнинге
Z301171463546 - можно пожертвовать мне денег

DREAMER
проходил мимо
Сообщения: 3
Зарегистрирован: 2008-11-21 6:35:59

Re: pf + altq(cbq или hfsc)

Непрочитанное сообщение DREAMER » 2009-10-06 9:17:44

правила должны быть без всяких СТЭЙТов тобиш no state иначе все выпадает в дефолтовую очередь
и смотрите штобы правила не пересикались любое упоминание keep,synproxy ..... state приводит к заворачиванию в дефолтную очередь