Как я могу узнать, перенаправляет ли мой интернет-провайдер мои DNS-запросы?

Я пытался использовать некоторые службы DNS, такие как OpenDNS, и независимо от того, что я делаю, запросы DNS не возвращают ожидаемых результатов. Наблюдая за трафиком пакетов на моем брандмауэре, я вижу, что запросы направляются на адрес предполагаемого DNS-сервера, а ответы возвращаются, но результаты не соответствуют ожидаемым, например, тестовая страница OpenDNS всегда дает сбой, даже если запросы выглядят как собираюсь на свои серверы.

Я подозреваю, что мой провайдер перехватывает DNS-запросы и отправляет их на свои собственные серверы. Есть ли способ проверить это? Есть что-то еще, что я мог бы упустить? Я пользуюсь беспроводным сервисом 3G от Sprint.

3 ответа

Решение

Позвонить им и спросить?

Из ветки на форумах OpenDNS (от февраля 2010 г.):

я говорил со спринтом сегодня.

вот что сказал мне парень, с которым я говорил по телефону.

"да, sprint перенаправляет DNS на порт 53" (очевидно, мы, в opendns, знаем это) "да, даже для статических учетных записей"

Очевидно, может быть обновление микропрограммы для вашего устройства Sprint, которое позволяет использовать OpenDNS, согласно связанному PDF из Sprint в том же сообщении.

Есть разные способы проверить, использует ли ваш провайдер прозрачный DNS-прокси. Это зависит от того, как ваш провайдер реализовал это. Мой провайдер перенаправляет все запросы порта 53 на свой собственный рекурсивный DNS-сервер (хотя они не подают рекламу на NXDOMAIN. Возможно, они используют его для регистрации или предотвращения туннелирования DNS). Я упомяну некоторые общие способы обнаружения.

  1. Самый простой способ - использовать Android-приложение Netalyzr или программу Windows Namebench от Google. Они сообщат вам, если ваш провайдер использует прокси-сервер DNS. Вам не нужны никакие технические знания для этого.

  1. Выполните поиск DNS для авторитетного сервера имен и проверьте, является ли ответ заслуживающим доверия. Для этого примера я буду использовать dig, Вы также можете использовать nslookup тоже. Если ответ является достоверным, dig отобразит aa пометить в ответе. Теперь a.ns.facebook.com является авторитетным NS fb.me. Если ваш провайдер перехватывает и перенаправляет запрос, вы не получите достоверного ответа.

    dig @a.ns.facebook.com fb.me (Левый не перехватывает DNS)

  1. укажите IP-адрес, на котором не работает DNS-сервер, в качестве DNS-сервера при выполнении dig или же nslookup, Вы все равно получите ответ, если ваш провайдер перехватит ваш запрос. В противном случае вы получите Time Out, (Право перехватывает и перенаправляет запросы)

  1. Используйте nmap на случайных IP-адресах. Вы всегда увидите порт 53 открытым, если ваш провайдер перенаправит все запросы порта 53.

  2. Измените настройки сети вашего компьютера и используйте общедоступный DNS-сервер Google или OpenDNS или IP-адрес Cloudflare DNS (используйте один тип провайдера за раз). Затем перейдите на веб- сайт Dns Leak Test и узнайте, появляются ли другие поставщики.

Обойти этого интернет-провайдера не сложно. Вам нужно использовать DNScrypt / DNS поверх TLS или любой DNS-сервер, который работает на нестандартных портах (например, 5353 или 443). Во втором методе вы должны использовать маршрутизатор или брандмауэр компьютера для перенаправления исходящих DNS-запросов на эти порты. Детальное обсуждение этих методов выходит за рамки данного поста.

Попробуйте синхронизировать некоторые DNS-запросы, которые, по вашему мнению, отправляются различным поставщикам, таким как OpenDNS и Google. Если они идентичны, их должен подбирать и обслуживать провайдер (ошибочная логика, но возможная). Один из способов сделать это - использовать Namebench, обычно используемый для выбора лучшего DNS-сервера для вашего соединения.

Другие вопросы по тегам