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

Исходное сообщение
"FreeBSD+PF+ALTQ "

Отправлено Sanchez , 11-Мрт-05 20:28 
Здравствуйте, решился я снести IPWF с сервера FreeBSD 5.3 и заменить более функциональным PF, установка и настройка правил фильтрации прошла без проблем. Но вот незадача в IPFW был DUMMYNET и полностью справлялся со своими обязанностями. Все  попытки  настройки ALTQ окончились  безрезультатно. От ALTQ требуется раздавать всем пользователям с одинаковой скоростью (приоритетом),  а руководству с большей.
Все решения, которые были найдены, направлены на различные виды трафика, а мне нужно на пользователей.
На сервере только нат средствами PF, две сетевухи, канал 120Кбит (если кто-то начинает качать то можно повеситься), установка прокси-сервера не предполагается.

Ядро
device          pf                      #PF OpenBSD packet-filter firewall
device          pflog                   #logging support interface for PF
device          pfsync                  #synchronization interface for PF
options         ALTQ
options         ALTQ_CBQ        # Class Bases Queueing
options         ALTQ_RED        # Random Early Drop
options         ALTQ_RIO        # RED In/Out
options         ALTQ_HFSC       # Hierarchical Packet Scheduler
options         ALTQ_CDNR       # Traffic conditioner
options         ALTQ_PRIQ       # Priority Queueing
options         ALTQ_DEBUG
options         HZ=1000
rc.conf
pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_program="/sbin/pflogd"


Один из нерабочих конфигов pf.conf (с ALTQ), вариантов перепробовал много, ALTQ на локальном и на внешнем интерфейсах, CBQ и PRIQ все безрезультатно.  
ExtIF="rl1"
PrivIF="rl0"
ExtIP="xxx.xxx.xxx.xxx"
PrivNet="192.168.0.0/24"
NoGoIP="{ 192.168.0.0/16, 127.0.0.0/8, 10.0.0.0/8, 0.0.0.0/8, 169.254.0.0/16, 204.152.64.0/23, 224.0.0.0/3 }"
boss="192.168.0.124"
allnet="192.168.0.0/24"
scrub in all
altq on $PrivIF priq bandwidth 120Kb queue { allnet boss }
queue allnet priority 2 priq(default)
queue boss priority 10
nat on $ExtIF from $PrivNet to any -> $ExtIP
block in quick inet6 all
block out quick inet6 all
pass in quick on lo0 all
pass out quick on lo0 all
block in quick on $ExtIF from $NoGoIP to any
block out quick on $ExtIF from any to $NoGoIP
block out on $ExtIF all
pass in quick on $ExtIF inet proto tcp from any to $boss flags S/SA modulate state queue boss
pass out quick on $ExtIF inet proto tcp from $boss to any flags S/SA modulate state queue boss
pass out on $ExtIF inet proto tcp from { $allnet !$boss } to any flags S/SA modulate state queue allnet
pass out quick on $ExtIF inet proto { udp, icmp } from $boss to any keep state  queue boss
pass out on $ExtIF inet proto { udp, icmp } from { $allnet !$boss } to any keep state  queue allnet

P.S Если у вас есть рабочий pf.conf c altq поделитесь пожалуйста!


Содержание

Сообщения в этом обсуждении
"FreeBSD+PF+ALTQ "
Отправлено Sanchez , 14-Мрт-05 17:50 
Что неужели никто не использует PF, до сих пор ВСЕ сидят на IPWF?
Ни у кого не работает ALTQ?
Если есть работающий конфиг, выложите пожалуйста!!!

"FreeBSD+PF+ALTQ "
Отправлено e719 , 15-Мрт-05 17:06 
Не на IPFW, а на IPFW2 сидим. Надо идти в ногу со временем! :)
Но если не в лом, отпиши, чем тебя покорил PF, может я тоже на него перейду

"FreeBSD+PF+ALTQ "
Отправлено Zedis , 15-Мрт-05 17:19 
>Не на IPFW, а на IPFW2 сидим. Надо идти в ногу со
>временем! :)
>Но если не в лом, отпиши, чем тебя покорил PF, может я
>тоже на него перейду


Слушай с тобой полностью согласен PF очень штука мощная как сам PF так и ALTQS я сам писал статью на тему трёх файрволов PF,IPF,IPFW по поводу полностью перехода то я тебе посоветовал бы сначало переёти бы PF+DUMMYNET а только потом на PF+ALTQS не спорю что ALTQS и PF лучше IPFW+DUMMYNET
В помощь ссылка
http://dreamcatcher.ru/docs/pf-faq-part2-rus.html
да там на сайте можешь ещо более что прикольное найти
да и сама документация absolute openbsd там типа всё про файрвол PF и ALTQS


"FreeBSD+PF+ALTQ "
Отправлено alk , 15-Мрт-05 19:08 
я недавно перешел на PF+ALTQ - но тоже до сих пор не знаю
как равномерно делить канал между юзерами. Сдается мне что такую схему
в pf  не реализовать.... хотя хотелось-бы ошибаться

"FreeBSD+PF+ALTQ "
Отправлено Sanchez , 16-Мрт-05 02:03 
Благодарю всех за ответы,

To e719: Мне в PF очень понравился синтаксис, намного понятнее правила по сравнению c IPFW. Мне очень понравилось в PF: списки, таблицы, очень удобно настраивается нат, ну и вообще он как-то “смышленее”.

To Zedis: Статью вашу читал, статья хорошая, но нет примеров по altq.Статью на dreamcatcher.ru я тоже читал, примеры altq которые там описаны, мне не совсем подходят.
Я так понимаю, вы выбрали PF, как вы решаете вопрос шейпера?
Что касаемо PF+DUMMYNET, я так понимаю что для этой связки  в ядре достаточно только наличие DUMMYNET? Или в ядре нужны и остальные опции IPFW?
Насколько “полноценно” ALTQ реализован на FreeBSD? или он нормально работает только на OpenBSD.


"FreeBSD+PF+ALTQ "
Отправлено Linux , 21-Мрт-05 03:35 
Забудь про pf, ipfw и прочие потуги bsdдешников  создать качественный пакетный фильтр(firewall), про шейпер я вообще промолчу…
Посмотри лучше в сторону Linux, IPTABLES, вот это я понимаю качественный продукт, firewall удобный, CBQ шикарно работает, плюс можно запрещать юзерам закачку (mp3, avi и др. нежелательных файлов), нет необходимости только ради блокирования мультимедийных файлов устанавливать проксю. Все это недостижимо для BSD!
Так что мой тебе совет переходи на Linux!!!


"FreeBSD+PF+ALTQ "
Отправлено kir , 21-Мрт-05 08:31 

интересная тенденция ......
все больше и больше linuz lammo ...

  вы что плодитесь методом простого деления пополам??

  PS: ненужно трогать тему linux rulezz или freebsd suxx
      спор неравнозначный - выиграют проффесионалы


  используйте pf+altq
   dummynet был для связки ipfw,ipfw2 для pf он впринципе ненужен


"FreeBSD+PF+ALTQ "
Отправлено Sanchez , 21-Мрт-05 13:49 
To kir: Возможно этот оголтелый любитель линукса в чем то и прав. У меня никак не получается настроить как нужно altq (и не только у меня). Судя потому что никто, не может подсказать, как равномерно делить канал и выставлять “рабочие” приоритеты для руководства! (это и правда недостижимая задача для pf+altq!?)

P.S. Если у вас все замечательно настроено (pf+altq) поделитесь, если не в лом.  


"FreeBSD+PF+ALTQ "
Отправлено alk , 21-Мрт-05 16:57 
у тебя 5.3 RELEASE или STABLE?
если мне память не изменяет писали - что в релизе altq - хреново работало
потом это устранили



"FreeBSD+PF+ALTQ "
Отправлено Sanchez , 21-Мрт-05 17:39 
>у тебя 5.3 RELEASE или STABLE?
>если мне память не изменяет писали - что в релизе altq -
>хреново работало
>потом это устранили

5.3 RELEASE (Скачал с фрюшного ftp)
Alk, у вас получилось равномерно делить канал между юзерами?


"FreeBSD+PF+ALTQ "
Отправлено alk , 21-Мрт-05 17:42 
>>у тебя 5.3 RELEASE или STABLE?
>>если мне память не изменяет писали - что в релизе altq -
>>хреново работало
>>потом это устранили
>
>5.3 RELEASE (Скачал с фрюшного ftp)
>Alk, у вас получилось равномерно делить канал между юзерами?


нет не вышло
но я правда и особо не упирался
можешь рискнуть и поднять до STABLE
канал бы тебе потолще -- сидеть на 120к грустно


"FreeBSD+PF+ALTQ "
Отправлено Sanchez , 21-Мрт-05 17:49 
>нет не вышло
>но я правда и особо не упирался
>можешь рискнуть и поднять до STABLE
>канал бы тебе потолще -- сидеть на 120к грустно

