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

Что я делаю не так с bind9?

Я пытаюсь привязать доменное имя к vps, но у меня не получается ..

Я получаю это, когда копаю:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> ns1.example.com @61.15.2.95
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49520
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns1.example.com.           IN  A

;; ANSWER SECTION:
ns1.example.com.        604800  IN  A   61.15.2.95

;; AUTHORITY SECTION:
example.com.        604800  IN  NS  ns2.example.com.
example.com.        604800  IN  NS  ns1.example.com.

;; ADDITIONAL SECTION:
ns2.example.com.        604800  IN  A   178.159.2.95

;; Query time: 314 msec
;; SERVER: 178.159.2.95#53(178.159.2.95)
;; WHEN: Sat Apr 15 14:26:22 +04 2017
;; MSG SIZE  rcvd: 106

Проблема ;; WARNING: recursion requested but not available так как это просто предупреждение, я попытался зарегистрировать его на quickhostuk, но у меня возникла эта ошибка при управлении DNS:

Failed to Modify Domain Nameservers: Nameserver not found at registry

вот что я сделал ..

скажем, мой IP vps: 61.15.2.95
доменное имя: example.com
серверы имен:

1. Я установил bind9.

2.Я создал зону в named.conf.local

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

3. Я создал файл базы данных для db.example.com

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns1.example.com. root.ns1.example.com. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@                IN      NS      ns1.example.com.
@                IN      NS      ns2.example.com.
@                IN      A       61.15.2.95
ns1              IN      A       61.15.2.95
ns2              IN      A       61.15.2.95

4. я модифицировал named.conf.options и я добавил свой vps ip в форвардеры, я также попробовал google 8.8.8.8 и 8.8.4.4

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 {
                61.15.2.95;
        };


        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation auto;

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

Как мне все это правильно собрать, чтобы все заработало?

Похоже, вы пытаетесь разместить весь свой DNS на своем компьютере с одним IP-адресом, ссылаясь на свой собственный домен как на DNS-сервер.

Отсюда нельзя попасть.

Во-первых, вам нужно 2 DNS-сервера, которые разрешают разные IP-адреса.

Если вы хотите присвоить своим DNS-серверам имена ns1.example.com и ns2.example.com, тогда вам необходимо настроить так называемые «связующие записи» с вашим регистратором. Это позволит ns1.example.com и ns2.example.com быть единственными DNS-серверами для домена example.com.

После того, как вы установили свои клейкие записи, удалите пересылки из /etc/bind/ named.conf.options - он вам не понадобится, если у вас нет клиентов, запрашивающих ваши серверы напрямую.

;; WARNING: recursion requested but not available на самом деле хороший знак при запуске авторитетного сервера, он не должен обеспечивать рекурсию.
Вместо того, чтобы что-либо менять на стороне сервера, вы можете просто добавить +norec к dig командная строка, чтобы не запрашивать рекурсию, и предупреждение исчезнет.

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

Что касается проблемы, где вы получаете сообщение Failed to Modify Domain Nameservers: Nameserver not found at registry Я предполагаю, что при вашем взаимодействии с вашим регистратором это связано с конкретным процессом смены серверов имен с этим регистратором.
Поскольку имена ваших серверов имен находятся в вашей зоне, вам потребуются склеивающие записи. Я предполагаю, что добавление необходимой информации для этих клеевых записей может быть отдельным шагом, который вам нужно выполнить в первую очередь.

Ваш вопрос также предполагает, что вы используете один и тот же IP-адрес для «двух» серверов имен. Похоже, это способ обмануть соблюдение того, что на самом деле является очень разумной политикой наличия некоторой избыточности.


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