Биллинговая система Nodeny
26 Ноября 2024, 10:55:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 [2] 3 4
  Печать  
Автор Тема: Нужна помощь в настройке!!!  (Прочитано 18710 раз)
boomer666
NoDeny
Постоялец
*

Карма: 1
Offline Offline

Сообщений: 194



Просмотр профиля Email
« Ответ #15 : 19 Января 2013, 16:20:26 »

Ответ неверный. Они не будут проходить авторизацию, если ПРАВИЛЬНО изменить процедуру. Они будут получать отсос на авторизацию и ломиться на следующий нас

что имено надо изменить в процедуре?
Записан
Demeo
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 204


Просмотр профиля Email
« Ответ #16 : 19 Января 2013, 16:33:05 »

Я понял...

Тебе надо поднять радиус на каждом насе. Сначала выносишь людей, которые должны висеть на определенном насе в отдельную группу. Первый нас, который обслуживает ВСЕХ настраивается по умолчанию (как в доке). Второй нас, который облуживает НЕ ВСЕХ, настраивается как сателлит. В доке написано как сделать вьюху для определенных групп (т.е. надо сделать вьюху из всех групп, но исключив номер нужной группы). Допустим вьюха будет иметь имя users1. Далее финты ушами. Первый нас не трогаешь вообще.

На втором шлюзе:
Код:
ee /usr/local/etc/raddb/sql.conf

authorize_check_query = "call radcheck1('%{SQL-User-Name}')"
authorize_reply_query = "call radreply1('%{SQL-User-Name}')"
accounting_update_query = "call radupdate1('%{SQL-User-Name}')"
accounting_stop_query = "call radstop1('%{SQL-User-Name}')"

В mysql:
Код:
use bill;

DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$  
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
  SELECT id,name,'Password' AS Attribute,AES_DECRYPT(passwd,'hardpass3') AS Value,'=='
    FROM users1 WHERE name=login;
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radreply`;
DELIMITER $$  
CREATE PROCEDURE `radreply` (IN login VARCHAR(64))
BEGIN
  DECLARE usr_id INT;  
  DECLARE usr_ip VARCHAR(15);

  SELECT id,ip INTO usr_id,usr_ip FROM users1 WHERE name=login;
  INSERT into dblogin (mid,act,time) VALUES (usr_id,47,unix_timestamp());

  SELECT NULL,login,'Framed-IP-Address',usr_ip,'=';
  SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','=';
  SELECT NULL,login,'Framed-Protocol','PPP','=';
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radupdate`;
DELIMITER $$  
CREATE PROCEDURE `radupdate` (IN login VARCHAR(64))
BEGIN
  INSERT into dblogin (mid,act,time) VALUES
    ((SELECT id FROM users1 WHERE name=login LIMIT 1),47,unix_timestamp());
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radstop`;
DELIMITER $$  
CREATE PROCEDURE `radstop` (IN login VARCHAR(64))
BEGIN
  INSERT into dblogin (mid,act,time) VALUES
    ((SELECT id FROM users1 WHERE name=login LIMIT 1),46,unix_timestamp());
END$$
DELIMITER ;

Что получилось... На каждом насе свой радиус, который обращается к базе к СВОЕЙ процедуре.
Записан
boomer666
NoDeny
Постоялец
*

Карма: 1
Offline Offline

Сообщений: 194



Просмотр профиля Email
« Ответ #17 : 19 Января 2013, 16:38:36 »

Я понял...

Тебе надо поднять радиус на каждом насе. Сначала выносишь людей, которые должны висеть на определенном насе в отдельную группу. Первый нас, который обслуживает ВСЕХ настраивается по умолчанию (как в доке). Второй нас, который облуживает НЕ ВСЕХ, настраивается как сателлит. В доке написано как сделать вьюху для определенных групп (т.е. надо сделать вьюху из всех групп, но исключив номер нужной группы). Допустим вьюха будет иметь имя users1. Далее финты ушами. Первый нас не трогаешь вообще.

На втором шлюзе:
Код:
ee /usr/local/etc/raddb/sql.conf

authorize_check_query = "call radcheck1('%{SQL-User-Name}')"
authorize_reply_query = "call radreply1('%{SQL-User-Name}')"
accounting_update_query = "call radupdate1('%{SQL-User-Name}')"
accounting_stop_query = "call radstop1('%{SQL-User-Name}')"

В mysql:
Код:
use bill;

DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$ 
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
  SELECT id,name,'Password' AS Attribute,AES_DECRYPT(passwd,'hardpass3') AS Value,'=='
    FROM users1 WHERE name=login;
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radreply`;
DELIMITER $$ 
CREATE PROCEDURE `radreply` (IN login VARCHAR(64))
BEGIN
  DECLARE usr_id INT; 
  DECLARE usr_ip VARCHAR(15);

  SELECT id,ip INTO usr_id,usr_ip FROM users1 WHERE name=login;
  INSERT into dblogin (mid,act,time) VALUES (usr_id,47,unix_timestamp());

  SELECT NULL,login,'Framed-IP-Address',usr_ip,'=';
  SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','=';
  SELECT NULL,login,'Framed-Protocol','PPP','=';
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radupdate`;
DELIMITER $$ 
CREATE PROCEDURE `radupdate` (IN login VARCHAR(64))
BEGIN
  INSERT into dblogin (mid,act,time) VALUES
    ((SELECT id FROM users1 WHERE name=login LIMIT 1),47,unix_timestamp());
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radstop`;
DELIMITER $$ 
CREATE PROCEDURE `radstop` (IN login VARCHAR(64))
BEGIN
  INSERT into dblogin (mid,act,time) VALUES
    ((SELECT id FROM users1 WHERE name=login LIMIT 1),46,unix_timestamp());
