Введение
DNS, или система доменных имен, зачастую очень трудная часть изучения настройки веб-сайтов и серверов. Понимание того, как работает DNS, поможет вам диагностировать проблемы с настройкой доступа к вашим веб-сайтам и позволит расширить понимание того, что происходит за кадром.
В этом руководстве мы обсудим некоторые фундаментальные понятия системы доменных имен, которые помогут вам разобраться с настройкой вашей DNS. После знакомства с этим руководством вы научитесь настраивать собственное доменное имя или свой собственный DNS-сервер.
Прежде чем мы приступим к настройке серверов для преобразования вашего домена или настройке наших доменов в панели управления, давайте познакомимся с некоторыми основными понятиями о работе DNS.
2019
ICANN обеспокоена угрозой безопасности ключевых элементов интернета
Ключевые элементы инфраструктуры мирового интернета находятся под угрозой масштабных кибератак. Об этом сообщили представители корпорации ICANN информагентству Agence France-Presse (AFP) 22 февраля.
Атаки начались еще в 2017 году, однако стали вызывать обеспокоенность у исследователей безопасности только сейчас, в связи с чем и было собрано экстренное заседание. Злоумышленники атакуют DNS, что, по словам экспертов ICANN, потенциально может позволить им перехватывать трафик, тайно перенаправлять его в другое место и подделывать критически важные сайты.
По данным старшего аналитика FireEye в области кибершпионажа Бена Рида (Ben Read), атаки под названием DNSpionage начались в 2017 году. Атакующие в основном перехватывают учетные данные регистраторов доменных имен и интернет-провайдеров в странах Среднего Востока. За атаками предположительно стоят иранские хакеры, действующие в интересах иранского правительства.
С 1 февраля 2019 года многие сайты в интернете станут недоступными
Ряд DNS-сервисов и производителей DNS-серверов объявили в январе 2019 года о проведении дня корректной обработки DNS-запросов или так называемого «Дня флага» (Flag Day). В этот день, намеченный на 1 февраля 2019 года, участники инициативы откажутся от реализации обходных путей для авторитативных DNS-серверов без поддержки протокола EDNS. К указанной дате каждый участник инициативы реализует соответствующие изменения в определенной версии своего ПО.
В случае с BIND 9 обходные пути будут закрыты в версии BIND 9.14.0, запланированной к выпуску на 1 февраля. Нововведение уже доступно для ветки 9.13, но не будет портировано на 9.11 или более ранние ветки BIND, поскольку, согласно политике компании, в стабильные версии с продленной поддержкой изменения не вносятся. В авторитативном (первичном) DNS-сервере BIND поддержка протокола EDNS уже реализована.
С 1 февраля домены, обслуживающиеся несовместимыми с EDNS DNS-серверами, могут стать недоступными. Компании, чьи зоны DNS обслуживаются несовместимыми серверами, должны понимать, что их присутствие в интернете начнет существенно сокращаться и может сойти на нет, поскольку интернет-провайдеры и другие организации обновят свои DNS-резолверы. После обновления резолверов до версии без обходных путей некоторые сайты и почтовые серверы могут оказаться недоступными.
Операторам авторитативных DNS-серверов рекомендуется проверить свои системы на совместимость с EDNS на сайте https://dnsflagday.net/ . Пользователи BIND 9 могут не беспокоиться, поскольку, как уже упоминалось выше, DNS-сервер уже совместим с EDNS.
Что проверить перед регистрацией
У любого регистратора домена предусмотрена расширенная проверка выбранных названий через Whois-сервис, который показывает основные сведения о доменном имени (свободен домен или занят, кто администратор и регистратор, каков период регистрации). Зарегистрировать доменное имя можно, если его не занял другой владелец.
Можно бесплатно использовать Whois-сервис для поиска свободных доменов. Например, проверим у регистратора REG.RU адрес vk.com.
Укажем в поисковой строке адрес и кликнем «Проверить». Спустя несколько секунд увидим ответ системы — «Домен занят».
Ниже можно просмотреть основную информацию о дате и месте регистрации, регистраторе, администраторе и их контактных данных. Эта информация может пригодиться, если вы захотите пожаловаться регистратору на неправомерное использование домена или обсудить с администратором возможность выкупа адреса.
Если выбранный домен уже занят, можно продолжить проверку других вариантов, пока не найдется свободный адрес.
Также Whois-сервисы позволяют проверять историю выбранного домена: кто был прежним регистратором, когда началась и закончилась предыдущая регистрация. Проверка истории домена — платная услуга.
При проверке истории через Whois доступны разные типы запросов
От истории выбранного доменного имени зависит, стоит его покупать или нет. Так возраст домена значим при ранжировании сайтов — поисковики считают старые ресурсы более авторитетными и их проще вывести в топ поисковой выдачи.
Если прежде адрес попадал под фильтры поисковых систем, это может плохо отразиться на SEO. Придётся выводить доменное имя из-под фильтра, что потребует немало времени и денег.
Вы также можете проверить содержание старого сайта, поискав его в веб-архивах (к примеру в Web-archive). На сохранённых копиях веб-страниц посмотрите контент, дизайн, тематику. Если доменное имя использовалось для сайта сомнительного содержания или компании с плохой репутацией, лучше его не приобретать.
Сервис проверки доступности доменов KnowEm
Рекурсия
Рассмотрим на примере работу всей системы.
Предположим, мы набрали в браузере адрес ru.wikipedia.org. Браузер спрашивает у сервера DNS: «какой IP-адрес у ru.wikipedia.org»? Однако, сервер DNS может ничего не знать не только о запрошенном имени, но даже обо всём домене wikipedia.org. В этом случае имеет место рекурсия: сервер обращается к корневому серверу — например, 198.41.0.4. Этот сервер сообщает — «У меня нет информации о данном адресе, но я знаю, что 204.74.112.1 является авторитетным для зоны org.» Тогда сервер DNS направляет свой запрос к 204.74.112.1, но тот отвечает «У меня нет информации о данном сервере, но я знаю, что 207.142.131.234 является авторитетным для зоны wikipedia.org.» Наконец, тот же запрос отправляется к третьему DNS-серверу и получает ответ — IP-адрес, который и передаётся клиенту — браузеру.
В данном случае при разрешении имени, то есть в процессе поиска IP по имени:
- браузер отправил известному ему DNS-серверу т. н. рекурсивный запрос — в ответ на такой тип запроса сервер обязан вернуть «готовый результат», то есть IP-адрес, либо сообщить об ошибке;
- DNS-сервер, получив запрос от клиента, последовательно отправлял итеративные запросы, на которые получал от других DNS-серверов ответы, пока не получил авторитетный ответ от сервера, ответственного за запрошенную зону.
В принципе, запрошенный сервер, мог бы передать рекурсивный запрос «вышестоящему» DNS-серверу и дождаться готового ответа.
Запрос на определение имени обычно не идёт дальше кэша DNS, который сохраняет ответы на запросы, проходившие через него ранее. Вместе с ответом приходит информация о том, сколько времени разрешается хранить эту запись в кэше.
Что такое файл Linux Hosts?
Файл hosts — это простой текстовый файл, который все операционные системы используют для перевода имен хостов (также называемых веб-адресами или URL-адресами) в IP-адреса. Когда вы вводите имя хоста, такое как wikipedia.org, ваша система ищет файл хостов, чтобы получить IP-адрес, необходимый для подключения к соответствующему серверу.
Если вы откроете файл hosts, вы быстро заметите, что в нем нет каталога всего Интернета. Вместо этого может быть только пара строк и все. Что дает?
Оказывается, ваша система сначала проверит файл hosts, прежде чем искать сайт на DNS-серверах, определенных в настройках вашей сети.
5 лучших провайдеров динамического DNS, которые вы можете найти бесплатно
5 лучших провайдеров динамического DNS, которые вы можете найти бесплатноС уходом DynDNS, вот лучшие бесплатные провайдеры динамических DNS, сервисы и альтернативы DDNS.
Прочитайте больше
(обычно DNS-серверы вашего провайдера).
Это означает, что вы можете использовать файл hosts, чтобы добавить к тому, что DNS-серверы не могут предоставить (например, псевдонимы для местоположений в вашей локальной сети, что в противном случае возможно только в том случае, если в вашей локальной сети настроен DNS-сервер) или переопределите IP-адреса, которые обычно предоставляют ваши DNS-серверы.
Например, если вы попросите wikipedia.org, DNS-серверы вернут IP-адрес Википедии на ваш компьютер. Но если вы хотите заблокировать Википедию на этом компьютере, вы можете добавить в файл hosts запись о том, что wikipedia.org указывает на какой-то другой IP-адрес, который отличается от фактического IP-адреса Википедии.
Есть много других вещей, которые вы можете сделать с файлом hosts, но это лишь некоторые основные примеры, и другие варианты использования сильно зависят от ваших потребностей.
Создание резервной копии файла Hosts
Если вы планируете редактировать файл Hosts, рекомендуется заранее создать резервную копию оригинала. Таким образом, если вы вносите изменения в файл и хотите вернуться к тому, что было до редактирования, вам не нужно переустанавливать систему.
Чтобы сделать резервную копию файла Hosts, начните с входа в папку / etc / с помощью приведенной ниже команды CD в окне терминала.
cd /etc/
Внутри папки / etc / сделайте копию файла Hosts с помощью команды cp. Скопируйте файл в свою домашнюю папку (~) как «Hosts.bak».
cp hosts ~/hosts.bak
После того, как вы сделали резервную копию файла, закройте терминал. Храните файл Hosts.bak на запасном жестком диске, флэш-накопителе или в учетной записи Dropbox.
Как восстановить резервную копию
Если вы внесли изменения в файлы Hosts и вам нужно их восстановить, вот как это сделать. Сначала откройте окно терминала. Затем, открыв терминал, войдите в область, где сохранен ваш файл «hosts.bak».
Например, если вы сохранили свой файл «hosts.bak» в / home / USERNAME / Documents, вы должны сделать следующее, чтобы получить к нему доступ.
cd ~/Documents/
Когда терминал окажется там, где находится файл hosts.bak, войдите в учетную запись root с помощью sudo -s.
sudo -s
Удалите существующий файл с помощью команды rm.
rm hosts
После удаления исходного файла хоста восстановите резервную копию на свой компьютер с помощью команды cp. Использование cp позволит вам создать копию файла резервной копии и поместить ее в / etc /, сохранив резервную копию там, где она хранится.
cp hosts.bak /etc/
Когда процесс копирования будет завершен, исходный хост-файл будет восстановлен. Отсюда перезагрузите компьютер с Linux. Когда ваш компьютер с Linux снова включится, вы будете использовать исходные хосты в файле Hosts.
Файл /etc/resolv.conf
Для того чтобы программа-определитель могла выполнять свою задачу ей должен быть
предоставлен доступ к серверам доменных имен. В фале resolv.conf
содержатся адреса серверов имен, к которым имеет доступ данная система. В этом файле можно создавать
три типа записей, каждая из которых предваряется одним из трех ключевых слов: domain,
nameserver, search. В записи domain вводится доменное имя локальной системы. В записи
search приводится список доменов на тот случай, если задается только хост-имя. Если к какой-либо
системе пользователь обращается часто, он может ввести имя ее домена в запись search, а затем
использовать в качестве адреса только хост-имя. Определитель попытается найти полное доменное
имя по имени домена, указанному в записи search.
После записей search идут записи nameserver, если таковые имеются. Для каждого
сервера имен, к которому имеет доступ данная система, вводиься ключевое слово nameserver
и IP-адрес. Таких серверов может быть несколько, и порядок их следования в списке очень
важен. Во многих сетях имеется основной сервер имен и несколько вспомогательных. Основной сервер
должен запрашиваться первым. Для этого его IP-адрес должен быть введен в первую запись nameserver.
Ниже приведен пример файла resolv.conf. Домен хост-
компьютера berkeley.edu. IP-адреса серверов имен этого домена указаны в записях
name server. Запись search позволяет использовать в качестве адреса только xoct-имя для компьютеров
в домене unc.edu. Например, чтобы обратиться системе sunsite.unc.edu
, пользователь должен ввести в качестве адреса толькй хост-имя, sunsite.
# resolv.conf file domain berkeley.edu search unc.edu nameserver 204.199.87.2 nameserver 204.199.77.2
Как добавить сайты в файл Hosts
В файле hosts каждая запись имеет свою собственную строку. Синтаксис прост. Введите IP-адрес, на который вы хотите перевести имя хоста, нажмите клавишу Tab на клавиатуре, а затем введите имя хоста.
Например, чтобы заблокировать Википедию, вы должны ввести (не забывая использовать клавишу Tab, а не пробел):
– это петлевой IP-адрес, который всегда будет указывать на вашу собственную систему. Поскольку Интернет не хранится на вашем компьютере, ваш браузер скажет, что сайт не может быть найден. Теперь он эффективно заблокирован.
Если вы чувствуете, что терминал запугивает вас, ознакомьтесь с приложением Linux Mint Domain Blocker (также известным как mintnanny). Он добавит записи в файл hosts, которые указывают указанные вами имена хостов на 127.0.0.1. Но чтобы сделать что-то еще, вам все равно придется вносить изменения в текстовом редакторе.
Скачать: Domain Blocker
Поиск ваших разрешенных хостов
Вы, вероятно, приземлились здесь в поисках способа увидеть хосты (другие компьютеры), которым разрешен доступ к вашей системе Linux . Ну, если вы уже не установили ограничения, это, вероятно, любой компьютер, который пытается по умолчанию.
На самом деле, это не совсем так. Без каких-либо правил, определенных в файле /etc/hosts.allow или /etc/hosts.deny, ваш компьютер будет выдавать подключения к соответствующим приложениям. Таким образом, если кто-то попытается подключиться через SSH , соединение будет доставлено в вашу систему Linux, где оно будет передано SSH для входа в систему. Если правильные учетные данные не предоставлены, соединение будет отклонено.
Если определенные узлы разрешены или запрещены, Linux сначала проверит эти правила, чтобы определить, следует ли разрешить входящий запрос. Затем он будет следовать той же схеме, что и раньше.
Вы можете проверить разрешенные хосты, перечислив содержимое файла /etc/hosts.allow.
Если вы ничего не видите, ваша система, скорее всего, пропустит любое соединение.
Спецификация BIND
Как уже отмечалось, стандартом de facto в
описании состава файлов DNS и порядка их
загрузки на сервере имен является
спецификация BIND. Она поддерживается во всех
Unix-системах, в NetWare (программные продукты
Novell NFS Services, FTP Services, NetWare/IP) и ряде других
систем.
Согласно данной спецификации существует
файл загрузки базы DNS. В Unix-системах обычно
это файл /etc/named.boot, в NetWare — SYS:ETC\NAMED.CFG, который
загру-жается при запуске сервиса DNS на
сервере имен.
Основное назначение файла загрузки —
указывать, где расположены файлы базы DNS, а
также адреса серверов имен. При любом
изменении как файла загрузки, так и файлов
базы DNS сервис DNS необходимо перезапускать.
Файл загрузки базы DNS является текстовым и
состоит из отдельных записей. Наиболее
часто используются следующие записи:
1. directory <Path> Устанавливает каталог
хранения файлов базы DNS, если не указаны
абсолютные пути к файлам. Пример: directory /etc
2. domain <Domain> Определяет домен по
умолчанию для данного сервера имен. Пример:
domain komtek.dp.ua
3. primary <Domain> <FileName> Показывает, что
сервер имен является первичным для домена
<Domain> и что база домена хранится в файле
<FileName>. Пример: primary komtek.dp.ua /usr/named.data
4. secondary <Domain> <IP-1> <FileName>
Указывает, что данный сервер имен является
вторичным для домена <Domain>. Первичные
серверы расположены по IP-адресам <IP-1>,
<IP-2> и т. д. Данный вторичный сервер
запрашивает по порядку первичные серверы и
копирует полученную с первого ответившего
первичного сервера информацию в файл <FileName>.
Пример: secondary komtek.dp.ua 192.168.1.3 named.bak
5. cache <Domain> <FileName> Указывает, что
данный сервер является кэш-сервером имен
для домена <Domain>. Параметры кэш-сервера (прежде
всего адреса и имена серверов имен
корневого домена) считываются из файла <FileName>.
Пример: cache . named.ca
6. Строка, начинающаяся с символа «;»,
считается комментарием. Кстати, для
обозначения полного доменного имени в
файле загрузки ставить точку в конце имени
не обязательно: здесь все имена считаются
полными.
How to Edit Hosts File in Windows
Step 1: Open Notepad as an Administrator
You’ll need administrator privileges for this operation.
- Click the Windows button and type “notepad.” Let the search feature find the Notepad application.
- Right-click the Notepad app, then click Run as administrator.
- Windows User Account Control should pop up asking, “Do you want to allow this app to make changes to your device?” Click Yes.
Step 2: Open the Windows Hosts File
- In Notepad, click File> Open
- Navigate to c:windowssystem32driversetc
- In the lower-right corner, just above the Open button, click the drop-down menu to change the file type to All Files.
- Select “hosts” and click Open.
Step 3: Edit the File
The Windows hosts file is that it gives you a brief explanation of how to write a new line. Here’s a brief breakdown:
The first set of four (4) digits is the IP address you’re mapping. This could be the internal IP address of a server on the network, or it could be the IP address of a website.
The second label is the name you want to be able to type in a browser to access the server at the IP address you just specified.
Once you’re finished making your changes, save the file (File > Save) and exit.
If you make an edit to the hosts file and something stops working, you can tell Windows to ignore any line by putting a # sign at the beginning of that line.
It would look like:
Редактирование файла Hosts
Чтобы отредактировать файл Hosts, вам нужно понять, как он работает. У каждой записи есть IP-адрес и имя хоста
Просмотрите файл в текстовом редакторе Nano и обратите внимание на строки внутри
Например, строка в файле Hosts может выглядеть так, как показано ниже.
192.168.1.205 my.hostname
Если вы хотите добавить новые строки в файл Hosts, создайте новую строку внизу и введите IP-адрес и имя хоста. Затем сохраните изменения в текстовом редакторе Nano, нажав Ctrl + O на клавиатуре.
Не стесняйтесь добавлять столько новых строк, сколько хотите, в файл хоста. Когда вы закончите процесс редактирования, нажмите комбинацию кнопок Crl + X, чтобы выйти из текстового редактора Nano.
Типы записей DNS-сервера
Одному домену могут подходить несколько сетевых адресов, например, интернет-сайт и почтовый сервер. Более того, каждое доменное имя содержит один или несколько поддоменов.
Все соответствия домена и его IP-адресов хранятся в файле на DNS-сервере, содержимое которого называется DNS-зона. Чтобы внести информацию в систему DNS, необходимо прописать ресурсные записи.
Различают несколько ключевых типов ресурсных записей, информация о которых хранится на DNS-сервере:
- А — адрес веб-ресурса, который соответствует введенному имени домена.
- MX — адрес почтового сервера.
- CNAME — указание привязки аналога к собственному доменному имени. Чаще всего используется для прикрепления поддомена. Например, можно привязать веб-адрес www.site.ru к фактическому сайту для домена site.ru.
- NS — адрес DNS-сервера, отвечающего за содержание прочих ресурсных записей.
- TXT — любая текстовая информация о домене.
- SPF — данные с указанием списка серверов, которым позволено отправлять письма от имени указанного домена.
- SOA — исходная запись зоны, в которой указаны сведения о сервере, содержащем образцовую информацию о доменном имени.
Удаленный компьютер доступа через псевдоним
Предположим, что нам определили местоположение сервера в локальной сети, к которой мы хотим получить доступ. Мы обычно должны вводить IP сервера для доступа к нему, если это не было определено на нашем локальном DNS. Один способ постараться не вводить IP, снова и снова, состоит в том, чтобы присвоить псевдоним серверу в файле hosts следующим образом:
192.168.1.10 myserver
IP соответствует местоположению сервера, к которому мы хотим получить доступ, и myserver является новым псевдонимом, который мы хотим использовать.
Теперь, когда мы сохранили файл и тип myserver в строке поиска, мы будем перенаправлены к нашему удаленному серверу.
Мы узнали, что путем внесения очень простых изменений в файл hosts, можем настроить и таким образом перенаправить сетевой трафик согласно нашим потребностям. Мы можем также избавиться от сетевой атаки или розыгрыша путем восстановления файла hosts к его значению по умолчанию.
Сервисы DNS в AIX
Все сервисы доменного именования
полностью реализованы в AIX. Поддерживаются
следующие типы серверов имен:
1. Первичный сервер имен;
2. Вторичный сервер имен;
3. Сервер «только для кэширования»;
4. Сервер Forwarder;
5. Удаленный сервер.
Клиент DNS в AIX, gethostbyaddr() и gethostbyname(), пытается
определить имена ис-пользуя следующую
процедуру:
Если файл /etc/resolv.conf не существует, клиент
DNS считает, что в сети используется плоская
система именования. Тогда он использует для
определения имен файл /etc/hosts.
В обратном случае, клиент DNS считает
локальную сеть доменной сетью и пытается
использовать для определения имени
нижеследующие источники в показанном ниже
порядке:
1. Сервер DNS;
2. Локальный файл /etc/hosts.
Функции сервера имен в AIX выполняет демон named.
Он контролируется посредством AIX SRC (system
resource control). Этот демон может стартовать
автоматически при каждом перезапуске
системы используя команду smit stnamed или если
будет отредактирован файл rc.tcpip убрав
комментарий в сроке #start /etc/named «$src_running»
Демон named стартует также при команде startsrc -s
named.
Хост AIX конфигурируется для использования
сервера имен используя следующие шаги:
1. Создайте файл /etc/resolv.conf включив в него
имя домена и адреса до 16-ти серверов имен.
Например:
domain komtek.dp.ua nameserver 192.168.1.65 nameserver 192.168.1.194
Порядок записей серверов имен имеет
значение для определения порядка вызова
серверов: сначала самый первый сервер имен
из списка, далее второй и т. д.
Обычно первым указывают ближайший
вторичный сервер имен данного домена, а
затем — первичный. Это позволяет снизить
нагрузку на первичный сервер.
Если указанный первым в списке серверов
имен не работает, то пройдет заметный
промежуток времени (до нескольких секунд),
прежде чем клиент DNS обратится ко второму
серверу.
2. Создайте файл /etc/named.boot для определения
имени и типа локального демона named.
3. Создайте файлы /etc/named.* для определения
требуемых для демона данных. Формат этих
файлов должен соответствовать формата
записей стандартных ресурсов (Standard Resource Record
Format).
Демон named в AIX также поддерживает записи
ресурсов для почты типа MB (mailbox domain name), MR (mail
rename domain name), MG (mail group member), MINFO (mailbox or mail list
information) и MX (mail exchange).
Приложения пользователя AIX/6000 включает в
себя программы host и nslookup. В AIX/6000
также можно воспользоваться программой dig
для запросов к серверам имен.
Associating Host Names And IP Addresses
For each host a single line should be present with the following information:
IP_address canonical_hostname
Fields of the entry are separated by any whitespace (spaces or tabs). The first field is the numeric IP address to be used for all the host names on this entry. Either an IPv4 address (10.1.2.3), an IPv6 address (2001:0db8:0000:0000:0000:0000:1428:57ab), or an IPv6 abbreviation (::1) may be used, depending on your requirements.
After the IP address, remaining tokens specify the locally-known hostnames associated with that IP address. By convention, the first name after the IP address is the canonical or fully-qualified domain name. An example of a canonical name would be server.example.com; this is the official name of the host.
Any remaining names defined for the IP address are aliases or alternate names for the official host name. For example, suppose that one of the duties assigned to server.example.com is to be the corporate FTP site. A suitable alias might then be myftp.example.com and this name could be added to the /etc/hosts entry after the canonical name. Many times, an alias is simply the host name, without any domain suffix. For example:
192.168.10.12 server.example.com myftp.example.com myhost myftp
The advantage to listing the canonical host name as the first definition on the line is that IP-to-hostname conversion (similar to reverse DNS lookups) usually display only the first name found; convention uses the canonical name for this. In our example, the command:
$ ping myftp PING myhost.example.com (192.168.10.12) 56(84) bytes of data. 64 bytes from myhost.example.com (192.168.10.12): icmp_seq=1 ttl=64 time=0.023 ms 64 bytes from myhost.example.com (192.168.10.12): icmp_seq=2 ttl=64 time=0.028 ms 64 bytes from myhost.example.com (192.168.10.12): icmp_seq=3 ttl=64 time=0.028 ms
Note that we pinged myftp but results come from host myhost: this is a reliable hint that you are addressing an alias, not the actual host.
Ключевые характеристики DNS
DNS обладает следующими характеристиками:
- Распределённость хранения информации. Каждый узел сети в обязательном порядке должен хранить только те данные, которые входят в его зону ответственности и (возможно) адреса корневых DNS-серверов.
- Кеширование информации. Узел может хранить некоторое количество данных не из своей зоны ответственности для уменьшения нагрузки на сеть.
- Иерархическая структура, в которой все узлы объединены в дерево, и каждый узел может или самостоятельно определять работу нижестоящих узлов, или делегировать (передавать) их другим узлам.
- Резервирование. За хранение и обслуживание своих узлов (зон) отвечают (обычно) несколько серверов, разделённые как физически, так и логически, что обеспечивает сохранность данных и продолжение работы даже в случае сбоя одного из узлов.
DNS важна для работы Интернета, ибо для соединения с узлом необходима информация о его IP-адресе, а для людей проще запоминать буквенные (обычно осмысленные) адреса, чем последовательность цифр IP-адреса. В некоторых случаях это позволяет использовать виртуальные серверы, например, HTTP-серверы, различая их по имени запроса. Первоначально преобразование между доменными и IP-адресами производилось с использованием специального текстового файла HOSTS, который составлялся централизованно и обновлялся на каждой из машин сети вручную. С ростом Сети возникла необходимость в эффективном, автоматизированном механизме, которым и стала DNS.
DNS была разработана Полом Мокапетрисом в 1983 году; оригинальное описание механизмов работы описано в RFC 882 и RFC 883. В 1987 публикация RFC 1034 и RFC 1035 изменили спецификацию DNS и отменили RFC 882 и RFC 883 как устаревшие. Некоторые новые RFC дополнили и расширили возможности базовых протоколов.
How to Edit Your Hosts File on Linux, Windows, and macOS
25 Мая 2020
|
Терминал
В этом руководстве мы расскажем, как изменить файл hosts в Linux, macOS и Windows.
Файл hosts используется для сопоставления доменных имен (имен хостов) с IP-адресами. Это простой текстовый файл, используемый всеми операционными системами, включая Linux, Windows и macOS.
Файл hosts имеет приоритет над DNS. Когда вы вводите доменное имя веб-сайта, который вы хотите посетить, доменное имя должно быть преобразовано в соответствующий IP-адрес. Операционная система сначала проверяет свой файл hosts на наличие соответствующего домена, и, если запись для домена отсутствует, она запрашивает у настроенных DNS-серверов разрешение указанного имени домена. Это влияет только на компьютер, на котором вносятся изменения, а не на то, как домен разрешается во всем мире.
Использование файла hosts для сопоставления домена с IP-адресом особенно полезно, когда вы хотите протестировать свой веб-сайт без изменения настроек DNS домена. Например, вы переносите свой веб-сайт на новый сервер и хотите проверить его работоспособность, прежде чем указывать домен на новый сервер. Файл hosts также можно использовать для блокировки веб-сайтов на вашем компьютере.
Записи в файле hosts имеют следующий формат:
IP-адрес и доменные имена должны быть разделены хотя бы одним пробелом или табуляцией. Строки, начинающиеся с, являются комментариями и игнорируются.
Чтобы добавить запись в файл hosts, просто откройте файл в текстовом редакторе. Ниже приведен пример файла hosts:
Изменения в файле hosts вступают в силу немедленно, за исключением случаев, когда записи DNS кэшируются приложениями.
Чтобы отменить изменения, просто откройте файл и удалите добавленные вами строки.
Изменить файл хостов в Linux
Приведенные ниже инструкции действительны для всех дистрибутивов Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint:
-
В окне терминала откройте файл hosts с помощью вашего любимого текстового редактора :
При появлении запроса введите свой пароль sudo.
-
Прокрутите вниз до конца файла и добавьте новые записи:
-
Сохраните изменения.
Изменить файл хостов в Windows
В Windows полный путь к файлу . Приведенные ниже инструкции действительны для Windows 10 и Windows 8.
-
Нажмите клавишу Windows и введите Блокнот в поле поиска.
-
Щелкните правой кнопкой мыши значок «Блокнот» и выберите «Запуск от имени администратора».
-
В Блокноте нажмите Файл, затем Открыть. В поле Имя файла вставьте .
-
Прокрутите вниз до конца файла и добавьте новые записи:
-
Сохраните изменения, нажав > .
Изменить файл хостов в macOS
В macOS полный путь к файлу . Приведенные ниже инструкции действительны для всех версий MacOS.
-
В окне терминала откройте файл hosts с помощью вашего любимого текстового редактора:
При появлении запроса введите свой административный пароль.
-
Прокрутите вниз до конца файла и добавьте новые записи:
-
Сохраните изменения и очистите кэш DNS:
Файл hosts позволяет вам установить IP-адрес данного доменного имени.
Узоры
Язык управления доступом реализует следующие шаблоны:
Строка, начинающаяся с символа `. ‘ персонаж. Имя хоста сопоставляется, если последние компоненты его имени соответствуют указанному шаблону. Например, шаблон `.tue.nl ‘соответствует имени узла` wzv.win.tue.nl’.
Строка, которая заканчивается символом `. ‘ персонаж. Адрес хоста сопоставляется, если его первые числовые поля соответствуют заданной строке. Например, шаблон `131.155. ‘ соответствует адресу (почти) каждого хоста в сети Университета Эйндховена (131.155.x.x).
Строка, начинающаяся с символа `@ ‘, рассматривается как имя netgroup NIS (ранее YP). Имя хоста сопоставляется, если он является членом хоста указанной сетевой группы. Матчи Netgroup не поддерживаются для имен процессов демона или для имен пользователей клиента.
Выражение формы «n.n.n.n / m.m.m.m» интерпретируется как пара «сеть / маска». Адрес хоста IPv4 сопоставляется, если `net ‘равно побитовой И адреса и маски. Например, шаблон net / mask `131.155.72.0/255.255.254.0 ‘соответствует каждому адресу в диапазоне от 131.155.72.0 до 131.155.73.255’.
Выражение формы `n: n: n: n: n: n: n: n / m ‘интерпретируется как пара` net / prefixlen’. Адрес хоста IPv6 сопоставляется, если биты `prefixlen ‘` net’ равны битам `prefixlen ‘адреса. Например, шаблон net / prefixlen `3ffe: 505: 2: 1 :: / 64 ‘соответствует каждому адресу в диапазоне` 3ffe: 505: 2: 1 ::’ через `3ffe: 505: 2: 1: FFFF: FFFF: FFFF: FFFF.
Строка, начинающаяся с символа `/ ‘, рассматривается как имя файла. Имя хоста или адрес сопоставляется, если он соответствует любому имени хоста или шаблону адреса, указанному в названном файле. Формат файла равен нулю или больше строк с нулевым или большим количеством имен хостов или шаблонов адресов, разделенных пробелами. Шаблон имени файла можно использовать везде, где может использоваться имя хоста или шаблон адреса.
Подстановочные знаки `* ‘и`?’ может использоваться для сопоставления имен хостов или IP-адресов. Этот метод сопоставления не может использоваться в сочетании с совпадением «net / mask», совпадением имен хостов, начинающимся с `. ‘ или сопоставление IP-адресов, заканчивающееся на `. ‘.
How to Edit Linux Hosts File
Step 1: Open a Terminal Window (Command Line)
Most Linux distributions have an applications > utilities > terminal feature, or an option to right-click the desktop and click Open Terminal.
Step 2: Open the Linux Hosts File
To open the Linux hosts file, type the command:
Instead of Vim, you can use any other text editor, like nano.
The system should prompt for your password – enter it, and the Hosts file should open.
Step 3: Modify the File
The hosts file in Linux is formatted so that the IP address is first, and the server name is second.
Add any entries you wish to the end of the file. If you make a mistake or need to tell your operating system to ignore a line, add the ‘#’ sign at the beginning of that line.
Make sure you save the file in Vim before you exit!
Step 4 (Optional): Name Service Switch
The hosts file bypasses the standard Domain Name Server lookup. In Linux, there’s another file that tells the operating system what order to look for the IP address translations.
The file is nsswitch.conf, and if it’s configured to look at DNS first, then it’ll skip your hosts file and go straight to DNS lookup.
To check the configuration, in your terminal window type:
The terminal will return a list of information.
About halfway down, there should be an entry labeled “hosts”. Make sure that the right-hand column lists first. If for some reason DNS is listed first, open the file in your text editor:
It should open the nsswitch.conf file. For the setting, change the entry so that is at the beginning of the entry, and is at the end.
Как добавить сайты в файл hosts
В файле hosts каждая запись имеет свою собственную строку. Синтаксис прост. Введите IP-адрес, на который вы хотите перевести имя хоста, нажмите клавишу Tab на клавиатуре, а затем введите имя хоста.
Например, чтобы заблокировать Википедию, вы должны ввести (не забывая использовать клавишу табуляции, а не пробел):
127.0.0.1 wikipedia.org
127.0.0.1 — это петлевой IP-адрес, который всегда будет указывать на вашу собственную систему. Поскольку Интернет не хранится на вашем компьютере, ваш браузер скажет, что сайт не может быть найден. Теперь он эффективно заблокирован.
Если вы чувствуете, что терминал запугивает вас, ознакомьтесь с приложением Linux Mint Domain Blocker (также известным как mintnanny). Он добавит записи в файл hosts, которые указывают указанные вами имена хостов на 127.0.0.1. Но чтобы сделать что-то еще, вам все равно придется вносить изменения в текстовом редакторе.
Скачать: блокировщик домена (бесплатно)