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

Исходное сообщение
"Тематический каталог: Раздача Интернета через VPN (mpd) с ог..."

Отправлено auto_topic , 10-Авг-09 18:41 
Обсуждение статьи тематического каталога: Раздача Интернета через VPN (mpd) с ограничением траффика по пользователям средствами PF (freebsd vpn mpd limit traffic pf firewall)

Ссылка на текст статьи: http://www.opennet.me/base/net/vpn_mpd_pf.txt.html


Содержание

Сообщения в этом обсуждении
"Раздача Интернета через VPN (mpd) с ограничением траффика по пользователям средствами PF (freebsd vpn mpd limit traffic ..."
Отправлено Добрый Дохтур , 10-Авг-09 18:41 
а active ftp как будем пропускать? :))

"Раздача Интернета через VPN (mpd) с ограничением траффика по..."
Отправлено XoRe , 10-Авг-09 21:26 
>а active ftp как будем пропускать? :))

Ваши предложения? )


"Раздача Интернета через VPN (mpd) с ограничением траффика по..."
Отправлено artemrts , 11-Авг-09 11:17 

Да, согласен активный ftp тут работать не будет. Если кому надо, тогда нужно задействовать  proxy-ftp.


"Раздача Интернета через VPN (mpd) с ограничением траффика по пользователям средствами PF (freebsd vpn mpd limit traffic ..."
Отправлено Аноним , 11-Авг-09 02:35 
>>Далее правим /etc/make.conf

ЗАЧЕМ приводить пример make.conf (без пояснений) для конкретной машины с конкретной версией софта? Чтобы кто-то (так же не думая) тупо его повторил и получил грабли?

>>Для бересборки ядра редактируем GENERIC. Его я переименовал в MYGENERIC1 ..... я приведу

только то что необходимо для работы.

1. Генерик мы не редактируем.
2. Закомментированные строчки _нужны_ для работы? Что за бред? Зачем опять же частную реализацию выдавать за "необходимо для работы"? Без отключения INET6 или NFS оно работать не будет?


"Раздача Интернета через VPN (mpd) с ограничением траффика по..."
Отправлено artemrts , 11-Авг-09 10:23 

  Уважаемый ононим. Я Вам поясню.
  Во-первых данная статья предполагает, что читающий имеет некий опыт работы с данной ОС и прочитал перед этим хендбук. А те параметры make.conf, что я указал не привязаны к конкретному железу.

>1. Генерик мы не редактируем.

нет, именно генерик, переименованный в MYGENERIC1 мы и редактируем

>2. Закомментированные строчки _нужны_ для работы? Что за бред? Зачем опять же частную >реализацию выдавать за "необходимо для работы"? Без отключения INET6 или NFS оно работать >не будет?

Вы какой-то странный. Почему частная реализация? Скажите, зачем IPv6 в реализации с нат??? Или NFS на пограничном фаерволле? Я же не показывал какие сетевые девайсы закомментировать в конфиге.
Вы, извините, сколько дней админите?


"Раздача Интернета через VPN (mpd) с ограничением траффика по пользователям средствами PF (freebsd vpn mpd limit traffic ..."
Отправлено уть , 11-Авг-09 10:19 
1.5. Для бересборки ядра редактируем GENERIC
бересборка Ж)

"Раздача Интернета через VPN (mpd) с ограничением траффика по пользователям средствами PF (freebsd vpn mpd limit traffic ..."
Отправлено rm , 11-Авг-09 10:42 
все же хотелось бы немного пояснений
например anchor "ext_if-out/*"
что это за якорь?  и где его описание?
может что проглядел?

"Раздача Интернета через VPN (mpd) с ограничением траффика по..."
Отправлено artemrts , 11-Авг-09 11:30 
>все же хотелось бы немного пояснений
>например anchor "ext_if-out/*"
>что это за якорь?  и где его описание?
>может что проглядел?

  Конечно поясню.

  Якоря в конфиге для того, что бы добавлять разрешающие правила в фаервол в момент, когда пользователь подключился по впну, и сбросить правила - когда отключился.

Якоря находятся в старт-скрипте vpn-сервера

set iface up-script /usr/local/etc/mpd5/if-up.sh
set iface down-script /usr/local/etc/mpd5/if-down.sh

if-up.sh

#!/bin/sh
echo "nat on le0 tag from_$4 tagged from_$4 -> le0" | pfctl -a mpd-nat/$4 -f -;
Собственно правило для ната

echo "pass out quick on le0 inet tagged from_$4 queue $4_up" | pfctl -a ext_if-out/$4 -f -;
Правило разрешающее траффик с внешнего интерфейса, для конкретного пользователя с назначеной очередью.

echo "pass in quick on $1 inet from $1:peer $4 to any tag from_$4 queue $4_down" | pfctl -a ng-in/$4 -f -;
Это правило разрешает трафик к создавшемуся интерфейсу ng* от пользователя, назначает тег и очередь

Сейчас такая схема работает вполне успешно, обслуживает 20 клиентов.


"Раздача Интернета через VPN (mpd) с ограничением траффика по пользователям средствами PF (freebsd vpn mpd limit traffic ..."
Отправлено rm , 11-Авг-09 11:36 
спасибо за пояснение :)

