Файл: Алексей Старовойтов СанктПетербург бхвпетербург 2006 удк 681 06 ббк 32. 973. 202 С77.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.12.2023

Просмотров: 195

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

222
×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè точка располагается в конце имени, то она, как правило, не пишется. Под корнем располагаются домены первого уровня. Далее идут домены второго уровня, третьего и т. д. Например, Linux.ru — это доменное имя второго уровня. Точка в конце пропущена (как мы и говорили). Читать имя надо с конца: ru — домен первого уровня, Linux — доменное имя второго уровня.
Имена первого уровня достаточно стабильны. Помимо страны (например ru, us, de), доменные имена первого уровня могут иметь и другой смысл.
Например, com —коммерческие организации, gov — правительственные уч- реждения, mil — военные ведомства и др.
11.2. Êàê ðàáîòàåò ñëóæáà DNS
Наличие определенной структуры в дереве имен предполагает наличие оп- ределенных принципов работы службы DNS.
Каждый домен является главным на своем уровне и знает обо всех компью- терах этого уровня. В то же время он знает о существовании домена более высокого уровня. Поэтому, когда производится поиск имени за пределами своего домена, то в начале запрос идет к корневому серверу, а затем к сер- верам более низкого уровня, вплоть до разрешения имени (рис. 11.1).
Ðèñ. 11.1. Ïîðÿäîê ðàáîòû ñëóæáû DNS

Ãëàâà 11. Ñëóæáû DNS è DHCP
223
Рисунок сделан в предположении, что в серверах имен не использовалось кэширование. Запросы такого рода предполагают значительную загрузку сети, что может привести к сбоям в работе. Поэтому применяется кэширование записей на серверах DNS. Кэширование предполагает сохранение на серве- рах DNS соответствий "имя — адрес" на наиболее частые запросы. Запись из кэша может удаляться по прошествии определенного времени. Система стре- мится использовать в кэше наиболее часто встречаемые запросы. Поэтому обычно запросы на серверы первого уровня и популярные серверы всегда хранятся в кэше. Разрешать запросы на верхнем уровне приходится редко.
11.3. Ïàêåò BIND è åãî êîìïîíåíòû
Существует несколько программных реализаций сервера DNS. Наиболее распространенной реализацией является BIND (Berkley Internet Name Do- main — система доменных интернет-имен университета Беркли). Сущест- вуют три основных разновидности пакетов: BIND 4, BIND 8, BIND 9. По- скольку программный продукт свободно распространяемый, то во все современные дистрибутивы Linux входит, как правило, пакет BIND 9.
В пакет BIND входят следующие компоненты:
named — демон сервера имен;
утилиты nslookup, dig, host, позволяющие проверить работу сервисов из командной строки.
Демон named собственно реализует функцию разрешения имен на IP- адреса. Если ему неизвестно какое-либо имя, то он осуществляет разреше- ние этого имени при помощи других серверов. Серверы имен могут быть нескольких типов (табл. 11.1) и обычно один сервер совмещает сразу не- сколько режимов работы.
Òàáëèöà 11.1. Òèïû ñåðâåðîâ DNS
Òèï ñåðâåðà
Îïèñàíèå
Àâòîðèòàðíûé
Îôèöèàëüíûé ïðåäñòàâèòåëü çîíû, îòâåòû ýòîãî ñåðâåðà
ñàìûå òî÷íûå è íå óñòàðåâøèå
Ïåðâè÷íûé
Îñíîâíîå õðàíèëèùå äàííûõ çîíû. Âñÿ èíôîðìàöèÿ õðà-
íèòñÿ çäåñü
Âòîðè÷íûé
Êîïèðóåò äàííûå ñ ãëàâíîãî ñåðâåðà è ñòðàõóåò ãëàâíûé
ñåðâåð
Íåàâòîðèòàðíûé
Îòâå÷àåò íà çàïðîñû èç ñâîåãî êýøà.  ïðèíöèïå, îòâåò ìî-
æåò áûòü íåêîððåêòíûì, õîòÿ òàêîå âñòðå÷àåòñÿ ðåäêî
Ðåêóðñèâíûé
Îñóùåñòâëÿåò çàïðîñû îò èìåíè êëèåíòà äî ïîëíîãî ðàçðå-
øåíèÿ àäðåñà. Êëèåíòó âûäàåòñÿ ñîîòâåòñòâèå "èìÿ —àäðåñ"
Íåðåêóðñèâíûé
Ïåðåíàïðàâëÿåò êëèåíòà ê äðóãîìó ñåðâåðó. Êàê ïðàâèëî,
âñå ñåðâåðû âåðõíåãî óðîâíÿ íåðåêóðñèâíûå, òàê êàê îíè
îáðàáàòûâàþò áîëüøîå ÷èñëî çàïðîñîâ


