The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "DNS" / Оглавление документа

Пример настройки Name-сервера

Спланируем нашу зону так:

  1. наша фирма получила зону "фирма.домен";
  2. в ней будет три машины со следующими функциями:
    1. troll
      первичный Name-сервер; почтовая машина;
    2. ogre
      вторичный Name-сервер; FTP- и WWW-сервер;
    3. goblin
      просто машина без каких-либо функций, да еще расположенная совершенно в другом месте.
  3. Имеется группа "группа.фирма.домен" с двумя машинами:
    1. dwarf
      почтовый шлюз группы
    2. elf
      просто машина
  4. Имеется отдел "отдел.фирма.домен" со своим Name-сервером.
  5. Имеется удаленный филиал "филиал.фирма.домен" со своим Name-сервером, который надо дублировать.

Старт

При старте машины запускается DNS-сервер:
	named -b /etc/namedb/named.boot
В качестве аргумента ему передается имя файла с описанием рабочей конфигурации.

Формат файлов

	|<-
	| Текст файла начинается с этой позиции.
	|<-
Формат файла:
	имя	аргументы
В качестве разделителя используются пробелы и табуляции.

Пустые строки игнорируются.

Точка с запятой ";" - признак комментария; все от нее до конца строки игнорируется.

Если строка начинается с пробела или с табуляции, она относится к тому же имени, что и предыдущая строка.

Файл named.boot

	directory			/etc/namedb
Это - указание на то, в какой директории находятся все упоминаемые дальше файлы.
	primary 0.0.127.in-addr.arpa	localhost.rev
Каждый Name-сервер должен обслуживать зону 0.0.127.in-addr.arpa, ибо каждая машина должна знать свой внутренний номер как localhost.
	primary фирма.домен		фирма.домен.hosts
Это - домен, выделенный нашей организации.
	primary 1.168.192.in-addr.arpa	1_168_192.rev
Это - обратное преобразование IP-адресов в имена.
	secondary филиал.фирма.домен	 192.168.1.193	 филиал_фирма_домен.hosts
Для ускорения обращений к Name-серверу филиала на нашем сервере должна быть копия содержимого его зоны.

