Страница 1 из 1
Pf не режет скорость, подлец.
Добавлено: 2009-08-27 15:10:30
vasdor
Друзья!
Добрый день! Не можете подсказать - почему не работает конструкция:
Код: Выделить всё
altq on $vpnb_if cbq bandwidth 1950Kb queue {rezh, qall}
queue rezh bandwidth 50Kb priority 2 cbq
... и далее - в правилах фильтрации :
Код: Выделить всё
block on $vpnb_if proto tcp from any port {137, 139, 445} to 192.168.252.59
pass in on $office_if proto tcp from 192.168.252.59 to any port {137, 139, 445} queue rezh no state
pass out on $vpnb_if proto tcp from 192.168.252.59 to any port {137, 139, 445} queue rezh no state
pass in on $vpnb_if proto tcp from any port {137, 139, 445} to 192.168.252.59 queue rezh no state
pass out on $office_if proto tcp from any port {137, 139, 445} to 192.168.252.59 queue rezh no state
Схема такая : office_if - внутренний интерфейс, vpnb_if - внешний. Хочу ограничить скорость скачки по протоколам 139,445 до 50 килобит
Re: Pf не режет скорость, подлец.
Добавлено: 2009-08-27 16:29:06
Shuba
А ядро с поддержкой ALTQ собрано???
Re: Pf не режет скорость, подлец.
Добавлено: 2009-08-27 16:41:46
vasdor
Эт само собой...
Вот, например, если сделать 1-ю строчку :
т.е. дать 100 килобит на весь интерфейс
Общую скорость на интерфейсе режет - по всем протоколам
а вот именно правило rezh - не срабатывает
no state убираю из правил - не помогает
Re: Pf не режет скорость, подлец.
Добавлено: 2009-08-27 17:17:29
Shuba
попробуй так
Код: Выделить всё
altq on $vpnb_if cbq bandwidth 1950Kb queue { rezh, qall }
queue rezh bandwidth 50Kb priority 2 cbq
и в остальных правилах тоже после "{" и перед "}" поставить пробелы
Re: Pf не режет скорость, подлец.
Добавлено: 2009-08-28 9:41:10
vasdor
Попробовал - ни фига...
Есть другие правила резания - например, только на внутр. интерфейсе. Там всё работает.
Блин, и логи не особо выручают - pftop показывает, что пакеты от и на 192.168.252.59 проходили по протоколу 445.
Re: Pf не режет скорость, подлец.
Добавлено: 2009-08-28 9:57:22
Shuba
а почему именно no state??? И вообще, выложи целиком файл кофига фаера, может ошибка не в этих строках...
Re: Pf не режет скорость, подлец.
Добавлено: 2009-08-28 11:57:14
vasdor
No state - потому что в 7-ке по умолчанию стоит keep state - я так понимаю, что клиент запрашивает соединение, оно пропускается фаерволлом, создаётся запись в таблице и ответные пакеты уже игнорируются, но пропускаются.
Ну, даже если я убираю no state - ничего не меняется.
Вот конфиг, упростил его до такого вида и применил:
Код: Выделить всё
office_if="bge0" #интерфейс смотрит в локальную сеть
inet_if="rl0" #интернет 1
vpnb_if="re0" #впн
proxy_if="lo0" #интерфейс прокси
proxy_port="3128" #порт прокси
allow_icmp="{echoreq, unreach}" #разрешенные echo запросы
office_net="192.168.252.0/24" #подсеть офиса на островского
set block-policy return
set skip on lo0 #не проверям трафик на внутренней петле
scrub in all #фрагментирование пакетов (дожидаемся всех пакетов)
#шейпинг
altq on $vpnb_if cbq bandwidth 1950Kb queue { rezh, qall, alt }
queue rezh bandwidth 50Kb priority 2 cbq
queue qall bandwidth 380Kb priority 3 cbq ( default borrow )
queue alt bandwidth 30Kb priority 2 cbq
#завернем весь www трафик на squid
rdr on $office_if proto tcp from $office_if:network to any port www -> $proxy_if port $proxy_port
#режем скорость
block on $vpnb_if proto tcp from any to 192.168.252.59
block on $vpnb_if proto tcp from 192.168.252.59 to any
pass out on $vpnb_if proto tcp from 192.168.252.59 to any queue rezh
pass in on $vpnb_if proto tcp from any to 192.168.252.59 queue rezh
и всё. И ни фига не режет
Что характерно, если заменить очередь на внешнем интерфейсе на внутр. и резать только на нём - всё режет отлично.
Re: Pf не режет скорость, подлец.
Добавлено: 2009-08-28 15:52:04
Shuba
Какой-то странный у тебя конфиг фаера, к примеру, не видно, открытый он, или закрытый. Мой телепатический дар подсказывает мне, что ты пытаешься один адрес (192.168.252.59) пропустить мимо прокси.
Попробую его немного переделать. Кроме того, странный у тебя интерфейс на VPN, обычно интерфейсы, созданные VPN-ом имеют имена ng* и tun*.
Код: Выделить всё
office_if="bge0" #интерфейс смотрит в локальную сеть
inet_if="rl0" #интернет 1
vpnb_if="re0" #впн
proxy_if="lo0" #интерфейс прокси
proxy_port="3128" #порт прокси
allow_icmp="{echoreq, unreach}" #разрешенные echo запросы
office_net="192.168.252.0/24" #подсеть офиса на островского
set block-policy return
set skip on lo0 #не проверям трафик на внутренней петле
scrub in all #фрагментирование пакетов (дожидаемся всех пакетов)
#шейпинг
altq on $vpnb_if cbq bandwidth 1950Kb queue { rezh, qall, alt }
queue rezh bandwidth 50Kb priority 2 cbq
queue qall bandwidth 380Kb priority 3 cbq ( default borrow )
queue alt bandwidth 30Kb priority 2 cbq
#завернем весь www трафик на squid
rdr on $office_if proto tcp from $office_if:network to any port www -> $proxy_if port $proxy_port
# NAT для адреса 192.168.252.59
nat on $vpnb_if inet proto tcp from 192.168.252.59 to any -> $vpnb_if
#режем скорость
# Делаем политику закрытого фаерволла
block in all
# Тогда надобность в следующих двух строках отпадает
#block on $vpnb_if proto tcp from any to 192.168.252.59
#block on $vpnb_if proto tcp from 192.168.252.59 to any
# Следующие стоки для NAT-а заменяются одной
# pass out on $vpnb_if proto tcp from 192.168.252.59 to any queue rezh
# pass in on $vpnb_if proto tcp from any to 192.168.252.59 queue rezh
pass out on $vpnb_if proto tcp from 192.168.252.59 to any modulate state queue rezh
Вообщем вылаживай правила целиком, без упращений и сокарщений и напиши, что они должны делать
Re: Pf не режет скорость, подлец.
Добавлено: 2009-08-31 9:32:36
vasdor
Ну, фактически это и есть весь конфиг, действующий в определённый момент. Именно он работает. Пусть будет открытый. Но ведь должен же резать.
---
VPN - название условное. Так называет провайдер услугу - через ADSL-модем связь с другим офисом. Т.е. не тот VPN, который обычно имеетс в виду..
---
Телепатический дар твой немножко обманывает. Я хочу обрезать одному ip скорость - и , например, скорость скачивания с шлюза по самбе режет отлично (на одном интерфейсе). А скорость скачивания с другого офиса по тем же протоколам (через 2 интерфейса - внутр. и внешн.) не хочет резать, хоть ты тресни.
---
В любом случае, спасибо за желание помочь... Буду разбираться...