Кратко

  • RFC 5381 описала реальную разработку NETCONF поверх SOAP с генерацией Java-кода, отдельной логикой оборудования и нестандартной корреляцией сессии через cookie.
  • Позднейший статус Historic и освобождение портов характеризуют публичный договор, но не доказывают исчезновение частных реализаций, скопированных WSDL и состояния в закрытых сетях.

Реестр завершил только свою часть

RFC 9900 позже объявила транспорты NETCONF поверх SOAP и BEEP историческими и освободила связанные номера портов. Существующая статья BTW о RFC 9900 уже принадлежит границе между авторитетом реестра и фактическим удалением на конечной системе. Она правильно не выводит отсутствие локального сервиса из публичного освобождения номера.

RFC 5381 позволяет сделать следующий шаг. Даже если старый endpoint найден, его имя и порт не объясняют, какой договор он исполняет. Реализация могла использовать WSDL из RFC 4743, но переносить идентификатор NETCONF-сессии в HTTP cookie. Сам документ говорит, что такое альтернативное binding не взаимодействует с реализацией, соответствующей RFC 4743.

Следовательно, обнаружить listener недостаточно. Нужно обнаружить семантику состояния.

Археология начинается с входов генератора

В описанном проекте Apache Axis создавал клиентские stubs и серверные skeletons из WSDL и XML Schema. Появлялись классы для hello, get-config, edit-config и общей binding. Серверный каркас разворачивался в servlet-контейнере, а разработчики дописывали функции NETCONF.

Для расследования спустя годы важны не только исходники приложения. Нужны точные WSDL и XSD, версия Axis, параметры WSDL2Java, библиотеки, deployment descriptors, ручные изменения сгенерированных файлов и среда Tomcat. Без них невозможно установить, что было нормативным входом, а что появилось как локальное решение.

Основной WSDL, по тексту RFC, даже не содержал элемента service. Дополнительный файл задавал endpoint и импортировал binding. Модели функций оборудования добавлялись отдельными схемами. Одна папка с названием netconf может поэтому содержать несколько поколений договора.

Хеши файлов и происхождение сборки становятся evidence, а не архивной аккуратностью.

Cookie был активным правилом, а не остаточным мусором

RFC 4743 связывала состояние NETCONF-сессии с постоянным транспортным соединением. Реализация RFC 5381 выбрала cookie, потому что HTTP-серверы часто обрабатывают запросы независимо. После hello оборудование записывало session-id и в NETCONF-элемент, и в заголовок. NMS сохранял значение и повторял его. После close-session оно удалялось.

Если сегодня обнаружен такой cookie, его нельзя автоматически удалить как устаревший декор. Возможно, именно он соединяет запрос с состоянием сервера. Но его нельзя и считать доказательством корректной стандартной сессии. Нужно выяснить, как система ведёт себя при разрыве TCP, переносе запроса на другой backend, несовпадении XML и HTTP, повторе старого значения и аварийном завершении.

Частное правило может быть одновременно необходимо старой паре и несовместимо с внешним миром. Поэтому вывод требует карантина и эксперимента, а не слепого включения или удаления.

Доступный сервис может быть незавершённым

RFC 5381 различает top-down и bottom-up. В первом случае описание предшествует коду и поддерживает общий контракт. Во втором сервис пишется первым, а WSDL генерируется после; это быстрее, но труднее для межвендорной совместимости.

Даже top-down skeleton остаётся шаблоном. Его можно скомпилировать и развернуть до того, как добавлены все функции оборудования. HTTP может ответить, SOAP — разобрать оболочку, NETCONF — сформировать reply, а требуемого изменения всё ещё не быть.

При инвентаризации старой системы нужны отдельные доказательства: endpoint принимает соединение; TLS устанавливает личность; SOAP передаёт содержимое; NETCONF согласует capabilities и сессию; политика разрешает RPC; datastore меняется; устройство реализует конфигурацию; независимое наблюдение видит результат.

Сканирование порта закрывает только первый пункт.

Защищённый канал не восстанавливает полномочия

Документ требует TLS для аутентификации и шифрования SOAP-транспорта. Это помогает установить, кто соединялся и была ли защищена передача. Старое доверенное свидетельство, однако, не объясняет текущие полномочия субъекта. Сертификат мог пережить роль, команду и назначение устройства.

TLS также не выбирает между соединением и cookie как владельцем сессии. Не доказывает применение datastore и не свидетельствует о результате в сети. При восстановлении старой системы особенно опасно принять сохранившуюся криптографическую работоспособность за действующее административное разрешение.

Примечание IESG добавляло, что поддержка только SOAP без как минимум SSH не соответствовала тогдашнему набору требований NETCONF. Частный endpoint мог быть защищён и полезен, но оставаться неполным относительно общего профиля.

Вывод из эксплуатации — это доказательная процедура

RFC 6241 и RFC 6242 обновили базовый NETCONF и транспорт SSH. Публичная траектория понятна. Локальная требует ответа на вопросы, которых нет в реестре: кто ещё вызывает старый endpoint, какие объекты firewall на него ссылаются, где лежат stubs, какой cookie поддерживает состояние, какие устройства принимают команды и какой путь замены проверен.

Дисциплина running code у Heng Lu требует наблюдать фактическое исполнение. Для исторического management stack это означает не включать его без контекста, но и не удалять до построения карты зависимостей. Сначала идентифицировать, затем ограничить, проверить замену и только потом завершить состояние.

Публичный документ может стать Historic. Частная власть менять оборудование не исчезает от смены метки.

Источники