====== Google ======
Наборы масок для классификации узлов инфраструктуры Google. Применяются алгоритмом со страницы [[projects:qoe_analytics:unknown_discovering:start|unknown_discovering:start]] (шаг 3).
Правила: знаменатель — записи с непустым host на IP; доля — по числу записей; ''*'' = fnmatch (любая подстрока с точками); регистр не важен. Если порог берут несколько сервисов — метка по максимальной доле.
**Доп. фильтр к наборам.** Помимо масок host, к набору применяется дополнительный фильтр по полю ''Host AS'' (номер автономной системы). Записи, не проходящие фильтр, **не учитываются** — ни в числителе, ни в знаменателе набора. Сейчас у всех наборов Google фильтр общий: ''Host AS IN (15169)'' (основная AS Google). Фильтр может задаваться **индивидуально для каждого набора** — значение в строке «Доп. фильтр» имеет приоритет над общим.
**Приоритет частных наборов.** Набор ''google'' — общий (catch-all) и включает широкую маску ''*.googleapis.com'', которая перекрывает ''google_play'', ''google_maps'', ''google_cloud''. Поэтому: частные метки (''youtube'', ''google_play'', ''google_maps'', ''google_cloud'', ''google_cdn'') имеют приоритет; метку ''google'' присваивать только если ни один частный набор не взял свой порог.
^ Метка ^ Порог ^ Доп. фильтр ^ Назначение ^
| youtube | > 80% | Host AS IN (15169) | YouTube (видео, обновления, реклама) |
| google_maps | > 50% | Host AS IN (15169) | Google Maps |
| google_play | > 50% | Host AS IN (15169) | Google Play |
| google_cloud | > 50% | Host AS IN (15169) | Google Cloud Storage (upload/download/storage) |
| google_cdn | > 70% | Host AS IN (15169) | Google CDN (blogspot, ampproject, usercontent, googleusercontent, ggpht, ytimg) |
| google | > 50% | Host AS IN (15169) | Прочие сервисы Google (catch-all) — googleapis, поиск, gstatic, fitbit |
===== youtube (порог > 80%) =====
Доп. фильтр: ''Host AS IN (15169)''
*.googlevideo.com
*.gvt1.com
*.2mdn.net
upload.youtube.com
*.upload.youtube.com
youtube.com
*.youtube.com
Замечания:
* ''*.gvt1.com'' — общая download/update-инфраструктура Google (в т.ч. обновления Chrome и Play); ''*.2mdn.net'' — рекламная выдача. На IP, где доминируют апдейты или реклама, могут поднять метку youtube — учитывать при разборе спорных узлов.
* ''*.youtube.com'' уже покрывает ''upload.youtube.com'' и ''*.upload.youtube.com'' — эти строки избыточны, вреда не несут.
===== google_maps (порог > 50%) =====
Доп. фильтр: ''Host AS IN (15169)''
mobilemaps.googleapis.com
*.mobilemaps.googleapis.com
===== google_play (порог > 50%) =====
Доп. фильтр: ''Host AS IN (15169)''
play.googleapis.com
===== google_cloud (порог > 50%) =====
Доп. фильтр: ''Host AS IN (15169)''
*upload.googleapis.com
*download.googleapis.com
*storage.googleapis.com
Замечание: бесточечные маски по fnmatch ловят и поддомены, и префиксы — ''*storage.googleapis.com'' совпадает с ''firebasestorage.googleapis.com''.
Осторожно: сервисы Google Cloud Storage хостятся и в AS Google Cloud (напр. ''AS396982''), а не только в ''AS15169''. Если целевой трафик google_cloud идёт из другой AS — общий фильтр ''15169'' его отсечёт. При заполнении/проверке этого набора уточнить нужную AS индивидуально.
===== google_cdn (порог > 70%) =====
Доп. фильтр: ''Host AS IN (15169)''
*.blogspot.com
*.cdn.ampproject.org
cdn.ampproject.org
*.usercontent.google.com
*.googleusercontent.com
googleusercontent.com
*.ggpht.com
i.ytimg.com
Замечания:
* Порог поднят с 50% до 70%.
* ''*.googleusercontent.com'' покрывает ''play-lh.googleusercontent.com'' (убран как избыточный). Голый ''googleusercontent.com'' и ''cdn.ampproject.org'' масками с ''*.'' не ловятся — заданы отдельно.
* ''*.googleusercontent.com'' (домен googleusercontent.com) — НЕ то же, что ''*.usercontent.google.com''; в наборе присутствуют оба.
* ''*.ggpht.com'' — CDN превью Google (Photos/YouTube); ''i.ytimg.com'' — превью YouTube.
===== google (общий, порог > 50%) =====
Доп. фильтр: ''Host AS IN (15169)''
*.googleapis.com
*.fitbit.com
*.clients6.google.com
www.google.com
*.google.com
gstatic.com
*.gstatic.com
google.by
*.google.by
Замечания:
* Catch-all для прочих сервисов Google. Применяется только если ни один частный набор Google не взял свой порог (см. «Приоритет частных наборов» выше).
* ''*.googleapis.com'' перекрывает play/maps/cloud — отсюда и правило приоритета.
* ''*.google.com'' покрывает ''www.google.com'' (строка избыточна, вреда нет). ''*.gstatic.com'' НЕ покрывает голый ''gstatic.com'' (fnmatch требует ''.gstatic.com'' в конце) — поэтому ''gstatic.com'' указан отдельно; аналогично ''google.by''.
===== Примечания по инфраструктуре =====
* Частные ''*.googleapis.com''-маски (play. / maps. / storage.) намеренно узкие и не пересекаются между собой. Общий набор ''google'' намеренно берёт широкую ''*.googleapis.com'' как catch-all — поэтому и нужно правило приоритета частных наборов.
* На общих GFE-фронтах, где googleapis размазан по многим сервисам, ни одна частная доля может не дотянуть до 50% — тогда сработает общий ''google''.
* Адрес из netblock Google (например 35.x — GCP) может обслуживать сторонний контент (пример: ''h3.market.xiaomi.com'' на GCP, ''Host AS = 396982''). Классифицировать строго по SNI-«земле»; доп. фильтр по ''Host AS'' дополнительно отсекает такие случаи.