Возможно ли иметь разные внутренние и публичные DNS с помощью DNSSEC?

Возможно ли иметь разные внутренние и публичные DNS с помощью DNSSEC?

Я пытаюсь добиться следующего:

  • Публичный сервер имен для моего домена, который указывает example.comна публичный IP-адрес.
  • Частный сервер имен для того же домена, работающий в локальной сети, который вместо этого направляет клиентов на частный IP-адрес в той же локальной сети.
  • DNSSEC включен.

Конечно, достичь первого и последнего пунктов одновременно сравнительно легко, поэтому проблема в том, как заставить работать частный компонент.

Что касается моей фактической настройки:

  • Я использую DNS-сервис Cloudflare, где у меня есть запись A для моего домена, указывающая на публичный IP-адрес, и включен DNSSEC.
  • У моего регистратора я добавил запись DS на основе того, что мне дает Cloudflare, и настроил серверы имен Cloudflare. Все это работает отлично, как и ожидалось.
  • Внутри я использую Pi-Hole (настроенный как DNS-сервер для клиентов в моей локальной сети), который настроен с включенным DNSSEC и указывает на локальный экземпляр CoreDNS в качестве вышестоящего резолвера.
  • В CoreDNS у меня настроена зона, для example.comкоторой подписано ключами, сгенерированными coredns-keygen. У нее есть запись A, указывающая на внутренний IP-адрес.
  • У меня есть вторая запись DS у регистратора, созданная на основе внутреннего ключа CoreDNS.

Что происходит:

  • Общая настройка работает для разрешения доменов, которые мне не принадлежат.
  • Pi-Hole отвечает SERVFAILи регистрирует, ABANDONEDкогда я пытаюсь разрешить свой домен.
  • Но если я направлю клиента напрямую в CoreDNS (например, с помощью dig), я получу ожидаемый ответ с IP-адресом локальной сети.
  • Кроме того, если я отключу DNSSEC в Pi-Hole, то все будет работать нормально.

Итак, мои вопросы:

  • Возможно ли вообще то, чего я пытаюсь достичь?
  • Я начинаю задумываться, не является ли наличие отдельных записей DS у моего регистратора ошибкой, но я не думаю, что смогу получить закрытый ключ, который использует Cloudflare, и не смогу загрузить пользовательские ключи, поэтому я не уверен, как я могу использовать одни и те же ключи для открытых и закрытых.
  • Есть ли причина, по которой все работает, если я напрямую направляю своих клиентов на CoreDNS, но Pi-Hole отказывается сотрудничать?

Спасибо!

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