224
×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè
Все серверы, кроме Linux.ru, на рис. 11.1 были нерекурсивными. Сервер
Linux.ru рекурсивный.
Для отладки работы службы DNS используются программы nslookup, dig, host. Здесь они приводятся обзорно. Если вас интересует их работа, то об- ращайтесь к документации по этим утилитам. Тем не менее даже столь ма- лые сведения позволят вам проверить свой сервер имен.
Óòèëèòà nslookup
Утилита nslookup предназначена для передачи запросов серверу имен. Если программу запустить без параметров, то она обратится к первому серверу имен, взятому из файла /etc/resolv.conf. Конкретный сервер имен задается принудительно, для этого в строке вызова после nslookup указывается дефис и DNS-сервер (рис. 11.2).
Ðèñ. 11.2. Ïðèìåð âûïîëíåíèÿ nslookup
Óòèëèòà dig
Утилита dig, так же как и nslookup, предназначена для отладки и выдает данные о формате, который может быть использован непосредственно сер- вером DNS. В ответе c двумя символами точки с запятой идут строки ком- ментария (рис. 11.3).

Ãëàâà 11. Ñëóæáû DNS è DHCP
225
Ðèñ. 11.3. Ïðèìåð çàïóñêà ïðîãðàììû dig
Óòèëèòà host
Утилита host возвращает IP-адрес хостов. Программа выдает только IP- адрес, поэтому ее применение для отладки ограничено.
11.4. Êàê ÷èòàòü ôàéë íàñòðîåê BIND
Ôàéë named.conf
Демон сервера имен имеет несколько конфигурационных файлов. Основ- ным файлом настроек является файл /etc/named.conf (листинг 11.1).
Ëèñòèíã 11.1. Ôàéë íàñòðîåê /etc/named.conf (ïðèìåð) options { directory
"/var/named";
/*
* If there is a firewall between you and nameservers you want

226
×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameservers config
// controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; };
}; zone "." IN { type hint; file
"named.ca";
}; zone "localhost" IN { type master; file
"localhost.zone"; allow-update { none; };
}; zone "0.0.127.in-addr.arpa" IN { type master; file
"named.local"; allow-update { none; };
}; include "/etc/rndc.key";
Разделы файла заключены в фигурные скобки. Строки, начинающиеся сим- волом //, являются комментарием. Инструкция options { directory задает расположение файлов зоны. Следующие операторы описывают фай- лы зон.

Ãëàâà 11. Ñëóæáû DNS è DHCP
227
Ôàéëû áàç äàííûõ çîí
Пути к файлам баз данных зон определены файлом named.conf. Файлы баз данных зон состоят из ресурсных записей. Перечень ресурсных записей приведен в табл. 11.2.
Òàáëèöà 11.2. Ðåñóðñíûå çàïèñè ôàéëà áàç äàííûõ çîí
Çàïèñü Êîììåíòàðèé
SOA
Íà÷àëî çîíû. Ñîäåðæèò àäìèíèñòðàòèâíóþ èíôîðìàöèþ
NS
Èäåíòèôèöèðóåò ñåðâåðû èìåí äëÿ äàííîãî äîìåíà
A
Îòîáðàæåíèå èìåíè â àäðåñ, ñîñòàâëÿþò îñíîâíóþ ÷àñòü áàçû äàí-
íûõ
PTR
Îáðàòíûé óêàçàòåëü îáåñïå÷èâàåò îáðàòíûé ïåðåâîä IP-àäðåñîâ â
èìåíà
MX
Èñïîëüçóåòñÿ ñèñòåìîé ýëåêòðîííîé ïî÷òû äëÿ áîëåå ýôôåêòèâíîé
ìàðøðóòèçàöèè
CNAME
Êàíîíè÷åñêîå èìÿ, ïîçâîëÿåò íàçíà÷àòü óçëó äîïîëíèòåëüíûå èìåíà
SRV
Îïðåäåëÿþò ìåñòîíàõîæäåíèå ñëóæá â ïðåäåëàõ äîìåíà
TXT
Ïîçâîëÿþò äîáàâëÿòü ïðîèçâîëüíûé òåêñò â ôàéë
Кроме того, в файлах зон также могут использоваться специальные симво- лы (табл. 11.3).
Òàáëèöà 11.3. Ñïåöñèìâîëû, èñïîëüçóåìûå â ôàéëàõ çîí
Ñèìâîë Çíà÷åíèå
@
Îáîçíà÷àåò èìÿ òåêóùåãî äîìåíà
( )
Îáúåäèíÿåò íåñêîëüêî ñòðîê â îäíó ñòðîêó
*
Ìåòàñèìâîë. Ìîæåò ïðèìåíÿòüñÿ òîëüêî èìåíè. Îáîçíà÷àåò âñå âîç-
ìîæíûå êîìáèíàöèè
; Ñòðîêè
êîììåíòàðèÿ
Рассмотрим более подробно формат основных записей.
Çàïèñü SOA
SOA (Start of authority — начало полномочий) обозначает начало зоны. Зона продолжается до тех пор, пока не встретится другая запись SOA. Наличие


228
×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè
SOA указывает на то, что данный сервер DNS является первичным источ- ником информации для данного домена.
Разберем подробнее возможную форму записи для ресурса. Имена узлов приведены для примера и являются вымышленными. stuff.org. IN SOA first.stuff.org. admni.first.stuff.org. (
2004123101
; Порядковый номер
10800
; Период обновления в секундах
3600
; Интервал между попытками обновления
; в секундах
60448
; Период устаревания в секундах
7200)
; Время жизни в секундах
Данный файл описывает зону stuff.org. Класс зоны — Internet (IN). Пер- вичным сервером зоны является сервер first.stuff.org. Адрес электронной почты администратора домена admin.first.stuff.org, читать этот адрес надо как admin@first.stuff.org. Следует также обратить внимание на точку в конце строки.
Порядковый номер определяет момент, когда надо загружать новую кон- фигурацию. При каждом изменении конфигурации порядковый номер дол- жен монотонно возрастать. Первая часть — это дата изменения, а послед- няя — это номер изменения в рамках данной даты. В нашем случае это 31 декабря 2004 г.
Следующие четыре периода времени по умолчанию имеют формат в секун- дах, однако допускается и другая запись, для этого используются буквы:
w — неделя;
d — дни;
h — часы;
m — минуты.
Период обновления обозначает, как часто вторичные сервера обновляют данные. Обновление производится в том случае, если в конфигурации про- изошли изменения. О наличии изменений говорит разница в порядковых номерах. Обновление производится в том случае, если порядковый номер на первичном сервере больше. Интервал между попытками обновления оз- начает период времени, через который будет произведена повторная попыт- ка обновления, в случае если предыдущая попытка не удалась.
Интервал — период устаревания, в течение которого вторичные сервера бу- дут обслуживать домен, если первичный сервер не отвечает (невозможно провести обновление файла зоны).
Время нахождения в кэше отрицательных ответов описано последним пара- метром.

Ãëàâà 11. Ñëóæáû DNS è DHCP
229
Çàïèñü NS
Эта запись задает сервер имен для данного домена. Обратите внимание на точку в конце записи.
Пример: stuff.org. IN NS first.stuff.org. stuff.org. IN NS second.stuff.org.
Здесь для домена stuff.org. задано два сервера имен: first.stuff.org. и second.stuff.org.
Çàïèñü À
Эта запись является основной записью базы данных DNS и отображает имя в адрес. Для каждого сетевого интерфейса существует одна запись А. Для компьютера может существовать несколько записей, по каждой на один се- тевой интерфейс.
Пример: first.stuff.org. IN A 128.100.241.212 first.stuff.org. IN A 128.100.241.213 second.stuff.org.IN A 128.100.241.214
Здесь первые две записи относятся к одному компьютеру с именем first.stuff.org. и двумя сетевыми картами, имеющими IP-адреса
128.100.241.212 и 128.100.241.213.
Третья запись относится ко второму компьютеру second.stuff.org., сетевая карта которого имеет адрес 128.100.241.214.
Çàïèñü PTR
Эта запись обеспечивает обратный перевод, то есть перевод IP-адресов в символьные имена. Точно так же, как и в предыдущем случае, для каждого сетевого интерфейса существует только одна запись PTR. В простейшем случае это записанный наоборот IP-адрес
(см. пример записи А) с суффиксом in-addr.arpa.
Пример:
212.241.100.128. in-addr.arpa. IN PTR first.stuff.org.
213. 241.100.128. in-addr.arpa. IN PTR first.stuff.org.
214. 241.100.128. in-addr.arpa. IN PTR second.stuff.org.


230
×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè
Çàïèñü MX
Эта запись используется в электронной почте для более эффективной марш- рутизации. Запись МХ подменяет адресатов сообщений.
Пример: stuff.org. IN MX 10 first.stuff.org. stuff.org. IN MX 20 second.stuff.org.
Эта запись означает, что вместо сервера почты stuff.org. будут использо- ваться серверы first.stuff.org. и second.stuff.org., 10 и 20 означают приоритет: чем меньше число, тем больше приоритет. Допустимым является диапазон приоритета 0 – 65535. На практике приоритет используется с шагом 10, чтобы можно было поставить что-то между 10, 20 и 30, не переписывая весь файл.
Çàïèñü CNAME
Каноническое имя позволяет назначать узлу дополнительные имена. Эта запись используется для закрепления за компьютером определенных функций.
Пример: www. stuff.org. IN CNAME second.stuff.org.
Здесь узлу second.stuff.org. присвоено каноническое имя www.stuff.org. Соот- ветственно, при вводе в адресной строке www. stuff.org. вы попадете на узел second.stuff.org.
Çàïèñü SRV
Эта запись определяет местонахождение служб в пределах домена. С помо- щью этой записи легко менять адреса служб.
Формат записи:
Служба.протокол.имя IN SRV приоритет вес порт сервер реализован в примере: http.tcp.www IN SRV 10 0 80 second.stuff.org.
Çàïèñü ÒÕÒ
Эта запись задает произвольный текст. Например:
IN TXT "Это произвольный текст"

Ãëàâà 11. Ñëóæáû DNS è DHCP
231 11.5. Ïðîñòîé ïðèìåð ñîáñòâåííîãî äîìåíà
При выборе имени домена надо быть осторожным и помнить о том, чтобы никого не беспокоить во внешнем мире. Например, домен можно назвать localdomain, но в нашем случае это будет samba.
При чтении листингов обязательно обращайте внимание на точки в конце имен. Отсутствие точки означает, что отсчет будет идти не от корневого до- мена, а от текущего.
Также обратите внимание, что в файле ресурсов named.conf и зон точка не ставится (листинги 11.2–11.5).
Ëèñòèíã 11.2. Ôàéë /etc/named.conf
; Вначале опишем локальную зону zone
"0.0.127.in-addr.arpa"
{ type master; file "/etc/domain/ld127";};
;создаем основной сервер для 0.0.127.in-addr.arpa файл зоны в
; файле "domain/ld127"
; создадим нашу основную зону
; она будет описана в файле domain/ld zone "samba"{ notify no type master file "domain/ld";};
; Обратная зона поиска zone "0.168.192.in-addr.arpa" { notify no; type master; file "ld168";};
Ëèñòèíã 11.3. Ôàéë çîíû ld127
@ IN SOA dns. samba. admin.mail. samba. (
20050315 ; Порядковый номер
10800
; Период обновления, в секундах
3600 ; Интервал между попытками обновления,
; в секундах
60448
; Период устаревания, в секундах
7200)
; Время жизни, в секундах


232
×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè
; Зададим сервер имен, первую часть - @ IN можно опустить
NS dns. samba.
; Это значит, что машина с адресом 127.0.1 называется localhost
1 PTR localhost.
Ëèñòèíã 11.4. Ôàéë çîíû ld
; Файл зоны samba
@ IN SOA dns. samba. admni.mail. samba. (
2005031501
; Порядковый номер
10800
; Период обновления, в секундах
3600
; Интервал между попытками
; обновления, в секундах
60448
; Период устаревания, в секундах
7200)
; Время жизни, в секундах
NS dns. samba.;
MX 10 mail. samba. ; Почтовый сервер
; Записи о ресурсах
; Сервер localhost A 127.0.0.1 dns A 192.168.0.5 mail A 192.168.0.5 smb A 192.168.0.5 ; зарезервируем имя
; Рабочие станции kb1 A 192.168.0.6
TXT "Рабочая станция в конструкторском бюро!" buch1 A 192.168.0.7
TXT "Рабочая станция в бухгалтерии"
Ëèñòèíã 11.5. Ôàéë çîíû ld168
@ IN SOA dns. samba. admni.mail. samba. (
2005031501
; Порядковый номер
10800
; Период обновления, в секундах
3600
; Интервал между попытками
; обновления, в секундах
60448
; Период устаревания, в секундах
7200)
; Время жизни, в секундах

Ãëàâà 11. Ñëóæáû DNS è DHCP
233
NS dns. samba.;
; Обратные записи о ресурсах
5 PTR dns. samba.
6 PTR kb1. samba.
7 PTR buch1. samba.
Ïðîâåðêà
Теперь запускаем службу DNS. Для этого вводим
# ndc start
То же самое можно сделать и через Webmin. Запускаем Webmin, переходим на вкладку Servers и щелкнем по пункту BIND DNS Server. Открывается окно управления сервером DNS (рис. 11.4). В самом низу этого окна (на рисунке не поместилась) находится кнопка Start Name Server (или Apply
Change, если сервер запущен), эту кнопку необходимо нажать. Сервер будет запущен, во втором случае будут приняты сделанные изменения.
Отправляем проверочный запрос:
# nslookup
>set q=any
> kb1.samba
Результаты запроса представлены на рис. 11.5.
Как видим, сервер DNS работает. Теперь проверим, работает ли обратный поиск. Для этого снова воспользуемся программой nslookup (рис. 11.6).
Ðèñ. 11.4. Îêíî óïðàâëåíèÿ DNS-ñåðâåðîì

234
×àñòü III. Linux-ñåðâåð ñâîèìè ðóêàìè
Ðèñ. 11.5. Ðàáîòà ñ óòèëèòîé nslookup
Ðèñ. 11.6. Ïðîâåðêà ðàáîòîñïîñîáíîñòè îáðàòíîãî ïîèñêà
Из запроса видно, что сервер работает. Итак, DNS мы настроили, теперь настроим DHCP.
11.6. Êðàòêàÿ õàðàêòåðèñòèêà DHCP
Даже в крупных локальных сетях (100 и более машин) нет недостатка в IP- адресах. Тем не менее для полноты картины мы рассмотрим, как организо- вать несложный DHCP-сервер.
Протокол DHCP (Dynamic Hosts Configuratin Protocol — протокол динами- ческого конфигурирования узлов) призван облегчить конфигурирование хостов при включении их в сеть. Протокол определен в стандартах RFC2131 и RFC2132.
Протокол DHCP относится к классу клиент-серверных протоколов. На сто- роне сервера за его работу отвечает демон DHCP (dhcpd).
Через протокол DHCP централизовано выделяются IP-адреса в локальной сети, а также автоматически настраиваются сетевые и административные параметры хостов в сети. Основными параметрами, выдаваемыми DHCP- сервером, являются:
IP-адрес, выделяемый в аренду для текущего хоста;
сетевая маска;