Wyszukiwanie w witrynie

Jak skonfigurować serwer DNS/DHCP przy użyciu dnsmasq na CentOS/RHEL 8/7


Serwer Dynamic Host Configuration Protocol (DHCP) dynamicznie przypisuje adresy IP i inne parametry konfiguracji sieci do każdego urządzenia w sieci. Usługa przesyłania dalej DNS w sieci LAN przekazuje zapytania DNS dotyczące nielokalnych nazw domen do nadrzędnych serwerów DNS (poza tą siecią). Serwer buforujący DNS odpowiada na żądania rekursywne od klientów, dzięki czemu zapytanie DNS może zostać rozwiązane szybciej, co poprawia prędkość wyszukiwania DNS wcześniej odwiedzanych witryn.

dnsmasq to lekki, łatwy w konfiguracji serwer przesyłania dalej DNS, oprogramowanie serwera DHCP i podsystem anonsowania routera dla małych sieci. Dnsmasq obsługuje systemy Linux, *BSD, Mac OS X i Android.

Zawiera podsystem DNS, który zapewnia lokalny serwer DNS dla sieci, z przekazywaniem wszystkich typów zapytań do nadrzędnych rekurencyjnych serwerów DNS i buforowaniem popularnych typów rekordów. Podsystem DHCP obsługuje protokoły DHCPv4, DHCPv6, BOOTP, PXE i serwer TFTP. Podsystem anonsowania routera obsługuje podstawową autokonfigurację hostów IPv6.

W tym artykule przeprowadzimy Cię przez instrukcje instalacji i konfiguracji serwera DNS/DHCP przy użyciu dnsmasq w systemie CentOS/RHEL 8/7 dystrybucje.

Instalowanie dnsmasq w CentOS i RHEL Linux

1. Pakiet dnsmasq jest dostępny w domyślnych repozytoriach i można go łatwo zainstalować za pomocą menedżera pakietów YUM, jak pokazano.

yum install dnsmasq

2. Po zakończeniu instalacji pakietu dnsmasq musisz na razie uruchomić usługę dnsmasq i włączyć jej automatyczne uruchamianie przy starcie systemu. Poza tym sprawdź jego status, aby upewnić się, że działa i działa, używając następujących poleceń systemctl.

systemctl start dnsmasq
systemctl enable dnsmasq
systemctl status dnsmasq

Konfigurowanie serwera dnsmasq w CentOS i RHEL Linux

3. Serwer dnsmasq można skonfigurować za pomocą pliku /etc/dnsmasq.conf (który zawiera dobrze skomentowane i wyjaśnione opcje), a użytkownik -definiowane pliki konfiguracyjne można także dodać do katalogu /etc/dnsmasq.d.

DNS jest domyślnie włączony, więc przed wprowadzeniem jakichkolwiek zmian pamiętaj o utworzeniu kopii zapasowej pliku /etc/dnsmasq.conf.

cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

4. Teraz otwórz plik /etc/dnsmasq.conf za pomocą swojego ulubionego edytora tekstowego i dokonaj następujących sugerowanych ustawień konfiguracyjnych.

vi /etc/dnsmasq.conf 

Opcja listen-address służy do ustawienia adresu IP, na którym dnsmasq będzie nasłuchiwał. Aby używać serwera CentOS/RHEL do nasłuchiwania żądań DHCP i DNS w LAN, ustaw wartość listen-address na adresy IP w sieci LAN (pamiętaj o dodaniu 127.0.0.1), jak pokazano. Należy pamiętać, że adres IP serwera musi być statyczny.

listen-address=::1,127.0.0.1,192.168.56.10

W związku z powyższym możesz ograniczyć interfejs, na którym dnsmasq nasłuchuje, używając opcji interfejsu (dodaj więcej linii dla więcej niż jednego interfejsu).

interface=eth0

5. Jeśli chcesz, aby domena (którą możesz ustawić jak pokazano poniżej) była automatycznie dodawana do prostych nazw w pliku hosts, odkomentuj rozwiń- opcję hostów.

expand-hosts

6. Aby ustawić domenę dla dnsmasq, co oznacza, że klienci DHCP będą mieli w pełni kwalifikowane nazwy domen, o ile ustawiona domena będzie dopasowana, i ustawia „domena ” Opcja DHCP dla wszystkich klientów.

domain=tecmint.lan

