База знаний по Open Source
Авторизация
Поиск по базе знаний

DNS (англ. Domain Name System — система доменных имён) — компьютерная распределённая система для получения информации о доменах. Чаще всего используется для получения IP-адреса по имени хоста (компьютера или устройства).

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

Здесь мы все приверженцы Ubuntu и разговор пойдет о нем.

Итак:

  • Внутренняя сетка – 192.168.1.0/24
  • Сервер DNS – 192.168.1.100

Для начала, как всегда перед установкой чего нибудь из репозитория:

sudo apt-get update

Установим DNS сервер Bind9:

sudo apt-get install bind9

После  установки необходимо отредактировать его конфигурационный файл:

sudo nano /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;
// };

auth-nxdomain no;    # conform to RFC1035
listen-on-v6 { any; };
};

Секция forwarders, отвечает за то, куда будет передаваться DNS запрос на разрешение имени, в случае если его нет в собственной базе, то-есть на внешние DNS сервера.

Из опыта работа этих серверов у провайдеров заказчиков оставляет желать лучшего и я пока прописываю адреса гугловского сервера и SkyDNS. Список открытых DNS серверов

Приводим секцию к следующему виду:

forwarders {
8.8.8.8;
193.58.251.251;   //Российская служба DNS -SkyDNS
};

Сохраняем изменения и выходим

Перезапускаем сервер

sudo service bind9 restart

и проверяем в командной строке

nslookup mail.ru

Должно выдать что-то типа:

Non-authoritative answer:
Name:        mail.ru
Addresses:  94.100.191.202

Это говорит о том, что сервер не является главным в обслуживании зоны mail.ru, но запросы добавил в кеш.

Теперь создаем DNS зону для внутренней сети предприятия. Зону я обычно называю name.loc, где name – название организации.

Редактируем конфигурационный файл локальных зон – named.conf.local

sudo nano /etc/bind/named.conf.local

и добавим в него следующее:

zone "name.loc" {
type master;
file "/etc/bind/name.loc.local";
};

Сохраняем изменения и выходим. Создаем файл настройки настройки зоны

sudo nano /etc/bind/name.loc.local

Очень внимательно к синтаксису конфигурационного файла, даже точки имеют значение!

$TTL    604800
@ IN SOA server.name.loc. root.name.loc    (
20131218
4h              ; время обновления -4 часа
1h              ; повтор каждый час
1w              ; как долго хранить информацию -1 неделю
1d    )         ; TTL (время жизни ) записи - 1 день
name.loc. IN    NS    ns.name.loc.
@         IN    MX    10 mail.name.loc.
ns        IN A 192.168.1.100
printer   IN A 192.168.1.150      ; Можно создать ДНС запись сетевого принтера который находится по адресу 192.168.1.150
comp1     IN A 192.168.1.10
vm01      IN A 192.168.1.242
mail      IN A 192.168.1.164

При добавлении нового сетевого имени необходимо зарезервировать IP адрес на DHCP сервере, если он запущен.

Теперь необходимо отредактировать файл resolv.conf (в последних версиях Ubuntu этого делать не надо. Бесполезно, так как этот файл стал генериться автоматически)

sudo nano /etc/resolv.conf

и вписать туда:

nameserver 127.0.0.1 (или 192.168.1.100)
domain name.loc

Во всех клиентских машинах в качестве адреса DNS сервера указать новый, в нашем случае 192.168.1.100

Перегружаем сервис networking

sudo service networking restart
sudo service bind9 restart

и проверяем работоспособность:

ping mail.name.loc
nslookup mail.ru

Все должно работать. При желании аналогично можно настроить и обратную зону.

Добавить комментарий