Как настроить сеть для 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.