Введение

Протокол управления сетью

Протокол конфигурации сети (NETCONF) — это протокол управления сетью, разработанный и стандартизированный IETF. Он был разработан в рабочей группе NETCONF и опубликован в декабре 2006 года как RFC 4741, а затем пересмотрен в июне 2011 года и опубликован как RFC 6241. Спецификация протокола NETCONF является документом стандарта Internet Standards Track. NETCONF предоставляет механизмы для установки, изменения и удаления конфигурации сетевых устройств. Его операции реализуются поверх простого уровня удаленного вызова процедур (RPC). Протокол NETCONF использует кодирование данных на основе языка разметки XML как для конфигурационных данных, так и для сообщений протокола. Протокольные сообщения обмениваются поверх защищенного транспортного протокола. Протокол NETCONF концептуально можно разделить на четыре уровня:

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

История

IETF разработала Простой протокол управления сетью (SNMP) в конце 1980-х годов, и он оказался очень популярным протоколом управления сетью. В начале XXI века стало очевидно, что, вопреки первоначальным намерениям, SNMP использовался не для конфигурирования сетевого оборудования, а преимущественно для мониторинга сети. В июне 2002 года Совет по архитектуре Интернета и ключевые участники сообщества по управлению сетями IETF встретились с операторами сетей для обсуждения сложившейся ситуации. Результаты этой встречи задокументированы в RFC 3535. Выяснилось, что каждый оператор сети в основном использовал собственный, отличный от других, интерфейс командной строки (CLI) для настройки своих устройств. Этот интерфейс обладал рядом характеристик, которые нравились операторам, включая его текстовый формат, в отличие от кодировки BER, используемой в SNMP. Кроме того, многие производители оборудования не предоставляли возможности полной настройки своих устройств через SNMP. Поскольку операторы обычно предпочитали использовать скрипты для управления своими устройствами, они обнаружили, что CLI SNMP имеет ряд недостатков. Наиболее заметным был непредсказуемый характер вывода данных. Содержание и форматирование вывода могли изменяться непредсказуемым образом. Примерно в то же время компания Juniper Networks использовала подход к управлению сетью на основе XML. Этот подход был представлен в IETF и распространен среди широкого сообщества. В совокупности эти два события привели к тому, что в мае 2003 года IETF создала рабочую группу NETCONF. На эту рабочую группу была возложена задача разработки протокола конфигурации сети, который бы лучше соответствовал потребностям операторов сети и производителей оборудования. Первая версия базового протокола NETCONF была опубликована в декабре 2006 года как RFC 4741. В последующие годы были опубликованы различные расширения (уведомления в RFC 5277 в июле 2008 года, частичные блокировки в RFC 5717 в декабре 2009 года, настройки по умолчанию в RFC 6243 в июне 2011 года, системные уведомления в RFC 6470 в феврале 2012 года, контроль доступа в RFC 6536 в марте 2012 года). Пересмотренная версия базового протокола NETCONF была опубликована в июне 2011 года как RFC 6241.

Содержание

Содержание операций NETCONF представляет собой корректно сформированный XML. Большая часть содержимого относится к управлению сетью. Впоследствии была добавлена поддержка кодирования в формате JavaScript Object Notation (JSON). Рабочая группа NETMOD завершила работу над определением "удобного для человека" языка моделирования для определения семантики операционных данных, данных конфигурации, уведомлений и операций, который называется YANG. YANG определен в RFC 6020 (версия 1) и RFC 7950 (версия 1.1) и сопровождается "Общими типами данных YANG", описанными в RFC 6991. Летом 2010 года рабочая группа NETMOD была переформирована для работы над базовыми моделями конфигурации (система, интерфейс и маршрутизация), а также над обеспечением совместимости с языком моделирования SNMP.