Страница 1 из 1
MPD ngX
Добавлено: 2010-11-04 17:32:40
Dark_ASU
Вопрос такой как каждому юзеру выдавать свой интерфейс.
Скажем так привязать конкретного пользователь к конкретному ng.
Mpd 5.5 \FreeBsd 8.0
Re: MPD ngX
Добавлено: 2010-11-04 17:46:48
LMik
Насколько помню нельзя так привязать.
Re: MPD ngX
Добавлено: 2010-11-04 18:06:52
Dark_ASU
В 4 можно было а здесь хз как.
Re: MPD ngX
Добавлено: 2010-11-04 18:26:04
schizoid
не было такого ни в 4.х ни в 3.х
Re: MPD ngX
Добавлено: 2010-11-04 18:33:47
Dark_ASU
Re: MPD ngX
Добавлено: 2010-11-05 10:28:49
schizoid
а, ну для каждого ИПа интерфейс прописывать.....ну-ну
не запаритесь, если будет несколько сотен коннектов?
вопрос. зачем вам привязка юзер=интерфейс? почему не использовать привязку юзер=ИП
Re: MPD ngX
Добавлено: 2010-11-05 11:22:10
skeletor
schizoid писал(а):не было такого ни в 4.х ни в 3.х
А вот как раз было и есть в 4-ке такое!
Re: MPD ngX
Добавлено: 2010-11-05 11:53:36
schizoid
прописывая вручную и используя mpd.secret?
или это можно заюзать в связке с радиусом?
Re: MPD ngX
Добавлено: 2010-11-05 12:07:35
skeletor
Как хочешь, так и будет

Re: MPD ngX
Добавлено: 2010-11-05 18:02:55
Ыть
К ng_x не привязать никак.
Если надо задать ip для юзера - можно посмотреть в сторону радиуса - полезно бывает. Указываете login, pass, ip и все.