END$$
DELIMITER ;

Что получилось... На каждом насе свой радиус, который обращается к базе к СВОЕЙ процедуре.

что то не то))))зачем радиус должен стоять на сателитах))))
запутал ты меня)))
Записан
Demeo
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 204


Просмотр профиля Email
« Ответ #18 : 19 Января 2013, 16:45:34 »

Цепочку авторизации представь. Идет запрос на рррое сервер, он отфутболивает к радиусу для авторизации. Так вот, если у тебя ОДИН радиус на все насы, то он будет обращаться ТОЛЬКО к общей базе пользователей, поскольку процедура проверки одна. Если у тебя отдельные радиусы для каждого наса, то можно заставить их хавать отдельные базы пользователей. В  sql.conf второго наса я только добавил единичку в названии процедуры (radcheck1). Только протупил с самими процедурами.

Должно быть так
Код:
use bill;

DROP PROCEDURE IF EXISTS `radcheck1`;
DELIMITER $$ 
CREATE PROCEDURE `radcheck1` (IN login VARCHAR(64))
BEGIN
  SELECT id,name,'Password' AS Attribute,AES_DECRYPT(passwd,'hardpass3') AS Value,'=='
    FROM users1 WHERE name=login;
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radreply1`;
DELIMITER $$ 
CREATE PROCEDURE `radreply1` (IN login VARCHAR(64))
BEGIN
  DECLARE usr_id INT; 
  DECLARE usr_ip VARCHAR(15);

  SELECT id,ip INTO usr_id,usr_ip FROM users1 WHERE name=login;
  INSERT into dblogin (mid,act,time) VALUES (usr_id,47,unix_timestamp());

  SELECT NULL,login,'Framed-IP-Address',usr_ip,'=';
  SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','=';
  SELECT NULL,login,'Framed-Protocol','PPP','=';
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radupdate1`;
DELIMITER $$ 
CREATE PROCEDURE `radupdate1` (IN login VARCHAR(64))
BEGIN
  INSERT into dblogin (mid,act,time) VALUES
    ((SELECT id FROM users1 WHERE name=login LIMIT 1),47,unix_timestamp());
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radstop1`;
DELIMITER $$ 
CREATE PROCEDURE `radstop1` (IN login VARCHAR(64))
BEGIN
  INSERT into dblogin (mid,act,time) VALUES
    ((SELECT id FROM users1 WHERE name=login LIMIT 1),46,unix_timestamp());
END$$
DELIMITER ;
Записан
boomer666
NoDeny
Постоялец
*

Карма: 1
Offline Offline

Сообщений: 194



Просмотр профиля Email
« Ответ #19 : 19 Января 2013, 18:03:38 »

Цепочку авторизации представь. Идет запрос на рррое сервер, он отфутболивает к радиусу для авторизации. Так вот, если у тебя ОДИН радиус на все насы, то он будет обращаться ТОЛЬКО к общей базе пользователей, поскольку процедура проверки одна. Если у тебя отдельные радиусы для каждого наса, то можно заставить их хавать отдельные базы пользователей. В  sql.conf второго наса я только добавил единичку в названии процедуры (radcheck1). Только протупил с самими процедурами.

Должно быть так
Код:
use bill;

DROP PROCEDURE IF EXISTS `radcheck1`;
DELIMITER $$ 
CREATE PROCEDURE `radcheck1` (IN login VARCHAR(64))
BEGIN
  SELECT id,name,'Password' AS Attribute,AES_DECRYPT(passwd,'hardpass3') AS Value,'=='
    FROM users1 WHERE name=login;
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radreply1`;
DELIMITER $$ 
CREATE PROCEDURE `radreply1` (IN login VARCHAR(64))
BEGIN
  DECLARE usr_id INT; 
  DECLARE usr_ip VARCHAR(15);

  SELECT id,ip INTO usr_id,usr_ip FROM users1 WHERE name=login;
  INSERT into dblogin (mid,act,time) VALUES (usr_id,47,unix_timestamp());

  SELECT NULL,login,'Framed-IP-Address',usr_ip,'=';
  SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','=';
  SELECT NULL,login,'Framed-Protocol','PPP','=';
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radupdate1`;
DELIMITER $$ 
CREATE PROCEDURE `radupdate1` (IN login VARCHAR(64))
BEGIN
  INSERT into dblogin (mid,act,time) VALUES
    ((SELECT id FROM users1 WHERE name=login LIMIT 1),47,unix_timestamp());
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radstop1`;
DELIMITER $$ 
CREATE PROCEDURE `radstop1` (IN login VARCHAR(64))
BEGIN
  INSERT into dblogin (mid,act,time) VALUES
    ((SELECT id FROM users1 WHERE name=login LIMIT 1),46,unix_timestamp());
