Установка сервера DHCP
Установка DHCP сервера
yum -y install dhcp
Скопировать пример конфига
cp /us/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
Открыть скопированный конфиг
/etc/dhcp/dhcpd.conf
Записать в него, с нужными параметрами, следующее
ddns-updates on;
ddns-update-style interim;
update-static-leases on;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
authoritative;
zone local {
primary 192.168.10.15; #ip-адрес текущего сервера
}
zone 10.168.192.in-addr.arpa.{
primary 192.168.10.15; #ip-адрес текущего сервера
}
subnet 192.168.10.0 netmask 255.255.255.0 { #подсеть и маска
range 192.168.10.100 192.168.10.250; #диапазон из которого будут выдаваться адреса
option domain-name-servers 192.168.10.15; #ip-адрес текущего сервера
option domain-name "local"; #имя домена
option routers 192.168.10.10; #ip-адрес шлюза
option broadcast-address 192.168.10.255; #широковещательный ip-адрес
default-lease-time 86400; #через сколько будет происходить смена ip-адреса
max-lease-time 259200; #максимальное время через которое будет происходить смена ip-адреса
}
Host HOSTNAME1 { #резервирование ip-адреса для указанного компьютера
hardware ethernet 70:4D:7B:B4:49:97;
fixed-address 192.168.10.50;
}
Host HOSTNAME2 {
hardware ethernet B0:6E:BF:7E:2D:A1;
fixed-address 192.168.10.51;
}Запустить dhcp, добавить в автозагрузку, проверить статус
systemctl start dhcpd systemctl enable dhcpd systemctl status dhcpd
Если возникли ошибки, показывает подробности
journal -xe
Посмотреть выданные адреса можно в файле
/var/lib/dhcpd/dhcpd.leases
Установка DNS сервера
Установка
yum -y install bind bind-utils
В файле
/etc/resolv.confДолжно быть
nameserver 127.0.0.1
search local
Конфиг
/etc/named.confИзменить под свои параметры
options {
listen-on port 53 {
127.0.0.1;
192.168.10.15; #ip-адрес текущего сервера
};
allow-query {
localhost;
192.168.10.0/24; #подсеть в которой будет работать dns сервер
};
forwarders {
192.168.10.10; #dns-сервер на который идет перенаправление если неизвестен адрес
};
}Добавление зон, указываются пути к файлам зон
zone "local" {
type master;
file "/var/named/forward.bind";
};
zone "10.168.192.in-addr.arpa"{
type master;
file "/var/named/revers.bind";
};Скопировать шаблон прямой зоны
cp /var/named/named.localhost /var/named/forward.bindВ шаблоне прямой зоны
/var/named/forward.bindПрописать
$ORIGIN . $TTL 604800 ; 1 week local IN SOA DNSDHCP.local. root.DNSDHCP.local. ( #DNSDHCP -имя текущего сервера 10487 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) NS DNSDHCP.local. #DNSDHCP -имя текущего сервера A 192.168.10.15 #ip-адрес текущего сервера $ORIGIN local. $TTL 3600 ; 1 hour HOSTNAME1 A 192.168.10.35 #соответствие имени компьютера его ip-адресу
Скопировать шаблон обратной зоны
cp /var/named/forward.bind /var/named/revers.bindВ шаблоне обратной зоны
/var/named/revers.bindПрописать
$ORIGIN . $TTL 604800 ; 1 week 10.168.192.in-addr.arpa IN SOA DNSDHCP.local. root.DNSDHCP.local ( 7028 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) NS DNSDHCP.local. #DNSDHCP -имя текущего сервера $ORIGIN 10.168.192.in-addr.arpa. #10.168.192 -ip-адрес подсети в перевернутом виде $TTL 604800 ; 1 week 15 PTR DNSDHCP.local. $TTL 3600 ; 1 hour 35 PTR HOSTNAME1.local.
Открыть порт 53
firewall-cmd --zone=public --add-port=53/tcp --permanent firewall-cmd --zone=public --add-port=53/udp --permanent firewall-cmd --reload
Сменить владельцев файлов зон
chown named.named /var/named/forward.bind chown named.named /var/named/rever.bind
Запустить bind, добавить в автозагрузку
systemctl start named systemctl enable named
можно проверить работу с помощью
host HOSTNAME host 192.168.10.35
Связывание DNS и DHCP
Нужно, чтобы хосты в файлы зон dns заносились автоматически
Для этого нужно сгенерировать ключ, при этом нужно находится не в корневой папке, а например в
Для этого нужно сгенерировать ключ, при этом нужно находится не в корневой папке, а например в
/var/named
Для генерации ключа используется команда
divssec-keygen -a hmac-md5 -b 128 -r/dev/urandom -n USER dhcp_updaterВ текущей папке появятся два файла, один из них вида kdhcp_updater.+15f+53664.private нужно прочитать этот файл, в нем будет рандомный ключ, заканчивающийся на ==
В файле
/etc/named.confПосле закрывающей скобки раздела options добавить
key DHCP_UPDATER{
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret QihiST8OqK6ilv6CZMs78A==; #ключ из файла полученный ранее
};Изменить
zone "local" {
type master;
file "/var/named/forward.bind";
allow-update {key DHCP_UPDATER;};
};
zone "10.168.192.in-addr.arpa"{
type master;
file "/var/named/revers.bind";
allow-update {key DHCP_UPDATER;};
};В разделе options перед forwarders добавить
recursion yes; dnssec-enable yes; dnssec-validation yes;
В файле
/etc/dhcp/dhcpd.confДобавить после закрывающей скобки раздела options
key DHCP_UPDATER {
algorithm HMAC-MD5;
secret "QihiST8OqK6ilv6CZMs78A==";
}
zone local {
primary 192.168.10.15;
key DHCP_UPDATER;
}
zone 10.168.192.in-addr.arpa.{
primary 192.168.10.15;
key DHCP_UPDATER;
}Перезагрузить службы dhcp и dns, после этого записи будут сами добавляться в файлы forward и revers
systemctl restart named systemctl restart dhcp
Конфигурационные файлы целиком
/etc/dhcp/dhcpd.conf
ddns-updates on;
ddns-update-style interim;
update-static-leases on;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
authoritative;
key DHCP_UPDATER {
algorithm HMAC-MD5;
secret "QihiST8OqK6ilv6CZMs78A==";
}
zone local {
primary 192.168.10.15;
key DHCP_UPDATER;
}
zone 10.168.192.in-addr.arpa.{
primary 192.168.10.15;
key DHCP_UPDATER;
}
subnet 192.168.10.0 netmask 255.255.255.0 { #подсеть и маска
range 192.168.10.100 192.168.10.250; #диапазон из которого будут выдаваться адреса
option domain-name-servers 192.168.10.15; #ip-адрес текущего сервера
option domain-name "local"; #имя домена
option routers 192.168.10.10; #ip-адрес шлюза
option broadcast-address 192.168.10.255; #широковещательный ip-адрес
default-lease-time 86400; #через сколько будет происходить смена ip-адреса
max-lease-time 259200; #максимальное время через которое будет происходить смена ip-адреса
}
Host HOSTNAME1 { #резервирование ip-адреса для указанного компьютера
hardware ethernet 70:4D:7B:B4:49:97;
fixed-address 192.168.10.50;
}
Host HOSTNAME2 {
hardware ethernet B0:6E:BF:7E:2D:A1;
fixed-address 192.168.10.51;
}
/etc/named.conf
options {
listen-on port 53 {
127.0.0.1;
192.168.10.15; #ip-адрес текущего сервера
};
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query {
localhost;
192.168.10.0/24; #подсеть в которой будет работать dns сервер
};
recursion yes;
dnssec-enable yes;
dnssec-validation auto;
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
include "/etc/crypto-policies/back-ends/bind.config";
forwarders {
192.168.10.10; #dns-сервер на который идет перенаправление если неизвестен адрес
};
}
key DHCP_UPDATER{
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret QihiST8OqK6ilv6CZMs78A==;
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "local" {
type master;
file "/var/named/forward.bind";
allow-update {key DHCP_UPDATER;};
};
zone "10.168.192.in-addr.arpa"{
type master;
file "/var/named/revers.bind";
allow-update {key DHCP_UPDATER;};
};
/var/named/forward.bind
$ORIGIN . $TTL 604800 ; 1 week local IN SOA DNSDHCP.local. root.DNSDHCP.local. ( #DNSDHCP -имя текущего сервера 10487 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) NS DNSDHCP.local. #DNSDHCP -имя текущего сервера A 192.168.10.15 #ip-адрес текущего сервера $ORIGIN local. $TTL 3600 ; 1 hour HOSTNAME1 A 192.168.10.35 #соответствие имени компьютера его ip-адресу
/var/named/revers.bind
$ORIGIN . $TTL 604800 ; 1 week 10.168.192.in-addr.arpa IN SOA DNSDHCP.local. root.DNSDHCP.local ( 7028 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) NS DNSDHCP.local. #DNSDHCP -имя текущего сервера $ORIGIN 10.168.192.in-addr.arpa. #10.168.192 -ip-адрес подсети в перевернутом виде $TTL 604800 ; 1 week 15 PTR DNSDHCP.local. $TTL 3600 ; 1 hour 35 PTR HOSTNAME1.local.