Есть такой ресурс The Movie Database , который предоставляет обложки, описание и прочее для фильмов/сериалов. Эту базу использует, например, крутой медиаплеер Kodi. Он подтягивает оттуда обложки, когда вы загружаете в него какой-нибудь фильм.
В 2022 году этот ресурс заблокировал доступ из РФ. И сделал он это довольно нетипично.
Как обычно осуществляется блокировка ресурса на самом ресурсе? Так или иначе запрещается доступ к сайту, когда вы на него уже пришли. Упрощённо: у сервера есть список российских подсетей, если вы пришли из одной из них - получаете 403. Уходи, тебе тут не рады. Решается это перенаправлением трафика к такому ресурсу через proxy/vpn.
А вот The Movie Database пошёл по пути блока по GeoDNS.
Что такое GeoDNS?
Главная идея - отдавать разные ответы для разных регионов. Это нужно в основном крупным ресурсам. Пришёл ваш DNS-запрос из США - вернули вам IP-адреса серверов в США. Пришёл из РФ - вернул IP-адреса серверов, которые стоят в РФ. Получается распределение нагрузки + быстрый ответ, благодаря географической близости к серверу. В общем, крутая штука, много где используется.
The Movie Database использовал свой GeoDNS, чтобы сломать доступ из РФ. Для российских адресов они отдают IP-адрес 127.0.0.1
:
~> dig www.themoviedb.org
;; ANSWER SECTION:
www.themoviedb.org. 300 IN A 127.0.0.1
🗿🗿🗿
Для тех, кто не понял: ответ должен содержать IP-адреса сервиса, чтоб послать ему запросы. А 127.0.0.1 - это localhost, ваш компьютер. Ваш компьютер не отдаёт обложки. Вся логика взаимодействия с сервером ломается уже при резолвинге домена.
Что делать?
Решение этой проблемы в интернетах предлагают такие:
- Забить IP-адреса themoviedb.org в файл hosts
- Настроить 9.9.9.9 как DNS-сервер на компе с медиаплеером
- Пустить весь трафик на компе через VPN
Каждое из этих решений имеет свои недостатки. Если у вас нет OpenWrt/Mikortik роутера, то используйте их.
А если есть, то всё делается проще и удобнее благодаря Dnsmasq. На OpenWrt-роутере:
Консоль
uci add_list dhcp.@dnsmasq[0].server='/.themoviedb.org/9.9.9.9'
uci add_list dhcp.@dnsmasq[0].server='/.tmdb.org/9.9.9.9'
uci add_list dhcp.@dnsmasq[0].server='/tmdb-image-prod.b-cdn.net/9.9.9.9'
uci commit dhcp
service dnsmasq restart
LuCi
Network - DHCP and DNS - Forwards. В DNS Forwards добавляете
/.themoviedb.org/9.9.9.9
/.tmdb.org/9.9.9.9
/tmdb-image-prod.b-cdn.net/9.9.9.9
Save & Apply
Теперь все DNS-запросы к *.themoviedb.org перенаправляются к DNS-серверу 9.9.9.9, который отдаёт рабочие IP-адреса. Ваш комп с Kodi получает правильные IP-адреса и обложечки снова на месте.
То же самое можно провернуть на любой системе с Dnsmasq. И также forward есть в других ОС для роутеров.
У RouterOS в 7ой версии появился DNS FWD :
[admin@MikroTik] ip dns static> add regexp=".*\\.themoviedb\\.org\$" forward-to=9.9.9.9
[admin@MikroTik] ip dns static> add regexp=".*\\.tmdb\\.org\$" forward-to=9.9.9.9
[admin@MikroTik] ip dns static> add name=tmdb-image-prod.b-cdn.net forward-to=9.9.9.9
И этого хватает, потому что сам ресурс не проверяет, откуда к нему пришли. То есть к нему не нужно ходить через proxy/vpn.
Эту же базу использует приложение TinyMediaManager.
Наслаждайтесь
Все обновления и новые статьи публикую в моём телеграм-канале .