Почему мобильные IP ломают геолокацию до уровня города
CGNAT, национальные шлюзы и маршрутизация операторов объясняют большинство ошибок в определении города. Разбираем, как строить правила, которые выдерживают мобильный трафик.
# Почему мобильные IP ломают геолокацию до уровня города
Больше половины пользовательского веб-трафика сегодня приходит с мобильных устройств. И именно на мобильном трафике простые правила геолокации чаще всего начинают давать сбои.
Carrier-grade NAT
У операторов связи недостаточно IPv4-адресов, чтобы выдать каждому абоненту отдельный публичный IP. Поэтому тысячи устройств выходят в интернет через один общий адрес. Этот адрес принадлежит операторскому шлюзу, а шлюз обычно находится в крупном городе — независимо от того, где физически находится абонент. В итоге пользователь из небольшого населённого пункта вполне может «переехать» в столицу.
Практические последствия:
- Ошибка в определении города на сотни километров — нормальная ситуация, а не обязательно проблема в данных.
- Rate limiting по IP может наказать целый район добросовестных пользователей.
- Репутационная оценка по IP получается несправедливой: один злоумышленник портит общий адрес для всех.
Роуминг и привязка к домашнему шлюзу
Абонент в роуминге часто продолжает выходить в сеть через инфраструктуру домашнего оператора. Немецкий телефон в Италии всю неделю может выглядеть как трафик из Германии. Если ваше правило срабатывает на смену страны, пользователи в роуминге будут постоянно попадать под подозрение.
IPv6 меняет картину
В IPv6 каждое устройство обычно получает собственный адрес из префикса /64 или /56. Поэтому ограничивать частоту запросов нужно по /64, а не по отдельному адресу: иначе устройство, которое меняет адрес внутри своего префикса, сразу обойдёт правило. Геолокация мобильного IPv6 часто работает лучше, потому что там меньше агрегации, но полнота покрытия префиксов всё равно зависит от конкретного оператора.
Как проектировать правила с учётом мобильного трафика
- Используйте тип соединения. Если это
mobile, считайте город лишь ориентиром и опирайтесь прежде всего на страну. - Для мобильных сетей ограничивайте частоту действий по аккаунту или идентификатору устройства, а не по IP.
- Не используйте расстояние между городами как fraud-сигнал для мобильного трафика.
- Для существующих аккаунтов допускайте смену страны и вместо отказа включайте усиленную аутентификацию.
Guarda возвращает тип соединения в каждом lookup-запросе именно для того, чтобы такие ветвления было легко описывать в правилах. Правильный вопрос здесь не «где находится этот IP», а «насколько можно доверять этому “где”».
