Настройка связки FreeRADIUS + DHCP + PostgreSQL

Привестствую дорогие товарищи!
Имеется у меня идея реализации аутентификации на основе протокола 802.1x.
Есть 3 сети, общее количество пользователей ~300. Все пользователи подключены к коммутаторам 2-го уровня с поддержкой протокола 802.1x.
У всех пользователей IP жестко привязан к MAC-у. Так как парк машин довольно большой, то вполне логично использовать DHCP в котором имеются записи IP+MAC, шлюз для конкретной сети и DNS серверы.
В общем, иммется база пользователей, на postgresql, в ней вся информация необходимая для freeradius.
FreeRADIUS настроен и отлично авторизует пользователей по следующим параметрам: Login, password, MAC, NAS-Port.
Осталось только после авторизации отправить настройки клиенту, вот тут-то и незадача, все DHCP сервера которые я смотрел не умеют работать с postgresql, впрочем как и с любой другой СУБД.
Вот тут я прочитал о интересной реализации: http://www.netpatch.ru/dhcp2radius.html.
Но! Как только я дочитал до конца, я понял что это мягко говоря полная чушь! Разработчики все перепутали: логин с МАС-ом, NAS-Port с IP сервером. И это нельзя изменить...
Конечно во freeradius появился свой DHCP, но он, как и заявляют разработчики, очень экспериментален и не расчитан для работы с проводными сетями.
Поэтому у меня такое видение картины: клиент авторизуется и коммутатор открывает ему порт, затем клиент посылает запрос на получение настроек и DHCP работающий на том же сервере ему их выдает.
Но как я писал выше, логичней держать все в базе, что я и делаю, вот только осталось найти этот самый DHCP которй умеет работать с СУБД, хотя бы через ODBC.
Товарищи, подскажите какие-нибудь рабочие варианты, как лучше сделать...

В принципе необязательно

В принципе необязательно искать DHCP, который умеет работать с СУБД. Можно на основе базы данных сгенерить конфиг для dhcpd, например (net-misc/dhcp). Задача довольно несложная: Пишется заголовок конфига, он как правило крайне редко меняется, а далее, надо циклом пройти все записи в базе и сформировать секции 'host' для каждой записи. После закрыть крайнюю скобку.
Типа:

host <содержимое поля 'login'>
{
 hardware ethernet <содержимое поля 'MAC'>;
 fixed-address <содержимое поля 'IP'>;
}

Я понимаю, что решение выходит за рамки "установи - настрой - работай"... Тут надо уметь программировать. Но я думаю, что у каждого линуксоида найдется знакомый программист :) А задача в общем-то простая как сапог.

Когда я писал пост, я как раз

Когда я писал пост, я как раз думал над этим. Простой скрипт, скажем написанный на bash, делает запрос к базе и генерит файлик с привязкой IP-MAC.
Вот только мудрить с конфигом я бы не стал, просто в конец конфига DHCP добавил бы:

include("$FILE_PATH/$file_name")

Но это явный костыль, хотелось бы родного решения, к тому же каждый раз после изменения этого файла, надо будет перезапускать DHCP сервер.

Если ничего не помогает, прочти наконец инструкцию...

Я использую у себя очень

Я использую у себя очень похожую схему. Потому и предложил такой вариант. Никаких проблем с перезагрузкой DHCP. Все отлично работает, и этих перезагрузок пользователь вообще не замечает. Схема проверена более, чем пятью годами непрерывной эксплуатации. У меня в кроне (раз в 5 минут) висит скрипт, что-то типа такого:

if [ -r /var/generated/dhcpd.conf ]; then

mv /var/generated/dhcpd.conf /etc/dhcp/
/etc/init.d/dhcpd restart

fi

Самое главное, сделать проверку при внесении в поле 'login' на предмет отсутствия пробелов, нелатинских символов и пр. У меня были такие грабли - dhcpd не признает пробелы и нелатинские символы, и соответственно, не стартует, если встречает их в конфиге.

Ну с этим у меня уж точно

Ну с этим у меня уж точно проблем не будет, так как все данные храняться в PostgreSQL, логины имеют только цифры и создаются биллингом.

Если ничего не помогает, прочти наконец инструкцию...

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".