Установка сервера 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.