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 сервер будет создавать прямую и обратную зоны-автоматически.
2) Сервер настроен в качестве шлюза по статье: Настройка шлюза локальной сети, на базе Ubuntu 12.04
3) Также на указанном сервере настроена служба DHCP по статье: Настройка DHCP
сервера под управлением Ubuntu 12.04
Первым делом, нам необходимо удалить пакет dnsmasq — который был установлен по статье, Настройка шлюза локальной сети, т.к надобность в нем отпадает, вместо него у нас будет использоваться Bind9.
Поднимаем права до root:
Установим Bind:
Теперь генерируем ключ, для обновления DNS записей:
Проверим что у нас получилось:
Нам выдаст нечто подобное (у вас ключ получится другим)
Переходим к настройкам Bind9, для начала отредактируем файл name.conf.option:
Туда добавляем следующие строки:
В пункте listen-on указываем IP адреса, которые будет обслуживать наш DNS сервер, это localhost и интерфейс по которому подключена наша локальная сеть 192.168.10.1, запросы на другие IP адреса обслуживаться не будут, эту функцию можно рассматривать как дополнительную возможность по снижению нагрузки на наш сервер т.к. запросы из вне-не обслуживаются.
Переходим к редактированию файла name.conf.local:
Добавми туда следующее:
Пункт 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:
С содержимым:
Из содержимого понятно что наша зона example.net, в которой присутствует DNS сервер (он же шлюз) с именем srv01, который имеет IP адрес 192.168.10.1. Других записей делать не будем т.к. их будет добавлять DHCP сервер автоматически.
Если вдруг вам понадобится создать запись в ручную, то достаточно добавить строку с именем и IP адресом узла локальной сети.
Теперь создадим файл зоны обратного просмотра, чтобы не выдумывать ничего, назовем его reverse.db
С содержимым:
Выходим и перезапускам bind
Теперь нам необходимо проверь работоспособность нашего сервера локально.
Проблема заключается в том что наш сервер по умолчанию использует DNS настройки которого по получил по сети и соответственно он ничего не знает о локальном DNS сервере, которые крутится на нем же-это нам необходимо исправить.
Если мы полезем, править resolv.conf то в Ubuntu 12.04 нас поджидает большой сюрприз в виде надписи:
Которая говорит нам о том что: resolv.conf нельзя редактировать и что он создается динамически, а все внесенные в него изменения будут перезаписаны!
В общем его править нельзя, мы будем править сам шаблон этого файла, который находится в /etc/resolvconf/resolv.conf.d/ нас интересует файл head, вот его мы и будем править:
Добавляем в него:
Более опытные уже догадались что это ничто иное как DNS суффикс и домен для поиска по умолчанию, а также IP адрес локального DNS сервера.
У данной схемы есть еще одно преимущество- если настройки сети получаются нашим шлюзом от DHCP сервера провайдера, то DNS сервер провайдера добавляется в конце списка, после строки nameserver 127.0.0.1, таким образом, наш локальный DNS всегда является приоритетным, а в случае выхода его из строя, запросы начинают идти к DNS провайдера, автоматически!
Перезапустим сеть:
Пробуем определить наш DNS сервер:
В ответ получаем нечто подобное:
Проверим самоопределение имени нашего сервера:
В ответ получим
Эту операцию, также, можно выполнить и через host, сделав запрос вида:
Если имя преобразовано в IP значит зона прямого просмотра работает нормально.
Теперь проверим зону обратного просмотра:
Нам выдаст:
Можно считать половину дела сделанным…
Если вы настраивали DHCP сервер, по моему руководству, ссылка на которое есть в начале этой статьи, то у вас в конфигурационном файл должна присутствовать запись:
Мы ее немного подправим, а именно заменим option domain-name на example.net
перед диапазоном адресов нашего DHCP сервера, добавляем следующее:
За одно добавим строку update-static-leases on; которая отвечает за автоматическое создание прямой и обратной зоны для клиентов с зарезервированным IP, без нее записи придется создавать в ручную, а мы этот процесс автоматизируем.
В результате всех действий, у вас должен получиться конфигурационный файл вида:
Остальные настройки, оставляем как они были представлены в руководстве по настройке DHCP сервера.
Перезапустим DNS и DHCP сервер:
Подключаем наш клиентский ПК к локальной сети, предположим что его имя test01 он получит IP от нашего DHCP сервера, а DHCP сервер создаст DNS запись вида test01.example.net.
Пробуем выполнить запрос по имени
нам должен возвращаться IP адрес который получила клиентская машина от DHCP сервера.
Ну и преобразование IP адреса в имя, также должно работать.
Во время работы данной связки, у нас будут создаваться файлы в директории /var/lib/bind с расширением .jnl, они создаются автоматически, создавать или удалять их не нужно.
Выглядеть это будет так как на скриншоте:

Теперь работы по настройке данной схемы можно считать успешно завешенными.
На этом все.
Возникли предложения по улучшению или вопросы, прошу в комментарии, нашли ошибку, пишите в личку…
Идея проста, мы настроим разрешение имен внутри локальной сети, а в случае обращения к сайтам в сети интернет, то запросы будут передаваться вышестоящим 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 комментариев
Тем более что если вы поднимаете первый контроллер домена, в новом лесу, мастер установки вам не даст отказаться от поднятия роли DNS, GC.
Если у вас используется контроллер домена, то проще все это развернуть на нем, а запросы пересылать вышестоящим серверам провайдера/корневым/гугла
Для решения этих вопросов и была придумана служба ДНС в целом и DNS-сервера Bind, в частности.
2 DNS сервера необходимо для поддержки доменного имени, в целях повышения отказоустойчивости, для локалки хватит и одного
В статье этот момент освящён и даже выделен жирным шрифтом с подчеркиванием, но никто его не видит- ПАРАДОКС!
Он это узнает от DNS сервера! Вот и добавьте IP вашего DNS сервера, чтобы комп знал где спросить…
ru.wikipedia.org/wiki/DNS
Читайте про работу службы DNS, там все подробно расписано.
Хочу прояснить некоторые моменты.
Допустим у меня 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
отклик:
host mail —
а также
nslookup 10.10.10.252
Спасибо)
2) В вашем случае именно так и будет
3) Имя srv01 исключительно для понимания
4) Для начала нужно разобраться для чего служат эти команды
Первый спойлер: говорит о том что сервер не нашел имя mail
Второй спойлер-тоже самое, не найдена запись mail
третий-нет и обратной DNS зоны для IP, т.к. она должна создаваться автоматически.
Скопируйте схему как есть, чтобы понять как она работает, а то вы DHCP убрали, толком не разобравшись, схему поломали и теперь удивляетесь- почему не работает…
Вся идея заключается в том что DHCP сервер автоматизирует процесс создания прямой и обратной зоны в DNS, для клиентский систем.
В принципе все это можно настроить руками, что не очень удобно, да и смысла нет.
А обязателен ли ключ, для обновления DNS записей?
«Вся идея заключается в том что DHCP сервер автоматизирует процесс создания прямой и обратной зоны в DNS, для клиентский систем.» — вот это, я понимаю, ключевая фраза, но как-то все неочевидно…
После настройки dhcp по Вашему образцу при рестарте bind выдает ошибку
rndc:connect failed:127.0.0.1#953: connection refused
Подскажите, пожалуйста, такую вещь…
Вот, сейчас у меня все работает. Стоит домен example.com, dns и dhcp сервер на windows. На Убунте я хочу поднять еще один dns сервер параллельно, чтобы проверить. Мои действия должны быть точно такими же как написано выше? Только IP сервера будет соответственно другой? (Я Гуглил, но то ли я запрос неправильно составляю, то ли задача не тривиальная)) ).И как в таком случае быть с dhcp?
Спасибо, что отвечаете)))))
Или вы хотите создать сервер пересылки?
Что вы хотите получить на выходе?
Это если вы выносите его за пределы сети периметра, по соображениям безопасности, это имеет смысл чтобы не выставлять виндовый сервер в интернет, а так, просто создайте А запись в вашем DNS и укажите IP вашего сервера Linux.
Делайте систему проще-легче будет обслуживать…
На slakware -который настраивался именно 10 лет назад стоит dns почта и сайт, начинает лететь жеский диск, да и вообще систему обновлять надо). С Линуксом я сталкивался только для самообразования, поэтому разбираюсь в нем не очень, и Слака — это для совсем уж адептов. Выбрал Убунту, читаю ваш блог, саморазвиваюсь.
Сейчас стоит именно так. На машинах днс сервером прописан виндовый. Но он редиректит запросы на слаку. Если эту машину отключить — интернета нет. После слаки — запросы идут на рутер (еще потом с ним разбираться:) ). Почему так сделано — только богу известно. Доступа до предыдущего админа нет. Да и самому хочется разобраться. Но это все лирика). Извините за флуд, накипело)))).
И вот, собственно, я хочу поднять еще один ДНС на УБУНТУ, который будет стоять параллельно Слаке (для начала). А для этого на Убунте должно стоять только ДНС. чтобы я, на любой машине, поставил адрес ДНС Убунты — и интернет заработал. такова моя первичная цель.
Ну а если нужно настроить кеширующий DNS сервер, то вот вам ссылка howitmake.ru/blog/ubuntu/29.html
Поставил на чистую систему «кеширующий DNS сервер» — заработало. Буду смотреть, где я здесь накосячил)
Спасибо большое за консультацию.
Подсосусь к вашему блогу, буду учиться дальше)
у меня сеть 172.16.xxx.xxx 255.255.224.0
сейчас прописал везде по схеме так: 16.172.in-addr.arpa.
Однако, так не работает:
В таком случае как правильно прописывать обратную зону?
что можете еще посоветовать?
получался ожидаемый ответ, понадобилось в файле /var/lib/bind/reverse.db
внести следующие изменения:
Что бы я не делал, приходят отклики
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?
Спасибо за понимание)))))
Что-то долгая эпопея у вас с DNS :)
example.com — зона которая специально создана чтобы использоваться в примерах и руководствах, подробнее прочитать можно тут.
В вашей ситуации, вы явно
городите хренотеньделаете не правильно! Зоны обновляться не будут, потому что у вас есть их обновлять некому!Не занимайтесь ерундой и просто сделайте как я с кажу-на виндовом сервере поднимите роль DNS и настройте сервера пересылки, например гугловские 8.8.8.8, а то что вы там пытаетесь городить, совершенно не правильно, а начинать делать хренотень, то что до вас один дилетант нагородил а вы его шагами идете, если так исторически сложилось-тоже тупиковый путь, сделайте как правильнее+проще=надежнее.
Вот честно-работы на 1 час- если устраивать чаепития. Делайте системы проще!
Буду разбираться, пока мозг не вытечет) Спасибо за общение))))
В вашей ситуации, думаю что, данная схема без надобности.
Ну во-первых — спасибо за отличные статьи.
Во-вторых — наткнулся на проблему, не могу решить(.
Демон bind9 никак не хочется подниматся.
named показывает ошибку в конфиге в строках:
В чем может быть причина? Вроде по синтаксису все верно…
Выложите содержимое этих файлов-разберемся.
очень благодарен вам за вашу работу. уже пару лет пользуюсь линуксом на уровне нашел что-то в инете — скопировал в терминал — что-то вышло. и только сейчас, прочитав несколько ваших статей, начинаю хоть немножко понимать что к чему.
ситуация такая. есть машина с установленным ubuntu 12.10 server и двумя сетевыми картами. также имеется ноут с ubuntu 12.04. пытаюсь настроить шлюз с dhcp и dns серверами. действовал по вашим статьям «Настройка шлюза локальной сети, на базе Ubuntu 12.04» (не устанавливал dnsmasq, поскольку потом его нужно удалять. правильно ли это?), «Настройка DHCP сервера под управлением Ubuntu 12.04» и «Настройка DNS сервера для локальной сети+динамическое обновление DNS зон, под управлением Ubuntu 12.04 (DNS+DHCP сервер)».
на клиенте пингуется 192.168.0.1, отвечает нормально на nslookup yandex.ru, но не пингует 8.8.8.8 и все остальное в интернете.
подскажите, пожалуйста, куда смотреть, что делать? очень хочется разобраться в данной тематике
2) что выдает команда
?
Address: 192.168.0.1#53
уже все работает
еще раз спасибо
Все делал четко по статье, подключил клиентский комп, он получил адресс по дхцп, получил днс требуемый…
Но, nslookup почему то его не видит (
Спасибо за отличный ресурс.
Хотел бы уточнить касательно динамического обновления DNS записей при регистрации ПК используя DHCP.
При выделении IP адреса из пула — регистрация происходит. Если адрес ПК прописан в конфигурации bind с помощю секции host { адрес… мак } то в таком случае адрес назначается согласно настройке, но регистрации в DNS не происходит.
Есть возможность расширить регистрацию в ДНС и привязаных в DHCP хостов?
P.S. можно конечно все статикой прописать, но хочется больше автоматизации.
Честно говоря не знаю, я этим вопросом не озадачивался.
Но пока решения в лоб нет, думаю придется для зарезервированных IP создавать DNS запись вручную, все равно на него кроме них этот адрес использовать никто не будет/
Кстати, можно ли к системе описаной в данной статье доработать VPN PPTP сервер (как Установка VPN сервера Debian/Ubuntu с использованием протокола PPTP) и настроить выдачу IP адресов нашим DHCP сервером и, возможно даже, обновление таких подключений в ДНС?
Если выделить внешние подключение в отдельную подсеть 192.168.128.х тогда можна распределить доступ на основании iptables.
Вот только IP адреса будут выдаваться из диапазона который задается настройках самого VPN сервера, а не DHCP, т.к. широковещалка не проходит через маршрутизатор
В конфиг сервера dhcp добавить директиву:
update-static-leases on;
включит обновление dns записей для статических IP адресов/хостов.
Статью поправил.
Я все сделал как тут написано но бинд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
/var/log/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)
Проверяйте синтаксис.
listen-on
Эти я уже исправил — надо было их после options писать, а я написал их перед ним.
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» тоже не работает :( Зона обратного просмотра работает. в чем может быть причина?
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: srv01.example.net
Address: 192.168.10.1
Ответил :)
Такой лог должен быть???
reverse.db
И, таки да, эти записи сдаются автоматически, что вас смущает?! :)
Вот логи ошибки с /var/log/syslog
/var/lib/bind/reverse.db:2: SOA record not at top of zone…
Вот мой файл:
У меня кажись проблема была в том что я Serial (для зон) параметр не инкрементировал! Сейчас все зажужжало.
Настроил DNS по мануалу, все отлично работает.
Решил использовать свои данные, имя компьютера и доменное имя.
Изменил все по аналогии, но при командах:
и
получаю ответ:
хотя если запрашивать yandex.ru:
DNS определяется нормально.
Неподскажите куда копать?
Так же вопрос, что должно быть прописано в /etc/hosts
Запись -А для ubuntu.d1ablo.ru создана, думаю что нет, по этому запрос и возвращается с ошибкой.
Что вы хотите добавить в файл hosts?
Такая же проблема. Причем появилась после обновления до 12.04.1
Кто-нибудь подскажет решение?
Опишите яснее…
Соответственно DNS не фурычит ((
что показывает:
В файл /etc/bind/named.conf.local добавить:
И перезапустить bind, в лог вывалит много инфы, но там уже понятно в каком месте ошибка.
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 не создается.
Прямой просмотр работает нормально.
Где копать?
* bind9 is running
andrew@srv-squid:~$
/var/lib/bind/forward.db:
/var/lib/bind/reverse.db:
/etc/bind/named.conf.options:
Соединение устанавливается?
Если вы не ограничивали доступ к DNS серверу только внутренней сетью, то служба на порту должна быть доступна
И выбрать ОС ubuntu 12.04 Server, а то некоторые пытаются на десктопных системах делать, но оно там почему-то не работает. а почему оно там не фурычит, лично мне, разбираться лень.
Сначала делал на двух разных виртуальных ПК. DNS и DHCP работают по отдельности работают. В Паре не появляются записи на DNS ни в прямой ни в обратной зоне, файлов журнала нет, nslookup для имент ПК не работает. По началу думал, что в чем то ошибся. Но проверив через nsupdate стало понятно что проблема именно в связке DNS и DHCP. Перегуглил — ответа не нашел.
Теперь собрал все (за исключением IP адресов сети и ПК). Собрал тогда как в статье все на одном сервере. Стала обновляться зона прямого просмотра, появились файлы журнала. Однако обратная зона не изменена.
Обратил внимание что разрешения на файл зоны прямого просмотра изменились, а для обратного нет. В чем же дело?
funakoshi Вам удалось это победить?
Похоже мой случай. Мне провайдер выделил подсеть из 4х ip.
Пока у меня ерунда полнейшая. Собрал два стенда.
В первом есть отдельные сервера: шлюз, dns, dhcp и пара клиентов. Все на базе Debian. В этом случае никак не втолковать DHCP чтобы он патался слать обновления. Он, гад, только выдает IP адреса. Однако со всех компов выполняля:
где 1 это фаил с содержанием:
Записи добавляются в прямую и обратную зоны. nslookup работает во все «стороны».
Во стром случае на базе Ubuntu 12.04.1: шлюз, на другой машине: dns, dhcp, третья машина клиент. При перезагрузки клиента происходит добавление в зону прямого просмотра, обратная же не обновляется. Так же не удается в обратную зону добавить и из nsupdate.
Мой оптимизм на исходе, а забрасывать идею развернуть ферму в виртуалке жалко.
Коллеги! И так. Как только я убрал
вражескиепровайдерские днс и заменил на google'вские, что и сделано в статье, у меня все заработало. Теперь попробую произвести подобные манипуляции при размещении на физически серверах.funakoshi не дадите ссылочку на то где написано про ограничение вышестоящими днсами?
Гугл по запросу «как работает ДНС» выдает кучу ссылок на разные, но практически на всех данная статья просто перепечатана.
Попробую с iptables разобраться — посмотреть какие порты открыты\закрыты.
Если не разберусь — настрою просто кеширующий DNS.
Ну дык, сервачок в качестве шлюза работает.
кто знает помогите пожалуйста это организовать
named[9150]: error (unexpected RCODE REFUSED) resolving '144.47.194.173.in-addr.arpa/PTR/IN': 216.239.32.10#53
в гугле ответа не нашел; единственное что понял, это то, что при использовании forwarders адресуемый не резолвит обратную зону. Но ведь вышестоящий сервер — это гугловский.
Ошибка собственно не критичная, но не приятная.
Использовать DNS серверы провайдера или забить.
лучше наверное забить ибо DNS серверы провайдера как то медленно ответы отдают. Гугловский у меня (8.8.4.4) почему то быстрее. Хотя должно же быть наоборот по идеи.
когда на клиенте делаешь nslookup <имя клиента>, то выдаётся ошибка
как понимаю не создаётся запись в зоне прямого просмотра
При этом зона обратного просмотра пишется нормально. Подскажите куда копать.
ЗЫ хотя и работает инет на клиенте нормально, но хочется все баги убрать.
Спасибо, буду грызть логи
которые принялись, всё равно отклоняет запись в зону прямого просмотра, даже локал хосту (127.0.0.1)
больше никакой ругани в логах нету…
запись
Без ошибок написана?
Пути соответствуют?
Спасибо
chmod 700 /var/lib/bind/forward.db
chmod 700 /var/lib/bind/reverce.db
Поменял, как говорите — пишет норм всё.
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 при подключении нового клиента в сети появляется подобная запись:
Подскажите, пожалуйста, куда копнуть еще?
/etc/dhcp/dhcpd.conf
/etc/bind/named.conf.local
Совпадают.
При генерации этих ключей создаются файлы:
Kdhcp_updater.+157+64996.key
Kdhcp_updater.+157+64996.private
В статье я не обнаружил упоминания в какой папке необходимо хранить эти два файла, и нужно ли их хранить вообще. Поэтому они у меня убраны по-дальше — в глубине домашней папки пользователя, из-под которого происходила генерация.
Правильно ли это, или кроме выше указанных двух мест эти ключи еще где-то должны упоминаться?
Это пример из моей статьи!
Почитайте статью внимательнее, а не простой копипастой, без понимания происходящего.
У вас, кстати, в файле:
/etc/bind/named.conf.local
а в файле:
/etc/dhcp/dhcpd.conf
Пробовал оставлять как у вас, так и устанавливать одинаково:
1) в обоих файлах так:
2) в обоих файлах так:
Имеет ли это решающее значение? Во всех случаях положительного результата не дало.
переведите уровень логирования в debug DHCP и Bind серверов и смотрите что пишут туда сервисы.
На этот раз клиента использовал под ubuntu. С ним все работает — и прямая зона, и обратная.
А вот с Win8.1 клиентом все сложнее, не работает прямая зона, однако обратная работает.
Читал где-то в интернете, что винда может не однозначно относиться к значениям секретных ключей hmac-md5.
Первым в голову приходит не использовать этот ключ вообще. Однако, необходимо понять на сколько это критично.
Какой путь решения этой задачи можете подсказать?
Одна зона будет обновляться динамически, остальные статически, просто в локальной сети иметь 3 DNS суффикса-не вижу смысла.
А так 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
Где это находится ошибка после рестарта?
и почему не хочет работать зона обратного просмотра?
где находится имя домена все проверил
/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
перезапустил систему не помогло((
у вас сложности возникают с любым мануалом, задумайтесь об этом.
Вот все мои действия
Вот из за этого выдавал ошибку))
и у вас скобка не в том месте стоит
Интернет работает?
а выглядеть должно было так:
найдите отличия…
Скобка там как раз к месту!
и интернет у вас работает потому, что ваш собственный DNS сервер не работает, а запросы уходят на вышестоящий.
покажите syslog (только то что касается named). рекомендую сделать так. удалить /var/log/syslog, перегрузить сервер и вновь созданный syslog показать здесь.
p.s. а мануал рабочий 100%. и еще, рекомендую сменить вашу домашнюю зону с homehosts.ru. у вас же не делегирован домен в зоне .ru
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?
этот домен существует
ну меня напрягает вот обратного позиционирования, а именно вот эта строчка
по запросу nslookup 192.168.1.100
** server can't find 100.1.168.192.in-addr.arpa.: NXDOMAIN
как сделать ее, чтоб видел его домен?
Я писал про сервер ubuntu!
А это что? )))
а в роутере нету не где вводить ключ
Настройте сервер, как предлагается в статье, а DHCP сервер на роутере отключите и будет вам счастье… В качестве шлюза укажите ваш роутер. чтобы его адрес раздавался с DHCP сервера Ubuntu.
1) Вам необходимо 3 интерфейса, которые подключены к трем подсетям
2) Поднять на маршрутизаторе DHCP-proxy который будет соединять 4 подсети (в первой у вас будет жить сам DHCP сервер, а остальные 3 для клиентов) и перенаправлять запросы клиентов на ваш DHCP сервер, а тот в свою очередь обновлять записи в DNS (МНЕ ЭТОТ ВАРИАНТ НРАВИТСЯ БОЛЬШЕ!!!)
Но это на уровне размышлений, сам я этого не делал, применительно к этой схеме, а вот на Windows такое реализовывается довольно легко, у меня на прошлой работе 1 DHCP сервер обслуживал порядка сотни подсетей, естественно что в сервер не было воткнуто 100 сетевых интерфейсов.
Так что я не вижу проблемы в реализации вашей затеи, в любом случае если откинуть задачу с обновлением DNS зон для клиентов, то DHCP сможет реализовать такую задачу на раз, просто добавляйте новые диапазоны в конфигурационный файл.
Почитайте про DHCP-proxy
Еще, в фрагменте syslog который приведен чуть выше есть несколько моментов которые явно указывают на ошибки. И еще совет: если все таки «роутер» будет настроен по статье, то при каких либо изменений вручную файл зон изменяйте серийный номер. Посмотрите, несколько ошибок из syslog точно пропадут.
Artful
могу предложить внести в настройки (чуть чуть добавить статью) следующим моментом:
в файл /etc/bind/named.conf.options добавить следующую секцию:
logging {
category lame-servers { null; };
};
На функционале это никак не измениться, но предотвратит появление в лог файле (/var/log/syslog) лишней/ненужной информации, которая будет вводить только в заблуждения.
Вопрос или точнее просьба о консультации не совсем по этой теме.
Вначале, что есть: комп с 2мя ядрами, на нем убунту 12.04 и все что до squid3 установлено и работает. Вход внешний pppoe по ethernet (бзик столичных провайдеров), на выходе внутренняя сетка в гигабит и кучка компов, т.е. сервак используется как кэширующий DNS с прокси без фильтрации. Работает всё изумительно.
Что надо: Но недели две назад пришла мысль «светлая» — а не прикрутить ли к этому хозяйству ISPmanager. Дело в том, что я и небольшая артель единомышленников делаем сайты для народа, вот и решили использовать сервак как строй площадку, тем более не за горами лето и с дач очень не плохо работать со своим серваком, главное, что всё под контролем. А поскольку мои друзья и я в том числе избалованы ISPmanagerом — очень хотелось её запустить.
Установка началась пару недель назад, как и гугление и танцы с бубном но… Одно с другим работать пока не желает. Если взять за основу Ваш материал отдельно и ISP — все в отдельности работает чётко. Но если на «материал» накатить ISP — то не работают сайты, если наоборот, то соответственно не работает шлюз…
Ошибок нет! В логах всё нормально, кроме что ISP выдает 104 ошибку — это значит он не может найти DNS сервера. Понимаю что проблема в DNS, а что с этим делать просто уже не знаю.
В инете инфы скудно по этому поводу, наверно задача сложновата, да и не совсем наверно оправданная — точно можно обойтись простыми решениями. Но из моих боевых товарищей один я немного понимаю в строении сервака, остальные привыкли к панелям управления хостинга.
Спасибо!
Но думаю что сначала вам придется накатить ISPmanager а уже потом наворачивать, через нее, функционал.
include "/etc/bind/rndc.key";
в dhcpd.conf и named.conf.local
а потом использовать
allow-update { key «rndc-key»; };
Хороший мануал, но как бы мне трансформировать это на FreeBSD? BIND 9 там уже есть
Конфиги, практически, не отличаются, только пути поправить ну и некоторые мелочи, которые вылавливаются через лог ошибок.
Сделал все как тут описано и вот какая проблема, компьютер-клиент (test01) получает ip по dhcp но записи не проходят dns, т.е. пишу nslookup test01 в ответ
С основным сервером все норм.
В чем может быть проблема? Где копать?
Результат тот же.
перезагружаю сервер перестают пинговаться и открываться внешние узлы, внутренние работают.
можно смотреть ошибки в реальном времени в syslog
Большую часть багов можно отловить в логах
Делаю 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 {
Тут вам придется сесть и разобраться т.к. я «телепатическим» путем не могу понять что у вас там происходит.
А если на клиентском компьютере задать конкретный адрес DNS сервера (к примеру 8.8.8.8), а не получение автоматически от DHCP сервера, интернет работает без задержек?
А какой сервер у вас стоит в параметре forwarders в BIND? у меня запросы форвардятся на гугловские адреса 8.8.8.8 и 8.8.4.4 потому, что так ответ приходит у меня быстрее чем от DNS моего провайдера.
потом оставил только гугловский.
в iptables не в зуб ногой к сожалению, учусь только)))
добавлено только 4 записи из статьи настройка шлюза на ubuntu 12.04
Вообще заметил, что вроде как то шустрее все стало работать, после того как я его перезагрузил сегодня пару раз.
Еще думаю убрать реальный IP пока не смогу нормально сам настроить файервол.
подробнее тут
при удалении aptitude purge dnsmasq порт остается занятым и установка bind9 проходит с ошибкой подмогните
Занятым каким приложением?
Ситуация следующая:
1 внутренний сайт
2 шлюз с возможностью ограничения скорости
3 DNS
4 Почта внутренняя
5 FTP
Подскажите как правильно сделать на входе инета статичный ип через ADSL модем думал комп в дмз засунуть еще
статический IP настраивается стандартно:
создаете там запись
навастриваете DNS с локальной зоной
Скорость ограничиваете с помощью SQID ну или ставите шейпер который решет скорость на сетевом интерфейсе.
Разделите задачи на части и решите каждую часть.
почти все эти решения есть на этом сайте, используйте поиск…
при перезагрузке bind9 что не может загрузить обратную зону, может это быть причиной?
Через браузер выкидывает на поиск яндекса 123.ru
server: 127.0.0.1
address: 127.0.0.1#53
** server can't find srv01: NXDOMAIN.
Сделал все как в статье. Все restart'ы прошли без ошибок. Пробовал команду nslookup srv01.example.net, но также не работает. Подскажите что не так.
root@SRV-01:/var/lib/bind# nslookup srv-01
а если полное имя, то все норм
r
Но при этом есть клиентская машина и с которой nslookup отрабатывает нормально как с srv-01.lablinux.loc так и с srv-01
Что на сервере не так? какие конфиги показать?
За это отвечает секция:
Где задается домен для поиска.
Удалил 2 последние строчки и все работает.
спасибо большое за помощь!!!
dhcpd: Can't create new lease file: Permission denied
При чем при этом работает вроде бы все нормально, адреса выдаются, сопоставляются, пингуются и т.д. И вроде бы в dhcpd.leases информация пишется.
Не могу понять что происходит; пытался права менять на dhcpd.leases, но они потом меняются автоматически.
Но вот вопрос, почему так; баг что ли isc-dhcp…
Владелец файла root права на файлы 644 -естественно у других сервисов нет прав доступа на запись в этот файл.
Но на самом деле странно, у меня владельцем директории /var/lib/dhcp является dhcpd, как и файлов в ней.
При этом реальные разделяемые ресурсы имеет компьютер Hawk (Samba) и WD-TV мультимедийный проигрыватель.
Удаленный доступ — оснастка Управление компьютером (локальный или удаленный). Правда насчет виндовс 8.1 не скажу запущена ли она по умолчанию. Вин 7 запущена, только ограничена по сетевому екрану в зависимости от типа подключенной сети (домашняя, общая, рабочая или доменная)
При настройки DNS, не запускается BIND9.
Так все у вас перед глазами
/etc/bind/named.conf/local строка 10 bad secret
Может ли это быть из-за этого:
Написано ведь- сеть не отвечает…
Ещё вопрос, динамическое обновление работает только в связке isc-dhcp-server+bind9, или можно использовать для этого, например pdnsd? Сам думаю что нельзя.
запрос для localhost не уходит на dns сервер, а обрабатывается локально клиентом.
Чтобы команды отрабатывали нормально, добавьте в запрос DNS суффикс, например
а не просто
Вы файл S----D.srv.loc так специально назвали?
Настраиваю локальную сеть небольшого предприятия на базе Ubuntu 14.04. В результате хочу получить: Active Directory, разграниченный доступ к файлам, RAID1 software, резервное копирование данных, доступ в Интернет с клиентских машин.
Роль Интернет-шлюза играет внешнее устройств от Zyxel. Мне необходимо понять, какие сервисы нужно поднять на локальном сервере, чтобы добиться указанной цели. На сколько я сейчас понимаю: поднять DNS+DHCP, сконфигурировать SAMBA, как domain-controller? С остальным все кажется яснее.
Правильно ли я понимаю, или может быть посоветуете обратить внимание на какую-то конкретную статью, касающуюся моей темы?
С уважением,
Роман
Да вы все правильно понимаете!
по поводу статей, посмотрите статьи:
Настройка DHCP сервера под управлением Ubuntu
Настройка DNS+DHCP сервера для локальной сети+динамическое обновление DNS зон, под управлением Ubuntu
По поводу Samba
Когда я делал контроллер домена на Samba мне не понравилось как он работает, возможно за 4 года что-то изменилось, я давно не слежу за имениями в ней.
Так что придется вам все собирать из разных источников, но у меня нет статьи по поводу контроллера домена, лично я предпочитаю делать его на Windows, он для этого подходит на 100%.
— должны ли автоматически добавляться хосты в зоны, если их IP были назначены вручную, а не DHCP-службой?
— вообще, такое возможно реализовать?
Возник вопрос по поводу создания зон обратного просмотра.
У меня есть сеть 192.168.10.0-192.168.11.0. Для 192.168.10.0 записи создаются, а для 192.168.11.0 нет
/etc/bind/named.conf.local
/var/lib/bind/reverse.db
/var/lib/bind/reverse_11.db
Клиенты обеих сетей получают адреса, нормально входят в инет, но для второй сети не пишется обратная зона. Пытался разобраться сам, но видимо рукожоп
в /etc/dhcp/dhcpd.conf забыл добавить
что собственно и вызвало проблему
Debian 9.2 Настроил согласно написанному. Работает. Но! Как только добавил что-то
ручками в forward.db и reverse.db (например, аналог srv01, т.е. статический хост), то при перезапуске bind9 ругань и
ни хрена не работает. А после
rm /var/lib/bind/forward.db.jnl
rm /var/lib/bind/reverse.db.jnl
все становится хорошо :-)
Вдруг кто-то отмотает столько комментариев вниз и увидит :-)
Файл /etc/bind/named.conf.options
Файл /etc/bind/named.conf.local
Файл /var/lib/bind/forward.db
Файл /var/lib/bind/reverse.db
Файл /etc/network/interfaces
Файл /etc/resolv.conf
Файл /etc/resolvconf/resolv.conf.d/head
Ну и напоследок файл iptables
Проверка работоспособности:
dig base
dig base.lkmpikt.lan
dig lkmpikt.lan
nslookup base
nslookup base.lkmpikt.lan
nslookup lkmpikt.lan