Кратко
- RFC 8490 отличает подключённый транспорт DNS от установленной сессии DSO: постоянное состояние начинается с успешного явного обмена, а не с открытого сокета.
- Один основной TLV, идентификаторы, два разных таймера и Retry Delay делают создание, поддержание и завершение состояния наблюдаемыми.
- Keepalive доказывает доступность пути, но не сохраняющуюся полезность или полномочие операции.
У сокета нет собственного мандата
Классический DNS связывает вопрос и ответ. TCP позволяет повторно использовать соединение, но сам по себе не разрешает подписку, последующие уведомления или хранение состояния после ответа. Непрерывность транспорта не равна полномочию приложения.
RFC 8490 опубликован в марте 2019 года за авторством Рэя Беллиса, Стюарта Чешира, Джона Дикинсона, Сары Дикинсон, Теда Лемона и Тома Пусатери. Он определяет DNS Stateful Operations, DSO, с OPCODE 6 и обновляет RFC 1035 и 7766. Главное новшество — явно названное состояние, о существовании и правилах которого знают обе стороны.
Сначала есть только соединение. Кроме узких случаев early data, сессия DSO возникает после запроса и успешного ответа с совпадающим идентификатором. Молчание старого сервера нельзя считать согласием. После установленного ожидания соединение прерывают и начинают заново из известного состояния.
Одна главная операция
DSO сохраняет заголовок DNS, но передаёт операции структурами Type-Length-Value. В сообщении один Primary TLV. Он определяет запрос с ненулевым MESSAGE ID и обязательным ответом либо одностороннее сообщение с нулём, на которое отвечать нельзя.
Запросы можно отправлять конвейером, а ответы получать не по порядку, хотя действия выполняются в порядке приёма. Неизвестный основной TLV получает DSOTYPENI; неизвестный дополнительный TLV игнорируется. Расширяемость не требует делать вид, что непонятное значение принято.
Два часа для одной тишины
Тихое соединение может быть забыто или сохранять действующую подписку. Поэтому RFC разделяет inactivity timeout и keepalive interval.
Первый относится к полезной работе. Долгая операция действует до отмены даже без трафика. Второй проверяет достижимость и поддерживает состояние NAT и межсетевых экранов. Keepalive — пульс пути, но не продление цели операции.
Смешение часов либо разрушает спокойные подписки, либо делает старое состояние бессмертным. Нужно видеть оба значения и незавершённую операцию, ради которой расходуется память.
Завершение без шторма
Retry Delay позволяет серверу закрыть сессию и назначить ожидание перед повторным соединением. Коды различают обычный перезапуск, тяжёлую ошибку формата, нехватку ресурсов и перенастройку. Управляемая остановка не обязана превращаться в лавину подключений.
Код остаётся ограниченным свидетельством. SERVFAIL не раскрывает внутреннюю причину перегрузки, а REFUSED не доказывает нарушение или вечный отказ. DSO требует надёжного упорядоченного транспорта — DNS поверх TCP или TLS. UDP не даёт сессии, а HTTPS управляет ею иначе.
RFC 8765 применяет DSO для DNS Push Notifications. Польза заключается в общем жизненном цикле, а не просто в длинном соединении. Реестр IANA подтверждает выделение кодов, но не распространённость и не качество внедрения.
Работа Рэя Беллиса видна в границах: установление, тишина, достижимость, перегрузка, завершение и повтор — разные события. Постоянство не превращается в невидимую власть.
Источники
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
