Я использую CentOS7 с CWP на капле Digital Ocean. В настоящее время на сервере размещены два домена, и 26 апреля я добавил третий домен. Я сделал это обычными шагами, например:
ns1.example.com
и ns2.example.com
Через несколько часов домен заработал нормально, я загрузил свой веб-сайт и начал работать. После этого я попытался включить ssl, но заметил, что он не был установлен для этого домена. Я продолжаю и снова пытаюсь установить ssl для домена из учетной записи пользователя. Выдает ошибку DNS of your domain doesn't point to this server or you have htaccess restrictions
Я решил попробовать это из WHM, что привело к той же ошибке. Я погуглил и нашел несколько статей на форуме веб-панели CentOS и попробовал несколько решений, в том числе:
Я перепробовал все, но ни один из них у меня не помог. Тогда я решил вручную сравнить dns-файл конфигурации проблемного домена с рабочим доменом. Я заметил, что некоторые записи о проблемном домене начинались с домена, а не с @
условное обозначение. Я сопоставил все строки с рабочей конфигурацией домена, но все равно не повезло.
При поиске обнаружил, может что-то не так с DNS сервером, запускаю service named status
команда, чтобы проверить его статус, и я обнаружил пару ошибок network unreachable resolving
, полный вывод можно увидеть ниже:
[root@server log]# service named status
Redirecting to /bin/systemctl status named.service
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2020-04-28 16:56:51 PKT; 46min ago
Process: 9965 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
Process: 9912 ExecReload=/bin/sh -c /usr/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
Process: 10792 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
Process: 10790 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
Main PID: 10794 (named)
CGroup: /system.slice/named.service
└─10794 /usr/sbin/named -u named -c /etc/named.conf
Apr 28 16:56:51 serv.xyz.com named[10794]: network unreachable resolving './NS/IN': 2001:dc3::35#53
Apr 28 16:56:51 serv.xyz.com named[10794]: network unreachable resolving './DNSKEY/IN': 2001:500:2f::f#53
Apr 28 16:56:51 serv.xyz.com named[10794]: network unreachable resolving './NS/IN': 2001:500:2f::f#53
Apr 28 16:56:51 serv.xyz.com named[10794]: network unreachable resolving './DNSKEY/IN': 2001:500:200::b#53
Apr 28 16:56:51 serv.xyz.com named[10794]: network unreachable resolving './NS/IN': 2001:500:200::b#53
Apr 28 16:56:51 serv.xyz.com named[10794]: network unreachable resolving './DNSKEY/IN': 2001:500:a8::e#53
Apr 28 16:56:51 serv.xyz.com named[10794]: network unreachable resolving './NS/IN': 2001:500:a8::e#53
Apr 28 16:56:51 serv.xyz.com named[10794]: managed-keys-zone: Key 20326 for zone . acceptance timer complete: k...usted
Apr 28 16:56:51 serv.xyz.com named[10794]: resolver priming query complete
Apr 28 17:24:15 serv.xyz.com named[10794]: client @0x7f9dac0c6f10 193.29.15.169#52139 (5hz.org): query (cache) ...enied
Hint: Some lines were ellipsized, use -l to show in full.
[root@server log]#
Теперь я искал решение DNS и обнаружил, что отключение IPv6 - это решение. Я попытался отключить это, добавив OPTIONS="-4"
, и даже попытался прокомментировать строку IPv6, но все равно не повезло.
Мне интересно, если что-то не так с DNS-сервером, тогда как другие два сайта все еще работают? Я выполнил поиск ns, который показывает правильную информацию о DNS. Однако, когда я ищу проблемный домен, он показывает ns
записей, но с ним не связан IP.
Я выполнил поиск листья и это ошибка: None of your nameserver names contain glue or A records. This error is fatal. Your domain is not resolveable
. Несмотря на то, что произошла ошибка, я все еще могу получить доступ к своему домену.
Редактировать: Вот содержимое моего файла конфигурации DNS
; Generated by CWP
; Zone file for DOMAIN_IN_QUESTION.com
$TTL 14400
@ 86400 IN SOA ns1.SERVER_DOMAIN.com. webmaster.DOMAIN_IN_QUESTION.com. (
2020042832 ; serial, todays date+todays
3600 ; refresh, seconds
7200 ; retry, seconds
1209600 ; expire, seconds
86400 ) ; minimum, seconds
@ 86400 IN NS ns1.SERVER_DOMAIN.com.
@ 86400 IN NS ns2.SERVER_DOMAIN.com.
@ IN A XXX.XXX.XXX.XXX
localhost.DOMAIN_IN_QUESTION.com. IN A 127.0.0.1
@ IN MX 0 DOMAIN_IN_QUESTION.com.
mail 14400 IN CNAME DOMAIN_IN_QUESTION.com.
smtp 14400 IN CNAME DOMAIN_IN_QUESTION.com.
pop 14400 IN CNAME DOMAIN_IN_QUESTION.com.
pop3 14400 IN CNAME DOMAIN_IN_QUESTION.com.
imap 14400 IN CNAME DOMAIN_IN_QUESTION.com.
webmail 14400 IN A XXX.XXX.XXX.XXX
cpanel 14400 IN A XXX.XXX.XXX.XXX
cwp 14400 IN A XXX.XXX.XXX.XXX
www 14400 IN CNAME DOMAIN_IN_QUESTION.com.
ftp 14400 IN CNAME DOMAIN_IN_QUESTION.com.
_dmarc 14400 IN TXT "v=DMARC1; p=none"
@ 14400 IN TXT "v=spf1 +a +mx +ip4:XXX.XXX.XXX.XXX ~all"
default._domainkey 14400 IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCi4acT6Vt0/7FVab8FzfLqJ8LU4rciFbo2t4yFmVoX1Uxi4QQsEJqTBZBfnWerkw6zzdY6+WYd4nn/sZSVCXDWC4/bmGylAkewthvOkAK1xsa8mXeOHrhX3CtqlVu3Ti+U4NpmmfgHehqq0NUKF9ma6NaJNMK3zFojToEdqNGQfwIDAQAB"
Примечание: Я сделал эти замены в файле конфигурации:
IP заменен на XXX.XXX.XXX.XXX
Адрес сервера заменен на SERVER_DOMAIN
Затронутый домен заменен на DOMAIN_IN_QUESTION
Я понятия не имею, может ли кто-нибудь помочь мне в этом? Прошло 2+ дня, и я очень расстроен. :(
Если есть NS
записи, но не соответствующие A
записи, вы могли бы быть отсутствующие записи клея из родительской зоны. Сообщение об ошибке None of your nameserver names contain glue or A records. This error is fatal. Your domain is not resolveable
согласуется с этим.
Если этот домен example.com
а серверы имен являются его поддоменами ns1.example.com
и ns2.example.com
, недостаточно иметь A
записи в самой зоне, так как это вызовет бесконечный цикл:
.com
, для чего нужны серверы имён example.com
?ns1.example.com
и ns2.example.com
.example.com
.example.com
?Следовательно com
требует наличия и передачи этой информации напрямую, как Glue Records. Вы не можете установить эти записи на своем собственном DNS-сервере, но на регистратор.
В network unreachable resolving './NS/IN': 2001:dc3::35#53
ошибки, вероятно, не связаны с вашей текущей проблемой. Это DNS-запросы от вашего DNS-сервера, связанные с его рекурсивный функциональность, т.е. когда он пытается разрешить домены, которые сам не знает, авторитетно.
Имейте в виду, что рекурсивный и авторитетный DNS-серверы должны быть разделены, то есть IANA Технические требования к авторитетным серверам имен:
Нет открытой рекурсивной службы имен
Авторитетные серверы имен не должны предоставлять рекурсивную службу имен. Это требование проверяется отправкой запроса за пределами юрисдикции органа с установленным битом «RD».
Если ваш DNS-сервер действительно должен иметь рекурсивную функциональность, вы, конечно, должны исправить и эти ошибки. Вы также должны ограничить сетевые диапазоны, в которых разрешено рекурсивное использование сервера, в BIND с allow-recursion { 198.51.100.0/24; };
.
Вы зарегистрировали и ns1.SERVER_DOMAIN.com и ns2.SERVER_DOMAIN.com в качестве серверов имен у своего регистратора. изменение только сервера имен вашего домена не может перенаправлять запросы DNS на ваш сервер. Сначала вы должны зарегистрировать 2 двух сервера имен. тогда вы должны изменить свою запись ns на свои зарегистрированные серверы имен.
Чтобы проверить конфигурацию:
whois SERVER_DOMAIN.com |grep -i "name server:"
dig -t ns SERVER_DOMAIN.com
В первом запросе должны быть ns1.SERVER_DOMAIN.com и ns2.SERVER_DOMAIN.com. Во втором запросе в разделе ответа должен содержаться ответ.
Затем запрос будет отправлен на ваши серверы. Чтобы убедиться в этом, откройте tcpdump на порте 53 на вашем сервере. И из другого места (не с ваших серверов) выполните запрос soa dns, например dig -t soa SERVER_DOMAIN.com
. Раздел ответов должен содержать строку в файле вашей зоны. Если не посмотрите ваш вывод tcpdump, если нет вывода, есть брандмауэр, блокирующий порт DNS, если есть вывод, то конфигурация DNS содержит ошибки. Проведите тест конфигурации с помощью:
named-checkconf /etc/named.conf
named-checkzone SERVER_DOMAIN.com /var/named/[ZONEFILE]
Возможно, хотя бы один из них будет провален. Исправьте ошибки. И повторить запрос soa dns.
Затем выполните отладку, DOMAIN_IN_QUESTION.com.
Сначала проверьте записи TLD, такие же, как SERVER_DOMAIN.com. Те же шаги:
whois DOMAIN_IN_QUESTION.com |grep -i "name server:"
dig -t ns DOMAIN_IN_QUESTION.com
Все эти шаги должны вернуться "(ns1 | ns2) .SERVER_DOMAIN.com. В противном случае возникли проблемы с конфигурацией у регистратора. Свяжитесь с ними.
Проверить conf и зону conf
named-checkconf /etc/named.conf
named-checkzone DOMAIN_IN_QUESTION.com /var/named/[ZONEFILE]
Если есть ошибки, то исправьте.
Сделайте запрос записи soa. На этот запрос должен ответить ваш DNS-сервер. Откройте tcpdump и проверьте также пакеты трафика dns.
Ответ SOA должен совпадать со строкой SOA в файле конфигурации зоны.