Назад | Перейти на главную страницу

Как настроить bind9, чтобы указать IP-адрес сервера на nic?

Краткое введение

Я купил доменное имя example.ir от поставщика доменного имени моей страны nic.ir и VPS от examplevps.ir.
Мой VPS дал мне статический IP-адрес, и давайте представим, что это: 170.120.100.140
Установлен веб-сервер, работающий на localhost 127.0.0.1 и eth0 170.120.100.140.
Я могу подключиться к своему VPS через ssh и делать все, что захочу, и я новичок ... мой первый VPS.

Что я сделал?

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

named.conf.local

zone "example.ir" {
     type master;
     file "/etc/bind/db.example.ir";
};

zone "140.100.120.170.in-addr.arpa" {
     type master;
     file "/etc/bind/db.170";
};

db.example.ir

$TTL    604800
@   IN  SOA  example.ir. root.example.ir. (
                  2     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  example.ir.
@   IN  A   170.120.100.140
@   IN  AAAA    ::1

db.170

$TTL    604800
@   IN  SOA example.ir. root.example.ir. (
                  2     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  example.ir.
170 IN  PTR example.ir.

а также никогда не забывайте: service bind9 restart

Чего я жду?

root@examplevps$ nslookup example.ir
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   example.ir
Address: 170.120.100.140

Вот что я получаю

root@examplevps$ nslookup example.ir
;; Got SERVFAIL reply from 8.8.8.8, trying next server
Server:     4.2.2.4
Address:    4.2.2.4#53

** server can't find example.ir: SERVFAIL

Вывод

Основываясь на информации, которую я предоставил выше, совершенно ясно, что я хочу ... и я думаю, что я должен сделать что-то вроде:

  +------------------+
  |      My VPS      |
  |  170.120.100.140 |
  +------------------+
           |
  +------------------+
  | ns.examplevps.ir |  bind 170.120.100.140 > example.ir
  +------------------+
           |
  +------------------+
  |      nic.ir      |  bind ns.examplevps.ir > nic.ir
  +------------------+

Я прочитал много страниц в Интернете, но до сих пор не могу понять, как это работает.

Вам нужно разрешить запросы из любого места. Либо добавьте следующее к каждому из операторов зоны в named.conf.local для индивидуального запроса зон или добавления его в named.conf.options чтобы разрешить опрос всех зон:

allow-query { any; };

Я рекомендую использовать dig для отладки:

apt-get install dnsutils # for debian/ununtu
dig +trace example.ir

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

ns.example.ir -> 170.120.100.140

Скорее всего, вам также придется предоставить 2 сервера имен. Вы можете указать им один и тот же IP-адрес, хотя вы, вероятно, получите предупреждающее сообщение о том, что используются не два разных IP-адреса.

ns1.example.ir -> 170.120.100.140
ns2.example.ir -> 170.120.100.140

Вам также необходимо определить клейкие записи в зоне вашего DNS-сервера:

@    IN    SOA  ns1.example.ir. hostmaster.example.ir. (
                                   ...
                                   (
@    IN    NS    ns1
@    IN    NS    ns2
...
ns1  IN    A     170.120.100.140
ns2  IN    A     170.120.100.140
...