Рейтинговые книги
Читем онлайн Linux: Полное руководство - Денис Колисниченко

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 79 80 81 82 83 84 85 86 87 ... 158

     7200      ;повтор каждые 2 часа

     604800    ;хранить информацию 168 часов (1 неделю)

     86400)    ;TTL записи - 24 часа

  NS  dhsilabs.com.

1 PTR localhost.

Листинг 13.4. Файл 192.168.1

@ IN SOA den.dhsilabs.com. hostmaster.dhsilabs.com. (

     93011120 ; серийный номер

     10800    ; обновление каждые 3 часа

     3600     ; повтор каждый час

     3600000  ; хранить информацию 1000 часов

     86400 )  ; TTL записи - 24 часа

@           IN NS den.dhsilabs.com

1           IN PTR den.dhsilabs.com

2.1.168.192 IN PTR evg.dhsilabs.com

13.3.1. Обновление корневого кэша

Если вы настраиваете сервер DNS только для своей внутренней сети, которая не имеет выхода в Интернет, то не спешите обновлять файл кэша! Он вам вообще не нужен. Вы также должны удалить зону, описывающую корневой кэш в файле named.conf.

Обычно файл named.ca содержит примерно такую информацию:

Листинг 13.5. Файл корневых серверов

. 6D IN NS G.ROOT-SERVERS.NET.

. 6D IN NS J.ROOT-SERVERS-NET.

. 6D IN NS K.ROOT-SERVERS.NET.

. 6D IN NS L.ROOT-SERVERS.NET.

. 6D IN NS M.ROOT-SERVERS.NET.

. 6D IN NS A.ROOT-SERVERS.NET.

. 6D IN NS H.ROOT-SERVERS.NET.

. 6D IN NS B.ROOT-SERVERS.NET,

. 6D IN NS C.ROOT-SERVERS.NET.

. 6D IN NS D.ROOT-SERVERS.NET.

. 6D IN NS E.ROOT-SERVERS.NET.

. 6D IN NS I.ROOT-SERVERS.NET.

. 6D IN NS F.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:

G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4

J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10

K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129

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.

Есть два способа решить данную проблему. Какой использовать — это решать вам. Первый заключается в том, чтобы запускать сервер DNS после установления PPP-соединения и останавливать перед его разрывом.

Для управления демоном named служит утилита rndc (ndc в BIND 8). Ее можно использовать с параметрами start, stop, reload (перегрузить файлы данных зоны, если в них произошли изменения), restart. Команду rndc start следует включить в сценарий установления PPP-соединения, а команду rndc stop — в сценарий разрыва.

Второй способ состоит в том, чтобы при постоянно работающем сервере DNS подменять файл корневого кэша named.ca. В отсутствие PPP-соединения по этому имени находится пустой файл, а сценарий установки соединения содержит команду, копирующую на его место нормальный файл кэша named.ca.ppp-on. При использовании этого способа в ваших протоколах (журналах) будут регулярно появляться сообщения примерно такого содержания:

Jan 5 16:10:11 den named[10147]: No root nameserver for class IN

Для полноты картины хочу отметить, что, если при использовании DNS у вас возникают проблемы с монтированием удаленных файловых систем, запускайте сервер named после запуска nfsd и mountd.

13.5. Вторичный сервер DNS

Вы когда-нибудь обращали внимание, что у любого уважающего себя провайдера есть два сервера DNS — первичный (primary или master) и вторичный (secondary или slave)? Вторичный сервер копирует данные о зоне с первичного. Эта операция называется зонной пересылкой. В любой зоне должен быть хотя бы один вторичный сервер на тот случай, если с первичным сервером что-нибудь случилось или он просто не в состоянии обработать большое количество запросов клиентов. Получив отказ от первичного сервера, система разрешения имен обращается к вторичному. Для повышения надежности работы службы имен желательно включать вторичный сервер в другую сеть и в другую цепь питания.

Для вторичного сервера DNS. обслуживающего домен dhsilabs.com, секция зоны в файле named.conf будет выглядеть так:

zone " dhsilabs.com" {

 type slave;

 file " dhsilabs.com";

 masters { 192.168.1.1; 192.168.1.2; };

};

IP-адреса основных серверов DNS вашей сети указываются в директиве masters через точку с запятой. Вторичный сервер, в отличие от кэширующего, всегда должен иметь тип slave.

1 ... 79 80 81 82 83 84 85 86 87 ... 158
На этой странице вы можете бесплатно читать книгу Linux: Полное руководство - Денис Колисниченко бесплатно.
Похожие на Linux: Полное руководство - Денис Колисниченко книги

Оставить комментарий