Zakładając, że korzystasz z dystrybucji opartej na Debianie lub Ubuntu, możesz zainstalować całe potrzebne oprogramowanie za pomocą:
apt update apt upgrade apt install isc-dhcp-server bind9 bind9utils
Domyślny adres IP bramy: 192.168.101.1
ISP / Zewnętrzne serwery DNS: 62.21.99.94
Wewnętrzna nazwa DNS: INFOMATRIX.LOCAL
Generowanie bezpiecznego klucza do komunikacji między usługami BIND9 i ISC-DHCP-SERVER
rndc-confgen -a
Plik rndc.key zostanie zapisany w lokalizacji: /etc/bind/rndc.key
chmod 660 /etc/bind/rndc.key chown root:bind /etc/bind/rndc.key
Teraz zmień uprawnienia do pliku, aby tylko root i bind mogli go odczytać. Dodatkowo kopiujemy ten plik do lokalizacji: /etc/dhcp/ddns-keys
Konfiguracja protokołu DHCP
Modyfikujemy plik konfiguracyjny: /etc/dhcp/dhcpd.conf
authoritative; default-lease-time 14400; max-lease-time 18000; log-facility local7; ddns-domainname "infomatrix.local."; ddns-rev-domainname "in-addr.arpa."; ddns-update-style standard; allow unknown-clients; update-static-leases on; use-host-decl-names on; option domain-name "infomatrix.local."; include "/etc/dhcp/rndc.key"; update-optimization off; update-conflict-detection off; zone infomatrix.local. { primary 192.168.101.1; key rndc-key; } zone 101.168.192.in-addr.arpa. { primary 192.168.101.1; key rndc-key; } subnet 192.168.101.0 netmask 255.255.255.0 { range 192.168.101.20 192.168.101.200; option subnet-mask 255.255.255.0; option routers 192.168.101.1; option domain-name-servers 192.168.101.1; }
Do sprawdzenia poprawności konfiguracji wykonaj polecenie:
dhcpd -t
Jeżeli nie zobaczymy żadnych ostrzeżeń i błędów, konfiguracja serwera dhcp powinna być poprawna.
Konfiguracja BIND9 z dynamicznym DNS
Pliki konfiguracyjne programu BIND są podzielone na wiele różnych, mniejszych plików. Przyjrzymy się każdemu plikowi, pojedynczo:
/etc/bind/named.conf.local
zone "infomatrix.local" {
type master;
file "/var/lib/bind/db.infomatrix.local";
allow-update { key rndc-key; };
};
zone "101.168.192.in-addr.arpa" {
type master;
notify no;
file "/var/lib/bind/db.101.168.192";
allow-update { key rndc-key; };
};
/etc/bind/named.conf.options
include "/etc/bind/rndc.key";
acl internals {
127.0.0.1;
192.168.101.0/24;
};
options {
directory "/var/cache/bind";
forwarders {
62.21.99.94;
62.21.99.95;
};
allow-query {
internals;
};
allow-query-cache {
internals;
};
recursion yes;
allow-recursion {
internals;
};
allow-transfer {
internals;
};
listen-on-v6 { any; };
auth-nxdomain no;
};
Aby sprawdzić konfigurację, uruchom następujące polecenie:
named-checkconf
Tworzymy pliki ze strefami.
db.infomatrix.local
;
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA ns.infomatrix.local. root.infomatrix.local. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.ti.local.
@ IN A 192.168.101.1
ns IN A 192.168.101.1
srv1 IN A 192.168.101.1
vm1 IN A 192.168.101.27
srv2 IN A 192.168.101.2
db.101.168.192
;
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA ns.infomatrix.local. root.infomatrix.local. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.
1 IN PTR srv1.infomatrix.local.
27 IN PTR vm1.infomatrix.local.
2 IN PTR srv2.infomatrix.local.
Aby sprawdzić strefy, musimy uruchomić polecenie dla każdej strefy:
named-checkzone infomatrix.local /var/lib/bind/db.infomatrix.local
named-checkzone 101.168.192.in-addr.arpa /var/lib/bind/db.101.168.192
Na koniec możemy zrestartować usługi bind9 i isc-dhcp-server. W przypadku problemów należy sprawdzić logi systemowe -> /var/log/syslog