NewUse Posted August 23, 2011 Posted August 23, 2011 Собственно сабж: Как работает DHCP сервер с FreeRadius? можно ли его связать с SQL? Вернее задача стоит так: есть фрирадиус с 802.1х и привязкой к MySQL в той же mysql хранится инфа о ип-ах, которые пользователи должны получать после авторизации, есть возможность выводить в Access-Accept атриутах параметр Framed-IP-Address, содержащий нужный ip и Calling-Station-ID, содержащий mac, как настроить dhcp модуль, чтоб он передавал соотв. ип пользователю, с идентификатором, соответствующему mac? Кто что пробовал, подскажите, плз! Вставить ник Quote
Wingman Posted August 23, 2011 Posted August 23, 2011 Как настроите, так и будет работать. Радиус принимает запрос и отдаёт ответ, а всю логику между этими двумя фазами пишете вы сами. Хоть на родном unlang, хоть модули подцепляйте. У нас уже год в продакшне с mod_perl - полёт отличный Вставить ник Quote
Ivan_83 Posted August 29, 2011 Posted August 29, 2011 Кроме фри радиуса на этом форуме ещё два решения есть чтобы IP в дхцп из базы брать. Вставить ник Quote
NewUse Posted August 29, 2011 Author Posted August 29, 2011 Да, спасибо, видел, в принципе "статический" динамический ip пока не критичен, просто FreeRADIUS2 c MySQL уже стоят, вот и думал побаловатья :) Но через perl-овский модуль, нет, это не кошерно, пусть уж пока продолжает вертеться ICS-овец, он поменьше perl-а будет... Вставить ник Quote
NiTr0 Posted August 29, 2011 Posted August 29, 2011 Да ну? У меня аккаунтингом/аутентификацией перловые модули ведают, и ничего, а у вас от дхцп запросов радиус попучит? Вставить ник Quote
DemonS Posted September 3, 2011 Posted September 3, 2011 У нас уже год в продакшне с mod_perl - полёт отличный М... А Вы не будете настолько любезны, чтоб поделиться модулем? Вставить ник Quote
qwop Posted September 6, 2011 Posted September 6, 2011 (edited) Не могу понять в чем дело: dhcp-модуль фрирадиуса не отправляет клиенту DHCP-Your-IP-Address. Выглядит в логах это так: Received DHCP-Discover of id 0ef01bfc from 0.0.0.0:68 to 0.0.0.0:67 DHCP-Opcode = Client-Message DHCP-Hardware-Type = Ethernet DHCP-Hardware-Address-Length = 6 DHCP-Hop-Count = 0 DHCP-Transaction-Id = 250616828 DHCP-Number-of-Seconds = 7168 DHCP-Flags = 0 DHCP-Client-IP-Address = 0.0.0.0 DHCP-Your-IP-Address = 0.0.0.0 DHCP-Server-IP-Address = 0.0.0.0 DHCP-Gateway-IP-Address = 0.0.0.0 DHCP-Client-Hardware-Address = 00:11:22:33:44:55 DHCP-Message-Type = DHCP-Discover DHCP-Client-Identifier = 00:11:22:33:44:55 DHCP-Hostname = "dummy" DHCP-Vendor-Class-Identifier = "MSFT 5.0" DHCP-Parameter-Request-List = DHCP-Subnet-Mask DHCP-Parameter-Request-List = DHCP-Domain-Name DHCP-Parameter-Request-List = DHCP-Router-Address DHCP-Parameter-Request-List = DHCP-Domain-Name-Server DHCP-Parameter-Request-List = DHCP-NETBIOS-Name-Servers DHCP-Parameter-Request-List = DHCP-NETBIOS-Node-Type DHCP-Parameter-Request-List = DHCP-NETBIOS DHCP-Parameter-Request-List = DHCP-Perform-Router-Discovery DHCP-Parameter-Request-List = DHCP-Static-Routes DHCP-Parameter-Request-List = DHCP-Classless-Static-Route DHCP-Parameter-Request-List = 249 DHCP-Parameter-Request-List = DHCP-Vendor server dhcp { Trying sub-section dhcp DHCP-Discover {...} +- entering group DHCP-Discover {...} ++[reply] returns noop ++[reply] returns noop [mac2ip] Added DHCP-Your-IP-Address: '10.10.0.245' to reply_items ++[mac2ip] returns ok ++[ok] returns ok } # server dhcp Sending DHCP-Offer of id 0ef01bfc from 0.0.0.0:67 to 255.255.255.255:68 DHCP-Subnet-Mask = 255.255.255.0 DHCP-Router-Address = 10.10.0.1 DHCP-Domain-Name-Server = 10.10.0.5 DHCP-IP-Address-Lease-Time = 86400 DHCP-DHCP-Server-Identifier = 10.10.0.49 Finished request 4. То есть mac2ip успешно определяет ip, но в предложении dhcp он клиенту не отправляется. Тестовая система: FreeBSD 8.2-RELEASE, ipfw отключен, freeradius-2.1.11_2. Конфиг dhcp-части freeradius взят из примера (изменены только адреса dns, шлюза и т.д.): http://pastebin.com/Xi3hmXtc P.S.: прописывание DHCP-Your-IP-Address непосредственно в reply части конфига (без всяких mac2ip) так же ничего не дает. Edited September 6, 2011 by qwop Вставить ник Quote
terrible Posted September 6, 2011 Posted September 6, 2011 http://stas-v.livejournal.com/8636.html А вот так случаем не пробовали? Вставить ник Quote
Ivan_83 Posted September 6, 2011 Posted September 6, 2011 Здался вам этот дхцп от фрирадиуса, тем более на фряхе. Вот что у меня работало (чисто на анленге) перед тем как я это забросил и написал чисто на перле. dhcp.txt Вставить ник Quote
qwop Posted September 6, 2011 Posted September 6, 2011 http://stas-v.livejo...l.com/8636.html А вот так случаем не пробовали? Изначально так и пробовали. Скатились к примитивному конфигу ради дебага. Ivan_83, с вашим конфигом тоже айпишник не дает. Видимо, баг радиуса. Вставить ник Quote
terrible Posted September 6, 2011 Posted September 6, 2011 дебажить можно и в перле, добавляя в нужные места оператор print Вставить ник Quote
qwop Posted September 6, 2011 Posted September 6, 2011 Было бы что дебажить. Все параметры freeradius получает нормально, просто почему-то не отправляет Your-IP-Address. Вставить ник Quote
Ivan_83 Posted September 7, 2011 Posted September 7, 2011 dhcpdump в помощь, то что на экране в выводе нет не значит что параметра нет в пакете. Вставить ник Quote
tux-tm Posted September 25, 2011 Posted September 25, 2011 У меня вся логика реализована в rlm_perl, связь с БД оттуда же. собственно вся обработка запросов там и происходит, дебаг оттуда специальной функцией в логи FreeRADIUS идёт. Очень замечательно с перлом работает, тредами. Правда скрипт заточен под наш билинг, писал всё сам. Логи фрирадиуса, пример Fri Sep 9 18:17:08 2011 : Info: rlm_perl: [00:24:81:81:5f:88] [DHCP-Discover] ------------------------------ DHCP-Discover ------------------------------ Fri Sep 9 18:17:08 2011 : Info: rlm_perl: [00:24:81:81:5f:88] [DHCP-Discover] Prepare SELECT * FROM dhcp_func(parms); Fri Sep 9 18:17:08 2011 : Info: rlm_perl: [00:24:81:81:5f:88] [DHCP-Discover] PgSQL execute SELECT * FROM dhcp_func(parms); Fri Sep 9 18:17:08 2011 : Info: rlm_perl: [00:24:81:81:5f:88] [DHCP-Discover] PgSQL dhcp_funct OK Fri Sep 9 18:17:08 2011 : Info: rlm_perl: [00:24:81:81:5f:88] [DHCP-Discover] _user_ip = xxx.xxx.xxy.25 Fri Sep 9 18:17:08 2011 : Info: rlm_perl: [00:24:81:81:5f:88] [DHCP-Discover] SEND OFFER to xxx.xxx.xxy.25 Вставить ник Quote
tux-tm Posted September 26, 2011 Posted September 26, 2011 просто почему-то не отправляет Your-IP-Address. Дык по стандарту такого поля и нету в DHCP ответах Сервер отправляет ответ на MAC, с которого пришёл запрос, а DST_IP в пакете выставляется как Your-IP-Address Вроде как то так, если не ошибаюсь Вставить ник Quote
Mechanic Posted October 2, 2011 Posted October 2, 2011 подскажите: опция82 не передает данные в нормальном виде 187446 DISCOVER: [00:30:71:71:cd:00] via (x.x.202.1) switch='0x0006001c57a6b400' and port='0x0004012e0118' and relay='' 187446 DHCP-Discover DROPPED: ... 187447 DISCOVER: [00:30:71:71:cd:00] via (x.x.202.1) switch='0x0006001c57a6b400' and port='0x0004012e0118' and relay='' 187447 DHCP-Discover DROPPED: ... 563572345 DISCOVER: [00:0c:42:a0:cc:ee] via (x.x.200.1) MikroTik switch='0x0006001cf63fc180' and port='0x000400aa0130' and relay='' 563572345 DHCP-Discover DROPPED: ... 187448 DISCOVER: [00:30:71:71:cd:00] via (x.x.202.1) switch='0x0006001c57a6b400' and port='0x0004012e0118' and relay='' 187448 DHCP-Discover DROPPED: ... здесь http://lists.freeradius.org/mailman/htdig/freeradius-users/2010-July/msg00368.html написано, что несоответствие словарей все перепроверил радиус версии 2.1.10 ,в словаре все прописано Что может еще быть ? Вставить ник Quote
Ivan_83 Posted October 3, 2011 Posted October 3, 2011 Вам не надоело? :) дхцп дамп используйте или моя виндовая софтина, фактически аналог, умеет разбирать опцию82 - смотрите что реально прилетает и разбирайтесь. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.