avatar Ubuntu Настройка DNS+DHCP сервера для локальной сети+динамическое обновление DNS зон, под управлением Ubuntu 12.04

Значение службы DNS многие не учитывают, фактически, эта служба является краеугольным камнем в работе сети интернет в целом и локальных сетей в частности, мы в свою очередь, будем оперировать менее глобальными масштабами и настроем данную службу в нашей локальной сети.
Идея проста, мы настроим разрешение имен внутри локальной сети, а в случае обращения к сайтам в сети интернет, то запросы будут передаваться вышестоящим DNS серверам, для разрешения имен сайтов.

Я не буду рассказывать назначение данной службы, о том как она работает можно прочитать в Википедии. Скажу только что эта служба иерархическая.
Как я писал раньше, у нас есть сервер который мы будем обвешивать функционалом, я уже рассказал как настроить его в качестве шлюза и о том как настроить работу службы DHCP, для раздачи IP адресов клиентам в локальной сети. В этот раз я расскажу о том как настроить на нем сервер DNS, ранее я уже писал, о том как настроить кеширующий DNS сервер для локальной сети, но было это уже довольно давно и я решил обновить статью, за одно добавив в нее, немного функционала.
Как всегда напоминаю что, данный функционал заводить на шлюзе не обязательно, все будет работать и так, но если добавить, то все должно работать, намного лучше, хотя с точки зрения конечного пользователя, разница будет не заметна.

Дополнительным плюсом это будет автоматическое создание прямой и обратной DNS зоны, для клиентских устройств локальной сети. Аналогичный процесс используется в сетях под управлением MS Windows в среде Active Directory. Там службы DNS и DHCP тесно интегрированы между собой т.е клиентский ПК подключившись к сети и получивший IP адрес автоматически получает DNS запись вида hostname.domainname.tld это добавляет удобства в случае необходимости подключения по имени а не по IP-который дтуднее запомнить, дополнительным плюсом является создание обратной зоны которая позволяет проводить обратный процесс -разрешение имени по IP, что может быть полезно в случае поиска устройсва если известен его IP адрес, то узнав его имя можно сразу понять о ком идет речь.
Собственно, подобную схему мы и реализуем, основной идеей всего этого будет полная автоматизация данного процесса для IT специалиста т.к. DHCP сервер будет создавать прямую и обратную зоны-автоматически.

Предполагается что:
1) Операционная система Ubuntu 12.04 установлена, хотя на Debian будет также работать ничуть не хуже.
2) Сервер настроен в качестве шлюза по статье: Настройка шлюза локальной сети, на базе Ubuntu 12.04
3) Также на указанном сервере настроена служба DHCP по статье: Настройка DHCP
сервера под управлением Ubuntu 12.04


Первым делом, нам необходимо удалить пакет dnsmasq — который был установлен по статье, Настройка шлюза локальной сети, т.к надобность в нем отпадает, вместо него у нас будет использоваться Bind9.

Поднимаем права до root:
sudo su


aptitude purge dnsmasq


Установка DNS сервера


Установим Bind:
aptitude install bind9


Теперь генерируем ключ, для обновления DNS записей:
dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DHCP_UPDATER


Проверим что у нас получилось:
cat Kdhcp_updater.*.private|grep Key


Нам выдаст нечто подобное (у вас ключ получится другим)
Key: cYqlx8g/jLcIxXFDpqrxZw==
Его нам необходимо записать, т.к. он нам еще пригодится.

Переходим к настройкам Bind9, для начала отредактируем файл name.conf.option:
nano /etc/bind/named.conf.options

Туда добавляем следующие строки:
forwarders {
        8.8.8.8;
     };

    listen-on {
      127.0.0.1;
      192.168.10.1;
    };


Рассмотрим более подробно то что мы написали:
В пункте forwarders мы указали, вышестоящие DNS сервера, куда будет передаваться запрос в случае если информации о запрошенном URL не будет найдено в собственной базе, в нашем случае, это DNS сервер google, но можно указать те которые нужны вам, например DNS сервер вашего провайдера.
В пункте listen-on указываем IP адреса, которые будет обслуживать наш DNS сервер, это localhost и интерфейс по которому подключена наша локальная сеть 192.168.10.1, запросы на другие IP адреса обслуживаться не будут, эту функцию можно рассматривать как дополнительную возможность по снижению нагрузки на наш сервер т.к. запросы из вне-не обслуживаются.

Переходим к редактированию файла name.conf.local:
nano /etc/bind/named.conf.local


Добавми туда следующее:
key DHCP_UPDATER {
        algorithm HMAC-MD5.SIG-ALG.REG.INT;
        secret "cYqlx8g/jLcIxXFDpqrxZw==";
};
 
zone "example.net" IN {
        type master;
        file "/var/lib/bind/forward.db";
        allow-update { key DHCP_UPDATER; };
};
 
zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "/var/lib/bind/reverse.db";
        allow-update { key DHCP_UPDATER; };
};


Рассмотрим написанное, более подробно:
Пункт key DHCP_UPDATER содержит информацию о ключе, который мы генерировали в самом начале.
Пункт zone «example.net»-зона, которую обслуживает наш DNS сервер, в нашем случае example.net (многие советуют использовать зону .local, я этого делать не рекомендую т.к. avahi daemon с данными зонами не работает, да и Microsoft также крайне не рекомендует использовать зону local, в своей, свежей, документации к Windows 2k8 )
Также там описывается тип зоны- master и путь к файлу где будут храниться данные зоны, последний пункт разрешает обновление данного файла, только с использованием ключа.
Пункт zone «10.168.192.in-addr.arpa» отвечает за создание зоны обратного просмотра, назначение остальных пунктов, думаю, вы уже поняли.

Теперь нам необходимо создать сами файлы, в которых будут храниться данные зоны example.net.
Они будут располагаться в /var/lib/bind/ сделано это по одной постой причине-группа bind не имеет права на запись в /etc/bind/, а начинать менять права на системные директории, не очень хорошая идея.

Переходим с созданию файла настроек зоны, для начала, создадим зону прямого просмотра назовем его forward.db:
nano /var/lib/bind/forward.db


С содержимым:
$TTL 86400      ;       1 day
example.net.    IN      SOA     srv01.example.net. admin.example.net. (
                                20110103        ; Serial
                                10800           ; Refresh
                                3600            ; Retry
                                604800          ; Expire
                                86400           ; Minimum TTL
                        )

                IN      NS      srv01.example.net.
                IN      A       192.168.10.1
localhost       IN      A       127.0.0.1
srv01           IN      A       192.168.10.1


Из содержимого понятно что наша зона example.net, в которой присутствует DNS сервер (он же шлюз) с именем srv01, который имеет IP адрес 192.168.10.1. Других записей делать не будем т.к. их будет добавлять DHCP сервер автоматически.
Если вдруг вам понадобится создать запись в ручную, то достаточно добавить строку с именем и IP адресом узла локальной сети.

Теперь создадим файл зоны обратного просмотра, чтобы не выдумывать ничего, назовем его reverse.db
nano /var/lib/bind/reverse.db

С содержимым:
$TTL 86400      ;       1 day
10.168.192.in-addr.arpa. IN SOA srv01.example.net. admin.example.net. (
                        20110104        ; Serial
                        10800           ; Refresh
                        3600            ; Retry
                        604800          ; Expire
                        3600 )          ; Minimum

        IN      NS      srv01.example.net.
1       IN      PTR     example.net.
1       IN      PTR     srv01.example.net.


Выходим и перезапускам bind
/etc/init.d/bind9 restart

Теперь нам необходимо проверь работоспособность нашего сервера локально.
Проблема заключается в том что наш сервер по умолчанию использует DNS настройки которого по получил по сети и соответственно он ничего не знает о локальном DNS сервере, которые крутится на нем же-это нам необходимо исправить.
Если мы полезем, править resolv.conf то в Ubuntu 12.04 нас поджидает большой сюрприз в виде надписи:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN

Которая говорит нам о том что: resolv.conf нельзя редактировать и что он создается динамически, а все внесенные в него изменения будут перезаписаны!
В общем его править нельзя, мы будем править сам шаблон этого файла, который находится в /etc/resolvconf/resolv.conf.d/ нас интересует файл head, вот его мы и будем править:
nano /etc/resolvconf/resolv.conf.d/head

Добавляем в него:
domain example.net
search example.net
nameserver 127.0.0.1


Более опытные уже догадались что это ничто иное как DNS суффикс и домен для поиска по умолчанию, а также IP адрес локального DNS сервера.
У данной схемы есть еще одно преимущество- если настройки сети получаются нашим шлюзом от DHCP сервера провайдера, то DNS сервер провайдера добавляется в конце списка, после строки nameserver 127.0.0.1, таким образом, наш локальный DNS всегда является приоритетным, а в случае выхода его из строя, запросы начинают идти к DNS провайдера, автоматически!
Перезапустим сеть:
/etc/init.d/networking restart


Пробуем определить наш DNS сервер:
dig srv01

В ответ получаем нечто подобное:
; <<>> DiG 9.8.1-P1 <<>> srv01
;; global options: +cmd
;; Got answer:
;; ->>HEADER<< — opcode: QUERY, status: NXDOMAIN, id: 56977
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;srv01. IN A

;; AUTHORITY SECTION:
. 812 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2012080300 1800 900 604800 86400

;; Query time: 44 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Aug 3 13:28:45 2012
;; MSG SIZE rcvd: 98
Значит ответы присылаются, это хорошо.
Проверим самоопределение имени нашего сервера:
nslookup srv01

В ответ получим
Server: 127.0.0.1
Address: 127.0.0.1#53

Name: srv01.example.net
Address: 192.168.10.1

Эту операцию, также, можно выполнить и через host, сделав запрос вида:
host srv01


Если имя преобразовано в IP значит зона прямого просмотра работает нормально.
Теперь проверим зону обратного просмотра:
nslookup 192.168.10.1

Нам выдаст:
Server: 127.0.0.1
Address: 127.0.0.1#53

1.10.168.192.in-addr.arpa name = srv01.example.net.
1.10.168.192.in-addr.arpa name = example.net.
Если ответ получен, значит обратное разрешение имен, также, работает.
Можно считать половину дела сделанным…

Настраиваем динамическое обновление зон DHCP сервером.


Если вы настраивали DHCP сервер, по моему руководству, ссылка на которое есть в начале этой статьи, то у вас в конфигурационном файл должна присутствовать запись:

subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.254;
option domain-name-servers 192.168.10.1;
option domain-name "example.net";
option routers 192.168.10.1;
option broadcast-address 192.168.10.255;
default-lease-time 604800;
max-lease-time 604800;
}

Мы ее немного подправим, а именно заменим option domain-name на example.net
перед диапазоном адресов нашего DHCP сервера, добавляем следующее:
nano /etc/dhcp/dhcpd.conf


За одно добавим строку update-static-leases on; которая отвечает за автоматическое создание прямой и обратной зоны для клиентов с зарезервированным IP, без нее записи придется создавать в ручную, а мы этот процесс автоматизируем.
ddns-update-style interim;
update-static-leases    on; 
key DHCP_UPDATER {
algorithm hmac-md5;
secret "cYqlx8g/jLcIxXFDpqrxZw==";
}
 
zone example.net. {
primary 127.0.0.1;
key DHCP_UPDATER;
}
 
zone 10.168.192.in-addr.arpa. {
primary 127.0.0.1;
key DHCP_UPDATER;
}


В результате всех действий, у вас должен получиться конфигурационный файл вида:

ddns-update-style interim;
update-static-leases    on;
key DHCP_UPDATER {
algorithm hmac-md5;
secret "cYqlx8g/jLcIxXFDpqrxZw==";
}
 
zone example.net. {
primary 127.0.0.1;
key DHCP_UPDATER;
}
 
zone 10.168.192.in-addr.arpa. {
primary 127.0.0.1;
key DHCP_UPDATER;
}

subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.254;
option domain-name-servers 192.168.10.1;
option domain-name "example.net";
option routers 192.168.10.1;
option broadcast-address 192.168.10.255;
default-lease-time 604800;
max-lease-time 604800;
}


Остальные настройки, оставляем как они были представлены в руководстве по настройке DHCP сервера.

Перезапустим DNS и DHCP сервер:
/etc/init.d/bind9 restart
/etc/init.d/isc-dhcp-server restart


Подключаем наш клиентский ПК к локальной сети, предположим что его имя test01 он получит IP от нашего DHCP сервера, а DHCP сервер создаст DNS запись вида test01.example.net.
Пробуем выполнить запрос по имени
nslookup test01

нам должен возвращаться IP адрес который получила клиентская машина от DHCP сервера.
Ну и преобразование IP адреса в имя, также должно работать.
Во время работы данной связки, у нас будут создаваться файлы в директории /var/lib/bind с расширением .jnl, они создаются автоматически, создавать или удалять их не нужно.
Выглядеть это будет так как на скриншоте:



Теперь работы по настройке данной схемы можно считать успешно завешенными.
На этом все.
Возникли предложения по улучшению или вопросы, прошу в комментарии, нашли ошибку, пишите в личку…

290 комментариев

avatar
Добрый день. Собственно вопрос такой: можно ли теперь безбоязненно указывать данный DNS-сервер в качестве DNS-сервера для AD на Windows 2003/2008? На сколько я знаю, с настройками по умолчанию при поднятии контроллера домена оный (контроллер) очень сильно ругается. что не может ничего записывать в ДНС.
avatar
Ответ нет! Контроллер домена это уже и так вещь в себе и содержит кучу различных записей и это НЕ имеет смысла. Его можно указать только в качестве сервера пересылки т.к. сам контроллер домена уже является DNS сервером и это отменить нельзя.
Тем более что если вы поднимаете первый контроллер домена, в новом лесу, мастер установки вам не даст отказаться от поднятия роли DNS, GC.
Если у вас используется контроллер домена, то проще все это развернуть на нем, а запросы пересылать вышестоящим серверам провайдера/корневым/гугла
avatar
Ответ да — этому аду можно указать использовать сторонний сервер, но так как майкрософт все делает через одно место его нужно будет еще допилить, например так www.lissyara.su/articles/freebsd/programms/bind+ad/
avatar
Привет уважаемые профи, пытаюсь настроить bind подскажите плз мне надо что бы в локальной сети был вебсервер и чтобы я мог зайти на свой сайт который находится на етом сервере не набирая ip в браузере а к примеру examle.com из другого компа, (хочу научиться ) Такая задача решается использованием bind? (и когда у меня будет выделеный ip-перенастроить етот сервер в хостинг для нескольких сайтов) (извените если вопрос не коректный-я учусь), помогите плз!
avatar
Таки да!
Для решения этих вопросов и была придумана служба ДНС в целом и DNS-сервера Bind, в частности.
avatar
Большое пасибо за ответ!
avatar
Обезатильно вторичный dns настраивать или в локальной сети возможно без вторичного обойтись?
avatar
Достаточно одного.
2 DNS сервера необходимо для поддержки доменного имени, в целях повышения отказоустойчивости, для локалки хватит и одного
avatar
А как редактировать файл /etc/resolv.conf, ато я изменил, сохранил, перезагрузил а изменения изчезли
avatar
Вы решительный, но не внимательный!
В статье этот момент освящён и даже выделен жирным шрифтом с подчеркиванием, но никто его не видит- ПАРАДОКС!
avatar
Согласен с вами, с вопросом разобрался, но вот другой по ip c другого компа могу зайти но не могу зайти по имени(example.com) Хотя бы преблизительно где искать? В какую сторону рыть?
avatar
В настройках сетевого подключения, добавьте ваш локальный DNS сервер, откуда ваш ПК узнает где искать адрес хоста example.com?
Он это узнает от DNS сервера! Вот и добавьте IP вашего DNS сервера, чтобы комп знал где спросить…
avatar
Извените если вопрос не коректный, но как тогда DNS в интернете работает? (во всех компах DNS не прописать)
avatar
Вот так:
ru.wikipedia.org/wiki/DNS
avatar
А разница между настроикой днс-сервера для локальной сети и для днс-сервера (для реального сайта) заключается только в реальном(static ) iр? Или есть еще «подводные камни»?
avatar
Только в подходе к уровню безопасности, никаких подводных камней там нет.
Читайте про работу службы DNS, там все подробно расписано.
avatar
Большое спасибо за советы, побольше бы таких сайтов как ваш.
avatar
Добрый день. Огромное спасибо за статью. Почти все расставила по своим местам.
Хочу прояснить некоторые моменты.
Допустим у меня DNS стоит на 10.10.10.252 (это комп который я, собственно, и настраиваю). DHCP нет.
1. в /etc/network/interfaces надо добавлять строку dns-servers 10.10.10.252?
2. имеет ли значение имя зоны «10.168.192.in-addr.arpa» ?? то есть в моем случае она должна называться 10.10.10.in-addr.arpa?
3.srv01 — это произвольно выбранное имя? У меня при установке Убунты я назвал машину mail. тогда в файле forvard должно быть mail.example.net (это я уже так спрашиваю, для проверки, потому что не работает, хоть тресни)( )?
4. А что с этим делать?
nslookup srv01
отклик:
server 127.0.0.1
address 127.0.0.1#53
**server cant find mail: NXDOMAIN

host mail —
host mail not found 3(NXDOMAIN)

а также
nslookup 10.10.10.252
Got SERVFAIL reply from 127.0.0.1, trying next server
Got SERVFAIL reply from 127.0.0.1, trying next server
server ::1
adress ::1#53
**server cant find 252.10.10.10.-in-addr.arpa: SERVFAIL


Спасибо)
avatar
1) нет не нужно
2) В вашем случае именно так и будет
3) Имя srv01 исключительно для понимания
4) Для начала нужно разобраться для чего служат эти команды
Первый спойлер: говорит о том что сервер не нашел имя mail
Второй спойлер-тоже самое, не найдена запись mail
третий-нет и обратной DNS зоны для IP, т.к. она должна создаваться автоматически.
Скопируйте схему как есть, чтобы понять как она работает, а то вы DHCP убрали, толком не разобравшись, схему поломали и теперь удивляетесь- почему не работает…
Вся идея заключается в том что DHCP сервер автоматизирует процесс создания прямой и обратной зоны в DNS, для клиентский систем.
В принципе все это можно настроить руками, что не очень удобно, да и смысла нет.
avatar
Спасибо, попробую.
А обязателен ли ключ, для обновления DNS записей?
avatar
Обязателен!
avatar
не понимаю. зачем мне нужен dhcp если я только хочу поднять dns? dhcp у меня раздает win-сервер, и мешать ему в этом вопросе я не хочу)))
«Вся идея заключается в том что DHCP сервер автоматизирует процесс создания прямой и обратной зоны в DNS, для клиентский систем.» — вот это, я понимаю, ключевая фраза, но как-то все неочевидно…
После настройки dhcp по Вашему образцу при рестарте bind выдает ошибку
rndc:connect failed:127.0.0.1#953: connection refused

Подскажите, пожалуйста, такую вещь…
Вот, сейчас у меня все работает. Стоит домен example.com, dns и dhcp сервер на windows. На Убунте я хочу поднять еще один dns сервер параллельно, чтобы проверить. Мои действия должны быть точно такими же как написано выше? Только IP сервера будет соответственно другой? (Я Гуглил, но то ли я запрос неправильно составляю, то ли задача не тривиальная)) ).И как в таком случае быть с dhcp?

Спасибо, что отвечаете)))))
avatar
Вы хотите чтобы данные с DNS сервера Windows реплицировались на сервер Linux?
Или вы хотите создать сервер пересылки?
Что вы хотите получить на выходе?
avatar
В идеале -конечном итоге, Я хочу получить машину, на которой крутится DNS, почта и web-server. dhcp и домен останутся на windows. IP на всех машинах статические. Так исторически сложилось). На данный момент я хочу установить убунту и проверить работу dns.
avatar
Так у вас контроллер домена уже является DNS сервером, смысл городить второй внутри сети.
Это если вы выносите его за пределы сети периметра, по соображениям безопасности, это имеет смысл чтобы не выставлять виндовый сервер в интернет, а так, просто создайте А запись в вашем DNS и укажите IP вашего сервера Linux.
Делайте систему проще-легче будет обслуживать…
avatar
Я пришел на это место недавно и десять лет до этого все стояло именно так.
На slakware -который настраивался именно 10 лет назад стоит dns почта и сайт, начинает лететь жеский диск, да и вообще систему обновлять надо). С Линуксом я сталкивался только для самообразования, поэтому разбираюсь в нем не очень, и Слака — это для совсем уж адептов. Выбрал Убунту, читаю ваш блог, саморазвиваюсь.
Сейчас стоит именно так. На машинах днс сервером прописан виндовый. Но он редиректит запросы на слаку. Если эту машину отключить — интернета нет. После слаки — запросы идут на рутер (еще потом с ним разбираться:) ). Почему так сделано — только богу известно. Доступа до предыдущего админа нет. Да и самому хочется разобраться. Но это все лирика). Извините за флуд, накипело)))).
И вот, собственно, я хочу поднять еще один ДНС на УБУНТУ, который будет стоять параллельно Слаке (для начала). А для этого на Убунте должно стоять только ДНС. чтобы я, на любой машине, поставил адрес ДНС Убунты — и интернет заработал. такова моя первичная цель.
avatar
Так в DNS форвардинг добавьте сервера Гугла 8.8.8.8 и все кино.
Ну а если нужно настроить кеширующий DNS сервер, то вот вам ссылка howitmake.ru/blog/ubuntu/29.html
avatar
Спасибо. Я и раньше делал по той схеме, но что-то у меня не заработало и я перешел сюда. Мне показалось, что и обратную зону надо прописывать.
Поставил на чистую систему «кеширующий DNS сервер» — заработало. Буду смотреть, где я здесь накосячил)
Спасибо большое за консультацию.
Подсосусь к вашему блогу, буду учиться дальше)
avatar
конечно пользуйтесь, для этого сайт и создавался…
avatar
Вопрос в продолжение темы:
у меня сеть 172.16.xxx.xxx 255.255.224.0

сейчас прописал везде по схеме так: 16.172.in-addr.arpa.

Однако, так не работает:
nslookup 172.16.1.100
;; Got SERVFAIL reply from 127.0.0.1, trying next server
Server:         172.16.0.1
Address:        172.16.0.1#53

** server can't find 100.1.16.172.in-addr.arpa: NXDOMAIN


В таком случае как правильно прописывать обратную зону?
avatar
zone «1.16.172.in-addr.arpa»
avatar
Так тоже попробовал, в первую очередь. Не заработало. Я понимаю, что у меня недостаточно знаний по правилам формирования обратных зон, но интуитивно решил раз сеть у меня 172.16.0.0/19, значит третье число после точки переменное и его не нужно указывать, как четвертое в случае примера.

что можете еще посоветовать?
avatar
Думаю, ножно смотреть логи, 99% ответов можно найти там.
/var/log/bind9
avatar
Разобрался, чтобы по команде:
nslookup 172.16.1.100

получался ожидаемый ответ, понадобилось в файле /var/lib/bind/reverse.db
внести следующие изменения:

$TTL 86400      ;       1 day
1.16.172.in-addr.arpa. IN SOA srv01.domain.net. admin.domain.net. (
                        20110104        ; Serial
                        10800           ; Refresh
                        3600            ; Retry
                        7200            ; Expire
                        3600 )          ; Minimum

          IN      NS      srv01.domain.net.
100       IN      PTR     domain.net.
100       IN      PTR     srv01.domain.net.
avatar
Так смысл добавлять руками, если все это должно обновляться автоматически, смотрите логи, там наверняка написаны причины почему записи автоматически не создаются DNS и DHCP серверов.
avatar
Снова добрый день)
Что бы я не делал, приходят отклики
server 127.0.0.1
address 127.0.0.1#53
**server cant find mail: NXDOMAIN

host mail —
host mail not found 3(NXDOMAIN)

Уже замучился.
С кеширующим ДНС тоже все не так просто оказалось.
Я проработал на нем несколько дней, А потом, при подмене сервера интернет работал ровно 5 мин. И отключался. Да и нужен обратный ДНС. Я уже даже почти разобралс со Слакой, а это становиться не хочет…
Извините за глупые вопросы — уже все в голове перепуталось и стало глубым и зеленым.)
Хочется уточнить.
example.com — это наш корпоративный домен. А не корпоративный сайт, который лежит на этом же сервере? Или это — любое абстрактное имя? Понимаю, вопрос до бесконечности глупый, но уже не знаю, что и думать....(
DHCP у нас раздается Виндовым сервером и здесь он не нужен. Для внутренней сети нужны только несколько имен, которые можно прописать вручную.
Для внешней сети нужно прописать IP сайта, который лежит на этом сервере, ну это просто добавлением зоны в name.conf.local
Хочется спросить… ну почему же все не работает??)
Нужно ли кроме всех действий описанных вами в статье предпринимать еще какие-либо?
Редактировать файлы hostname, hosts?
Спасибо за понимание)))))
avatar
Здравствующие.
Что-то долгая эпопея у вас с DNS :)
example.com — зона которая специально создана чтобы использоваться в примерах и руководствах, подробнее прочитать можно тут.

В вашей ситуации, вы явно городите хренотень делаете не правильно! Зоны обновляться не будут, потому что у вас есть их обновлять некому!
Не занимайтесь ерундой и просто сделайте как я с кажу-на виндовом сервере поднимите роль DNS и настройте сервера пересылки, например гугловские 8.8.8.8, а то что вы там пытаетесь городить, совершенно не правильно, а начинать делать хренотень, то что до вас один дилетант нагородил а вы его шагами идете, если так исторически сложилось-тоже тупиковый путь, сделайте как правильнее+проще=надежнее.
Вот честно-работы на 1 час- если устраивать чаепития. Делайте системы проще!
avatar
Конечно, вы правы) Но пока отступить я не могу)(. Про example.com — имелся ввиду не конкретный домен, а именно наш, этот я привел в качастве примера)
Буду разбираться, пока мозг не вытечет) Спасибо за общение))))
avatar
Я признаю что делаю ерунду, но продолжаю ее делать, а сделать правильно я не могу…

