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

Внешний DNS для управления доменом // Способы тестирования собственного внешнего DNS-сервера

у меня есть несколько доменов в Strato. Я хочу настроить собственный внешний DNS для управления моими доменами.

Для этого в Strato я использовал опцию «Domainverwaltung: NS-Records ändern». Мне пришлось предоставить 2 сервера имен для этой конфигурации. Система приняла мою конфигурацию.

У меня есть первичный (главный) и вторичный (подчиненный) DNS BIND9 на DEBIAN9.

root@server1:/etc/bind# named -v
BIND 9.10.3-P4-Debian <id:ebd72b3>

Конфигурация МАСТЕРА

/etc/bind/ named.conf.options

acl trusted {
        127.0.0.1;
        xxx.xxx.xxx.43; # NS1
        xx.xx.xx.107; # NS2
        81.169.148.38; # Strato DNS
};

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 {
        //             0.0.0.0;
        // };

        //========================================================================
        // 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;
        listen-on port 53 { any; };
         recursion no;
         allow-query { any; };
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
        allow-notify { trusted; };
        allow-transfer { trusted; };
};

/etc/bind/ named.conf.local

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone    "my-domain.com"   {
        type master;
        file    "/etc/bind/forward.my-domain.com";
        allow-transfer { xx.xx.xx.107; };
 };

/etc/bind/forward.my-domain.com

$TTL    604800

@       IN      SOA     primary.my-domain.com. root.primary.my-domain.com. (
                              6         ; Serial
                         604820         ; Refresh
                          86600         ; Retry
                        2419600         ; Expire
                         604600 )       ; Negative Cache TTL

;Name Server Information
@       IN      NS      primary.my-domain.com.
@       IN      NS      secondary.my-domain.com.

;IP address of Your Domain Name Server(DNS)
primary IN       A      xxx.xxx.xxx.43
secondary IN     A      xx.xx.xx.107

;A Record for Host names
@       IN       A       xxx.xxx.xxx.43
www     IN       A       xxx.xxx.xxx.43

;CNAME Record
ftp     IN      CNAME    www.my-domain.com.

Конфигурация Slave

/etc/bind/ named.conf.options

acl trusted {
        127.0.0.1;
        xxx.xxx.xxx.43; # NS1
        xx.xx.xx.107; # NS2
        81.169.148.38; # Strato DNS
};

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 {
        //             0.0.0.0;
        // };

        //========================================================================
        // 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;
        listen-on port 53 { any; };
         recursion no;
         allow-query { any; };
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
        allow-notify { trusted; };
        allow-transfer { trusted; };
};

/etc/bind/ named.conf.local

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone    "my-domain.com"   {
        type slave;
        file    "/etc/bind/forward.my-domain.com";
         masters { xxx.xxx.xxx.43; };
 };

/etc/bind/forward.my-domain.com

$TTL    604800

@       IN      SOA     primary.my-domain.com. root.primary.my-domain.com. (
                              6         ; Serial
                         604820         ; Refresh
                          86600         ; Retry
                        2419600         ; Expire
                         604600 )       ; Negative Cache TTL

;Name Server Information
@       IN      NS      primary.my-domain.com.
@       IN      NS      secondary.my-domain.com.

;IP address of Your Domain Name Server(DNS)
primary IN       A      xxx.xxx.xxx.43
secondary IN     A      xx.xx.xx.107

;A Record for Host names
@       IN       A       xxx.xxx.xxx.43
www     IN       A       xxx.xxx.xxx.43

;CNAME Record
ftp     IN      CNAME    www.my-domain.com.

Чтобы проверить это, я использовал:

КОПАТЬ ЗЕМЛЮ

~$ dig my-domain.com @xxx.xxx.xxx.43

; <<>> DiG 9.11.3-1ubuntu1.2-Ubuntu <<>> my-domain.com @xxx.xxx.xxx.43
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31536
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;my-domain.com.         IN  A

;; ANSWER SECTION:
my-domain.com.      604800  IN  A   xxx.xxx.xxx.43

;; AUTHORITY SECTION:
my-domain.com.      604800  IN  NS  secondary.my-domain.com.
my-domain.com.      604800  IN  NS  primary.my-domain.com.

;; ADDITIONAL SECTION:
primary.my-domain.com.  604800  IN  A   xxx.xxx.xxx.43
secondary.my-domain.com. 604800 IN  A   xx.xx.xx.107

;; Query time: 16 msec
;; SERVER: xxx.xxx.xxx.43#53(xxx.xxx.xxx.43)
;; WHEN: Tue Oct 16 14:42:09 CEST 2018
;; MSG SIZE  rcvd: 136

И NSLOOKUP:

~$ nslookup my-domain.com xxx.xxx.xxx.43
Server:     xxx.xxx.xxx.43
Address:    xxx.xxx.xxx.43#53

Name:   my-domain.com
Address: xxx.xxx.xxx.43

Но, не указывая напрямую на мой NS, NS моего провайдера отвечает:

КОПАТЬ ЗЕМЛЮ:

~$ dig my-domain.com

; <<>> DiG 9.11.3-1ubuntu1.2-Ubuntu <<>> my-domain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7286
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;my-domain.com.         IN  A

