Таблица узлов - это обычный текстовый файл, сопоставляющий IP-адреса с именами узлов. В большинстве Unix-систем таблица хранится в файле /etc/hosts. Каждая строка таблицы /etc/hosts содержит адрес IP, отделенный пробелом от перечня имен узлов, связанных с этим адресом. Символ # отмечает начало комментария.
Таблица узлов системы rodent может содержать такие записи:
# # Table of IP addresses and hostnames # 172.16.12.2 rodent.wrotethebook.com rodent 127.0.0.1 localhost 172.16.12.1 crab.wrotethebook.com crab loghost 172.16.12.4 jerboas.wrotethebook.com jerboas 172.16.12.3 horseshoe.wrotethebook.com horseshoe 172.16.1.2 ora.wrotethebook.com ora 172.16.6.4 linuxuser.articles.wrotethebook.com linuxuser
Первая строка таблицы-примера относится непосредственно к системе rodent. IP-адресу 172.16.12.2 поставлено в соответствие имя узла rodent.wrotethebook.com и альтернативное имя узла (псевдоним) rodent. Имя узла и все его псевдонимы отображаются в один и тот же адрес IP, в данном случае - 172.16.12.2.
Псевдонимы позволяют менять имена, написание имен, а также использовать сокращенные варианты. Кроме того, псевдонимы позволяют создавать «обобщенные имена узлов». Обратите внимание на запись для адреса 172.16.12.1. Один из псевдонимов адреса - loghost. loghost - это особое имя узла, используемое в файле настройки syslog.conf систем Solaris. В дистрибутивах некоторых систем программы, подобные syslogd, настраиваются таким образом, чтобы их вывод передавался узлу с определенным именем. Вывод можно передавать любому из узлов, назначив ему соответствующее обобщенное имя в качестве псевдонима. Среди обобщенных имен встречаются такие , ка к Iprhost, mailhost и dumphost.
Вторая запись из файла назначает адрес 127.0.0.1 узлу с именем localhost. Как говорилось ранее, сетевой адрес 127.0.0.0/8 зарезервирован под кольцевую сеть. Адрес узла 127.0.0.1 - это специальный адрес, назначаемый в качестве кольцевого локальному узлу (отсюда имя localhost). Такое специальное соглашение об адресации позволяет узлу обмениваться данными с самим собой таким же способом, как и с удаленными узлами. Кольцевой адрес упрощает создание программного обеспечения, поскольку позволяет использовать один и тот же код для общения с локальными и удаленными процессами. Кроме того, описанное соглашение сокращает сетевой трафик: адрес узла localhost связан с кольцевым устройством, возвращающим данные узлу без отправки в сеть.
На смену таблице узлов пришли механизмы DNS, но она по-прежнему широко применяется по следующим причинам:
- В большинстве систем есть небольшие файлы с таблицами узлов, содержащими имена и адреса важных узлов локальной сети. Эти небольшие таблицы используются, когда система DNS недоступна, в частности, в процессе начальной загрузки машины. Даже при наличии DNS следует создавать файлы /etc/hosts, содержащие записи для самого узла, узла localhost, шлюзов и серверов локальной сети.
- Там, где применяется NIS, таблицы узлов используются в качестве исходных данных для баз данных NIS. NIS может использоваться в сочетании с DNS, но даже в этом случае на большинстве NIS-площадок создаются таблицы узлов, содержащие записи для всех узлов локальной сети. Совместное использование NIS и DNS описано в главе 9.
- Таблицы узлов иногда применяют в очень маленьких, не связанных с сетью Интернет, сетях. Если узлов в сети мало, информация об узлах изменяется редко, и нет необходимости во взаимодействии с внешним миром по TCP/IP, особых преимуществ использование DNS не даст.
Устаревший метод таблицы узлов не отвечает потребностям глобальной сети Интернет по двум причинам: из-за невозможности масштабирования и отсутствия автоматизированного процесса обновления. До появления DNS организация под названием NIC (Network Information Center, Сетевой информационный центр) занималась сопровождением огромной таблицы узлов сети Интернет (таблица узлов NIC). Включенные в эту таблицу узлы носили название зарегистрированных. Организация NIC добавляла в таблицу имена и адреса узлов для всех площадок сети Интернет.
Во времена, когда таблица узлов еще была основным средством для перевода имен узлов в IP-адреса, большинство подсетей регистрировали в таблице лишь самые важные системы. Но даже при таком ограничении таблица выросла до размеров, которые исключали эффективное преобразование имен в IP-адреса. Невозможно использовать простую таблицу для обслуживания огромного числа узлов, составляющих сегодняшний Интернет.
Вторая проблема, связанная с таблицей узлов, - отсутствие механизма автоматического распространения информации о новых узлах. К новым, зарегистрированным узлам можно обращаться по имени только после того, как будет получена новая версия таблицы узлов. Однако нет возможности гарантировать, что таблица узлов достигнет той или иной локальной сети, и нет возможности узнать, актуальна ли используемая версия таблицы. Отсутствие гарантированного единообразного распространения информации - серьезный недостаток системы таблиц узлов.