The OpenNET Project / Index page

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

установка сервера DNS на FreeBSD (freebsd bind dns)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: freebsd, bind, dns,  (найти похожие документы)
From: http://f0kp.iplus.ru/ <just_a_user@phayze.com> Subject: установка сервера DNS на FreeBSD Оригинал: http://f0kp.iplus.ru/proj/fb16.html Установка сервера dns Введение В этом документе я попытаюсь дать вам пример установки сервера DNS. Большинство этой информации взято из 'FreeBSD handbook' (печатная версия). Встроенные FreeBSD dns демон называется 'named' и является частью порта 'bind' (/usr/ports/bind8). Директория '/etc/namedb' - это место, где named ищет конфигурационные файлы / файлы зон. Нас интересуют следующие файлы и мы будем создавать/редактировать их довольно долго: named.conf db.example.org example-reverse localhost.rev В данном документе я объясню как создать/отредактировать эти файлы для конфигурации сервера DNS, который будет работать в локальной сети и опрашивать два внешних сервера DNS, если ответ на один из запросов ему не известен. Вот схема сети: /-----------------------\ | интернет | \-----------------------/ | | |--------------------| | DNS сервер/шлюз | | ns.example.org | | 192.168.1.1 | |--------------------| | | |-------------------------------------------------| | | |-----------------| |------------------| | Хост | | Хост | | sun.example.org | | moon.example.org | | 192.168.1.100 | | 192.168.1.101 | |-----------------| |------------------| named.conf По умолчнию этот файл находится в директории /etc/namedb и нам необходимо отредактировать его. Вот пример того, как он должен выглядеть: --- options { directory "/etc/namedb"; forwarders { [dns-сервер 1]; [dns-сервер 2]; }; query-source address * port 53; }; zone "." { type hint; file "named.root"; }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "localhost.rev"; }; zone "example.org" { type master; file "db.example.org"; }; zone "1.168.192.in-addr.arpa" { type master; file "example.org-reverse"; }; --- Вот что все это означает: forwarders Это должен быть разделенный точкой с запятой (не забудьте поставить последнюю точку с запятой) список серверов dns. Если ваш сервер dns не знает ответа, он будет запрашивать эти серверы dns. query-source address При помощи этой опции вы можете заставить сервер DNS использовать определенный порт, это очень полезно при использовании файрволла. zone "." Это зона для доменов верхнего уровня, файл 'named.root' содержит все корневые серверы (адреса не меняются годами, так что вы можете не редактировать этот фыйл). zone "example.org" Это определяет файл, в котором сервер DNS может найти информацию о домене 'example.org' zone "1.168.192.in-addr.arpa" Эта зона используется для обратных поисков (lookup) DNS. Как вы могли обратить внимание, адрес ip яаляется обратным и в нем пропущен последний номер. Это решение для проблемы 'яйца и курицы'. Откуда сервер DNS знает на каком сервере он может найти информацию, которую он ищет? Он разрешает адрес ip и опрашивает ответственный за это сервер, но как он опрашивает сервер? путем разрешения имени хоста. Вы видите, это небольшая проблема. Вот почему выбран этот метод. Я не стану углубляться в подробности, поскольку для установки сервера DNS в этом нет необходимости. db.example.org Это файл зоны для вашего домена. Вот пример: --- $TTL 86400 example.org. IN SOA ns.example.org. admin.example.org. ( 2001220201 ; Serial (YYYYDDMM plus 2 digit serial) 86400 ; refresh (1 day) 7200 ; retry (2 hours) 8640000 ; expire (100 days) 86400) ; minimum (1 day) IN NS ns.example.org. IN MX 10 mail.example.org. ns IN A 192.168.1.1 sun IN A 192.168.1.100 moon IN A 192.168.1.101 maan IN CNAME moon --- Комментарии в конфигурационных файлах обычно помечаются точками с запятой, вместо слэшей!!! За каждым доменом точка выделена жирным. Это потому, что эта точка ДОЛЖНА быть там, а общей ошибкой является то, что многие об этом забывают. $TTL Здесь должно быть указано время жизни по умолчанию. SOA Это сокращение от Start Of Authority и за ним должен следовать домен первоначального хоста и почтовый адрес администратора сервера DNS. Как вы могли заметить: в почтовом адресе отсутствует символ `эта'. Все это потому, что символ `эта' имеет здесь другое значение, а следовательно, этот символ заменен первой точкой там где это необходимо. Serial Это последовательный номер для этой зоны, он должен увеличиваться каждый раз, когда что-то было изменено. Хорошая структура последовательного номера: YYYYDDMM плюс 2 цифры. Первые четыре цифры - это год, затем день, месяц и последовательный номер. Последнее - полезно когда вы обновляете файл зоны более одного раза в день. IN NS ns.example.org. Это говорит серверу dns, что 'dns.example.org' является ответственным за эту зону. В данном случае, этот ответственный сервер dns находится в том же домене (example.org), что и домен за который он отвечает. Вот пример более реалистичной зоны: --- $TTL 86400 mydomain.org. IN SOA ns.example.org. admin.example.org. ( 2001220201 ; Serial (YYYYDDMM plus 2 digit serial) 86400 ; refresh (1 day) 7200 ; retry (2 hours) 8640000 ; expire (100 days) 86400) ; minimum (1 day) IN NS ns.example.org. IN MX 10 mail.example.org. mydomain.org. A 211.211.211.211 www IN A 212.212.212.212 db IN A 213.213.213.213 --- Как вы можете видеть в этом примере добавлена запись mx и данные для доменного имени без поддомена. Адрес example.org все еще здесь, поскольку он является ответственным сервером dns. example.org-reverse Этот файл используется для обратных поисков (lookup) --- $TTL 86400 @ IN SOA ns.example.org. admin.example.org. ( 2001220200 ; Serial (date, 2 digits version) 86400 ; refresh (1 day) 7200 ; retry (2 hours) 8640000 ; expire (100 days) 86400) ; minimum (1 day) IN NS ns.example.org. 100 IN PTR sun.example.org. 101 IN PTR moon.example.org. --- PTR PTR означает Указатель (Pointer). localhost.rev Этот файл просто мапит 127.0.0.1 на localhost. --- $TTL 3600 @ IN SOA ns.example.org. admin.example.org. ( 2001220200 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; Minimum IN NS ns.example.org. 1 IN PTR localhost.example.org. --- Запуск сервера DNS Итак, теперь вы создали/отредактировали все необходимые конфигурационные файлы и хотите запустить ваш сервер. Вы можете сделать это вручную, введя (будучи root) '/usr/sbin/named'. Теперь проверьте /var/log/messages на наличие ошибок. Если ваш сервер запустился без ошибок, измените файл '/etc/resolv.conf' на что-то, соответствующее следующему: --- domain example.org nameserver 192.168.1.1 --- Теперь запустите nslookup и запросите ваш сервер по одному из поддоменов в вашем файле зоны. Если все это работает, то вы, вероятно, захотите, чтобы сервер DNS автоматически запускался при загрузке вашего сервера. Вставьте следующие строки в '/etc/rc.conf' --- named_enable="YES" named_program="/usr/sbin/named" named_flags="-u bind -g bind" --- Убедитесь, что пользователь и группа 'bind' существуют. Если вы не запустили named с этими пользователем/группой, то он будет запускаться с правами root:wheel (нужно объяснять, почему так делать не стоит?) Что ж, если у вас еще есть вопросы, можете попробовать i_dont_get_it@lowlife.org и если у нас будет время и вы сказали слово `пожалуйста', то мы ответим >;-)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Kud_V (?), 15:59, 02/04/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Огромное СПАСИБО автору.
    Я давно не видел более наглядной и конкретной статьи.
     
  • 1.2, Eugeny A (?), 11:08, 11/04/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    спасибо за статью
    никогда не было проблемы с установкой bind
    а тут напасть
    устанавливаю хоть 8.3.4 хоть 9 на ASP Linux
    все запускается без ошибок
    а получаю
    # nslookup
    *** Can't find server name for address 172.26.11.180: No response from server
    *** Default servers are not available
    может ли быть ошибка не в конфигурации bind,
    ее то я вылизал несколько раз ?
    спасибо
     
     
  • 2.3, alz (?), 05:44, 12/05/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Нужно поменять адрес DNS сервера в resolv.conf
    c 172.26.11.180 на тот который available.
    Видимо по этому адресу уже нет DNS сервера.
     

  • 1.4, Arthur Skripiy (?), 14:37, 24/06/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А можно поподробнее о forwarders. У меня в resolv.conf стоит первым мой сервер и за ним еще 3 провайдерских. Нужно еще в named.conf прописывать forwarders на сервера провайдера?
     
  • 1.5, zzz1 (?), 14:13, 21/07/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Такой вопрос.А можно ли чтобы для одной и той же  зоны для внешних запросов выдавались внешние адреса, а для внутренних - внутренние.
     
     
  • 2.6, artem (?), 17:54, 11/08/2003 [^] [^^] [^^^] [ответить]  
  • +/
    необходимо использовать виды (view), доступные в 9х версиях bind
     
     
  • 3.7, Hety (?), 16:28, 22/11/2003 [^] [^^] [^^^] [ответить]  
  • +/
    или использовать два ДНСа - внутренний(для внутренних запросов) у которого внешний стоит в форвардерах.
     

  • 1.8, drive (?), 19:50, 10/03/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ОГРОМААААААДНЕЙШЕЕ СПАСИБО
    после прочтения статьи всё заработало..до этого ну прям никак...
    а щас сбылась мечта идиота...:))
    ещё раз спасибо...
     
  • 1.9, Gerasim (?), 14:54, 29/03/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а у меня наверно /dev/hands глючит:)
    никак не врублясь после смены resolf.conf айпи-адреса ДНС моего провайдера на айпи-самого сервера 192.168.0.1 nslookup кричит
    *** Can't find server name for address  No 192.168.0.1: response from server
    *** Default servers are not available
     
  • 1.10, Gerasim (?), 15:10, 29/03/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ха-ха! а я и не думал что надо сразу несколько наймсерверов через запятую писать. все заработало и нслукап даже не ругается и чинно выдет по имени определнный айпи.
     
  • 1.11, Boris (??), 16:36, 14/07/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Люди помогите, третий день бьюся- настроил все как по статье вроде. Делал локально зону хочу перетащить ее от провайдера к себе на комп.После nslookup появляется такая запись
    Can't find server name for address  No 127.0.0.1: server Faild
    Can't find server name for address  No 82.138.2.188: server Faild
    Default servers are not available
    Помогите может кто чего знает
     
     
  • 2.12, Serokka (?), 18:47, 21/07/2004 [^] [^^] [^^^] [ответить]  
  • +/
    Попробуй посмотреть файервол на машине, такое обычно от него.
     

  • 1.13, Geron (?), 20:12, 27/07/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Скажите пожалуйста что нужно разрешить на файерволе чтобы нормально рестартовала служба NAMED
     
  • 1.14, Oleg (??), 16:06, 04/03/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо за статью, однако получилось не все гладко. Почему-то не идет форвардинг. Если указать в /etc/resolv.conf и мой и провайдерский dns то сначала идет запрос на мой, потом после довольно продолжительной паузы получаем ответ с провайдерского. А вот если оставить только свой, тогда вилы...
    При запуске named в логе пишется вот что:

    Mar  4 19:00:42 webtrud named[98709]: starting BIND 9.3.0
    Mar  4 19:00:42 webtrud named[98709]: couldn't add command channel 127.0.0.1#953: not found

    Не пойму чего не находит...

     
  • 1.15, Oleg (??), 13:34, 05/03/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    пардон, всего лишь руки надо было выпрямить :)
     
     
  • 2.24, lizz (?), 23:24, 04/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    сказал бы как это сделать, что б обдегчит судьбу другим ;)
     
     
  • 3.27, psv (??), 22:02, 22/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    ipfw add allow tcp from localhost to 127.0.0.1 953
    как-то так
     

  • 1.16, Михаил (??), 19:56, 26/03/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Большое спасибо за статью.
     
  • 1.17, DerAlSem (??), 13:04, 27/04/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    FreeBSD 5.3
    man named
    -g     Run  the  server  in  the  foreground  and  force all logging to
                  stderr.

    Я так думаю, что надо ключик -g bind убрать из rc.conf

    А в остальном - великолепная статья.

     
  • 1.18, xayam (?), 12:34, 31/05/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1)'Это говорит серверу dns, что 'dns.example.org' является ответственным за эту зону.' - тут видимо опечатка, dns вместо ns
    2)mydomain.org.    A 211.211.211.211
    www           IN A 212.212.212.212
    db            IN A 213.213.213.213
    Пропущено IN.
    А в общем неплохая статья. Спасибо
     
  • 1.19, _SlaSh_ (?), 23:06, 20/06/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а у меня проблема с почтовым сервером. sendmail отправляет почту вверх на свой smart_host, а обратно в свою зону писем не получает. Мне сказали, что проблема в DNS, что запись MX указывает на почтовый сервер, который нигде больше не объявлен (хотя я указал прямым текстом доменное имя своего сервера).
    Прошу помощи, никак не могу понять этот момент.
    Спасибо.
     
  • 1.20, mactep (?), 09:04, 14/02/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Помогите пожалуйста как настроить ДНС сервер в домене что бы все работало пытаюсь войти в домен с другой машины говорит что никакая служба ДНС на контроллере на запущена хотя она по всем признакам запущена
     
  • 1.21, yus (?), 19:20, 20/07/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отличная статья. Спасибо - очень помогло вникнуть.
     
  • 1.22, Ak (?), 13:31, 06/09/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошая статья, очень полезно. Респект.
     
  • 1.23, Xen0m0RpH (?), 15:18, 20/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Большое спасибо за такую классную статью !
    С первого раза все завелось !
    Bind ставил 1 раз ))
     
  • 1.25, Insane (?), 10:45, 29/06/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    не заработало, пока в дефолтном /etc/namedb/named.conf не закомментил
    //     listen-on       { 127.0.0.1; };
     
  • 1.26, lepr (?), 16:44, 13/02/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    хорошая статья. спасибо
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




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

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