ID причины isp-cgnat · Основной ответственный Команда разработки · Разработка клиента · Совместно Команда разработки · Разработка сервера, Команда инфраструктуры · Сетевая инфраструктура
В мобильных сетях и у некоторых провайдеров один IP делят много абонентов, а записи NAT для неактивных соединений быстро удаляются.
Почему Оборудование провайдера ведёт таблицу сессий для огромного числа абонентов → Следствие Лимит таблицы сессий, короткий таймаут простоя → На экране Дисконнект после бездействия, ложные срабатывания, при которых блокируются сразу все игроки с одним IP
Основной ответственный Команда разработки · Разработка клиента · Совместно Команда разработки · Разработка сервера, Команда инфраструктуры · Сетевая инфраструктура
Команда разработки: задачи
Клиент: слать хартбиты с интервалом не больше половины самого короткого таймаута простоя (в мобильных сетях он бывает около 30 с), причём слать должен именно клиент, потому что запись CGNAT у провайдера надёжно обновляется только исходящими изнутри пакетами, при обрыве автоматически переподключаться. Сервер: отвечать на хартбиты и первым закрывать соединение, если их нет определённое время, подхватывать игрока по токену сессии, даже если после смены записи NAT изменились адрес и порт, осторожно применять блокировки по IP, потому что один IP могут делить много людей (решать вместе с признаками аккаунта и устройства).
Команда инфраструктуры: задачи
Подстроить лимиты файрвола и защиты от DDoS на число соединений с одного IP и число новых соединений в секунду под общие IP провайдеров (для диапазонов мобильных операторов поднять пороги или сделать исключение).
Цифры для ориентира
В мобильных сетях таймаут простоя для UDP бывает около 30 с.
На графике
Массовый обрыв соединений · число обрывов (таймаут хартбита), время бездействия перед обрывом (по провайдерам)
Где смотреть
Посмотреть в логах подключений, сколько аккаунтов одновременно подключено с одного IP и какой это провайдер (ASN), собрать по провайдерам время бездействия у соединений, оборвавшихся после простоя. На стороне игрока проверить адрес интернет-подключения (WAN) в интерфейсе роутера
Подтверждает
В диапазонах мобильных операторов с одного IP подключено несколько аккаунтов, а время бездействия перед обрывом короткое, в основном около 30–60 с. WAN-адрес роутера из 100.64.0.0/10 (общие адреса для NAT провайдера) или отличается от адреса, который видит сервер
Опровергает
Если обрывы скапливаются у пользователей домашних роутеров независимо от провайдера, это «Истечение записи в таблице NAT»