DNS-преобразователь

IP-маршрутизаторы пересылают пакеты на основе 32-битпого адреса места назначения в IP-заголовках. Однако цифровые адреса неудобны для пользователей и приложений. Компьютеры в Internet обычно имеют доменные имена, например, ftp.foo.com или cs.berkeley.edu, которые состоят из строк, разделяемых точками. Запомнить доменное имя гораздо проще, чем IP-адрес. Кроме того, IP-адрес, ассоциированный с доменным именем, может со временем меняться. Например, IР-адрес Web-сайта может зависеть от того, какая компания осуществляет хостинг. Если Web-сайт передается другой хостинговой компании, IP-адрес может измениться. Если бы URL Web-сайта включал IP-адрес (например, http://10.187.56.3/ bar.html), а не доменное имя (например, http://www.foo.com/ bar.html), URL изменялся бы каждый раз при изменении IP-адреса. Любые попытки использовать старый URL (например, из списка закладок браузера) оканчивались бы пеудачей. Наконец, один и тот же Web-сайт может быть доступен на нескольких хостах, каждый из которых имеет собственный IP-адрес. Идентификация сайта по доменному имени обеспечивает гибкость при принятии решения, с каким сервером контактировать. Помимо преобразования доменных имен в IP-адреса, приложению может потребоваться установить доменное имя, ассоциированное с определенным IP-адресом. Например, FTP-сервер может проверять, принадлежит ли FTP-клиент домену верхнего уровня .edu.

Преобразование доменных имен в IP-адреса и IP-адресов в доменные имена осуществляется DNS. Internet-приложепия, например, браузеры, осуществляют доступ к DNS через преобразователь (resolver), представляющий собой программную библиотеку, которая связана с приложением. выполняет две основные функции. Функция gethostbyname() преобразовывает доменное имя в IP-адрес, а функция gethostbyaddr() преобразовывает IP-адрес в доменное имя. Преобразователь взаимодействует с одним или с несколькими DNS-серверами для выполнения этих функций от имени приложения. Чтобы осуществить этот процесс, преобразователь должен зпать, как связаться по крайней мере с одним DNS-сервером. Для Компьютера, подключенного к Internet, обычно указывается список IP-адресов, каждый из которых соответствует локальному DNS-серверу. Сетевые администраторы обычно стараются размещать локальные DNS-серверы ближе к клиентам, обращающимся с запросами. Например, факультет университета может иметь сеть Ethernet, объединяющую все компьютеры, в составе которой имеются локальные DNS-серверы. Провайдер может размещать свои DNS-серверы вблизи от модемного пула, через который пользователи взаимодействуют с сетыо.

Итак, предположим, что пользователь вводит в Web-бpayзepe URL http://www.foo.eom/a.html. Программное обеспечение браузера извлекает имя до- меиа www.foo.com из URL. Чтобы связаться с Web-сервером, браузер должен перевести www.foo.com в IP-адрес. Программное обеспечение браузера вызывает для этого функцию gethostbyname(), которая связывается с одним из локальных DNS- серверов. Ответ DNS-сервера содержит IР-адрес Web-сервера, который возвращается фуикцией gethostbyname(). После этого браузер может инициировать взаимодействие с www.foo.com. В некоторых случаях приложение вызывает функцию gethostbyname() с полностью заданным именем домена, которое идентифицирует полное доменное имя, такое как zippy.bar.com. В других случаях приложение обращается к хосту по усечепиому имени, например, zippy. При настройке клиентского компьютера указывается имя домепа по умолчанию, используемое для DNS-запросов. Так, предположим, что клиентский комиыотер настроен для использования bar.com в качестве имени домепа по умолчанию. Если пользователь вводит URL http://zippy в Web-бpayзepe, функция gethostbyname() запрашивает DNS-сервер для определения IP-адреса, ассоциированного с полным именем домепа zippy.bar.com.

Практически каждое Internet-нриложепие вызывает функцию gethostbyname() перед началом взаимодействия с другим компыогером. Например, нри отправке сообщения электронной почты по адресу buddy@zippy.bar.com или загрузке файла с ftp.foo.com требуется, чтобы приложение знало IP-адрес удаленного Компьютера. Приложению, выполняющемуся на удаленном компьютере, может потребоваться отправить ответ. Для этого приложение-получатель должно знать IP-адрес отправителя. IP-адрес отправителя доступен из заголовка IP-накета. Таким образом, удаленному компьютеру не нужпо связываться с DNS-сервером для ответа отправителю. Однако приложепию-получателю не известно доменное имя Компьютера, отправившего сообщение. Знать доменное имя полезно, если удаленное приложение выполняет регистрацию или аутентификацию. Например, предположим, что администраторы ftp.bar.com не хотят предоставлять доступ пользователям с zip- py.bar.com по Telnet. Для этого Telnet-приложению на ftp.bar.com понадобится определить домеипое имя Компьютера, запрашивающего соединение, перед тем, как разрешить доступ. Telnet-приложение должно преобразовать IP-адрес отправителя в доменное имя, воспользовавшись функцией gethostbyaddr().

Источник: Web-протоколы. Теория и практика. — M.: ЗАО «Издательство БИНОМ», 2002 г. – 592 c.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100