DHCP + DDNS ( dhcp + dynamic dns)
#uname -a
FreeBSD 6.2-RELEASE : Tue Oct 9 15:14:28 MSD 2007 KERNEL i386
ln -s /usr/local/etc/rc.d
Для корректной работы DHCP мы делаем следущее:
[1]. Пересобираем ядро с поддержкой:
################################################################
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter
################################################################
cd /usr/src/sys/i386/conf
cp GENERIC DD
ee DD
config DD
cd ../compile/DD
clean depend && make depend
make install clean
reboot
[2].Собрать и установить из портов:
cd /usr/ports/net/isc-dhcp3-server
make install clean
cd /usr/local/etc
cp dhcpd.conf.sample dhcpd.conf
#############
ee dhcpd.conf
###################################################################
option domain-name "domain.ru";
option domain-name-servers pdc.domain.ru,test.domain.ru;
default-lease-time 600;
max-lease-time 7200;
authoritative;
ddns-update-style ad-hoc;
update-static-leases on;
allow client-updates;
ddns-domainname "domain.ru";
use-host-decl-names true;
log-facility local7;
#Об этом мы смотрим ниже
key DHCP_UPDATE {
algorithm hmac-md5;
secret "8umrpmUeDaWYUAfex1ralg==";
}
#Прямая зона которую будем обновлять
zone domain.ru. {
primary 192.168.1.1;
key DHCP_UPDATE;
}
#Обратная зона которую будем обновлять
zone 1.168.192.in-addr.arpa. {
primary 192.168.1.1;
key DHCP_UPDATE;
}
#Настройки самого DHCP что и кому будем выдавать
subnet 192.168.5.0 netmask 255.255.255.0 {
range 192.168.5.2 192.168.5.254;
option domain-name-servers pdc.domain.ru,test.domain.ru;
option domain-name "domain.ru";
option netbios-name-servers 192.168.1.1;
option netbios-dd-server 192.168.1.1;
option netbios-node-type 8;
option broadcast-address 192.168.1.255;
#option routers 192.168.1.1;
default-lease-time 600;
max-lease-time 7200;
}
#Жестко прописанный хост
host test.domain.ru {
hardware ethernet 00:0d:61:3f:58:8d;
fixed-address 192.168.1.2;
}
###################################################################
echo 'dhcpd_enable="yes"' >> /etc/rc.conf
echo 'dhcpd_ifaces="fxp0"' >> /etc/rc.conf
reboot
Эта часть в файле dhcpd.conf заполняется только после установки
пакета bind (я выбрал BIND-9.3)
---------------------------------------
key DHCP_UPDATE {
algorithm hmac-md5;
secret "8umrpmUeDaWYUAfex1ralg==";
}
zone domain.ru. {
primary 192.168.1.1;
key DHCP_UPDATE;
}
zone 1.168.192.in-addr.arpa. {
primary 192.168.1.1;
key DHCP_UPDATE;
}
---------------------------------------
так как секретный ключ генерируется утилитой которая входит
в состав этого пакета.
cd /usr/local/etc
запуск генерации ключа происходит так:
####################################################
dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATE
####################################################
далее просмотр ключа
################################
cat Kdhcp_updater.+157+22289.key
################################
и вносим последние штрихи в конфиг
ee /usr/local/etc/dhcpd.conf
cd /rc.d
isc-dhcpd restart
3. Можно использовать уже установленый системой bind
(я установил из портов обновлёную версию 9.3)
cd /usr/ports/dns/bind9
make install clean
rehash
cd /etc/namedb/
############
ee rndc.conf
##########################################
options {
default-server localhost;
default-key "rndc.key";
};
server localhost {
key "rndc.key";
};
key "rndc.key" {
algorithm hmac-md5;
secret "TH+fqSnMEU1z5y/79pqWnw==";
};
##########################################
Эта часть образуется таким образом:
//////////////////////////////////////////
key "rndc.key" {
algorithm hmac-md5;
secret "TH+fqSnMEU1z5y/79pqWnw==";
};
//////////////////////////////////////////
Запускаем
###############
rndc-confgen -a
###############
она ложит ключ в /etc/namedb/
и ниже в в named.conf нужно
сослатся на этот ключ
///////////////////////////////
include "/etc/namedb/rndc.key";
///////////////////////////////
Я его указал в самом конце...
#############
ee named.conf
###############################################################
#Расположение файлов
options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/etc/namedb/dump/named_dump.db";
statistics-file "/etc/namedb/stats/named.stats";
#IP нашего нового резолвера
listen-on { 127.0.0.1; 192.168.1.1; };
#и его порт
#(any) - означает все интерфейсы
listen-on port 53 { any; };
#Разрешения из моей сетки
allow-recursion { 192.168.1/24; };
allow-query { 192.168.1/24; };
version "Bind 9.3";
max-cache-size 100M;
#Указываем наши DNS сервера пересылки
#если имя хоста неизвестно.
forwarders {
212.22.33.65;
};
};
/*##############Не работает############
logging {
channel update_debug {
file "/var/log/named-update.log";
severity debug 3;
print-category yes;
print-severity yes;
print-time yes;
};
channel security_info {
file "/var/log/named-auth.log";
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
*/####################################
#Объявление зон
#Главная
zone "." {
type hint;
file "named.root";
};
#Обратная
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "master/localhost.rev";
};
#Наш ключ из DHCP для обновления зон
key DHCP_UPDATE {
algorithm hmac-md5;
secret "8umrpmUeDaWYUAfex1ralg==";
};
category update { update_debug; };
category security { security_info; };
};
#Обновляемая прямая зона
zone "domain.ru" {
type master;
file "db.domain.ru";
allow-update { key DHCP_UPDATER; 192.168.1.1; };
};
#Обновляемая обратная зона
zone "1.168.192.in-addr.arpa" {
type master;
file "db.192.168.1";
allow-update { key DHCP_UPDATER; 192.168.1.1; };
};
#Вложение ключа rndc
include "/etc/namedb/rndc.key";
###############################################################
echo 'named_enable="yes"' >> /etc/rc.conf
echo 'named_flags=" -c /etc/namedb/named.conf"' >> /etc/rc.conf
reboot
#############
# Файлы зон #
#############
Их нужно заполнить обязательно!!!
[1]. Прямая:
ee db.domain.ru:
#########################################################################
$TTL 86400
@ IN SOA pdc.domain.ru. admin.pdc.domain.ru. ( 318 1D 1H 1W 1H )
IN NS pdc.domain.ru.
localhost A 127.0.0.1
#########################################################################
[2]. Обратная:
ee db.192.168.1:
#######################################################################################
$TTL 86400
1.168.192.in-addr.arpa. IN SOA pdc.domain.ru. admin.pdc.domain.ru. ( 318 1D 1H 1W 1H )
IN NS pdc.domain.ru.
1 PTR localhost.
#######################################################################################
Записи в DNS:
SOA - начало зоны ответственности,
NS - авторитативный сервер имен,
A - адрес хоста,
MX - почта,
PTR - указатель на доменное имя (используется в обратных зонах DNS).
pdc.domain.ru - доменное имя зоны
pdc.domain.ru - авторитетный сервер имён в данной зоне (так как находится на том же CPU pdc)
admin.pdc.domain.ru. - человек, отвечающий за эту зону, адрес электронной почты с символом ''@'' замененным на точку.
(admin@pdc.domain.ru. -> становится admin.pdc.domain.ru.)
Момент запуска демона named!
Я исправил одну строку и указал чтобы named загружался от root'а
Логи смотрим тут:
tail -f /var/log/messages
ee /etc/reslov.conf
########################
domain domain.ru
nameserver 127.0.0.1
nameserver 192.168.1.1
#nameserver 192.168.1.2
########################
проверка DNS
dig @127.0.0.1 mail.ru
Дальше берём в руки любимый бубен и
#reboot