Про канал в самую точку :(
Как у тебя сейчас altq настроен?
Пробовал к pf прикручивать DUMMYNET?  


"FreeBSD+PF+ALTQ "
Отправлено co6aka , 21-Мрт-05 20:03 
У меня есть openbsd 3.5 и freebsd 5.3 что-то там фиксил... Если успею то через недельку попробую altq  и там и там. У freebsd были проблемы с реализацией altq и pf.

"FreeBSD+PF+ALTQ "
Отправлено Zedis , 22-Мрт-05 11:50 
>У меня есть openbsd 3.5 и freebsd 5.3 что-то там фиксил... Если
>успею то через недельку попробую altq  и там и там.
>У freebsd были проблемы с реализацией altq и pf.


По воводу Iptables и залётного Linux lamera то знаешь я каждый день открываю свой bugtraq@ и что я там вижу дырки, дырки и ещо раз дырки в LINUX'E, а вот FreeBSD уже с год не вижу дырок совподение наверно..

По поводу ALTQS и PF то действительно проверял сам там есть проблеммы не только в FreeBSD Realese но и в Stable. В FreeBSD 5.4 обещают всё поправить так что ребята 4 апреля все делаем  make build world

По поводу PF+Dummynet так вы просто поднимаете PF и IPFW+DUMMYNET через PF фильтруешь пакеты а через IPFW загоняешь пакеты в очередь а через DUMMYNET всё остальное ...
Все как раньше было у тебя при использовании IPFW+DUMMYNET только в IPFW оставляешь правила работы с очередями и последнее правило
ipfw add pass any from any или при кампиляции ядра
IPFIREWALL_DEFAULT_TO_ACCEPT и загружаешь потом PF правила вот и всё PF фильтрует, IPFW+DUMMYNET шейпит...


"FreeBSD+PF+ALTQ "
Отправлено Аноним , 26-Мрт-05 00:35 
Уважаемые знатоки Freebsd!
Прочитал этот пост и заинтересовался сообщением о возможности запрещения скачивать файлы по расширениям (*.mp3, и т.д.) в linux при помощи iptables.
Возможно, ли сделать подобное в Freebsd средствами firewall или других программ?
Или это можно решить только с помощью прокси-сервера???

"FreeBSD+PF+ALTQ "
Отправлено kir , 28-Мрт-05 12:48 

нет
зачем грузить firewall ненужной рутинной работой? этим должны заниматься сервисы верхнего уровня


то что такой изврат добавили в linux... лучше его не делает....


"FreeBSD+PF+ALTQ "
Отправлено Nick , 28-Мрт-05 17:26 
Здравствуйте, Я тоже решил поставить PF и ALTQ. Нигде не смог найти, как правильно настраивать шейпер. На сервере установлены 2 сетевухи (интернет и локалка).
Например:

altq on fxp0 cbq bandwidth 512Kb queue { std, ssh }
queue std  cbq(default)
queue ssh priority 3
после этого указываем куда применять queue:
pass in on fxp0 from any to any port 22 queue ssh

На какой интерфейс (внутренний или локальный) нужно вешать altq?
К какому правилу(in или out) нужно применять queue? И на каком интерфейсе?


"FreeBSD+PF+ALTQ "
Отправлено toor99 , 28-Мрт-05 18:47 
>Здравствуйте, Я тоже решил поставить PF и ALTQ. Нигде не смог найти,
>как правильно настраивать шейпер. На сервере установлены 2 сетевухи (интернет и
>локалка).
>Например:
>
>altq on fxp0 cbq bandwidth 512Kb queue { std, ssh }
>queue std  cbq(default)
>queue ssh priority 3
>после этого указываем куда применять queue:
>pass in on fxp0 from any to any port 22 queue ssh
>
>
>На какой интерфейс (внутренний или локальный) нужно вешать altq?
>К какому правилу(in или out) нужно применять queue? И на каком интерфейсе?

Шейпить нужно в ту сторону, куда возникает перегрузка. Общая практика - применять queuing к выходной очереди.



"FreeBSD+PF+ALTQ "
Отправлено ws , 29-Мрт-05 16:15 
>Здравствуйте, Я тоже решил поставить PF и ALTQ. Нигде не смог найти,
>как правильно настраивать шейпер. На сервере установлены 2 сетевухи (интернет и
>локалка).
>Например:
>
>altq on fxp0 cbq bandwidth 512Kb queue { std, ssh }
>queue std  cbq(default)
>queue ssh priority 3
>после этого указываем куда применять queue:
>pass in on fxp0 from any to any port 22 queue ssh
>
>
>На какой интерфейс (внутренний или локальный) нужно вешать altq?
>К какому правилу(in или out) нужно применять queue? И на каком интерфейсе?
>

Шейпится как правило исходящий трафик
Входящий трафик нет смысла резать, т.к. он уже занял ресурсы стека
Из этого делай вывод: входящий трафик для клинета зажимаешь на внутренем интерфейсе, а исходящий трафик на интерфейсе смотрящим в мир...


"FreeBSD+PF+ALTQ "
Отправлено Moralez , 30-Мрт-05 14:07 
я правильно понял, что в схеме, где тормоза возникают при обмене трафиком между внешними интерфейсами (в филиалах стоят маршрутизаторы-почтовики), смысла шейпить нет? Канал 256Кбит... Когда падает почта с филиала с 10МБитным инетом можно стреляться... Как раз думал над заменой freebsd4.11 на freebsd5.4beta1 и pf+altq? Не поможет?! :(

"FreeBSD+PF+ALTQ "
Отправлено Moralez , 30-Мрт-05 14:09 
p.s. причём, всё идёт по туннелям... Если дропать ESP пакеты, наверное, вообще задница будет? 8-(

"FreeBSD+PF+ALTQ "
Отправлено Dima , 04-Апр-05 23:40 
Господа, посмотрел раздел советов на этом замечательном портале, и немного расстроился полным отсутствием в разделе СОВЕТОВ каких либо упоминаний о PF,
предлагаю собраться и исправить столь досадное упущение. Давайте дополним рубрику "Пакетные фильтры и фаерволы" http://www.opennet.me/tips/sml/40.shtml , советами использования PF, ALTQ, настройки NAT и других возможностей этого замечательного пакетного фильтра!


"FreeBSD+PF+ALTQ "
Отправлено KBAKEP , 10-Апр-05 16:56 
>Например:
>
>altq on fxp0 cbq bandwidth 512Kb queue { std, ssh }
>queue std  cbq(default)
>queue ssh priority 3
>после этого указываем куда применять queue:
>pass in on fxp0 from any to any port 22 queue ssh
>
>
Пример нерабочий. Вместо cbq надо писать priq, у вас же приоритетная очередь.
И как уже ответили, надо pass out использовать.

"FreeBSD+PF+ALTQ "
Отправлено Rednikov , 20-Ноя-07 10:11 
>Забудь про pf, ipfw и прочие потуги bsdдешников  создать качественный пакетный
>фильтр(firewall), про шейпер я вообще промолчу…
>Посмотри лучше в сторону Linux, IPTABLES, вот это я понимаю качественный продукт,
>firewall удобный, CBQ шикарно работает, плюс можно запрещать юзерам закачку (mp3,
>avi и др. нежелательных файлов), нет необходимости только ради блокирования мультимедийных
>файлов устанавливать проксю. Все это недостижимо для BSD!
>Так что мой тебе совет переходи на Linux!!!

Хорошо подумал когда писал??
:)


"FreeBSD+PF+ALTQ "
Отправлено mikev , 12-Июн-05 02:14 
ExtIF="rl1"
PrivIF="rl0"
ExtIP="xxx.xxx.xxx.xxx"
PrivNet="192.168.0.0/24"
NoGoIP="{ 192.168.0.0/16, 127.0.0.0/8, 10.0.0.0/8, 0.0.0.0/8, 69.254.0.0/16, 204.152.64.0/23, 224.0.0.0/3 }"
boss="192.168.0.124"
allnet="192.168.0.0/24"

scrub in all

altq on $PrivIF cbq queue { allnet, boss }
queue allnet bandwidth 40Kb cbq(borrow default)
queue boss bandwidth 80Kb cbq(borrow)

nat on $ExtIF from $PrivNet to any -> $ExtIP
.....
pass out quick on $privif from !<nogoip> to $allnet keep state queue allnet
pass out quick on $privif from !<nogoip> to $boss keep state queue boss
.....

а может ну их? эти приоритеты? :-)
попробуйте так.. имхо резать надо исходящий траффик на локальном интерфейсе.. но, не резать траф для локалки(nogoip)
borrow позволит пользовать весь канал если вдруг босса нет :-)
правда не уверен что на allnet будут равномерно делиться эти 40кб, но имхо должно

з.ы. всякие там block я повырезал т.к. они к делу отношения не имеют..