ВсёПросто

Установка и настройка DNS в Ubuntu

Содержание

Установка и настройка DNS сервера Ubuntu | Информационный портал К2®

Для начала нужно установить самые последние обновления системы

sudo apt-get update sudo apt-get upgrade

После этого установим службу DNS сервера Bind9

Следующим шагом, генерируем ключ для обновления DNS записей

Key: 4GD8OIb8pZk4vAueACAfUQ==

Настраиваем DNS сервер Bind9

Открываем файл конфигурации

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

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

Добавим следующий код:

forwarders { 8.8.8.8; 8.8.4.4; }; listen-on { 127.0.0.1; 192.168.0.1; };

Сохраняем (Ctrl+O) и закрываем (Ctrl+X) файл.

Перезапустим bind9

sudo service bind9 restart

sudo service bind9 restart

Теперь можно протестировать работу нашего DNS сервера

Добавим в фал /etc/resolv.conf строчку с нашим DNS сервером (так как файл /etc/resolv.conf при перезагрузке меняет значения на дефолтные, добавить запись нужно в тот файл из которого будут браться дефолтные значения)

sudo nano /etc/resolvconf/resolv.conf.d/tail

sudo nano /etc/resolvconf/resolv.conf.d/tail

в этот файл пишем следующее:

domain lab.loc search lab.loc nameserver 127.0.0.1

Сохраняем файл, закрываем его и перезагружаем сервер. После перезагрузки протестируем работу сервера, выполните следующую команду:

в ответ вы получите ответ с временем выполнения запроса (выделено цветом)

Как видите запрос был выполнен за 284 мсек. Теперь еще раз выполним этот же запрос и проверим время запроса

Повторный запрос был выполнен за 7 мсек! Отлично! Кэширование запросов работает. Двигаемся дальше.

Настройка основного DNS сервера

Исходные данные:

Нам нужно будет указать две зоны (прямого и обратного просмотра) и прописать их в конфигурации сервера.

Я начну с конца и укажу настройки зон в файле конфигурации. Открываем его

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

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

и вставляем следующее:

key DHCP_UPDATER { algorithm HMAC-MD5.SIG-ALG.REG.INT; secret «4GD8OIb8pZk4vAueACAfUQ==»; }; zone «lab.loc» { type master; file «/var/lib/bind/db.lab.loc»; allow-update { key DHCP_UPDATER; }; }; //reverse zone zone «0.168.192.in-addr.arpa» { type master; file «/var/lib/bind/db.192»; allow-update { key DHCP_UPDATER; }; };

