NAS на FreeBSD 6.4

Технические вопросы по UTM 5.0
Ответить
avegad
Сообщения: 54
Зарегистрирован: Чт сен 20, 2007 08:39

NAS на FreeBSD 6.4

Сообщение avegad »

Возможно офтоп, но требуется ответ будет ли работать такая конструкция или нет(Спрашиваю потому что раньше работал только с linux'ом)
Подскажите пожалуйста, что и куда надо дописать или наоборот убрать, чтоб работало.
Дело в том что я не могу переключиться на новый сервер, пока не работает шейпер хотя бы по минимуму, отключать старый естественно нельзя пока не заработает новый(настройка в слепую :( )


FreeBSD 6.4 x64

Ядро собрано с опциями

Код: Выделить всё

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET
options NETGRAPH
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE

rc.firewall

Код: Выделить всё

#!/bin/sh
fwcmd="/sbin/ipfw"

${fwcmd} -f flush
${fwcmd} -f queue flush
${fwcmd} -f pipe flush
${fwcmd} add 100 allow ip from any to me
${fwcmd} add 200 allow ip from me to any
mpd.conf

Код: Выделить всё

startup:
	set user admin ********* admin
	set user view ********
	
	set console self 172.18.1.3 5005
	set console open
	
	set web self 172.18.1.3 5006
	set web open

default:
	load pptp_server

pptp_server:
	create bundle template B
	set iface enable proxy-arp
	set ifce idle 1800
	set iface enable tcpmssfix
	set iface up-script /usr/local/etc/mpd5/shaping/up.sh
	set iface down-script /usr/local/etc/mpd5/shaping/down.sh
	set ipcp yes vjcomp
	set ipcp ranges 172.18.1.3 89.yyy.yyy.0/22
	set ipcp dns 89.xxx.xxx.84
	set bundle enable compression
	
	create link template L pptp
	set link action bundle B
	set link enable multilink
	set link yes acfcomp protocomp
	set link no pap chap
	set link enable chap
	load radius
	set link keep-alive 10 60
	set link mtu 1460
	set pptp self 172.18.1.3
	set pptp disable windowing
	set pptp enable always-ack
	set link enable incoming
	
radius:
	set radius config /usr/local/etc/mpd5/radius.conf
	set radius server 172.18.1.2 1812 1813
	set radius retries 3
	set radius timeout 3
	set radius me 172.18.1.3
	set auth acct-update 300
	set auth enable radius-auth
	set auth enable radius-acct
	set radius enable message-authentic
up.sh

Код: Выделить всё

#!/bin/sh
IF=$1
IP=$4
TP=`echo "SELECT account_tariff_link.tariff_id FROM account_tariff_link INNER JOIN users ON account_tariff_link.account_id=users.id INNER JOIN ip_groups ON users.login=ip_groups.uname WHERE ip_groups.ip=inet_aton('$IP') AND account_tariff_link.is_deleted=0 AND users.is_deleted=0 AND ip_groups.is_deleted=0" | mysql -u init -p****** -h 172.18.1.2 UTM5 | sed '1d'`
SP20="320Kbit/s"
SP21="512Kbit/s"
IFNUM=$(awk "BEGIN { printf \"%03s\", substr(\"$1\", 3) }")

if [ "$TP" = "20" ]; then
/sbin/ipfw pipe $(echo 30$IFNUM) config bw $SP20
/sbin/ipfw pipe $(echo 31$IFNUM) config bw $SP20
/sbin/ipfw add $(echo 30$IFNUM) pipe $(echo 30$IFNUM) ip from $IP to any
/sbin/ipfw add $(echo 31$IFNUM) pipe $(echo 31$IFNUM) ip from any to $IP
echo "UNLIM-128 $TP" >> /var/log/mpdd.log 
fi

if [ "$TP" = "21" ]; then
/sbin/ipfw pipe $(echo 30$IFNUM) config bw $SP21
/sbin/ipfw pipe $(echo 31$IFNUM) config bw $SP21
/sbin/ipfw add $(echo 30$IFNUM) pipe $(echo 30$IFNUM) ip from $IP to any
/sbin/ipfw add $(echo 31$IFNUM) pipe $(echo 31$IFNUM) ip from any to $IP
echo "UNLIM-256 $TP" >> /var/log/mpdd.log 
fi
down.sh

Код: Выделить всё

#!/bin/sh
IF=$1
TP=`echo "SELECT account_tariff_link.tariff_id FROM account_tariff_link INNER JOIN users ON account_tariff_link.account_id=users.id INNER JOIN ip_groups ON users.login=ip_groups.uname WHERE ip_groups.ip=inet_aton('$IP') AND account_tariff_link.is_deleted=0 AND users.is_deleted=0 AND ip_groups.is_deleted=0" | mysql -u init -p******* -h 172.18.1.2 UTM5 | sed '1d'`
IFNUM=$(awk "BEGIN { printf \"%03s\", substr(\"$1\", 3) }")

if [ "$TP" = "20" ]; then
ipfw pipe delete $(echo 30$IFNUM)
ipfw pipe delete $(echo 31$IFNUM)
ipfw delete $(echo 30$IFNUM)
ipfw delete $(echo 31$IFNUM)
ipfw delete $(echo 32$IFNUM)
fi

if [ "$TP" = "21" ]; then
ipfw pipe delete $(echo 30$IFNUM)
ipfw pipe delete $(echo 31$IFNUM)
ipfw delete $(echo 30$IFNUM)
ipfw delete $(echo 31$IFNUM)
ipfw delete $(echo 32$IFNUM)
fi

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

поставить MPD4 с NG_CAR из портов, прочитать ветку в документации, где рассказано про Mpd и ng_car. Шейпинг вынести в радиус-атрибуты услуги передачи трафика в тарифе.

avegad
Сообщения: 54
Зарегистрирован: Чт сен 20, 2007 08:39

Сообщение avegad »

Шейпинг вынести в радиус-атрибуты услуги передачи трафика в тарифе.
UTM5.2.0-002
при переходе с тарифа на тариф продолжает отдавать атрибуты старого тарифа, который был в предыдущем РП, пока не залезешь в редактирование и не "пошевелишь" абонента.

Меня интересует именно подсказка по ipfw.

P.S На линухе сейчас именно так и реализовано(с проверкой ID тарифа)
P.P.S На всех форумах меня тоже настойчиво пинают на ng_car
Тогда ещё вопрос:
Возможна на нём реализация разных скоростей:
т.е во внутренней сети(включая межабонентский трафик) скорость одна, а в инете - другая?

Blackmore
Сообщения: 365
Зарегистрирован: Вс фев 06, 2005 09:24
Откуда: подмосковье

Сообщение Blackmore »

курить man mpd в части радиус атрибутов, через которые отдаются параметры ng_kar - там есть и фильтрация по типу адреса назначения

avegad
Сообщения: 54
Зарегистрирован: Чт сен 20, 2007 08:39

Сообщение avegad »

т.е ограничение для всех сетей судя по мануалу получится так:
для тарифа 320килобит

1#1=match dst net 0.0.0.0/0"
1#2=match src net 0.0.0.0/0"
in#1#Biz=all shape 320000 4000"

а на 512

1#1=match dst net 0.0.0.0/0"
1#2=match src net 0.0.0.0/0"
in#1#Biz=all shape 512000 4000"

?

Сразу же вопрос, как эту запись интерпретировать для записи в радиус-атрибуты тарифа?
Лучше даже скиншот, скинуть на avegadraga(at)gmail.com

P.S Просьба к работающим со связкой mpd5+ng_car+radius+UTM5:
Может быть составить внятный мануал по использованию и настройке данной связки, чтоб закрыть этот вопрос раз и на всегда. Имхо при первом использовании данной связки подобные вопросы не только у меня возникают.

Аватара пользователя
hRUst
Сообщения: 56
Зарегистрирован: Ср фев 22, 2006 13:16
Откуда: Канск

Сообщение hRUst »

Код: Выделить всё

12341	6	1#1=match dst net x.x.x.0/24 and src net 10.0.0.0/8
12341	6	1#2=match dst net x.x.x.0/24 and src net x.x.x.0/24
12341	6	1#3=match dst net 10.0.0.0/8 and src net 10.0.0.0/8
12341	6	1#4=match dst net 172.16.0.0/11 and src net 172.16.0.0/11
12341	6	1#5=match dst net x.x.x.0/24 and src net 172.16.0.0/11
12341	6	2#1=match src net x.x.x.0/24 and dst net 10.0.0.0/8
12341	6	2#2=match src net x.x.x.0/24 and dst net x.x.x.0/24
12341	6	2#3=match src net 10.0.0.0/8 and dst net 10.0.0.0/8
12341	6	2#4=match src net 172.16.0.0/11 and dst net 172.16.0.0/11
12341	6	2#5=match src net x.x.x.0/24 and dst net 172.16.0.0/11

12341	7	in#1=flt1 pass
12341	7	in#2=all shape 512000 4000 pass
12341	7	out#1=flt2 pass
12341	7	out#2=all shape 512000 4000 pass

Ответить