В вашей ситуации, думаю что, данная схема без надобности.
avatar
К сожалению это так. Начальник уперся — сделай именно так, как было. И будут тебе плюшки.Прекрасно осознаю, что занимаюсь фигней, но… Жизненная ситуация такова — либо я, либо эта хрень). Но уже раскусил ее… почти)
avatar
Здравствуйте.
Ну во-первых — спасибо за отличные статьи.
Во-вторых — наткнулся на проблему, не могу решить(.
Демон bind9 никак не хочется подниматся.
named показывает ошибку в конфиге в строках:
19-Nov-2012 16:43:58.226 /etc/bind/named.conf.options:27: unknown option 'forwarders'
19-Nov-2012 16:43:58.226 /etc/bind/named.conf.options:31: unknown option 'listen-on'


В чем может быть причина? Вроде по синтаксису все верно…
avatar
Здравствуйте.
Выложите содержимое этих файлов-разберемся.
avatar
здравствуйте.
очень благодарен вам за вашу работу. уже пару лет пользуюсь линуксом на уровне нашел что-то в инете — скопировал в терминал — что-то вышло. и только сейчас, прочитав несколько ваших статей, начинаю хоть немножко понимать что к чему.
ситуация такая. есть машина с установленным ubuntu 12.10 server и двумя сетевыми картами. также имеется ноут с ubuntu 12.04. пытаюсь настроить шлюз с dhcp и dns серверами. действовал по вашим статьям «Настройка шлюза локальной сети, на базе Ubuntu 12.04» (не устанавливал dnsmasq, поскольку потом его нужно удалять. правильно ли это?), «Настройка DHCP сервера под управлением Ubuntu 12.04» и «Настройка DNS сервера для локальной сети+динамическое обновление DNS зон, под управлением Ubuntu 12.04 (DNS+DHCP сервер)».
smoke@smoke-ubuntu:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr e0:cb:4e:c6:0a:c2  
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::e2cb:4eff:fec6:ac2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:193 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1445 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:20517 (20.5 KB)  TX bytes:228490 (228.4 KB)

eth1      Link encap:Ethernet  HWaddr 1c:af:f7:08:6f:76  
          inet addr:46.164.179.249  Bcast:46.164.179.255  Mask:255.255.255.0
          inet6 addr: fe80::1eaf:f7ff:fe08:6f76/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:146436 errors:0 dropped:0 overruns:0 frame:0
          TX packets:300315 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:15771943 (15.7 MB)  TX bytes:263894486 (263.8 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:5099 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5099 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:753061 (753.0 KB)  TX bytes:753061 (753.0 KB)

на клиенте пингуется 192.168.0.1, отвечает нормально на nslookup yandex.ru, но не пингует 8.8.8.8 и все остальное в интернете.
подскажите, пожалуйста, куда смотреть, что делать? очень хочется разобраться в данной тематике
avatar
1) поднимите шлюз, разберитесь с iptables чтобы ходили пинги к IP адресам
2) что выдает команда
nslookup yandex.ru
?
avatar
ткните, пожалуйста, в нормальную статью по настройке iptables. боюсь вообще все испортить и снова переустанавливать систему

nslookup yandex.ru
Server: 192.168.0.1
Address: 192.0168.0.1#53

Non-authoritative answer:
Name: yandex.ru
Address: 213.180.193.11
Name: yandex.ru
Address: 213.180.204.11
Name: yandex.ru
Address: 77.88.21.11
Name: yandex.ru
Address: 87.250.250.11
Name: yandex.ru
Address: 93.150.134.11
Name: yandex.ru
Address: 213.180.193.11
avatar
ой. там в коде нолик лишний перепечатал. извините
Address: 192.168.0.1#53
avatar
огромнейшая благодарность вам. я налажал в файле /etc/rc.local.
уже все работает
еще раз спасибо
avatar
Отлично! :)
avatar
Помогите разобраться.
Все делал четко по статье, подключил клиентский комп, он получил адресс по дхцп, получил днс требуемый…
Но, nslookup почему то его не видит (

nslookup testpc1
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
*** Can't find sashagrey: No answer
avatar
попробуйте набрать
nslookup testpc1.example.org
avatar
и да — обратную зону показывает как надо.
avatar
Здравствуйте.
Спасибо за отличный ресурс.
Хотел бы уточнить касательно динамического обновления DNS записей при регистрации ПК используя DHCP.
При выделении IP адреса из пула — регистрация происходит. Если адрес ПК прописан в конфигурации bind с помощю секции host { адрес… мак } то в таком случае адрес назначается согласно настройке, но регистрации в DNS не происходит.
Есть возможность расширить регистрацию в ДНС и привязаных в DHCP хостов?

P.S. можно конечно все статикой прописать, но хочется больше автоматизации.
avatar
Спасибо за коммент-отличный вопрос.
Честно говоря не знаю, я этим вопросом не озадачивался.
Но пока решения в лоб нет, думаю придется для зарезервированных IP создавать DNS запись вручную, все равно на него кроме них этот адрес использовать никто не будет/
avatar
Да, ручное редактирование рабочий вариант, только надо изменять и в DHCP и в двух файлах ДНС, каждый нечастый раз.

Кстати, можно ли к системе описаной в данной статье доработать VPN PPTP сервер (как Установка VPN сервера Debian/Ubuntu с использованием протокола PPTP) и настроить выдачу IP адресов нашим DHCP сервером и, возможно даже, обновление таких подключений в ДНС?

Если выделить внешние подключение в отдельную подсеть 192.168.128.х тогда можна распределить доступ на основании iptables.
avatar
Статья по настройке VPN сервера тут есть, воспользуйтесь поиском.
Вот только IP адреса будут выдаваться из диапазона который задается настройках самого VPN сервера, а не DHCP, т.к. широковещалка не проходит через маршрутизатор
avatar
Как всегда поиск рулит.
В конфиг сервера dhcp добавить директиву:
update-static-leases on;
включит обновление dns записей для статических IP адресов/хостов.
avatar
Отлично!
Статью поправил.
avatar
Здравствуйте Артфул!
Я все сделал как тут написано но бинд9 не запускается

root@usoshserver:/home/blink# /etc/init.d/bind9 restart
* Stopping domain name service… bind9 rndc: connect failed: 127.0.0.1#953: connection refused
[ OK ]
* Starting domain name service… bind9 [fail]

Подскажите что делать *_* (пользуюсь убунту впервые) Ubuntu 12.04 LTS
avatar
Смотрите логи сервера
/var/log/bind/
avatar
Dec 7 14:09:15 usoshserver named[8899]: starting BIND 9.8.1-P1 -u bind
Dec 7 14:09:15 usoshserver named[8899]: built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'
Dec 7 14:09:15 usoshserver named[8899]: adjusted limit on open files from 4096 to 1048576
Dec 7 14:09:15 usoshserver named[8899]: found 2 CPUs, using 2 worker threads
Dec 7 14:09:15 usoshserver named[8899]: using up to 4096 sockets
Dec 7 14:09:15 usoshserver named[8899]: loading configuration from '/etc/bind/named.conf'
Dec 7 14:09:15 usoshserver named[8899]: /etc/bind/named.conf.options:1: unknown option 'forwarders'
Dec 7 14:09:15 usoshserver named[8899]: /etc/bind/named.conf.options:6: unknown option 'listen-on'
Dec 7 14:09:15 usoshserver named[8899]: loading configuration: failure
Dec 7 14:09:15 usoshserver named[8899]: exiting (due to fatal error)
avatar
Все!!! Нашел ошибки — исправил))) Спасибо форуму!!!
avatar
Так у вас все четко написано, где копать:
Dec 7 14:09:15 usoshserver named[8899]: /etc/bind/named.conf.options:1: unknown option 'forwarders'
 Dec 7 14:09:15 usoshserver named[8899]: /etc/bind/named.conf.options:6: unknown option 'listen-on'

Проверяйте синтаксис.
avatar
forwarders
listen-on
Эти я уже исправил — надо было их после options писать, а я написал их перед ним.
avatar
Помогите плиз

root@usoshserver:/home/blink# dig srv01

; <<>> DiG 9.8.1-P1 <<>> srv01
;; global options: +cmd
;; Got answer:
;; ->>HEADER<< — opcode: QUERY, status: NXDOMAIN, id: 1203
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;srv01. IN A

;; AUTHORITY SECTION:
srv01. 2962 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2012120601 1800 900 604800 86400

;; Query time: 624 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Dec 7 14:35:31 2012
;; MSG SIZE rcvd: 99

root@usoshserver:/home/blink# nslookup srv01
Server: 127.0.0.1
Address: 127.0.0.1#53

** server can't find srv01: NXDOMAIN

интернет с других компов работать начал, вот только команда «nslookup srv01» и «host srv01» тоже не работает :( Зона обратного просмотра работает. в чем может быть причина?
avatar
попробуйте выполнить запрос содержащий доменный суффикс, например:
nslookup srv01.example.net
avatar
root@usoshserver:/home/blink# nslookup srv01.example.net
Server: 127.0.0.1
Address: 127.0.0.1#53

Name: srv01.example.net
Address: 192.168.10.1

Ответил :)
avatar
блин, получается комп сам себе запрос кидает? :/
avatar
Так и должно быть, теперь попробуйте с клиента выполнить поиск по имени, предварительно подключив ваш шлюз в качестве DNS сервера.
avatar
nslookup srv01 выдает:
example.net
192.168.10.1

srv01.example.net
192.168.10.1
avatar
все работает!
avatar
/var/lib/bind/reverse.db.jnl

BIND LOG V9
^@^@^@^A2�^X^@^@^B^@^A2� ^@^@
$аdr^Darpa^@^@^L^@^A^@^D�@^@^T^FMEDIA5^Gexample^Cnet^@

Такой лог должен быть???
avatar
вот где лог /var/log/bind
avatar
forward.db
$ORIGIN.
$TTL 86400; 1 day
example.net IN SOA srv01.example.net. admin.example.net. (
20110111; serial
10800; refresh (3 hours)
3600; retry (1 hour)
604800; expire (1 week)
86400; minimum (1 day)
)
NS srv01.example.net.
A 192.168.10.1
$ORIGIN example.net.
$TTL 302400; 3 days 12 hours
ENGLISH A 192.168.10.13
TXT «31ccf75586bbad9760e355bec1e4b2d4d8»
English-2 A 192.168.10.10
TXT «3144f28f63b0cddd4bc872cd89623f27ee»
$TTL 86400; 1 day
localhost A 127.0.0.1
$TTL 302400; 3 days 12 hours
MEDIA5 A 192.168.10.12
TXT «3123301c325b7ab224a582f368837fcd16»
Media7 A 192.168.10.24
TXT «310110d7316550a108525659f87002e29d»
Media9 A 192.168.10.22
TXT «311e193663a264dd231bae556cdd015419»
microsof-478aa0 A 192.168.10.23
TXT «31c6ad983f8298f5ad833ac0b990312ed2»
microsof-6dc708 A 192.168.10.21
TXT «3146f553c8f7534560b734fd6ac6ddc81f»
microsof-c71af9 A 192.168.10.20
TXT «31e4571784a729143ab647062ce77e66d5»
$TTL 86400; 1 day
srv01 A 192.168.10.1

reverse.db
$ORIGIN.
$TTL 86400; 1 day
10.168.192.in-addr.arpa IN SOA srv01.example.net. admin.example.net. (
20110112; serial
10800; refresh (3 hours)
3600; retry (1 hour)
604800; expire (1 week)
3600; minimum (1 hour)
)
NS srv01.example.net.
$ORIGIN 10.168.192.in-addr.arpa.
1 PTR srv01.example.net.
PTR example.net.
$TTL 302400; 3 days 12 hours
10 PTR English-2.example.net.
12 PTR MEDIA5.example.net.
13 PTR ENGLISH.example.net.
20 PTR microsof-c71af9.example.net.
21 PTR microsof-6dc708.example.net.
22 PTR Media9.example.net.
23 PTR microsof-478aa0.example.net.
24 PTR Media7.example.net.
avatar
неплохо еще оставлять комментарии к выложенному, а то не понятно что вы хотите.
И, таки да, эти записи сдаются автоматически, что вас смущает?! :)
avatar
options {
directory "/var/cache/bind";

forwarders {
80.79.176.2;
80.79.179.2;
};

listen-on {
127.0.0.1;
192.168.10.1;
};
Я прописал ДНС серверы своего провайдера. Больше ничего не менял из вашей статьи. Мне кажется что интернет стал медленнее :(
avatar
а кроме кажется, более точные цифры есть?
avatar
ПРоверил — все нормально)))) Извините за беспокойство)))
avatar
nslookup srv01 работает верно, но вот файл обратного просмотра кажись не грузится.
Вот логи ошибки с /var/log/syslog
/var/lib/bind/reverse.db:2: SOA record not at top of zone…
Вот мой файл:

$TTL 86400      ;       1 day
10.168.192.in-addr.arpa. IN SOA srv01.example.net. admin.example.net. (
                        20110104        ; Serial
                        10800           ; Refresh
                        3600            ; Retry
                        604800          ; Expire
                        3600 )          ; Minimum

        IN      NS      srv01.example.net.
1       IN      PTR     example.net.
1       IN      PTR     srv01.example.net.
avatar
что говорит
nslookup 192.168.10.1
avatar
Спасиб за помощь и ресурс!
У меня кажись проблема была в том что я Serial (для зон) параметр не инкрементировал! Сейчас все зажужжало.
avatar
Аминь… :)
avatar
не могу найти решение. Помогите (
avatar
Привет, есть несколько вопросов.

Настроил DNS по мануалу, все отлично работает.
Решил использовать свои данные, имя компьютера и доменное имя.
Изменил все по аналогии, но при командах:
nslookup ubuntu

и
nslookup ubuntu.d1ablo.ru

получаю ответ:
Server:		192.168.0.1
Address:	192.168.0.1#53

** server can't find ubuntu: NXDOMAIN

хотя если запрашивать yandex.ru:
nslookup yandex.ru
Server:		127.0.0.1
Address:	127.0.0.1#53

Non-authoritative answer:
Name:	yandex.ru
Address: 93.158.134.11
Name:	yandex.ru
Address: 213.180.193.11
Name:	yandex.ru
Address: 213.180.204.11
Name:	yandex.ru
Address: 77.88.21.11
Name:	yandex.ru
Address: 87.250.250.11

DNS определяется нормально.
Неподскажите куда копать?
Так же вопрос, что должно быть прописано в /etc/hosts
avatar
Ничего никуда добавлять не нужно, все что приложено в мануале готово к использованию на 100%.
Запись -А для ubuntu.d1ablo.ru создана, думаю что нет, по этому запрос и возвращается с ошибкой.
Что вы хотите добавить в файл hosts?
avatar
З.ы лог бинда при старте
Dec  9 13:49:08 localhost named[7754]: zone 0.in-addr.arpa/IN: loaded serial 1
Dec  9 13:49:08 localhost named[7754]: zone 127.in-addr.arpa/IN: loaded serial 1
Dec  9 13:49:08 localhost named[7754]: zone 0.168.192.in-addr.arpa/IN: journal rollforward failed: not exact
Dec  9 13:49:08 localhost named[7754]: zone 0.168.192.in-addr.arpa/IN: not loaded due to errors.
Dec  9 13:49:08 localhost named[7754]: zone 255.in-addr.arpa/IN: loaded serial 1
Dec  9 13:49:08 localhost named[7754]: zone localhost/IN: loaded serial 2
Dec  9 13:49:08 localhost named[7754]: zone example.net/IN: journal rollforward failed: not exact
Dec  9 13:49:08 localhost named[7754]: zone example.net/IN: not loaded due to errors.
Dec  9 13:49:08 localhost named[7754]: managed-keys-zone ./IN: loaded serial 2
Dec  9 13:49:08 localhost named[7754]: running
avatar
D1abloRUS
Такая же проблема. Причем появилась после обновления до 12.04.1
Кто-нибудь подскажет решение?
avatar
Что в логах?
avatar
что у вас за проблема?
Опишите яснее…
avatar
Началось все после обновления с 12.04 до 12.04.1
Feb  9 09:55:31 host-34 named[2120]: starting BIND 9.8.1-P1 -u bind
Feb  9 09:55:31 host-34 named[2120]: built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'
Feb  9 09:55:31 host-34 named[2120]: adjusted limit on open files from 4096 to 1048576
Feb  9 09:55:31 host-34 named[2120]: found 1 CPU, using 1 worker thread
Feb  9 09:55:31 host-34 named[2120]: using up to 4096 sockets
Feb  9 09:55:31 host-34 named[2120]: loading configuration from '/etc/bind/named.conf'
Feb  9 09:55:32 host-34 named[2120]: reading built-in trusted keys from file '/etc/bind/bind.keys'
Feb  9 09:55:32 host-34 named[2120]: using default UDP/IPv4 port range: [1024, 65535]
Feb  9 09:55:33 host-34 named[2120]: using default UDP/IPv6 port range: [1024, 65535]
Feb  9 09:55:33 host-34 named[2120]: listening on IPv4 interface lo, 127.0.0.1#53
Feb  9 09:55:33 host-34 named[2120]: listening on IPv4 interface eth1, 192.168.100.1#53
Feb  9 09:55:33 host-34 named[2120]: generating session key for dynamic DNS
Feb  9 09:55:33 host-34 named[2120]: sizing zone task pool based on 7 zones
Feb  9 09:55:33 host-34 named[2120]: set up managed keys zone for view _default, file 'managed-keys.bind'
Feb  9 09:55:33 host-34 named[2120]: Warning: 'empty-zones-enable/disable-empty-zone' not set: disabling RFC 1918 empty zones
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: 254.169.IN-ADDR.ARPA
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: 2.0.192.IN-ADDR.ARPA
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: 100.51.198.IN-ADDR.ARPA
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: 113.0.203.IN-ADDR.ARPA
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: 255.255.255.255.IN-ADDR.ARPA
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: D.F.IP6.ARPA
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: 8.E.F.IP6.ARPA
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: 9.E.F.IP6.ARPA
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: A.E.F.IP6.ARPA
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: B.E.F.IP6.ARPA
Feb  9 09:55:33 host-34 named[2120]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
Feb  9 09:55:33 host-34 named[2120]: command channel listening on 127.0.0.1#953
Feb  9 09:55:33 host-34 named[2120]: command channel listening on ::1#953
Feb  9 09:55:33 host-34 named[2120]: zone 0.in-addr.arpa/IN: loaded serial 1
Feb  9 09:55:33 host-34 named[2120]: zone 127.in-addr.arpa/IN: loaded serial 1
Feb  9 09:55:33 host-34 named[2120]: zone 100.168.192.in-addr.arpa/IN: journal rollforward failed: not exact
Feb  9 09:55:33 host-34 named[2120]: zone 100.168.192.in-addr.arpa/IN: not loaded due to errors.
Feb  9 09:55:33 host-34 named[2120]: zone 255.in-addr.arpa/IN: loaded serial 1
Feb  9 09:55:33 host-34 named[2120]: /etc/bind/db.avsynino12:1: unknown RR type '.'
Feb  9 09:55:33 host-34 named[2120]: zone avsynino12/IN: loading from master file /etc/bind/db.avsynino12 failed: unknown class/type
Feb  9 09:55:33 host-34 named[2120]: zone avsynino12/IN: not loaded due to errors.
Feb  9 09:55:33 host-34 named[2120]: zone localhost/IN: loaded serial 2
Feb  9 09:55:33 host-34 named[2120]: managed-keys-zone ./IN: loading from master file managed-keys.bind failed: file not found
Feb  9 09:55:33 host-34 named[2120]: managed-keys-zone ./IN: loaded serial 0
Feb  9 09:55:33 host-34 named[2120]: running

Соответственно DNS не фурычит ((
avatar
Порт 53 доступен?
что показывает:
dig @localhost
avatar
Также можно запустить bind в режиме дебагинга.
В файл /etc/bind/named.conf.local добавить:
logging {
    channel bind_debug.log {
        file "/var/log/bind_debug.log";
        severity debug 3;
    };
};


И перезапустить bind, в лог вывалит много инфы, но там уже понятно в каком месте ошибка.
avatar
спасиб. буду пробовать копать дальше
комментарий был удален
avatar
Прошу пардона — ночью читать вредно. Если есть возможность — удалите пожалуйста мой комментарий.
avatar
Бывает… :)
avatar
Теперь проверим зону обратного просмотра:
nslookup 192.168.10.1

root@srv-squid:# nslookup 192.168.5.52
;; Got SERVFAIL replay from 127.0.0.1, trying next server
Server: 217.23.176.1
Address: 217.23.176.1#53# ДНСы провайдера, указаны в forwardes

52.5.168.192.in.addr.arpa name = 52.5.168.192.in-addr.arpa.
Т.е. обратный просмотр не работает, файл /var/lib/bind9/reverse.db.jnl не создается.
Прямой просмотр работает нормально.
Где копать?
avatar
и /var/log/bind отсутствует, кстати
avatar
А BIND запущен вообще?
avatar
andrew@srv-squid:~$ service bind9 status
* bind9 is running
andrew@srv-squid:~$
avatar
Очень трудно вам помочь т.к. логов нет, конфигов нет, хз почему не работает.
avatar
Да не вопрос:
/var/lib/bind/forward.db:
$ORIGIN .
$TTL 86400      ; 1 day
atoll.org               IN SOA  srv-squid.atoll.org. admin.atoll.org. (
                                20110106   ; serial
                                10800      ; refresh (3 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      srv-squid.atoll.org.
                        A       192.168.5.52
$ORIGIN atoll.org.
$TTL 302400     ; 3 days 12 hours
notebook                A       192.168.5.3
                        TXT     "319e3193b4233cc47a31796ca4aa85ff72"
Buhgalter               A       192.168.5.6
                        TXT     "31f71cd9318eacdf4e39e9d517af8e9d23"
FinDir                  A       192.168.5.16
                        TXT     "318c22724d831726e2c51da78a3390164f"
$TTL 86400      ; 1 day
localhost               A       127.0.0.1
srv-squid               A       192.168.5.52


/var/lib/bind/reverse.db:
$TTL 86400      ;       1 day
05.168.192.in-addr.arpa. IN SOA srv-squid.atoll.org. admin.atoll.org. (
                        20110104        ; Serial
                        10800           ; Refresh
                        3600            ; Retry
                        604800          ; Expire
                        3600            ; Minimun
                        )

        IN      NS      srv-squid.atoll.org.
1       IN      PTR     atoll.org.
1       IN      PTR     srv-squid.atoll.org.
avatar
/etc/bind/named.conf.local:
//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

key DHCP_UPDATER {
        algorithm HMAC-MD5.SIG-ALG.REG.INT;
        secret "GZeOQN07MI37kikSFzK5oA==";
};

zone "atoll.org" IN {
        type master;
        file "/var/lib/bind/forward.db";
        allow-update { key DHCP_UPDATER; };
};

zone "5.168.192.in-addr.arpa" IN {
        type master;
        file "/var/lib/bind/reverse.db";
        allow-update { key DHCP_UPDATER; };
};


/etc/bind/named.conf.options:
options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

         forwarders {
                217.23.176.1;
                217.23.177.249;
                8.8.8.8;
                8.8.4.4;
         };

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
        //listen-on-v6 { any; };
        listen-on {
        127.0.0.1;
        192.168.5.52;
        };
};
avatar
/etc/resolvconf/resolv.conf.d/head:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
domain atoll.org
search atoll.org
nameserver 127.0.0.1
avatar
53й порт доступен для подключения?
avatar
Наверное нет, специально его не настраивал. Я в iptables никак «въехать» не могу, совсем уж там все заморочено. Буду благодарен за подсказку.
avatar
какая версия ОС?
avatar
если с клиентской машины, на винде, выполнить:
telnet ip_адрес_сервера 53

Соединение устанавливается?
avatar
Если из внешки подключаться — сбой подключени по 53 порту. Из локалки пока не могу попробовать — дома сегодня.
avatar
а сервер торчит во внешку?
Если вы не ограничивали доступ к DNS серверу только внутренней сетью, то служба на порту должна быть доступна
avatar
Я вам рекомендую собрать тестовый стенд дома и пилить его до полного понимания процесса настройки.
И выбрать ОС ubuntu 12.04 Server, а то некоторые пытаются на десктопных системах делать, но оно там почему-то не работает. а почему оно там не фурычит, лично мне, разбираться лень.
avatar
Привет! Таже история с нерабочей обратной зоной! (Т.е. обратный просмотр не работает, файл /var/lib/bind9/reverse.db.jnl не создается).
Сначала делал на двух разных виртуальных ПК. DNS и DHCP работают по отдельности работают. В Паре не появляются записи на DNS ни в прямой ни в обратной зоне, файлов журнала нет, nslookup для имент ПК не работает. По началу думал, что в чем то ошибся. Но проверив через nsupdate стало понятно что проблема именно в связке DNS и DHCP. Перегуглил — ответа не нашел.
Теперь собрал все (за исключением IP адресов сети и ПК). Собрал тогда как в статье все на одном сервере. Стала обновляться зона прямого просмотра, появились файлы журнала. Однако обратная зона не изменена.

Обратил внимание что разрешения на файл зоны прямого просмотра изменились, а для обратного нет. В чем же дело?

funakoshi Вам удалось это победить?
avatar
Не стал заморачиваться. Сервер уже рабочий — если что-то переделывать, то только ночью. А ночью спать хочется :)))
avatar
Сегодня решил таки разобраться с обратной зоной. Начал с теории — решил почитать как же работает ДНС. Нашел такой текст:
Обратите внимание на то, что право на ведение «прямого» домена не зависит от провайдера — его выдает организация, ведающая распределением имен в нужном вам домене. А вот пул IP-адресов находится в ведении провайдера, и именно провайдер делегирует (или не делегирует) вам права на ведение реверсной зоны. В связи с тем, что зачастую клиентам выдается не целая сеть класса «C», а ее часть, то и реверсная зона находится на сервере провайдера. Так что вам придется наладить с ним взаимодействие в области обновления данных.
Похоже мой случай. Мне провайдер выделил подсеть из 4х ip.
avatar
Т.о. если мы удалим указание на «вышестоящие» ДНС'ы (т.е. провайдерские), начнет обновляться и обратная зона? попробую проверить.

Пока у меня ерунда полнейшая. Собрал два стенда.

В первом есть отдельные сервера: шлюз, dns, dhcp и пара клиентов. Все на базе Debian. В этом случае никак не втолковать DHCP чтобы он патался слать обновления. Он, гад, только выдает IP адреса. Однако со всех компов выполняля:
nsupdate -d 1

где 1 это фаил с содержанием:
server ns.unit.qq
 key dhcp_updater d7QFTclz9xA4fJOXM5S8Kw==
 update add 56.0.168.194.in-addr.arpa 600 IN PTR 56ppynode.unit.qq.
 send
 update add 56ppynode.unit.qq. 600 IN A 194.168.0.56
 send


Записи добавляются в прямую и обратную зоны. nslookup работает во все «стороны».

Во стром случае на базе Ubuntu 12.04.1: шлюз, на другой машине: dns, dhcp, третья машина клиент. При перезагрузки клиента происходит добавление в зону прямого просмотра, обратная же не обновляется. Так же не удается в обратную зону добавить и из nsupdate.

Мой оптимизм на исходе, а забрасывать идею развернуть ферму в виртуалке жалко.
avatar
Что по поводу обновления обратной зоны в логах DHCP сервера?
avatar
funakoshi и Artful
Коллеги! И так. Как только я убрал вражеские провайдерские днс и заменил на google'вские, что и сделано в статье, у меня все заработало. Теперь попробую произвести подобные манипуляции при размещении на физически серверах.

funakoshi не дадите ссылочку на то где написано про ограничение вышестоящими днсами?
avatar
тут
Гугл по запросу «как работает ДНС» выдает кучу ссылок на разные, но практически на всех данная статья просто перепечатана.
avatar
12.04.1 сервер и стоит, я гуй уже год как не видел. Даже не знаю какие версии там и названия :))
Попробую с iptables разобраться — посмотреть какие порты открыты\закрыты.
Если не разберусь — настрою просто кеширующий DNS.

а сервер торчит во внешку?
Ну дык, сервачок в качестве шлюза работает.
avatar
настроил ubuntu server шлюз и dhcp… спасибо вам огромное за статью)… всё работает… теперь нужно создать 3 группы ПК… с разными приоритетами в скорости интернета… причём если из старших приоритет небыло на робочем месте… канал не пустовал… а распределился на всех остальных с более ниским приоритет в скорости…
кто знает помогите пожалуйста это организовать
avatar
А подскажите в чем дело. В syslog ошибки сыпятся такие:
named[9150]: error (unexpected RCODE REFUSED) resolving '144.47.194.173.in-addr.arpa/PTR/IN': 216.239.32.10#53

в гугле ответа не нашел; единственное что понял, это то, что при использовании forwarders адресуемый не резолвит обратную зону. Но ведь вышестоящий сервер — это гугловский.
Ошибка собственно не критичная, но не приятная.
avatar
гугл от обратной зоне данного IP ничего не знает, но о ней знают DNS серверы провайдера, решение простое
Использовать DNS серверы провайдера или забить.
avatar
понятно. спасибо.
лучше наверное забить ибо DNS серверы провайдера как то медленно ответы отдают. Гугловский у меня (8.8.4.4) почему то быстрее. Хотя должно же быть наоборот по идеи.
avatar
Добрый день. Возникла такая проблема:
когда на клиенте делаешь nslookup <имя клиента>, то выдаётся ошибка

nslookup k113-admin
╤хЁтхЁ:  gate.machon.local
Address:  192.168.9.15

*** gate.machon.local не удалось найти k113-admin: Non-existent domain

как понимаю не создаётся запись в зоне прямого просмотра

gate named[1108]: client 192.168.9.250#50720: update 'machon.local/IN' denied
gate named[1108]: client 192.168.9.250#57507: update 'machon.local/IN' denied


При этом зона обратного просмотра пишется нормально. Подскажите куда копать.
ЗЫ хотя и работает инет на клиенте нормально, но хочется все баги убрать.
avatar
думаю что проблема с записью в файл forvard не хватает прав, проверьте права доступа на файл, более подробно можно узнать в логах DNS и DHCP сервера
avatar
Права на чтение и запись выставлены для всех. Об этом в первую очередь подумал:-)
Спасибо, буду грызть логи
avatar
странная фигня… даже выдав в ручную права на доступ к фалам
chmod a+rwx /var/lib/bind/forward.db
chmod a+rwx /var/lib/bind/reverce.db

которые принялись, всё равно отклоняет запись в зону прямого просмотра, даже локал хосту (127.0.0.1)
gate named[1108]: client 192.168.9.250#50720: update 'machon.local/IN' denied
gate named[1108]: client 192.168.9.250#57507: update 'machon.local/IN' denied
dhcp: Unable to add forward map from k113-admin.machon.local to 192.168.9.250: REFUSED
...
gate named[1108]: client 127.0.0.1#60866: update 'machon.local/IN' denied
gate named[1108]: client 127.0.0.1#60866: update 'machon.local/IN' denied


больше никакой ругани в логах нету…
avatar
Ну вот и пишет что отказано в обновлении.
запись
zone "example.net" IN {
        type master;
        file "/var/lib/bind/forward.db";
        allow-update { key DHCP_UPDATER; };
};

Без ошибок написана?
Пути соответствуют?
avatar
пути совпадали, почему-то слетали, после ребута, права на запись с /var/lib/bind/… Пришлось в rc.local запись делать. теперь всё ок)
Спасибо
avatar
какую запись?
avatar
chmod 700 /var/lib/bind/
chmod 700 /var/lib/bind/forward.db
chmod 700 /var/lib/bind/reverce.db
avatar
а какие права на папку /var/lib/bind/?
avatar
чтение и запись у владельца и всё.
avatar
А кто владелец?
avatar
мой пользователь. не root)
avatar
должен быть пользователь Bind!
avatar
хм… изначально стоят владельцем папки root, группа bind. На файлы был владелец и группа bind.
Поменял, как говорите — пишет норм всё.
avatar
Вот и отлично
avatar
Аналогичная проблема, но аналогичное решение не помогло:
1. Для DNS-сервера работают и прямая, и обратные зоны.
2. Для клиента работает автоматическое обновление обратной зоны, создается reverse.db.jnl.
3. Для клиента не работает автоматическое обновление прямой зоны, файл forward.db.jnl не создается даже.

Что пробовал:
1. В точности все по инструкции, несколько раз. Перед каждым новым разом конфигурации удалял установленные пакеты dhcp и bind c ключом purge, а затем удалял вручную каталоги с кэшем и конфигами. Перезагружал систему (Ubuntu 14.04 LTS x64).
2. Добавил пользователя dhcpd в группу bind
3. Установил владельца: группу на папку /var/lib/bind bind:bind и файлы внутри нее.
4. Установил права на запись и чтение -rw-rw-r-- на папку /var/lib/bind bind:bind и файлы внутри нее.
5. Проверил еще раз пути в зонах до файлов описания зон, чтобы совпадали.
6. Мониторю логи:
в логах /var/log/syslog при подключении нового клиента в сети появляется подобная запись:
named[1473]: client 192.168.10.10#64274: update 'example.net/IN' denied


Подскажите, пожалуйста, куда копнуть еще?
avatar
ключ правильный указан в конфигах, без ошибок?
avatar
Ключи, упомянутые в файлах:
/etc/dhcp/dhcpd.conf
/etc/bind/named.conf.local
Совпадают.

При генерации этих ключей создаются файлы:
Kdhcp_updater.+157+64996.key
Kdhcp_updater.+157+64996.private

В статье я не обнаружил упоминания в какой папке необходимо хранить эти два файла, и нужно ли их хранить вообще. Поэтому они у меня убраны по-дальше — в глубине домашней папки пользователя, из-под которого происходила генерация.

Правильно ли это, или кроме выше указанных двух мест эти ключи еще где-то должны упоминаться?
avatar
То что вы их убрали это хорошо, но они должны быть прописаны в конфигурационных файлах в пункте
key DHCP_UPDATER {
        algorithm HMAC-MD5.SIG-ALG.REG.INT;
        secret "cYqlx8g/jLcIxXFDpqrxZw==";
};

Это пример из моей статьи!
Почитайте статью внимательнее, а не простой копипастой, без понимания происходящего.
avatar
Конечно, я вставлял в вышеуказанные файлы собственный ключ.
У вас, кстати, в файле:
/etc/bind/named.conf.local

key DHCP_UPDATER {
        algorithm HMAC-MD5.SIG-ALG.REG.INT;
        secret "cYqlx8g/jLcIxXFDpqrxZw==";
};


а в файле:
/etc/dhcp/dhcpd.conf

key DHCP_UPDATER {
algorithm hmac-md5;
secret "cYqlx8g/jLcIxXFDpqrxZw==";
}


Пробовал оставлять как у вас, так и устанавливать одинаково:
1) в обоих файлах так:
algorithm HMAC-MD5.SIG-ALG.REG.INT;

2) в обоих файлах так:
algorithm hmac-md5;


Имеет ли это решающее значение? Во всех случаях положительного результата не дало.
avatar
Наличие правильного ключа имеет решающее значение, по нему выполняется авторизация.
переведите уровень логирования в debug DHCP и Bind серверов и смотрите что пишут туда сервисы.
avatar
Все-таки переустановил систему и сделал все строго по мануалу на чистой машине.
На этот раз клиента использовал под ubuntu. С ним все работает — и прямая зона, и обратная.
А вот с Win8.1 клиентом все сложнее, не работает прямая зона, однако обратная работает.
Читал где-то в интернете, что винда может не однозначно относиться к значениям секретных ключей hmac-md5.
Первым в голову приходит не использовать этот ключ вообще. Однако, необходимо понять на сколько это критично.
Какой путь решения этой задачи можете подсказать?
avatar
Добрый день, а если мне надо настроить на ОДНОМ роутере ТРИ днс сервера с ТРЕМЯ разными именами, как быть?
avatar
Да никаких проблема, создавайте файлы с нужными зонами и все будет работать.
Одна зона будет обновляться динамически, остальные статически, просто в локальной сети иметь 3 DNS суффикса-не вижу смысла.
А так DNS сервер может обслуживать большое количество зон, пока хватает реверсов системы.
avatar
у меня не большая проблем ка с настройкой DNS а проблема заключается вот этом

root@TestServer:~# /etc/init.d/bind9 restart
* Stopping domain name service… bind9 rndc: connect failed: 127.0.0.1#953: connection refused
[ OK ]
* Starting domain name service… bind9


root@TestServer:~# dig ns1

; <<>> DiG 9.8.1-P1 <<>> ns1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<< — opcode: QUERY, status: NXDOMAIN, id: 17436
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ns1. IN A

;; AUTHORITY SECTION:
. 9939 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2013032301 1800 900 604800 86400

;; Query time: 29 msec
;; SERVER: 213.234.192.7#53(213.234.192.7)
;; WHEN: Sat Mar 23 22:20:29 2013
;; MSG SIZE rcvd: 96

root@TestServer:~# nslookup ns1
Server: 213.234.192.7
Address: 213.234.192.7#53

Non-authoritative answer:
Name: ns1.homehosts.ru
Address: 95.31.42.76

root@TestServer:~# host ns1
ns1.homehosts.ru has address 95.31.42.76
root@TestServer:~# nslookup 192.168.1.100
Server: 213.234.192.7
Address: 213.234.192.7#53

** server can't find 100.1.168.192.in-addr.arpa.: NXDOMAIN

Где это находится ошибка после рестарта?
и почему не хочет работать зона обратного просмотра?
avatar
вот эта ошибка Starting domain name service… bind9 [fail]
где находится имя домена все проверил
avatar
проверьте внимательно конфиги, мануал рабочий на 100%
avatar
Я не могу найти проблему и устанавливал вот это
/etc/apparmor.d/usr.sbin.named