Файл localhost.rev

	@	IN SOA	troll.фирма.домен. ответственный_за_зону. (
			19970315 ; Serial
			3600	 ; Refresh
			300	 ; Retry
			3600000  ; Expire
			3600	 ; Minimum
		IN NS	troll.фирма.домен.
	1	IN PTR	localhost.домен.
Пояснения:
  • @
    текущий исходный домен, от которого будут отсчитываться все имена, которые не заканчиваются на точку. в данном случае - 0.0.127.in-addr.arpa.
  • IN
    Запись относится к InterNet. Должно присутствовать во всех записях, но часто это игнорируют.
  • SOA
    Start Of Authorisation - Начало Полномочий.
  • первичный_сервер_зоны.
    Имя первичного сервера зоны. Так как мы создаем этот файл на первичном серере, здесь должно быть доменное имя самОй машины; точка в конце обязательна.
  • ответственный_за_зону.
    Почтовый адрес лица, отвественного за зону; "@" в адресе заменяется на ".".
  • В скобки заключаются параметры, растянутые на несколько строк:
    • 19970315 ; Serial
      Серийный номер версии; должен увеличиваться при каждом изменении в зоне - по нему вторичный сервер обнаруживает, что надо обновить информацию. Обычно пишется в виде <год><месяц><число><номер>.
    • 3600 ; Refresh
      Временной интервал в секундах, через который вторичный сервер будет проверять необходимость обновления информации.
    • 300 ; Retry
      Временной интервал в секундах, через который вторичный сервер будет повторять обращения при неудаче.
    • 3600000 ; Expire
      Временной интервал в секундах, через который вторичный сервер будет считать имеющуюся у него информацию устаревшей.
    • 3600 ) ; Minimum
      Значение времени жизни информации на кэширующих серверах.
  • IN NS первичный_сервер_зоны.
    Запись NS авторизует сервер как ответственный за зону. Естественно, надо авторизовать самогО себя.
  • 1 IN PTR localhost.домен.
    Номер 127.0.0.1 всегда должен быть localhost. .0.0.127. автоматически приписывается к 1, ибо она не кончается на точку.

    Файл фирма_домен.hosts

    Файл фирма_домен.hosts достаточно велик, поэтому я буду перемежать текст файла обьяснениями.

    	@	IN SOA	troll.фирма.домен. ответственный_за_зону. (
    			19970315 ; Serial
    			3600	 ; Refresh
    			300	 ; Retry
    			3600000  ; Expire
    			3600	 ; Minimum
    		)
    
    Да в общем-то нет никаких причин делать эту зону отличной от зоны, содержащейся в localhost.rev, разве что Serial может (и скорее всего будет) различаться.
    		IN NS	troll
    		IN NS	ogre
    		IN NS	вторичный_сервер_провайдера.
    
    Раз у нас есть вторичный сервер, да к тому же провайдер обещал держать у себя на сервере копию нашего сервера, надо авторизовать их тоже.
    		IN MX	10	troll
    		IN MX	20	почтовый_шлюз_провайдера.
    
    Здесь описаны почтовые шлюзы в порядке возрастания "удаленности" от пункта назначения. Почтовые серверы, имеющие почту для наших машин, пытаются послать ее непосредственно по адресу назначения; если это не удается, они пытаются послать ее самому близкому к пункту назначения шлюзу, при неудаче - следующему и так далее до исчерпания списка. Это касается только адреса фирма.домен, но не относится к машинам зоны (см.ниже).
    	localhost	IN A	127.0.0.1
    
    Каждая машина, обратившаяся по адресу localhost или localhost.зона, должна получить номер 127.0.0.1.
    	*	IN MX	10	troll
    		IN MX	20	почтовый_шлюз_провайдера.
    
    Для всех машин данной зоны установить почтовые шлюзы (те же, что и для самОй зоны).
    	troll	IN A	192.168.1.1
    		IN HINFO "486DX2-66" "FreeBSD"
    	ns	IN CNAME troll
    	mail	IN CNAME troll
    
  • IN A 192.168.1.1
    Определяет, что имени troll соответствует IP-номер 192.168.1.1.
  • IN HINFO "486DX2-66" "FreeBSD"
    Содержит некоторыю информацию о машине, обычно - тип процессора и операционной системы.
  • ns IN CNAME troll и mail IN CNAME troll
    Делают имена ns и mail псевдонимами машины troll. Следует помнить, что этого не всегда достаточно: некоторые протоколы, включая HTTP 1.1 и E-mail работают непосредственно с именем хоста, так что сам хост тоже должен понимать, что это имя - его.
  • 	ogre	IN A	192.168.1.2
    		IN HINFO "Pentium" "Linux"
    	nss	IN CNAME troll
    	www	IN CNAME ns.misa.ac.ru.
    	ftp	IN CNAME ns.misa.ac.ru.
    	goblin	IN A	172.16.21.114
    
    В общем-то все то же самое, что и для troll.
    	группа		IN MX	 5	dwarf.группа
    			IN MX	10	troll
    			IN MX	20	почтовый_шлюз_провайдера.
    	*.группа	IN MX	 5	dwarf.группа
    			IN MX	10	troll
    			IN MX	20	почтовый_шлюз_провайдера.
    
    На всякий случай отдельно зафиксируем почтовые шлюзы как для самой группы, так и для всех ее машин.
    	localhost.группа	IN A	127.0.0.1
    	elf.группа		IN A	192.168.1.11
    	dwarf.группа		IN A	192.168.1.12
    
    Обычные записи для машин группы. Можно сделать им HINFO или добавить псевдонимы, но и так сойдет.
    	отдел		IN NS	192.168.1.21.
    	; и, если есть, вторичные Name-серверы
    
    Так как отдел имеет свой Name-сервер, нужно только авторизовать его, причем по номеру; а дальше он сам должен отвечать за записи своей зоны.

    И напоследок - красивый фокус:

    	altavista       IN CNAME        altavista.digital.com
    	yahoo		IN CNAME	www.yahoo.com
    
    Это позволяет моим юзерам обращаться к самым известным поисковым машинам, не набирая www. в начале и .com в конце! Однако, когда я пытался обращаться к этим машинам через Proxy-сервер провайдера, тот обратился к своей зоне DNS и сказал: "Не знаю имени yahoo.провайдер! Впрочем, полное имя www.yahoo.com продолжало нормально функционировать. Есть еще одна особенность такой конфигурации: машина yahoo.фирма.домен находится в нашей зоне, поэтому некоторые программы, кэширующие обращения к WWW, могут решить, что ее кэшировать не надо.

    Файл 1_168_192.rev

    	@	IN SOA	troll.фирма.домен. ответственный_за_зону. (
    			19970315 ; Serial
    			3600	 ; Refresh
    			300	 ; Retry
    			3600000  ; Expire
    			3600	 ; Minimum
    		)
    
    Тут даже думать не надо.
    	1	IN PTR	troll.фирма.домен.
    	2	IN PTR	ogre.фирма.домен.
    	11	IN PTR	dwarf.группа.фирма.домен.
    	12	IN PTR	elf.группа.фирма.домен.
    	; и так далее
    
    Этот файл содержит преобразования IP-адресов в доменные имена. Многие программы вообще отказываются работать с машинами, чей IP-адрес не прописан в обратной (reverce) зоне, видимо, считая, что этот адрес кем-то присвоен самовольно, без санкции ответственного администратора.
    Здесь же мы должны прописать все остальные машины, имеющие IP-номера 192.168.1.* - дело в том, что зоны в in-addr.arpa выделяются сразу на 256 адресов и не делегируются на меньшее число.
    Хочу также обратить внимание на то, что в обратной зоне нет машины goblin: она находится в совсем другой обратной зоне.

    Файл филиал_фирма_домен.hosts

    Этот файл создается автоматически; главное - чтобы он был правильно построен (прописаны все NS и MX).

    Инструменты

    Для тестирования правильности построения зоны используется программа nslookup. Она сообщает IP-адрес по доменному имени, а при запуске без параметров она переходит в командный режим, где проявляет все свои незаурядные качества - читай `man nslookup`.




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру