Konfigurowanie sieci pod kątem FCM

W tym dokumencie opisujemy konfiguracje sieciowe wymagane do FCM prawidłowego działania w Twoim ś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 przez https:

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

Ta lista może się z czasem zmieniać. Nie możemy udostępnić białej listy 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 SNI TLS. 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 programy 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. Umieszczanie na białej liście wszystkich adresów IP wymienionych 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. Listę adresów IP zmieniamy bardzo często i bez ostrzeżenia, 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 stanowych

Jeśli Twoja sieć implementuje translację adresów sieciowych (NAT) lub inspekcję pakietów stanowych (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, jednocześnie zmniejszając 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 połączenie FCM z urządzeń w Twojej sieci może łączyć się bezpośrednio z naszymi serwerami.FCM

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 ze względu na pominięte lub opóźnione wiadomości albo wysokie zużycie 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óre można obejść, jest w FCM's 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.