;; ANSWER SECTION:
my-domain.com.      69  IN  A   81.169.145.157

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Oct 16 14:44:23 CEST 2018
;; MSG SIZE  rcvd: 58

NSLOOKUP:

~$ nslookup my-domain.com
Server:     127.0.0.53
Address:    127.0.0.53#53

Non-authoritative answer:
Name:   my-domain.com
Address: 81.169.145.157
Name:   my-domain.com
Address: 2a01:238:20a:202:1157::

Strato заявил: «Обратите внимание, что из-за децентрализованной структуры DNS изменения этих настроек не будут полностью активны до 24 часов после активации».

Но даже через 24 часа мой чек не указывает на мой NS-сервер. Могу ли я провести какой-либо тест, чтобы найти возможные проблемы?

Strato также указывает: (извините, автоматический перевод) Оригинал здесь.

Установить запись (только для выделенных серверов)

С дополнительным сервером имен вы можете создать резервную копию, если основной сервер имен выйдет из строя. Это обеспечит доступ к домену. Первичный и вторичный серверы имен являются избыточными (при передаче зоны все конфигурации, относящиеся к домену, синхронизируются), так что второй сервер имен может выдавать правильные записи DNS для домена, такие как A-Record, MX-Record и т. Д. передача должна быть разрешена для IP-адреса вторичного сервера имен STRATO 81.169.148.38. Этот IP-адрес является статическим, поэтому его не нужно менять в будущем (для BIND, например, через allow-transfer).

При использовании дополнительного сервера имен STRATO нет необходимости использовать два собственных сервера имен. Если вы разрешите перенос зоны с основного сервера имен на sns.serverkompetenz.de, он получит конфигурации DNS для доменов, которые вы настроили на своем основном сервере имен. В случае отказа основного сервера имен домены по-прежнему доступны.

В доменной зоне sns.serverkompetenz.de также должен быть указан как сервер имен в наборе NS.

Спасибо, guzzijason, за то, что поделились опцией + trace для dig.

Другой вариант протестировать собственный сервер имен ДЕНИК-> СЕРВИС-> ИНСТРУМЕНТЫ-> НАСТ. Это как услуга на сайт denic.

Здесь вы можете ввести домен, который вы настраиваете, Nameserver 1, Nameserver 2 и IP-адреса ваших серверов имен. Смотрите результат здесь:

НАСТ тест на сайте DENIC

Это показало мне, что моя установка была правильной. Так что я мог углубиться в тему.

Моя проблема заключалась в следующем: в веб-интерфейсе моего провайдера домена Strato я вводил IP-адреса с упомянутого выше корневого сервера xxx.xxx.xxx.43 и xx.xx.xx.107.

Правильная конфигурация Strato - это ввести ИМЯ ХОСТА СЕРВЕРА, например: "h1234567.stratoserver.net" для сервера Strato или "b123123.online-server.cloud" для сервера 1und1.

Может, это кому-то поможет ...

Вы можете начать с выполнения dig +trace my-domain.com.. Это начнется с сервера имен ROOT-SERVERS, а затем проследит путь делегирования NS (надеюсь) до ваших собственных серверов имен. Убедитесь, что в каждой точке возвращаются именно те NS-записи, которые вы ожидаете увидеть. Например, так выглядит (отфильтрованная) трассировка для моего домена:

$ dig +trace guzzijason.com. | grep -E 'IN\s*NS'
.           509129  IN  NS  b.root-servers.net.
.           509129  IN  NS  h.root-servers.net.
.           509129  IN  NS  g.root-servers.net.
.           509129  IN  NS  i.root-servers.net.
.           509129  IN  NS  m.root-servers.net.
.           509129  IN  NS  k.root-servers.net.
.           509129  IN  NS  f.root-servers.net.
.           509129  IN  NS  j.root-servers.net.
.           509129  IN  NS  e.root-servers.net.
.           509129  IN  NS  c.root-servers.net.
.           509129  IN  NS  d.root-servers.net.
.           509129  IN  NS  l.root-servers.net.
.           509129  IN  NS  a.root-servers.net.
com.            172800  IN  NS  a.gtld-servers.net.
com.            172800  IN  NS  b.gtld-servers.net.
com.            172800  IN  NS  c.gtld-servers.net.
com.            172800  IN  NS  d.gtld-servers.net.
com.            172800  IN  NS  e.gtld-servers.net.
com.            172800  IN  NS  f.gtld-servers.net.
com.            172800  IN  NS  g.gtld-servers.net.
com.            172800  IN  NS  h.gtld-servers.net.
com.            172800  IN  NS  i.gtld-servers.net.
com.            172800  IN  NS  j.gtld-servers.net.
com.            172800  IN  NS  k.gtld-servers.net.
com.            172800  IN  NS  l.gtld-servers.net.
com.            172800  IN  NS  m.gtld-servers.net.
guzzijason.com.     172800  IN  NS  ns01.guzzijason.com. # Note: delegation NS record hosted by gtld-servers
guzzijason.com.     172800  IN  NS  ns02.guzzijason.com. # Note: delegation NS record hosted by gtld-servers
guzzijason.com.     7200    IN  NS  ns01.guzzijason.com. # authoritative NS record served by guzzijason.com nameservers
guzzijason.com.     7200    IN  NS  ns02.guzzijason.com. # authoritative NS record served by guzzijason.com nameservers

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