Страница 1 из 2
помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 13:58:41
bahan
Я сам не программер и не знаю языка shell, но очень сильно нужна помощь по дописанию этого скрипта! Нужно переменную shape rate как то привязать к pipe в ipfw в FreeBSD. Те кто работают с программой lanbilling знают, о чем я имею ввиду! Сразу скажу, что у них ни на форуме, ни на сайте никакой инфы по этому поводу нет! Люди добрые помогите пожалуйста.
PS:Их служба поддержки пинает постоянно.
Ниже приведен сам скрипт. Здесь работает блокирование абонента по ip и mask - е.
Код: Выделить всё
#!/bin/sh
# file, that will turn on virtual groups access to network resources
(input args: login, password, segment, mask, shape rate) ex: test password 192.168.0.0 255.255.255.0 128
# ipfw default policy: DENY,ACCEPT
POLICY="DENY"
# POLICY="ACCEPT"
test -z "$4" && exit 0
if test "$4" = "255.255.255.255"
then
M=" ";
else
M="/";
fi;
IP="$3"
if [ $POLICY="DENY" ]; then
test -z "`/sbin/ipfw list | grep -i "allow ip from $IP$M"`" && /sbin/ipfw -q add allow ip from $3:$4 to any
test -z "`/sbin/ipfw list | grep -i "allow ip from any to $IP$M"`" && /sbin/ipfw -q add allow ip from any to $3:$4
fi
if [ $POLICY="ACCEPT" ]; then
for NUM in `/sbin/ipfw list | grep -i "deny ip from $IP$M" | awk '{print $1}'`;
do
/sbin/ipfw delete $NUM;
done;
for NUM in `/sbin/ipfw list | grep -i "deny ip from any to $IP$M" | awk '{print $1}'`;
do
/sbin/ipfw delete $NUM;
done;
fi
exit 0;
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 15:40:05
zg
bahan писал(а):знают, о чем я имею ввиду!
гм...
bahan писал(а):Нужно переменную shape rate как то привязать к pipe в ipfw в FreeBSD
что-то не видать такой перменной

Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 15:53:51
bahan
Эта переменная указана вверху скрипта (input args: login, password, segment, mask, shape rate) ex: test password 192.168.0.0 255.255.255.0 128
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 16:25:51
zg
нда.. странный надо сказать скриптец, какая-то у него логика кособокая...
bahan писал(а):Эта переменная указана вверху скрипта
там указан комментарий, а не переменная.. ну да ладно. Тебе какую команду надо выполнить и при каких условиях?
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 16:41:21
bahan
zg писал(а):нда.. странный надо сказать скриптец, какая-то у него логика кособокая...
bahan писал(а):Эта переменная указана вверху скрипта
там указан комментарий, а не переменная.. ну да ладно. Тебе какую команду надо выполнить и при каких условиях?
Короче, нужно чтобы программа lanbilling скриптом vg.off устанваливала скорость подключения к интернету абонента, т.е. например при помощи переменных IP и M, она (программа lanbilling) находит IP абонента в базе и маску и разрешает доступ в интернет, а какая то переменная, ну предположим P должна устанавливать скорость подключения абонента к интеренту. И эта переменная должна быть завязана с pipe в ipfw.
Я хотел по анологии попробовать сделать так:
Код: Выделить всё
if test "$4" = "255.255.255.255"
then
M=" ";
else
M="/";
fi;
IP="$3"
if test "$5" = "64"
then
P="64";
else test "$5" = "128"
then
P="128";
fi;
if [ $POLICY="DENY" ]; then
test -z "`/sbin/ipfw list | grep -i "allow ip from $IP$M"`" && /sbin/ipfw -q add allow ip from $3:$4 to any
test -z "`/sbin/ipfw list | grep -i "allow ip from any to $IP$M"`" && /sbin/ipfw -q add allow ip from any to $3:$4
test -z "`/sbin/ipfw list | grep -i "pipe $P from $IP$M"`" && /sbin/ipfw -q add pipe $5 from $3:$4 to any out via em1
fi
Но этот скрипт не работает

