Jump to content

Recommended Posts

Posted

Собственно сабж:

Как работает DHCP сервер с FreeRadius?

можно ли его связать с SQL?

 

Вернее задача стоит так:

есть фрирадиус с 802.1х и привязкой к MySQL в той же mysql хранится инфа о ип-ах, которые пользователи должны получать после авторизации,

есть возможность выводить в Access-Accept атриутах параметр Framed-IP-Address, содержащий нужный ip и Calling-Station-ID, содержащий mac,

как настроить dhcp модуль, чтоб он передавал соотв. ип пользователю, с идентификатором, соответствующему mac?

 

Кто что пробовал, подскажите, плз!

Posted

Как настроите, так и будет работать. Радиус принимает запрос и отдаёт ответ, а всю логику между этими двумя фазами пишете вы сами. Хоть на родном unlang, хоть модули подцепляйте.

У нас уже год в продакшне с mod_perl - полёт отличный

Posted

Да, спасибо, видел, в принципе "статический" динамический ip пока не критичен, просто FreeRADIUS2 c MySQL уже стоят, вот и думал побаловатья :)

Но через perl-овский модуль, нет, это не кошерно, пусть уж пока продолжает вертеться ICS-овец, он поменьше perl-а будет...

Posted (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 by qwop
Posted

Здался вам этот дхцп от фрирадиуса, тем более на фряхе.

 

Вот что у меня работало (чисто на анленге) перед тем как я это забросил и написал чисто на перле.

dhcp.txt

  • 3 weeks later...
Posted

У меня вся логика реализована в 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

Posted

просто почему-то не отправляет Your-IP-Address.

Дык по стандарту такого поля и нету в DHCP ответах

Сервер отправляет ответ на MAC, с которого пришёл запрос, а DST_IP в пакете выставляется как Your-IP-Address

Вроде как то так, если не ошибаюсь

Posted

подскажите: опция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 ,в словаре все прописано

 

Что может еще быть ?

Posted

Вам не надоело? :)

 

дхцп дамп используйте или моя виндовая софтина, фактически аналог, умеет разбирать опцию82 - смотрите что реально прилетает и разбирайтесь.

 

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.