Получен ответ SERVFAIL от 127.0.0.53

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

Моя инстанция Mastodon не показывает превью изображений с удаленных серверов. Я попробовал запустить

RAILS_ENV=production /home/mastodon/live/bin/tootctl media refresh --days 0.2

И получил много ошибок следующего вида

Ошибка при обработке 114092630496524137: не удалось подключиться: Нет адреса для media.mstdn.social на https://media.mstdn.social/media_attachments/files/114/092/629/337/741/863/original/9539833c10d5b81d.mp4

Я сузил проблему до разрешения, как мне кажется. Когда я вызываю

nslookup media.mstdn.social

Я получаю:

;; Получено сообщение SERVFAIL от 127.0.0.53, пытаюсь следующий сервер

Ранее у меня были проблемы с wget, curl и подобными, поэтому я добавил DNS-серверы Hetzner. Это решило проблемы, но не для Mastodon. Так что я думаю, мне нужно заставить работать 127.0.0.53?

resolvectl status

Глобально
Протоколы: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
режим resolv.conf: статический

Ссылка 2 (eth0)
Текущие области: нет
Протоколы: -DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Есть идеи, что делать?

Я нашел решение. systemd-resolved слушает 127.0.0.53 и предоставляет разрешение DNS для процессов. DNS-серверы, используемые systemd-resolved, могут быть заданы в /etc/systemd/resolved.conf. Итак, я добавил DNS-серверы Hetzner в DNS= в разделе [Resolve]. Теперь это работает. Этот ответ очень помог: https://unix.stackexchange.com/a/612434/719627. Но мне потребовалось много времени, чтобы понять, что происходит.

.

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

Ваша проблема, связанная с получением ошибки SERVFAIL при обращении к локальной системе разрешения DNS с адресом 127.0.0.53, требует детального анализа, чтобы решить проблему отображения превью изображений в вашем Mastodon инстансе. Давайте подробно разберём причины и решения этой проблемы, связанные с системой DNS и конфигурацией systemd-resolved.

Теория

Доменная система имен (DNS) является критически важной для функционирования Интернета, так как она преобразует легко запоминаемые доменные имена в IP-адреса, которые используются машинами для установления связи друг с другом. Когда работает локальный DNS-резолвер (в вашем случае — systemd-resolved), он слушает определенные адреса (например, 127.0.0.53) и обрабатывает DNS-запросы. При возникновении ошибки SERVFAIL он сообщает, что не удалось обработать запрос разрешения по разным причинам, например, из-за неполадок в цепочке DNS-серверов или неправильно настроенных конфигурационных файлов.

Systemd-resolved служит локальным кеширующим резолвером DNS и обычно используется для улучшения производительности DNS и повышения надёжности, обеспечивая расширенные возможности конфигурации.

Пример

В вашем случае, когда вы столкнулись с ошибкой SERVFAIL, это указывало на то, что ваш локальный резолвер не смог разрешить доменное имя media.mstdn.social в IP-адрес. Это привело к невозможности установить связь с удалёнными серверами и, соответственно, отсутствию превью изображений в Mastodon. Проблема могла возникнуть из-за отсутствия конфигурации DNS-серверов, используемых системой systemd-resolved, или из-за других проблем в работоспособности используемых серверов.

Вы испытали аналогичные проблемы и с другими приложениями, такими как wget и curl, прежде чем добавили DNS-серверы Hetzner, что временно решило проблему, но не для systemd-resolved, слушающего 127.0.0.53.

Применение

Для решения этой проблемы вы справедливо сконцентрировались на конфигурации systemd-resolved. Вам потребовалось задать правильные DNS-сервера в файле /etc/systemd/resolved.conf, дополнив секцию [Resolve] необходимыми серверами. Это могло бы быть:

[Resolve]
DNS=YOUR.DNS.SERVER.IP
FallbackDNS=YOUR.FALLBACK.SERVER.IP

После редактирования файла /etc/systemd/resolved.conf необходимо перезапустить службу systemd-resolved, чтобы изменения вступили в силу:

sudo systemctl restart systemd-resolved

Это позволяет вашей системе использовать надежные DNS-серверы Hetzner для разрешения доменных имен через локальный резолвер systemd-resolved, который слушает 127.0.0.53.

Ваш пример отлично иллюстрирует, как важно правильно настраивать DNS итоговую систему UNIX, чтобы гаранитровать стабильную работу сетевых приложений. Понимание тонкостей работы systemd, таких как systemd-resolved, может не только помочь в решении конкретных проблем, но и повысить общую надёжность серверной инфраструктуры.

Заключение

Таким образом, правильно настроив systemd-resolved, вы смогли обеспечить корректное разрешение DNS и для вашего Mastodon инстанса, решив проблему с отсутствием превью изображений. Это пример того, как глубоко продуманное решение обеспечивает успешное функционирование сетевых сервисов. Регулярная проверка и адаптация сетевых конфигураций, в том числе и DNS-систем, является важной частью администрирования серверов и требует внимательного подхода.

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

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