Столкнулся с той же проблемой. Заметил, что на некоторых операторах начали зависать обращения к firestore документам и отваливаться транзакции. Меняешь сеть или используешь vpn - проблема уходит. Налицо блокировки. Начал копать и разбираться. Приложение на Flutter. Работает нативно на android и ios, и есть web версия.
Любопытно, что на операторе, на котором нативные flutter (AOT) версии блокируются, web версия работает! Первое предположение было, что может как-то хитро разные IP используются, для натива и web, отсюда и разное поведение (с блокировкой и без) Забегая вперед - нет, IP адреса одинаковые. [64.233.165.95] Ну и это же логично, их же выдает DNS по UDP, а там user-agent’a нет.
Первое что потребовалось, это исключить влияние Flutter. Сделал тестовый проект на Android. Чистое Android приложение на kotlin с последними версиями библиотек - симптомы те же.
В логах немного разные ошибки в зависимости от провайдера, видимо зависит от того как провайдеры рубят коннекшен, или не рубят его. все не сохранилось, вот одна из них такая:
Caused by: io.grpc.StatusException: UNAVAILABLE: Channel shutdownNow invoked
Когда сеть без блокировок firestore работает по gRPC и создание документа выглядит так:
POST https://firestore.googleapis.com/google.firestore.v1.Firestore/Write HTTP/2.0
user-agent: grpc-java-okhttp/1.52.1
...
POST https://firestore.googleapis.com/google.firestore.v1.Firestore/Commit HTTP/2.0
user-agent: grpc-java-okhttp/1.52.1
...
Начал снимать TCP DUMP на разных провайдерах и анализировать их.
- не блочится на мобильном tele2
- блочится на домашнем wifi - оператор ufanet.ru
в том числе запечатлел нюанс, что web версия на “плохом” операторе работает и не блочится
tele2_not_blocked.pcap (9,8 КБ)
wifi_blocked.pcap (1,2 КБ)
web_wifi_not_blocked_long.pcap (13,4 КБ)
Обнаружил, что при handshake после “Client Hello” сервер не отвечает “Server Hello”. Handshake просто прерывается.
Далее начал искать по ключевым словам “Client Hello” и наткнулся на этот сайт и это обсуждение.
Надеюсь мои наблюдения будут полезны.
У меня два вопроса:
- Как ValdikSS узнал что блокировка была нацелена на программу от meduza?
- такая блокировка не является точечной, кто отвечает за то, чтобы уведомить РКН о необходимости пересмотреть правило блокировки, и будет ли это сделано в обозримом будущем? Или нам нужно костылять прокси обходы на клиентах?