dhcp костылинг для utm5

Технические вопросы по UTM 5.0
Аватара пользователя
TiRider
Сообщения: 568
Зарегистрирован: Сб июн 07, 2008 12:43

Сообщение TiRider »

Pulse писал(а):генерить каждые 10 минут конфиг это не комильфо. лучше всего использовать ldap как хранилище(хотя есть варианты и с mysql), а добавлять и удалять связки мак+айпи по событию в аффекторе "Добавление связки IP"/"Удаление связки IP"
Вполне вразумительно. Кому нужно тот реализует :)

Это же мой костыль как начинание. И многим он пригодится думаю.

kirush
Сообщения: 699
Зарегистрирован: Пт фев 04, 2005 13:58

Сообщение kirush »

Подскажите как можно дописать костыль?

Смысл следующий - есть php страница на которой выдергиваются данные о клиенте из БД UTMа, в том числе и MAC адрес, хочу добавить функцию на страничку "Смена мак адреса", дописал...в таблице ip_groups создаем новую запись по аналогии, ставим is_deleted=1 и создаём новую. Но вот мак изменяется ТОЛЬКО если рестартануть ядро.
Как можно выкрутится?
kill -HUP не помогает ;)
Последний раз редактировалось kirush Ср ноя 17, 2010 23:44, всего редактировалось 1 раз.

Arti
Сообщения: 266
Зарегистрирован: Пн окт 01, 2007 02:44

Сообщение Arti »

FreeRadius друг и помощник, оди фиг штатный здесь для мебели.

kirush
Сообщения: 699
Зарегистрирован: Пт фев 04, 2005 13:58

Сообщение kirush »

полностью устраивает, не в этом дело.

starchik
Сообщения: 461
Зарегистрирован: Сб ноя 22, 2008 22:07

Сообщение starchik »

kirush писал(а):Но вот мак изменяется ТОЛЬКО если рестартануть ядро.
что бы это не делать нужно использовать урфу

Arti
Сообщения: 266
Зарегистрирован: Пн окт 01, 2007 02:44

Сообщение Arti »

kirush писал(а):полностью устраивает, не в этом дело.
На лицо противоречие между желаемым Вами (пост выше), и сурово зажатым функционалом штатного радиуса :)

FreeRadius задача решается без урфы.

kirush
Сообщения: 699
Зарегистрирован: Пт фев 04, 2005 13:58

Сообщение kirush »

starchik писал(а):
kirush писал(а):Но вот мак изменяется ТОЛЬКО если рестартануть ядро.
что бы это не делать нужно использовать урфу
Урфу официальную? Нет возможности. В urfa-php не нашел данного функционала.

starchik
Сообщения: 461
Зарегистрирован: Сб ноя 22, 2008 22:07

Сообщение starchik »

php конечно и все там есть

http://wiki.flintnet.ru/doku.php?id=fun ... _id_0x2551

gravis
Сообщения: 562
Зарегистрирован: Ср мар 16, 2005 15:31
Откуда: Село Красноярск

Сообщение gravis »

настройка связки UTM5 - ldap - isc-dhcpd занимает минут 10, причем из костылей там только скрипт из 1й строки кода (вызов ldap-modify) который запускается самой UTMкой при редактировании сервисной связки типа ip-traffic. работает в реальном времени и не требует дерганий dhcpd

непонятно вообще зачем эти "начинания" с генерацией конфига для dhcpd

kirush
Сообщения: 699
Зарегистрирован: Пт фев 04, 2005 13:58

Сообщение kirush »

А сколько времени понадобится чтобы занести всё в LDAP?
Вот думаю может через suexec в php скрипте просто рестартовать "генератор dhcpd.conf" он же выдергивает напрямую из mysql. По идее должно сработать.

gravis
Сообщения: 562
Зарегистрирован: Ср мар 16, 2005 15:31
Откуда: Село Красноярск

Сообщение gravis »

Не знаю зачем тебе такие извращения с suexec и php. Можно просто написать консольный скрипт. Вот рабочий пример на перле. Это экспорт хостов. Экспорт подсетей у меня выполнен из базы управления адресным пространством (к UTM отношения не имеет), так что придумай как это сделать. Если подсетей не много, то вполне можно руками вбить.

Код: Выделить всё

#!/usr/bin/perl

use strict;
use DBI;

my $db_login="changeme";
my $db_password = "andme";
my $db_name="UTM5";
my $db_host="localhost";
my $db_port="";

my $dbh = DBI->connect("dbi:mysql:dbname=$db_name;host=$db_host", "$db_login", "$db_password");
$dbh->{HandleError} = sub {print shift};

my $sql = "select inet_ntoa(4294967295 & ip), mac from ip_groups WHERE mac LIKE '%:%' AND ip_type=1 AND is_deleted=0";
my $sth = $dbh->prepare($sql);
my $rv = $sth->execute;
my $c=0;
if ($rv) {
    while (my ($ip, $mac) = $sth->fetchrow_array()) {
        $c++;
        print qq(
dn: cn=$ip,cn=DHCP Config, dc=local,dc=domain
dhcpHWAddress: ethernet $mac
objectClass: top
objectClass: dhcpHost
objectClass: dhcpOptions
dhcpStatements: fixed-address $ip
cn: $ip
);
    }
}
$sth->finish;
$dbh->disconnect;
Вывод записывается в файлик hosts.ldif и затем скармливается LDAP'у

Код: Выделить всё

ldapadd -h 127.0.0.1 -c -D "cn=Manager,dc=local,dc=domain" -w password < hosts.ldif

Ответить