Внереестровая блокировка Google Firebase (firebaseapp.com, forms.gle, posts.gle)

Аналогично. Flutter и не FCM не используем в этом проекте, но доступа у пользователей без VPN - нет. Значит вряд ли ошибка в блокировке XMPP?

Экспериментальным путем выяснили, что проблема с доступом к Cloud Firestore, доступ к Firebase Remote Config, например, есть у всех пользователей.

У firebaseremoteconfig.googleapis.com туча адресов, у firestore.googleapis.com один. Они иногда пересекаются.

Адреса firestore.googleapis.com для разных geoip клиентов

142.250.179.234
142.250.181.170
142.250.182.138
142.250.184.138
142.250.184.170
142.250.193.170
142.250.201.74
142.250.218.234
142.250.65.170
142.250.65.234
142.250.68.42
142.250.74.138
142.250.74.74
142.250.80.42
142.251.221.138
142.251.221.74
142.251.36.202
142.251.40.138
142.251.40.234
142.251.41.10
142.251.47.202
172.217.0.170
172.217.169.106
172.217.2.138
172.217.215.95
172.217.23.202
216.58.215.234
34.64.4.10
74.125.130.95

Если я правильно смотрю дамп, то нет ответа на Client Hello как минимум от двух IP-адресов.

25 2.264054 192.168.1.118 216.58.209.202 TLSv1 234 Client Hello
32 2.527785 192.168.1.118 216.58.209.202 TCP 234 [TCP Retransmission] 39206 → 443 [PSH, ACK] Seq=1 Ack=1 Win=87616 Len=168 TSval=4294938752 TSecr=1926719265

61 3.566939 192.168.1.118 216.58.211.226 TLSv1 583 Client Hello
71 4.101006 192.168.1.118 216.58.211.226 TCP 583 [TCP Retransmission] 58744 → 443 [PSH, ACK] Seq=1 Ack=1 Win=87616 Len=517 TSval=4294939224 TSecr=2701383711

По некоторым IP-адресам есть ответ Server Hello:
37 2.710146 192.168.1.118 216.58.209.170 TLSv1.2 247 Client Hello
40 2.758502 216.58.209.170 192.168.1.118 TLSv1.2 1466 Server Hello

Но не уверен, что правильно смотрю.

Чем заканчиваются TCP streams c этими Retransmission?

PCAPdroid использует zdtun, реализуя логику tun2socket. Пишет пакеты клиента на VPN интерфейсе, транслируя дату в сетевые сокеты. ACK’ает пакеты клиента при удачной записи в сокет, связь с ответом сервера косвенная. Дампы, при блокировке, могут сильно отличаться от снятых на внешнем интерфейсе или далее в сети. Retransmission может совсем не быть в дампах PCAPdroid, при реальной блокировке. Получается, надо смотреть все streams.

РКН ранее уже блокировал Google. Было масштабней, не нужно было искать иголку в стогу сена. Но можно использовать тот опыт для сбора всех адресов используемых гуглом для apis. Только не понятно, каких apis, блокируют ли проблемные адреса на всех ТСПУ, что именно по адресам блокируют.

что делать то, ребят?

Мобильные платформы существуют в мире единорогов и розовых пони, там никогда не бывает сетевых сбоев. “client is offline” (unavailable) возвращает также когда проблемы с бэкендом, но апи доступно и отвечает. Идеальная цель для РКН, могут кошмарить и отмараживаться.

Удалось выяснить, к какому домену идут эти запросы?

googleapis.com
firestore.googleapis.com
oauth2.googleapis.com
play.googleapis.com

dns.google

Всё TLS на порт 443?
Доступно отовсюду, проблем не наблюдаю.

У меня проблема решилась перенаправлением трафика через прокси-сервер, который находится в СПб. Squid с дефолтными настройками и вот такой кусочек кода в андроид приложении.

System.setProperty("https.proxyHost", "x.x.x.x");
System.setProperty("https.proxyPort", "1234");
System.setProperty("com.google.api.client.should_use_proxy", "true");

Может кому-то поможет.
Firebase ios SDK вроде тоже так умеет, но я бы сам не отказался если бы кто-то показал как сделать подобное на ios.

Там есть другие внереестровые блокировки?

Я не знаю, с тех пор как подключил этот сервер пользователи больше не жаловались. В будущем если и на нем появятся блокировки - поставлю VPN прямо на сервер. Как-то так придумал.

Проверка на внереестровые блокировки

curl https://play.google.com/

Именно в таком виде ничего не выводит. С опцией -v много текста и в конце Connection … left intact.

Нет ошибок.
Блокировок нет.

Тогда, думаю, можно рекомендовать этот подход. Сервер брал самый дешевый на selectel.ru
Почему сurl на play.google.com? Все запросы в моем приложении шли на .googleapis.com правда это уже с включенным прокси в приложении.

Потому что .googleapis.com пока непонятно где и что блокируют, а https://play.google.com стабильно везде где есть внереестровые блокировки, и сайт близок к теме.

Есть полный список доменов которое приложение запрашивает при нулевом старте (без кеша, даты)?

firebaselogging-pa.googleapis.com
firebasestorage.googleapis.com
firestore.googleapis.com
firebaseinappmessaging.googleapis.com
firebaseremoteconfig.googleapis.com

Как у вас успехи? Приложение с базой firebase работает только через впн или ноунем провайдеров. Стоит ли ожидать разрешения проблемы со стороны Firebase Support. Написал им, но пока тишина.