@ericcartman

Как DNS различает сайты на 1м IP-адресе, виртуалке? Как отличает поддомены от домена?

Чуть менее, чем везде на вопрос в гугле, как работает DNS службы видим примерно следующее:
Как работает DNS?
DNS работает в режиме вопрос/ответ.

Допустим, вы ввели в строке своего браузера «test.ru».

Рассмотрим работу DNS пошагово:

Ваш браузер об IP-адресе test.ru ничего не знает и с запросом IP-адреса через специальную программу — resolver обращается к локальному серверу имен. Локальный DNS-сервер — это сервер имен вашей локальной сети или DNS-сервер вашего интернет-провайдера. «Откуда браузеру известно о существовании этого локального DNS?» — спросите вы. Все предельно просто. При настройках сетевого подключения вы прописываете IP-адреса DNS-серверов (предпочитаемого и/или альтернативного), один из которых будет отвечать на запросы, посылаемые вашим браузером через resolver — это и есть локальный или местный сервер вашей сети. Вы всегда можете посмотреть IP-адрес вашего локального DNS-сервера. Для этого достаточно посмотреть свойства сетевого подключения, используемого на вашем компьютере.
Запрос на IP-адрес test.ru доходит до местного сервера имен. Этот сервер о данном IP-адресе ничего не знает и посылает запрос одному из корневых серверов «.» (root).
Корневой сервер отдает локальному серверу IP-адрес сервера, который поддерживает зону .RU.
Далее по полученному адресу локальный сервер имен обращается к DNS-серверу, который поддерживает .RU.
Этот DNS-сервер, в свою очередь, по полученному запросу отдает IP-адрес сервера, который поддерживает зону test.ru.
Местный DNS-сервер с запросом IP-адреса test.ru обращается к DNS-серверу зоны test.ru.
Локальный сервер имен получает IP-адрес test.ru от DNS-сервера зоны test.ru.
Получив адрес test.ru, локальный DNS-сервер сообщает его вашему браузеру.

Все это так, но жизнь ушла далеко вперед, и теперь на одном IP крутится куча виртуалок с кучей сайтов на каждом. Хотелось бы понять, как все работает после шага
Получив адрес test.ru, локальный DNS-сервер сообщает его вашему браузеру
?
ведь на этом IP-адресе куча всего, в том числе и поддомены sub.test.ru и тп. И скорее всего все это на виртуальных машинах. Почему на запрос test.ru не выдается sub.test.ru, хотя у них все одинаково?
  • Вопрос задан
  • 768 просмотров
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
non progredi est regredi
на запрос test.ru не выдается sub.test.ru

выдается, если криво настроен

гугли заголовок host:
Ответ написан
Комментировать
@feanor7
Системный администратор
Как Вам уже ответили, DNS не занимается различием, он просто отвечает на запрос клиента, какой ип у хоста вот такого.
Видимо у вас схема взаимодействия не выстраивается в голове.
Вы клиентом (браузером) делаете запрос sub1.test.ru dns отдал вам ип хоста на котором расположен этот домен. Помимо sub1.test.ru на этом хосте может располагаться великое множество сайтов, aaa.ru bbb.ru и фронтэнд этого сайта при получении запроса от Вашего клиента уже решает что именно вам отдать (какую директорию), Вы же спрашивали sub1.test.ru то он Вам и отдаст, точнее клиенту.
Ответ написан
@ShamblerR
Это костыль на всех веб серверах, он разбирает сайт не по IP:PORT а и через http рефери.
По сути читая заголовок, и подставляя конфиг под него .
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы