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

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

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