|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> isc-dhcpd + mysql
isc-dhcpd + mysql (over php)
Автор: loko9988.
Написать эту статью меня заставило то что в течении 2 дней поиска по гуглу фразы isc-dhcpd mysql ничего не дало. А то что попадалось это советы написать самому. В итоге пришлось, ибо начальству не возражать перед з/п опасно :))
Из обеспечения что нам надо это сам ISC-Dhcp Mysql и PHP
Опишу тока установку самого dhcp благо по остальному статей многа :)
Для начала ставим сам DHCP сервер. И создаём основной конфиг
cd /usr/ports/net/isc-dhcp3-server
make install clean
cp ./dhcpd.conf.sample ./dhcpd.conf
| Проставился. Отлично.
В принципе конфиг не обязательно копировать... достаточно создать в папке /usr/local/etc/
файл dhcpd.conf и дать ему права 666
Теперь самое вкусное...
Создаём базу данных adminka и таблицу dhcpd
CREATE DATABASE `adminka` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;
USE `adminka`;
--
-- Структура таблицы `dhcpd`
--
CREATE TABLE IF NOT EXISTS `dhcpd` (
`name` varchar(30) NOT NULL,
`ip` varchar(15) NOT NULL,
`ip2` varchar(15) NOT NULL,
`odns` varchar(30) NOT NULL,
`range1` varchar(15) NOT NULL,
`range2` varchar(15) NOT NULL,
`opbroad` varchar(15) NOT NULL,
`ntps` varchar(30) NOT NULL,
`subn` varchar(15) NOT NULL,
`netmask` varchar(15) NOT NULL,
`oprou` varchar(15) NOT NULL,
`onns` varchar(15) NOT NULL,
`ondds` varchar(15) NOT NULL,
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `dhcpd`
--
INSERT INTO `dhcpd` (`name`, `ip`, `ip2`, `odns`, `range1`, `range2`, `opbroad`, `ntps`, `subn`, `netmask`, `oprou`, `onns`, `ondds`) VALUES
('1', 'le0', '192.168.138.1', '192.168.168.1', '192.168.138.10', '192.168.138.230', '192.168.138.255', '192.168.138.1', '192.168.138.0', '255.255.255.0', '192.168.138.1', '192.168.138.1', '192.168.138.1');
| Я использую phpmyadmin для удобства.
Создали идём дальше.
Создаём файл dhcp.php
#!/usr/local/bin/php
<?php
//
//
//
//ISC-DHCP
// Скрипт для хранения настроек в мускуле
//Аффтар нуб в пхп :) loko9988
//
//
//
//Конектимся к базе
@ $db=mysql_pconnect("localhost", "логин", "пасс");
if (!$db)
{
echo "Ты намутил что-то не то... либо упала база.... либо хз";
exit;
}
mysql_select_db("adminka");
//Производим выборку
$query = "SELECT * FROM dhcpd WHERE name=1";
$result = mysql_query($query);
//Обрабатываем результат
$row = mysql_fetch_array($result);
//Раскидываем по переменным для удобства
$subn=$row["subn"];
$netmask=$row["netmask"];
$range1=$row["range1"];
$range2=$row["range2"];
$oprou=$row["oprou"];
$onns=$row["onns"];
$odns=$row["odns"];
$ondds=$row["ondds"];
$opbroad=$row["opbroad"];
$ntps=$row["ntps"];
//Подготавливаем переменную для создания конфига
$filed = "default-lease-time 720000;
max-lease-time 720000;
min-lease-time 720000;
authoritative;
ddns-update-style ad-hoc;
key DHCP_UPDATER {
algorithm hmac-md5;
}
log-facility local7;
subnet $subn netmask $netmask {
range $range1 $range2;
option routers $oprou;
option subnet-mask $netmask;
option netbios-name-servers $onns;
option domain-name-servers $odns;
option netbios-dd-server $ondds;
option netbios-node-type 8;
option broadcast-address $opbroad;
option ntp-servers $ntps;
}
";
//Открытие файла, очистка файла и запись конфига в файл.
$fp = fopen("/usr/local/etc/dhcpd.conf", "w");
if (!$fp)
{
echo "Ты намутил что-то не то... ведь всё работало";
exit;
}
fwrite($fp, $filed);
fclose($fp);
?>
| Создали.. всё отлично даём ему права на исполнение.. так на всякий случай
Редактируем файл /usr/local/etc/rc.d/isc-dhcpd
Кидаем в шапку после коментов где указана обработка скрипта
phppath='/usr/local/bin/php'
phppathconf='/usr/home/admin/www/data/dhcp.php'
phpflags='-h'
runphp=`$phppath $phppathconf $phpflags`
| терь настраиваем rc.conf
после #!/bin/sh кидаем
fullpathmysql='/usr/local/bin/mysql'
ipsil=`$fullpathmysql --user=логин --password=пасс -D adminka -e "SELECT ip FROM dhcpd WHERE name=1;"`
dhcpt1=`echo $ipsil|awk '{print $2}'`
| Ну и где нить всередине или в конце кидаем сам запуск демона, советую просмотреть его сначала... мож там уже стоит запуск... так что то что создалось по автомату делим и пихаем
dhcpd_enable="YES"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="$dhcpt1"
| Тестим.. соответственно isc-dhcpd restart
Ура... всё работает.... но почему-то нихрена не работает при рестарте.. фсё потому что терь надо мутить зависимости при старте и рехашить фсю сеть...
Кидаем в папку файл
размещено: 2009-10-22,
последнее обновление: 2011-08-25,
автор: loko9988
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
|
Статистика сайта
|
Сейчас на сайте находится: 8 чел.
|
За последние 30 мин было: 36 человек
|
За сегодня было 4361 показов, 859 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
Только у нас дачная теплица домик по ценам производителя
|
Комментарии пользователей [2 шт.]