DNS исключает оба крупных недостатка таблиц узлов:
- DNS хорошо масштабируется. Система не зависит от единственной большой таблицы, в основе ее работы лежит распределенная база данных, рост объема которой практически не сказывается на эффективности. На сегодня DNS снабжает сеть информацией о примерно 1000 000 000 узлов, тогда как таблица NIC включала не более 10 000 узлов.
- DNS гарантирует распространение информации о новых узлах по мере необходимости.
Информация распространяется автоматически и только по необходимости. Система доменных имен работает следующим образом. Сервер DNS, получив запрос информации о неизвестном ему узле, передает его компетентному (авторитативному) серверу (authoritative server). Компетентный сервер - это любой сервер, в ведении которого находится точная информация по домену, о котором идет речь в запросе. Локальный сервер, получив от компетентного сервера ответ, сохраняет, или кэширует, его для последующего использования. Получив запрос той же информации еще раз, локальный сервер отвечает на запрос самостоятельно. Способность получать информацию об узлах из компетентных источников и автоматически распространять точные сведения дает DNS значительное преимущество перед таблицами узлов, даже в случае сетей, не подключенных к сети Интернет.
Система DNS пришла на смену не только таблице узлов, но и более старому варианту службы имен. Так сложилось, что обе службы называют службой имен. Обе упоминаются в файле /etc/services. Более старой системе назначен UDP-порт 42 и имя nameserver, либо пате; служба имен DNS использует порт 53 и носит имя domain. Естественно, это может послужить источником недоразумений. Однако не стоит беспокоиться - старая служба имен устарела. В тексте книги речь идет только о DNS, и, говоря «служба имен», мы будем иметь в виду именно ее.