#chroot
/var/lib/named/etc/bind/** rw,
/var/lib/named/var/lib/bind/** rw,
/var/lib/named/var/cache/bind/ rw,
/var/lib/named/var/cache/bind/** rw,
/var/lib/named/var/run/bind/run/named.pid w,
/var/lib/named/var/run/bind/named.options r,
/var/lib/named/var/log/** rw,
/var/lib/named/dev/** r,
/var/lib/named/dev/log w,

не помогло

затем вообще удалил apparmor

перезапустил систему не помогло((
avatar
возьмите чистый сервер и установите как в статье 1 в 1, думаю что вы просто не внимательно сделали.
у вас сложности возникают с любым мануалом, задумайтесь об этом.
avatar
Я это сервер устанавливаю в течения дня по раз двадцать, а в течение двух месяцев воообще ппц, вот с утра уже два раза сносил систему и делаю в точности что у вас тут написано, да же не изменяя ничего проблема одна и та же((
avatar
а сказать трудно где надо изменить чтоб решить проблему?
avatar
я не знаю где у вас проблема.
avatar
может я что-то не так делаю?

forwarders {
       213.234.192.7 85.21.192.5;
     };

    listen-on {
      192.168.1.100;
    };


key DHCP_UPDATER {
        algorithm HMAC-MD5.SIG-ALG.REG.INT;
        secret "сюда вставляю полученный код ранее";
};
 
zone "homehosts.ru" IN {
        type master;
        file "/var/lib/bind/forward.db";
        allow-update { key DHCP_UPDATER; };
};
 
zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "/var/lib/bind/reverse.db";
        allow-update { key DHCP_UPDATER; };
};




<code>$TTL 86400      ;       1 day
homehosts.ru.    IN      SOA     ns1.homehosts.ru. admin.homehosts.ru. (
                                20110103        ; Serial
                                10800           ; Refresh
                                3600            ; Retry
                                604800          ; Expire
                                86400           ; Minimum TTL
                        )

                IN      NS      ns1.homehosts.ru.
                IN      A       192.168.1.100
ns1           	 IN      A       192.168.1.100



$TTL 86400      ;       1 day
1.168.192.in-addr.arpa. IN SOA ns1.homehosts.ru. admin.homehosts.ru. (
                        20110104        ; Serial
                        10800           ; Refresh
                        3600            ; Retry
                        604800          ; Expire
                        3600 )          ; Minimum

        IN      NS      ns1.homehosts.ru.
1       IN      PTR     homehosts.ru.
1       IN      PTR     ns1.homehosts.ru.


domain homehosts.ru
search homehosts.ru
nameserver 192.168.1.100


Вот все мои действия
avatar
Что, по этому вопросу, написано в логах?
avatar
Удали строчки из файла

forwarders {
       213.234.192.7 85.21.192.5;
     };

    listen-on {
      192.168.1.100;
    };


Вот из за этого выдавал ошибку))

и у вас скобка не в том месте стоит

3600 )          ; Minimum
avatar
Ну и как помогло?
Интернет работает?
а выглядеть должно было так:
найдите отличия…
forwarders {
       213.234.192.7;
       85.21.192.5;
     };

    listen-on {
    127.0.0.1;  
    192.168.1.100;
    };


Скобка там как раз к месту!
avatar
Даже так пишет ошибку а как удаляю это все, работает ОК, да интернет работает
avatar
я извиняюсь что вклиниваюсь в ваш диалог. только вопрос: вы пишете «а как удаляю это все, работает ОК, да интернет работает», а собственно что вы удаляете?
и интернет у вас работает потому, что ваш собственный DNS сервер не работает, а запросы уходят на вышестоящий.
покажите syslog (только то что касается named). рекомендую сделать так. удалить /var/log/syslog, перегрузить сервер и вновь созданный syslog показать здесь.

p.s. а мануал рабочий 100%. и еще, рекомендую сменить вашу домашнюю зону с homehosts.ru. у вас же не делегирован домен в зоне .ru
avatar
Совершенно верно!
avatar
вот

Apr 1 11:42:03 ns1 named[896]: starting BIND 9.8.1-P1 -u bind
Apr 1 11:42:03 ns1 named[896]: built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' $
Apr 1 11:42:03 ns1 named[896]: adjusted limit on open files from 4096 to 1048576
Apr 1 11:42:03 ns1 named[896]: found 1 CPU, using 1 worker thread
Apr 1 11:42:03 ns1 named[896]: using up to 4096 sockets
Apr 1 11:42:03 ns1 named[896]: loading configuration from '/etc/bind/named.conf'
Apr 1 11:42:03 ns1 named[896]: reading built-in trusted keys from file '/etc/bind/bind.keys'
Apr 1 11:42:03 ns1 named[896]: using default UDP/IPv4 port range: [1024, 65535]
Apr 1 11:42:03 ns1 named[896]: using default UDP/IPv6 port range: [1024, 65535]
Apr 1 11:42:03 ns1 named[896]: listening on IPv6 interfaces, port 53
Apr 1 11:42:03 ns1 named[896]: listening on IPv4 interface eth0, 192.168.1.100#53
Apr 1 11:42:03 ns1 named[896]: generating session key for dynamic DNS
Apr 1 11:42:03 ns1 named[896]: sizing zone task pool based on 7 zones
Apr 1 11:42:03 ns1 named[896]: using built-in root key for view _default
Apr 1 11:42:03 ns1 named[896]: set up managed keys zone for view _default, file 'managed-keys.bind'
Apr 1 11:42:03 ns1 named[896]: Warning: 'empty-zones-enable/disable-empty-zone' not set: disabling RFC 1918 empty zones
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: 254.169.IN-ADDR.ARPA
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: 2.0.192.IN-ADDR.ARPA
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: 100.51.198.IN-ADDR.ARPA
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: 113.0.203.IN-ADDR.ARPA
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: 255.255.255.255.IN-ADDR.ARPA
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: D.F.IP6.ARPA
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: 8.E.F.IP6.ARPA
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: 9.E.F.IP6.ARPA
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: A.E.F.IP6.ARPA
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: B.E.F.IP6.ARPA
Apr 1 11:42:03 ns1 named[896]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
Apr 1 11:42:04 ns1 named[896]: command channel listening on 127.0.0.1#953
Apr 1 11:42:04 ns1 named[896]: command channel listening on ::1#953
Apr 1 11:42:04 ns1 named[896]: zone 0.in-addr.arpa/IN: loaded serial 1
Apr 1 11:42:04 ns1 named[896]: zone 127.in-addr.arpa/IN: loaded serial 1
Apr 1 11:42:04 ns1 named[896]: dns_rdata_fromtext: /var/lib/bind/reverse.db:13: near 'mail.homehosts.ru': not a valid number
Apr 1 11:42:04 ns1 named[896]: zone 1.168.192.in-addr.arpa/IN: loading from master file /var/lib/bind/reverse.db failed: not a valid number
Apr 1 11:42:04 ns1 named[896]: zone 1.168.192.in-addr.arpa/IN: not loaded due to errors.
Apr 1 11:42:04 ns1 named[896]: zone 255.in-addr.arpa/IN: loaded serial 1
Apr 1 11:42:04 ns1 named[896]: zone localhost/IN: loaded serial 2
Apr 1 11:42:04 ns1 named[896]: /var/lib/bind/forward.db:14: unknown RR type 'CHAME'
Apr 1 11:42:04 ns1 named[896]: zone homehosts.ru/IN: loading from master file /var/lib/bind/forward.db failed: unknown class/type
Apr 1 11:42:04 ns1 named[896]: zone homehosts.ru/IN: not loaded due to errors.
Apr 1 11:42:04 ns1 named[896]: managed-keys-zone ./IN: loaded serial 3
Apr 1 11:42:04 ns1 named[896]: running

Как понять делегирован домен в зоне .ru?

этот домен существует
avatar
это я дебил, добовлял это ниже скобки options))

ну меня напрягает вот обратного позиционирования, а именно вот эта строчка
по запросу nslookup 192.168.1.100

** server can't find 100.1.168.192.in-addr.arpa.: NXDOMAIN

как сделать ее, чтоб видел его домен?
avatar
Это не домен, это создание PTR записи в DNS, посмтрите логи DHCP сервера, там должно быть написано, по какой причине, запись не была создана.
avatar
А я не настраивал DHCP у меня в роли DHCP играет роутер
avatar
Роутер, без ключа, не сможет обновить записи на DNS сервере
avatar
это вот этот ключ нужно вводить? secret «cYqlx8g/jLcIxXFDpqrxZw==»; только свой разумеется, а куда там его вводить там нету подобных строчек
avatar
а я про роутер ничего и не писал!
Я писал про сервер ubuntu!
avatar
Роутер, без ключа, не сможет обновить записи на DNS сервере

А это что? )))
avatar
вы сейчас о чем?
avatar
то вы написали что Роутер, без ключа, не сможет обновить записи на DNS сервере

а в роутере нету не где вводить ключ
avatar
Я писал про сервер, на котором работают службы DNS и DHCP, я не писал как все это завязать с роутером. Ваш вопрос не относится к теме статьи.
Настройте сервер, как предлагается в статье, а DHCP сервер на роутере отключите и будет вам счастье… В качестве шлюза укажите ваш роутер. чтобы его адрес раздавался с DHCP сервера Ubuntu.
avatar
Ну DNS сервера вам хватит и одного, а вот создать 3 зоны можно запросто, далее можно попробовать создать 3 диапазона на DHCP сервере, чтобы они обновляли эти зоны, но тут возможны 2 варианта:
1) Вам необходимо 3 интерфейса, которые подключены к трем подсетям
2) Поднять на маршрутизаторе DHCP-proxy который будет соединять 4 подсети (в первой у вас будет жить сам DHCP сервер, а остальные 3 для клиентов) и перенаправлять запросы клиентов на ваш DHCP сервер, а тот в свою очередь обновлять записи в DNS (МНЕ ЭТОТ ВАРИАНТ НРАВИТСЯ БОЛЬШЕ!!!)

Но это на уровне размышлений, сам я этого не делал, применительно к этой схеме, а вот на Windows такое реализовывается довольно легко, у меня на прошлой работе 1 DHCP сервер обслуживал порядка сотни подсетей, естественно что в сервер не было воткнуто 100 сетевых интерфейсов.
Так что я не вижу проблемы в реализации вашей затеи, в любом случае если откинуть задачу с обновлением DNS зон для клиентов, то DHCP сможет реализовать такую задачу на раз, просто добавляйте новые диапазоны в конфигурационный файл.
Почитайте про DHCP-proxy
avatar
Вначале хотел помочь человеку разобраться с проблемами, так как недавно брал за основу данную статью и настраивал на сервере. Но потом передумал. Когда человек утверждает бесчисленное количество раз, что все настраивал именно по статье, а потом оказывается что и не совсем по статье, то порыв помочь угас. Я не администратор данного ресурса, и не автор статья, поэтому могу вести себя несколько фривольно (разумеется в рамках дозволенного приличия). Хочу посоветовать vismuth-у как минимум разобраться в том, что при настройках серверов под словом роутер обычно понимают сервер с соответствующими настройками (dns, dhcp, iptables, ssh и т.д.), а не «железку» в которую втыкается «провод» по которому «приходит» Internet.
Еще, в фрагменте syslog который приведен чуть выше есть несколько моментов которые явно указывают на ошибки. И еще совет: если все таки «роутер» будет настроен по статье, то при каких либо изменений вручную файл зон изменяйте серийный номер. Посмотрите, несколько ошибок из syslog точно пропадут.

Artful
могу предложить внести в настройки (чуть чуть добавить статью) следующим моментом:
в файл /etc/bind/named.conf.options добавить следующую секцию:
logging {
category lame-servers { null; };
};

На функционале это никак не измениться, но предотвратит появление в лог файле (/var/log/syslog) лишней/ненужной информации, которая будет вводить только в заблуждения.
avatar
Доброго времени суток! Максим, личное спасибо за мануалы — всё толково, просто и работает.
Вопрос или точнее просьба о консультации не совсем по этой теме.
Вначале, что есть: комп с 2мя ядрами, на нем убунту 12.04 и все что до squid3 установлено и работает. Вход внешний pppoe по ethernet (бзик столичных провайдеров), на выходе внутренняя сетка в гигабит и кучка компов, т.е. сервак используется как кэширующий DNS с прокси без фильтрации. Работает всё изумительно.
Что надо: Но недели две назад пришла мысль «светлая» — а не прикрутить ли к этому хозяйству ISPmanager. Дело в том, что я и небольшая артель единомышленников делаем сайты для народа, вот и решили использовать сервак как строй площадку, тем более не за горами лето и с дач очень не плохо работать со своим серваком, главное, что всё под контролем. А поскольку мои друзья и я в том числе избалованы ISPmanagerом — очень хотелось её запустить.
Установка началась пару недель назад, как и гугление и танцы с бубном но… Одно с другим работать пока не желает. Если взять за основу Ваш материал отдельно и ISP — все в отдельности работает чётко. Но если на «материал» накатить ISP — то не работают сайты, если наоборот, то соответственно не работает шлюз…
Ошибок нет! В логах всё нормально, кроме что ISP выдает 104 ошибку — это значит он не может найти DNS сервера. Понимаю что проблема в DNS, а что с этим делать просто уже не знаю.
В инете инфы скудно по этому поводу, наверно задача сложновата, да и не совсем наверно оправданная — точно можно обойтись простыми решениями. Но из моих боевых товарищей один я немного понимаю в строении сервака, остальные привыкли к панелям управления хостинга.
Спасибо!
avatar
Честно говоря я с админ-панелями не работаю, они мне просто не нужны.
Но думаю что сначала вам придется накатить ISPmanager а уже потом наворачивать, через нее, функционал.
avatar
Спасибо! )))) Пойду застрелюсь ))))) Указание о направлении движения — это уже 50% успеха… Успехов!
avatar
суицид-не наш метод… ;)
avatar
в deb и ubuntu bind при установке сам генерит ключ, поэтому чтобы не было возни с ключом можно прописать
include "/etc/bind/rndc.key";
в dhcpd.conf и named.conf.local
а потом использовать
allow-update { key «rndc-key»; };
avatar
Классно, не знал!
avatar
Доброго времени уважаемый автор!
Хороший мануал, но как бы мне трансформировать это на FreeBSD? BIND 9 там уже есть
avatar
Да тут все просто, берете и переносите… :)
Конфиги, практически, не отличаются, только пути поправить ну и некоторые мелочи, которые вылавливаются через лог ошибок.
avatar
Доброе время суток, спасибо большое за цикл очень нужных статей!
Сделал все как тут описано и вот какая проблема, компьютер-клиент (test01) получает ip по dhcp но записи не проходят dns, т.е. пишу nslookup test01 в ответ

Server:127.0.0.1
Address: 127.0.0.1#53

** server can't find test01: NXDOMAIN

С основным сервером все норм.
В чем может быть проблема? Где копать?
avatar
Добавьте в запрос доменный суффикс, чтобы запись имела вид:
test01.example.org
avatar
У меня зона example.net, вводу
nslookup text01.example.net
nslookup test01.example.org


Результат тот же.
avatar
Поправка
test01.example.net
avatar
А запись-то такая есть?
avatar
У меня все работает и самба и шлюз+dhcp+dns, для меня это большой прогресс, потому как есть желание обучиться использовать линукс в качестве сервера. Вопрос такой, с этой всей связкой сайты стали чуть дольше открываться, секунд на 5-7, когда включаю все через обычный вай-фай роутер, все начинает открываться как прежде. В чем может быть причина? Трасерт нигде задержек не показывает, пакеты при пинге не теряются нигде.
avatar
Проверяйте DNS думаю что имеет смысл отключить рекурсивные запросы, скорость должна увеличиться.
avatar
добавляю в named.cong.options recursion no;
перезагружаю сервер перестают пинговаться и открываться внешние узлы, внутренние работают.
avatar
А сервера куда пересылать запрос у вас настроены?
можно смотреть ошибки в реальном времени в syslog
tail -f /var/log/syslog

Большую часть багов можно отловить в логах
avatar
Да, настроены, все по вашей статье. Уточню, что связь с внешним миром пропадает на клиентских машинах, на сервере интернет работает. Еще у меня на нем реальный IP.
avatar
Отправил в личку лог sysloga после применения recursion no;
avatar
Сетевые интересы в этот момент не падают?
avatar
неа, не падают, с клиентской машины по ssh могу ходить на сервер как по айпи так и по имени, так же могу пинговать свой ноут по имени, с сервера яндекс пингуется.
avatar
Что стоит в качестве DNS: Bind или DNSMASQ?
avatar
bind, настройка сервера производилась по статьям в порядке 1) настройка шлюза 2) настройка DHCP, 3) И третья вот эта статья, соответственно DNSMASQ я удалил.
avatar
А когда сеть глючит соответственно сайты не открываются и не пингуются, а IP 8.8.8.8 пингуется?
avatar
8.8.8.8 пингуется.
Делаю nslookup ya.ru выдает:
C:\Users\DiMKa>nslookup ya.ru
╤хЁтхЁ: server.fedukovo.net
Address: 192.168.0.1

*** server.fedukovo.net не удалось найти ya.ru: Query refused

На всякий случай напишу recursion no; прописываю в /etc/bind/named.conf.options с новой строчки после options {
avatar
Если в это время IP пингуется, тот тут явная проблема в DNS, а вот что конкретно сказать не смогу.
Тут вам придется сесть и разобраться т.к. я «телепатическим» путем не могу понять что у вас там происходит.
avatar
А что можете насчет того лога сказать, который я вам в личку выслал?
avatar
Могу сказать что в личке ничего нет
avatar
Так есть
avatar
А вам действительно необходим BIND? Я в свое время дома отказался от него; настроил DNSMASQ и радуюсь :) Для дома, мне кажется, вполне хватит DNSMASQ ибо BIND для домашней локальной сети с несколькими устройствами не оптимален и слишком «тяжелый».

А если на клиентском компьютере задать конкретный адрес DNS сервера (к примеру 8.8.8.8), а не получение автоматически от DHCP сервера, интернет работает без задержек?
avatar
Да я потихонечку познаю Linux, работаю в саппорте провайдера по месту жительства)) есть желание расти и развиваться, в местной школе развели локальную сеть, свитч управляемый, 21 кабинет, для меня это хороший тестовый полигон (если чего-то уроню, они не огорчатся), ремонт через неделю закончится и поставлю туда этот сервер. Пакеты не теряются, просто сайты чуть медленнее открываться начали, а насчет вбить вручную, сейчас попробую
avatar
Работает) только на телефоне не работает, я же на нем не могу прописать гугловский DNS. Телефон подключен от Wi-Fi роутера, на котором отключен DHCP, а роутер подключен от обычного свитча в LAN порт.
avatar
Предположу, что если после указания адреса DNS (8.8.8.8) руками скорость открытия сайтов не изменится надо смотреть в сторону настройки именно шлюза (правил Iptables).

А какой сервер у вас стоит в параметре forwarders в BIND? у меня запросы форвардятся на гугловские адреса 8.8.8.8 и 8.8.4.4 потому, что так ответ приходит у меня быстрее чем от DNS моего провайдера.
avatar
сначала было так 213.108.16.3; 8.8.8.8;
потом оставил только гугловский.
в iptables не в зуб ногой к сожалению, учусь только)))
добавлено только 4 записи из статьи настройка шлюза на ubuntu 12.04
Вообще заметил, что вроде как то шустрее все стало работать, после того как я его перезагрузил сегодня пару раз.
Еще думаю убрать реальный IP пока не смогу нормально сам настроить файервол.
avatar
Кстати можно еще заюзать DNS от yandex, работает тоже очень шустро+есть возможность фильтрации, например завирусованные страницы блокируются или взрослая тематика.
подробнее тут
avatar
Спасибо, в кабинете информатики в школе пригодится.
avatar
Здравствуйте) У меня при наборе команды /var/log/syslog пишет что отказано в доступе, изза чего такое может быть?)
avatar
попробуй зайти под root «sudo nano /var/log/syslog»
avatar
Ребята тема такая поставил ubuntu 13.10 хочу сделать шлюз + LAMP + DNS + почту реально ли на 1 компе?
при удалении aptitude purge dnsmasq порт остается занятым и установка bind9 проходит с ошибкой подмогните
avatar
Работать будет, но это не очень правильно
Занятым каким приложением?
avatar
Подскажите как правильно!
Ситуация следующая:
1 внутренний сайт
2 шлюз с возможностью ограничения скорости
3 DNS
4 Почта внутренняя
5 FTP
Подскажите как правильно сделать на входе инета статичный ип через ADSL модем думал комп в дмз засунуть еще
avatar
посмотрите настройки вашего оборудования, там обычно все понятно, да и какая разница, какой у модема будет внешний IP, главное в локальной сети он будет постоянным
статический IP настраивается стандартно:
sudo nano /etc/network/interfaces

создаете там запись
навастриваете DNS с локальной зоной
Скорость ограничиваете с помощью SQID ну или ставите шейпер который решет скорость на сетевом интерфейсе.

Разделите задачи на части и решите каждую часть.
почти все эти решения есть на этом сайте, используйте поиск…
avatar
ситуация изменилась. сделал все по мануалу за 1 исключением не ставил dnsmasq локальный сайт открывает, модем пингуется только проброс днс не работает тоесть если адрес яндекса введсти то ошибка будет а если по ип то зайдет где посмотреть можно?
avatar
На локальном компьютере (клиенте) укажите в качестве DNS сервера адрес вашего модема.
avatar
из-за чего может интернет пропасть, интерфейс eth0 настроен получать айпи по DHCP, но когда пишешь ifconfig то там интерфейса eth0 не показано
avatar
У меня была такая проблема, пропадал сетевой интерфес при работе, оказалась что глючила PCI сетевая карта Acorp (купленая за 200 руб), заменил на Intel все отлично заработало.
avatar
я моделирую данную ситуацию в GNS3 после настройки шлюза и DHCP все раздает и работает, но вот после настройки DNS падает ETh0 и все((
avatar
что в syslog по этому поводу?
avatar
при перезагрузке пишет что не соединения с сетью
при перезагрузке bind9 что не может загрузить обратную зону, может это быть причиной?
avatar
вряд ли это связано
avatar
сделаю заново и после каждого этапа буду проверять отвалился eth0 или нет
avatar
Вы бы показали как у вас описаны сетевые интерфейсы в /etc/network/interfaces
avatar
Я сделал все работает, заново настроил)
avatar
с компа клиента через cmd ping 123.ru ответ от локального днс серванта идет, через браузер кудает на яндекс поиск в чем причина могет быть?
avatar
я есть плохо понимать ваш диалект… :)
avatar
локальный сайт на машине 10.7.0.1 к примеру 123.ru через команду ping 123.ru ответ идет от 10.7.0.1 нормально.
Через браузер выкидывает на поиск яндекса 123.ru
avatar
У вас в браузере какой поиск по умолчанию?!
avatar
яндекс
avatar
что возвращает команда:
nslookup yandex.ru
avatar
сори разобрался там вся тема в том что 123.ru нормально кидает на мой сайт внутренний, а если убрать http:/ то он на яндакс отправляет как сделать чтобы понимал и без http://
avatar
смотрите настройки браузера
avatar
Добрый день. Возникли проблемы с командой nslookup srv01. пишет:
server: 127.0.0.1
address: 127.0.0.1#53
** server can't find srv01: NXDOMAIN.
Сделал все как в статье. Все restart'ы прошли без ошибок. Пробовал команду nslookup srv01.example.net, но также не работает. Подскажите что не так.
avatar
DNS сервер запущен?
avatar
он запускается с команды /etc/init.d/bind9 restart. То да он запущен
avatar
Значит не создана запись srv01
avatar
Заново все настроил. после команды /etc/init.d/networking restart. Пропадает пинг mail.ru пишет ping: unknown mail.ru. В ifconfig интерфейса eth0 нет, мне кажется, что он отрубается. Это можно как нибудь исправить?
комментарий был удален
комментарий был удален
avatar
Отличная статья, спасибо. Настроил все по Вашей статье. Вроде все работает, кроме одного, не резулвится короткое имя, т.е без доменного суффикса?
root@SRV-01:/var/lib/bind# nslookup srv-01
Server:         127.0.0.1
Address:        127.0.0.1#53

** server can't find srv-01: NXDOMAIN

а если полное имя, то все норм

r
oot@SRV-01:/var/lib/bind# nslookup srv-01.lablinux.loc
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   srv-01.lablinux.loc
Address: 192.168.117.1


Но при этом есть клиентская машина и с которой nslookup отрабатывает нормально как с srv-01.lablinux.loc так и с srv-01
Что на сервере не так? какие конфиги показать?
avatar
доменный суффикс раздается DHCP сервером, соответственно клиентская машина получив IP от сервера, получила и суффикс, а сервер нет т.к. там прописан статический IP:

За это отвечает секция:
nano /etc/resolvconf/resolv.conf.d/head


Где задается домен для поиска.
domain example.net
search example.net
nameserver 127.0.0.1
avatar
домен для поиска у меня указан
viktor@SRV-01:~$ cat /etc/resolvconf/resolv.conf.d/head
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

domain lablinux.loc
search lablinux.loc
nameserver 127.0.0.1
viktor@SRV-01:~$
avatar
Тогда все должно пахать
avatar
но не пашет :(
viktor@SRV-01:~$ nslookup SRV-01
Server:         127.0.0.1
Address:        127.0.0.1#53

** server can't find SRV-01: NXDOMAIN

viktor@SRV-01:~$
avatar
ради эксперимента, залез проверил на боевом сервере, заменил запись, все заработало с «полпинка», может ему не нравится доменная зона *.loc, попробуйте использовать *.lan
avatar
Все нашел проблему, у меня в файле
cat/etc/resolv.conf
-bash: cat/etc/resolv.conf: No such file or directory
viktor@SRV-01:~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

domain lablinux.loc
search lablinux.loc
nameserver 127.0.0.1
nameserver 192.168.92.2
search localdomain

Удалил 2 последние строчки и все работает.
спасибо большое за помощь!!!
avatar
Да, забыл сказать что ОС у меня не 12.04, а 13.10. Ubuntu Server 13.10.
avatar
Да это не имеет значения.
avatar
Стал вопрос при настройке Debian. А именно — нет файла /etc/resolvconf/resolv.conf.d/head. Его надо создавать или в Debian-е это делается по-другому?
avatar
Значит пишите напрямую в /etc/resolv.conf
avatar
Пробовал. Затирается при получении dns сервером от провайдера через PPPoE. А настраивать PPP для того чтобы не получать dns сервера от провайдеров тоже не очень хочется.
avatar
так и пускай затирается, в локальном DNS запись всеравно обновится, разрешение имен в локальной сети не будет работать только для сервера, а клиенты будут нормально работать.
avatar
Начала система вываливать в syslog такую ошибку:
dhcpd: Can't create new lease file: Permission denied
При чем при этом работает вроде бы все нормально, адреса выдаются, сопоставляются, пингуются и т.д. И вроде бы в dhcpd.leases информация пишется.
Не могу понять что происходит; пытался права менять на dhcpd.leases, но они потом меняются автоматически.
avatar
Проверьте права доступа на файл и директорию
avatar
на директорию root:root 755, а на файлы root:root 644
комментарий был удален
avatar
DHCP под каким пользователем у вас работает?
avatar
работает по умолчанию, из под dhcpd:dhcpd (настраивал то по статье). Но, как писал выше, даже если я меняю владельца на папку /var/lib/dhcp и на файлы расположенные в ней, то после перезагрузки сервера владельцем опять становится root:root
avatar
Тогда дайте права на файл 777
avatar
Ну при таком раскладе работает. Спасибо, не подумал как то на каталог дать такие права.
Но вот вопрос, почему так; баг что ли isc-dhcp…
avatar
почему баг.
Владелец файла root права на файлы 644 -естественно у других сервисов нет прав доступа на запись в этот файл.
Но на самом деле странно, у меня владельцем директории /var/lib/dhcp является dhcpd, как и файлов в ней.
avatar
Вот именно, что странно. С правами то понятно, но почему владельцем директории которую должен создавать dhcpd является root !? Может быть чудит dhcp клиент который при установке системы пытается получить настройки от провайдера, но тоже не совсем понятно.
avatar
После некоторых недоразумений все работает как надо. Вопрос вот в чем. Не могу понять это из-за динамического обновления зон или из-за настройки Samba. Клиенты (имена компьютеров с Win 8.1) отображаются в сетевом окружении. Как от этого избавиться? А то получается вот такая картина:
  
При этом реальные разделяемые ресурсы имеет компьютер Hawk (Samba) и WD-TV мультимедийный проигрыватель.
avatar
Панель управления\Все элементы панели управления\Центр управления сетями и общим доступом\Дополнительные параметры общего доступа там необходимо выбрать «Отключить сетевое обнаружение», ваш комп перестанет обнаруживаться другими ПК, если дело происходит в среде Active Directory то в параметрах Фаерволла через GPO вырубаете эту функцию
avatar
При такой настройке получается что я вообще перестаю видеть любые устройства в сети; а мне надо чтобы устройства которые предоставляют шары были видны. Может так не получится сделать, а я мучаюсь?
avatar
Если компьютер в рабочей группе или домене, тогда он будет в списке. Не предоставление общих ресурсов не дает возможности его спрятать. Все равно по умолчанию некоторые службы запущены, удаленное управление например.
avatar
Что вы подразумеваете под удаленным управлением? Если RDP то, по умолчанию, эта служба не запущена!
avatar
RDP удаленный доступ.
Удаленный доступ — оснастка Управление компьютером (локальный или удаленный). Правда насчет виндовс 8.1 не скажу запущена ли она по умолчанию. Вин 7 запущена, только ограничена по сетевому екрану в зависимости от типа подключенной сети (домашняя, общая, рабочая или доменная)
avatar
Привет, спасибо за статьи, очень помог.
При настройки DNS, не запускается BIND9.
avatar
avatar
Здравствуйте.
Так все у вас перед глазами
/etc/bind/named.conf/local строка 10 bad secret
avatar
Спасибо, нашел опечатку
avatar
хм, и вновь ошибка(


Может ли это быть из-за этого:
avatar
так вы логи начнете читать или нет? ;)
Написано ведь- сеть не отвечает…
avatar
Здравствуйте! Подскажите, на клиентах (W7/W8) команда «nslookup их_имена» не отрабатывает, говоря "*** сервер_такой_то не удалось найти их_имена: Non-existent domain". Притом «nslookup localhost» отрабатывает, выводя ip, так же как и «nslookup ip» выводит имя localhost. Как я понял, не работает динамическое обновление. Лог как бы говорит что что-то не так:
client 127.0.0.1#52881/key dhcp_updater: signer "dhcp_updater" approved
client 127.0.0.1#52881/key dhcp_updater: updating zone 'srv.loc/IN': adding an RR at 'S----D.srv.loc' A
client 127.0.0.1#52881/key dhcp_updater: updating zone 'srv.loc/IN': adding an RR at 'S----D.srv.loc' TXT
client 127.0.0.1#52881/key dhcp_updater: updating zone 'srv.loc/IN': error: journal open failed: unexpected error
DHCPREQUEST for 192.168.0.62 from 90:2b:34:5d:cb:58 (S----D) via br0
DHCPACK on 192.168.0.62 to 90:2b:34:5d:cb:58 (S----D) via br0
Unable to add forward map from S----D.srv.loc to 192.168.0.62: SERVFAIL


Ещё вопрос, динамическое обновление работает только в связке isc-dhcp-server+bind9, или можно использовать для этого, например pdnsd? Сам думаю что нельзя.
avatar
здравствуйте.
запрос для localhost не уходит на dns сервер, а обрабатывается локально клиентом.
Чтобы команды отрабатывали нормально, добавьте в запрос DNS суффикс, например
nslookup client1.srv.loc

а не просто
nslookup client1


Вы файл S----D.srv.loc так специально назвали?
avatar
добрый день, такой вопрос.
Настраиваю локальную сеть небольшого предприятия на базе Ubuntu 14.04. В результате хочу получить: Active Directory, разграниченный доступ к файлам, RAID1 software, резервное копирование данных, доступ в Интернет с клиентских машин.

Роль Интернет-шлюза играет внешнее устройств от Zyxel. Мне необходимо понять, какие сервисы нужно поднять на локальном сервере, чтобы добиться указанной цели. На сколько я сейчас понимаю: поднять DNS+DHCP, сконфигурировать SAMBA, как domain-controller? С остальным все кажется яснее.

Правильно ли я понимаю, или может быть посоветуете обратить внимание на какую-то конкретную статью, касающуюся моей темы?

С уважением,
Роман
avatar
Здравствуйте.
Да вы все правильно понимаете!
по поводу статей, посмотрите статьи:
Настройка DHCP сервера под управлением Ubuntu
Настройка DNS+DHCP сервера для локальной сети+динамическое обновление DNS зон, под управлением Ubuntu
По поводу Samba
Когда я делал контроллер домена на Samba мне не понравилось как он работает, возможно за 4 года что-то изменилось, я давно не слежу за имениями в ней.
Так что придется вам все собирать из разных источников, но у меня нет статьи по поводу контроллера домена, лично я предпочитаю делать его на Windows, он для этого подходит на 100%.
avatar
А вот такой вопрос:
— должны ли автоматически добавляться хосты в зоны, если их IP были назначены вручную, а не DHCP-службой?
— вообще, такое возможно реализовать?
avatar
Уже все реализовано, в комментариях вопрос поднимался!
avatar
Добрый день!
Возник вопрос по поводу создания зон обратного просмотра.
У меня есть сеть 192.168.10.0-192.168.11.0. Для 192.168.10.0 записи создаются, а для 192.168.11.0 нет
/etc/bind/named.conf.local
key DHCP_UPDATER {
        algorithm HMAC-MD5.SIG-ALG.REG.INT;
        secret "NlZXTHL1MItY1lE1El0RwQ==";
};

zone "megi.local" IN {
        type master;
        file "/var/lib/bind/forward.db";
        allow-update { key DHCP_UPDATER; };
};

zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "/var/lib/bind/reverse.db";
        allow-update { key DHCP_UPDATER; };
};

zone "11.168.192.in-addr.arpa" IN {
        type master;
        file "/var/lib/bind/reverse_11.db";
        allow-update { key DHCP_UPDATER; };
};


/var/lib/bind/reverse.db
$TTL 86400      ; 1 day
10.168.192.in-addr.arpa IN SOA  wificontroller.megi.local. admin.megi.local. (
                                20111058   ; serial
                                10800      ; refresh (3 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      wificontroller.megi.local.
1                       PTR     megi.local.
1                       PTR     wificontroller.megi.local.


/var/lib/bind/reverse_11.db
$TTL 86400      ;       1 day
11.168.192.in-addr.arpa. IN SOA  wificontroller.megi.local. admin.megi.local. (
                        20110104        ; Serial
                        10800           ; Refresh
                        3600            ; Retry
                        604800          ; Expire
                        3600 )          ; Minimum

                        NS      wificontroller.megi.local.
1                       PTR     megi.local.
1                       PTR     wificontroller.megi.local.


Клиенты обеих сетей получают адреса, нормально входят в инет, но для второй сети не пишется обратная зона. Пытался разобраться сам, но видимо рукожоп
avatar
Решил сегодня перелопатить конфиги на свежую голову и понял в чём собственно была проблема
в /etc/dhcp/dhcpd.conf забыл добавить

zone 11.168.192.in-addr.arpa. {
primary 127.0.0.1;
key DHCP_UPDATER;
}


что собственно и вызвало проблему
avatar
Времени прошло много, но рукописи не горят :-) и не теряют актуальности.
Debian 9.2 Настроил согласно написанному. Работает. Но! Как только добавил что-то
ручками в forward.db и reverse.db (например, аналог srv01, т.е. статический хост), то при перезапуске bind9 ругань и
ни хрена не работает. А после
rm /var/lib/bind/forward.db.jnl
rm /var/lib/bind/reverse.db.jnl
все становится хорошо :-)
Вдруг кто-то отмотает столько комментариев вниз и увидит :-)
avatar
Здравствуйте, уже не знаю, ответите ли Вы мне, но я пробовал настраивать DNS и DHCP в сязке, как у Вас. Но по-видимому или у Вас не точности в настройке или я что-то делаю не так. В общем по Вашей статье у меня ничего не работает. Вот конфиги, чтобы не быть голосовном.
Файл /etc/bind/named.conf.options

 cat /etc/bind/named.conf.options 
options {
	directory "/var/cache/bind";

	// If there is a firewall between you and nameservers you want
	// to talk to, you may need to fix the firewall to allow multiple
	// ports to talk.  See http://www.kb.cert.org/vuls/id/800113

	// If your ISP provided one or more IP addresses for stable 
	// nameservers, you probably want to use them as forwarders.  
	// Uncomment the following block, and insert the addresses replacing 
	// the all-0's placeholder.

	// forwarders {
	// 	0.0.0.0;
	// };
	forwarders {
	    8.8.8.8;
	};
	//========================================================================
	// If BIND logs error messages about the root key being expired,
	// you will need to update your keys.  See https://www.isc.org/bind-keys
	//========================================================================
	dnssec-validation auto;

	auth-nxdomain no;    # conform to RFC1035
//	listen-on port 53 { any;};
	listen-on {
		127.0.0.1;
		192.168.10.1;
	};
	listen-on-v6 { any; };
};



Файл /etc/bind/named.conf.local

 cat /etc/bind/named.conf.local 
//
// Do any local configuration here
//
logging {
	channel bind_debug.log {
		file "/var/log/bind_debug.log";
		severity debug 3;
	};
};


key DHCP_UPDATER {
    algorithm HMAC-MD5.SIG-ALG.REG.INT;
    secret "HeEBYWgNK7trRwma6TIDxQ==";
};
zone "lkmpikt.lan" IN {
    type master;
    file "/var/lib/bind/forward.db";
    allow-update { key DHCP_UPDATER; };
};

zone "10.168.192.in-addr.arpa" {
    type master;
    file "/var/lib/bind/reverse.db";
    allow-update { key DHCP_UPDATER; };
};



// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";



Файл /var/lib/bind/forward.db

cat /var/lib/bind/forward.db
$ORIGIN .
$TTL 86400	; 1 day
lkmpikt.lan.	IN	SOA	base.lkmpikt.lan. root.lkmpikt.lan. (
				2018091901 ; serial
				10800      ; refresh (3 hours)
				3600       ; retry (1 hour)
				604800     ; expire (1 week)
				86400      ; minimum (1 day)
				)
		IN	NS	base.lkmpikt.lan.
			A	192.168.10.1
localhost	IN	A	127.0.0.1
base		IN	A	192.168.10.1
proxy1		IN	A	192.168.10.1
proxy2		IN	A	192.168.10.1
proxy3		IN	A	192.168.10.1
proxy4		IN	A	192.168.10.1



Файл /var/lib/bind/reverse.db

cat /var/lib/bind/reverse.db 
$TTL 86400 
10.168.192.in-addr.arpa.	IN	SOA	base.lkmpikt.lan.	root.lkmpikt.lan. (
				2018091901
				10800
				3600
				604800
				3600
		    		)
	IN	NS	base.lkmpikt.lan.
1	IN	PTR	lkmpikt.lan.
1	IN	PTR	base.lkmpikt.lan.
1	IN	PTR	proxy1.lkmpikt.lan.
1	IN	PTR	proxy2.lkmpikt.lan.
1	IN	PTR	proxy3.lkmpikt.lan.
1	IN	PTR	proxy4.lkmpikt.lan.



Файл /etc/network/interfaces

cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp2s0
iface enp2s0 inet dhcp

auto ens1
iface ens1 inet static
address 192.168.10.1
netmask 255.255.255.0
dns-search lkmpikt.lan
dns-nameservers 127.0.0.1

auto ens1:0
iface ens1:0 inet static
address 192.168.20.1
netmask 255.255.255.0

auto ens1:1
iface ens1:1 inet static
address 192.168.30.1
netmask 255.255.255.0

auto ens1:2
iface ens1:2 inet static
address 192.168.40.1
netmask 255.255.255.0


post-up /etc/nat



Файл /etc/resolv.conf

cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
domain lkmpikt.lan
search lkmpikt.lan
nameserver 127.0.0.1

nameserver 192.168.1.1
nameserver 127.0.0.1
search lkmpikt.lan



Файл /etc/resolvconf/resolv.conf.d/head

cat /etc/resolvconf/resolv.conf.d/head 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
domain lkmpikt.lan
search lkmpikt.lan
nameserver 127.0.0.1



Ну и напоследок файл iptables

cat /etc/nat
#!/bin/sh

#Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

# Очищающие правила
iptables -F
iptables -t nat -F

iptables -X
iptables -t nat -X

# Разрешаем траффик на lo
iptables -A INPUT -i lo -j ACCEPT

# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i ens1 -o enp2s0 -j ACCEPT
iptables -A FORWARD -i ens1:0 -o enp2s0 -j ACCEPT
iptables -A FORWARD -i ens1:1 -o enp2s0 -j ACCEPT
iptables -A FORWARD -i ens1:2 -o enp2s0 -j ACCEPT

# Включаем NAT
iptables -t nat -A POSTROUTING -o enp2s0 -s 192.168.10.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp2s0 -s 192.168.20.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp2s0 -s 192.168.30.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp2s0 -s 192.168.40.0/24 -j MASQUERADE

# Разрешаем ответы из внутренней сети
iptables -A FORWARD -i enp2s0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i enp2s0 -o ens1 -j REJECT
iptables -A FORWARD -i enp2s0 -o ens1:0 -j REJECT
iptables -A FORWARD -i enp2s0 -o ens1:1 -j REJECT
iptables -A FORWARD -i enp2s0 -o ens1:2 -j REJECT

# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i ens1 ! -d 192.168.10.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.10.1:3127
iptables -t nat -A PREROUTING -i ens1:0 ! -d 192.168.20.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.10.1:3128
iptables -t nat -A PREROUTING -i ens1:1 ! -d 192.168.30.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.10.1:3129
iptables -t nat -A PREROUTING -i ens1:2 ! -d 192.168.40.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.10.1:3140


Проверка работоспособности:
dig base

 dig base

; <<>> DiG 9.10.3-P4-Ubuntu <<>> base
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56517
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;base.				IN	A

;; ANSWER SECTION:
base.			0	IN	A	192.168.1.188

;; Query time: 0 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Wed Sep 19 10:07:49 MSK 2018
;; MSG SIZE  rcvd: 38


dig base.lkmpikt.lan

dig base.lkmpikt.lan

; <<>> DiG 9.10.3-P4-Ubuntu <<>> base.lkmpikt.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 7943
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;base.lkmpikt.lan.		IN	A

;; Query time: 3001 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Wed Sep 19 10:16:39 MSK 2018
;; MSG SIZE  rcvd: 45



dig lkmpikt.lan

dig lkmpikt.lan

; <<>> DiG 9.10.3-P4-Ubuntu <<>> lkmpikt.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 44424
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;lkmpikt.lan.			IN	A

;; Query time: 3001 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Wed Sep 19 10:17:36 MSK 2018
;; MSG SIZE  rcvd: 40



nslookup base


nslookup base
;; Got SERVFAIL reply from 192.168.1.1, trying next server
;; connection timed out; no servers could be reached



nslookup base.lkmpikt.lan


nslookup base.lkmpikt.lan
;; Got SERVFAIL reply from 192.168.1.1, trying next server
;; connection timed out; no servers could be reached



nslookup lkmpikt.lan


nslookup lkmpikt.lan
;; Got SERVFAIL reply from 192.168.1.1, trying next server
;; connection timed out; no servers could be reached

Есть что добавить? Регистрируйся и оставляй комментарии!