Перезапуск dns службы linux

Обновлено: 02.07.2024

BIND - Berkeley Internet Name Domain. Самая популярная DNS в мире.

Подготовка к установке

Перед установкой bind обновите систему и убедитесь, что у вас установлен epel-release

sudo yum update
sudo yum upgrade
yum list epel-release

Installed означает, что у меня epel-release установлен

Если вместо Installed вы видите Available - тогда установите командой

sudo yum install epel-release

Установка BIND

Проверить наличие bind можно выполнив

Available означает, что пакет не установлен но доступен для установки.

Установить bind и bind-utils (нужен, например, для dig) можно командой

sudo yum install -y bind bind-utils

Loaded plugins: fastestmirror, langpacks You need to be root to perform this command. [andrei@localhost

Пакет, который мы установили называется bind но сервис назывется named

Поэтому для запуска сервиса при загрузке системы нужно выполнить

sudo systemctl enable named

Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

Пока он не запущен статус будет inactive (dead)

systemctl status named

● named.service - Berkeley Internet Name Domain (DNS) Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled) Active: inactive (dead)

Запуск named

sudo systemctl start named

Перезапуск named

sudo systemctl restart named

Проверка состояния named

sudo systemctl status -l named

Проверка iptables

sudo iptables -L

На чистой системе, скорее всего не будет никаких правил

