L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12
M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33
A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4
H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53
B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107
C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12
D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90
E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.23 0.10
I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17
F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241
Для установки файла корневого кэша следует установить пакет caching-nameserver, но я рекомендую получить и установить самую новую версию. Для этого подключитесь к Интернету, запустите сервер DNS, а затем выполните команду
# nslookup | tee ns
В ответ на приглашение утилиты nslookupвведите две команды:
> set q=ns (или set type=ns)
> .
На экране вы увидите список корневых серверов DNS, который будет помешен в файл ns. Для преобразования файла ns в формат named.ca
воспользуйтесь следующим awk-сценарием (листинг 13.6), вызвав его так:
# reformat ns named.ca
Листинг 13.6. Сценарий reformat
#!/bin/awk awk ' BEGIN {
/root/ { print ". IN NS " $4"." }
/internet/ { print $1"." " 999999 IN A " $5 }
END '
Теперь осталось скопировать named.ca
в каталог /var/named
, и на этом — все.
Можно обновить корневой кэш и проще, воспользовавшись утилитой dig:
# dig @a.root-servers.net.ns > named.ca.new
или
# dig @198.41.0.4.ns > named.ca.new
После этого остается только заменить старый файл named.ca
новым файлом named.ca.new
.
13.4. Кэширующий сервер DNS
Каждую зону обслуживает один главный сервер имен, хранящий официальную копию данных о зоне. Он называется «авторитетным», потому что его ответ — точный и окончательный. В зоне может быть также сколько угодно кэширующих серверов, у которых собственных данных нет: они накапливают данные, кэшируя ответы на свои запросы. Ответ кэширующего сервера неавторитетен, зато быстр. Обычно они используются для уменьшения DNS-трафика во внутренней сети.
Если собственного домена у вас нет, то имеет смысл возложить обработку DNS-запросов на провайдера, создав у себя кэширующий DNS-сервер. Вместо того, чтобы запрашивать последовательно несколько удаленных корневых серверов, он будет отсылать в сеть только один запрос на разрешение имени (DNS-серверу провайдера) и получать только один окончательный ответ. Это особенно полезно, если у вас плохое соединение с Интернетом.
13.4.1. Настройка кэширования на DNS-сервере
Для того, чтобы насладиться такой возможностью, следует в блок optionsфайла named.conf
добавить следующие параметры:
forward first;
forwarders {
81.3.165.35;
81.3.150.2;
};
Директива forwardersзадает заключенный в фигурные скобки список IP-адресов DNS-серверов, которым ваш DNS-сервер будет переадресовывать запросы вместо того, чтобы отвечать на них самому. IP-адреса перечисляются через точку с запятой.
Директива forwardможет принимать одно из двух следующих значений:
♦ only— ваш DNS-сервер никогда не должен предпринимать попыток обработать запрос самостоятельно;
♦ first— ваш DNS-сервер должен пытаться сам обработать запрос, если указанные далее параметром forwardersсервера DNS не были найдены.
Без директивы forwardersдиректива forwardне имеет смысла.
Таким образом, возвращаясь к настройке сервера, весь файл named.conf
будет выглядеть так:
Листинг 13.7. Файл named.conf кэширующего сервера DNS
options {
directory "/var/named";
forward first;
forwarders {
81.3.165.35;
81.3.150.2;
};
// Раскомментируйте следующую строку, если брандмауэр
// мешает работе службы DNS
// query-source port 53;
};
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type slave;
file " named.local ";
}
Обратите внимание, что в этом примере уже не поддерживается зона dhsilabs.com.
13.4.2. Возможные проблемы и их решение
Как правило, кэширующий сервер запускается на отдельном компьютере, который подключается к Интернету по коммутируемому соединению. Нужно учитывать, что сервер DNS сразу требует обращения к какому-нибудь сетевому ресурсу. В нашем же случае, если соединение не установлено, то устройство ppp0
существовать не будет, a namedбудет страшно ругаться на то, что сеть недоступна. При этом недоступным окажется даже интерфейс lo
, а программа nslookup, если она нам понадобится без существования сети, просто «подвиснет», ожидая ответа от сервера DNS.
Читать дальше
Конец ознакомительного отрывка
Купить книгу