Не удается разрешить duckdns (и другие) бесплатные поддомены, указывающие на частный IP-адрес, с помощью DNS-пересылки unbound в pfsense.

Вопрос или проблема

Я пытаюсь использовать бесплатный сервис поддоменов, чтобы я мог использовать SSL-сертификат lets encrypt на собственном экземпляре vaultwarden, который работает локально в контейнере docker на raspberry pi. Я пытался следовать этому руководству, которое использует duckdns и Caddy для управления сертификатами, но у меня не получается. Я опубликовал этот вопрос на форумах vaultwarden. Однако, похоже, проблема заключается либо в настройках DNS моего роутера pfsense, либо в самом duckdns.

Я настроил настройки TLS DNS роутера pfsense, следуя следующему руководству точно.

Я провел следующие тесты как на duckdns, так и на провайдере бесплатных поддоменов freedns.afraid.org. Оба провайдера имеют поддомен, настроенный на указание на локальный IP-адрес моего raspberry pi. (Тот, который я использую для SSH-доступа к raspberry pi в локальной сети). Поскольку именно так указано в руководстве vaultwarden, так как доступ к vaultwarden должен быть возможен только в локальной сети.

Я использовал nslookup на компьютере с Linux, который находится в той же локальной сети, что и мой raspberry pi. У него также установлен в качестве шлюза по умолчанию и DNS частный IP-адрес моего роутера pfsense.

Обратите внимание, что я вставил заполнитель для поддомена, чтобы не раскрывать свои фактические поддомены, но эти поддомены действительно существуют, и вывод ниже является реальным для моих фактических поддоменов.

duckdns с использованием настроек DNS по умолчанию pfsense (TLS quad 9)

nslookup placeholder.duckdns.org
;; Получен ответ SERVFAIL от 127.0.0.53
Сервер:     127.0.0.53
Адрес:    127.0.0.53#53

** сервер не может найти placeholder.duckdns.org: SERVFAIL

duckdns с явным указанием DNS (quad 9)

nslookup placeholder.duckdns.org 9.9.9.9
Сервер:     9.9.9.9
Адрес:    9.9.9.9#53

Неавторитетный ответ:
Имя:   placeholder.duckdns.org
Адрес: <частный IP raspberry pi>

freedns.afraid.org с использованием настроек DNS по умолчанию pfsense (TLS quad 9)

nslookup placeholder.crabdance.com
;; Получен ответ SERVFAIL от 127.0.0.53
Сервер:     127.0.0.53
Адрес:    127.0.0.53#53

** сервер не может найти placeholder.crabdance.com: SERVFAIL

freedns.afraid.org с явным указанием DNS (quad 9)

nslookup placeholder.crabdance.com 9.9.9.9
Сервер:     9.9.9.9
Адрес:    9.9.9.9#53

Неавторитетный ответ:
Имя: placeholder.crabdance.com
Адрес: <частный IP raspberry pi>

google.com с использованием настроек DNS по умолчанию pfsense (TLS quad 9)

nslookup google.com
Сервер:     127.0.0.53
Адрес:    127.0.0.53#53

Неавторитетный ответ:
Имя:   google.com
Адрес: 142.250.187.206
Имя:   google.com
Адрес: 2a00:1450:4009:820::200e

Как видите, я могу разрешать google.com и все другие установленные домены, используя настройки DNS моего pfsense, и использую интернет без проблем уже несколько месяцев. Однако это не так для duckdns и freedns.afraid.org. Я могу разрешать их только в том случае, если указываю quad 9 или других провайдеров DNS в команде nslookup.

Я не уверен, в чем проблема, либо что-то не так с моими настройками pfsense, либо же проблема в двух провайдерах бесплатных поддоменов. Я также думаю, что эта проблема и является причиной, по которой я не могу получить доступ к моему локально размещенному экземпляру vaultwarden через мой домен duckdns с SSL.

Буду признателен за любую помощь.

Ответ или решение

К сожалению, у вас возникли проблемы с разрешением поддоменов DuckDNS и Freedns.afraid.org при использовании DNS-форвардера Unbound на маршрутизаторе pfSense. Давайте рассмотрим, что может быть не так и как это исправить.

Проблема

Вы пытаетесь использовать бесплатный сервис поддоменов для получения SSL-сертификата Let’s Encrypt для вашего самохостинг решением Vaultwarden на Raspberry Pi. Однако, при попытке разрешить поддомены через ваш маршрутизатор pfSense вы получаете ошибку SERVFAIL, что указывает на проблемы с разрешением DNS.

Диагностика

  1. Настройки DNS на pfSense: Вы указали, что используете TLS-серверы от Quad9, но печально, что ваши локальные поддомены разрешаются только с использованием внешнего DNS-сервера. Это говорит о том, что ваш pfSense, возможно, неправильно настроен для обработки запросов на поддомены, которые указывают на локальные IP-адреса.

  2. Запрос через nslookup: Вы указали, что ваши запросы к поддоменам через nslookup на локальном компьютере возвращают SERVFAIL, но работают нормально при обращении к Quad9 напрямую. Это подтверждает, что проблема кроется именно в конфигурации вашего pfSense.

Решение

1. Настройка Unbound на pfSense

Вам нужно убедиться, что DNS-форвардер Unbound правильно настроен для управления локальными поддоменами:

  • Перейдите в Services > DNS Forwarder и убедитесь, что DNS Forwarder включен. Вы также можете рассмотреть использование DNS Resolver (Unbound), так как он более гибкий и мощный.

  • Если вы используете Unbound, перейдите в Services > DNS Resolver. Проверьте, чтобы опция "Enable Forwarding Mode" была выключена. Это позволит Unbound разрешать локальные адреса самостоятельно.

2. Добавление локального DNS-записи

Чтобы обеспечить правильное разрешение ваших поддоменов на pfSense, вы можете добавить локальные DNS-записи для ваших поддоменов:

  • Перейдите в Services > DNS Resolver.
  • Найдите секцию Host Overrides и добавьте новые записи для ваших поддоменов:
    • В поле Host укажите только часть поддомена (например, placeholder для placeholder.duckdns.org).
    • В поле Domain указать домен (например, duckdns.org).
    • В поле IP Address укажите локальный IP-адрес вашего Raspberry Pi.

Это позволит вашему pfSense самостоятельно разрешать запрашиваемые поддомены, без необходимости обращения к внешним DNS-серверам.

3. Очистка кэша DNS

После внесения изменений в настройки DNS рекомендуется очистить кеш DNS на pfSense:

  • Перейдите в Diagnostics > DNS Lookup и выполните поиск по вашему поддомену после настройки.

4. Проверка конфигурации

После настроек вы можете снова использовать nslookup для проверки того, правильно ли разрешается ваш поддомен:

nslookup placeholder.duckdns.org

Убедитесь, что ответ показывает локальный IP-адрес вашего Raspberry Pi.

Заключение

Следуя этим шагам, вы должны иметь возможность разрешать поддомены, указывающие на локальные IP-адреса через pfSense. Убедитесь также, что ваш Raspberry Pi может связываться с внешними DNS-серверами для получения обновлений SSL-сертификатов через Let’s Encrypt. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...