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

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

Я купил доменное имя example.ir у поставщика доменных имен моей страны nic.ir и VPS из examplevps.ir .
Мой VPS дал мне статический IP-адрес, и давайте представим, что это: 170.120.100.140
Установил веб-сервер, работающий на локальном хосте 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
  +------------------+

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

1
задан 2 June 2016 в 03:08
1 ответ

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

allow-query { any; };

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

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

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

ns.example.ir -> 170.120.100.140

Скорее всего, вам также нужно будет указать 2 сервера имён. Вы можете указать их на один и тот же IP, хотя, скорее всего, вы получите предупреждение, что используются не 2 разных 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
...
0
ответ дан 4 December 2019 в 06:14

Теги

Похожие вопросы