algorithm HMAC-MD5.SIG-ALG.REG.INT; secret «4GD8OIb8pZk4vAueACAfUQ==»;         file «/var/lib/bind/db.lab.loc»;        allow-update { key DHCP_UPDATER; };zone «0.168.192.in-addr.arpa» {        file «/var/lib/bind/db.192»;        allow-update { key DHCP_UPDATER; };

Теперь создадим сами файлы в которых будут храниться данные зоны lab.loc. Для этого скопируем образец файла прямого просмотра:

sudo cp /etc/bind/db.local /var/lib/bind/db.lab.loc

sudo cp /etc/bind/db.local /var/lib/bind/db.lab.loc

откроем его

sudo nano /var/lib/bind/db.lab.loc

sudo nano /var/lib/bind/db.lab.loc

и внесем правки как у меня:

; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA srv-01.lab.loc. root.srv-01.lab.loc. ( 20141126 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS srv-01.lab.loc. @ IN A 192.168.0.1 @ IN AAAA ::1 srv-01 IN A 192.168.0.1

; BIND data file for local loopback interface@       IN      SOA     srv-01.lab.loc. root.srv-01.lab.loc. (                         604800 )       ; Negative Cache TTL

Теперь скопируем файл зоны обратного просмотра:

sudo cp /etc/bind/db.127 /var/lib/bind/db.192

sudo cp /etc/bind/db.127 /var/lib/bind/db.192

откроем его

sudo nano /var/lib/bind/db.192

sudo nano /var/lib/bind/db.192

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

; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA srv-01.lab.loc. root.srv-01.lab.loc. ( 20141126 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS srv-01. 1 IN PTR srv-01.lab.loc.

; BIND reverse data file for local loopback interface@       IN      SOA     srv-01.lab.loc. root.srv-01.lab.loc. (                         604800 )       ; Negative Cache TTL

Сохраняем, закрываем, перезапускаем Bind9

sudo /etc/init.d/bind9 restart

sudo /etc/init.d/bind9 restart

Сохраняем, закрываем, проверяем работу DNS сервера:

в ответ вы должны увидеть следующее: Как видите зона прямого просмотра работает, нам показался адрес проверяемого имени. Теперь проверим работу зоны обратного просмотра

В ответ должны получить следующее:

Как видите в ответ мы получили имя сервера по его адресу. Если у вас в ответ на nslookup так же все корректно отображается, значит вы все сделали правильно! Если нет, проверяйте что сделали не так.

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

Если вы вместе со мной настраивали сервер с самого начала, тогда у вас не должно возникнуть трудностей. Откроем файл /etc/dhcp/dhcpd.conf

sudo nano /etc/dhcp/dhcpd.conf

sudo nano /etc/dhcp/dhcpd.conf

Проверяем что опция option domain-name содержит имя домена lab.loc, строку ddns-update-style none; закомментировать. Теперь добавим строчку update-static-leases on; – она отвечает за создание зон для клиентов у которых статичный IP адрес. Для автоматизации этого процесса, добавим следующий код:

ddns-update-style interim; update-static-leases on; key DHCP_UPDATER { algorithm hmac-md5; secret «CO0WnumqxGoxqGEDjaR3YA==»; } zone lab.loc. { primary 127.0.0.1; key DHCP_UPDATER; } zone 0.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; }

ddns-update-style interim;secret «CO0WnumqxGoxqGEDjaR3YA==»;zone 0.168.192.in-addr.arpa. {

где secret это тот самый код который мы делали вначале статьи.

Вот пример моего файла /etc/dhcp/dhcpd.conf:

default-lease-time 600; max-lease-time 7200; authoritative; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.10 192.168.0.254; option domain-name-servers 192.168.0.1; option domain-name «lab.loc»; option routers 192.168.0.1; option broadcast-address 192.168.0.255; default-lease-time 604800; max-lease-time 604800; } ddns-update-style interim; update-static-leases on; key DHCP_UPDATER { algorithm hmac-md5; secret «LUH8l/F2OtaVrA6eSffJog==»; } zone lab.loc. { primary 127.0.0.1; key DHCP_UPDATER; } zone 0.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; } log-facility local7;

subnet 192.168.0.0 netmask 255.255.255.0 {range 192.168.0.10 192.168.0.254;option domain-name-servers 192.168.0.1;option domain-name «lab.loc»;option routers 192.168.0.1;option broadcast-address 192.168.0.255;default-lease-time 604800; max-lease-time 604800; }ddns-update-style interim;secret «LUH8l/F2OtaVrA6eSffJog==»;zone 0.168.192.in-addr.arpa. {

Больше никакие настройки DHCP не трогаем, перезапускаем bind9 и dhcp

sudo /etc/init.d/bind9 restart

sudo /etc/init.d/bind9 restart

sudo /etc/init.d/isc-dhcp-server restart

sudo /etc/init.d/isc-dhcp-server restart

Теперь нужно проверить как все это дело работает “в бою”. Запускаем клиентскую машину, которая находиться в сети с сервером. После включения машина получит IP адрес от DHCP сервера, а DHCP сервер создаст запись вроде klient-pc.lab.loc.

На запрос nslookup yos-pc (yos-pc это имя клиентской машины), мы должны увидеть ответ от сервера

Как видите по скриншоту, работает и прямой и обратный запросы к DNS.

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

Установка и настройка DNS сервера Ubuntu

Для начала нужно установить самые последние обновления системы

sudo apt-get update sudo apt-get upgrade

После этого установим службу DNS сервера Bind9

sudo 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: 4GD8OIb8pZk4vAueACAfUQ==

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

Сегодня установим DNS сервер bind9 с последующей его настройкой. Так же разберем настройку двух зон: зона прямого и зона обратного просмотров.
DNS – это система доменных имен для преобразования имени в ip адреса компьютера и наоборот.

Зная имя компьютера, вам не нужно запоминать его ip адрес. Простыми словами набирая адрес интернет странички в Вашем браузере DNS сервер всемирной паутины преобразует его в ip-адрес хостинга на котором расположен данный домен. И так у нас уже есть установленная ОС Ubuntu Server 16.

04 LTS, настроенный DHCP сервер и настроенный кэширующий прокси-сервер squid.

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

Установим службу DNS сервера Bind9 на наш сервер.

sudo apt install bind9

Следующим шагом, генерируем ключ для обновления DNS записей или же воспользуемся уже имеющимся у Вас в системе.

Первый вариант:

dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DHCP_UPDATER

выведем ключ на экран

cat Kdhcp_updater.*.private|grep Key

на экране вы должны увидеть , что то подобно этому:
Key: 9DxMmNw7J813qviXajG7rQ==
Обязательно сохраните этот ключ, в последующей настройке он нам понадобится.

Второй вариант:

добавим в файл /etc/bind/named.conf запись о ключе, который уже присутствует у Вас в системе

sudo nano /etc/bind/named.conf

Добавьте запись:

include «/etc/bind/rndc.key»;

Настройка прямой зоны DNS

создадим файл в котором будет храниться данные о зоне прямого просмотра dom. Для этого создадим копию образца файла прямого просмотра:

sudo cp /etc/bind/db.local /var/lib/bind/db.dom

откроем его

sudo nano /var/lib/bind/db.dom

и отредактируем по моему примеру:

$ORIGIN .$TTL 604800 ; 1 weekdom IN SOA ns.dom. root.ns.dom. ( 201605277 ; serial 604800 ; refresh (1 week) 86400 ; retry (1 day) 2419200 ; expire (4 weeks) 604800 ; minimum (1 week) )@ IN NS ns.dom.@ IN A 192.168.0.1@ IN AAAA ::1$ORIGIN dom.$TTL 604800 ; 1 weekns IN A 192.168.0.1

Записи вида А — предназначен для ip адресов версии 4

Запись вида АААА — предназначен для ip адресов версии 6

Настройка обратной зоны DNS

Создадим копию только что созданного и отредактированного файла прямого просмотра:

sudo cp /var/lib/bind/db.dom /var/lib/bind/db.192.dom

откроем его

sudo nano /var/lib/bind/db.192.dom

и также отредактируем его:

$ORIGIN .$TTL 604800 ; 1 week0.168.192.in-addr.arpa IN SOA ns.dom. root.ns.dom. ( 2016052655 ; serial 604800 ; refresh (1 week) 86400 ; retry (1 day) 2419200 ; expire (4 weeks) 604800 ; minimum (1 week) )@ IN NS ns.dom.$ORIGIN 0.168.192.in-addr.arpa.$TTL 604800 ; 1 week1 IN PTR ns.dom.

Настройки зон в файле конфигурации bind9

Открываем файл конфигурации зон

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

И тут опять два пути если вы создавали секретный ключ по первому варианту то пишем следующее:

key DHCP_UPDATER { algorithm HMAC-MD5.SIG-ALG.REG.INT; secret «9DxMmNw7J813qviXajG7rQ==»; }; // зона прямого просмотраzone «dom»{ type master; file «/var/lib/bind/db.dom»; allow-update { key DHCP_UPDATER; };}; // зона обратного просмотраzone «0.168.192.in-addr.arpa»{ type master; file «/var/lib/bind/db.192»; allow-update { key DHCP_UPDATER; };};

key DHCP_UPDATER — информация о ключе, который мы с вами записывали (в кавычки вам нужно вписать свой ключ) если же по второму варианту то вставляем следующее:

// зона прямого просмотраzone «dom»{ type master; file «/var/lib/bind/db.dom»; allow-update { key rndc-key; };}; // зона обратного просмотраzone «3.168.192.in-addr.arpa»{ type master; file «/var/lib/bind/db.192»; allow-update { key rndc-key; };};

Сохраняем, закрываем.

Теперь проверим правильность синтаксиса конфигурационных файлов BIND.

Если конфигурационные файлы не содержат ошибок, вывод этой программы будет пуст.

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

sudo /etc/init.d/bind9 restart

Проверяем работу DNS сервера:

nslookup ns.dom

в ответ вы должны увидеть:

Server: 127.0.0.1Address: 127.0.0.1#53 Name: ns.domAddress: 192.168.0.1

Как видите зона прямого просмотра работает, нам показался ip адрес проверяемого имени. Теперь проверим работу зоны обратного просмотра

nslookup 192.168.0.1

В ответ должны получить:

Server: 127.0.0.1Address: 127.0.0.1#53 1.0.168.192.in-addr.arpa name = ns.dom.

Как видим в ответе мы получили имя сервера по его адресу. Если у вас в ответ на nslookup так же все корректно отображается, значит вы все сделали правильно! Если нет, проверяйте что сделали не так.

Проверяем версию DNS сервера

dig @ns.dom version.bind chaos txt

Примерный вывод команды:

;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096;; QUESTION SECTION:;version.bind. CH TXT ;; ANSWER SECTION:version.bind. 0 CH TXT «DNS server v.1.0» ;; AUTHORITY SECTION:version.bind. 0 CH NS version.bind. ;; Query time: 0 msec;; SERVER: 192.168.0.1#53(192.168.0.1);; WHEN: Thu Mar 23 09:59:39 +04 2017;; MSG SIZE rcvd: 85

Пример файла dhcpd.conf:

ddns-updates on;ddns-update-style interim;update-static-leases on; key rndc-key { algorithm hmac-md5; secret «2mu11eRajAdm4KV0x0Pmcg==»;} zone dom. {primary 192.168.0.1;key rndc-key;} zone 0.168.192.in-addr.arpa. {primary 192.168.0.

1;key rndc-key;} #default-lease-time 600;#max-lease-time 7200; authoritative;log-facility local7; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.120; option routers 192.168.0.1; option broadcast-address 192.168.0.255; option domain-name-servers 192.

168.0.1; option domain-name «dom»; option subnet-mask 255.255.255.0; default-lease-time 604800; max-lease-time 604800;} host home-asus { hardware ethernet 00:00:00:00:00:00; fixed-address 192.168.0.

100; }

Больше никакие настройки DHCP не трогаем, перезапускаем bind9 и dhcp

sudo service bind9 restartsudo service isc-dhcp-server restart

Теперь нужно проверить как все это дело работает “в бою”. Запускаем клиентскую машину, которая находится в сети с сервером. После включения машина получит IP адрес от DHCP сервера, а DHCP сервер создаст запись вроде client-pc.dom.

На запрос nslookup client-pc (client-pc это имя клиентской машины), мы должны увидеть ответ от сервера После перезагрузки сервера, можно посмотреть на файлы прямого и обратного просмотра, если все сделали правильно, то в них вы увидите записи о новых машинах.

На этом настройка сервера bind9 закончена.

Установка и настройка DNS в Ubuntu

Для тех, кто не знает, что DNS представляет собой систему доменных имён, которая служит для преобразования имени в IP-адрес ПК и обратно.

Таким образом, когда вы вводите адрес веб-страницы в браузере, система доменных имён преобразует его в IP-адрес хостинга, на котором располагается конкретный домен.

В этой статье детально разберём, как установить и настроить DNS-сервер Ubuntu. Давайте же начнём. Поехали!

Из нашей статьи вы точно узнаете, как установить и настроить DNS-сервер Ubuntu правильно

Первый этап

Первый этап — установка. Рекомендуется использовать сервер Bind9. Для этого перейдите в терминал и введите:

sudo apt install bind9

Далее необходимо сгенерировать ключ для обновления записей либо воспользоваться уже имеющимся. Чтобы сгенерировать его, выполните:

dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DHCP_UPDATER

для вывода ключа на экран нужно ввести

cat Kdhcp_updater.*.private|grep Key

Его обязательно нужно сохранить, так как в дальнейшем secret key вам понадобится.

Чтобы воспользоваться уже имеющимся ключом, добавьте в /etc/bind/named.conf запись. Сперва необходимо выполнить:

sudo nano /etc/bind/named.conf,

а после добавить в файл строку:

include «/etc/bind/rndc.key»;

Настройка Bind9

Теперь перейдём к настройке Bind9. Откройте файл конфигурации, прописав в терминале:

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

и добавьте туда следующие строки:

forwarders {8.8.8.8;8.8.4.4;};listen-on {127.0.0.1;192.168.0.1;

};

forwaders — вышестоящий DNS, используемый в случаях, когда в базе не удаётся найти URL-запрос.

listen-on — адреса, через которые будет обслуживаться ваш DNS-сервер.

Перезапуск bind9

Далее необходимо перезапустить bind9. Для этого пропишите в терминале:

sudo service bind9 restart

Теперь укажите зоны прямого и обратного просмотра, а также введите их в конфигурации bind9. Исходные данные следующие:

Доменное имя — domIP-адрес сервера — 192.168.0.1

Имя сервера — ns.dom

Чтобы настроить зону прямого просмотра, создайте соответствующий файл и скопируйте его образец:

sudo cp /etc/bind/db.local /var/lib/bind/db.dom

далее отройте командой:

sudo nano /var/lib/bind/db.dom

и отредактируйте следующим образом:

$ORIGIN .$TTL 604800     ; 1 weekdom          IN            SOA      ns.dom. root.ns.dom.

(201605277  ; serial604800     ; refresh (1 week)86400      ; retry (1 day)2419200    ; expire (4 weeks)604800     ; minimum (1 week))@            IN            NS       ns.dom.@            IN            A        192.168.

0.1@            IN            AAAA     ::1$ORIGIN dom.$TTL 604800     ; 1 week

ns           IN            A        192.168.0.1

Далее необходимо настроить обратную. Для этого сделайте копию файла прямого просмотра, которую вы только что создали:

sudo cp /var/lib/bind/db.dom /var/lib/bind/db.192.dom

открываете его командой:

sudo nano /var/lib/bind/db.192.dom

и также редактируете:

$ORIGIN .$TTL 604800     ; 1 week0.168.192.in-addr.arpa  IN  SOA    ns.dom. root.ns.dom. (2016052655 ; serial604800     ; refresh (1 week)86400      ; retry (1 day)2419200    ; expire (4 weeks)604800     ; minimum (1 week))@          IN         NS        ns.$ORIGIN 0.168.192.in-addr.arpa.$TTL 604800     ; 1 week

1          IN         PTR       ns.dom.

Чтобы настроить зоны в конфигурации bind9, нужно открыть файл конфигурации командой:

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

а дальше появляется снова два варианта развития событий. Если вы создавали secret key первым способом, пропишите:

key DHCP_UPDATER {algorithm HMAC-MD5.SIG-ALG.REG.INT;secret «9DxMmNw7J813qviXajG7rQ==»;

};

// зона прямого просмотра

zone «dom»{type master;file «/var/lib/bind/db.dom»;allow-update { key DHCP_UPDATER; };

};

// зона обратного просмотра

zone «0.168.192.in-addr.arpa»{type master;file «/var/lib/bind/db.192»;allow-update { key DHCP_UPDATER; };

};

key DHCP_UPDATER — информация о secret key, который вы записывали в самом начале (его необходимо прописывать в кавычках). Если ранее, вы воспользовались вторым способом, введите:

// зона прямого просмотра

zone «dom»{type master;file «/var/lib/bind/db.dom»;allow-update { key rndc-key; };

};

// зона обратного просмотра

zone «3.168.192.in-addr.arpa»{type master;file «/var/lib/bind/db.192»;allow-update { key rndc-key; };

};

где key rndc-key — данные ключа, взятые из системы, а zone «dom» — данные о зоне применения системы доменных имён. Остаётся сохранить всё это дело, затем закрыть и перезапустить bind9, введя:

sudo /etc/init.d/bind9 restart

Проверка работы системы доменных имён

Теперь проверьте работу системы доменных имён:

nslookup ns.dom

в результате вы должны получить нечто вроде:

Server:        127.0.0.1Address:    127.0.0.1#53Name:    ns.dom

Address: 192.168.0.1

Как вы можете убедиться, зона прямого просмотра работает. Теперь удостоверьтесь, что также работает и обратная:

nslookup 192.168.0.1

В результате вы должны увидеть:

Server:        127.0.0.1Address:    127.0.0.1#53

1.0.168.192.in-addr.arpa    name = ns.dom.

В итоге вы должны получить имя сервера, введя его IP. Если у вас всё отображается подобным образом, значит, настройка была произведена верно. Если же нет, значит, ранее была допущена ошибка.

Настройка динамического обновления

Чтобы настроить динамическое обновление, откройте /etc/dhcp/dhcpd.conf, выполнив команду:

sudo nano /etc/dhcp/dhcpd.conf

Строку ddns-update-style none нужно заменить на ddns-update-style interim. Далее добавьте строку update-static-leases on, которая отвечает за создание зон для клиентов со статичным IP.

Убедитесь, что в option domain-name содержится название домена «dom».

В строке «key» должно быть название вашего ключа (если вы ранее выбирали первый способ, пропишите DHCP_UPDATER, если второй, то rndc-key), содержит ваш секретный ключ. Чтобы посмотреть rndc-key выполните:

cat /etc/bind/rndc.key |grep secret

в результате должно получиться нечто подобное:

secret «2mu11eRajAdm4KV0x0Pmcg==»;

На этом с настройками DHCP всё. Теперь необходимо перезапустить bind9 и dhcp. Для этого пропишите:

sudo service bind9 restart
sudo service isc-dhcp-server restart

Остаётся проверить как всё работает. Запустите клиентскую машину, находящуюся в сети с сервером. После запуска машина получит IP от DHCP, а он, в свою очередь, создаст запись типа client-pc.dom.

По запросу «nslookup имя_клиентской_машины», вы должны получить ответ. Перезапустив server, можно будет посмотреть файлы прямого и обратного просмотра.

Если на предыдущих этапах вы всё настроили правильно, там вы увидите информацию о новых машинах. Готово. Настройка завершена.

Итоги

Настройка DNS сервера BIND в DEBIAN-Ubuntu

DNS — служба, позволяющая преобразовывать IP-адреса в доменные имена.
DNS-сервер не является обязательным элементом корпоративной сети, однако часто применяется (наряду с DHCP).

Настройка DNS будет производиться на примере самого популярного в настоящее время программного пакета, позволяющего реализовать DNS — BIND9.

Преимуществом наличия DNS-сервера является возможность иметь в сети ресурсы, имеющие абсолютно любые имена, в том числе — принадлежащие другим Интернет ресурсам.

При работе с DNS можно использовать любые доменные имена в любых зонах (.com, .org, .ru и т.д.). Единственной рекомендацией может быть следующая — не использовать при экспериментах с DNS доменные имена в зоне .local поскольку в этом случае может наблюдаться ряд побочных эффектов в результате чего настраиваемый программный пакет может работать некорректно.

Настройка BIND Ubuntu

Следует иметь в виду, что при конфигурации DNS для работы с реально существующим доменным именем все запросы из сети к данному домену, доступному глобально будут блокироваться.

Прежде всего, устанавливаем для сервера статический IP-адрес

Проверяем актуальное значение IP-адреса

ip a

Нужный адрес относится к интерфейсу eth0

Отправляемся в файл, отвечающий за сетевые настройки и меняем способ выдачи адреса с DHCP на static

mcedit /etc/network/interfaces

iface eth0 inet static
address 192.168.11.76
network 255.255.255.0
gateway 192.168.11.21

Данный адрес установлен с учетом того, что он заведомо находится за пределами диапазона адресов, назначаемых DHCP

Чтобы изменения вступили в силу опускаем интерфейс и вновь поднимаем его

ifdown eth0 && ifup eth0

Удаление resolvconf в Ubuntu старше 12.04

Для демонстрации используется Ubuntu 16.04, начиная с версии 12.04 данный дистрибутив использует утилиту resolvconf, которая контролирует DNS автоматически. Для рабочих станций данная утилита очень полезна, для серверов — нет.

cat /etc/resolv.conf

Видим в файле информацию о том, что он заполняется автоматически и править конфигурацию вручную нельзя. Поскольку нас это не вполне устраивает — удаляем утилиту (на рабочих станциях вносить изменения DNS можно редактируя файлы head, base и tail в каталоге /etc/resolvconf/resolv.conf.d — структура файлов будет рассмотрена в одной из следующих статей).

apt-get remove resolvconf

cat /etc/resolv.conf

Сейчас предупреждения, которое выводилось раньше, нет.

Установка и настройка bind9

Устанавливаем bind9

apt-get install bind9

Конфигурационные файлы располагаются в каталоге /etc/bind. Основные файлы: named.conf и named.conf.local

Общая форма конфига bind9 представлена в файле db.local

cat db.local

Конфигурации также представлены в named.conf.default-zones
Здесь можно увидеть записи двух типов:

zone «localhost» {
type master;
file «/etc/bind/db.local»;
};

zone «127.in-addr.arpa» {
type master;
file «/etc/bind/db.127»;
};

Первая запись характеризует прямое преобразование — доменного имени в IP-адрес, вторая — обратное преобразование — IP-адреса в доменное имя.

Дальнейшие изменения вносим в файл named.conf.local

zone «example.com» {
type master;
file «/etc/bind/example.com.zone»;
};

mcedit example.com.zone

$TTL 3600
@    IN    SOA    localhost    localhost (
20170211001    ;серийный номер
3600        ;время обновления
3600        ;повторная попытка запроса обновления от мастера
3600        ;время истечения срока действия
3600        ;кэширование TTL
)

IN    NS    server01.example.com.
IN    A    192.168.11.76
alias     IN    CNAME    server01

При использовании FQDN — в NS записи — (полностью определенного доменного имени) точка в его конце обязательна

Серийный номер — чаще всего дата + порядковый номер изменеий за день, инкрементировать число нужно каждый раз обновляя зону для того чтобы слэйв сервера DNS могли среагировать на то, что информация обновилась и обновить свои записи

Значения времени обновления,повторной попытки запроса обновления от мастера, времени истечения срока действия и кэширования TTL всех указанных параметров можно варьировать, в большинстве случаев используется значение 3600 секунд, в случае большой нагрузки на сервер — при использовании его в публичных местах — значения можно увеличивать для того чтобы уменьшить трафик в сети.

NS запись DNS — запись, определяющая к какому серверу будет происходить запрос при попытке разрешеиня имени или адреса.

А запись DNS — запись согласно которой производится запрос к серверу на наличие файлов сайта.

CNAME запись используется для создания синонимов — при запросе к alias.example.com в данном случае производится обращение к server01.example.com.

/etc/init.d/bind9 restart

В случае если при перезапуске службы ошибок не возникло — конфигурационные файлы составлены корректно

Чтобы проверить корректность работы bind9 заставим сервер обращаться к себе

mcedit /etc/resolv.conf

nameserver 192.168.11.76
domain example.com
search example.com

Проверяем (о том, как проверять DNS записи для домена)

host alias.example.com

В выводе присутсвует адрес 192.168.11.76, что означает, что успешно разрешаются как CNAME, так и A записи).

ping alias.example.com

Пинг есть, значит bind работает корректно

Теперь настроим обратное преобразование

cat named.conf.default-zones

Как и ранее идем в named.conf.local; добавляем следующие строки

zone «11.168.192.in-addr.arpa» {
type master;
file «/etc/bind/192.168.11.zone»;
};

mcedit 192.168.11.zone

$TTL 3600
@    IN    SOA    localhost    localhost (
20170211001    ;серийный номер
3600        ;время обновления
3600        ;повторная попытка запроса обновления от мастера
3600        ;время истечения срока действия
3600        ;кэширование TTL
)

IN    NS    server01.example.com.
IN    A    192.168.11.76
76     IN    PTR    server01.example.com.

В PTR записи прописывается только последний октет адреса 192.168.11.76, bind добавляет остальные октеты, если пренебречь этим правилом обратное преобразование происходить не будет.