Скорость до нас и до Яндекса

«Интернет медленный» — одна из самых частых жалоб в поддержку провайдера. Обычно к ней прилагается цифра: клиент открыл первый попавшийся спидтест, получил 30 Мбит/с на тарифе 100 и прислал снимок экрана. Выглядит как доказательство, но главного по этой цифре не понять — выдаёт ли провайдер скорость тарифа.
В личном кабинете абонента СмИТ Биллинга теперь два способа измерить скорость: до сервера самого провайдера и до ближайших серверов Яндекса. А с включённым VPN замер не проводится вовсе. Разбираем, зачем это нужно и как устроено.
Что на самом деле показывает спидтест
Любой замер — это скорость на всём пути от устройства клиента до сервера, выбранного сервисом замера. Сеть провайдера — только часть этого пути. Дальше идут чужие сети и сам сервер замера, о котором клиент обычно ничего не знает. Если на телефоне включён VPN, в путь добавляется ещё и VPN-сервер — и замер показывает скорость VPN-сервиса, а не домашнего интернета.
Поэтому разговор поддержки с клиентом начинается с расспросов: каким сервисом мерили, до какого сервера, по проводу или по Wi-Fi, включён ли VPN. Пока всё это выясняется, проходит время, а клиент всё больше уверен, что проблему решать не хотят.
Тест в кабинете снимает большую часть вопросов заранее: известно, куда шёл замер, известен тариф клиента, а через VPN замер не запустится.
Способ первый: до сервера провайдера
Способ «Наш сервер» есть в кабинете с сентября. Скачивание, отдача и задержка меряются до сервера биллинга самого провайдера. Так видно, выдаёт ли провайдер скорость тарифа на всём пути до клиента — без чужих сетей посередине.
Результат сразу сравнивается со скоростью тарифа:
| Скачивание от скорости тарифа | Что видит клиент |
|---|---|
| 80% и больше | «Скорость соответствует тарифу» |
| от 50 до 80% | «Скорость ниже ожидаемой» и совет проверить Wi-Fi и устройства |
| меньше 50% | «Скорость значительно ниже тарифа», что попробовать самому и кнопка «Создать обращение» |
Перед кнопкой — короткий список того, что стоит проверить самому: провод вместо Wi-Fi, перезагрузка роутера, закрытые торренты и видео. Если не помогло, кнопка открывает форму обращения с уже заполненным текстом: скорость скачивания и отдачи, пинг, jitter, дата и способ замера. Поддержка получает не «всё тормозит», а цифры, с которыми можно работать.
Способ второй: до серверов Яндекса
Новый способ меряет скорость до ближайших серверов Яндекса — тех же, что использует yandex.ru/internet, — и тем же методом.
- Выбор узла. Список ближайших узлов получает биллинг, а браузер клиента выбирает из них узел с наименьшей задержкой: первый запрос — прогрев, затем пять замеров. Медиана становится пингом, разброс между замерами — jitter.
- Скачивание — 10 секунд в 4 потока. Два потока идут к ближайшему узлу, ещё по одному — к остальным.
- Отдача — 8 секунд в 3 потока. Данные уходят порциями, которые растут от 256 КБ до 4 МБ.
- Разгон не в счёт. Первые 2 секунды, пока соединения набирают скорость, в результат не идут. На шкале во время замера — скорость за последнюю секунду.
Весь замер занимает около 25 секунд. Он ограничен временем, а не размером файла: на быстром канале файл заданного размера скачался бы раньше, чем соединения успели разогнаться.
Зачем мерить дважды
Два замера вместе отвечают на вопрос, который одна цифра не решает: где искать проблему.
| До сервера провайдера | До серверов Яндекса | Где искать |
|---|---|---|
| Быстро | Медленно | За пределами сети провайдера |
| Медленно | Медленно | В сети провайдера или у клиента дома: Wi-Fi, роутер, кабель |
Выбранный способ запоминается, а в истории тестов у каждого замера подписано, каким способом он сделан. Сравнивать можно, не переписывая цифры на бумажку.
Почему не встроить сам yandex.ru/internet
Второй способ появился после обращения сотрудников провайдера: к нему была приложена запись замера на yandex.ru/internet. Самое простое решение — показать страницу Яндекса прямо в кабинете — не работает: сайт запрещает показывать себя во фрейме на чужих страницах. Поэтому в кабинете повторён сам метод, а замер идёт к тем же серверам.
С включённым VPN замер не проводится
Замер через VPN бесполезен обеим сторонам: он показывает скорость VPN-сервиса, а не интернета клиента, и спорить о такой цифре нет смысла. Поэтому кабинет проверяет сеть при открытии страницы и ещё раз перед каждым замером — VPN можно включить, не перезагружая страницу. Пока идёт проверка, кнопка запуска неактивна.
Проверок две:
- Откуда пришёл запрос. Адрес, с которого клиент открыл кабинет, должен относиться к сети оператора: активная сессия RADIUS, IP-адрес абонента, IP-пулы оператора или дополнительные подсети из настроек. Если нет — клиент видит «Соединение идёт не через нашу сеть».
- Куда выходит браузер. Браузер узнаёт свой внешний адрес через WebRTC (STUN), и биллинг сверяет его с сетями оператора. Запрос пришёл из сети, а браузер выходит в интернет с чужого адреса — значит, между ними VPN или прокси: «Обнаружен VPN или прокси».
flowchart TB
A["Страница открыта<br/>или нажат «Начать тест»"] --> B{"Запрос<br/>из сети<br/>оператора?"}
B -->|нет| X["«Соединение<br/>идёт не через<br/>нашу сеть»"]
B -->|да| C{"Браузер<br/>выходит<br/>из сети<br/>оператора?"}
C -->|нет| Y["«Обнаружен<br/>VPN или<br/>прокси»"]
C -->|да или<br/>неизвестно| M["Замер<br/>выбранным<br/>способом"]
X --> R["Кнопка<br/>«Отключите VPN»<br/>неактивна"]
Y --> R
R -->|VPN выключен| S["«Проверить снова»<br/>без перезагрузки"]В обоих случаях кнопка запуска превращается в неактивную «Отключите VPN». Клиент выключает VPN и нажимает «Проверить снова» — перезагружать страницу не нужно. Сервер провайдера вдобавок сам отказывает в замере до своего сервера, если запрос пришёл не из его сети.
Из разработки: проверка, которая могла принять своего абонента за VPN. Раньше VPN искали точным сравнением: адрес, который браузер узнал через WebRTC, должен был совпасть с адресом запроса. Но абоненты приходят в кабинет с внутренних адресов сети оператора — через CGNAT и внутренний NAT, — а в интернет выходят с внешних. Такие адреса не совпадают никогда, и проверка могла посчитать обычного клиента пользователем VPN. Теперь адрес браузера сверяется не с адресом запроса, а с сетями оператора.
Вторая находка — условие, которое годами молчало. Проверка «адрес из IP-пулов оператора» не срабатывала: список пулов загружался не из того модуля, ошибка тихо перехватывалась, и в кэш на час ложился пустой список. Снаружи всё выглядело как обычная работа — просто пулы никогда не находились. Когда сбой выглядит как пустой ответ, его никто не ищет.
Как это работает в СмИТ Биллинге
Тест скорости — раздел личного кабинета абонента. Он включается переключателем «Speedtest» на вкладке «Функции» настроек ЛК, а скорость для сравнения берётся из тарифа клиента.
Сети оператора для проверки складываются из того, что биллинг и так знает: сессий RADIUS, адресов абонентов и IP-пулов. Остальное задаётся в настройках ЛК, в разделе безопасности, — поле «Доп. подсети оператора». Туда вносят не только внутренние адреса, с которых абоненты приходят в кабинет, но и внешние сети, через которые они выходят в интернет: иначе адрес браузера не узнается как свой.
Страница работает на телефоне и в тёмной теме: переключатель способов встаёт в столбик, результаты — в две колонки.
Посмотреть на своих данных
Покажем платформу на живом стенде и разберём ваш случай. Или спросите ассистента прямо сейчас — он отвечает по документации и настройкам.