(
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 16:48:19
hizel
мне напрягает то что возможно зашейплевание подсеток, в этом случае надо связку pipe+queue

Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 16:49:52
bahan
hizel писал(а):мне напрягает то что возможно зашейплевание подсеток, в этом случае надо связку pipe+queue

Объясни по подробнее! Имеется ввиду указывать pipe и queue в этом скрипте?
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 17:40:50
hizel
если на одного клиента выделяется один ip то
предварительно создаем очереди на каждый шейп, надеюсь их опредленное количество?
для 128 кбит\с
Код: Выделить всё
ipfw pipe 128 config bw 256Kbit/s queue 25 mask dst-ip 0xffffffff
ipfw pipe 129 config bw 256Kbit/s queue 25 mask src-ip 0xffffffff
и
далее ваш скрипт
Код: Выделить всё
#!/bin/sh
# file, that will turn on virtual groups access to network resources
(input args: login, password, segment, mask, shape rate) ex: test password 192.168.0.0 255.255.255.0 128
# ipfw default policy: DENY,ACCEPT
POLICY="DENY"
# POLICY="ACCEPT"
test -z "$4" && exit 0
if test "$4" = "255.255.255.255"
then
M=" ";
else
M="/";
fi;
IP="$3"
SHAPEFROM="$5"
SHAPETO="$(($5 + 1))"
if [ $POLICY="DENY" ]; then
test -z "`/sbin/ipfw list | grep -i "pipe $SHAPETO ip from $IP$M"`" && /sbin/ipfw -q add pipe $SHAPETO ip from $3:$4 to any
test -z "`/sbin/ipfw list | grep -i "pipe $SHAPEFROM ip from any to $IP$M"`" && /sbin/ipfw -q add pipe $SHAPEFROM ip from any to $3:$4
test -z "`/sbin/ipfw list | grep -i "allow ip from $IP$M"`" && /sbin/ipfw -q add allow ip from $3:$4 to any
test -z "`/sbin/ipfw list | grep -i "allow ip from any to $IP$M"`" && /sbin/ipfw -q add allow ip from any to $3:$4
fi
if [ $POLICY="ACCEPT" ]; then
for NUM in `/sbin/ipfw list | grep -i "deny ip from $IP$M" | awk '{print $1}'`;
do
/sbin/ipfw delete $NUM;
done;
for NUM in `/sbin/ipfw list | grep -i "deny ip from any to $IP$M" | awk '{print $1}'`;
do
/sbin/ipfw delete $NUM;
done;
fi
exit 0;
как то так
и вообще я луче бы в вашем случае оперировал табличками
ээ, да так вот получается волне элементарно, но если надо подсети, то подсеть если засунуть в такой пайп, то каждому ip будет выделена по полосе, что естественно не есть гуд, на такой баклажан предется для каждого клиента делать два pipe входящий\исходящий и в них по queue для равномерного распределения трафика по ip из подсети
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 18:09:03
bahan
Спасибо тебе огромное за то, что помогаешь, но lanbilling почему то выдает ошибку и не ограничевает скорость и даже перестал блокировать абонента

Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 18:10:27
bahan
bahan писал(а):Спасибо тебе огромное за то, что помогаешь, но lanbilling почему то выдает ошибку и не ограничевает скорость и даже перестал блокировать абонента

А что ты имеешь ввиду под словом таблички?

Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 18:18:22
bahan
и скорость не ограничивает, вместо 128 например дает 512 и т.д.
вот лог которые дает lanbilling
[31/Mar 19:13:30] [db_conf] Starting Divert thread.
[31/Mar 19:13:30] [main] LANBilling 1.8 DEMO Ethernet Network Agent Build: 0014 (02.10.2008) started ...
[31/Mar 19:13:30] [init_capture] Divert handle created on port 7223.
[31/Mar 19:13:31] [unblock_all] Switch on procedure for account [4] started.
[31/Mar 19:13:31] [vg_script] Starting script /usr/local/billing/vg.on with parameters: login=Proba22, password=123456, segment=10.1.100.105, mask=255.255.255.255, shape rate=64.
[31/Mar 19:13:31] [make_hour] Started.
[31/Mar 19:13:31] [make_hour] No records done. Next try will be in 1 hour.
[31/Mar 19:13:31] [make_hour] thread ended.
[31/Mar 19:13:31] [unblock_all] Switch on procedure for account [4] ended with errors.
[31/Mar 19:15:11] [check_stat] records: 0 in: 0 out: 0
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 18:25:47
hizel
ну куда вы торопитесь

заповедь:
семь раз оттесть один раз внедри
для начала скажите мне фундаментальную вещь, вы на клиента подсети выделяете или по одному ip на рыльце?
UPD: еще неплохо бы увидеть версию FreeBSD и начальный фаервол
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 18:46:27
bahan
FreeBSD версии 6.3 и на каждое рыльце по IP

Пока используем предустановку в IPFW под названием simple
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-03-31 20:49:22
hizel
у мя рапотает,
испаганил так:
Код: Выделить всё
#!/bin/sh
# file, that will turn on virtual groups access to network resources
# (input args: login, password, segment, mask, shape rate) ex: test password 192.168.0.0 255.255.255.0 128
test -z "$4" && exit 0
if test "$4" = "255.255.255.255"
then
M="";
else
M="/";
fi;
IP="$3"
SHAPEFROM="$5"
SHAPETO="$(($5 + 1))"
/sbin/ipfw disable one_pass
# 64 shape
/sbin/ipfw pipe 64 config bw 64Kbit/s queue 15 mask dst-ip 0xffffffff
/sbin/ipfw pipe 65 config bw 65Kbit/s queue 15 mask src-ip 0xffffffff
# 128 shape
/sbin/ipfw pipe 128 config bw 128Kbit/s queue 25 mask dst-ip 0xffffffff
/sbin/ipfw pipe 129 config bw 128Kbit/s queue 25 mask src-ip 0xffffffff
# 256 shape
/sbin/ipfw pipe 256 config bw 256Kbit/s queue 30 mask dst-ip 0xffffffff
/sbin/ipfw pipe 257 config bw 257Kbit/s queue 30 mask src-ip 0xffffffff
test -z "`/sbin/ipfw list | grep -i "pipe $SHAPETO ip from $IP$M"`" && /sbin/ipfw -q add pipe $SHAPETO ip from $3:$4 to any
test -z "`/sbin/ipfw list | grep -i "pipe $SHAPEFROM ip from any to $IP$M"`" && /sbin/ipfw -q add pipe $SHAPEFROM ip from any to $3:$4
test -z "`/sbin/ipfw list | grep -i "allow ip from $IP$M"`" && /sbin/ipfw -q add allow ip from $3:$4 to any
test -z "`/sbin/ipfw list | grep -i "allow ip from any to $IP$M"`" && /sbin/ipfw -q add allow ip from any to $3:$4
exit 0;
расчитанно на работу при shape 64,128,256 , при других занчениях работа не определена
и еще
-M=" ";
+M="";
пробельчик убрал, иначе правила дублируются
да и убрал тип фаервола, так как у вас он наверно менятсо не будет

Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-04-01 15:06:39
bahan
А извини пожалуйста, ты не мог бы показать правила, которые ты используешь в своем файерволе?
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-04-01 15:47:32
hizel
вырубленная виртуалка дома
что то типа
Код: Выделить всё
ipfw add natd ip from any to any via $uplink
ipfw add allow ip from any to any via $uplink
и усё
это если по умолчанию deny
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-04-02 11:10:02
bahan
а в файерволе с твоим скриптом нужно прописать
Просто как я понимаю, получается что скрипт добавляет в файервол например строку pipe 128 ip from $IP$M
И еще, ты тоже пользуешься lanbilling с сетевым агентом Ethernet?
Кстати, фаервол установлен через пересобирания ядра, установка по умолчанию default_to_access, а настройки в нем пока используются симпл simple.
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-04-02 11:57:18
hizel
нет я не пользуюсь lanbilling, просто смотрите что у вас подучается после отработки скрипта в ipfw show и ipfw pipe show
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-04-02 12:08:48
bahan
Данные команды показывают, что каналы существуют.
00128: 256.000 Kbit/s 0 ms 25 sl. 0 queues (64 buckets) droptail
00127: 128.000 Kbit/s 0 ms 25 sl. 0 queues (64 buckets) droptail
00129: 256.000 Kbit/s 0 ms 25 sl. 0 queues (64 buckets) droptail
00126: 128.000 Kbit/s 0 ms 25 sl. 0 queues (64 buckets) droptail
00125: 64.000 Kbit/s 0 ms 25 sl. 0 queues (64 buckets) droptail
00124: 64.000 Kbit/s 0 ms 25 sl. 0 queues (64 buckets) droptail
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-04-02 12:42:24
Rita
Я использую ланбиллинг. У тебя каким агентом обслуживаются эти скрипты?
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-04-02 13:10:27
bahan
агент используется Ethernet, а версия Lanbilling 1.8 Pro
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-04-29 1:44:15
6eremot
Заработало?
/sbin/ipfw disable one_pass
# 64 shape
/sbin/ipfw pipe 64 config bw 64Kbit/s queue 15 mask dst-ip 0xffffffff
/sbin/ipfw pipe 65 config bw 65Kbit/s queue 15 mask src-ip 0xffffffff
# 128 shape
/sbin/ipfw pipe 128 config bw 128Kbit/s queue 25 mask dst-ip 0xffffffff
/sbin/ipfw pipe 129 config bw 128Kbit/s queue 25 mask src-ip 0xffffffff
# 256 shape
/sbin/ipfw pipe 256 config bw 256Kbit/s queue 30 mask dst-ip 0xffffffff
/sbin/ipfw pipe 257 config bw 257Kbit/s queue 30 mask src-ip 0xffffffff
Это не надо держать в скрипте vg.off и почему vg.off если это скрипт на блокировку?
Еще не совсем понятно что используется на уровне доступа и как защищаетесь от банальной смены ip юзером.
А по поводу саппорта не правда ваша, вполне адекватные ребята, тем более что они продают софт, а не аутсорсинг, который у них отдельной строкой есть в прайсе.
И да у меня их 3...
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-04-29 8:51:37
bahan
на счет скрипта vg.on и vg.off я разобрался, у меня работает ниже следующее:
Код: Выделить всё
ip=$3
bw=$5
/sbin/ipfw table 10 delete $ip
/sbin/ipfw table 12 delete $ip
/sbin/ipfw table 14 delete $ip
/sbin/ipfw table 16 delete $ip
/sbin/ipfw table 18 delete $ip
/sbin/ipfw table 20 delete $ip
if
[ $bw -eq 0 ];
then
/sbin/ipfw table 20 add $ip
elif
[ $bw -ge 1 ] && [ $bw -le 64 ];
then
/sbin/ipfw table 10 add $ip
elif
[ $bw -ge 65 ] && [ $bw -le 128 ];
then
/sbin/ipfw table 12 add $ip
elif
[ $bw -ge 129 ] && [ $bw -le 256 ];
then
/sbin/ipfw table 14 add $ip
elif
[ $bw -ge 257 ] && [ $bw -le 512 ];
then
/sbin/ipfw table 16 add $ip
elif
[ $bw -ge 513 ] && [ $bw -le 1024 ];
then
/sbin/ipfw table 18 add $ip
elif
[ $bw -ge 1025 ];
then
/sbin/ipfw table 20 add $ip
fi
echo "$3 $5" >> /usr/local/billing/logs/1.log
exit 0
вот это на выборку из базы ip и привязанной к ним скорости, далее вставляется в таблицы, по которым файерволл должен резать скорость.
Сегодня с утра получилось после долго чтения документации по языку shell.
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-04-29 9:06:31
bahan
вопрос теперь в другом, перечитал маны по dummynet и ipfw, но данная конструкция не работает (при установленном или не установленном sysctl net.inet.ip.fw.one_pass=0)
файер теперь через ядро стоит на add deny all from any to any, и что самое интересное на этом правиле покеты не режутся, они поидее вообще из pipe вываливаются, помогите понять в чем проблема
Код: Выделить всё
# 64 shape
${FwCMD} pipe 10 config mask src-ip 0xffffffff bw 64Kbit/s queue 20Kbytes
${FwCMD} pipe 15 config mask dst-ip 0xffffffff bw 64Kbit/s queue 20Kbytes
${FwCMD} add pipe 10 all from "table(10)" to any out
${FwCMD} add pipe 15 all from any to "table(10)" in
${FwCMD} add allow all from any to "table(10)"
${FwCMD} add allow all from "table(10)" to any
# 128 shape
${FwCMD} pipe 20 config mask src-ip 0xffffffff bw 128Kbit/s queue 20Kbytes
${FwCMD} pipe 25 config mask dst-ip 0xffffffff bw 128Kbit/s queue 20Kbytes
${FwCMD} add pipe 20 all from "table(12)" to any out
${FwCMD} add pipe 25 all from any to "table(12)" in
${FwCMD} add allow all from any to "table(12)"
${FwCMD} add allow all from "table(12)" to any
# 256 shape
${FwCMD} pipe 30 config mask src-ip 0xffffffff bw 256Kbit/s queue 20Kbytes
${FwCMD} pipe 35 config mask dst-ip 0xffffffff bw 256Kbit/s queue 20Kbytes
${FwCMD} add pipe 30 all from "table(14)" to any out
${FwCMD} add pipe 35 all from any to "table(14)" in
${FwCMD} add allow all from any to "table(14)"
${FwCMD} add allow all from "table(14)" to any
Re: помогите пожалуйста с скриптом vg.off от Lanbilling
Добавлено: 2009-04-30 17:33:28
6eremot
а что в ipfw show?