Queeq 0 Опубликовано: 2008-01-10 08:23:34 Share Опубликовано: 2008-01-10 08:23:34 На шлюзе стоит фря 6.2 с PF'ом. Возникла потребность сделать тарифы с зарезанием скорости на мир. Пожонглировав с altq не получилось нормально разобраться с шейпингом. Более того, нашёл в нете, что работает он только для исходящего трафика. Также придётся заводить каждому пользователю свою очередь и писать свои правила. Как я понял, altq - больше предназначен для QoS'a, чем для обычного зарезания скорости. Посоветуйте, пожалуйста, правильное решение для моего случая. От PF'a отказываться не хочу, т.к. он привлекает своей гибкостью, простотой и скоростью работы на высокой нагрузке. Ссылка на сообщение Поделиться на других сайтах
911 140 Опубліковано: 2008-01-10 11:58:37 Share Опубліковано: 2008-01-10 11:58:37 На шлюзе стоит фря 6.2 с PF'ом. Возникла потребность сделать тарифы с зарезанием скорости на мир. Пожонглировав с altq не получилось нормально разобраться с шейпингом. Более того, нашёл в нете, что работает он только для исходящего трафика. Также придётся заводить каждому пользователю свою очередь и писать свои правила. Как я понял, altq - больше предназначен для QoS'a, чем для обычного зарезания скорости. Посоветуйте, пожалуйста, правильное решение для моего случая. От PF'a отказываться не хочу, т.к. он привлекает своей гибкостью, простотой и скоростью работы на высокой нагрузке. Так вроде же можно совмещать pf и ipfw Ссылка на сообщение Поделиться на других сайтах
BABAY 2 Опубліковано: 2008-01-10 12:18:14 Share Опубліковано: 2008-01-10 12:18:14 Более того, нашёл в нете, что работает он только для исходящего трафика Шейпи вход и исход на разных сетевых интерфейсах. Почитай ещё раз мануал, pf+altq отлично все шейпит. Ссылка на сообщение Поделиться на других сайтах
Queeq 0 Опубліковано: 2008-01-10 16:18:56 Автор Share Опубліковано: 2008-01-10 16:18:56 Так вроде же можно совмещать pf и ipfw Меньше всего накручено - меньше проблем Шейпи вход и исход на разных сетевых интерфейсах. Почитай ещё раз мануал, pf+altq отлично все шейпит. Я такой вариант тоже рассмотрел. Но тут получается не так хорошо, как хотелось бы. На каждого пользователся тогда придётся создавать по 2 правила и по 2 очереди - ua-ix и мир (поправьте если ошибся). Я рассчитывал на то, что это можно как-то просто и аккуратно сделать, используя, например, сторонний демон. З.Ы. Сейчас у меня стоит возможность отключать направления. Для этого в PF'е устроено так: table <uaix> persist file "/etc/pf_ua-ix.txt" # украинские сети table <uausr> persist # список юзеров, у которых включен ua-ix table <wusr> persist # список юзеров, у которых включен мир далее, в конце всех правил стоит такое: pass quick from <uausr> to <uaix> pass quick from <uaix> to <uausr> block log quick from <uaix> block log quick to <uaix> pass quick from <wusr> pass quick to <wusr> Каждого безлимитчика придётся исключить из таблиц wusr и uausr, чтобы создать им отдельные правила со своими очередями. Это приведёт к громоздкости pf.conf и замедлению его работы. К тому же надо дописывать в OnConnect и OnDisconnect скрипты для постоянного дёрганья pf.conf и перезапуска файрвола. Это тоже не есть гуд. Можно ли это сделать как-то иначе? Ссылка на сообщение Поделиться на других сайтах
Queeq 0 Опубліковано: 2008-01-10 19:44:45 Автор Share Опубліковано: 2008-01-10 19:44:45 Я додумался. Надо использовать якоря. Сейчас попробую сделать. Если получится - выложу Ссылка на сообщение Поделиться на других сайтах
Queeq 0 Опубліковано: 2008-01-11 10:00:48 Автор Share Опубліковано: 2008-01-11 10:00:48 Итак, всё получилось более-менее по-человечески. Немножко правим правила, выпускающие на мир: anchor world_shape_out from <wusr> anchor world_shape_in to <wusr> т.е. делаем из них поднабор правил. Далее, в начале pf.conf пишем правила для загрузки этих поднаборов: load anchor world_shape_in from "/etc/pf_subrules/world_shaping_in" load anchor world_shape_out from "/etc/pf_subrules/world_shaping_out" Создаём два файла с правилами в /etc/pf_subrules: world_shaping_in #queeq pass quick to 192.168.0.11 queue queeq_512k_in pass quick to any world_shaping_out #queeq pass quick from 192.168.0.11 queue queeq_512k_out pass quick from any Не забываем оставить одну пустую строку в конце. Здесь queeq - экспериментальный пользователь. Для каждого безлимитчика придётся вписывать своё правило в каждый из файлов (вполне можно автоматизировать), а также свою очередь. На данный момент очереди выглядят так (в самом начале pf.conf): altq on $ext_if cbq bandwidth 100Mb queue { default_out, queeq_512k_out } altq on $int_if cbq bandwidth 100Mb queue { default_in, queeq_512k_in } queue default_out bandwidth 10Mb cbq(default borrow) queue default_in bandwidth 10Mb cbq(default borrow) #unlimited users queues queue queeq_512k_out bandwidth 512Kb priority 4 cbq queue queeq_512k_in bandwidth 512Kb priority 4 cbq При этом все, для кого не заданы специально шейповые правила остаются работать на полной скорости канала (пользователи на пакетах по трафику и, конечно, я любимый ). Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас