Konfigurowanie sieci pod kątem FCM

Ten dokument zawiera informacje o konfiguracjach sieciowych wymaganych do FCM prawidłowego działania w środowisku sieciowym.

Konfigurowanie sieci do wysyłania wiadomości do FCM

Zanim zaczniesz, musisz się upewnić, że Twój system komunikuje się z FCM serwerami w celu wysyłania wiadomości i zarządzania subskrypcjami.

Aby wysyłać FCM wiadomości lub zarządzać subskrypcjami, Twoja sieć musi komunikować się z tymi serwerami za pomocą protokołu https:

  • fcm.googleapis.com (wysyłanie wiadomości)
  • accounts.google.com (uwierzytelnianie do wysyłania wiadomości)
  • iid.googleapis.com (zarządzanie subskrypcjami tematów i grupami urządzeń)

Ta lista może się z czasem zmieniać. Nie możemy udostępnić listy dozwolonych adresów IP dla tych punktów końcowych.

Konfigurowanie sieci dla urządzeń z Androidem korzystających z FCM

W tej sekcji opisujemy, jak skonfigurować sieć, aby obsługiwała ruch FCM na urządzeniach z Androidem.

FCM porty i zapora sieciowa

Większość sieci nie ogranicza możliwości łączenia się urządzeń z resztą internetu. Zalecamy takie rozwiązanie. Niektóre organizacje wymagają jednak zapór sieciowych jako części planu zabezpieczeń obwodowych.

Opcje zapory sieciowej

Opcja Co robimy Konkretne reguły Uwagi
Brak (preferowane) - – -
Filtrowanie na podstawie portów (druga opcja) Ograniczanie ruchu do określonych portów

Porty TCP do otwarcia:

  • 5228
  • 5229
  • 5230
  • 443
Jest to najprostsza reguła, która zapobiega zależności od elementów, które mogą się zmieniać z czasem.
Filtrowanie na podstawie nazwy hosta Używanie specjalnej konfiguracji zapory sieciowej, aby zezwolić na przechodzenie przez zaporę sieciową określonych wpisów TLS SNI z listy dozwolonych. Można to połączyć z filtrowaniem na podstawie portów.

Nazwy hostów do otwarcia:

  • 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
Nie wszystkie oprogramowania zapory sieciowej obsługują tę funkcję, ale wiele z nich tak. Ta lista jest dość stabilna, ale nie będziemy Cię aktywnie informować o jej zmianach.
Filtrowanie na podstawie adresów IP (zdecydowanie niezalecane) Używanie bardzo dużej statycznej listy adresów IP. Zezwalanie na wszystkie adresy IP wymienione w pliku goog.json. Ta lista jest regularnie aktualizowana, dlatego zalecamy aktualizowanie reguł co miesiąc. Problemy spowodowane ograniczeniami IP zapory sieciowej są często sporadyczne i trudne do zdiagnozowania. Bardzo często i bez ostrzeżenia zmieniamy listę adresów IP, dlatego musisz wprowadzić tę dużą listę i często ją aktualizować.

Ponadto często zauważamy literówki, gdy użytkownicy próbują wprowadzić listy dozwolonych adresów IP w regułach zapory sieciowej.

Nie zalecamy tego, ponieważ informacje stają się nieaktualne i nie są utrzymywane.

Dodatkowo rozmiar listy może być zbyt duży dla niektórych routerów.

Zapory sieciowe z translacją adresów sieciowych lub inspekcją pakietów ze stanem

Jeśli Twoja sieć korzysta z translacji adresów sieciowych (NAT) lub inspekcji pakietów ze stanem (SPI), ustaw 30-minutowy lub dłuższy limit czasu dla naszych połączeń na portach 5228–5230. Dzięki temu możemy zapewnić niezawodne połączenie i zmniejszyć zużycie baterii urządzeń mobilnych użytkowników.

FCM i serwery proxy

Protokół FCM do dostarczania wiadomości push na urządzenia nie może być przekierowywany przez serwery proxy. Dlatego musisz się upewnić, że FCMpołączenie FCM z urządzeń w Twojej sieci może łączyć się bezpośrednio z naszymi serwerami.

Interakcje z siecią VPN i możliwość jej obejścia

Firebase Cloud Messaging podejmuje różne kroki, aby zapewnić, że połączenie wiadomości push z telefonu z serwerem jest niezawodne i dostępne tak często, jak to możliwe. Korzystanie z sieci VPN utrudnia to zadanie.

Sieci VPN maskują podstawowe informacje, których FCM potrzebuje do dostosowania swojego połączenia w celu zmaksymalizowania niezawodności i żywotności baterii. W niektórych przypadkach sieci VPN aktywnie przerywają długotrwałe połączenia, co powoduje pogorszenie komfortu użytkowania z powodu pominiętych lub opóźnionych wiadomości albo dużego zużycia baterii. Gdy sieć VPN jest skonfigurowana tak, aby nam na to zezwalała, omijamy ją za pomocą zaszyfrowanego połączenia (przez podstawową sieć Wi-Fi lub LTE), aby zapewnić niezawodne działanie i oszczędzanie baterii. Korzystanie z sieci VPN, którą można obejść, jest w FCM ograniczone do kanału powiadomień push FCM. Inny ruch FCM, np. ruch rejestracyjny, korzysta z sieci VPN, jeśli jest ona aktywna. Gdy połączenie FCM omija sieć VPN, traci dodatkowe korzyści, jakie może ona zapewniać, np. maskowanie adresu IP.

Różne sieci VPN mają różne metody kontrolowania, czy można je obejść. Instrukcje znajdziesz w dokumentacji konkretnej sieci VPN.

Jeśli sieć VPN nie jest skonfigurowana tak, aby można ją było obejść, Firebase Cloud Messaging będzie używać sieci VPN do łączenia się z serwerem. Może to powodować opóźnienia w dostarczaniu wiadomości i większe zużycie baterii , ponieważ Cloud Messaging będzie utrzymywać połączenie przez sieć VPN.