Вопрос или проблема
моя настройка:
ПК + Wifi + домашний сервер -> Fritzbox (используется только как роутер) -> UPC кабельный ресивер
Так что у меня 2 NAT друг за другом.
Теперь я обнаружил, что у меня была странная проблема с DNS. Я настроил DuckDns на указание внутреннего IP. Разрешение адресов работает везде, но не на устройствах, подключенных к моему Fritzbox. Здесь всегда происходит таймаут, пока запись DuckDns указывает на внутренний IP, такой как 192.168.x.y
Если запись Duckdns указывает на “настоящий” IP, разрешение работает правильно.
Тогда я подумал, что переключу DNS в fritzbox (меню конфигурации -> DNS сервер) на другую запись, такую как 9.9.9.9 -> однако я получаю тот же результат. Но что-то не работает так, как ожидалось, потому что:
nslookup xx.duckdns.org -> таймаут
nslookup xx.duckdns.org 9.9.9.9 -> может разрешить
Таким образом, похоже, что fritzbox подавляет DNS-запросы, когда они возвращают IP, который находится внутри NAT.
Это правдоподобно? Как я могу выяснить, какой DNS на самом деле используется, когда fritzbox выполняет разрешение?
С уважением,
exae
Это обычно называется “защита от повторного связывания DNS”, чтобы предотвратить определенные атаки CSRF под тем же названием.
Ответ или решение
Почему маршрутизатор может блокировать определенные DNS-запросы?
Если у вас возникли проблемы с разрешением DNS на устройствах, подключенных к вашему Fritzbox, возможности маршрутизатора могут быть ограничены механизмами защиты, такими как защита от повторного связывания DNS (DNS Rebinding Protection). Давайте рассмотрим эту проблему более подробно и предложим пути ее решения.
Описание проблемы
Вы описали следующее сетевое окружение:
- Устройство: ПК с подключением по Wi-Fi.
- Маршрутизатор: Fritzbox, который выступает в роли маршрутизатора.
- Модем: UPC cable box, выполняющий функции NAT.
Проблема заключается в том, что разрешение DNS для домена DuckDNS, указывающего на внутренний IP-адрес (192.168.x.y), не работает на устройствах, подключенных к Fritzbox. Однако разрешение работает, если DuckDNS указывает на "реальный" (публичный) IP-адрес.
При выполнении команды nslookup
без указания DNS-сервера возвращается таймаут, в то время как использование DNS-сервера (например, 9.9.9.9) позволяет успешно разрешить имя. Это свидетельствует о том, что Fritzbox может блокировать DNS-запросы, возвращающие частные IP-адреса.
Возможные причины блокировки
Основной причиной данной проблемы может служить механизм защиты от повторного связывания DNS. Этот механизм предназначен для предотвращения определенных типов атак, таких как атаки на основе межсайтового запроса (CSRF), и запрещает использование внутренних IP-адресов. Это делается для обеспечения безопасности пользователей.
Что можно сделать?
-
Отключение защиты от повторного связывания DNS:
- В интерфейсе управления Fritzbox вы можете найти опцию для отключения данной функции. В зависимости от версии прошивки, это может быть представлено как "Защита от повторного связывания DNS" (DNS-Rebind-Schutz). Имейте в виду, что отключение этой функции может сделать вашу сеть более уязвимой.
-
Настройка внутренних DNS-серверов:
- Если у вас есть возможность, установите локальный DNS-сервер (например, Pi-hole или dnsmasq), который будет обрабатывать внутренние DNS-запросы. Таким образом, вы сможете управлять тем, какие записи возвращаются вашим устройствам.
-
Проверка настроек Fritzbox:
- Убедитесь, что Fritzbox правильно настроен для обработки локальных запросов. Проверьте маршрут, который использует Fritzbox, и настройки NAT, чтобы гарантировать, что они соответствуют вашим требованиям.
-
Логирование запросов DNS:
- В Fritzbox могут быть доступны функции логирования, которые позволят увидеть, какие запросы обрабатываются и какие отклоняются. Это может дать вам понимание о том, какие именно запросы блокируются.
-
Обратитесь к документации:
- Как упоминалось, ознакомьтесь с документацией AVM, чтобы лучше понять механизм защиты DNS, а также возможные настройки, которые могут влиять на работу вашего Fritzbox.
Заключение
Проблема с разрешением DNS на вашем Fritzbox может быть результатом механизма защиты от повторного связывания DNS, который предотвращает использование внутренних IP-адресов. Вы можете изучить возможность отключения этой функции, настройки внутреннего DNS или использования локального DNS-сервера для более гибкого управления адресацией. Не забывайте, что отключение защиты может повысить уязвимость вашей сети, поэтому тщательно взвесьте все риски и преимущества.