Stub на раннере и корпоративный DNS часто ломают EDNS. Авторитет отвечает на то, что доехало; рекурсор с чужой подсетью или без ECS даёт левый PoP раньше, чем вы меняете веса у L4. На выделенных Mac mini M4 в vpshalo вы контролируете стек и маршрут, но имя всё равно резолвится там, где настроен CI; поэтому матрица Halo начинается с паспорта DNS, а не с sysctl.
1) ECS on с грубой маской — дрейф края. 2) ECS off у forwarder — GeoDNS видит IP резолвера, все раннеры «из» одного метро. 3) Короткий TTL без drain — шторм и ложный p95 при липком кэше. 4) Разные ответы у stub и у публичного зонда без смены записи почти всегда означают разный ECS или разный forwarder, а не «плохой» край артефактов.
| Решение | Когда | Риск |
|---|---|---|
| ECS с узкой маской | Публичные резолверы, политика на hop | /20+: смена края без смены клиента |
| ECS off, имена по региону | Закрытый forwarder | Шаблоны CI и ручной выбор |
| Короткий TTL на CNAME артефактов | Быстрый откат | QPS к авторитету |
ECS включён и выключен
ECS on: авторитет видит подсеть клиента; хорошо при согласованной маске, плохо при разном поведении публичных резолверов и частой смене egress. ECS off: география = DNS-кластер, не раннер; предсказуемо внутри периметра, плохо для авто-разведения JP/KR. Зафиксируйте в паспорте зоны, кто клиент GeoDNS в каждом сегменте.
Если авторитет отдаёт разные A для одного имени при одинаковом наборе весов, сначала исключите несогласованный ECS между двумя путями резолюции, затем смотрите липкость у провайдера и собственный views на split-horizon, как в статье про split-horizon. Только после этого имеет смысл трогать гео-таблицу или менять привязку Mac к региону в панели заказа.
| Сигнал | ECS on | ECS off |
|---|---|---|
| Край vs метро раннера | Высокая связь при узкой маске | Низкая, привязка к рекурсору |
| Смена egress | Ответ пляшет | Стабильнее имя, риск смысла |
| Эксплуатация | dig +subnet, версии | Явные имена в CI |
TTL: слои
SOA/NS — длинно. CNAME/SVCB — умеренно, см. TLS чеклист. Артефакты — коротко только после drain и окна метрик. Слой SVCB добавляет ещё один кэш поведения клиента; при смене приоритетов не смешивайте измерение p95 TLS с измерением p95 HTTP на одном имени без тегов в метриках.
- Не режьте TTL, пока health и веса не готовы к переключению.
- Разведите SSH и толстые объекты по именам, см. CONNECT vs SSH.
- Для SCP/SFTP держите отдельную матрицу RTT по узлам, см. SCP и SFTP, чтобы DNS-сдвиг не маскировался как дисковая деградация.
p95 артефактов по метро
Снимайте p95 TTFB и p95 полного 100 MiB отдельно по JP/KR/HK/SG/US West; сверяйте с выбранным A/AAAA после рестарта stub. Окно агрегации для p95 должно перекрывать как минимум два TTL самого короткого звена в цепочке, иначе вы увидите ступеньку при первом промахе кэша и спутаете её с проблемой края. Для сравнения регионов фиксируйте один и тот же объект и одинаковый параллелизм загрузки.
| PoP | p95 TTFB | p95 100 MiB @1 Gbps | Если красное |
|---|---|---|---|
| JP | < 180 мс | < 95 с | ECS, транзит HK |
| KR | < 200 мс | < 100 с | split-horizon, forwarder |
| HK/SG | < 215 мс | < 103 с | липкий кэш, QUIC |
| US West | < 160 мс | < 90 с | отдельный SLO на trans-Pacific |
Пять шагов и dig
dig A artifacts.example.com @1.1.1.1 +ttlunits +norecurse
dig A artifacts.example.com @8.8.8.8 +subnet=203.0.113.0/24 +ttlunits
dig AAAA edge.example.com @resolver.internal +subnet=198.51.100.0/24 +tcp
- Шаг 1. Снимки dig для JP, SG, US West с +subnet в репо.
- Шаг 2. Те же имена через корпоративный путь без ECS; сравните A/AAAA.
- Шаг 3. Вытяжка 100 MiB на каждом метро: короткий vs длинный TTL.
- Шаг 4. Смена egress раннера: GeoDNS в границах ECS или запасной край по весам.
- Шаг 5. Паспорт: ECS да/нет, маска, имена, резолвер, алерт QPS при смене TTL.
Тезисы для документа
- GeoDNS отвечает резолверу, не инженеру, пока цепочки не разведены.
- Короткий TTL не чинит край, он ускоряет уже принятое решение.
- ECS без политики маски — хаос p95 на артефактах.
FAQ
Почему dig +subnet молчит на внутреннем резолвере? Часто forwarder не прокидывает опцию; проверьте версию, ACL и флаг рекурсии, затем повторите через публичный резолвер как контрольный канал.
Нужен ли отдельный SLO для cross-Pacific? Да: US West к JP и обратно имеют другую дисперсию, чем JP↔KR; не смешивайте их в одной алерт-политике без тега маршрута.
Итог. Сверьте ECS on/off, слой TTL и p95 по пяти метро; dig — эталон сравнения. Тарифы, помощь, главная, покупка.