Я исследовал кучу спам-доменов, и ни у одного из них нет записи SOA. Я никогда раньше такого не видел - я даже не знал, что это возможно.
Как DNS может работать без записи SOA? Если это не является строго необходимым, каковы последствия его игнорирования?
Я не особо хочу добавлять ссылки на сайты со спамом, но пример домена - "vance miller kitchens uk dot co dot uk".
На самом деле существует SOA
запись, это просто не то, чего вы ожидаете. Давайте посмотрим на раздел АВТОРИТЕТ ... имейте в виду, что ns1.nservers.co.uk.
никоим образом не связан с nic.uk.
серверы имен, которые являются авторитетными для co.uk.
.
$ dig @ns1.nservers.co.uk. +norecurse +noall +authority vancemillerkitchensuk.co.uk SOA
co.uk. 3600 IN SOA win-k7rk0hedad1. hostmaster. 6 900 600 86400 3600
$ dig @ns1.nservers.co.uk. +norecurse +short co.uk SOA
win-k7rk0hedad1. hostmaster. 6 900 600 86400 3600
Это выдает их реальную конфигурацию: у них есть один co.uk
зона определена. Это упрощает их настройку, поскольку им нужно поддерживать только один файл. Причина, по которой вы не получаете раздел ответов на SOA
запрос потому, что это не настоящая вершина зоны. Имейте в виду, что это ужасная конфигурация: вы никогда не должны притворяться авторитетными для доменов, которыми вы не являетесь. Не подражайте этому.
SOA
записи обязательны. Вы должны набить что-то в этом разделе AUTHORITY, где это требуется RFC, если вы ожидаете, что остальная часть Интернета будет хорошо с вами играть. Очевидно, они не действительно авторитетный для co.uk
, но это, по крайней мере, сообщает другим серверам имен, каким должен быть отрицательный TTL.
SOA
запись на вершине каждой зоны на дочерних серверах имен является обязательной согласно спецификации DNS, см. §6.1 RFC 2181:
Полномочные серверы для зоны перечислены в записях NS для источника зоны, которые, наряду с записью начала полномочий (SOA), являются обязательными записями в каждой зоне. Такой сервер является полномочным для всех записей ресурсов в зоне, которые не находятся в другой зоне.
В этом случае зона, не имеющая SOA, не соответствует требованиям DNS. Серверы имен отклонят его во время загрузки:
$ cat example.com
example.com. 1 NS a.example.
example.com. 1 NS b.example.
$ named-checkzone example.com example.com
zone example.com/IN: has 0 SOA records
zone example.com/IN: not loaded due to errors.
Может быть, удастся найти установку, где она работает, но зачем рисковать?
Помимо того, что они являются обязательными по спецификации, в записи SOA есть как минимум 3 элемента, которые необходимы клиентам (все остальные элементы в основном полезны только для администратора серверов имен, если его набор серверов имен использует обновления AXFR / IXFR / DNS для обновления) :
в RNAME
обычно это адрес электронной почты лица, ответственного за зону, с которым вы можете связаться в случае возникновения проблем; к сожалению, в настоящее время вы можете не получить там ответа, или это может быть даже не действующий существующий почтовый ящик, поэтому теоретически полезно, на практике не уверен
в MNAME
, согласно §4.3 RFC 2616 требуется для обновлений DNS:
4.3. Если у инициатора запроса есть разумные основания полагать, что все серверы зоны будут одинаково доступны, то он должен сначала организовать попытку первичного главного сервера (как указано в поле SOA MNAME, если соответствует некоторому NS NSDNAME), чтобы избежать ненужной пересылки внутри подчиненные серверы. (Обратите внимание, что в некоторых случаях основной мастер будет недоступен для всех запрашивающих из-за брандмауэров или разделения сети.)
MINIMUM
был переопределен в течение года, теперь это «отрицательный TTL», количество времени, в течение которого кеш может сохранять NXDOMAIN
ответ получил (так как NXDOMAIN
response не вернет никаких записей в разделе ответа по определению, там не будет никакого TTL для поиска). См. §5 RFC 2308:Как и обычные ответы, отрицательные ответы имеют время жить (TTL). Поскольку в разделе ответов нет записи, к которой можно применить этот TTL, TTL должен передаваться другим методом. Это делается путем включения записи SOA из зоны в раздел полномочий ответа. Когда авторитетный сервер создает эту запись, его TTL берется из минимального значения поля SOA.MINIMUM и TTL SOA. Этот TTL уменьшается аналогично нормальному кэшированному ответу и по достижении нуля (0) указывает, что кешированный отрицательный ответ НЕ ДОЛЖЕН использоваться снова.
Правильное кеширование NXDOMAIN
ответы важны для выступлений, как указано в RFC 8020 "NXDOMAIN: под ним действительно ничего нет": если имя вызывает NXDOMAIN
ответить, то рекурсивный сервер имен может во время кэширования записи немедленно ответить для всех имен «ниже» запрошенного, поскольку он знает, что имя не может существовать ниже, в соответствии с дизайном DNS, предусматривающим наличие всех имен в дереве.
Кроме того, несколько реестров проверяют конфигурацию, прежде чем разрешить делегирование. Это не относится к Великобритании, но, например, к DENIC (.DE). См. §2.1.4 в https://www.denic.de/fileadmin/public/documentation/DENIC-23p_EN.pdf это обрисовывает в общих чертах тест на SOA.
Это также проверяют различные инструменты. См. Zonemaster на https://zonemaster.net/ и объяснение его теста на SOA на https://github.com/zonemaster/zonemaster/blob/master/docs/specifications/tests/Delegation-TP/delegation06.md
Записи SOA в значительной степени регулируют идентификацию и частоту обновления ваших DNS-серверов. Если ваш DNS-сервер является единственным авторизованным DNS-сервером для домена (или вы контролируете все полномочия и любите ручные действия), вы можете опустить запись SOA практически без последствий. Единственное влияние может заключаться в том, что некоторого кеширования ответов не произойдет.
В итоге: DNS может прекрасно работать без SOA, SOA просто регулирует обновления вторичных серверов и кеширование. Так что не иметь записи SOA - это действительно плохая идея.