Читаем без скачивания TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) - Сидни Фейт
Шрифт:
Интервал:
Закладка:
Допустимо включать в списки большее число параметров. Текущие требования рассмотрены в последней версии RFC Assigned Numbers.
Многие значения представляют собой списки IP-адресов, где адреса должны появляться в порядке предпочтения.
11.12 Другие методы автоматизации конфигурирования
Было предпринято несколько других попыток автоматизировать отдельные части процесса конфигурирования. Подключенные к локальной сети системы могут использовать обратные ARP (RARP), чтобы обнаружить свой IP-адрес. Запрос ICMP Address Mask (маска адреса ICMP) и ответ на него обеспечивают получение маски подсети. Но нет никакого смысла применять несколько отдельных протоколов и сообщений для получения сведений, предоставляемых в одном ответе BOOTP или DHCP.
Механизм исследования ICMP-маршрутизаторов имеет некоторое преимущество, поскольку предоставляет непрерывно обновляемую информацию о доступных в сети маршрутизаторах.
11.13 Дополнительная литература
Приведенный список литературы действителен на момент написания книги:
■ BOOTP определен в RFC 951.
■ RFC 1533 рассматривает варианты DHCP и расширения BOOTP для разработчиков.
■ RFC 1534 описывает взаимодействие между DHCP и BOOTP.
■ RFC 1542 предоставляет разъяснения и описание изменений в BOOTP.
■ Протокол DHCP специфицирован в RFC 1541.
Глава 12
DNS
12.1 Введение
Часто конечный пользователь знает имя хоста, но не имеет понятия о его адресе. Но адрес нужно знать для взаимодействия с хостом, поэтому конечному пользователю или запущенному им приложению необходим способ получения адреса по имени хоста.
В небольшой изолированной сети такое преобразование выполняется через единую таблицу, а отдельные системы могут получать самые свежие сведения, копируя содержимое таблицы на свои жесткие диски.
В первые дни существования Интернета использовалась также централизованная таблица. Ее главную копию обслуживал сетевой информационный центр Министерства обороны США (DOD NIC), что позволяло проводить преобразование имен в адреса другим системам, периодически копировавшим содержимое главной таблицы. Однако со временем этот метод стал неэффективным.
12.2 Назначение DNS
Система имен доменов (Domain Name System — DNS) обеспечивает более эффективный способ согласования имен и адресов Интернета. База данных DNS обеспечивает автоматизированную службу преобразования имен в адреса. Эта система успешно работает, и многие организации, даже не подключенные к Интернету, применяют DNS для обслуживания собственных внутренних имен компьютеров.
DNS является распределенной базой данных. Имена и адреса Интернета хранятся на множестве серверов по всему миру (ниже мы узнаем о хранении на этих же серверах важных сведений о маршрутизации электронной почты). Организация, владеющая именем домена (например, yale.edu), несет ответственность за обслуживание и работу с сервером имен, который выполняет трансляцию имен этого домена в адреса. Локальный обслуживающий персонал быстро отслеживает изменения, добавление или удаление сетевых узлов и согласует эти операции с первичным сервером (primary server) домена. Поскольку данные для трансляции имен в адреса очень важны, данная информация реплицируется на один или несколько вторичных серверов (secondary server).
12.3 Программное обеспечение BIND
Многие разработчики компьютеров предоставляют бесплатное программное обеспечение для сервера имен. Обычно оно является адаптацией пакета Berkeley Internet Domain (BIND) для конкретных условий. Периодически в Интернете появляются новые бесплатные версии пакета BIND.
Организации могут пользоваться бесплатным программным обеспечением для собственных служб трансляции имен в адреса. Но, если предполагается соединение с Интернетом, необходимо обеспечить не менее двух общедоступных серверов имен, которые станут частью единой системы имен доменов Интернета.
12.4 Определители
Клиентская программа для просмотра информации DNS является стандартной частью любого продукта TCP/IP и называется определителем (resolver). Обычно определитель работает в фоновом режиме, и пользователь даже не замечает его присутствия. В приведенном ниже примере пользователь запрашивает соединение по telnet с системой minnie.jvhc.net. Пользовательское приложение telnet запрашивает локальную программу-определитель об IP-адресе для указанного сайта:
> telnet minnie.jvnc.net
Trying 128.121.50.141 ...
Connected to minnie.jvnc.net.
При установке TCP/IP на хосте, используемом для просмотра базы данных имен доменов, в конфигурационную информацию этого хоста нужно включить сведения об IP-адресах одной или нескольких систем DNS. Программа-определитель должна знать адреса DNS, к которым она будет обращаться.
Примером может служить система tigger, используемая провайдером Global Enterprise System в качестве сервера электронной почты, сетевых новостей и сервера telnet. Как и большинство систем Unix, tigger имеет конфигурационный файл /etc/resolv.conf, в котором указаны локальные имена доменов и IP-адреса двух серверов имен доменов для данного домена.
> more /etc/resolv.conf
domain jvnc.net
128.121.50.2
128.121.50.7
Настольным системам TCP/IP также требуется информация DNS. Как показано на рис. 12.1, программный пакет Chameleon для Microsoft Windows предоставляет раскрывающееся меню, в которое вводят сведения об IP-адресах серверов имен доменов.
Рис. 12.1. Конфигурирование DNS
12.5 Просмотр адресов хостов
Как мы уже знаем, многие системы предоставляют интерактивные программы-определители, дающие возможность пользователям напрямую обращаться к серверам DNS, посылая к ним запросы и получая ответы. Приведем пример работы с программой-определителем nslookup для Unix:
1. Сразу после ввода пользователем имени программы локальный сервер по умолчанию идентифицирует себя, выводя собственное имя и адрес. В нашем примере именем будет r2d2.jvnc.net, а адресом — 128.121.50.2.
2. Пользователь вводит имя хоста, адрес которого нужно узнать.
3. Запрос отправляется на сервер.
4. После каждого запроса сервер (r2d2) идентифицирует себя и выводит ответ.
5. Если пользователь запрашивает локальную информацию, то сервер извлекает ответ из собственной базы данных.
6. Если пользователю требуются сведения о внешнем хосте, сервер сначала проверяет их наличие в собственном кеше (хранящем данные о последних запросах пользователей) и извлекает их (если они есть) либо (если их нет) взаимодействует с удаленным авторитетным сервером для получения ответа из его базы данных.
7. Ответ от удаленного авторитетного сервера сохраняется в дисковом кеше локального сервера для будущего использования и пересылается пользователю, запросившему этот ответ.
Каждый этап диалога с программой разъясняется комментариями в правой части страницы. Отметим, что ответ, извлеченный из кеша сервера, маркируется как неавторитетный.
> nslookup
Default Server:
R2d2.jvnc.net Выводится имя и адрес локального сервера.
Address: 128.121.50.2
> Mickey.jvnc.net. Пользователь вводит запрос, ответ на который
находится в локальной базе данных.
Server: r2d2.jvnc.net Снова вывод идентификатора и адреса сервера.
Address: 128.121.50.2
Name: mickey.jvnc.net Указанное в запросе имя.
Address: 128.121.50.143 Ответ.
> Www.novell.com. Пользователь вводит запрос об удаленном хосте.
Server: r2d2.jvnc.net Снова вывод идентификатора и адреса сервера.
Address: 128.121.50.2
Name: www.novell.com Запрашиваемое имя.
Address: 137.65.2.5 Ответ сохранялся на диске r2d2 и был выведен
пользователю.
> Www.novell.com. Пользователь повторяет запрос об удаленном
хосте.
Server: r2d2.jvnc.net Снова вывод идентификатора и адреса сервера.
Address: 128.121.50.2
Non-authoritative answer: Ответ получен из локального кеша.
Name: www.novell.com Запрашиваемое имя,
Address: 137.65.2.5 Ответ.
Для чего сервер постоянно идентифицирует себя? Вспомним, что организацию могут обслуживать два или более серверов, один из которых может оказаться слишком загруженным или выключенным на профилактику. В этом случае определитель не сможет получить ответ от первой в своем списке системы и пошлет запрос к следующей системе из списка. По выводимым в nslookup сведениям администратор сможет быстро определить, какой из серверов отвечает на запросы.