• [ GEEKHERO:2021 ]
  • Категории
  • Files 42

Воистину гений

СТАТЬЯ ИЛИ СОН?
Создаем собственные DNS-сервера | GEEKHERO
root 5 апреля 2021 г. 11:01 | обновлен 9 августа 2021 г. 13:55

Создаем собственные DNS-сервера

Иконка категории
В категории "Linux"

Все статьи связаны непосредственно с ОС Linux: разработка сайтов, поддержка серверов, утилиты и лайфхаки при работе с данной ОС.

Метки: linux, веб, nsd, record, dns, www, ns, днс


К созданию собственных DNS-серверов приходят не сразу, а когда появляется в этом необходимость, например, невозможность или нежелание платить за DNS-хостинг, который имеется у некоторых Регистраторов Доменных имен на платной основе, а также, чтобы контролировать процесс самостоятельно, добавлять любое количество доменных зон и записей к ним. Также, будет полезно, если решите узнать что-то новое для себя.

1. Первым делом заходим в личный кабинет нашего регистратора доменных имен и устанавливаем свои NS-сервера (которые мы далее создадим) для текущего домена:

2. Итак, приступим к настройке Первого NS-сервера. Первым делом нам необходимо установить NSD на нашу машину с Linux/Debian:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nsd

3. Далее идем по пути /etc/nsd/ и создаем файл nsd.conf и заполняем следующим образом (оригинальную пасту и информацию смотреть тут):

server:
            server-count: 1 # use this number of cpu cores
            database: ""  # or use "/var/db/nsd/nsd.db"
            zonelistfile: "/var/db/nsd/zone.list"
            username: nsd
            logfile: "/var/log/nsd.log"
            pidfile: "/var/run/nsd.pid"
            xfrdfile: "/var/db/nsd/xfrd.state"

4. Следующим шагом создаем доменную зону для тестового домена, в данном случае это будет доменное имя artspace.one, по его субдомену и будут находится адреса NS серверов (оригинальную пасту и информацию смотреть тут). Создаем в том же каталоге файл: artspace.one.zone :

$ORIGIN artspace.one.
@                      3600 SOA   ns1.artspace.one. (
                              ns1.artspace.one.     ; address of responsible party
                              2016072701                 ; serial number
                              3600                       ; refresh period
                              600                        ; retry period
                              604800                     ; expire time
                              1800                     ) ; minimum ttl
mail                  14400 A     204.13.248.106 # IP-адрес для суб-домена mail.artspace.one
www                  14400 A     185.255.132.54	 # IP-адрес для суб-домена www.artspace.one			  
ns1                  14400 A     45.141.76.240	 # IP-адрес для первого NS сервера (текущий)		  
ns2                  14400 A     167.71.63.71	 # IP-адрес для второго NS сервера

5. Возвращаемся в файл-конфигурации nsd.conf и добавляем дополнительные записи для нового доменной зоны artspace.one с упоминанием второго NS-сервера и получаем такое содержимое:

server:
            server-count: 1 # use this number of cpu cores
            database: ""  # or use "/var/db/nsd/nsd.db"
            zonelistfile: "/var/db/nsd/zone.list"
            username: nsd
            logfile: "/var/log/nsd.log"
            pidfile: "/var/run/nsd.pid"
            xfrdfile: "/var/db/nsd/xfrd.state"

       zone:
            name: artspace.one
            zonefile: /etc/nsd/artspace.one.zone
            notify: 167.71.63.71 NOKEY          # Тут указываем IP-адрес второго NS-сервера
            provide-xfr: 167.71.63.71 NOKEY     # Тут указываем IP-адрес второго NS-сервера

6. Далее следует запустить наш NSD-сервис:

nsd-control reload
systemctl restart nsd

Проверить, запустился ли сервис можно следующей командой:

systemctl status nsd

