Кратко
- RFC 3145 добавил PPP-причину в L2TP Call-Disconnect-Notify, но оставил атрибут необязательным, не требующим понимания и не влияющим на сеанс.
- Код, номер управляющего протокола и направление задают координаты сообщения одного узла; они не доказывают физическую первопричину, вину, показ текста пользователю или расчёт.
- Расширение сделало диагностику переносимой между владельцами, не передав отправителю полномочия судить об инциденте.
Успешное завершение сообщения не объясняло завершение сеанса
L2TP соединял концентратор доступа LAC и сетевой сервер LNS, перенося между ними PPP-сеанс. Туннельная машина состояний была намеренно отделена от подробностей PPP. Поэтому уведомление о снятии вызова могло быть совершенно корректным, даже если удалённая сторона ничего не знала о последнем PPP-событии.
В Call-Disconnect-Notify уже находились L2TP Result Code и Error Code. Они описывали результат туннельного управления. Тайм-аут LCP, отсутствие подходящего NCP, отказ метода аутентификации или административное завершение относились к другой плоскости.
Особенно заметен разрыв был там, где LAC и LNS принадлежали разным организациям. Одна сторона видела линию доступа и пользователя, другая — PPP-состояние. У каждой были собственные часы, идентификаторы и интересы. Без общего квитанционного поля они соглашались лишь в том, что сеанса больше нет.
RFC 3145 определил PPP Disconnect Cause Code AVP: Vendor ID 0, Attribute Type 46, допустимый только в CDN. Внутри находились код отключения, PPP Control Protocol Number, Direction и необязательный текст UTF-8.
Но атрибут не заменял Result/Error Code. Стандарт требовал использовать их вместе. Туннельный результат и PPP-наблюдение могли дополнять или даже ставить вопросы друг к другу. Сведение их в одну «причину» уничтожило бы происхождение данных.
Диагностика не получила права управлять
Mandatory должен был быть равен нулю. Узел, не понимающий расширение, мог проигнорировать его и всё же обработать отключение. Неравномерное внедрение наблюдаемости не ломало основную функцию.
Атрибут предназначался только для информации и журналирования. Он не должен был влиять ни на туннель, ни на PPP-сеанс. Существующая машина состояний совершала действие; узел сообщал локальное наблюдение; дальнейшее расследование формировало вывод. Одно поле не объединяло эти три полномочия.
Hidden разрешалось установить, а RFC 3193 позже описал защиту L2TP при помощи IPsec. Защищённый канал укрепляет доказательство отправителя, целостности и конфиденциальности. Он не превращает локальную интерпретацию отправителя в полную причинную модель. Подлинное высказывание может оставаться ошибочным или неполным.
Направление принадлежало рассказчику
Direction 0 означал глобальную ошибку, 1 — «у peer», 2 — «локально». Точка отсчёта — узел, сформировавший AVP. Если сборщик заменяет local на «оператор», а peer на «клиент», он добавляет коммерческие роли. Если он заменяет их на «виновник» и «пострадавший», он уже выносит несуществующий приговор.
При нормальном завершении направление показывало, кто отправил LCP Terminate-Request. Для обязательного шифрования или обратного вызова — кто требовал возможность и кто отказал. При выборе аутентификации — были ли локальные методы отклонены peer или локальная система не принимала методы, запрошенные peer. Отказ может быть корректным соблюдением политики.
Control Protocol Number задавал предмет сообщения. Глобальные причины использовали ноль; LCP-ошибки ссылались на LCP; аутентификационные — на соответствующий протокол; NCP-ошибки — на сетевой управляющий протокол. При нескольких отказах NCP разрешалось несколько AVP. Если оставляли один, он описывал последний отказ. Последний не значит единственный и не значит главный.
Поэтому запись «код 16» почти бесполезна без peer, туннеля, сеанса, CDN, времени, защиты, протокола и направления. Официальный номер становится свидетельством только вместе с координатами.
Справочник симптомов не был экспертизой
Начальные значения от 0 до 20 включали отсутствие информации, административное отключение, нормальное завершение, тайм-аут машины состояний, отсутствие распознаваемых LCP-пакетов, возможную петлю по Magic Number, тайм-аут Echo Request, несогласованность Multilink PPP, отказ обязательного callback или шифрования, ошибки аутентификации, отсутствие доступных NCP и невозможность согласовать адреса.
Единые названия позволяли сравнивать реализации. Они не устраняли неоднозначность наблюдения. Echo timeout совместим с потерей, перегрузкой, фильтром обратного пути, мёртвым peer и зависшим локальным процессом. Ошибка аутентификации — исход протокольного обмена, а не разрешение раскрыть, какая часть учётных данных была верной.
RFC отдельно предостерёг от будущих различий, которые сообщали бы атакующему: имя верно, неверен только секрет. Детальная диагностика может стать оракулом при повторных попытках. Минимальная спецификация ограничивает не только сложность, но и разведывательную ценность ответа.
Необязательный UTF-8-текст также не становился каноническим оттого, что его можно показать. Он мог быть неточным, чувствительным или не дойти до пользователя. Оригинал, локализованная фраза и структурированный код должны сохраняться отдельно.
Совместимость сохранила прошлое, а не власть производителя
Черновой вариант использовал Vendor ID 43 компании 3Com. Получателям разрешили считать старую форму эквивалентной, но отправителям не рекомендовали её использовать. Старые сообщения оставались читаемыми, а новая передача переходила к назначению IETF.
Реестр IANA устанавливает, как декодировать число. Он не подтверждает распространённость реализации и не проверяет правдивость отдельного события. Peer создаёт сообщение; реестр стабилизирует язык; PPP-состояния и пакеты дают возможность его оспорить.
У расчёта была собственная квитанция
Причина могла помогать учёту и отладке. RADIUS tunnel accounting имел отдельные атрибуты для корреляции, Start, Interim, Stop и счётчиков. PPP-код может подсказать фон остановки, но не доказывает получение Stop, полноту счётчиков или правильность счёта.
Нужны и данные эксплуатации. Echo timeout сопоставляется со счётчиками, сигналами и проверками пути. Аутентификационная причина — с переходами состояний без распространения секретов. Нормальное завершение — с реальным LCP-обменом. Код открывает дело, но не закрывает его.
Пользовательское сообщение образует ещё одну цепочку: сформировано, доставлено, увидено. Наличие текста в AVP не подтверждает два последних шага.
Работающая система оставалась апелляцией
RFC 3145 стандартизировал ограниченное высказывание. Код и реестр принадлежат символическому уровню; CDN — зарегистрированное действие; PPP и пакеты — работа системы; учёт и опыт пользователя — последствия. Ни один уровень не вправе изображать остальные.
Современные системы часто получают reason, удаляют автора и направление, делают удобную фразу и называют её глобальной причиной инцидента. Документ 2001 года был осторожнее. Причина пересекала туннель. Право определять реальность вместе с ней не передавалось.
Источники
- Текст RFC 3145
- Карточка RFC 3145
- RFC 3145 в HTML
- История документа
- RFC 2661 — L2TP
- RFC 1661 — PPP
- RFC 2119 — Нормативные слова
- RFC 2279 — UTF-8
- Параметры L2TP IANA
- RFC 3193 — Защита L2TP через IPsec
- RFC 3931 — L2TP версии 3
- RFC 2867 — Учёт туннелей RADIUS
- Приоритет работающего кода
- Слои реальности
- Минимальная исходная спецификация
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
