Настройте свою сеть для 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-адресов все IP-адреса, перечисленные в файле goog.json . Этот список регулярно обновляется, и рекомендуется обновлять правила ежемесячно . Проблемы, вызванные ограничениями IP-адресов брандмауэром, часто носят периодический характер и их трудно диагностировать. Мы очень часто и без предупреждения меняем наш список IP-адресов, поэтому вам потребуется вводить этот большой список и регулярно его обновлять.

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

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

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

Межсетевые экраны с трансляцией сетевых адресов или проверкой состояния пакетов

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

FCM и прокси

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

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

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

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

Разные VPN-сервисы используют разные методы контроля возможности обхода защиты. Для получения инструкций обратитесь к документации вашего конкретного VPN-сервиса.

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