- PVSM.RU - https://www.pvsm.ru -

Кабысдох – DoH-припарка от русского firewall

# wtf cf-hls-media.sndcdn.com
cf-hls-media.sndcdn.com is an alias for d1ws1c3tu8ejje.cloudfront.net.
d1ws1c3tu8ejje.cloudfront.net has address 13.33.240.123
❌ 13.33.240.123 заблокирован

С в очередной раз замолчавшего радио и начался [1] тот день, когда я допилил DNS-over-HTTPS сервер для облегчения фантомных болей от творчества Роскомнадзора.

Боли эти хорошо описаны @ValdikSS [2] в статье «В России сохраняются проблемы с доступностью сайтов, но никто их не замечает» [3].

Думать особо не приходится, суть проблем проста и решение тоже не очень сложно [4]: достаточно выкидывать из DNS ответов заблокированные IP адреса а, если адресов не осталось, заменять их на подходящие адреса с того же CDN. Такое издевательство над DNS позволяют как минимум Cloudflare и Amazon Cloudfront.

Например, если в условном DNS-ответе от AKAMAI пришли адреса 23.1.14.0 и 23.1.20.2, а первый из них заблокирован РКН, то в таком случае DNS-сервер может отдать клиенту только один адрес из двух, и браузер не будет «тупить» в попытке установить соединение с заблокированным IP. Это не обход блокировок, скорее наоборот. Но оно измеримо уменьшает боль. Я был бы рад такую конструкцию увидеть у Яндекс.DNS в «Безопасном» режиме, но всё же не думаю, что Яндекс [5] готов реализовать такую в меру «серую» фичу.

Валить в панике из страны? Заворачивать весь трафик в VPN? Зачем! Интернет в России ещё не настолько поломан, чтоб добавлять 50-100ms ко всем своим Zoom-созвонам во времена повсеместной самоизоляции. Можно ещё попытаться что-то починить, да посмеяться [6] над тем, что осталось.

Но хочу предупредить, модель такого DNS-сервера по имени kabysdoh.gulag.link запущена на виртуалке в Санкт-Петербурге, поэтому её использование из других регионов России может добавить существенную задержку к вашим DNS-запросам. При наличии архива XML-выгрузок Роскомнадзора, можно взять исходный код [7] с GitHub и запустить Unbound в подходящей локации. Поддержку Knot Resolver я с @ValdikSS [2] допилю в каком-нибудь обозримом будущем.

Мобильные устройства на Android поддерживают DNS-over-TLS, который доступен по адресу kabysdoh.gulag.link, а Mozilla Firefox поддерживает DNS-over-HTTPS по адресу https://kabysdoh.gulag.link/dns-query. Скриншоты примерной конфигурации можно увидеть ниже (про все возможные опции DoH в Firefox можно прочитать на wiki [8]):

Кабысдох – DoH-припарка от русского firewall - 1
Кабысдох – DoH-припарка от русского firewall - 2

У меня на сегодня всё! Надеюсь, кому-то данная конструкция будет полезна. И помните, once you step into the waters of modifying in-flight DNS messages it seems like crocodiles all the way down [9].

Автор: Leonid Evdokimov

Источник [10]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/setevy-e-tehnologii/360909

Ссылки в тексте:

[1] начался: https://twitter.com/mathemonkey/status/1351883012305264640

[2] @ValdikSS: https://www.pvsm.ru/users/valdikss

[3] «В России сохраняются проблемы с доступностью сайтов, но никто их не замечает»: https://habr.com/en/post/528210/

[4] не очень сложно: https://habr.com/en/post/528210/#comment_22342452

[5] Яндекс: https://www.pvsm.ru/company/yandex

[6] посмеяться: https://usher2.club/articles/unpaid-internet-tale/

[7] исходный код: https://github.com/usher2/kabysdoh/

[8] прочитать на wiki: https://wiki.mozilla.org/Trusted_Recursive_Resolver

[9] once you step into the waters of modifying in-flight DNS messages it seems like crocodiles all the way down: https://mailarchive.ietf.org/arch/msg/doh/5h0vFMHEG95s4vlie5v7K85sxS8/

[10] Источник: https://habr.com/ru/post/538806/?utm_source=habrahabr&utm_medium=rss&utm_campaign=538806