Konfigurowanie sieci pod kątem FCM

W tym dokumencie opisano konfiguracje sieci wymagane do prawidłowego działania FCM w Twoim środowisku sieciowym.

Skonfiguruj sieć, aby wysyłać wiadomości do: FCM

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

Aby wysyłać wiadomości FCM 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 na potrzeby 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ć listy dozwolonych adresów IP dla tych punktów końcowych.

Skonfiguruj sieć na urządzeniach z Androidem za pomocą FCM

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

Porty FCM i zapora sieciowa

Zdecydowana większość sieci nie ogranicza urządzeniom możliwości łączenia się z resztą internetu. Ogólnie zalecamy takie rozwiązanie. Jednak niektóre organizacje wymagają zapór sieciowych w ramach planu zabezpieczeń obwodowych.

Opcje zapory sieciowej

Opcja Co robimy Konkretne reguły Uwagi
Brak (preferowane) - - -
Filtrowanie na podstawie portu (drugi wybór) Ograniczanie ruchu do określonych portów

Porty TCP, które powinny być otwarte:

  • 5228
  • 5229
  • 5230
  • 443
To najprostsza reguła, która zapobiega zależności od elementów, które mogą się zmieniać w czasie.
Filtrowanie na podstawie nazwy hosta Użycie specjalnej konfiguracji zapory sieciowej, aby zezwolić na przechodzenie przez nią 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 zapory sieciowe obsługują tę funkcję, ale wiele z nich tak. Ta lista jest dość stabilna, ale nie będziemy aktywnie powiadamiać Cię o zmianach.
Filtrowanie na podstawie adresów IP (zdecydowanie odradzane) Użyj bardzo dużej statycznej listy adresów IP. Dodaj do listy dozwolonych wszystkie adresy IP wymienione w pliku goog.json. Ta lista jest regularnie aktualizowana i zalecamy comiesięczne aktualizowanie reguł. Problemy spowodowane ograniczeniami adresów IP zapory sieciowej często występują sporadycznie i są trudne do zdiagnozowania. Bardzo często i bez ostrzeżenia zmieniamy naszą listę adresów IP, więc musisz wprowadzić tę długą listę i często ją aktualizować.

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

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

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

translacja adresów sieciowych lub zapory sieciowe z kontrolą stanu pakietów,

Jeśli Twoja sieć korzysta z translacji adresów sieciowych (NAT) lub kontroli stanu pakietów (SPI), ustaw limit czasu dla połączeń przez porty 5228–5230 na co najmniej 30 minut. Dzięki temu możemy zapewnić niezawodne połączenie, jednocześnie zmniejszając zużycie baterii na urządzeniach mobilnych użytkowników.

FCM i serwery proxy

Protokół FCM do dostarczania wiadomości push na urządzenia nie może być przekazywany przez serwery proxy sieci. Dlatego musisz upewnić się, że połą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 działania, aby zapewnić niezawodne i jak najczęstsze połączenie między telefonem a serwerem na potrzeby wiadomości push. Korzystanie z sieci VPN utrudnia to zadanie.

Sieci VPN maskują podstawowe informacje, których FCM potrzebuje do dostrojenia 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, że użytkownicy nie otrzymują wiadomości lub otrzymują je z opóźnieniem, a bateria szybko się rozładowuje. Jeśli sieć VPN jest skonfigurowana tak, aby nam na to zezwalać, omijamy ją, korzystając z szyfrowanego połączenia (przez podstawową sieć Wi-Fi lub LTE), aby zapewnić niezawodne działanie i oszczędzać baterię. Korzystanie przez aplikację FCM z sieci VPN, które można pominąć, dotyczy kanału powiadomień push FCM. Inny ruch FCM, np. ruch związany z rejestracją, korzysta z sieci VPN, jeśli jest ona aktywna. Gdy połączenie FCM omija sieć VPN, traci dodatkowe korzyści, które może zapewniać sieć VPN, takie jak maskowanie adresu IP.

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

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