В каком файле ОС Linux хранятся соответствия ip-адресов и DNS-имен
Обновлено: 21.11.2024
Служба доменных имен (DNS) — это интернет-служба, которая сопоставляет IP-адреса и полные доменные имена (FQDN) друг с другом. Таким образом, DNS избавляет от необходимости запоминать IP-адреса. Компьютеры, на которых работает DNS, называются серверами имен. Ubuntu поставляется с BIND (Berkley Internet Naming Daemon), наиболее распространенной программой, используемой для поддержки сервера имен в Linux.
В командной строке терминала введите следующую команду для установки DNS:
Очень полезным пакетом для тестирования и устранения проблем с DNS является пакет dnsutils. Очень часто эти инструменты уже установлены, но для проверки и/или установки dnsutils введите следующее:
Существует множество способов настройки BIND9. Некоторые из наиболее распространенных конфигураций — это кэширующий сервер имен, первичный сервер и вторичный сервер.
При настройке в качестве кэширующего сервера имен BIND9 найдет ответ на запрос имени и запомнит ответ при повторном запросе домена.
В качестве основного сервера BIND9 считывает данные для зоны из файла на своем хосте и является авторитетным для этой зоны.
В качестве вторичного сервера BIND9 получает данные зоны от другого сервера имен, уполномоченного для зоны.
Обзор
Файлы конфигурации DNS хранятся в каталоге /etc/bind. Основной файл конфигурации — /etc/bind/named.conf , который в макете, предоставляемом пакетом, включает только эти файлы.
- /etc/bind/named.conf.options: глобальные параметры DNS
- /etc/bind/named.conf.local: для ваших зон
- /etc/bind/named.conf.default-zones: зоны по умолчанию, такие как localhost, его реверс и корневые ссылки
Раньше корневые серверы имен описывались в файле /etc/bind/db.root . Теперь это предоставляется файлом /usr/share/dns/root.hints, поставляемым с пакетом dns-root-data, и упоминается в файле конфигурации named.conf.default-zones выше.
Один и тот же сервер можно настроить как кэширующий сервер имен, первичный и вторичный: все зависит от обслуживаемых им зон. Сервер может быть начальным органом (SOA) для одной зоны, одновременно предоставляя вторичную службу для другой зоны. Все время предоставляя услуги кэширования для хостов в локальной сети.
Кэширующий сервер имен
Конфигурация по умолчанию действует как сервер кэширования. Просто раскомментируйте и отредактируйте /etc/bind/named.conf.options, чтобы установить IP-адреса DNS-серверов вашего провайдера:
Примечание
Замените 1.2.3.4 и 5.6.7.8 IP-адресами фактических серверов имен.
Чтобы включить новую конфигурацию, перезапустите DNS-сервер. Из командной строки терминала:
Информацию о тестировании кэширующего DNS-сервера см. в разделе dig.
Основной сервер
Файл зоны пересылки
Чтобы добавить зону DNS в BIND9, превратив BIND9 в основной сервер, сначала отредактируйте файл /etc/bind/named.conf.local:
Вы должны увеличивать серийный номер каждый раз, когда вносите изменения в файл зоны. Если вы вносите несколько изменений перед перезапуском BIND9, просто увеличьте серийный номер один раз.
Теперь вы можете добавить записи DNS в конец файла зоны. Дополнительные сведения см. в разделе Общие типы записей.
Примечание
Многие администраторы предпочитают использовать дату последнего редактирования в качестве серийного номера зоны, например 2020012100, что соответствует ггггммддсс. (где ss — серийный номер)
После внесения изменений в файл зоны необходимо перезапустить BIND9, чтобы изменения вступили в силу:
Файл обратной зоны
Теперь, когда зона настроена и имена преобразуются в IP-адреса, необходимо добавить обратную зону, чтобы DNS могла преобразовать адрес в имя.
Отредактируйте /etc/bind/named.conf.local и добавьте следующее:
Примечание
Замените 1.168.192 первыми тремя октетами сети, которую вы используете. Также назовите файл зоны /etc/bind/db.192 соответствующим образом. Он должен соответствовать первому октету вашей сети.
Теперь создайте файл /etc/bind/db.192:
После создания файла обратной зоны перезапустите BIND9:
Дополнительный сервер
После настройки основного сервера настоятельно рекомендуется использовать вторичный сервер, чтобы обеспечить доступность домена в случае, если основной сервер станет недоступен.
Во-первых, на основном сервере необходимо разрешить передачу зоны. Добавьте параметр «разрешить передачу» в примеры определений прямой и обратной зон в файле /etc/bind/named.conf.local:
Примечание
Замените 192.168.1.11 на IP-адрес вашего вторичного сервера имен.
Перезапустите BIND9 на основном сервере:
Затем на вторичном сервере установите пакет bind9 так же, как и на первичном. Затем отредактируйте /etc/bind/named.conf.local и добавьте следующие объявления для зон Forward и Reverse:
Примечание
Замените 192.168.1.10 на IP-адрес вашего основного сервера имен.
Перезапустите BIND9 на вторичном сервере:
В /var/log/syslog вы должны увидеть что-то похожее на следующее (некоторые строки были разделены, чтобы соответствовать формату этого документа):
Примечание
Примечание. Зона передается только в том случае, если Серийный номер на основной зоне больше, чем на дополнительной. Если вы хотите, чтобы ваш основной DNS-сервер уведомлял другие вторичные DNS-серверы об изменениях зоны, вы можете добавить также-notify < ipaddress; >; в /etc/bind/named.conf.local, как показано в примере ниже:
Примечание
Каталог по умолчанию для файлов неавторизованных зон — /var/cache/bind/ . Этот каталог также настроен в AppArmor, чтобы позволить демону named писать в него. Дополнительную информацию о AppArmor см. в разделе Безопасность — AppArmor.
В этом разделе рассматривается диагностика проблем с конфигурациями DNS и BIND9.
Тестирование
resolv.conf
Первым шагом в тестировании BIND9 является добавление IP-адреса сервера имен в преобразователь хостов. Первичный сервер имен должен быть настроен так же, как и другой хост для двойной проверки. Подробную информацию о добавлении адресов серверов имен к сетевым клиентам см. в разделе Конфигурация DNS-клиентов. В конце строка вашего сервера имен в /etc/resolv.conf должна указывать на 127.0.0.53, и у вас должен быть параметр поиска для вашего домена. Что-то вроде этого:
Чтобы проверить, какой DNS-сервер использует ваш локальный преобразователь, выполните:
Примечание
Вам также следует добавить IP-адрес вторичного сервера имен в конфигурацию клиента на случай, если основной станет недоступен.
Если вы установили пакет dnsutils, вы можете проверить свои настройки с помощью утилиты поиска DNS: dig:
После установки BIND9 используйте команду dig для интерфейса loopback, чтобы убедиться, что он прослушивает порт 53. В командной строке терминала:
В выводе команды вы должны увидеть строки, подобные приведенным ниже:
Если вы настроили BIND9 в качестве кэширующего сервера имен, «выкопайте» внешний домен, чтобы проверить время запроса:
Обратите внимание на время запроса в конце вывода команды:
После второго раскопа должно быть улучшение:
Теперь, чтобы продемонстрировать, как приложения используют DNS для разрешения имени хоста, используйте утилиту ping для отправки эхо-запроса ICMP:
именная контрольная зона
Отличный способ проверить файлы зон — использовать утилиту named-checkzone, установленную вместе с пакетом bind9. Эта утилита позволяет убедиться в правильности конфигурации перед перезапуском BIND9 и внесением изменений.
Чтобы проверить наш пример файла зоны пересылки, введите в командной строке следующее:
Если все настроено правильно, вы должны увидеть примерно такой результат:
Аналогично, чтобы проверить файл зоны Reverse, введите следующее:
Вывод должен быть похож на:
Примечание
Серийный номер вашего файла зоны, вероятно, будет другим.
Быстрая регистрация временных запросов
С помощью инструмента rndc вы можете быстро включать и выключать ведение журнала запросов без перезапуска службы или изменения файла конфигурации.
Чтобы включить ведение журнала запросов включить, выполните:
Точно так же, чтобы отключить его, запустите:
Журналы будут отправляться в syslog и по умолчанию отображаться в /var/log/syslog:
Примечание
Количество журналов, создаваемых при включении журнала запросов, может быть огромным!
Ведение журнала
BIND9 имеет множество доступных параметров настройки ведения журналов, но два основных – это канал и категория, которые определяют, куда направляются журналы и какая информация регистрируется. соответственно.
Если никакие параметры ведения журнала не настроены, конфигурация по умолчанию:
Давайте вместо этого настроим BIND9 на отправку отладочных сообщений, связанных с DNS-запросами, в отдельный файл.
Нам нужно настроить канал, чтобы указать, в какой файл отправлять сообщения, и категорию. В этом примере категория будет регистрировать все запросы. Отредактируйте /etc/bind/named.conf.local и добавьте следующее:
Примечание
Параметр debug может иметь значение от 1 до 3. Если уровень не указан, по умолчанию используется уровень 1.
Поскольку демон named запускается от имени пользователя bind, необходимо создать каталог /var/log/named и изменить владельца:
Теперь перезапустите BIND9, чтобы изменения вступили в силу:
Вы должны увидеть, что файл /var/log/named/query.log заполнен информацией о запросе. Это простой пример параметров ведения журнала BIND9. Подробные сведения о дополнительных параметрах см. в разделе Дополнительная информация.
Распространенные типы записей
В этом разделе рассматриваются некоторые наиболее распространенные типы записей DNS.
Запись: эта запись сопоставляет IP-адрес с именем хоста.
Запись CNAME: используется для создания псевдонима существующей записи A. Вы не можете создать запись CNAME, указывающую на другую запись CNAME.
Запись MX: используется для определения адреса электронной почты. Должен указывать на запись A, а не на CNAME .
Запись NS: используется для определения того, какие серверы обслуживают копии зоны. Он должен указывать на запись A, а не на CNAME. Здесь определяются первичный и вторичный серверы.
Дополнительная информация
DNS and BIND – популярная книга, выпущенная уже в пятом издании. Теперь также есть книга DNS и BIND на IPv6.
Система доменных имен поможет вам достичь желаемого в Интернете. Убедитесь, что вы знаете, что это такое и как его установить, настроить и протестировать.
Система доменных имен (DNS) используется для разрешения (преобразования) имен хостов в адреса интернет-протокола (IP) и наоборот. DNS-сервер, также известный как сервер имен, сопоставляет IP-адреса с именами хостов или доменными именами.
В этой статье вы изучите основы DNS, от того, как DNS получает IP-адрес и имя хоста, до концепций зон прямого и обратного просмотра. Он также покажет вам, как установить и настроить DNS, определить и отредактировать файлы зон и проверить, может ли DNS разрешить правильный адрес с помощью команд. Если вы новичок в DNS, эта статья поможет вам поиграть с ним в вашей системе, используя базовые конфигурации.
Как работает DNS
Когда клиент запрашивает информацию у сервера имен, он обычно подключается к порту 53, после чего сервер имен разрешает запрошенное имя.
Дополнительные ресурсы по Linux
Откуда DNS получает IP-адреса?
Вы можете задаться вопросом, как DNS получает IP-адрес соответствующего имени хоста или доменного имени. Как DNS выполняет поиск среди разных IP-адресов и правильно связывает ваше доменное имя? Кто хранит эти сопоставления между доменными именами и IP-адресами?
Рабочий процесс DNS показывает, как происходит взаимодействие внутри DNS и как он разрешает адреса.
Прямой и обратный поиск
Зона прямого просмотра использует имя домена для поиска IP-адресов, тогда как зона обратного просмотра использует IP-адреса для поиска имени домена.
Установить и настроить DNS
BIND – это служба сервера имен, отвечающая за преобразование доменного имени в IP-адрес на DNS-серверах на базе Linux.
Пакет BIND предоставляет указанную службу. Он считывает конфигурацию из файлов /etc/named и /etc/named.conf. После установки этого пакета вы можете приступить к настройке DNS.
Настройте файл /etc/named.conf
Сначала добавьте или измените два значения в поле параметров. Один — это адрес DNS-сервера, а другой — запрос разрешения на любой из них.
Вот значения из приведенного выше файла:
- 192.168.25.132 — адрес DNS-сервера
- любой — соответствует каждому IP-адресу
Определите прямую и обратную зоны
Определите прямую и обратную зоны в файле /etc/named.conf или /etc/named.rfc1912.zones (зоны можно определить в любом из этих файлов). В этом примере я добавляю сведения об определении зоны в файл /etc/named.rfc1912.zones.
Создать файлы прямой и обратной зоны
Вам также необходимо создать файлы прямой и обратной зон в каталоге /var/named.
Примечание. По умолчанию файл named.conf включает каталог /var/named для проверки файлов зон. Примеры файлов зон named.localhost и named.loopback создаются во время установки пакета BIND.
Добавьте IP-адрес сервера имен в /etc/resolv.conf
Во-первых, вы должны отключить обработку DNS с помощью NetworkManager, поскольку он динамически обновляет файл /etc/resolv.conf с настройками DNS из своих активных профилей подключения. Чтобы отключить это и разрешить редактирование /etc/resolv.conf вручную, вы должны создать файл (например, 90-dns-none.conf) от имени пользователя root в каталоге /etc/NetworkManager/conf.d/, который содержит следующее:
Сохраните файл и перезагрузите (перезапустите) NetworkManager.
После перезагрузки NetworkManager он не будет обновлять файл /etc/resolv.conf . Теперь вы можете вручную добавить IP-адрес сервера имен в файл /etc/resolv.conf.
[ Будьте готовы, если что-то пойдет не так. Прочтите Введение в устранение неполадок DNS. ]
Запустить/перезапустить и включить указанную службу
Если указанная служба не запущена или отключена, запустите и включите ее. Если он уже активен (работает) и вы выполнили все эти настройки, вам необходимо перезапустить службу, чтобы внести изменения.
Проверьте разрешение имени DNS
Вы установили пакет BIND, настроили именованные файлы, создали зоны поиска и перезапустили службу, чтобы настройки вступили в силу.Теперь используйте команды nslookup и dig, чтобы проверить, правильно ли работает DNS, и убедитесь, что вы получаете ожидаемые результаты.
- nslookup – это программа для запроса серверов доменных имен в Интернете.
- dig — это инструмент для опроса DNS-серверов. Он выполняет поиск DNS и отображает ответы, возвращенные сервером имен.
Запрос с помощью nslookup
Запрос с копанием
[ Сеть выходит из-под контроля? Ознакомьтесь с бесплатной книгой «Сетевая автоматизация для всех» от Red Hat. ]
Подведение итогов
Из этой статьи вы узнали, что такое DNS и как он работает. Кроме того, теперь вы знаете, что такое зоны прямого и обратного просмотра и как они работают. Вы также узнали, как установить пакет BIND, который отвечает за настройку DNS в системе и настройку именованных файлов и зон поиска. Наконец, вы узнали две команды, nslookup и dig , для запроса разрешений DNS.
8.3. Установка имени хоста и настройка службы имен
Цель присвоения имен IP-номерам – облегчить их запоминание. На самом деле IP-адрес идентифицирует сетевой интерфейс, связанный с устройством, например сетевой картой. Поскольку каждая машина может иметь несколько сетевых карт и несколько интерфейсов на каждой плате, один компьютер может иметь несколько имен в системе доменных имен.
Однако каждая машина идентифицируется по основному (или «каноническому») имени, которое хранится в файле /etc/hostname и передается ядру Linux с помощью сценариев инициализации с помощью команды hostname. Текущее значение доступно в виртуальной файловой системе, и вы можете получить его с помощью команды cat /proc/sys/kernel/hostname.
НАЗАД К ОСНОВАМ /proc/ и /sys/ , виртуальные файловые системы
Файловые деревья /proc/ и /sys/ создаются «виртуальными» файловыми системами. Это практический способ восстановления информации из ядра (посредством перечисления виртуальных файлов) и передачи ее ему (путем записи в виртуальные файлы).
В частности,/sys/ предназначен для обеспечения доступа к внутренним объектам ядра, особенно к тем, которые представляют различные устройства в системе. Таким образом, ядро может обмениваться различной информацией: состояние каждого устройства (например, находится ли оно в режиме энергосбережения), является ли оно съемным устройством и т. д. Обратите внимание, что /sys/ существует только с версии ядра. 2.6. /proc/ описывает текущее состояние ядра: файлы в этом каталоге содержат информацию о процессах, запущенных в системе и ее оборудовании.
Удивительно, но доменное имя не управляется таким же образом, а происходит от полного имени машины, полученного посредством разрешения имен. Вы можете изменить его в файле /etc/hosts; просто напишите там полное имя машины в начале списка имен, связанных с адресом машины, как в следующем примере:
8.3.1. Разрешение имени
Механизм разрешения имен в Linux является модульным и может использовать различные источники информации, объявленные в файле /etc/nsswitch.conf. Запись, которая включает разрешение имен хостов, называется hosts. По умолчанию он содержит файлы dns , что означает, что система сначала обращается к файлу /etc/hosts, а затем к DNS-серверам. Другими возможными источниками являются серверы NIS/NIS+ или LDAP.
ПРИМЕЧАНИЕ NSS и DNS
Учтите, что команды, специально предназначенные для запроса DNS (особенно host ), не используют стандартный механизм разрешения имен (NSS). Как следствие, они не учитывают /etc/nsswitch.conf и, следовательно, не учитывают /etc/hosts.
8.3.1.1. Настройка DNS-серверов
Для доступа к информации DNS сервер DNS должен быть доступен для ретрансляции запросов. У Falcot Corp есть свои собственные, но отдельные пользователи с большей вероятностью будут использовать DNS-серверы, предоставленные их интернет-провайдером.
Используемые DNS-серверы указаны в файле /etc/resolv.conf, по одному в строке, с ключевым словом nameserver перед IP-адресом, как в следующем примере:
Обратите внимание, что файл /etc/resolv.conf может обрабатываться автоматически (и перезаписываться), когда сеть управляется NetworkManager или настраивается через DHCP.
8.3.1.2. Файл /etc/hosts
Если в локальной сети нет сервера имен, все же можно создать небольшую таблицу, отображающую IP-адреса и имена машин в файле /etc/hosts, который обычно зарезервирован для станций локальной сети. Синтаксис этого файла, как описано в hosts (5), очень прост: каждая строка указывает конкретный IP-адрес, за которым следует список любых связанных имен (первое из них является «полностью уточненным», то есть включает доменное имя). р>
Этот файл доступен даже во время перебоев в работе сети или когда DNS-серверы недоступны, но он будет действительно полезен только в том случае, если он продублирован на всех компьютерах в сети. Малейшее изменение в переписке потребует обновления файла везде. Вот почему /etc/hosts обычно содержит только самые важные записи.
Этого файла будет достаточно для небольшой сети, не подключенной к Интернету, но с 5 и более машинами, рекомендуется установить правильный DNS-сервер.
СОВЕТ Обход DNS
Поскольку приложения проверяют файл /etc/hosts перед запросом DNS, можно включить в него информацию, отличную от той, которую возвращает DNS, и, следовательно, обойти обычное разрешение имен на основе DNS.
Это позволяет в случае, если изменения DNS еще не были распространены, проверить доступ к веб-сайту с предполагаемым именем, даже если это имя еще не сопоставлено должным образом с правильным IP-адресом.
Другое возможное использование — перенаправление трафика, предназначенного для определенного хоста, на локальный хост, что предотвращает любую связь с данным хостом. Например, имена хостов серверов, предназначенных для показа рекламы, могут быть перенаправлены, что позволит обойти эту рекламу, что сделает навигацию более плавной и менее отвлекающей.
Файл hosts используется для сопоставления доменных имен (имен хостов) с IP-адресами. Это обычный текстовый файл, используемый всеми операционными системами, включая Linux, Windows и macOS.
Файл hosts имеет приоритет над DNS. Когда вы вводите доменное имя веб-сайта, который хотите посетить, доменное имя должно быть переведено в соответствующий IP-адрес. Операционная система сначала проверяет свой файл hosts на наличие соответствующего домена, и если для домена нет записи, она будет запрашивать настроенные DNS-серверы для разрешения указанного доменного имени. Это влияет только на компьютер, на котором внесены изменения, а не на то, как домен разрешается во всем мире.
Использование файла hosts для сопоставления домена с IP-адресом особенно полезно, когда вы хотите протестировать свой веб-сайт без изменения настроек DNS домена. Например, вы переносите свой веб-сайт на новый сервер и хотите убедиться, что он полностью функционален, прежде чем указывать домен на новый сервер. Файл hosts также можно использовать для блокировки веб-сайтов на вашем компьютере.
В этой статье мы предоставим инструкции о том, как изменить файл hosts в Linux, macOS и Windows.
Записи в файле hosts имеют следующий формат:
Чтобы добавить запись в файл hosts, просто откройте файл в текстовом редакторе. Ниже приведен пример файла hosts:
Изменения в файле hosts вступают в силу немедленно, за исключением случаев, когда записи DNS кэшируются приложениями.
Чтобы отменить изменения, просто откройте файл и удалите добавленные строки.
В Linux полный путь к файлу — /etc/hosts .
Приведенные ниже инструкции действительны для всех дистрибутивов Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint:
В окне терминала откройте файл hosts в своем любимом текстовом редакторе:
При появлении запроса введите свой пароль sudo.
Прокрутите файл до конца и добавьте новые записи:
Сохраните изменения.
В Windows полный путь к файлу — c:\Windows\System32\Drivers\etc\hosts. Приведенные ниже инструкции действительны для Windows 10 и Windows 8.
Нажмите клавишу Windows и введите Блокнот в поле поиска.
Щелкните правой кнопкой мыши значок Блокнота и выберите "Запуск от имени администратора".
В Блокноте нажмите «Файл», затем «Открыть». В поле Имя файла вставьте c:\Windows\System32\drivers\etc\hosts .
Прокрутите файл до конца и добавьте новые записи:
Сохраните изменения, нажав Файл > Сохранить .
В macOS полный путь к файлу — /etc/hosts . Приведенные ниже инструкции действительны для всех версий macOS.
В окне терминала откройте файл hosts в своем любимом текстовом редакторе:
При появлении запроса введите пароль администратора.
Прокрутите файл до конца и добавьте новые записи:
Сохраните изменения и очистите кеш DNS:
Файл hosts позволяет вам установить IP-адрес данного доменного имени.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
сообщить об этом объявлении
Читайте также: