Jovani
NoDeny
Постоялец
Карма: -9
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
Сообщений: 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
|
|
« Ответ #212 : 23 Января 2021, 15:37:15 » |
|
Перезагружаю сервер с Н+, в это время во всех микротиках удаляются записи из Address Lists, а в Log пишет "address list entry removed by admin", что приводит к отключению интернета у всех клиентов на 2 минуты, пока сервер не включится и не зальет данные в Address Lists. Как отключить этот баг?
|
|
|
Записан
|
|
|
|
Cell
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1407
|
|
« Ответ #213 : 23 Января 2021, 16:35:40 » |
|
Первый раз про такое слышу, если честно. Ну как вариант - api у микротика дизейбл на время ребута, не каждый же день ребутаешь? А вообще дичь конечно
|
|
|
Записан
|
|
|
|
SlavikUA
Пользователь
Карма: 0
Offline
Сообщений: 21
|
|
« Ответ #214 : 14 Марта 2021, 20:49:30 » |
|
Народ привіт. У когось є проблеми з авторизацією по АПІ з мікротіком чи тільки у мене (Нодені плюс), просто обновив мікротік до версії 6.48.1
|
|
|
Записан
|
|
|
|
SlavikUA
Пользователь
Карма: 0
Offline
Сообщений: 21
|
|
« Ответ #215 : 14 Марта 2021, 21:22:10 » |
|
Сорі. Розібрався (сам дурак) все працює.
|
|
|
Записан
|
|
|
|
SlavikUA
Пользователь
Карма: 0
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
Сообщений: 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
Сообщений: 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
Сообщений: 1407
|
|
« Ответ #219 : 25 Июня 2021, 21:24:32 » |
|
Да ответ прост. Не надо путать мягкое с теплым. Ошибки возникают от неправильного логина-пароля и сессия сбрасывается и идет запись в лог. Это никак не связано с нормальными подключениями ) Если речь идет о микротике как о брасе - так зайди в лог микротика и посмотри сколько там ебанатов ломятся и откидывается.
|
|
|
Записан
|
|
|
|
Stronglan
|
|
« Ответ #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
Сообщений: 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
Сообщений: 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
Сообщений: 21
|
|
« Ответ #223 : 26 Июня 2021, 20:18:57 » |
|
Да ответ прост. Не надо путать мягкое с теплым. Ошибки возникают от неправильного логина-пароля и сессия сбрасывается и идет запись в лог. Это никак не связано с нормальными подключениями ) Если речь идет о микротике как о брасе - так зайди в лог микротика и посмотри сколько там ебанатов ломятся и откидывается.
Cell я зібрав локальний стенд, сервер прямо підключений до мікротіка до мікротіка підключив бук, логінюся під ПППОЕ і вуаля в лог файл помилка. Поідеї туди ніхто не мав би ломитися лишній їх там небагато за одне пієднання шук 3 замітив підряд, може мікротік не встигає відповісти чи що. Чи може взагалі заби на цю помилку адже маки пишуться в базу добре а лог час відчасу стирати.
|
|
|
Записан
|
|
|
|
Cell
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1407
|
|
« Ответ #224 : 26 Июня 2021, 21:39:48 » |
|
Cell я зібрав локальний стенд, сервер прямо підключений до мікротіка до мікротіка підключив бук, логінюся під ПППОЕ і вуаля в лог файл помилка. Поідеї туди ніхто не мав би ломитися лишній їх там небагато за одне пієднання шук 3 замітив підряд, може мікротік не встигає відповісти чи що. Чи може взагалі заби на цю помилку адже маки пишуться в базу добре а лог час відчасу стирати.
Может проблема не в этой процедуре а в radupdate? Тем более если ошибок больше одной на одно соединение. да выяснить все просто, нужно запустить радиус в режиме дебага и выловить где именно ошибка. В дебаг радиус на фре запускается командой radiusd -X
|
|
|
Записан
|
|
|
|
|