Разрешена ли установка пустой/пустой записи DNS A?

Разрешена ли установка пустой/пустой записи DNS A?

Я пытаюсь разобраться в чудесном мире DNS.

Я создал файл зоны для example.com, который содержит:

@     A    1.2.3.4
*     A    1.2.3.4

Однако я также настраиваю свой локальный DNS, local.example.com, для которого я создал отдельный файл зоны, содержащий следующее:

machine1     A    192.168.0.1
machine2     A    192.168.0.2

Когда я копаю machine1.local.example.com, он возвращает запись A 192.168.0.1, отлично.

К сожалению, badmachine.local.example.com возвращает 1.2.3.4, как и local.example.com.

Я не уверен, как лучше всего это предотвратить. Если я добавлю следующее в local.example.com, для двух приведенных выше примеров будут возвращены пустые записи A, как и нужно мне:

@     A
*     A

Я хочу, чтобы anything.example.com использовал wildcard EXCEPT всего в поддомене local.example.com, на который я не хочу давать ответ, если не указано иное. По сути, мне нужен wildcard с одним исключением.

Это разрешено? Это лучшая практика или я делаю что-то ужасно неправильно? Я использую PowerDNS с бэкэндом BIND.

Спасибо за ваши мысли!

решение1

Во-первых, ваш комментарий к Крису С. выше значительно проясняет (на самом деле, изменяет) ваш изначальный вопрос, и я надеюсь, вы простите меня за то, что я внесу его в ваш изначальный вопрос.

Во-вторых, как уже отмечалось, нулевые записи не допускаются.

В-третьих, я думаю, что способ сделать то, что вам нужно, — это объявить local.example.comего полноценным поддоменом:

local                       IN      NS      ns1.example.com
local                       IN      NS      ns2.example.com

перечислены те же два сервера имен, которые вы в настоящее время используете для example.com (Примечание: Я не знаю PowerDNS, поэтому мои записи выше в формате BIND). Затем на этих серверах имен (которые, как я предполагаю, являются этим сервером имен) вы объявляете файл зоны для local.example.com, который содержит только хосты, которые вы хотите разрешить, и не содержит записи с подстановочными знаками.

Итак, когда люди ищут foo.example.com, предполагая, что этого нет в списке, он будет соответствовать существующей записи wildcard и возвращать 1.2.3.4(или что-то еще). Но когда люди ищут foo.local.example.com, записи сервера имен для local.example.comбудут возвращены и будет иметь место дальнейшая рекурсия, с вашим сервером имен теперь, просматривающим файл зоны для local.example.com, и говорящим (при отсутствии определенной записи для fooиподстановочный знак в local.example.com) «нет, такой записи нет».

решение2

Было бы полезно точно знать, какие ответы вам нужны. Первые две строки, процитированные в вашем вопросе, задают ответ по умолчанию для домена, а также ответ несовпадающей записи. Следовательно, example.com будет обслуживаться записью "@", а anything-that-doesnt-exist.exmaple.com будет обслуживаться записью "*". Они не нужны, вы можете избавиться от обоих. Установка их в пустые значения является недопустимой конфигурацией (в большинстве систем).

решение3

Я не могу придумать способ "обнулить" запись. Пустые записи A не допускаются.

Возможно, *.example.com A 1.2.3.4это предотвратит переопределение записей .local.example.com? Похоже, PowerDNS ведет себя неправильно из спецификации. Определение домена local.example.com должно помешать подстановочному знаку топтаться на чем-либо в этом домене. Можете ли вы разместить полные файлы зоны? Это решило бы ряд мелких вопросов.

решение4

Вам следует обратить внимание на конкретное поведение сервера, который вы используете, поскольку эта функция не реализована последовательно:

Цитируя RFC 4592, многие реализации DNS по-разному расходятся с первоначальным определением подстановочных знаков.

Виртуальные символы на практике

То, что вы хотите, чтобы запись подстановочного знака делала, правильно, поскольку я понимаю определение использования подстановочного знака (лучше думать об этом как о значении по умолчанию в крайнем случае). Я постараюсь найти время, чтобы прочитать разъясняющий RFC и обновить здесь...

Связанный контент