7. Następnie zdefiniuj także nadrzędny serwer DNS dla domen nielokalnych za pomocą opcji serwer (w postaci serwer=dns_server_ip), jak pokazano .

Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. Następnie możesz wymusić na swojej domenie lokalnej przypisanie adresu(ów) IP za pomocą opcji adres, jak pokazano.

address=/tecmint.lan/127.0.0.1 
address=/tecmint.lan/192.168.56.10

9. Zapisz plik i sprawdź składnię pliku konfiguracyjnego pod kątem błędów, jak pokazano.

dnsmasq --test

Konfigurowanie dnsmasq za pomocą pliku /etc/resolv.conf

10. W tym kroku musisz ustawić, aby wszystkie zapytania były wysyłane do dnsmasq, dodając adresy localhost jako jedyne serwery nazw w pliku /etc/resolv.conf.

vi /etc/resolv.conf

11. Plik /etc/resolv.conf jest obsługiwany przez lokalnego demona, zwłaszcza NetworkManager, dlatego wszelkie zmiany wprowadzone przez użytkownika zostaną nadpisane. Aby temu zapobiec, zabezpiecz go przed zapisem, ustawiając niezmienny atrybut pliku (wyłączając dostęp do pliku do zapisu) za pomocą polecenia chattr, jak pokazano.

chattr +i /etc/resolv.conf
lsattr /etc/resolv.conf

Definiowanie hostów i nazw DNS

12. Dnsmasq odczytuje wszystkie hosty DNS i nazwy z pliku /etc/hosts, więc dodaj adresy IP i pary nazw hostów DNS jak pokazano.

127.0.0.1       dnsmasq
192.168.56.10 	dnsmasq 
192.168.56.1   	gateway
192.168.56.100	maas-controller 
192.168.56.20 	nagios
192.168.56.25 	webserver1

Ważne: Lokalne nazwy DNS można również definiować poprzez import nazw z podsystemu DHCP lub konfigurację szerokiej gamy przydatnych typów rekordów.

13. Aby zastosować powyższe zmiany, uruchom ponownie usługę dnsmasq, jak pokazano.

systemctl restart dnsmasq

14. Jeśli masz uruchomioną usługę firewalld, musisz otworzyć usługi DNS i DHCP w konfiguracji zapory , aby umożliwić przesyłanie żądań od hostów w Twojej sieci LAN do serwera dnsmasq.

firewall-cmd --add-service=dns --permanent
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --reload

Testowanie lokalnego DNS

15. Aby sprawdzić, czy lokalny serwer DNS lub przekazywanie działa prawidłowo, musisz użyć narzędzi takich jak dig lub nslookup do wykonywania zapytań DNS. Narzędzia te są dostarczane w pakiecie bind-utils, który może nie być preinstalowany w CentOS/RHEL 8, ale można go zainstalować w pokazany sposób.

yum install bind-utils

16. Po zainstalowaniu możesz uruchomić proste zapytanie w swojej domenie lokalnej, jak pokazano.

dig tecmint.lan
OR
nslookup tecmint.lan

17. Możesz także spróbować zapytać o FQDN jednego z serwerów.

dig webserver1.tecmint.lan
OR
nslookup webserver1.tecmint.lan

18. Aby przetestować odwrotne wyszukiwanie adresu IP, uruchom podobne polecenie.

dig -x 192.168.56.25
OR
nslookup 192.168.56.25

Włącz serwer DHCP przy użyciu dnsmasq

19. Możesz włączyć serwer DHCP poprzez odkomentowanie opcji dhcp-range i podanie zakresu adresów dostępnych do dzierżawy oraz opcjonalnie czasu dzierżawy np. (powtórz dla więcej niż jednej sieci).

dhcp-range=192.168.0.50,192.168.0.150,12h

20. Poniższa opcja określa, gdzie serwer DHCP będzie przechowywać bazę danych dzierżaw. Dzięki temu możesz łatwo sprawdzić przypisane przez siebie adresy IP.

dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

21. Aby ustawić serwer DHCP w trybie autorytatywnym, usuń komentarz z tej opcji.

dhcp-authoritative

22. Zapisz plik i uruchom ponownie usługę dnsmasq, aby zastosować ostatnie zmiany.

systemctl restart dnsmasq

To prowadzi nas do końca tego przewodnika. Aby skontaktować się z nami w przypadku pytań lub przemyśleń na temat tego przewodnika, skorzystaj z poniższego formularza opinii.