"Раздача Интернета через VPN (mpd) с ограничением траффика по пользователям средствами PF (freebsd vpn mpd limit traffic ..."
Отправлено Planner , 11-Авг-09 16:11 
Хочу queue anchor и правила в стиле "каждой твари - по харе", a-la "queue XYZ bandwidth 1Mb cbq(ecn each32)" (чтобы каждому хосту давалось по 1Mb) или "queue SDF bandwidth 8Mb cbq(ecn each24)" (чтобы каждой подсети с маской 24 бита давалось по 8Mb)

"Раздача Интернета через VPN (mpd) с ограничением траффика по"
Отправлено Qaz , 18-Авг-09 12:34 
Зачем приводить пример кучи сискатеелей без пояснения что они делают :)

"Раздача Интернета через VPN (mpd) с ограничением траффика по пользователям средствами PF (freebsd vpn mpd limit traffic ..."
Отправлено Konstantine , 21-Дек-09 01:10 
sРРРРРРРРРррррррр блин ну чё я не так делаю у мя всё вроде маркирует норм но всеравно в очередях которых я прописал не режит трафик всеравно забирает всю полосу

"Раздача Интернета через VPN (mpd) с ограничением траффика по пользователям средствами PF (freebsd vpn mpd limit traffic ..."
Отправлено Konstantine , 21-Дек-09 01:18 
altq on $if_in cbq bandwidth 100Mb qlimit 50 queue { def_download }
queue def_download bandwidth 100% { 192.168.1.0_down, \
192.168.222.1_down, 192.168.222.2_down, 192.168.222.3_down, 192.168.222.4_down, 192.168.222.5_down, \
     ........... }
queue 192.168.1.0_down bandwidth 40Mb cbq(default red borrow)
queue 192.168.222.1_down bandwidth 1Mb cbq(ecn)
queue 192.168.222.2_down bandwidth 1Mb cbq(ecn)
queue 192.168.222.3_down bandwidth 1Mb cbq(ecn)
...............
altq on $if_out cbq bandwidth 100Mb qlimit 50 queue { def_upload }
queue def_upload bandwidth 100% {   192.168.1.0_up, \
192.168.222.1_up, 192.168.222.2_up, 192.168.222.3_up, 192.168.222.4_up, 192.168.222.5_up, \
........... }
queue 192.168.1.0_up bandwidth 60Mb cbq(default red borrow)
queue 192.168.222.1_up bandwidth 512Kb cbq(ecn)
queue 192.168.222.2_up bandwidth 512Kb cbq(ecn)
..............

### NAT
nat-anchor "mpd-nat/*"

nat on $if_out from $our_network to any -> $if_out
#nat on $if_out from $if_in:network to any -> $if_out

#pass quick all
#pass all

block in all
pass out all
antispoof quick for { lo $if_out } inet

#ping $$ traceroute (razreshitb vxodashie na BCE !!!)
pass in proto icmp all

### EXT_IF_OUT
#anchor "ext_if-out/*"
#anchor "ng-in/*"
pass in quick on ng0 inet from 192.168.222.1 to any tag from_192.168.222.1 queue 192.168.222.1_down
pass out quick on sis0 inet tagged from_192.168.222.1 queue 192.168.222.1_up

Уже так делаю ну всеравно не шейпит ((((((( всю ширину канала забирает


"Раздача Интернета через VPN (mpd) с ограничением траффика по..."
Отправлено artemrts , 21-Дек-09 10:33 
>[оверквотинг удален]
>
>### EXT_IF_OUT
>#anchor "ext_if-out/*"
>#anchor "ng-in/*"
>pass in quick on ng0 inet from 192.168.222.1 to any tag from_192.168.222.1
>queue 192.168.222.1_down
>pass out quick on sis0 inet tagged from_192.168.222.1 queue 192.168.222.1_up
>
>Уже так делаю ну всеравно не шейпит ((((((( всю ширину канала забирает
>

Мне кажется в этом проблема:

altq on $if_in cbq bandwidth 100Mb qlimit 50 queue { def_download }
queue def_download bandwidth 100% { 192.168.1.0_down, \
192.168.222.1_down, 192.168.222.2_down, 192.168.222.3_down, 192.168.222.4_down, 192.168.222.5_down, \
     ........... }

т.е. основная очередь в которую входят пользовательские очереди у тебя не дефаулт, а надо что бы она таковой была.

queue 192.168.1.0_down bandwidth 40Mb cbq(default red borrow)
А здесь дефаулт не нужен.

queue 192.168.222.1_down bandwidth 1Mb cbq(ecn)
queue 192.168.222.2_down bandwidth 1Mb cbq(ecn)

И еще, важным моментом есть эта строчка в pf.conf
set state-policy if-bound


Внимательно читай статью. Смоделирую в виртуальной среде,а потом подгоняй под свои конкретные задачи.

Свою систему шейпирования я сделал, отталкиваясь вот от этой статьи:
http://kestas.kuliukas.com/pf.conf/


"Раздача Интернета через VPN (mpd) с ограничением траффика по пользователям средствами PF (freebsd vpn mpd limit traffic ..."
Отправлено Firefox , 16-Янв-10 03:18 
Отлично, пасиба