pf проблемы в работе

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

pf проблемы в работе

Непрочитанное сообщение admin_sv » 2014-03-24 19:50:22

проблема вот в чем: пишу такое правило

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

pass in route-to ($pppoe $gw_pppoe) from <stream_B> to !$me keep state
В таблицу вношу 2 ip -все работает, добавляю еще один и вот у него не работает, тоже происходит с последующими. :shock:
Последний раз редактировалось f_andrey 2014-03-25 7:09:53, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума, если приведёте больше логов, это повысит вероятность ответов, а не флуда

Хостинговая компания 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/

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: pf проблемы в работе

Непрочитанное сообщение admin_sv » 2014-05-26 10:28:03

Проблема была в малом значении полей для таблицы keep state.
Найдена новая странность:

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

pass in on $lan from {$lan_ip !<stream_A> !<stream_B> !<stream_C>} to any flags S/SA probability $PA keep state (max-src-conn-rate 1/60, overload <stream_A> flush global)
pass in on $lan from {$lan_ip !<stream_A> !<stream_B> !<stream_C>} to any flags S/SA probability $PB keep state (max-src-conn-rate 1/60, overload <stream_B> flush global)
pass in on $lan from {$lan_ip !<stream_A> !<stream_B> !<stream_C>} to any flags S/SA probability $PC keep state (max-src-conn-rate 1/60, overload <stream_C> flush global)
есть вот такой набор правил который должен выполнятся с указанной вероятностью, но отрабатывает только последнее правило с не 0 вероятностью. Вопрос почему?

Аватара пользователя
skeletor
майор
Сообщения: 2508
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: pf проблемы в работе

Непрочитанное сообщение skeletor » 2014-05-26 14:24:28

Потому что так работает pf: выполняется только последнее совпавшее. Если надо первое - используй quick
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: pf проблемы в работе

Непрочитанное сообщение admin_sv » 2014-05-26 18:04:06

там в правиле вероятность выполнения указана
probability $PC
и соответственно PC="20%". Так вот почему он так работает?

Аватара пользователя
skeletor
майор
Сообщения: 2508
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: pf проблемы в работе

Непрочитанное сообщение skeletor » 2014-05-26 19:03:54

У вас 3 одинаковых правила и срабатывает только последнее, причём с вероятностью $PC.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: pf проблемы в работе

Непрочитанное сообщение admin_sv » 2014-05-27 9:12:16

Я с вами не согласен, проблему нашел. Она не там где вы говорите. Правила построены так что в какую то единицу времени есть только 1 или 2 правила. Проблема состоит в крутости представления pf и серьезной разницей в реализации, а именно мое 1 правило трансформируется в 3 и с вероятностью в 40% оно фактически существует всегда.

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

pass in on em2 inet from 192.168.8.0/24 to any flags S/SA keep state probability 10% (source-track rule, max-src-conn-rate 1/60, overload <stream_A> flush global, src.track 60)
pass in on em2 from ! <stream_A> to any flags S/SA keep state probability 10% (source-track rule, max-src-conn-rate 1/60, overload <stream_A> flush global, src.track 60)
pass in on em2 from ! <stream_B> to any flags S/SA keep state probability 10% (source-track rule, max-src-conn-rate 1/60, overload <stream_A> flush global, src.track 60)
pass in on em2 from ! <stream_C> to any flags S/SA keep state probability 10% (source-track rule, max-src-conn-rate 1/60, overload <stream_A> flush global, src.track 60)
pass in on em2 inet from 192.168.8.0/24 to any flags S/SA keep state probability 50% (source-track rule, max-src-conn-rate 1/60, overload <stream_B> flush global, src.track 60)
pass in on em2 from ! <stream_A> to any flags S/SA keep state probability 50% (source-track rule, max-src-conn-rate 1/60, overload <stream_B> flush global, src.track 60)
pass in on em2 from ! <stream_B> to any flags S/SA keep state probability 50% (source-track rule, max-src-conn-rate 1/60, overload <stream_B> flush global, src.track 60)
pass in on em2 from ! <stream_C> to any flags S/SA keep state probability 50% (source-track rule, max-src-conn-rate 1/60, overload <stream_B> flush global, src.track 60)
pass in on em2 inet from 192.168.8.0/24 to any flags S/SA keep state probability 40% (source-track rule, max-src-conn-rate 1/60, overload <stream_C> flush global, src.track 60)
pass in on em2 from ! <stream_A> to any flags S/SA keep state probability 40% (source-track rule, max-src-conn-rate 1/60, overload <stream_C> flush global, src.track 60)
pass in on em2 from ! <stream_B> to any flags S/SA keep state probability 40% (source-track rule, max-src-conn-rate 1/60, overload <stream_C> flush global, src.track 60)
pass in on em2 from ! <stream_C> to any flags S/SA keep state probability 40% (source-track rule, max-src-conn-rate 1/60, overload <stream_C> flush global, src.track 60)
обманулся немного, но для 2 каналов эта схема работает. А вот для 3 буду думать :) skeletor спасибо за время потраченное на меня.

Аватара пользователя
skeletor
майор
Сообщения: 2508
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: pf проблемы в работе

Непрочитанное сообщение skeletor » 2014-05-27 20:02:33

Для 2-х работает потому что, каждая probability одного правила дополняет probability в другом. А для 3-ох поэтому и не работает.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

admin_sv
мл. сержант
Сообщения: 94
Зарегистрирован: 2014-01-03 2:45:53
Контактная информация:

Re: pf проблемы в работе

Непрочитанное сообщение admin_sv » 2014-05-28 11:44:46

skeletor писал(а):Для 2-х работает потому что, каждая probability одного правила дополняет probability в другом. А для 3-ох поэтому и не работает.
Нет такой тип правил не работает для 2, его необходимо модернизировать.