- Установка и настройка DNS-сервера BIND в Linux
- Установка сервера bind
- Создание файла зоны DNS
- Настройка обратной зоны
- Настройка файла конфигурации bind
- Проверка файлов зоны и конфигурации
- Проверка обратной зоны
- Запуск и перезапуск сервера bind
- Тестирование сервера bind
- Похожие записи:
- How to set DNS Nameserver on Ubuntu 20.04
- Change DNS Nameserver via GUI
- Change DNS Nameserver via Config File
- Why Change DNS Nameserver on Ubuntu?
Установка и настройка DNS-сервера BIND в Linux
BIND – наиболее распространенное open-source приложение, в котором реализованы протоколы DNS, предоставляющие возможность преобразования доменных имен в IP-адреса и наоборот.
Данная статья представляет собой руководство по быстрой настройке DNS-сервера в Linux при помощи BIND. Мы не будем подробно разбирать, что такое система DNS и как она работает, а сосредоточимся на примере настройки своей зоны и файла конфигурации для домена/узла с поддержкой сервисов www и электронной почты.
В нашем примере мы будем использовать следующие параметры:
IP-адрес, на котором будет установлен сервер имен: 172.31.0.122
имя домена/узла: itproffi.ru
авторитативные сервера имен для зоны itproffi.ru: ns1.itproffi.ru (172.31.1.10) и ns2. itproffi.ru (172.31.1.11)
службы www и электронной почты для itproffi.ru будут использовать адрес 172.31.1.10
Установка сервера bind
Установка bind очень проста – нужно воспользоваться менеджером пакетов. В Debian и Ubuntu выполните следующую команду:
apt-get install bind9 dnsutils
yum install bind dnsutils
Пакет dnsutils необязателен для запуска сервера bind, но для тестирования конфигурации мы будем пользоваться командой dig из этого пакета.
Создание файла зоны DNS
Дальнейшие примеры будут для Ubuntu/Debian, но также подходят и для Centos/RedHat, только директория с настройками зон в CentOS будет находиться в /etc/named/ , а основной файл конфигурации /etc/named.conf . Для начала нам потребуется создать новый файл зоны для домена itproffi.ru. Перейдите в директорию /etc/bind/ . создайте в ней поддиректорию zones/master/ и перейдите в нее, выполнив следующую последовательность команд:
cd /etc/bind mkdir -p zones/master cd zones/master/
Директория /etc/bind/zones/master будет содержать файл зоны для домена itproffi.ru. При желании можно использовать другую директорию. Файл зоны db.itproffi.ru будет содержать запись DNS, которая поможет серверу имен установить соответствие полного доменного имени IP-адресу. Создайте этот файл со следующим содержимым:
; ; Файл данных BIND для itproffi.ru ; $TTL 3h @ IN SOA ns1.itproffi.ru. admin.itproffi.ru. ( 1 ; серийный номер 3h ; обновление каждые 3 часа 1h ; повторная попытка через час 1w ; срок годности – 1 неделя 1h ) ; хранение кэша отказов 1 час; @ IN NS ns1.itproffi.ru. @ IN NS ns2.itproffi.ru. itproffi.ru. IN MX 10 mail.itproffi.ru. itproffi.ru. IN A 172.31.1.10 ns1 IN A 172.31.1.10 ns2 IN A 172.31.1.11 www IN CNAME itproffi.ru. mail IN A 172.31.1.10 ftp IN CNAME itproffi.ru.
Рассмотрим ключевые строки этого файла:
- Запись SOA: авторитативный сервер имен для itproffi.ru – это ns1.itproffi.ru, адрес ответственного за зону DNS администратора – admin@itproffi.ru
- Записи NS: два сервера имен для зоны itproffi.ru – ns[1,2].itproffi.ru
- Запись MX: почтовый сервер для itproffi.ru. Число 10 означает уровень приоритета
- Записи A: A означает «адрес» (address). Другими словами, ns1 в зоне itproffi.ru будет иметь адрес 172.31.1.10
- Запись CNAME (Canonical Name – каноническое имя): привязывает одно доменное имя к другому (каноническому), например, устанавливает соответствие mail.itproffi.ru и itproffi.ru.
Настройка обратной зоны
На данном этапе DNS-сервер bind может выдать IP-адрес, связанный с узлом itproffi.ru. Теперь нам нужно научить наш сервер имен обратному процессу, то есть устанавливать соответствие имени IP-адресу. Для этого создадим еще один файл db.172.31.1 со следующим содержимым:
; ; Обратный файл данных BIND для 1.31.172.in-addr.arpa ; $TTL 604800 1.31.172.in-addr.arpa. IN SOA ns1.itproffi.ru. admin.itproffi.ru. ( 1 ; серийный номер 3h ; обновление каждые 3 часа 1h ; повторная попытка через час 1w ; срок годности – 1 неделя 1h ) ; хранение кэша отказов 1 час; 1.31.172.in-addr.arpa. IN NS ns1.itproffi.ru. 1.31.172.in-addr.arpa. IN NS ns2.itproffi.ru. 10.1.31.172.in-addr.arpa. IN PTR itproffi.ru.
Запись PTR: DNS-запись, используемая для определения соответствия IP-адреса имени узла.
Настройка файла конфигурации bind
На данный момент у нас должно быть два файла:
/etc/bind/zones/master/db.itproffi.ru /etc/bind/zones/master/db.172.31.1
Теперь требуется вставить имена обоих файлов зоны в файл конфигурации bind /etc/bind/named.conf.local . Для этого добавьте в файл следующие строки:
zone "itproffi.ru" < type master; file "/etc/bind/zones/master/db.itproffi.ru"; >; zone "1.31.172.in-addr.arpa" < type master; file "/etc/bind/zones/master/db.172.31.1"; >;
Последний момент перед проверкой конфигурации – внести в файл named.conf.options IP-адрес стабильного DNS-сервера. Он будет использоваться, если локальный DNS-сервер не будет знать ответ на запрос разрешения имени. Часто этот адрес предоставляется интернет-провайдером, но если вы поклонник Google, можно указать адрес 8.8.8.8 или 8.8.4.4.
Замените следующий блок текста в файле named.conf.options:
на блок текста с адресом стабильного DNS-сервера
Если вы планируйте что к вашему серверу будут подключаться другие компьютеры, то нужно разрешить в опциях внешние подключения. Для этого в основном файле конфигурации, в секции options добавьте или замените следующие правила
listen-on port 53 < any; >; allow-query < any; >;
А лучше, для безопасности вместо any пропишите ваши сети с которых разрешено подключение
listen-on port 53 < 192.168.0.0/24; >; allow-query < 192.168.0.0/24; >;
Если этого не сделать, то при попытке обращения к серверу с другого компьютера вы получите ошибку
Проверка файлов зоны и конфигурации
Прежде чем попытаться запустить сервер имен с новой зоной и конфигурацией, можно воспользоваться некоторыми инструментами, чтобы проверить, что конфигурация корректна и не содержит ошибок.
Для проверки файлов конфигурации выполните следующую команду:
С этой командой работает простое правило: отсутствие результата – это хороший результат. Если команда ничего не возвращает, значит ошибок в ваших файлах конфигурации не обнаружено.
Для проверки файлов зоны DNS можно воспользоваться командой named-checkzone:
named-checkzone itproffi.ru /etc/bind/zones/master/db.itproffi.ru zone itproffi.ru/IN: loaded serial 1 OK
Проверка обратной зоны
named-checkzone 1.31.172.in-addr.arpa /etc/bind/zones/master/db.172.31.1 zone 1.31.172.in-addr.arpa/IN: loaded serial 1 OK
Запуск и перезапуск сервера bind
Теперь мы можем запускать сервер bind:
Если сервер уже был запущен, его можно перезапустить командой restart:
Для того что бы перечитать конфигурацию не перезапуская сервер, используйте команду
Тестирование сервера bind
Для тестирования новой конфигурации сервера имен bind нам пригодится команда dig из пакета dnsutils. Эту команду можно запустить на любом компьютере с сетевым доступом к вашему DNS-серверу, но лучше всего начать тестирование с локального узла. В рассматриваемом нами примере IP-адрес сервера имен 172.31.0.122. Сначала проверим прямое разрешение имени (получение IP-адреса по доменному имени):
dig @172.31.0.122 www.itproffi.ru
Теперь проверим обратную зону:
Если вы получили аналогичные результаты, то зона DNS настроена правильно. Вместо команды dig для тестирования можно также использовать команду nslookup.
nslookup itproffi.ru 172.31.0.122
nslookup 172.31.1.10 172.31.0.122
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Похожие записи:
How to set DNS Nameserver on Ubuntu 20.04
The Domain Name System (DNS) translates text-based domain names to numeric IP addresses. By default, most networks are configured to work with DNS servers supplied by the internet service provider. However, users are free to change the DNS nameservers.
This tutorial will show you how to change DNS nameservers on your Ubuntu machine using GUI or the command line.
- Ubuntu 20.04 (both methods also work on Ubuntu 18.04 and later)
- Access to the terminal
- Sudo privileges
Change DNS Nameserver via GUI
Use Ubuntu Settings to complete all the steps to change DNS addresses via the graphical user interface.
1. Launch Settings and click the Network tab in the menu on the left.
2. Click the cogwheel next to the connection you wish to set up.
Note: To change the settings for a wireless connection, select the Wi-Fi tab, choose a wireless network and proceed with the steps below.
3. Go to the IPv4 tab.
4. Disable automatic DNS configuration by turning off the switch next to the DNS field.
5. Type new DNS addresses in the field. The example shows Google’s public DNS nameservers.
6. Click Apply.
The system is now configured to work with the new DNS servers.
Note: If you wish to set up IPv6 nameservers, go to the IPv6 tab and enter them there. The IPv6 address format is different from IPv4. For example, Google’s IPv6 DNS servers are: 2001:4860:4860::8888 and 2001:4860:4860::8844 .
Change DNS Nameserver via Config File
If you do not use a GUI, change DNS settings with the command line Netplan tool.
1. Go to the Netplan directory:
2. List the directory contents with ls to see the name of the yaml file containing network configuration.
Open the file in a text editor. Your file may have a different name.
sudo nano 01-network-manager.yaml
Ethernet connections are listed in the ethernets section of the file. If there are any wireless connections, you can find them in the wifis section. Netplan stores the current DNS configuration parameters in nameservers subsections of each section.
Replace the addresses located in the file with the DNS addresses you want to use. You can enter more than two addresses. Save the changes and exit.
Note: The file on your system may lack the entire ethernets or wifis section. In that case, add the lines that are missing, making sure you respect the indentation provided in the example.
3. Apply the changes you made in the config file:
If the operation is successful, there is no output. To check if the system successfully applied the changes, type:
resolvectl status | grep "DNS Server" -A2
The output lists your current DNS servers:
Why Change DNS Nameserver on Ubuntu?
In most cases, your default DNS settings offer optimal performance. However, there are scenarios in which you should consider switching to a third-party DNS provider:
- Large companies with better infrastructure are usually more capable of providing uninterrupted DNS service. If your ISP is unreliable and you experience frequent downtimes, switching the DNS provider may be the solution.
- Third-party DNS servers can be faster than those provided to you by your ISP.
Note: Since latency is the primary consideration for DNS, a fast third-party server located far away may provide inferior service to a slower one that is closer to you.
- Some DNS providers offer filters that prevent phishing sites from reaching your computer. The same mechanism is also used to block sensitive content on the internet. Businesses often employ this DNS feature.
- Internet Service Providers sometimes block content on the DNS level, so switching to another DNS nameserver may help you access some geo-restricted websites.
Note: Learn how to install PowerDNS on Ubuntu, a flexible and robust DNS solution.
This tutorial showed you how to set your DNS nameservers on Ubuntu, either using a GUI or CLI.