END$$
DELIMITER ;


до что гемора много...а нельзя в mpd настроить как на микротиках
пример: на 2 микротика  создаешь 2 pppoe сервера в одну сеть если у абонента не прописано имя службы то ломятся кто куда попал) а если имя службы прописать определеного pppoe сервера то он будет ломится там где есть это имя службы)

?
Записан
Demeo
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 204


Просмотр профиля Email
« Ответ #20 : 20 Января 2013, 02:40:54 »

Это гемор?Непонимающий Чувак, тогда тебе тут делать нефик-то. Ищи админа. Этот гемор у меня занял минут 10 (с постановкой, осмыслением и разметкой задачи).

Имя службы это типа Service-Name? Винда не хавает, т.е. люди не прописавшие сервис-нейм не смогут подключиться к этому насу. Можно юзать AC-name, но опять жеж - винда не хавает.

А по сути вопроса... Ты сам определись тебе или бесплатно, или ехать. Тут вам не винда, и кнопки "сделать офигенно" нету. А если не хочешь работать - то тебе в банк или в депутаты
Записан
boomer666
NoDeny
Постоялец
*

Карма: 1
Offline Offline

Сообщений: 194



Просмотр профиля Email
« Ответ #21 : 20 Января 2013, 08:13:47 »

Имя службы это типа Service-Name? Винда не хавает, т.е. люди не прописавшие сервис-нейм не смогут подключиться к этому насу. Можно юзать AC-name, но опять жеж - винда не хавает.
наконецто я услышал ответ норм)...

