The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"PF + ALTQ нужна помощь в фильтрации траффика"
Отправлено Petrus, 28-Июл-07 23:57 
Здраствуйте, возникла проблема с брандмауэром Packet Filter. Маршрутизатор работает под управлением FreeBSD 5.5, интернет приходит через ADSL модем, посредством PPPoE соединения. Изначально NAT разрешен в ppp.conf и фильтруется с помощью выше упомянутого брандмауэра.

Так как используется асинхронная линия, изначально решил настроить приоритезацию исходящего траффика, но в последствии, пришлось добавить ограничение полосы пропускания для каждого пользователя с индивидуальным приоритетом. Всё работает хорошо, хотолось-бы ещё лучше, из-за этого решил, так-же поступить и с приходящим траффиком, и сражу напоролся на грабли. Ранее читал, что PF, а именно ALTQ не поддерживает входящий траффик, но не придавал этому особого значение, но перепробовал большое колличество способов у меня так ничего и не вышло, решил заморозить проэкт. Сейчас хочу исправить данное положение с вашей помощью! Использовать дополнительно другой брандмауэр не охото...

Вот мой отрывок кода:

# ------------------------------------------------------------------ #

altq on tun0 cbq bandwidth 4830Kb queue { INET, INET_IN, INET_OUT }
  queue INET cbq(default)
  queue INET_IN bandwidth 4080Kb \
  { IP1_IN, IP2_IN }
    queue IP1_IN bandwidth 800Kb cbq(borrow)
    queue IP2_IN bandwidth 800Kb cbq(borrow)

  queue INET_OUT bandwidth 750Kb \
  { IP1_OUT, IP2_OUT }
    queue IP1_OUT bandwidth 150Kb cbq(borrow) \
    { ENT_IP1_OUT, WWW_IP1_OUT, DNS_IP1_OUT, ACK_IP1_OUT }
      queue ENT_IP1_OUT priority 4 cbq(red, borrow)
      queue WWW_IP1_OUT priority 5 cbq(red, borrow)
      queue DNS_IP1_OUT priority 6 cbq(borrow)
      queue ACK_IP1_OUT priority 7 cbq(borrow)

    queue IP2_OUT bandwidth 150Kb cbq(borrow) \
    { ENT_IP2_OUT, WWW_IP2_OUT, DNS_IP2_OUT, ACK_IP2_OUT }
      queue ENT_IP2_OUT priority 4 cbq(red, borrow)
      queue WWW_IP2_OUT priority 5 cbq(red, borrow)
      queue DNS_IP2_OUT priority 6 cbq(borrow)
      queue ACK_IP2_OUT priority 7 cbq(borrow)

# ------------------------------------------------------------------ #

block in all
block out all

pass in on lo0
pass out on lo0

pass in quick on xl0 from $netmask to (xl0)
pass out quick on xl0 from (xl0) to $netmask

pass in quick inet proto icmp
#pass in quick on tun0 from any

# ------------------------------------------------------------------ #

pass out quick on tun0 inet proto tcp from $ip1 to any \
port $ent_ports keep state queue ENT_IP1_OUT

pass out quick on tun0 inet proto tcp from $ip1 to any \
port $www_ports keep state queue WWW_IP1_OUT

pass out quick on tun0 inet proto { tcp udp } from $ip1 to any \
port domain keep state queue DNS_IP1_OUT

pass out quick on tun0 proto tcp from $ip1 to any flags S/SA \
modulate state queue ACK_IP1_OUT

pass out quick on tun0 inet proto icmp from $ip1 to any

pass in quick on tun0 from any to $ip1 queue IP1_IN

# ------------------------------------------------------------------ #

pass out quick on tun0 proto tcp from $ip2 to any flags S/SA \
modulate state queue ACK_IP2_OUT

pass out quick on tun0 inet proto { tcp udp } from $ip2 \
to any port domain keep state queue DNS_IP2_OUT

pass out quick on tun0 inet proto tcp from $ip2 to any \
port $www_ports keep state queue WWW_IP2_OUT

pass out quick on tun0 inet proto tcp from $ip2 to any \
port $ent_ports keep state queue ENT_IP2_OUT

pass out quick on tun0 inet proto icmp from $ip2 to any

pass in quick on tun0 from any to $ip2 queue IP2_IN

# ------------------------------------------------------------------ #

Дополнительные вопросы:

1. Возможно заставить PF и ALTQ работать с входящим траффиком?
2. Поделитесь "секретом", какой траффик лучше приоритизировать?
3. В Linux`е мне понравился layer-7, может есть, что-то подобное в FreeBSD?
Возможно посредством PF организовать NAT на виртуальный туннель?
4. Если физически организован доступ в интернет, через такую последовательность rl0 <---> ed0 <---> tun0, значил это, что если назначить правило ed0, но разрешиль полный доступ для rl0 и tun0, посылаемый траффик из rl0 в tun0 не пройдёт? (В iptables вроде так, но в PF этого не заметил, хотел дважды фильтровать траффик, но ничего не вышло)

Спасибо за внимание!

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.

На сайте действует частичное премодерирование - после публикации некоторые сообщения от анонимов могут автоматически скрываться ботом. После проверки модератором ошибочно скрытые сообщения раскрываются. Для ускорения раскрытия можно воспользоваться ссылкой "Сообщить модератору", указав в качестве причины обращения "скрыто по ошибке".



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру