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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 ... 13 14 [15] 16
  Печать  
Автор Тема: Микротик  (Прочитано 100159 раз)
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #210 : 23 Октября 2020, 09:09:38 »

У меня тоже самое.

loading /usr/local/nodeny/sat.cfg

MODULE                   AUTORUN?
auth                       YES
authserver                  -
authtraf                    -
balance                    YES
cap                        YES
capremind                   -
collectors                  -
dhcp                        -
make_config                 -
mmm                        YES
notifications               -
pingserver                  -
ponmon                      -
remindsms                  YES
services                   YES
ses_traf                    -
stop_service               YES
system_check               YES
system_clean               YES
tmppays                    YES
websession                 YES


Авторизация PPPOE
Записан
SlavikUA
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 21


Просмотр профиля
« Ответ #211 : 22 Ноября 2020, 15:21:40 »

Народ всім привіт. Хто може допомогти в іформації по наступному:
server (nodeny+ radius) по локалці - nas mikrotik все працює
Хочу:
server (nodene+ radius) по локалці - nas mikrotik + nas 2 mikritik (інший провайдер)
добавляю в радіус ще одного клієнта
запускаю noserver.pl з новим конфігом 2 мікротіка
Результат:
модуль мікротіка не логіниться на 2 мікротіку запроси до радіуса не йдуть від 2 мікротіка
в першому мікротіку dst-nat udp + порти 8728,8729 + маскародінг IP сервера
Що я ще упустив чи взагалі неправильно зробив.
Можливо треба прописати статичні роути для 2 мікротіка і сервера? Пробував але не впевнений що правильноб конкретної інфи по статичним роутам не знайшо і не повністю розібрався. Будьласка ткніть носом.
Записан
k291
Старожил
****

Карма: -10
Offline Offline

Сообщений: 455


Просмотр профиля
« Ответ #212 : 23 Января 2021, 15:37:15 »

Перезагружаю сервер с Н+, в это время во всех микротиках удаляются записи из  Address Lists, а в Log пишет "address list entry removed by admin", что приводит к отключению интернета у всех клиентов на 2 минуты, пока сервер не включится и не зальет данные в Address Lists.
Как отключить этот баг?
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #213 : 23 Января 2021, 16:35:40 »

Первый раз про такое слышу, если честно.
Ну как вариант - api у микротика дизейбл на время ребута, не каждый же день ребутаешь?
А вообще дичь конечно
Записан
SlavikUA
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 21


Просмотр профиля
« Ответ #214 : 14 Марта 2021, 20:49:30 »

Народ привіт. У когось є проблеми з авторизацією по АПІ з мікротіком чи тільки у мене (Нодені плюс), просто обновив мікротік до версії 6.48.1
Записан
SlavikUA
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 21


Просмотр профиля
« Ответ #215 : 14 Марта 2021, 21:22:10 »

Сорі. Розібрався (сам дурак) все працює.
Записан
SlavikUA
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 21


Просмотр профиля
« Ответ #216 : 24 Июня 2021, 20:59:39 »

Всім Привіт. Не можу розібрати з процедурою Мускула, вроді все добре навіть працює але просто засерає лог радіуса помилками? І так:
radius.log
...sql.... Error 1048 (Column 'uid' cannot be null):23000
Їх там тьма.
Сама процедура
DROP PROCEDURE IF EXISTS `radreply`;
DELIMITER $$
CREATE PROCEDURE `radreply`(IN login VARCHAR(64), IN usr_mac VARCHAR(64))
BEGIN
  DECLARE usr_id INT;
  DECLARE usr_ip VARCHAR(15) DEFAULT NULL;
 
  SELECT id INTO usr_id FROM users WHERE name=login LIMIT 1;
  SELECT get_ip(usr_id) INTO usr_ip;
 
  SELECT NULL,login,'Framed-IP-Address',usr_ip,'=';
  SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','=';
  SELECT NULL,login,'Framed-Protocol','PPP','=';

  INSERT INTO mac_uid SET mac= REPLACE(usr_mac, ':',''),
                            uid=usr_id, device_mac='', device_port='0', ip=INET_ATON(usr_ip), time=UNIX_TIMESTAMP()
                ON DUPLICATE KEY UPDATE
                            uid=usr_id, device_mac='', device_port='0', ip=INET_ATON(usr_ip), time=UNIX_TIMESTAMP();
END$$
DELIMITER ;

Вона записує в базу маки абонентів, але чому помилка не можу зрозуміти і ще одне замітив, що ІП має дивний формат в базі 3232236847
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #217 : 24 Июня 2021, 22:29:58 »

Ну давай разбираться....

...sql.... Error 1048 (Column 'uid' cannot be null):23000

Пишет что поле uid не может быть пустым.
смотрим где у нас это происходит:

INSERT INTO mac_uid SET mac= REPLACE(usr_mac, ':',''),
                            uid=usr_id, device_mac='', device_port='0', ip=INET_ATON(usr_ip), time=UNIX_TIMESTAMP()
                ON DUPLICATE KEY UPDATE
                            uid=usr_id, device_mac='', device_port='0', ip=INET_ATON(usr_ip), time=UNIX_TIMESTAMP();

видим что uid = usr_id
откуда же берется этот проклятый usr_id который, судя по всему равен пустому значению. Смотрим, смотрим, смотрим... ах вот он, сука такая:

SELECT id INTO usr_id FROM users WHERE name=login LIMIT 1;

Это id  из таблицы users оказывается. И в каком это случае этот айди будет никакой? Правильно, когда данный запрос вернет пустой ответ, т.е. не найдет никого с name=login
Вот в этот момент и возникает ошибка.
Вопросы есть?

і ще одне замітив, що ІП має дивний формат в базі 3232236847

Занимаясь сетями, тебе предстоит познать еще много-много удивительных вещей ))))
Записан
SlavikUA
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 21


Просмотр профиля
« Ответ #218 : 25 Июня 2021, 18:40:49 »

Это id  из таблицы users оказывается. И в каком это случае этот айди будет никакой? Правильно, когда данный запрос вернет пустой ответ, т.е. не найдет никого с name=login
Вот в этот момент и возникает ошибка.
Вопросы есть?

Це я зрозумів але наскільки я розумію коли абон отримав PPPOE сесію то для нього існує пара name=login а id є ключем і не може бути нуль. Тому цей запрос повинен завжди давати правильну відповідь чи в чомусь знову помиляюсь?

Першим відправляється radcheck, якщо абонент існує тоді дається добро на відкриття сесії, потім  radreply для перевірки чи абонент ще активний, radupdate відправляється кожні 50 сек.
« Последнее редактирование: 25 Июня 2021, 19:05:30 от SlavikUA » Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #219 : 25 Июня 2021, 21:24:32 »

Да ответ прост. Не надо путать мягкое с теплым.
Ошибки возникают от неправильного логина-пароля и сессия сбрасывается и идет запись в лог. Это никак не связано с нормальными подключениями )
Если речь идет о микротике как о брасе - так зайди в лог микротика и посмотри сколько там ебанатов ломятся и откидывается.
Записан
Stronglan
Постоялец
***

Карма: -3
Offline Offline

Сообщений: 184


Просмотр профиля Email
« Ответ #220 : 26 Июня 2021, 10:42:48 »

Прошу помощи в настройке связки freeradius3 + микротик. Проблема в том что клиент не получает айпи из динамического пула. Если изменить один айпи из этого пула на статический, клиент получает, интернет работает все ок.

radiusd -X отображает

Код:
Ready to process requests
(7) Received Access-Request Id 43 from 10.55.97.2:45083 to 10.55.97.1:1812 length 113
(7)   User-Name = "3C:97:0E:AD:F2:5C"
(7)   NAS-Port-Type = Ethernet
(7)   NAS-Port = 2209350395
(7)   Service-Type = Framed-User
(7)   Calling-Station-Id = "1:3c:97:e:ad:f2:5c"
(7)   Called-Station-Id = "v109"
(7)   User-Password = ""
(7)   NAS-Identifier = "SAT1"
(7)   NAS-IP-Address = 10.55.97.2
(7) # Executing section authorize from file /usr/local/etc/raddb/sites-enabled/nodeny
(7)   authorize {
rlm_sql (sql): Reserved connection (5)
(7) sql: EXPAND call radcheck('%{User-Name}')
(7) sql:    --> call radcheck('3C:97:0E:AD:F2:5C')
(7) sql: Executing select query: call radcheck('3C:97:0E:AD:F2:5C')
(7) sql: User found in radcheck table
(7) sql: Conditional check items matched, merging assignment check items
(7) sql:   Cleartext-Password := ""
(7) sql: EXPAND call radreply('%{User-Name}','%{Calling-Station-Id}')
(7) sql:    --> call radreply('3C:97:0E:AD:F2:5C','1:3c:97:e:ad:f2:5c')
(7) sql: Executing select query: call radreply('3C:97:0E:AD:F2:5C','1:3c:97:e:ad:f2:5c')
[b](7) sql: ERROR: rlm_sql_mysql: ERROR 1321 (FUNCTION get_ip_by_tag ended without RETURN): 2F005
(7) sql: ERROR: SQL query error getting reply attributes[/b]
rlm_sql (sql): Released connection (5)
(7)     [sql] = fail
(7)   } # authorize = fail
(7) Invalid user (sql: rlm_sql_mysql: ERROR 1321 (FUNCTION get_ip_by_tag ended without RETURN): 2F005): [3C:97:0E:AD:F2:5C] (from client sat1 port 2209350395 cli 1:3c:97:e:ad:f2:5c)
(7) Using Post-Auth-Type Reject
(7) Post-Auth-Type sub-section not found.  Ignoring.
(7) # Executing group from file /usr/local/etc/raddb/sites-enabled/nodeny
(7) Delaying response for 1.000000 seconds
Waking up in 0.3 seconds.
Waking up in 0.6 seconds.
(7) Sending delayed response
(7) Sent Access-Reject Id 43 from 10.55.97.1:1812 to 10.55.97.2:45083 length 20
Waking up in 3.9 seconds.

Код функции get_ip_by_tag

Код:
mysql> SHOW CREATE FUNCTION get_ip_by_tag;
+---------------+--------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| Function      | sql_mode                                   | Create Function                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | character_set_client | collation_connection | Database Collation |
+---------------+--------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| get_ip_by_tag | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`localhost` FUNCTION `get_ip_by_tag`( user_id INTEGER UNSIGNED, tag VARCHAR(64) ) RETURNS varchar(15) CHARSET utf8
    NO SQL
BEGIN
    DECLARE user_ip VARCHAR(15);
    DECLARE real_ip VARCHAR(15) DEFAULT 0;
    DECLARE row_cnt INTEGER;
    DECLARE ip_id INTEGER;
    DECLARE tries INTEGER DEFAULT 30;
    DECLARE id_min INTEGER;
    DECLARE id_max INTEGER;

    SELECT INET_NTOA(ip) INTO user_ip FROM ip_pool
        WHERE uid = user_id AND type='static' LIMIT 1;
    IF( user_ip IS NOT NULL ) THEN RETURN user_ip;
END IF;

    SELECT 1 INTO real_ip FROM users_services WHERE uid = user_id AND tags LIKE '%,realip,%';

    SELECT id, INET_NTOA(ip) INTO ip_id, user_ip FROM ip_pool
        WHERE uid = user_id AND type = 'dynamic' AND realip = IF(real_ip>0,1,0)
            AND tags LIKE CONCAT('%,', tag, ',%')
        LIMIT 1;

    IF( ip_id IS NOT NULL) THEN
        UPDATE ip_pool SET `release` = UNIX_TIMESTAMP() + 3600
            WHERE id = ip_id AND uid = user_id;
        SELECT ROW_COUNT() INTO row_cnt;
        IF( row_cnt > 0 ) THEN RETURN user_ip;
END IF;
    END IF;

    SELECT MAX(id), MIN(id) INTO id_max, id_min
        FROM ip_pool
        WHERE type = 'dynamic' AND realip = IF(real_ip>0,1,0)
            AND tags LIKE CONCAT('%,', tag, ',%');

    sel_ip: WHILE tries > 0 DO
        SELECT id, INET_NTOA(ip) INTO ip_id, user_ip
            FROM ip_pool
            WHERE uid = 0
                AND id >= (CEIL(RAND() * (id_max - id_min)) + id_min)
                AND id <= id_max
                LIMIT 1;
        IF( user_ip IS NOT NULL) THEN
            UPDATE ip_pool SET uid = user_id, `release` = UNIX_TIMESTAMP() + 3600
                WHERE id = ip_id AND uid = 0;
            SELECT ROW_COUNT() INTO row_cnt;
            IF( row_cnt > 0 ) THEN RETURN user_ip;
END IF;
            SET tries = tries - 5;
        END IF;
        SET tries = tries - 1;
    END WHILE;

END | latin1               | latin1_swedish_ci    | utf8_general_ci    |
+---------------+--------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec)

Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #221 : 26 Июня 2021, 12:54:33 »

Код:
call radreply('3C:97:0E:AD:F2:5C','1:3c:97:e:ad:f2:5c')
Микротик передает не название дхцп сервера а хз что. Видимо другой атрибут нужно использовать какой-то. Тега нет ((((
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #222 : 26 Июня 2021, 13:42:09 »

Ну вот она ошибка, я нашел ее
Код:
call radreply('%{User-Name}','%{Calling-Station-Id}')

Здесь '%{Calling-Station-Id}' а чтобы имя дхцп сервера вставило нужно '%{Called-Station-Id}'
выглядит похоже, опечатка-с....
sql.conf исправляйте, заменяйте и наверное будет все хорошо, но это не точно )
Записан
SlavikUA
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 21


Просмотр профиля
« Ответ #223 : 26 Июня 2021, 20:18:57 »

Да ответ прост. Не надо путать мягкое с теплым.
Ошибки возникают от неправильного логина-пароля и сессия сбрасывается и идет запись в лог. Это никак не связано с нормальными подключениями )
Если речь идет о микротике как о брасе - так зайди в лог микротика и посмотри сколько там ебанатов ломятся и откидывается.


Cell я зібрав локальний стенд, сервер прямо підключений до мікротіка до мікротіка підключив бук, логінюся під ПППОЕ і вуаля в лог файл помилка. Поідеї туди ніхто не мав би ломитися лишній їх там небагато за одне пієднання шук 3 замітив підряд, може мікротік не встигає відповісти чи що. Чи може взагалі заби на цю помилку адже маки пишуться в базу добре а лог час відчасу стирати.
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #224 : 26 Июня 2021, 21:39:48 »

Cell я зібрав локальний стенд, сервер прямо підключений до мікротіка до мікротіка підключив бук, логінюся під ПППОЕ і вуаля в лог файл помилка. Поідеї туди ніхто не мав би ломитися лишній їх там небагато за одне пієднання шук 3 замітив підряд, може мікротік не встигає відповісти чи що. Чи може взагалі заби на цю помилку адже маки пишуться в базу добре а лог час відчасу стирати.
Может проблема не в этой процедуре а в radupdate? Тем более если ошибок больше одной на одно соединение.
да выяснить все просто, нужно запустить радиус в режиме дебага и выловить где именно ошибка. В дебаг радиус на фре запускается командой radiusd -X
Записан
Страниц: 1 ... 13 14 [15] 16
  Печать  
 
Перейти в:  

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