URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 75405
[ Назад ]

Исходное сообщение
"PF: Почему не работает автоматическая оптимизация правил?"

Отправлено Alex , 29-Июл-07 18:48 
Запускаю команду:
pfctl -oonvf /etc/pf.conf >after
или
pfctl -onvf /etc/pf.conf >after
(как описано тут http://www.opennet.me/base/net/pf_optimization.txt.html)
но никакого упорядочивания записей не происходит, выходной файл содержит исходные записи в том же порядке, но с подстановкой макросов и раскрытием скобок в сокращённых записях. При этом правила очевидно нуждаются в оптимизации (они даже по интерфейсам не отсортированы).
Если написать просто: "pfctl -o", то команда "pfctl -sr" тоже покажет, что правила неоптимизированы.

Почему оптимизация не работает, может, я что-то не так делаю? ОС: FreeBSD 6.2.


Содержание

Сообщения в этом обсуждении
"PF: Почему не работает автоматическая оптимизация правил?"
Отправлено universite , 30-Июл-07 00:43 

>Почему оптимизация не работает, может, я что-то не так делаю? ОС: FreeBSD
>6.2.

uname -a ?
Покажите примеры "неработающих" правил.


"PF: Почему не работает автоматическая оптимизация правил?"
Отправлено Alex , 30-Июл-07 12:16 
>
>>Почему оптимизация не работает, может, я что-то не так делаю? ОС: FreeBSD
>>6.2.
>
>uname -a ?
>Покажите примеры "неработающих" правил.

FreeBSD 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Sun Jul  8 13:19:32

Вот часть правил (остальные написаны в том же духе):

pass in quick on $int_if inet proto {tcp, udp, icmp} from $user1 to any tag U1 queue www1_in keep state
pass out quick on $ext_if inet proto {tcp, udp, icmp} from $ext_if to any tagged U1 queue www1_ex keep state

pass in quick on $int_if inet proto {tcp, udp, icmp} from $user2 to any tag U2 queue www2_in keep state
pass out quick on $ext_if inet proto {tcp, udp, icmp} from $ext_if to any tagged U2 queue www2_ex keep state

pass in quick on $int_if inet proto {tcp, udp, icmp} from $user3 to any tag U3 queue www3_in keep state
pass out quick on $ext_if inet proto {tcp, udp, icmp} from $ext_if to any tagged U3 queue www3_ex keep state

pass in quick on $int_if inet proto {tcp, udp, icmp} from $user4 to any tag U4 queue www4_in keep state
pass out quick on $ext_if inet proto {tcp, udp, icmp} from $ext_if to any tagged U4 queue www4_ex keep state

На всякий случай: очереди сделаны через hfsc, но дело, кажется, не в этом.  Без quick пробовал — тоже не работает.


"PF: Почему не работает автоматическая оптимизация правил?"
Отправлено Alex , 06-Авг-07 12:08 
В FreeBSD 7.0 проверил — тоже не работает оптимизация. Мистика какая-то...
В ядре вот такие параметры:
options         ALTQ
options         ALTQ_CBQ        # Class Bases Queuing (CBQ)
options         ALTQ_RED        # Random Early Detection (RED)
options         ALTQ_RIO        # RED In/Out
options         ALTQ_HFSC       # Hierarchical Packet Scheduler (HFSC)
options         ALTQ_PRIQ       # Priority Queuing (PRIQ)
options         ALTQ_NOPCC      # Required for SMP build
device          pf                      #PF OpenBSD packet-filter firewall
device          pflog                   #logging support interface for PF
device          pfsync                  #synchronization interface for PF

В rc.conf — такие:
pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_flags=""
pflog_enable="NO"
pflog_logfile="/var/log/pflog"
pflog_flags=""

У кого-нибудь эта оптимизация вообще работает? Посмотрите свои настройки, если не сложно. И должна ли команда pfctl -sr показывать оптимизированный список правил после автоматической оптимизации (pfctl -o), или он будет выглядеть по-старому?


"PF: Почему не работает автоматическая оптимизация правил?"
Отправлено alexpn , 07-Авг-07 09:59 
http://www.opennet.me/base/net/pf_optimization.txt.html

"PF: Почему не работает автоматическая оптимизация правил?"
Отправлено Alex , 07-Авг-07 13:40 
>http://www.opennet.me/base/net/pf_optimization.txt.html

В первом смоём посту я упомянул эту ссылку и сказал, что делал всё так, как там написано. И это не работает.