Код:
ee /usr/local/etc/raddb/sql.conf

authorize_check_query = "call radcheck1('%{SQL-User-Name}')"
authorize_reply_query = "call radreply1('%{SQL-User-Name}')"
accounting_update_query = "call radupdate1('%{SQL-User-Name}')"
accounting_stop_query = "call radstop1('%{SQL-User-Name}')"

В mysql:
Код:
use bill;

DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$ 
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
  SELECT id,name,'Password' AS Attribute,AES_DECRYPT(passwd,'hardpass3') AS Value,'=='
    FROM users1 WHERE name=login;
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radreply`;
DELIMITER $$ 
CREATE PROCEDURE `radreply` (IN login VARCHAR(64))
BEGIN
  DECLARE usr_id INT; 
  DECLARE usr_ip VARCHAR(15);

  SELECT id,ip INTO usr_id,usr_ip FROM users1 WHERE name=login;
  INSERT into dblogin (mid,act,time) VALUES (usr_id,47,unix_timestamp());

  SELECT NULL,login,'Framed-IP-Address',usr_ip,'=';
  SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','=';
  SELECT NULL,login,'Framed-Protocol','PPP','=';
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radupdate`;
DELIMITER $$ 
CREATE PROCEDURE `radupdate` (IN login VARCHAR(64))
BEGIN
  INSERT into dblogin (mid,act,time) VALUES
    ((SELECT id FROM users1 WHERE name=login LIMIT 1),47,unix_timestamp());
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radstop`;
DELIMITER $$ 
CREATE PROCEDURE `radstop` (IN login VARCHAR(64))
BEGIN
  INSERT into dblogin (mid,act,time) VALUES
    ((SELECT id FROM users1 WHERE name=login LIMIT 1),46,unix_timestamp());
END$$
DELIMITER ;



а если так то получается при подключение абонентов(которые должны быть на nas1) к nas2 у них выбет ошибку 651,678 т.д и повторный звонок? а со второй попытки нажмут повторный звонок может попадут на nas1?
или они сразу попадут куда им надо?
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #22 : 20 Января 2013, 11:37:15 »

Элемент рандома.
Не изучал по какому алгоритму выбирается PPPoE концентратор, но скорее всего тот что раньше ответит.
Т.е. в принципе с n'ой попытки он попадет на nas1.
Записан
boomer666
NoDeny
Постоялец
*

Карма: 1
Offline Offline

Сообщений: 194



Просмотр профиля Email
« Ответ #23 : 20 Января 2013, 11:41:31 »

Элемент рандома.
Не изучал по какому алгоритму выбирается PPPoE концентратор, но скорее всего тот что раньше ответит.
Т.е. в принципе с n'ой попытки он попадет на nas1.

есть шанс что  абонент даже не заметит что его не принял nas2
Записан
Demeo
NoDeny
Постоялец
*

Карма: 6
Offline Offline

Сообщений: 204


Просмотр профиля Email
« Ответ #24 : 20 Января 2013, 12:08:14 »

Ответят все. А подключение установится с тем, который раньше подтвердит авторизацию. Не проверял, но по идее повторного звонка не потребуется

И проверь правильность вводимых процедур. Последние от меня вроде норм.
Записан
boomer666
NoDeny
Постоялец
*

Карма: 1
Offline Offline

Сообщений: 194



Просмотр профиля Email
« Ответ #25 : 20 Января 2013, 12:10:09 »

Demeo спс)завтра на работе попробую) + карме
Записан
boomer666
NoDeny
Постоялец
*

Карма: 1
Offline Offline

Сообщений: 194



Просмотр профиля Email
« Ответ #26 : 21 Января 2013, 14:35:26 »

Я понял...

Тебе надо поднять радиус на каждом насе. Сначала выносишь людей, которые должны висеть на определенном насе в отдельную группу. Первый нас, который обслуживает ВСЕХ настраивается по умолчанию (как в доке). Второй нас, который облуживает НЕ ВСЕХ, настраивается как сателлит. В доке написано как сделать вьюху для определенных групп (т.е. надо сделать вьюху из всех групп, но исключив номер нужной группы). Допустим вьюха будет иметь имя users1. Далее финты ушами. Первый нас не трогаешь вообще.

На втором шлюзе:
Код:
ee /usr/local/etc/raddb/sql.conf

authorize_check_query = "call radcheck1('%{SQL-User-Name}')"
authorize_reply_query = "call radreply1('%{SQL-User-Name}')"
accounting_update_query = "call radupdate1('%{SQL-User-Name}')"
accounting_stop_query = "call radstop1('%{SQL-User-Name}')"

В mysql:
Код:
use bill;

DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$  
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
  SELECT id,name,'Password' AS Attribute,AES_DECRYPT(passwd,'hardpass3') AS Value,'=='
    FROM users1 WHERE name=login;
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radreply`;
DELIMITER $$  
CREATE PROCEDURE `radreply` (IN login VARCHAR(64))
BEGIN
  DECLARE usr_id INT;  
  DECLARE usr_ip VARCHAR(15);

  SELECT id,ip INTO usr_id,usr_ip FROM users1 WHERE name=login;
  INSERT into dblogin (mid,act,time) VALUES (usr_id,47,unix_timestamp());

  SELECT NULL,login,'Framed-IP-Address',usr_ip,'=';
  SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','=';
  SELECT NULL,login,'Framed-Protocol','PPP','=';
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radupdate`;
DELIMITER $$  
CREATE PROCEDURE `radupdate` (IN login VARCHAR(64))
BEGIN
  INSERT into dblogin (mid,act,time) VALUES
    ((SELECT id FROM users1 WHERE name=login LIMIT 1),47,unix_timestamp());
END$$
DELIMITER ;

DROP PROCEDURE IF EXISTS `radstop`;
DELIMITER $$  
CREATE PROCEDURE `radstop` (IN login VARCHAR(64))
BEGIN
  INSERT into dblogin (mid,act,time) VALUES
    ((SELECT id FROM users1 WHERE name=login LIMIT 1),46,unix_timestamp());
END$$
DELIMITER ;

Что получилось... На каждом насе свой радиус, который обращается к базе к СВОЕЙ процедуре.
хороший вариант)))
но не подходит ошибка 691 и повторный звонок раз с 5-го срабатывает((((
есть еще варианты?
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #27 : 21 Января 2013, 15:00:50 »

хороший вариант)))
но не подходит ошибка 691 и повторный звонок раз с 5-го срабатывает((((
есть еще варианты?
Прокидываете vlan до вип абонентов и заводите его только на 1 сервер.
Записан
boomer666
NoDeny
Постоялец
*

Карма: 1
Offline Offline

Сообщений: 194



Просмотр профиля Email
« Ответ #28 : 21 Января 2013, 15:07:53 »

ча
хороший вариант)))
но не подходит ошибка 691 и повторный звонок раз с 5-го срабатывает((((
есть еще варианты?
Прокидываете vlan до вип абонентов и заводите его только на 1 сервер.

я об этом уже думал)
но нет
частный сектор мыльницы кругом)))

а если не мучатся дропать маки с со второго nas2?
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #29 : 21 Января 2013, 15:09:44 »

я об этом уже думал)
но нет
частный сектор мыльницы кругом)))
Теоретически на ближайшей умной железке сделать mac based vlan если она умеет но ни разу не проверял.
PS: Для каких целей именно на nas1 надо? Внешки?
Записан
Страниц: 1 [2] 3 4
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!