Как настроить сеть для FCM

В этом документе описаны конфигурации сети, необходимые для правильной работы FCM в вашей сетевой среде.

Настройте сеть для отправки сообщений в FCM

Прежде чем начать, убедитесь, что ваша система обменивается данными с серверами FCM для отправки сообщений и управления подписками.

Чтобы отправлять сообщения FCM или управлять подписками, ваша сеть должна обмениваться данными со следующими серверами по протоколу HTTPS:

  • fcm.googleapis.com (отправка сообщений)
  • accounts.google.com (аутентификация для отправки сообщений);
  • iid.googleapis.com (подписка на темы и управление группами устройств)

Этот список может меняться. Мы не можем предоставить белый список на основе IP-адресов для этих конечных точек.

Настройте сеть для устройств Android с помощью FCM

В этом разделе рассказывается, как настроить сеть для поддержки трафика FCM для устройств Android.

Порты FCM и брандмауэр

Большинство сетей не ограничивают подключение устройств к интернету. В целом мы рекомендуем именно такой подход. Однако некоторые организации требуют наличия брандмауэров в рамках своего плана безопасности периметра.

Настройки брандмауэра

Параметр Что мы делаем Специальные правила Примечания
Нет (рекомендуется) - - -
Фильтрация на основе портов (второй вариант) Ограничение трафика для определенных портов

Порты TCP, которые нужно открыть:

  • 5228
  • 5229
  • 5230
  • 443
Это самое простое правило, которое позволяет избежать зависимости от элементов, которые могут со временем измениться.
Фильтрация по имени хоста Использование специальной конфигурации брандмауэра, чтобы разрешить прохождение через него определенных записей TLS SNI, внесенных в белый список. Это можно комбинировать с фильтрацией на основе портов.

Имена хостов, которые нужно открыть:

  • mtalk.google.com
  • mtalk4.google.com
  • mtalk-staging.google.com
  • mtalk-dev.google.com
  • alt1-mtalk.google.com
  • alt2-mtalk.google.com
  • alt3-mtalk.google.com
  • alt4-mtalk.google.com
  • alt5-mtalk.google.com
  • alt6-mtalk.google.com
  • alt7-mtalk.google.com
  • alt8-mtalk.google.com
  • android.apis.google.com
  • device-provisioning.googleapis.com
  • firebaseinstallations.googleapis.com
Этот список достаточно стабилен, но мы не будем заранее уведомлять вас о его изменении.
Фильтрация по IP-адресам (настоятельно не рекомендуется) Используйте очень большой статический список IP-адресов. Добавьте в белый список все IP-адреса, указанные в файле goog.json. Этот список регулярно обновляется, и мы рекомендуем вам обновлять правила ежемесячно. Проблемы, вызванные ограничениями IP-адресов брандмауэра, часто носят периодический характер и их трудно диагностировать. Мы очень часто и без предупреждения меняем список IP-адресов, поэтому вам придется ввести этот большой список и часто его обновлять.

Кроме того, мы часто видим опечатки, когда люди пытаются ввести белые списки IP-адресов в правила брандмауэра.

Мы не рекомендуем этого делать, поскольку информация неизменно устаревает и не поддерживается.

Кроме того, размер списка может быть слишком большим для некоторых маршрутизаторов.

Брандмауэры с преобразованием сетевых адресов или динамической фильтрацией пакетов

Если в вашей сети используется преобразование сетевых адресов (NAT) или инспекция пакетов с хранением состояния (SPI), установите для подключений через порты 5228–5230 время ожидания не менее 30 минут. Это позволяет нам обеспечивать надежное подключение и при этом снижать расход заряда батареи на мобильных устройствах пользователей.

FCM и прокси-серверы

Протокол FCM для доставки push-уведомлений на устройства не поддерживает прокси-серверы. Поэтому вам нужно убедиться, что устройства в вашей сети могут подключаться к нашим серверам напрямую по протоколу FCM.

Взаимодействие с VPN и возможность обхода

Firebase Cloud Messaging принимает различные меры, чтобы обеспечить надежность и доступность подключения для push-сообщений между телефоном и сервером. Использование VPN усложняет эту задачу.

VPN-сервисы скрывают информацию, которая нужна FCM для настройки подключения, чтобы повысить надежность и продлить время работы от батареи. В некоторых случаях VPN-сервисы активно разрывают долгосрочные подключения, что приводит к задержке или потере сообщений, а также к высокому расходу заряда батареи. Если VPN настроена так, чтобы разрешать нам это делать, мы обходим VPN, используя зашифрованное соединение (через базовую сеть Wi-Fi или LTE), чтобы обеспечить надежную работу и экономию заряда батареи. FCM использует обходимые VPN только для канала push-уведомлений FCM. Другой трафик FCM, например трафик регистрации, использует VPN, если он активен. Когда подключение FCM обходит VPN, оно теряет дополнительные преимущества, которые может предоставлять VPN, например маскировку IP-адреса.

В разных VPN-сервисах могут быть разные способы управления обходом. Инструкции вы найдете в документации к VPN.

Если VPN не настроена для обхода, Firebase Cloud Messaging будет использовать сеть VPN для подключения к серверу. Это может привести к задержкам в доставке сообщений и повышенному расходу заряда батареи, поскольку Cloud Messaging будет пытаться поддерживать связь через VPN.