Поиск по сайту:

Как настроить DNS/DHCP-сервер с помощью dnsmasq в CentOS/RHEL 8/7


Сервер Протокол динамической конфигурации хоста (DHCP) динамически назначает IP-адреса и другие параметры конфигурации сети каждому устройству в сети. Сервер пересылки DNS в локальной сети перенаправляет DNS-запросы для нелокальных доменных имен на вышестоящие DNS-серверы (за пределами этой сети). Кэширующий DNS-сервер отвечает на рекурсивные запросы от клиентов, что позволяет ускорить обработку DNS-запросов, тем самым повышая скорость поиска DNS на ранее посещенных сайтах.

dnsmasq — это легкий и простой в настройке сервер пересылки DNS, программное обеспечение DHCP-сервера и подсистема объявления маршрутизатора для небольших сетей. Dnsmasq поддерживает Linux, *BSD, Mac OS X, а также Android.

Он имеет подсистему DNS, которая предоставляет локальный DNS-сервер для сети, перенаправляет все типы запросов на вышестоящие рекурсивные DNS-серверы и кэширует общие типы записей. Подсистема DHCP поддерживает DHCPv4, DHCPv6, BOOTP, PXE и сервер TFTP. А подсистема объявления маршрутизатора поддерживает базовую автоконфигурацию хостов IPv6.

В этой статье мы познакомим вас с инструкциями по установке и настройке сервера DNS/DHCP с использованием dnsmasq в CentOS/RHEL 8/7. > дистрибутивы.

Установка dnsmasq в CentOS и RHEL Linux

1. Пакет dnsmasq доступен в репозиториях по умолчанию и его можно легко установить с помощью менеджера пакетов YUM, как показано ниже.

yum install dnsmasq

2. После завершения установки пакета dnsmasq вам необходимо запустить службу dnsmasq и включить ее автоматический запуск при загрузке системы. Кроме того, проверьте его статус, чтобы убедиться, что он запущен и работает, с помощью следующих команд systemctl.

systemctl start dnsmasq
systemctl enable dnsmasq
systemctl status dnsmasq

Настройка сервера dnsmasq в CentOS и RHEL Linux

3. Сервер dnsmasq можно настроить с помощью файла /etc/dnsmasq.conf (который содержит хорошо прокомментированные и объясненные параметры), а пользователь Определенные файлы конфигурации также можно добавить в каталог /etc/dnsmasq.d.

DNS включен по умолчанию, поэтому перед внесением каких-либо изменений обязательно создайте резервную копию файла /etc/dnsmasq.conf.

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

4. Теперь откройте файл /etc/dnsmasq.conf с помощью вашего любимого текстового редактора и выполните следующие рекомендуемые параметры конфигурации.

vi /etc/dnsmasq.conf 

Параметр listen-address используется для установки IP-адреса, который будет прослушивать dnsmasq. Чтобы использовать сервер CentOS/RHEL для прослушивания запросов DHCP и DNS в LAN, установите listen-address к его IP-адресам в локальной сети (не забудьте включить 127.0.0.1), как показано. Обратите внимание, что IP-адрес сервера должен быть статическим.

listen-address=::1,127.0.0.1,192.168.56.10

В связи с вышеизложенным вы можете ограничить интерфейс, который прослушивает dnsmasq, используя опцию интерфейса (добавьте больше строк для более чем одного интерфейса).

interface=eth0

5. Если вы хотите, чтобы домен (который вы можете установить, как показано ниже) автоматически добавлялся к простым именам в файле хостов, раскомментируйте expand- опция хостов.

expand-hosts

6. Установить домен для dnsmasq, что означает, что клиенты DHCP будут иметь полные доменные имена, если заданный домен соответствует, и устанавливает «домен » опция DHCP для всех клиентов.

domain=tecmint.lan

7. Затем также определите вышестоящий DNS-сервер для нелокальных доменов, используя параметр server (в форме server=dns_server_ip), как показано ниже. .

Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. Затем вы можете принудительно назначить IP-адреса своему локальному домену, используя параметр адрес, как показано.

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

9. Сохраните файл и проверьте синтаксис файла конфигурации на наличие ошибок, как показано.

dnsmasq --test

Настройка dnsmasq с помощью файла /etc/resolv.conf

10. На этом этапе вам необходимо отправить все запросы в dnsmasq, добавив адреса локальных хостов в качестве единственных серверов имен в файле /etc/resolv.conf.

vi /etc/resolv.conf

11. Файл /etc/resolv.conf поддерживается локальным демоном, особенно NetworkManager, поэтому любые изменения, внесенные пользователем, будут перезаписаны. Чтобы предотвратить это, защитите его от записи, установив неизменяемый атрибут файла (отключив доступ к файлу на запись) с помощью командыchattr, как показано.

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

Определение DNS-хостов и имен

12. Dnsmasq считывает все DNS-хосты и имена из файла /etc/hosts, поэтому добавьте IP-адреса и пары имен DNS-хостов. как показано.

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

Важно. Локальные DNS-имена также можно определить путем импорта имен из подсистемы DHCP или путем настройки широкого спектра полезных типов записей.

13. Чтобы применить вышеуказанные изменения, перезапустите службу dnsmasq, как показано.

systemctl restart dnsmasq

14. Если у вас запущена служба firewalld, вам необходимо открыть службы DNS и DHCP в конфигурации брандмауэра. , чтобы разрешить передачу запросов от хостов в вашей локальной сети на сервер dnsmasq.

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

Тестирование локального DNS

15. Чтобы проверить, работает ли локальный DNS-сервер или пересылка, вам необходимо использовать такие инструменты, как dig или nslookup, для выполнения DNS-запросов. Эти инструменты предоставляются пакетом bind-utils, который может не быть предустановлен в CentOS/RHEL 8, но его можно установить, как показано.

yum install bind-utils

16. После установки вы можете выполнить простой запрос в своем локальном домене, как показано.

dig tecmint.lan
OR
nslookup tecmint.lan

17. Вы также можете попробовать запросить FQDN одного из серверов.

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

18. Чтобы протестировать обратный поиск IP-адреса, выполните аналогичную команду.

dig -x 192.168.56.25
OR
nslookup 192.168.56.25

Включить DHCP-сервер с помощью dnsmasq

19. Вы можете включить сервер DHCP, раскомментировав параметр dhcp-range и указав диапазон адресов, доступных для аренды, и, при необходимости, время аренды. например (повторите для нескольких сетей).

dhcp-range=192.168.0.50,192.168.0.150,12h

20. Следующий параметр определяет, где DHCP-сервер будет хранить свою базу данных аренды. Это поможет вам легко проверить назначенные им IP-адреса.

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

21. Чтобы перевести DHCP-сервер в авторитетный режим, раскомментируйте этот параметр.

dhcp-authoritative

22. Сохраните файл и перезапустите службу dnsmasq, чтобы применить последние изменения.

systemctl restart dnsmasq

Это подводит нас к концу данного руководства. Чтобы связаться с нами по любым вопросам или идеям, которыми вы хотите поделиться по поводу этого руководства, воспользуйтесь формой обратной связи ниже.