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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 ... 19 20 [21] 22 23 ... 26
  Печать  
Автор Тема: DHCP  (Прочитано 139350 раз)
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #300 : 25 Сентября 2018, 23:34:55 »

ну поки проблема одна, в процедурі get_ip_by_tag.  Там шукається ір по usr_id в таблиці ip_pool, і коли перший отримав ір, то наступний хто конектиться - отримує туж ір, і далі вже наслідки зрозумілі )

P.S. Мені статика не обовязкова
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #301 : 26 Сентября 2018, 10:27:48 »

Ну давай сделаем если надо 2 мака на учетку, то будет статика?
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #302 : 26 Сентября 2018, 12:52:25 »

Ну ми ж не можемо обмежувати кількість маків ))) Так, можна й статику. Це потрібно зробити новий пул?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #303 : 26 Сентября 2018, 12:58:12 »

Ну ми ж не можемо обмежувати кількість маків ))) Так, можна й статику. Це потрібно зробити новий пул?
Новый пул "статические" и на учетку любое количество маков. Конечно их придется регать вручную - это минус. Но таких абонов не много по идее.
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #304 : 26 Сентября 2018, 13:28:11 »

Таких абонів трішки є - це студенські гуртожитки. Але введення вручну - то буде норм. А у випадку з веб авторизацією, як відобразиться це на інших мака учотки? Чи буде лише перший перезаписувати?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #305 : 26 Сентября 2018, 15:41:19 »

Кстати, под какую схему мы делаем? dhcp + radius? По этой доке http://nodeny.com.ua/wiki/index.php/Dhcp%2BRadius
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #306 : 26 Сентября 2018, 16:22:29 »

accel+radius. Так, ця дока за основу. авторизація по влану і порту
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #307 : 26 Сентября 2018, 16:28:52 »

http s://pastebin.com/fLjPVkz2 -  radupdate
http s://pastebin.com/L3d4zWXT -  radrepy
Записан
md5
NoDeny
Старожил
*

Карма: 0
Offline Offline

Сообщений: 256

647618
Просмотр профиля
« Ответ #308 : 27 Сентября 2018, 14:57:59 »

Я отвечал tom для варианта с динамическими ip. У тебя ж я так понял конфиг формируется скриптом? я не сильно вчитывался в тред

да формируется скриптом
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #309 : 27 Сентября 2018, 15:27:26 »

Обновил модуль dhcp. В настройках подключений, там, где вручную можно ввести мак-адрес, если у абона в данный момент подключен один или больше статических ip, то можно эти ip привязать к мак-адресу - смотрите прикрепление.

ip записывается в таблицу mac_uid. Напомню, что в этой таблице поле ip нужен для регистрации подключений неизвестных абонов и не играет роли при выдаче ip радиусом. Но я решил в этом же поле хранить и статические ip. При этом важно переделать процедуры mysql чтобы они:
1) не перетирали поле ip, что нужно для динамических ибо они могут плясать по абонам
2) выдавать ip не через get_ip

Вот переделанная процедураиз доки http://nodeny.com.ua/wiki/index.php/Dhcp%2BRadius :

Код:
DROP PROCEDURE IF EXISTS `radreply`;
DELIMITER $$
CREATE PROCEDURE `radreply`(IN login VARCHAR(64))
BEGIN
    DECLARE usr_mac VARCHAR(12);
    DECLARE usr_ip VARCHAR(15);
    DECLARE usr_id INT;
    SELECT REPLACE(login, ':', '') INTO usr_mac;
    SELECT uid INTO usr_id FROM mac_uid WHERE mac=usr_mac;
    IF usr_id IS NOT NULL AND usr_id>0 THEN
        SELECT INET_NTOA(m.ip) INTO usr_ip FROM mac_uid m JOIN ip_pool i ON m.ip=i.ip AND m.uid=i.uid
            WHERE i.type='static' AND m.mac=usr_mac;
        IF usr_ip IS NULL THEN
            SELECT get_ip(usr_id) INTO usr_ip;
            UPDATE mac_uid SET ip=INET_ATON(usr_ip), time=UNIX_TIMESTAMP() WHERE uid=usr_id;
        END IF;
        UPDATE mac_uid SET ip=0 WHERE ip=INET_ATON(usr_ip) AND uid<>usr_id;
    ELSE
        START TRANSACTION;
        SELECT INET_NTOA(ip) INTO usr_ip FROM ip_pool
            WHERE uid=0 AND type='dynamic' AND `release` < UNIX_TIMESTAMP()
            ORDER BY RAND() LIMIT 1 FOR UPDATE;
        INSERT INTO mac_uid VALUES(
            NULL, usr_mac, INET_ATON(usr_ip), 0, UNIX_TIMESTAMP(), 0, 0, 0, '')
        ON DUPLICATE KEY
            UPDATE ip=IF(ip>0,ip,INET_ATON(usr_ip)), time=UNIX_TIMESTAMP();
        COMMIT;
        SELECT INET_NTOA(ip) INTO usr_ip FROM mac_uid WHERE mac=usr_mac;
        UPDATE ip_pool SET `release` = UNIX_TIMESTAMP() + 3600
            WHERE ip = INET_ATON(usr_ip);
    END IF;
    SELECT NULL, login, 'Framed-IP-Address', usr_ip, '=';
    SELECT NULL, login, 'Session-Timeout', '600', '=';
END$$
DELIMITER ;

Был переделан этот фрагмент:

Код:
SELECT INET_NTOA(m.ip) INTO usr_ip FROM mac_uid m JOIN ip_pool i ON m.ip=i.ip AND m.uid=i.uid
            WHERE i.type='static' AND m.mac=usr_mac;
        IF usr_ip IS NULL THEN
            SELECT get_ip(usr_id) INTO usr_ip;
            UPDATE mac_uid SET ip=INET_ATON(usr_ip), time=UNIX_TIMESTAMP() WHERE uid=usr_id;
        END IF;
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #310 : 27 Сентября 2018, 18:07:47 »

Дякую, відпишусь по результату. А як буде відпрацьовуватися веб авторизація невідомого абона. Тобто, якщо абон підключиться і введе логін пароль учотки з більше 1го мака?
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #311 : 27 Сентября 2018, 19:59:15 »

Для аккаунтінга - потрібно аналогічно поправити процедуру radupdate

Наче все працює решта. Тестуємо. Скинь в приват номер карти та сумму. Дякую!
« Последнее редактирование: 27 Сентября 2018, 20:30:15 от tom » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #312 : 28 Сентября 2018, 09:50:08 »

Погоди. Я еще подумаю как сделать чтоб при новом маке выдавался не привязанный статический ip, а динамический. Либо, я думаю, наверное был бы неплохим вариантом привязывать статический. Только нужно где-то галку в настройках предусмотреть чтоб выдавала временно динамический либо на постоянку статический. Вообще, с выдачей статических мы бы хорошо решили все эти проблемы с локами. Динамику оставить только для белых ip
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #313 : 28 Сентября 2018, 18:43:08 »

Мені взагалі подобається ідея відхдоту від статичних ір. Статика тільки на реалках є )
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #314 : 28 Сентября 2018, 20:04:04 »

Щось не працює блокування ір. Модуль СоА.
там нічого не тре підправляти?

Авторизація Radius відпрацьовує, а от СоА - ні.
« Последнее редактирование: 28 Сентября 2018, 20:38:57 от tom » Записан
Страниц: 1 ... 19 20 [21] 22 23 ... 26
  Печать  
 
Перейти в:  

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