chore(docs): сохранить диагностику задержек подключения к серверу
This commit is contained in:
1 parent
ef229ca9c4
commit
4881306f0b
2 files changed
+91
No files matched your search
@@ -0,0 +1,83 @@
|
|||||||
|
# Production275 — SYN и задержки API arn-gw01 (2026-10-16)
|
||||||
|
|
||||||
|
Поручение: исследовать предупреждения SYN flooding на80/443 и периодически
|
||||||
|
медленный HTTPS REST на `arn-gw01.rtnt.top`. Выполнены только чтение и короткие
|
||||||
|
диагностические подключения. Конфигурация production/RouterOS не менялась.
|
||||||
|
|
||||||
|
## Результаты
|
||||||
|
|
||||||
|
Устройство ID1, DNS IPv4 `62.182.194.146`, REST HTTPS443 с проверкой сертификата.
|
||||||
|
RouterOS7.24.5 stable,1 CPU. В разовом resource: CPU6%, свободно933036032 байт
|
||||||
|
из1207959552, uptime5m41s. Перезапуск выполнен до диагностики, не агентом.
|
||||||
|
|
||||||
|
1. Первый диагностический GET system/resource завершился тайм-аутом10с.
|
||||||
|
Следующие чтения: system/clock2307мс, ip/settings638мс, ip/service145мс,
|
||||||
|
log160мс; отдельный полный resource1170мс. Неверная авторизация не наблюдалась.
|
||||||
|
2. В первоначальном журнале41 событие: первая отметка02:43:13, оба SYN warning
|
||||||
|
на80/443 —02:43:20. Совпадение с uptime указывает на события первых секунд
|
||||||
|
запуска. Позднее часы используют Europe/Stockholm/+02:00, в журнале есть
|
||||||
|
скачок02:43→04:44; ранние отметки нельзя механически переводить как уже
|
||||||
|
синхронизированное местное время. Непрерывную SYN-атаку из этих двух записей
|
||||||
|
вывести нельзя. Последующее кольцо1000 записей уже не содержало предупреждений.
|
||||||
|
3. Четыре последовательных GET system/identity с новым TCP/TLS, один за раз:
|
||||||
|
|
||||||
|
| Замер | DNS | TCP установлен | TLS завершён | Заголовки ответа | Всего |
|
||||||
|
| --- | --- | --- | --- | --- | --- |
|
||||||
|
| 1 | 6 | 1042 | 1141 | 1161 | 1162 |
|
||||||
|
| 2 | 2 | 3071 | 3189 | 3208 | 3208 |
|
||||||
|
| 3 | 3 | 3088 | 3233 | 3254 | 3254 |
|
||||||
|
| 4 | 2 | 5136 | 5254 | 5273 | 5274 |
|
||||||
|
|
||||||
|
Значения — накопленные миллисекунды от начала запроса. Все HTTP200;
|
||||||
|
после TLS до ответа19–21мс. Основная задержка находится до TCP connect.
|
||||||
|
4. Захват только SYN/SYN-ACK заголовков на eth0 production-хоста,20с,
|
||||||
|
фильтр строго target IPv4/TCP443. Полезная нагрузка не сохранялась.
|
||||||
|
Два наших контрольных GET прошли155/149мс; SYN-ACK через18–21мс.
|
||||||
|
Затем в обычном опросе приложения зафиксированы повторения исходящих SYN:
|
||||||
|
один исходный порт — первое SYN1792119069.651615, SYN-ACK1792119073.773299
|
||||||
|
(4.122с, несколько повторов); другой —1792119069.713556→1792119071.757179
|
||||||
|
(2.044с). При полученном ответе на SYN RTT около18мс. Захват16 пакетов,
|
||||||
|
dropped by kernel0, завершён автоматически через timeout20s.
|
||||||
|
5. В02:52:33 UTC (09:52:33 Новосибирск) среди239 TCP conntrack записей4 к
|
||||||
|
локальным80/443: time-wait1/syn-sent2/syn-recv1. Две от приложения,
|
||||||
|
две с других внешних адресов — по одной80 и443. Массовый текущий SYN flood
|
||||||
|
этим одиночным снимком не подтверждён. В этой версии адрес и порт — отдельные
|
||||||
|
поля; для итогового подсчёта использованы dst-address **и** dst-port.
|
||||||
|
6. tcp-syncookies=false. www80/www-ssl443/reverse-proxy443 включены,
|
||||||
|
max-sessions20; FTP/Telnet/SSH уже выключены. В input есть блокировка EVOFW_DENY,
|
||||||
|
drop UDP53 и accept WireGuard; отдельных ограничений80/443 доверенными
|
||||||
|
источниками и завершающего drop input в прочитанных правилах нет. RAW пустой.
|
||||||
|
Правила не менялись; обратный прокси потенциально использует те же порты,
|
||||||
|
поэтому закрывать их без проверки потребителей нельзя.
|
||||||
|
7. Scheduler20минут на02:49 UTC: traffic4 error/36 ok, gre_bgp4 error/36 ok.
|
||||||
|
Выборка последних ошибок называет arn и тайм-аут10с; последние в02:43:49–50 UTC,
|
||||||
|
рядом с запуском устройства. Успешные задания иногда занимают9–11с суммарно.
|
||||||
|
Это не доказательство медленного SQL или обработки REST на RouterOS.
|
||||||
|
|
||||||
|
## Вывод
|
||||||
|
|
||||||
|
Воспроизведены задержки TCP-handshake и повторные SYN **до** TLS/REST.
|
||||||
|
Разовые низкие CPU и conntrack не показывают постоянного истощения ресурсов.
|
||||||
|
Причину нужно различать между сетью/фильтрацией по пути и обработкой SYN на CHR;
|
||||||
|
захват только на отправителе не определяет точное место потери. Историческое
|
||||||
|
предупреждение при запуске само по себе не доказывает текущую DDoS-атаку.
|
||||||
|
|
||||||
|
Приложение сейчас создаёт новые соединения (keepAlive=false, maxSockets2 на origin).
|
||||||
|
Это увеличивает количество TCP/TLS-handshake, но не доказывает, что приложение
|
||||||
|
создаёт SYN flood. Менять поведение пула вслепую нельзя: прежние проверки273 касались
|
||||||
|
также отказов входа. Повышение API timeout лишь скроет часть проявлений.
|
||||||
|
|
||||||
|
## Подготовленный следующий шаг
|
||||||
|
|
||||||
|
После отдельного разрешения владельца проверить ID1/host и исходный
|
||||||
|
tcp-syncookies=false, изменить **только** `/ip/settings tcp-syncookies=true`
|
||||||
|
через REST PATCH. Без перезагрузки, изменения паролей, служб, правил firewall
|
||||||
|
и маршрутов. Повторно прочитать значение, повторить небольшой последовательный
|
||||||
|
замер TCP/TLS/HTTP и сверить штатные опросы. Откат — вернуть исходное false после
|
||||||
|
решения владельца; не объявлять положительный краткий замер доказательством
|
||||||
|
устранения причины. Это пока предложение, изменение не применялось.
|
||||||
|
|
||||||
|
[IP Settings MikroTik](https://help.mikrotik.com/docs/spaces/ROS/pages/103841817/IP%2BSettings)
|
||||||
|
описывает SYN cookies при переполнении SYN backlog и ограничения TCP extensions.
|
||||||
|
Это защита от переполнения очереди, она не устраняет потери в сети провайдера.
|
||||||
|
Точный scope изменения и проверка должны быть согласованы до записи в production.
|
||||||
@@ -42,6 +42,14 @@
|
|||||||
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
|
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
|
||||||
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Завершён2026-10-15 в границах предоставленного стенда:1396 UI/221 context,120 live states30 экранов, production builds/ReUI checklist и реальные интеграции. Ограничения — в [акте](ux-ui-acceptance-candidate.md); production-выпуск не выполнялся. |
|
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Завершён2026-10-15 в границах предоставленного стенда:1396 UI/221 context,120 live states30 экранов, production builds/ReUI checklist и реальные интеграции. Ограничения — в [акте](ux-ui-acceptance-candidate.md); production-выпуск не выполнялся. |
|
||||||
|
|
||||||
|
## Production275 — диагностика SYN и задержек arn-gw01 (2026-10-16)
|
||||||
|
|
||||||
|
На ID1/arn-gw01 воспроизведён REST timeout10с. Четыре последовательных HTTP200 показали DNS2–6мс, TCP1.042–5.136с, TLS ещё99–145мс, ответ после TLS19–21мс.20-секундный захват SYN/SYN-ACK только target443 на production-хосте подтвердил повторные SYN штатного приложения и ожидание ответа2.044/4.122с; нормальный SYN-ACK18–21мс. Место потери между хостом и обработкой CHR не установлено.
|
||||||
|
|
||||||
|
RouterOS7.24.5, uptime5m41s/CPU6% в одном замере; оба warning80/443 через7с после первой записи запуска, позднее есть смена часов Europe/Stockholm. Массовую текущую атаку это не доказывает. tcp-syncookies=false; ограничения input80/443 доверенными источниками в прочитанных правилах нет, RAW пустой. Итоговый conntrack-снимок:4 локальных80/443 TCP,2 от приложения/2 других, не свидетельство большого потока. Порты и адреса этой версии считались отдельными полями.
|
||||||
|
|
||||||
|
[Протокол и подготовленный следующий шаг](../deploy/PRODUCTION-ARN-275.md). Предложено отдельно согласовать изменение только tcp-syncookies с чтением результата и коротким повторным замером; сеть провайдера оно не исправляет. Пароли, RouterOS, firewall, приложение и контейнеры не менялись. Диагностика завершена, tcpdump остановился по20с timeout; код не менялся, сборка/тесты повторно не запускались. Локальный коммит без push.
|
||||||
|
|
||||||
## Production274 — отключение FTP/Telnet и наблюдение (2026-10-16)
|
## Production274 — отключение FTP/Telnet и наблюдение (2026-10-16)
|
||||||
|
|
||||||
После явного разрешения владельца на ID3/nov-gw01 повторно проверены службы ftp*1/21 и telnet*0/23, затем16 октября01:33:45 по Новосибирску применено только disabled=true. Повторное чтение подтвердило результат; www/www-ssl/winbox/api/api-ssl сохранены включёнными. Владелец отдельно подтвердил оставить FTP/Telnet выключенными. Пароли, firewall, маршрутизация, задания RouterOS и контейнеры не менялись.
|
После явного разрешения владельца на ID3/nov-gw01 повторно проверены службы ftp*1/21 и telnet*0/23, затем16 октября01:33:45 по Новосибирску применено только disabled=true. Повторное чтение подтвердило результат; www/www-ssl/winbox/api/api-ssl сохранены включёнными. Владелец отдельно подтвердил оставить FTP/Telnet выключенными. Пароли, firewall, маршрутизация, задания RouterOS и контейнеры не менялись.
|
||||||
|
|||||||
Reference in new issue
Block a user