IP-адрес сервера уведомлений google GCM?

Интересно, знает ли кто-нибудь, кто знает диапазон ip-сервера google gcm (для уведомления push-сообщения android)?

Мне нужна информация, чтобы наша сетевая команда могла открыть порт брандмауэра для нашей среды UAT для входящего теста UAT.

Я попытался найти файл разработчика .android.com/google/gcm/, но не повезло.

Наша сетевая команда отказалась открыть весь диапазон ip от asn 15169, который является довольно огромным списком.

Ответ 1

Я думаю, что существует существующий вопрос IP-адрес для сервера Google Cloud Messaging, и человек узнал, что они не опубликованы Google. Я также пытался найти его один раз, но не смог найти. Возможно, я ошибаюсь, но я уверен, что они не публикуют это. Возможно, вместо использования корпоративного Wi-Fi вы можете использовать прямой тарифный план 3G или 4G.

В комментарии почему GCM не дает push-уведомления в Android-устройстве? кто-то упомянул, что открыл порты 5258,29,30, а затем он способный получить регистрацию с сервера GCM за брандмауэром.

Также я думаю, что ответ @Eran на Какой порт и протокол использует Google Cloud Messaging (GCM)? поможет. В нем говорится:

Устройство обращается к серверам GCM на портах 5228-5230. Если в вашей организации есть брандмауэр, который ограничивает трафик в Интернет или из Интернета, вам необходимо настроить его для обеспечения возможности подключения к GCM. Открытые порты: 5228, 5229 и 5230. GCM обычно использует только 5228, но иногда использует 5229 и 5230. GCM не предоставляет конкретные IP-адреса. Он часто меняет IP-адреса. Мы рекомендуем не использовать ACL, но если вы должны их использовать, используйте широкий подход, например метод, предложенный в этой ссылке поддержки.

Это актуально, если ваше устройство подключено к Интернету через WiFi.

Надеюсь, это немного поможет.

Обновить:

В соответствии с Марк Уитакер ответит на аналогичный вопрос здесь, он упоминает, что:

Новые версии Android также возвращаются к порту 443, если порты 5228-5230 блокируются брандмауэром.

Хотя, похоже, официального списка еще нет.

Ответ 2

Чтобы добавить к тому, что уже сказал Shobhit Puri, я также попытался найти ответ на этот вопрос, чтобы иметь возможность пробивать соответствующие дыры в моем брандмауэре и очень разочарован Google после того, как он пришел к выводу, что IP-адрес, используемый для Google Облачные сообщения не получены с использованием DNS-запроса или получены с использованием DNS-запросов, которые подрывают функциональность Always On VPN в Android.

Используя функцию Always On VPN в более поздних версиях Android, я убедился, что весь трафик прошел через один из моих серверов. Это также позволило мне использовать этот сервер в качестве DNS-резольвера и активируя ведение журнала запросов и перезагрузку телефона, мне удалось получить список всех запросов DNS, которые он делает. Затем, с некоторой маской скриптов, я проверил все из них, но ни один из них не разрешил IP-адрес (ы), который отображается в моих журналах брандмауэра с исходящим портом 5228.

Это приводит меня к выводу, что IP-адреса, используемые для GCM, получены с использованием метода, отличного от DNS, например, веб-трафика в Google Play Store.

Изменить (решение?): после запуска script через все мои журналы брандмауэра, которые возвращаются, насколько я их знаю, и вытаскивая все записи dstport 5228, я смог скомпилировать список IP-адресов адреса, к которым пытался подключиться GCM. Я не могу сказать, что это полный список, он, скорее всего, изменится в зависимости от географического местоположения, но заметьте шаблон...

74.125.28.188
74.125.129.188
74.125.20.188
173.194.79.188
74.125.142.188
74.125.192.188
74.125.140.188
74.125.139.188
74.125.137.188
74.125.134.188
74.125.130.188
173.194.68.188
173.194.76.188

Я создал группу для всех этих IP-адресов и настроил мой брандмауэр, чтобы использовать это для моего белого списка GCM. Я также настроил отчет, чтобы проверить, нет ли каких-либо dstport 5228 капель, чтобы сообщить мне, если мне когда-нибудь понадобится пересмотреть это.