Две недели «интернета нет» при зелёных пингах

Обложка

Вводные и исходные данные

У вас бывало: телефон орёт «без интернета», на ноуте Windows уныло пишет «подключение без доступа», а пинги — как на подбор, зелёные, 0% потерь? У меня это расцвело на две недели. Причём не «упал провайдер», не «роутер сдох», а что-то совсем точечное: то игры не логинятся, то AI молчит, то push'и у умных ламп залипают, зато сайт районной библиотеки бодро открывается. Живой канал, но местами как будто ножницами выстрижено.

Фон: обычный homelab-дворик. Встаю утром, варю кофе, иду VLAN’ы кормить:

Врезка: карта VLAN и подключений

До 16 июля всё было как в рекламе провайдеров (которых мы тут не называем). А вот дальше пошла странная пила: устройства вроде в сети, но «интернета нет». Я достал свой connect-check и начал вести дневник замеров.

Как и что делал — хроника, инструменты, команды

Как появился connect-check (спойлер: не сразу)

Сначала никакой утилиты не было. Я просто реверсил трафик телефонов: смотрел, куда они вообще стучатся, когда решают «есть ли интернет». Поднял tcpdump, отфильтровал по устройству — и увидел, что к части ресурсов SYN уходит, а ответа нет вообще: ни RST, ни SYN-ACK. Просто тишина. Так впервые вылезли кептив-порталы — connectivitycheck.gstatic.com и его соседи.

Дальше — проще: раз режут эти, наверняка режут и похожие. Накидал список «канареек» (connectivitycheck.android.com, msftconnecttest.com, captive.apple.com и прочие) и стал проверять их руками, пачками. А потом из этого выросла маленькая консольная утилитка, которая гоняет адреса пачками и отдаёт один HTML-отчёт. Со временем список ресурсов и сервисов разросся до 500+ проверок — туда попали игры, AI-платформы, облака, IoT-порты, банки, DNS/DoT/DoH, QUIC.

16.07. Старт. Симптом: телефоны «без интернета», браузер кое-как живёт, игры не логинятся

Вечер 16.07. «Может, это Wi‑Fi шалит?» Перепрыгнул на второй SSID (5 ГГц, DFS, канал 52)

18.07 утро. Первая волна нарастает

20–21.07. Пик. Резко ложится почти всё иностранное, задевает и часть наших

Что именно резалось в пик (проверял точечными коннектами):

1) Кептив-порталы ОС — системно. Это и делает «нет интернета» при живом канале. – curl -I http://connectivitycheck.gstatic.com/generate_204 → таймаут. – curl -I http://www.msftconnecttest.com/connecttest.txt → таймаут. – curl -I http://captive.apple.com/hotspot-detect.html → таймаут. – Статистика по gstatic: 0/8 успешных подряд — стабильный ноль.

Врезка: кептив-порталы режут точечно

2) DoT :853 — чёткая политика: – dns.google, 8.8.8.8, 9.9.9.9 → не коннектится. – 1.1.1.1 → коннектится. – tcpdump -i wan -n host 8.8.8.8 and port 853 → SYN уходит, ответа нет. Строгое «нет» на SYN/ACK.

Врезка: DoT режут выборочно

3) Игры — входы и CDN/CM: – Battle.net, включая login :1119 на *.actual.battle.net → нет рукопожатия. – nc -vz eu.actual.battle.net 1119 → Operation timed out. – Steam CDN/CM, Epic, Riot, Ubisoft, GOG, Xbox Live, PlayStation Network, Nintendo, EA, Roblox, Minecraft: – Формально это TCP/443, но TLS-рукопожатие залипает на ClientHello. – curl -sI https://store.steampowered.com → может открыться, а лаунчер — не логинится: SNI/DPI по доменам и шаблонам. – Трассы выглядят как обычно до границы, дальше молчание: – mtr -T -P 443 battle.net → маршруты до 198.51.100.x, затем тишина.

4) AI-платформы — отрезаны подчистую: – OpenAI (включая ChatGPT и API), Claude/Anthropic, Gemini, AI Studio, Grok/xAI, DeepSeek, Mistral, Hugging Face, Groq, Together, Poe, Notion AI, Cursor. – Браузер: WinINet 12002 (таймаут) или 12057 (TLS/DNS). – curl -sS https://api.openai.com/v1/models → дожидается полминуты и роняет коннект.

5) Облака: – AWS S3 CDN (в частности, репы amazonlinux) — регулярно в fail. – curl -I https://some-bucket.s3.amazonaws.com/… → периодические таймауты.

6) IoT-порты — push/шины: – MQTT :8883 (Tuya, Aqara) → conn. timeout. – Google mtalk :5228/:5229 → timeout. – Apple push :5223 → timeout. – XMPP :5222 → timeout. – В логах умного дома: «облако недоступно», девайсы падают в оффлайн. Локальные сценарии работают, удалённые уведомления — нет.

7) QUIC (UDP/443): – curl —http3 -I https://www.google.com → долго, потом откат на HTTP/2. – curl —http3 -I https://www.cloudflare.com → аналогично. – tcpdump -i wan udp port 443 and host 203.0.113.10 → Handshake не складывается, пакеты отваливаются. DPI глушит HTTP/3.

8) DNS-имена точечно: – dig +time=2 +retry=1 iot.yandex.ru @1.1.1.1 → ок. – dig iot.yandex.ru @10.0.10.1 (локальный резолвер, форвард к аплинку) → SERVFAIL/timeout. Значит не весь DNS умер, а выборочно по именам у аплинка. – Аналогично: api.alice.yandex.net, ok.ru, copilot.microsoft.com, clouddrive.nabucasa.com — то не резолвит, то резолвит, но дальше 443 молчит.

9) NTP: – time.google.com, ntp.yandex.ru — временами не отвечают по UDP/123. На графике — ступеньки дрейфа часов. В другие минуты — живут.

22.07 10:57 — будто тумблер щёлкнули

28.07 ночь — вторая волна, на этот раз российские сервисы в прицеле

29.07 00:09 — полное восстановление

05.08 постскриптум — остаточные артефакты

И ещё детали, которые я докручивал в процессе

Что в итоге вышло — сухие цифры и факты

Паттерны фильтрации, подтверждённые тестами:

Динамика по волнам:

Врезка: волны фильтрации

Важно: весь этот цирк проходил при зелёной базовой связности:

Выводы и что делать

1) «Нет интернета» ≠ нет интернета. Если пинги зелёные и DNS в целом жив, а телефон/Windows врут — первым делом смотрите кептив-порталы:

Если тут таймауты — ОС решит, что «интернета нет», и начнёт творить дичь (не все приложения станут выходить в сеть).

2) DoT (порт 853) может фильтроваться точечно. На Android:

Проверка с хоста:

3) Это очень похоже на SNI/DPI-фильтрацию и тестовые волны ТСПУ:

4) Как диагностировать самостоятельно (минимальный чек-лист):

5) Что делать, кроме «подождать, пока отпустит»:

6) Для гигиены лабы:

Мой личный срез по «что это было»

Вопрос к вам

Кто ещё ловил такие волны? С той же симптоматикой: живые пинги/DNS, но «без интернета» из‑за кептивов, закрытый DoT (кроме 1.1.1.1), отключенный QUIC, массовые таймауты игр/AI/облаков, и потом резкий откат? Чем мерили, есть ли у вас числа по дням/часам? Писали ли в ЦМУ ССОП на info@noc.gov.ru и что ответили?

🔧 Утилита диагностики: https://github.com/cooler58/connect-check/releases

#monitoring #network