Описание тега ietf-netconf

Протокол NETCONF определяет простой механизм удаленного вызова процедур, с помощью которого можно управлять сетевым устройством, получать информацию о данных конфигурации, а также выгружать новые данные конфигурации и управлять ими. Используйте этот тег для вопросов, связанных с протоколом NETCONF (любой версии) и инструментами, которые его используют.

Протокол NETCONF позволяет устройству предоставлять полный формальный интерфейс прикладного программирования (API). Приложения могут использовать этот простой API для отправки и получения полных и частичных наборов данных конфигурации.

На момент написания были опубликованы две версии протокола: NETCONF 1.0 и 1.1. Первая версия была опубликована как RFC4741, а позже была отменена RFC6241. Обе версии все еще находятся в обращении.

Протокол использует парадигму удаленного вызова процедур (RPC). Клиент кодирует RPC в XML и отправляет его на сервер, используя безопасный сеанс с установлением соединения. Сервер отвечает ответом, закодированным в XML. Содержимое как запроса, так и ответа полностью описывается в XML DTD или XML-схемах, или в обоих, что позволяет обеим сторонам распознавать синтаксические ограничения, наложенные на обмен.

Типичный обмен между клиентом и сервером будет выглядеть так:

<rpc message-id="101"
     xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
     xmlns:ex="http://example.net/content/1.0"
     ex:user-id="fred">
  <get/>
</rpc>

<rpc-reply message-id="101"
     xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
     xmlns:ex="http://example.net/content/1.0"
     ex:user-id="fred">
  <data>
    <!-- contents here... -->
  </data>
</rpc-reply>

Протокол концептуально разделен на несколько уровней:

         Layer                 Example
    +-------------+      +-----------------+      +----------------+
(4) |   Content   |      |  Configuration  |      |  Notification  |
    |             |      |      data       |      |      data      |
    +-------------+      +-----------------+      +----------------+
           |                       |                      |
    +-------------+      +-----------------+              |
(3) | Operations  |      |  <edit-config>  |              |
    |             |      |                 |              |
    +-------------+      +-----------------+              |
           |                       |                      |
    +-------------+      +-----------------+      +----------------+
(2) |  Messages   |      |     <rpc>,      |      | <notification> |
    |             |      |   <rpc-reply>   |      |                |
    +-------------+      +-----------------+      +----------------+
           |                       |                      |
    +-------------+      +-----------------------------------------+
(1) |   Secure    |      |  SSH, TLS, BEEP/TLS, SOAP/HTTP/TLS, ... |
    |  Transport  |      |                                         |
    +-------------+      +-----------------------------------------+
  1. Уровень Secure Transport обеспечивает безопасную и надежную передачу сообщений между клиентом и сервером. SSH - наиболее часто используемый протокол для этого уровня NETCONF, за которым следует TLS. RFC6242 и RFC7589 описывают, как они используются в качестве безопасного транспорта NETCONF.
  2. Уровень сообщений обеспечивает механизм кодирования вызовов удаленных процедур (RPC) и уведомлений.
  3. Уровень операций определяет набор операций базового протокола для получения и редактирования данных конфигурации.
  4. Уровень содержимого состоит из данных конфигурации и данных уведомлений.

Хотя RFC не указывает, как Content а также OperationsПри моделировании слоев был разработан (первоначально) специальный язык моделирования для NETCONF, называемый YANG (дополнительную информацию см. в теге ietf-netmod-yang).

Базовые операции NETCONF стандартизированы и состоят из:

  • получить
  • get-config
  • изменить конфигурацию
  • копировать конфигурацию
  • удалить конфигурацию
  • замок
  • разблокировать
  • закрытое заседание
  • kill-session
  • подтверждать
  • совершить
  • подтверждено-совершить
  • отменить фиксацию
  • создать подписку *
  • get-schema *
  • частичная блокировка *
  • частичная разблокировка *

* указано в отдельном RFC

Узнайте больше о NETCONF здесь:

(также источники большей части контента на этой странице)