Re: MPD ngX
Добавлено: 2010-11-05 18:30:51
Гость
schizoid писал(а):прописывая вручную и используя mpd.secret?
или это можно заюзать в связке с радиусом?
это вы не в ngX привязывались, а к айпи
а айпи по интерфейсам могут прыгать как им вздумается
Re: MPD ngX
Добавлено: 2010-11-05 18:51:43
schizoid
я собсна об этом и говорю
Re: MPD ngX
Добавлено: 2010-11-08 21:13:31
darkin
а как быть, если надо к клиенту привязать ifup-script? клиенту выдается постоянный ip через mpd.secret, но клиент - маршрутизатор маленькой удаленной сети, и надо туда прописать маршрут. а как это сделать, если клиенты по ngX прыгают?
Re: MPD ngX
Добавлено: 2010-11-08 23:02:57
snorlov
darkin писал(а):а как быть, если надо к клиенту привязать ifup-script? клиенту выдается постоянный ip через mpd.secret, но клиент - маршрутизатор маленькой удаленной сети, и надо туда прописать маршрут. а как это сделать, если клиенты по ngX прыгают?
Поищи по форуме, уже это обсуждалось, там в скрипт в переменные, типа $1,$2, передаются и ip и ngX
Re: MPD ngX
Добавлено: 2010-11-09 0:00:50
schizoid
Re: MPD ngX
Добавлено: 2010-11-09 19:44:25
darkin
благодарю, уже разобрался.все оказалось просто, на всякий случай, может, кому пригодится:
mpd.conf, секция pptp_standart:
set iface up-script /usr/local/etc/mpd/routing.sh
routing.sh :
Код: Выделить всё
#!/bin/sh
if [ "$4" = "x.x.x.x" ] #x.x.x.x - IP, прописанный нужному логину в mpd.secret
then
route add -net y.y.y.y/24 x.x.x.x #y.y.y.y - сеть за роутером-клиентом pptp
fi
так действительно получается - номер
ng пофигу, маршрут по любому пропишется.
ну и таких IF-ов можно насовать сколько надо, по желанию. или вообще case сложить попробовать?
Re: MPD ngX
Добавлено: 2010-11-09 22:14:00
schizoid
мой up-скрипт
Код: Выделить всё
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
###параметры получаемые при выполнении скрипта###
##$1 $2 $3 $4 $5
##ng0 inet 192.168.10.100/32 10.0.0.1 eugene
echo "$1 $2 $3 $4 $5 $6 $7 $8 $9" >> /usr/local/etc/mpd5/test 2>&1
#номер правила
i=`/bin/echo "select id from freeradius.radcheck where UserName='$5';" |mysql -s -ufreeradius -ppass` >> /usr/local/etc/mpd5/test 2>&1
#пакет скорости интернета
bw=`/bin/echo "select bw from freeradius.radcheck where UserName='$5';" |mysql -s -ufreeradius -ppass` >> /usr/local/etc/mpd5/test 2>&1
time=`date "+%H"`
time_start="00"
time_stop="10"
if ( [ $time -lt $time_stop ] && [ $time -ge $time_start ] )
then
if [ $bw = "bw_128" ]
then
bw="bw_384"
elif [ $bw = "bw_256" ]
then
bw="bw_512"
elif [ $bw = "bw_768" ]
then
bw="bw_1536"
elif [ $bw = "bw_1024" ]
then
bw="bw_2048"
elif [ $bw = "bw_1536" ]
then
bw="bw_3072"
fi
fi
echo "" >> /usr/local/etc/mpd5/test 2>&1
date=`date "+%Y-%m-%d"`
r_ip=`echo $8`
echo "r_ip=$r_ip" >> /usr/local/etc/mpd5/test
r_mac=`/usr/sbin/arp -n $r_ip|awk '{print $4}'` >> /usr/local/etc/mpd5/test 2>&1
echo "r_mac=$r_mac" >> /usr/local/etc/mpd5/test
mac1=`/bin/echo "select mac1 from freeradius.radcheck where UserName='$5';" |mysql -s -ufreeradius -ppass` >> /usr/local/etc/mpd5/test 2>&1
mac2=`/bin/echo "select mac2 from freeradius.radcheck where UserName='$5';" |mysql -s -ufreeradius -ppass` >> /usr/local/etc/mpd5/test 2>&1
mac3=`/bin/echo "select mac3 from freeradius.radcheck where UserName='$5';" |mysql -s -ufreeradius -ppass` >> /usr/local/etc/mpd5/test 2>&1
echo "-------------------------" >> /usr/local/etc/mpd5/test
echo `date` >> /usr/local/etc/mpd5/test
s=`/bin/echo "select $bw from freeradius.bw;" |mysql -s -ufreeradius -ppass` >> /usr/local/etc/mpd5/test 2>&1
echo "Speed is $s Kbit/s" >> /usr/local/etc/mpd5/test
num_in=`expr 500 + $i`
num_out=`expr 700 + $i`
num_block=`expr 800 + $i`
pipe_in=$i
pipe_out=`expr 1000 + $i`
echo "For user $5" >> /usr/local/etc/mpd5/test
echo "" >> /usr/local/etc/mpd5/test
#pipe's IN
ipfw add $num_in pipe $pipe_in ip from any to $4 >> /usr/local/etc/mpd5/test 2>&1
#pipe's OUT
ipfw add $num_out pipe $pipe_out ip from $4 to any >> /usr/local/etc/mpd5/test 2>&1
#pipe's speed
ipfw pipe $pipe_in config bw "$s"Kbit/s queue 20 >> /usr/local/etc/mpd5/test 2>&1
ipfw pipe $pipe_out config bw "$s"Kbit/s queue 20 >> /usr/local/etc/mpd5/test 2>&1
echo "" >> /usr/local/etc/mpd5/test
#count
ipfw add $num_in count ip from any to any in via $1 >> /usr/local/etc/mpd5/test 2>&1
ipfw add $num_out count ip from any to any out via $1 >> /usr/local/etc/mpd5/test 2>&1
echo "" >> /usr/local/etc/mpd5/test
# allow all for vpn users
ipfw table 3 add $4
echo "Begin test for mac-adress's" >> /usr/local/etc/mpd5/test
if [ "$r_mac" = "$mac1" ]; then
echo "mac1 Goot" >> /usr/local/etc/mpd5/test
elif [ "$r_mac" = "$mac2" ]; then
echo "mac2 Goot" >> /usr/local/etc/mpd5/test
elif [ "$r_mac" = "$mac3" ]; then
echo "mac3 Goot" >> /usr/local/etc/mpd5/test
else
echo "Пользователь $5 подключился с чужого компьютера IP=$r_ip (MAC=$r_mac). Правильный мак: $mac1, $mac2 или $mac3"| mail -s "Bad connections!!!" admin@domain.ua
echo "Пользователь $5 подключился с чужого компьютера IP=$r_ip (MAC=$r_mac). Правильный мак: $mac1, $mac2 или $mac3" >> /usr/local/etc/mpd5/test
ipfw add $num_block fwd 192.168.10.100,90 log tcp from $4 to any via vlan113 >> /usr/local/etc/mpd5/test 2>&1
fi
это так, для примера.
городить можно все что придумается