Loaded: loaded (/lib/systemd/system/nsd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2021-04-05 08:43:52 UTC; 9min ago
...

Main PID: 32083 (nsd)
    Tasks: 3
   Memory: 52.0M
      CPU: 110ms
   CGroup: /system.slice/nsd.service
           ├─32083 /usr/sbin/nsd -d -c /etc/nsd/nsd.conf
           ├─32088 /usr/sbin/nsd -d -c /etc/nsd/nsd.conf
           └─32089 /usr/sbin/nsd -d -c /etc/nsd/nsd.conf

Apr 05 08:43:52 Disturbing systemd[1]: Starting Name Server Daemon...
Apr 05 08:43:52 Disturbing systemd[1]: Started Name Server Daemon.

Также, корректность настройки доменных зон:

root@username:~# nsd-control zonestatus

zone:   artspace.one
        state: master

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

cat /var/log/nsd.log

7. Для проверки работоспособности нашей конфигурации следует запустить следующую команду, которая получит IP-адрес для A-записи www.artspace.one :

dig www.artspace.one @127.0.0.1 +short

Если все настроено правильно, то мы получим такой краткий ответ:

root@username:~# dig www.artspace.one @127.0.0.1 +short
185.255.132.54

Также, можно проверить с другой машины/linux vps:

root@byfe:~# dig www.artspace.one +short
185.255.132.54

Как видим, ответы совпадают, значит первый DNS-сервер настроен корректно.

8. Перейдем к настройке Второго NS-сервера. Повторяем шаги 2-4, но заменяя ns1.artspace.one на ns2.artspace.one

Далее заходим в файл nsd.conf на втором NS-сервере, копируем данные из первого и заменяем Notify на первый NS-сервер и также перезапускаем сервис и проверяем работоспособность:

server:
            server-count: 1 # use this number of cpu cores
            database: ""  # or use "/var/db/nsd/nsd.db"
            zonelistfile: "/var/db/nsd/zone.list"
            username: nsd
            logfile: "/var/log/nsd.log"
            pidfile: "/var/run/nsd.pid"
            xfrdfile: "/var/db/nsd/xfrd.state"

       zone:
            name: artspace.one
            zonefile: /etc/nsd/artspace.one.zone
            notify: 45.141.76.240 NOKEY          # Тут указываем IP-адрес первого NS-сервера
            provide-xfr: 45.141.76.240 NOKEY     # Тут указываем IP-адрес первого NS-сервера

 


На этом настройку обеих NS-серверов можно считать завершенной. NSD, также, с легкостью переваривает Punny-code сайты, например в момент написания статьи Punny-code: xn--v77hga63i.ml (🇷🇺🍰.ml) с А-записью www. обращается к IP-адресу 46.17.105.86:

dig www.xn--v77hga63i.ml

; <<>> DiG 9.11.3-1ubuntu1.14-Ubuntu <<>> www.xn--v77hga63i.ml
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15735
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.xn--v77hga63i.ml.          IN      A

;; ANSWER SECTION:
www.xn--v77hga63i.ml.   14399   IN      A       46.17.105.86

;; Query time: 1056 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Apr 05 12:14:55 MSK 2021
;; MSG SIZE  rcvd: 65
Таким образом, если перейти по адресу www.🇷🇺🍰.ml , то попадем на веб-интерфейс моего CHR.

 

Поделиться записью


Похожие записи:

Card image cap
MikroTik 3G 4G LTE: Мобильный роутер – из LTE в PPP

В данной статье хотелось бы затронуть мобильную тематику в популярной RouterOS, а именно подключение 3G/4G(LTE) модемов к роутерам компании MikroTik

Продолжить Чтение...
Card image cap
Запуск Django сайта на nginx + Gunicorn + SSL

Развернутая инструкция по настройке nginx, Gunicorn и SSL для вашего Django проекта в продакшене.

Продолжить Чтение...
Card image cap
Собираем кластер на ESXI

Кратчайшая минималистичная инструкция по сборке кластера на ESXI и немного про резервирование

Продолжить Чтение...
Категории
Обучение и подготовка (3)
Linux (15)
Телекоммуникации (12)
Программирование (2)
Обзоры на технику (1)
Виртуализация (1)
Web-разработка (5)
Администрирование Windows (0)

Последние записи
Быстро подключаемся к серверам по SSH из терминала
28 Фев 2023
Flask в Docker+Kuberenetes
28 Авг 2022
Готовим образ Docker для Flask приложения
26 Авг 2022

Популярные метки
Copyright 2019-2021  
Обратная связь