Chain INPUT (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination

Если уже включен firewall то открыть нужно порт 53

Проверка netstat

Изучить, какие слушаютс порты можно с помощью netstat

Если named выключен

Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 . 22 . * LISTEN tcp6 0 0 ::1:25 . * LISTEN

Если named включен

Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 ::1:53 . * LISTEN tcp6 0 0 . 22 . * LISTEN tcp6 0 0 ::1:953 . * LISTEN tcp6 0 0 ::1:25 . * LISTEN

Порт 53 слушается для DNS lookup

Порт 953 используется для контроля за DNS сервером

dig: Выполнить DNS запрос

На внешнем сервере

Чтобы выполнить dig достаточно установить bind-utils

На своём DNS сервере

Если bind установлен и запущен, можно делать dig на нём.

Если named выключен или bind не установлен - вы не сможете сделать dig на локальном хосте.

Получите, например ;; connection timed out; no servers could be reached

Обратите внимание - теперь в ответе содержится AUTHORITY SECTION.

Подробности в статье DNS

Типы DNS серверов: caching и forwarding

Кэширующий DNS-сервер работает, выполняя все DNS-запросы, выполняемые вашей системой, а затем сохраняя или кэшируя результаты в памяти.

Перенаправляющий DNS-сервер отправляет запрос другому серверу и ждёт пока тот сделает работу за него.

Подробнее изуть особенности caching и forwarding серверов вы можете в статье «Типы DNS серверов»

named.conf - файл с конфигурацией named

Файл с настройками называется named.conf и лежит в

Настройка caching DNS сервера

Внесём небольшие изменения в файл с конфигурацией

systemctl restart named

Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 192.168.56.149:53 0.0.0.0:* LISTEN tcp 0 0 10.0.2.49:53 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 . 22 . * LISTEN tcp6 0 0 ::1:953 . * LISTEN tcp6 0 0 ::1:25 . * LISTEN

На IPv6 больше не слушается порт 53. Количество IPv4 адресов на которых теперь слушается порт 53 увеличилось - сравните с тем что было раньше если не запомнили.

query: Запросы

Разрешить запросы к серверу можно указав нужный хост или сеть в allow-query

Использовать DNS сервер из локальной сети

В данном примере в сети есть два хоста:

Напоминаю, что в named.conf внесены следующие изменения

На сервере 192.168.56.149 нужно открыть порт 53 для tcp и udp

Полный список портов вы можете изучить в статье « Компьютерные сети »

Подробнее про работу с Firewall читайте в статье « CentOS Firewall »

На хосте 192.168.56.113 теперь можно выполнить dig @192.168.56.149 и если dns-server имеет нужные данные это должно сработать.

В этом примере по умолчанию установлено

Если у вас это не сделано - для того, чтоб делать запросы к неизвестным именам - нужно разрешить серверу делать рекурсивные запросы .

Настройка forwarding DNS сервера

Оставим конфиг из предыдущего примера и допишем в конец блока options

8.8.8.8; 8.8.4.4; - это публичные DNS сервера Google

1.1.1.1; 1.0.0.1; - это публичные DNS сервера Cloudflare

Порядок перечисления не имеет значения - будет использоваться тот, от которого быстрее отклик.

BIND – наиболее распространенное open-source приложение, в котором реализованы протоколы DNS, предоставляющие возможность преобразования доменных имен в IP-адреса и наоборот.

Данная статья представляет собой руководство по быстрой настройке DNS-сервера в Linux при помощи BIND. Мы не будем подробно разбирать, что такое система DNS и как она работает, а сосредоточимся на примере настройки своей зоны и файла конфигурации для домена/узла с поддержкой сервисов www и электронной почты.

Установка сервера bind

Установка bind очень проста – нужно воспользоваться менеджером пакетов. В Debian и Ubuntu выполните следующую команду:

В CentOS или Fedora:

Пакет dnsutils необязателен для запуска сервера bind, но для тестирования конфигурации мы будем пользоваться командой dig из этого пакета.

Создание файла зоны DNS

Рассмотрим ключевые строки этого файла:

Настройка обратной зоны

Запись PTR: DNS-запись, используемая для определения соответствия IP-адреса имени узла.

Настройка файла конфигурации bind

На данный момент у нас должно быть два файла:

Теперь требуется вставить имена обоих файлов зоны в файл конфигурации bind /etc/bind/named.conf.local . Для этого добавьте в файл следующие строки:

Последний момент перед проверкой конфигурации – внести в файл named.conf.options IP-адрес стабильного DNS-сервера. Он будет использоваться, если локальный DNS-сервер не будет знать ответ на запрос разрешения имени. Часто этот адрес предоставляется интернет-провайдером, но если вы поклонник Google, можно указать адрес 8.8.8.8 или 8.8.4.4.

Замените следующий блок текста в файле named.conf.options:

на блок текста с адресом стабильного DNS-сервера

Если вы планируйте что к вашему серверу будут подключаться другие компьютеры, то нужно разрешить в опциях внешние подключения. Для этого в основном файле конфигурации, в секции options добавьте или замените следующие правила

А лучше, для безопасности вместо any пропишите ваши сети с которых разрешено подключение

Если этого не сделать, то при попытке обращения к серверу с другого компьютера вы получите ошибку

Проверка файлов зоны и конфигурации

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

Для проверки файлов конфигурации выполните следующую команду:

С этой командой работает простое правило: отсутствие результата – это хороший результат. Если команда ничего не возвращает, значит ошибок в ваших файлах конфигурации не обнаружено.

Для проверки файлов зоны DNS можно воспользоваться командой named-checkzone:

Проверка обратной зоны

Запуск и перезапуск сервера bind

Теперь мы можем запускать сервер bind:

Если сервер уже был запущен, его можно перезапустить командой restart:

Для того что бы перечитать конфигурацию не перезапуская сервер, используйте команду

Тестирование сервера bind

Для тестирования новой конфигурации сервера имен bind нам пригодится команда dig из пакета dnsutils. Эту команду можно запустить на любом компьютере с сетевым доступом к вашему DNS-серверу, но лучше всего начать тестирование с локального узла. В рассматриваемом нами примере IP-адрес сервера имен 172.31.0.122. Сначала проверим прямое разрешение имени (получение IP-адреса по доменному имени):


Теперь проверим обратную зону:

dig @172.31.0.122 -x 172.31.1.10


Если вы получили аналогичные результаты, то зона DNS настроена правильно. Вместо команды dig для тестирования можно также использовать команду nslookup.


nslookup 172.31.1.10 172.31.0.122


Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

В Ubuntu и Debian инициализацией сетевых интерфейсов и настройкой сети занимается специальная сетевая служба - networking. Информация о конфигурации сетевых интерфейсов хранится в файле /etc/network/interfaces.

Если вы что-либо измените в этом файле, нужно будет перезапустить сеть, чтобы применить изменения. В этой статье мы рассмотрим как выполнить перезапуск сети Ubuntu 16.04.

Перезагрузка сети в Ubuntu

Можно, конечно, выполнить полную перезагрузку компьютера, но это не совсем удобно если можно просто перезапустить сеть Ubuntu. Для перезапуска сети используйте следующую команду:

sudo service networking restart

В современных дистрибутивах уже давным давно используется система инициализации Systemd, поэтому можно использовать команду systemctl вместо команды service:

sudo systemctl restart networking.service


Кроме того, можно перезапустить NetworkManager, это тоже помогает, если сеть настроена через него:

sudo systemctl restart NetworkManager

Перезапуск сети в NetworkManager

Чаще всего, для управления сетью в современных дистрибутивах используется программа Network Manager. Можно сразу же использовать ещё для наших целей. Просто отключите, а затем включите сеть обратно следующими командами:

sudo nmcli networking off

sudo nmcli networking on


После отключения сети значок NetworkManager пропадёт с панели, а потом снова появится после включения. Аналогично, вы можете использовать NetworkManager в графическом интерфейсе. Кликните по его иконке, выберите нужное сетевое подключение и нажмите Выключить:

Затем включите его обратно.

Команды ifup и ifdown

Эти команды работают на более низком уровне, они управляют непосредственно самими сетевым интерфейсами. Для перезапуска сети мы можем отключить все интерфейсы, а затем включить обратно:

Вы не увидите никаких изменений в графическом интерфейсе, но когда сетевой интерфейс будет отключён, вы не будете иметь доступа к интернету.

Выводы

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

Как и во всех других операционных системах, в Linux есть службы и процессы, выполняемые во время работы системы в фоновом режим. Когда система загружается, сервисы запускаются автоматически и продолжают работать, пока система не выключится. Однако вы можете запускать, останавливать и перезапускать службы вручную.

Рассмотрим различные способы запуска, остановки и перезапуска служб в Ubuntu с помощью systemd, команды service и сценария инициализации init.

Список всех сервисов в Ubuntu
Прежде всего нужно получить список всех служб на вашем компьютере.

Он покажет полный список сервисов на вашем компьютере.


Использование Systemd для запуска / остановки / перезапуска служб в Ubuntu

Вы можете запускать, останавливать или перезапускать сервисы с помощью утилиты systemd systemctl. Начиная с версии 16.04 Ubuntu включает в себя systemd как init-систему по умолчанию. На сегодняшний день это предпочтительный способ работы со службами.

sudo systemctl [действие] [имя службы]

Например, рассмотрим как запустить, остановить или перезапустить службу брандмауэра ufw в Ubuntu.

Откройте окно терминала и введите следующие команды.

Проверить статус службs:

Управление сервисами с помощью systemd

Запуск / остановка / перезапуск сервисов в Ubuntu с помощью команды service

Вы также можете запускать, останавливать или перезапускать службы, используя service. Откройте окно терминала и введите следующие команды.

Проверить статус службы:

Использование скриптов Init для управления сервисами в Ubuntu

Вы можете запускать, останавливать или перезапускать службы, используя сценарии инициализации в каталоге /etc/init.d. Этот каталог на самом деле содержит в себе различные скрипты для разных сервисов. Сценарии инициализации устарели с тех пор, как Ubuntu перешла на Systemd, поэтому этот метод будет использоваться, только если вам приходится иметь дело со старой версией Ubuntu. Откройте окно терминала и введите следующие команды.

Проверить статус службы:

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

Читайте также: