RFC 7258 Pervasive Monitoring Is an Attack

Internet Engineering Task Force (IETF)                        S. Farrell
Request for Comments: 7258                        Trinity College Dublin
BCP: 188                                                   H. Tschofenig
Category: Best Current Practice                                 ARM Ltd.
ISSN: 2070-1721                                                 May 2014

Всеобъемлющий мониторинг является атакой

Pervasive Monitoring Is an Attack

PDF

Тезисы

Всеобъемлющий мониторинг является технической атакой, которую следует, по возможности, подавлять уже на этапе разработки протоколов IETF.

Статус документа

Этот документ относится к категории «Обмен опытом» (Best Current Practice).

Документ является результатом работы IETF1 и представляет согласованное мнение сообщества IETF. Документ был подвергнут открытому обсуждению и одобрен для публикации IESG2. Дополнительная информация о документах BCP представлена в разделе 2 документа RFC 5741.

Информация о текущем статусе документа, обнаруженных ошибках и способах обратной связи приведена на странице http://www.rfc-editor.org/info/rfc7258.

Авторские права

Авторские права (Copyright (c) 2014) принадлежат IETF Trust и лицам, указанным в качестве авторов документа. Все права защищены.

Этот документ является субъектом прав и ограничений, перечисленных в BCP 78 и IETF Trust Legal Provisions и относящихся к документам IETF (http://trustee.ietf.org/license-info), на момент публикации данного документа. Прочтите упомянутые документы внимательно, поскольку в них описаны права и ограничения, относящиеся к данному документу. Фрагменты программного кода, включенные в этот документ, распространяются в соответствии с упрощенной лицензией BSD, как указано в параграфе 4.e документа Trust Legal Provisions, без каких-либо гарантий (как указано в Simplified BSD License).

1. Всеобъемлющий мониторинг — широко распространенная атака на приватность

Всеобъемлющий мониторинг (PM3) — широко распространенное (и зачастую скрытное) наблюдение путем сбора протокольных образцов, включая содержимое данных приложений или метаданные протоколов (например, заголовки). Активное или пассивное «прослушивание» (wiretap) и анализ трафика (например, поиск корреляций и синхронизации или измерение размера пакетов) или «взлом» (subverting) криптографических ключей, применяемых для защиты протоколов, также могут быть частью всеобъемлющего мониторинга. PM отличается отсутствием избирательности и очень широким охватом, но не создает новых типов технических опасностей.

С технической точки зрения сообщества IETF PM представляет собой атаку на приватность пользователей и организаций в сети Internet. Сообщество IETF решительно заявляет, что PM является атакой, которую следует по возможности ослаблять уже на уровне разработки протоколов, чтобы сделать мониторинг более дорогостоящим или неосуществимым. Всеобъемлющий мониторинг на пленарной технической сессии конференции IETF в ноябре 2013 года [IETF88Plenary], а также активно обсуждался в почтовых конференциях IETF. Данный документ выражает согласованное мнение сообщества IETF и обосновывает техническую природу PM.

Термин «атака» (attack) употребляется здесь в техническом смысле, который несколько отличается от общепринятого толкования этого слова в английском языке. В общепринятой трактовке атака представляет собой агрессивное действие, предпринимаемое противником для принуждения атакуемой стороны к исполнению воли атакующего. Здесь этот термин служит обозначает вмешательство в процесс коммуникационного взаимодействия без согласия его участников. При атаке может менять содержимое информационного обмена, выполняться запись содержимого или каких-либо характеристик коммуникаций, а также сопоставление с другими коммуникационными событиями, раскрывающее информацию, которую взаимодействующие стороны не были намерены раскрывать. Мониторинг PM может оказывать и другие влияния, нарушающие намерения взаимодействующих сторон. Более полное определение термина «атака» приведено в [RFC4949]. Термин атака используется здесь в единственном числе, хотя на практике PM может представлять собой множество скоординированных атак.

В частности, атака в техническом смысле не включает никаких предположений о намерениях атакующего. Мотивом организации PM может быть нецелевое наблюдение со стороны государства, законные, но ущемляющие приватность других действия коммерческих структур, а также незаконные действия криминальных структур. Используемые для реализации PM методы на зависят от мотивов организатора. Таким образом, мы не может защититься от злоумышленников, позволяя кому-либо выполнять мониторинг, поскольку выполняемые для него действия не зависят от целей мониторинга. Следовательно, мотивы не имеют значения для подавления PM в протоколах IETF.

2. IETF будет бороться с всеобъемлющим мониторингом

Подавление (Mitigation) — технический термин, не предполагающий возможность полного предотвращения или существенно осложнить атаку. Протоколы, препятствующие PM не предотвратят атаку, но смогут существенно ослабить угрозы (см. график на странице 24 RFC 4949, где показана связь между терминами «атака» и «угроза»). Подавление может существенно повысить стоимость атаки и осложнить ее сокрытие или упростить обнаружение.

Стандарты IETF уже включают механизмы для защиты коммуникаций Internet и в [RFC3552] приведены рекомендации по использованию этих механизмов при разработке протоколов. Но эти стандарты в основном не связаны с PM, конфиденциальностью метаданных протоколов, противодействием анализу трафика или минимизацией данных. В любом случае остается некоторый объем связанных с приватностью данных, которые неизбежно раскрываются протоколами. По мере развития технологий методы, которые раньше были доступны только при очень хорошем финансировании, получают более широкое распространение. Следовательно, подавление PM является защитой от широкого класса похожих атак.

Следовательно, настало время пересмотреть стандарты в части безопасности и приватности. IETF будет работать над техническими аспектами подавления PM, как это делается для устранения протокольных уязвимостей. Способы, с помощью которых в протоколах IETF будет подавляться PM, будут меняться со временем, по мере развития технологий подавления и разработки новых методов атак, которые не описаны здесь.

От разработчиков спецификаций IETF требуется способность описать, как они учитывали возможность PM и, если атаки применимы к публикуемой работе, способность предложить соответствующие решения для подавления таких атак. Это не означает необходимости включения в документы IETF нового раздела «Вопросы всеобъемлющего мониторинга». Это означает, что при возникновении вопроса о возможности всеобъемлющего мониторинга, относящегося к публикуемой работе, не него был дан четкий и недвусмысленный ответ.

В частности, архитектурные решения, включая выбор для использования уже имеющихся технологий, могут оказывать существенное влияние на уязвимость протокола для PM. Разработчикам спецификаций IETF, следовательно, требуется принимать во внимание вопросы подавления PM при выборе архитектурных решений. Получение адекватного и своевременного обзора архитектурных решений, включая вопрос о целесообразности мер подавления PM, может иметь важное значение. Последующий пересмотр принятых ранее архитектурных решений обойдется значительно дороже.

Хотя PM признан атакой, могут существовать некоторые формы мониторинга, формально соответствующие определению PM, но не представляющие собой атаки и способные приносить пользу (например, функции сетевого управления для мониторинга пакетов или потоков, а также механизмы предотвращения спама, просматривающие содержимое электронной почты). Некоторые варианты мониторинга могут даже послужить частью процесса подавления PM (например, прозрачность сертификатов [RFC6962] включает мониторинг инфраструктуры PKI4, позволяющий обнаруживать некоторые методы атак PM). Однако очевидна возможность использования механизмов мониторинга для организации PM, поэтому эти вопросы требуют внимательного рассмотрения в процессе разработки протоколов. Потеря управляемости сетей в результате подавления PM является неприемлемым результатом, но игнорирование PM противоречило бы описанному в этом документе соглашению. Со временем должен быть найден разумный баланс по мере развертывания реальных образцов.

Отметим, что IETF, как разрабатывающая стандарты организация, не контролирует реализацию или развертывание выпущенных спецификаций (хотя среди участников IETF имеется множество разработчиков реализаций) и не стандартизует все уровни стека протоколов. Кроме того, не технические (например, юридические или политические) аспекты подавления всеобъемлющего мониторинга не входят в сферу деятельности IETF. Широкое сообщество Internet должно сделать шаг вперед в решении проблемы PM, если есть желание решить ее полностью.

В качестве заключения отметим, что современные возможности позволяют организовать мониторинг содержимого и метаданных в сети Internet, масштабы которого раньше было просто невозможно представить. Этот всеобъемлющий мониторинг является атакой на приватность Internet. IETF будет стремиться к разработке спецификаций, позволяющих смягчить влияние таких атак.

3. Замечания по процессу

В прошлом связанные с архитектурой заявления такого типа (например, [RFC1984] и [RFC2804]) публиковались от имени IESG5 и IAB6. Однако с момента публикации упомянутых документов IETF и IAB разделили «потоки» своих публикаций, как описано в [RFC4844] и [RFC5741]. Данный документ был инициирован после обсуждения в IESG и IAB, но публикуется, как согласованное мнение IETF для того, чтобы корректно отразить согласованную точку зрения IETF в целом.

4. Вопросы безопасности

Этот документ целиком посвящен приватности. Дополнительную информацию о связях между угрозами безопасности и приватности можно найти в [RFC6973]. Параграф 5.1.1 в [RFC6973] посвящен конкретному рассмотрению наблюдения, как комбинированной угрозы безопасности и приватности.

5. Благодарности

Благодарим участников пленарной технической секции IETF 88 за их отклики. Отдельная благодарность за полезные приложения и комментарии Jari Arkko, Fred Baker, Marc Blanchet, Tim Bray, Scott Brim, Randy Bush, Brian Carpenter, Benoit Claise, Alissa Cooper, Dave Crocker, Spencer Dawkins, Avri Doria, Wesley Eddy, Adrian Farrel, Joseph Lorenzo Hall, Phillip Hallam-Baker, Ted Hardie, Sam Hartmann, Paul Hoffman, Bjoern Hoehrmann, Russ Housley, Joel Jaeggli, Stephen Kent, Eliot Lear, Barry Leiba, Ted Lemon, Subramanian Moonesamy, Erik Nordmark, Pete Resnick, Peter Saint-Andre, Andrew Sullivan, Sean Turner, Nicholas Weaver, Stefan Winter и Lloyd Wood. Спасибо также всем тем, кто считает, что внес свои предложения в части повышения уровня защиты и сохранения приватности в Internet, а также всем, кто комментировал эти вопросы в разных почтовых конференциях IETF типа ietf@ietf.org и perpass@ietf.org.

6. Литература

[IETF88Plenary] IETF, «IETF 88 Plenary Meeting Materials», November 2013, <http://www.ietf.org/proceedings/88/>.

[RFC1984] IAB, IESG, Carpenter, B., and F. Baker, «IAB and IESG Statement on Cryptographic Technology and the Internet», RFC 1984, August 1996.

[RFC2804] IAB and IESG, «IETF Policy on Wiretapping», RFC 2804, May 2000.

[RFC3552] Rescorla, E. and B. Korver, «Guidelines for Writing RFC Text on Security Considerations», BCP 72, RFC 3552, July 2003.

[RFC4844] Daigle, L. and Internet Architecture Board, «The RFC Series and RFC Editor», RFC 4844, July 2007.

[RFC4949] Shirey, R., «Internet Security Glossary, Version 2», RFC 4949, August 2007.

[RFC5741] Daigle, L., Kolkman, O., and IAB, «RFC Streams, Headers, and Boilerplates», RFC 5741, December 2009.

[RFC6962] Laurie, B., Langley, A., and E. Kasper, «Certificate Transparency», RFC 6962, June 2013.

[RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., Morris, J., Hansen, M., and R. Smith, «Privacy Considerations for Internet Protocols», RFC 6973, July 2013.


Адреса авторов

Stephen Farrell

Trinity College Dublin

Dublin 2

Ireland

Phone: +353-1-896-2354

EMail: stephen.farrell@cs.tcd.ie

Hannes Tschofenig

ARM Ltd.

6060 Hall in Tirol

Austria

EMail: Hannes.tschofenig@gmx.net

URI: http://www.tschofenig.priv.at

Перевод на русский язык

Николай Малых

nmalykh@gmail.com

1Internet Engineering Task Force.

2Internet Engineering Steering Group.

3Pervasive Monitoring.

4Public Key Infrastructure — инфраструктура обмена открытыми ключами.

5Internet Engineering Steering Group.

6Internet Architecture Board.




RFC 7223 A YANG Data Model for Interface Management

Internet Engineering Task Force (IETF)                      M. Bjorklund
Request for Comments: 7223                                Tail-f Systems
Category: Standards Track                                       May 2014
ISSN: 2070-1721

A YANG Data Model for Interface Management

Модель данных YANG для управления интерфейсом

PDF

Тезисы

В этом документе определена модель данных YANG для управления сетевыми интерфейсами. Предполагается добавление (augment) расширений для конкретных типов интерфейсов к определенной здесь базовой модели. Модель включает данные конфигурации и состояния (информация о состоянии и счетчики статистики).

Статус документа

Документ относится к категории Internet Standards Track.

Документ является результатом работы IETF1 и представляет согласованный взгляд сообщества IETF. Документ прошел открытое обсуждение и был одобрен для публикации IESG2. Не все одобренные IESG документы претендуют на статус Internet Standard (см. раздел 2 в RFC 5741).

Информацию о текущем статусе документа, ошибках и способах обратной связи можно найти по ссылке http://www.rfc-editor.org/info/rfc7223.

Авторские права

Авторские права (Copyright (c) 2014) принадлежат IETF Trust и лицам, указанным в качестве авторов документа. Все права защищены.

Этот документ является субъектом прав и ограничений, перечисленных в BCP 78 и IETF Trust Legal Provisions и относящихся к документам IETF (http://trustee.ietf.org/license-info), на момент публикации данного документа. Прочтите упомянутые документы внимательно, поскольку в них описаны права и ограничения, относящиеся к данному документу. Фрагменты программного кода, включенные в этот документ, распространяются в соответствии с упрощенной лицензией BSD, как указано в параграфе 4.e документа Trust Legal Provisions, без каких-либо гарантий (как указано в Simplified BSD License).

Оглавление

Исключено в версии HTML.

1. Введение

Этот документ определяет модель данных YANG [RFC6020] для управления сетевыми интерфейсами. Предполагается, что базовая модель будет дополнена (augment) моделями данных для конкретных типов интерфейсов.

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

Модель включает данные конфигурации и состояния (информация о состоянии и счетчики статистики).

1.1. Терминология

Ключевые слова необходимо (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не нужно (SHALL NOT), следует (SHOULD), не следует (SHOULD NOT), рекомендуется (RECOMMENDED), не рекомендуется (NOT RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе должны интерпретироваться в соответствии с BCP 14 [RFC2119].

Ниже приведены определения используемых в документе терминов.

system-controlled interface – управляемый системой интерфейс

Интерфейс называют управляемым системой (system-controlled), если система создает или удаляет интерфейс независимо от того, был ли он явно настроен. Примерами являются интерфейсы, представляющий физические компоненты, которые могут добавляться в систему или удаляться из нее (например, линейные платы или подключаемые в процессе работы беспроводные интерфейсы). Управляемые системой интерфейсы могут появляться при включении той или иной функциональности (например, loopback-интерфейс при включении стека IP).

user-controlled interface – управляемый пользователем интерфейс

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

Ниже приведен список используемых терминов из [RFC6241].

  • client — клиент;

  • configuration data — данные конфигурации;

  • server — сервер;

  • state data — данные состояния.

Ниже приведен список используемых терминов из [RFC6020].

  • augment — дополнение;

  • data model — модель данных;

  • data node — узел данных;

  • presence container — контейнер присутствия.

1.2. Диаграммы деревьев

В этом документе применяется упрощенное графическое представление данных. Назначение символов описано ниже.

  • Ключи списков указываются в квадратных скобках [].

  • Сокращения перед именами узлов задают режим доступа — rw для данных конфигурации (чтение и запись), ro для данных состояния (только чтение).

  • Символ ? после узла данных указывает необязательный узел, ! — контейнер присутствия, * — список или лист-список.

  • В круглых скобках указываются узлы выбора (choice) и вариантов (case), последние также маркируются двоеточием (:).

  • Троеточие (…) указывает пропущенное содержимое субдерева.

2. Цели

В этом разделе описаны некоторые из целей разработки модели, представленной в разделе 5.

  • Ясно, что существующие реализации будут отображать описанную здесь модель на свои фирменные, естественные модели данных. Для облегчения этого модель данных должна быть простой.

  • Модель данных должна подходить для новых реализаций без отображения на естественную модель.

  • Ссылки на интерфейсы должны быть как можно проще, предпочтительно с использованием одного leafref.

  • Отображение на ifIndex [RFC2863], используемое протоколом SNMP3 для указания интерфейсов, должно быть четким.

  • Модель должна поддерживать уровни интерфейсов — как (1) простые, где один интерфейс работает поверх единственного другого, так и (2) более сложные, где один интерфейс может быть результатом агрегирования N других интерфейсов или N интерфейсов могут мультиплексироваться в один.

  • Модель данных должна поддерживать представление предварительно подготовленной конфигурации интерфейса, т. е. возможность настройки конфигурации для отсутствующего в системе физического интерфейса. В устройствах, поддерживающих динамическое добавление и удаление физических интерфейсов рекомендуется также поддерживать предварительную настройку конфигурации интерфейса.

  • Модель данных должна поддерживать как физические, так и логические интерфейсы.

  • В модель данных следует включать доступные только для чтения счетчики, обеспечивающие сбор статистики переданных и принятых октетов и байтов, числа пакетов, принятых с ошибками, а также пакетов, которые не были переданы по причине ошибок.

3. Модель данных интерфейса

Этот документ определяет модуль YANG ietf-interfaces, структура которого показана ниже.

      +--rw interfaces
      |  +--rw interface* [name]
      |     +--rw name                        string
      |     +--rw description?                string
      |     +--rw type                        identityref
      |     +--rw enabled?                    boolean
      |     +--rw link-up-down-trap-enable?   enumeration
      +--ro interfaces-state
         +--ro interface* [name]
            +--ro name               string
            +--ro type               identityref
            +--ro admin-status       enumeration
            +--ro oper-status        enumeration
            +--ro last-change?       yang:date-and-time
            +--ro if-index           int32
            +--ro phys-address?      yang:phys-address
            +--ro higher-layer-if*   interface-state-ref
            +--ro lower-layer-if*    interface-state-ref
            +--ro speed?             yang:gauge64
            +--ro statistics
               +--ro discontinuity-time    yang:date-and-time
               +--ro in-octets?            yang:counter64
               +--ro in-unicast-pkts?      yang:counter64
               +--ro in-broadcast-pkts?    yang:counter64
               +--ro in-multicast-pkts?    yang:counter64
               +--ro in-discards?          yang:counter32
               +--ro in-errors?            yang:counter32
               +--ro in-unknown-protos?    yang:counter32
               +--ro out-octets?           yang:counter64
               +--ro out-unicast-pkts?     yang:counter64
               +--ro out-broadcast-pkts?   yang:counter64
               +--ro out-multicast-pkts?   yang:counter64
               +--ro out-discards?         yang:counter32
               +--ro out-errors?           yang:counter32

3.1. Списки интерфейсов

Представленная в документе модель данных использует плоский список интерфейсов, каждый из которых указывается именем. Кроме того, каждый интерфейс имеет обязательный лист type.

Модуль iana-if-type [RFC7224] определяет отождествления YANG для типов интерфейсов в поддерживаемом IANA реестре «ifType definitions».

Имеется один список настроенных интерфейсов (/interfaces/interface) и отдельный список рабочих состояний интерфейсов (/interfaces-state/interface).

Предполагается, что модели данных для конкретных типов дополнят списки интерфейсов и возможно будут использовать лист type, чтобы сделать дополнения условными.

В качестве примера возможного дополнения для конкретного типа интерфейса рассмотрим приведенный ниже фрагмент кода YANG. Более полный пример приведен в Приложении A.

     import interfaces {
         prefix "if";
     }
     import iana-if-type {
       prefix ianaift;
     }

     augment "/if:interfaces/if:interface" {
         when "if:type = 'ianaift:ethernetCsmacd'";

         container ethernet {
             leaf duplex {
                 ...
             }
         }
     }

Для управляемых системой интерфейсов name является зависимым от устройства именем интерфейса. Не являющийся конфигурационным (config false) список «/interfaces-state/interface» содержит все имеющиеся на устройстве интерфейсы.

Если устройство поддерживает произвольное именование управляемых пользователем интерфейсов, сервер NETCONF4 анонсирует свойство arbitrary-names. Если устройство не анонсирует это свойство, имена управляемых пользователем интерфейсов должны соответствовать схеме именования для устройства. Способ получения клиентом информации о схемах именования таких устройств выходит за рамки документа. Примеры приведены в приложениях E.1 и E.2.

Когда система создает управляемый ею интерфейс, она пытается применить конфигурацию из /interfaces/interface с именем нового интерфейса. Если такой конфигурации не найдено или заданный в конфигурации тип не соответствует типу реального интерфейса, система создает интерфейс без применения явной конфигурации.

При создании управляемого пользователем интерфейса имя этого интерфейса определяет конфигурация.

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

3.2. Указание интерфейсов

Интерфейс указывается именем, которое уникально в рамках сервера. Это свойство фиксируется в определениях типов (typedef) interface-ref и interface-state-ref, которые другим модулям YANG следует применять, когда нужно указать настраиваемый или используемый в работе интерфейс, соответственно.

3.3. Уровни интерфейсов

Не существует общего механизма настройки интерфейса так, чтобы он размещался «поверх» некого другого интерфейса. Предполагается, что модели для конкретных типов интерфейсов будут определять свои узлы данных для уровней интерфейсов с помощью типов interface-ref для указания нижележащих уровней.

Ниже приведен пример модели с такими узлами. Более полный пример представлен в Приложении B.

     import interfaces {
         prefix "if";
     }
     import iana-if-type {
       prefix ianaift;
     }

     augment "/if:interfaces/if:interface" {
         when "if:type = 'ianaift:ieee.8023adLag'";

         leaf-list slave-if {
             type if:interface-ref;
             must "/if:interfaces/if:interface[if:name = current()]"
                + "/if:type = 'ianaift:ethernetCsmacd'" {
                 description
                     "Ведомый (slave) интерфейс должен иметь тип 
                      'ethernetCsmacd'.";
             }
         }
         // Другие параметры настройки связки, время восстановления и пр.
     }

Хотя параметры уровней настраиваются в моделях для конкретных типов интерфейсов, два базовых leaf-list (higher-layer-if и lower-layer-if) представляют доступную только для чтения иерархию уровней интерфейсов.

4. Связь с IF-MIB

Если устройство реализует IF-MIB [RFC2863], каждая запись списка /interfaces-state/interface обычно отображается на один элемент ifEntry. Лист if-index должен содержать ifIndex соответствующего элемента ifEntry.

В большинстве случаев name из записи /interfaces-state/interface отображается на ifName. База IF-MIB позволяет двум разным ifEntry иметь общее имя ifName. Поддерживающие такую возможность устройства, которые соответствуют также определенной в этом документе модели данных, не могут иметь взаимно-однозначного отображения между листом name и ifName.

Указанное в конфигурации описание (description) интерфейса традиционно отображается некоторыми реализациями в ifAlias. Этот документ разрешает такие отображения, но рекомендует разработчикам учитывать различия в пространстве значений и постоянстве этих объектов. Подробности приведены в определении листа description представленного в разделе 5 модуля YANG.

IF-MIB определяет также открытый для записи объект ifPromiscuousMode. Поскольку агенты SNMP обычно не реализуют этот объект как конфигурационный, он не отображается в модуль ietf-interfaces.

Объект ifMtu из IF-MIB не отображается в модуль ietf-interfaces. Предполагается, что модули YANG для конкретных типов интерфейсов будут представлять MTU с помощью дополнения модели ietf-interfaces.

В IF-MIB имеется множество счетчиков, существующих в 32-битовом и 64-битовом варианте. 64-битовые счетчики были добавлены для поддержки интерфейсов со скоростью выше 20000000 бит/с. Современные реализации обычно поддерживают такие интерфейсы, поэтому модель данных включает лишь 64-битовые счетчики. Отметим, что NETCONF и SNMP могут различаться по частоте обращения к этим счетчикам. Например, многие реализации SNMP кэшируют значения счетчиков в течение некоторого времени.

Объекты ifDescr и ifConnectorPresent из IF-MIB не отображаются в модуль ietf-interfaces.

Ниже приведены таблицы сопоставления узлов данных YANG и объектов IF-MIB.

Узлы YANG для данных состояния и соответствующие объекты IF-MIB.

Узел данных YANG в /interfaces-state/interface

Объект IF-MIB

name

ifName

type

ifType

admin-status

ifAdminStatus

oper-status

ifOperStatus

last-change

ifLastChange

if-index

ifIndex

link-up-down-trap-enable

ifLinkUpDownTrapEnable

phys-address

ifPhysAddress

higher-layer-if and lower-layer-if

ifStackTable

speed

ifSpeed and ifHighSpeed

discontinuity-time

ifCounterDiscontinuityTime

in-octets

ifHCInOctets

in-unicast-pkts

ifHCInUcastPkts

in-broadcast-pkts

ifHCInBroadcastPkts

in-multicast-pkts

ifHCInMulticastPkts

in-discards

ifInDiscards

in-errors

ifInErrors

in-unknown-protos

ifInUnknownProtos

out-octets

ifHCOutOctets

out-unicast-pkts

ifHCOutUcastPkts

out-broadcast-pkts

ifHCOutBroadcastPkts

out-multicast-pkts

ifHCOutMulticastPkts

out-discards

ifOutDiscards

out-errors

ifOutErrors

YANG Config Data Nodes and Related IF-MIB Objects

Узел данных YANG в /interfaces/interface

Объект IF-MIB

description

ifAlias

5. Модуль YANG

Этот модуль YANG импортирует определения типов (typedef) из [RFC6991].

   <CODE BEGINS> file "ietf-interfaces@2014-05-08.yang"

   module ietf-interfaces {

     namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
     prefix if;

     import ietf-yang-types {
       prefix yang;
     }

     organization
       "IETF NETMOD (NETCONF Data Modeling Language) Working Group";

     contact
       "WG Web:   <http://tools.ietf.org/wg/netmod/> 
        WG List:  <mailto:netmod@ietf.org> 

        WG Chair: Thomas Nadeau
                  <mailto:tnadeau@lucidvision.com> 

        WG Chair: Juergen Schoenwaelder
                  <mailto:j.schoenwaelder@jacobs-university.de> 

        Editor:   Martin Bjorklund
                  <mailto:mbj@tail-f.com>"; 

     description
       "Этот модуль содержит набор определений YANG для управления
        сетевыми интерфейсами.

        Авторские права (Copyright (c) 2014) принадлежат IETF Trust 
        и лицам, указанным как авторы кода. Все права защищены.

        Распространение и использование в исходной и двоичной форме
        с изменениями или без них разрешается в соответствии с условиями,
        указанными в упрощенной лицензии BSD, изложенной в разделе 4.c
        Правового положения IETF Trust применительно к документам IETF
        (http://trustee.ietf.org/license-info). 

        Эта версия модуля YANG является частью RFC 7223, где
        правовые аспекты выражены более полно.";

     revision 2014-05-08 {
       description
         "Первый выпуск.";
       reference
         "RFC 7223: A YANG Data Model for Interface Management";
     }

     /*
      * Определения типов
      */

     typedef interface-ref {
       type leafref {
         path "/if:interfaces/if:interface/if:name";
       }
       description
         "Этот тип применяется моделями данных, которым нужно 
          указывать настроенные интерфейсы.";
     }

     typedef interface-state-ref {
       type leafref {
         path "/if:interfaces-state/if:interface/if:name";
       }
       description
         "Этот тип применяется моделями данных, которым нужно 
          указывать работающие интерфейсы.";
     }

     /*
      * Отождествления
      */

     identity interface-type {
       description
         "Базовое отождествление, из которого выводятся конкретные типы.";
     }

     /*
      * Возможности
      */

     feature arbitrary-names {
       description
         "Это свойство показывает, что управляемые пользователем интерфейсы
          могут иметь произвольные имена.";
     }

     feature pre-provisioning {
       description
         "Это свойство показаывает, что устройство поддерживает подготовленные
          заранее конфигурации интерфейсов, т. е. можно настроить интерфейс,
          которого еще нет в системе.";
     }

     feature if-mib {
       description
         "Это свойство указывает поддержку устройством IF-MIB.";
       reference
         "RFC 2863: The Interfaces Group MIB";
     }

     /*
      * Узлы конфигурационных данных
      */

     container interfaces {
       description
         "Конфигурационные параметры интерфейса.";
       list interface {
         key "name";

         description
           "Список настроенных на устройстве интерфейсов.

            Рабочее состояние интерфейса доступно в списке
            /interfaces-state/interface. Если конфигурация управляемого
            системой интерфейса не может использоваться системой
            (например, установленное оборудование не соответствует типу
            интерфейса), конфигурация не применяется к управляемому 
            системой интерфейсу из списка /interfaces-state/interface.
            Если конфигурация управляемого пользователем интерфейса не
            может применяться системой, настроенный интерфейс не 
            включается в список /interfaces-state/interface.";

        leaf name {
           type string;
           description
             "Имя интерфейса.

              Устройство МОЖЕТ ограничивать разрешенные для этого листа
              значения, возможно в зависимости от типа интерфейса.

              Для управляемых системой интерфейсов этот лист содержит
              зависимое от устройства имя интерфейса. Список
              /interfaces-state/interface (config false) содержит 
              имеющиеся в устройстве интерфейсы.

              Когда клиент пытается создать конфигурацию для управляемого
              системой интерфейса, которого нет в списке 
              /interfaces-state/interface, сервер МОЖЕТ отвергнуть
              запрос, если система не поддерживает предварительной
              настройки интерфейсов или имя указывает интерфейс, который
              не может присутствовать в системе. Сервер NETCONF ДОЛЖЕН
              вернуть отклик rpc-error с error-tag 'invalid-value'.

              Если устройство поддерживает предварительную настройку
              интерфейсов, анонсируется свойство 'pre-provisioning'.

              Если устройство разрешает произвольные имена для управляемых
              пользователем интерфейсов, анонсируется свойство 
              'arbitrary-names'.

              Когда управляемый пользователем интерфейс создается системой,
              он указывается с этим именем в /interface-state/interface.";
         }

         leaf description {
           type string;
           description
             "Текстовое описание интерфейса.

              Реализация сервера МОЖЕТ отображать этот лист на объект MIB 
              ifAlias. Такие реализации должны использовать тот или иной
              механизм для обработки различий в размере и разрешенных
              символах для этого листа и ifAlias. Определение таких
              механизмов выходит за рамки документа.

              Поскольку ifAlias определяется для сохранения в
              энергонезависимой памяти, реализация MIB ДОЛЖНА отображать 
              ifAlias на значение 'description' в постоянном хранилище.

              В частности, если устройство поддерживает ':startup', при
              считывании ifAlias устройство ДОЛЖНО возвращать значение
              'description' из хранилища 'startup', а при записи значение
              ДОЛЖНО сохраняться в хранилищах 'running' и 'startup'.
              Отметим, что реализация должна решить, следует ли изменить
              только лист в хранилище 'startup' или неявно выполнить
              copy-config из хранилища 'running' в хранилище 'startup'.

              Если устройство не поддерживает ':startup', значение ifAlias 
              ДОЛЖНО отображаться в лист 'description' хранилища 'running'.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifAlias";
         }
         leaf type {
           type identityref {
             base interface-type;
           }
           mandatory true;
           description
             "Тип интерфейса.

              При создании записи для интерфейса сервер МОЖЕТ 
              инициализировать лист type действующим значением, например, 
              если можно вывести тип из имени интерфейса.

              Если клиент пытается установить для типа интерфейса значение,
              которое никогда не используется системой (например, тип не
              поддерживается или не соответствует имени), сервер ДОЛЖЕН
              отвергнуть запрос. Сервер NETCONF ДОЛЖЕН возвратить отклик
              rpc-error с error-tag 'invalid-value' в таком случае.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifType";
         }

         leaf enabled {
           type boolean;
           default "true";
           description
             "Этот лист содержит настроенное, желаемое состояние интерфейса.

              Системы, реализующие IF-MIB, используют значение этого листа в
              хранилище running для установки в IF-MIB.ifAdminStatus 
              значения up или down после инициализации ifEntry как описано в
              RFC 2863.

              Изменение этого листа в хранилище running отражается в
              ifAdminStatus, но при изменении ifAdminStatus с помощью 
              SNMP этот лист не меняется.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
         }

         leaf link-up-down-trap-enable {
           if-feature if-mib;
           type enumeration {
             enum enabled {
               value 1;
             }
             enum disabled {
               value 2;
             }
           }
           description
             "Указывает следует ли генерировать уведомления SNMP 
              linkUp/linkDown для этого интерфейса.

              Если этот узел не настроен, значение enabled применяется
              сервером для интерфейсов, которые не работают поверх другого
              интерфейса (т. е. нет записей lower-layer-if), и disabled 
              в остальных случаях.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifLinkUpDownTrapEnable";
         }
       }
     }

     /*
      * Узлы данных состояния
      */

     container interfaces-state {
       config false;
       description
         "Узлы данных для операционных состояний интерфейсов.";

       list interface {
         key "name";
         description
           "Список интерфейсов в устройстве.
            Системно-управляемые интерфейсы, созданные системой, всегда
            присутствуют в этом списке, независимо от их конфигурации.";

         leaf name {
           type string;
           description
             "Имя интерфейса.

              Реализация сервера МОЖЕТ отображать этот лист на объект 
              MIB ifName. Такие реализации должны использовать тот или
              иной механизм для обработки различий в размере и разрешенных
              символах для этого листа и ifName. Определение механизмов
              выходит за рамки этого документа.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifName";
         }

         leaf type {
           type identityref {
             base interface-type;
           }
           mandatory true;
           description
             "Тип интерфейса.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifType";
         }

         leaf admin-status {
           if-feature if-mib;
           type enumeration {
             enum up {
               value 1;
               description
                 "Готов пропускать пакеты.";
             }
             enum down {
               value 2;
               description
                 "Не готов пропускать пакеты и не находится в режиме теста.";
             }

             enum testing {
               value 3;
               description
                 "Находится в режиме тестирования.";
             }
           }
           mandatory true;
           description
             "Желаемое состояние интерфейса.

              Этот лист имеет такую же семантику, как ifAdminStatus.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
         }

         leaf oper-status {
           type enumeration {
             enum up {
               value 1;
               description
                 "Готов пропускать пакеты.";
             }
             enum down {
               value 2;
               description
                 "Интерфейс не пропускает никаких пакетов.";
             }
             enum testing {
               value 3;
               description
                 "В режиме тестирования. Не может пропускать рабочих 
                  пакетов.";
             }
             enum unknown {
               value 4;
               description
                 "Состояние не может быть определено по каким-то причинам.";
             }
             enum dormant {
               value 5;
               description
                 "Ожидание внешнего события.";
             }
             enum not-present {
               value 6;
               description
                 "Отсутствует тот или иной (обычно аппаратный) компонент.";
             }

             enum lower-layer-down {
               value 7;
               description
                 "Не работает вследствие состояния нижележащего интерфейса.";
             }
           }
           mandatory true;
           description
             "Текущее операционное состояние интерфейса.

              Этот лист имеет такую же семантику, как ifOperStatus.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifOperStatus";
         }

         leaf last-change {
           type yang:date-and-time;
           description
             "Время перехода интерфейса в текущее операционное состояние.
              Если текущее состояние началось до предыдущей реинициализации
              локальной подсистемы сетевого управления, этого узла не будет.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifLastChange";
         }

         leaf if-index {
           if-feature if-mib;
           type int32 {
             range "1..2147483647";
           }
           mandatory true;
           description
             "Значение ifIndex для ifEntry, представленной этим интерфейсом.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifIndex";
         }

         leaf phys-address {
           type yang:phys-address;
           description
             "Адрес интерфейса на его протокольном подуровне. Например,
              для интерфейса 802.x этот объект обычно содержит MAC5-адрес
              Зависящие от среды модули должны определять порядок битов
              и байтов, а также формат значения для этого объекта. Для
              интерфейсов, не имеющих такого адреса (например, 
              последовательная линия), этого узла не будет.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
         }

         leaf-list higher-layer-if {
           type interface-state-ref;
           description
             "Список ссылок на интерфейсы, работающие поверх этого
              интерфейса.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifStackTable";
         }


         leaf-list lower-layer-if {
           type interface-state-ref;
           description
             "Список ссылок на интерфейсы под этим интерфейсом.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifStackTable";
         }

         leaf speed {
           type yang:gauge64;
           units "bits/second";
           description
               "Оценка текущей пропускной способности интерфейса в бит/с.
                Для интерфейсов, не меняющих пропускной способности или
                не позволяющих точно оценить ее, в этом узле следует
                указывать номинальную пропускную способность. Для 
                интерфейсов, не использующих концепцию пропускной 
                способности, этот узел не присутствует.";
           reference
             "RFC 2863: The Interfaces Group MIB - ifSpeed, ifHighSpeed";
         }

         container statistics {
           description
             "Набор связанных с интерфейсом объектов статистики.";

           leaf discontinuity-time {
             type yang:date-and-time;
             mandatory true;
             description
               "Время последнего события, когда один или несколько 
                счетчиков интерфейса подверглись разрыву. Если таких
                событий не было с момента последней реиинициализации
                локальной подсистемы управления, указывается время с
                момента этой реинициализации.";
           }

           leaf in-octets {
             type yang:counter64;
             description
               "Общее число октетов, принятых на интерфейсе с учетом
                символов кадрирования.

                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
           }

           leaf in-unicast-pkts {
             type yang:counter64;
             description
               "Число пакетов, доставленных этим подуровнем на 
                вышележащий (под)уровень, которые не были направлены по 
                широковещательному или групповому адресу этого подуровня.

                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
           }

           leaf in-broadcast-pkts {
             type yang:counter64;
             description
               "Число пакетов, доставленных этим подуровнем на 
                вышележащий (под)уровень, которые были направлены по 
                широковещательному адресу этого подуровня.
                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB - ifHCInBroadcastPkts";
           }
           leaf in-multicast-pkts {
             type yang:counter64;
             description
               "Число пакетов, доставленных этим подуровнем на 
                вышележащий (под)уровень, которые были направлены по 
                групповому адресу этого подуровня. Для протокола
                уровня MAC учитываются групповые (Group) и
                функциональные (Functional) адреса.

                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB -
                          ifHCInMulticastPkts";
           }

           leaf in-discards {
             type yang:counter32;
             description
               "Число входящих пакетов, которые несмотря на отсутствие
                ошибок были выбраны для отбрасывания с целью предотвратить
                их доставку протоколу вышележащего уровня. Одной из 
                возможных причин отбрасывания является освобождение буферов.

                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB - ifInDiscards";
           }

           leaf in-errors {
             type yang:counter32;
             description
               "Для ориентированных на пакеты интерфейсов - число входящих
                пакетов с ошибками, препятствующими передаче протоколу 
                вышележащего уровня. Для ориентированных на символы 
                интерфейсов и интерфейсов с фиксированным размером блоков -
                число входящих блоков передачи с ошибками, препятствующими 
                доставке протоколу вышележащего уровня.

                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB - ifInErrors";
           }

           leaf in-unknown-protos {
             type yang:counter32;
             description
               "Для ориентированных на пакеты интерфейсов - число принятых
                через интерфейс пакетов, которые были отброшены по причине
                неизвестного или не поддерживаемого протокола. Для символьно-
                ориентированных интерфейсов и интерфейсов с фиксированным 
                размером блока и поддержкой мультиплексирования протоколов - 
                число принятых через интерфейс блоков передачи, которые были 
                отброшены по причине неизвестного или не поддерживаемого 
                протокола. Для интерфейсов, не поддерживающих 
                мультиплексирование протоколов, этот счетчик не присутствует.

                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
           }

           leaf out-octets {
             type yang:counter64;
             description
               "Общее число переданных интерфейсом октетов, включая символы
                кадрирования.

                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
           }

           leaf out-unicast-pkts {
             type yang:counter64;
             description
               "Общее число пакетов, для которых протокол вышележащего
                уровня запросил передачу по адресу, не являющемуся
                широковещательным или групповым адресам для этого 
                подуровня, включая отброшенные и не переданные пакеты.

                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
           }

           leaf out-broadcast-pkts {
             type yang:counter64;
             description
               "Общее число пакетов, для которых протокол вышележащего
                уровня запросил передачу, направленных по
                широковещательным адресам для этого подуровня,
                включая отброшенные и не переданные пакеты.

                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB -
                          ifHCOutBroadcastPkts";
           }

           leaf out-multicast-pkts {
             type yang:counter64;
             description
                "Общее число пакетов, для которых протокол вышележащего
                уровня запросил передачу, направленных по
                групповым адресам для этого подуровня, включая
                отброшенные и не переданные пакеты. Для протокола уровня
                MAC это включает групповые и функциональные адреса.

                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB -
                          ifHCOutMulticastPkts";
           }

           leaf out-discards {
             type yang:counter32;
             description
               "Число исходящих пакетов, которые были выбраны для 
                отбрасывания, несмотря на отсутствие препятствующих
                передаче ошибок. Возможной причиной такого отбрасывания
                является освобождение буферного пространства.

                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
           }

           leaf out-errors {
             type yang:counter32;
             description
               "Для пакетно-ориентированных интерфейсов - число исходящих
                пакетов, которые не были переданы по причине ошибок. Для
                символьных интерфейсов и интерфейсов с постоянным размером
                блока - число блоков, не переданных из-за ошибок.

                Разрыв значения этого счетчика может происходить при
                реинициализации системы управления или иных событиях
                указанных временем 'discontinuity-time'.";
             reference
               "RFC 2863: The Interfaces Group MIB - ifOutErrors";
           }
         }
       }
     }
   }

   <CODE ENDS>

6. Взаимодействие с IANA

Этот документ регистрирует URI в реестре «IETF XML Registry» [RFC3688]. В соответствии с форматом RFC 3688 выполнена приведенная ниже регистрация.

      URI: urn:ietf:params:xml:ns:yang:ietf-interfaces
      Registrant Contact: The IESG.
      XML: N/A, the requested URI is an XML namespace.

Документ регистрирует модуль YANG в реестре «YANG Module Names» [RFC6020].

      name:         ietf-interfaces
      namespace:    urn:ietf:params:xml:ns:yang:ietf-interfaces
      prefix:       if
      reference:    RFC 7223

7. Вопросы безопасности

Определенный в этом документе модуль YANG предназначен для доступа по протоколу NETCONF [RFC6241]. Нижним уровнем NETCONF является защищенный транспорт с обязательной поддержкой SSH [RFC6242]. Модель управления доступом NETCONF [RFC6536] обеспечивает способы ограничения доступа отдельным пользователям NETCONF заданным подмножеством всех доступных операций и содержимого NETCONF.

В модуле YANG имеется множество узлов данных, доступных для чтения, создания и удаления (например, с принятым по умолчанию config true). Эти узлы могут быть конфиденциальными или уязвимыми в некоторых сетевых средах. Операции записи (например, <edit-config>) в эти узлы без подобающей защиты могут оказывать негативное влияние на работу сети. Ниже перечислены субдеревья и узлы данных с указанием уязвимости.

/interfaces/interface

Этот список указывает настроенные в устройстве интерфейсы. Несанкционированный доступ к списку может вынуждать устройство игнорировать пакеты, которые оно должно принимать и обрабатывать.

/interfaces/interface/enabled

Этот лист управляет включением и выключением интерфейса. Несанкционированный доступ к списку может вынуждать устройство игнорировать пакеты, которые оно должно принимать и обрабатывать.

8. Благодарности

Авторы благодарят Alexander Clemm, Per Hedeland, Ladislav Lhotka, Juergen Schoenwaelder за полезные замечания.

9. Литература

9.1. Нормативные документы

[RFC2119] Bradner, S., «Key words for use in RFCs to Indicate Requirement Levels», BCP 14, RFC 2119, March 1997.

[RFC2863] McCloghrie, K. and F. Kastenholz, «The Interfaces Group MIB», RFC 2863, June 2000.

[RFC3688] Mealling, M., «The IETF XML Registry», BCP 81, RFC 3688, January 2004.

[RFC6020] Bjorklund, M., «YANG — A Data Modeling Language for the Network Configuration Protocol (NETCONF)», RFC 60206, October 2010.

[RFC6991] Schoenwaelder, J., «Common YANG Data Types», RFC 6991, July 2013.

9.2. Дополнительная литература

[RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. Bierman, «Network Configuration Protocol (NETCONF)», RFC 6241, June 2011.

[RFC6242] Wasserman, M., «Using the NETCONF Protocol over Secure Shell (SSH)», RFC 6242, June 2011.

[RFC6536] Bierman, A. and M. Bjorklund, «Network Configuration Protocol (NETCONF) Access Control Model», RFC 65367, March 2012.

[RFC7224] Bjorklund, M., «IANA Interface Type YANG Module», RFC 7224, May 2014.

Приложение A. Пример модуля для интерфейса Ethernet

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

   module ex-ethernet {
     namespace "http://example.com/ethernet";
     prefix "eth";

     import ietf-interfaces {
       prefix if;
     }
     import iana-if-type {
       prefix ianaift;
     }

     // Конфигурационные параметры для интерфейсов Ethernet 
     augment "/if:interfaces/if:interface" {
       when "if:type = 'ianaift:ethernetCsmacd'";

       container ethernet {
         choice transmission-params {
           case auto {
             leaf auto-negotiate {
               type empty;
             }
           }
           case manual {
             leaf duplex {
               type enumeration {
                 enum "half";
                 enum "full";
               }
             }

             leaf speed {
               type enumeration {
                 enum "10Mb";
                 enum "100Mb";
                 enum "1Gb";
                 enum "10Gb";
               }
             }
           }
         }
         // Другие параметры, относящиеся к Ethernet ...
       }
     }

     // Параметры рабочего состояния для интерфейсов Ethernet
     augment "/if:interfaces-state/if:interface" {
       when "if:type = 'ianaift:ethernetCsmacd'";

       container ethernet {
         leaf duplex {
           type enumeration {
             enum "half";
             enum "full";
           }
         }
         // Другие параметры, относящиеся к Ethernet ...
       }
     }
   }

Приложение B. Пример модуля для связки интерфейсов Ethernet

В этом приложении представлен пример определения уровней интерфейсов. Определен интерфейс связки Ethernet, объединяющей несколько интерфейсов Ethernet в один логический интерфейс.

   module ex-ethernet-bonding {
     namespace "http://example.com/ethernet-bonding";
     prefix "bond";

     import ietf-interfaces {
       prefix if;
     }
     import iana-if-type {
       prefix ianaift;
     }

     augment "/if:interfaces/if:interface" {
       when "if:type = 'ianaift:ieee8023adLag'";

       leaf-list slave-if {
         type if:interface-ref;
         must "/if:interfaces/if:interface[if:name = current()]"
            + "/if:type = 'ianaift:ethernetCsmacd'" {
           description
             "Ведомый (slave) интерфейс должен иметь тип 'ethernetCsmacd'.";
         }
       }
       leaf bonding-mode {
         type enumeration {
           enum round-robin;
           enum active-backup;
           enum broadcast;
         }
       }
       // Другие параметры конфигурации связки, время восстановления и пр.
     }
   }

Приложение C. Пример модуля для интерфейса VLAN

В этом приложении представлен пример определения интерфейса VLAN.

   module ex-vlan {
     namespace "http://example.com/vlan";
     prefix "vlan";

     import ietf-interfaces {
       prefix if;
     }
     import iana-if-type {
       prefix ianaift;
     }

     augment "/if:interfaces/if:interface" {
       when "if:type = 'ianaift:ethernetCsmacd' or
             if:type = 'ianaift:ieee8023adLag'";
       leaf vlan-tagging {
         type boolean;
         default false;
       }
     }

     augment "/if:interfaces/if:interface" {
       when "if:type = 'ianaift:l2vlan'";

       leaf base-interface {
         type if:interface-ref;
         must "/if:interfaces/if:interface[if:name = current()]"
            + "/vlan:vlan-tagging = 'true'" {
           description
             "На базовом интерфейсе должны быть разрешены теги VLAN.";
         }
       }
       leaf vlan-id {
         type uint16 {
           range "1..4094";
         }
         must "../base-interface" {
           description
             "При определении vlan-id должен быть указан базовый интерфейс.";
         }
       }
     }
   }

Приложение D. Пример отклика NETCONF <get>

В этом приложении дан пример отклика на запрос NETCONF <get> для устройства, реализующего приведенный выше пример модели данных.

   <rpc-reply
       xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
       message-id="101">
     <data>

       <interfaces
           xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"
           xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"
           xmlns:vlan="http://example.com/vlan">

         <interface>
           <name>eth0</name>
           <type>ianaift:ethernetCsmacd</type>
           <enabled>false</enabled>
         </interface>

         <interface>
           <name>eth1</name>
           <type>ianaift:ethernetCsmacd</type>
           <enabled>true</enabled>
           <vlan:vlan-tagging>true</vlan:vlan-tagging>
         </interface>

         <interface>
           <name>eth1.10</name>
           <type>ianaift:l2vlan</type>
           <enabled>true</enabled>
           <vlan:base-interface>eth1</vlan:base-interface>
           <vlan:vlan-id>10</vlan:vlan-id>
         </interface>

         <interface>
           <name>lo1</name>
           <type>ianaift:softwareLoopback</type>
           <enabled>true</enabled>
         </interface>

       </interfaces>

       <interfaces-state
           xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"
           xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">

         <interface>
           <name>eth0</name>
           <type>ianaift:ethernetCsmacd</type>
           <admin-status>down</admin-status>
           <oper-status>down</oper-status>
           <if-index>2</if-index>
           <phys-address>00:01:02:03:04:05</phys-address>
           <statistics>
             <discontinuity-time>
               2013-04-01T03:00:00+00:00
             </discontinuity-time>
             <!-- Здесь показаны счетчики -->
           </statistics>
         </interface>

         <interface>
           <name>eth1</name>
           <type>ianaift:ethernetCsmacd</type>
           <admin-status>up</admin-status>
           <oper-status>up</oper-status>
           <if-index>7</if-index>
           <phys-address>00:01:02:03:04:06</phys-address>
           <higher-layer-if>eth1.10</higher-layer-if>
           <statistics>
             <discontinuity-time>
               2013-04-01T03:00:00+00:00
             </discontinuity-time>
             <!-- Здесь показаны счетчики -->
           </statistics>
         </interface>

         <interface>
           <name>eth1.10</name>
           <type>ianaift:l2vlan</type>
           <admin-status>up</admin-status>
           <oper-status>up</oper-status>
           <if-index>9</if-index>
           <lower-layer-if>eth1</lower-layer-if>
           <statistics>
             <discontinuity-time>
               2013-04-01T03:00:00+00:00
             </discontinuity-time>
             <!-- Здесь показаны счетчики -->
           </statistics>
         </interface>

         <!-- Этот интерфейс не настроен -->
         <interface>
           <name>eth2</name>
           <type>ianaift:ethernetCsmacd</type>
           <admin-status>down</admin-status>
           <oper-status>down</oper-status>
           <if-index>8</if-index>
           <phys-address>00:01:02:03:04:07</phys-address>
           <statistics>
             <discontinuity-time>
               2013-04-01T03:00:00+00:00
             </discontinuity-time>
             <!-- Здесь показаны счетчики -->
           </statistics>
         </interface>

         <interface>
           <name>lo1</name>
           <type>ianaift:softwareLoopback</type>
           <admin-status>up</admin-status>
           <oper-status>up</oper-status>
           <if-index>1</if-index>
           <statistics>
             <discontinuity-time>
               2013-04-01T03:00:00+00:00
             </discontinuity-time>
             <!-- Здесь показаны счетчики -->
           </statistics>
         </interface>

       </interfaces-state>
     </data>
   </rpc-reply>

Приложение E. Примеры схем именования интерфейсов

В этом приложении приведены примеры стратегии развертывания.

В примерах используется модель данных ex-vlan (Приложение C) для показа настройки управляемых пользователем интерфейсов.

E.1. Маршрутизатор с ограничениями для имен интерфейсов

В этом примере маршрутизатор имеет 4 линейных платы с восемью портами на каждой. Гнезда для плат имеют физические номера от 0 до 3, а порты на каждой плате — от 0 до 7. Каждая плата имеет порты Fast Ethernet или Gigabit Ethernet.

Обусловленными устройством именами физических интерфейсов будут fastethernet-N/M или gigabitethernet-N/M.

Имена интерфейсов VLAN ограничены формой <physical-interface-name>.<subinterface-number>.

Предполагается, что схема именования известна оператору. Реализация автоматически инициализирует значение type в соответствии с именем интерфейса.

Сервер NETCONF не анонсирует возможность arbitrary-names в сообщении <hello>.

Оператор может настроить физический интерфейс, передавая команду <edit-config>, содержащую

     <interface nc:operation="create">
       <name>fastethernet-1/0</name>
     </interface>

При получении сервером такого запроса он будет устанавливать для листа type значение ianaift:ethernetCsmacd. Если клиент передаст команду <get-config> после приведенной выше команды <edit-config>, он получит

     <interface>
       <name>fastethernet-1/0</name>
       <type>ianaift:ethernetCsmacd</type>
     </interface>

Клиент может настроить интерфейс VLAN с помощью команды <edit-config>, содержащей

     <interface nc:operation="create">
       <name>fastethernet-1/0.10005</name>
       <type>ianaift:l2vlan</type>
       <vlan:base-interface>fastethernet-1/0</vlan:base-interface>
       <vlan:vlan-id>5</vlan:vlan-id>
     </interface>

Если клиент попытается изменить тип физического интерфейса командой <edit-config>, содержащей

     <interface nc:operation="merge">
       <name>fastethernet-1/0</name>
       <type>ianaift:tunnel</type>
     </interface>

сервер вернет ошибку invalid-value, поскольку новый тип не соответствует имени.

E.2. Маршрутизатор с произвольными именами интерфейсов

В этом примере маршрутизатор имеет 4 линейных платы с восемью портами на каждой. Гнезда для плат имеют физические номера от 0 до 3, а порты на каждой плате — от 0 до 7. Каждая плата имеет порты Fast Ethernet или Gigabit Ethernet.

Обусловленными устройством именами физических интерфейсов будут fastethernet-N/M или gigabitethernet-N/M.

Реализация не ограничивает управляемые пользователем имена. Это позволяет оператору более гибко применять конфигурации к разным интерфейсам. Однако это несколько усложняет отображение имен интерфейсов, найденных в других протоколах, на записи в конфигурации.

Сервер NETCONF анонсирует возможность arbitrary-names в сообщении <hello>.

Физические интерфейсы настраиваются в соответствии с приложением E.1.

Оператор может настроить интерфейс VLAN с помощью команды <edit-config>, содержащей

     <interface nc:operation="create">
       <name>acme-interface</name>
       <type>ianaift:l2vlan</type>
       <vlan:base-interface>fastethernet-1/0</vlan:base-interface>
       <vlan:vlan-id>5</vlan:vlan-id>
     </interface>

При необходимости оператор может перенести конфигурацию с именем acme-interface на другой физический интерфейс с помощью команды <edit-config>, содержащей

     <interface nc:operation="merge">
       <name>acme-interface</name>
       <vlan:base-interface>fastethernet-1/1</vlan:base-interface>
     </interface>

E.3. Коммутатор Ethernet с ограничениями для имен интерфейсов

В этом примере коммутатор Ethernet имеет множество портов, каждый из которых указывается простым номером.

Зависящие от устройства имена физических интерфейсов являются номерами, соответствующими номерам физических портов.

Оператор может настроить физический интерфейс с помощью команды <edit-config>, содержащей

     <interface nc:operation="create">
       <name>6</name>
     </interface>

Когда сервер получает такой запрос, он устанавливает для листа type значение ianaift:ethernetCsmacd. Если клиент выполнит команду <get-config> после показанной выше команды <edit-config>, он получит

     <interface>
       <name>6</name>
       <type>ianaift:ethernetCsmacd</type>
     </interface>

E.4. Типовой хост с ограничениями для имен интерфейсов

В этом примере обычный хост имеет интерфейсы, именуемые ядром. Система идентифицирует физические интерфейсы по именам, назначенным операционной системой.

Имена интерфейсов VLAN ограничены формой <physical-interface-name>:<vlan-number>.

Сервер NETCONF не анонсирует возможность arbitrary-names в сообщении <hello>.

Оператор может настроить интерфейс с помощью команды <edit-config>, содержащей

     <interface nc:operation="create">
       <name>eth8</name>
     </interface>

Когда сервер получает такой запрос, он устанавливает для листа type значение ianaift:ethernetCsmacd. Если клиент выполнит команду <get-config> после показанной выше команды <edit-config>, он получит

     <interface>
       <name>eth8</name>
       <type>ianaift:ethernetCsmacd</type>
     </interface>

Клиент может настроить интерфейс VLAN с помощью команды <edit-config>, содержащей

     <interface nc:operation="create">
       <name>eth8:5</name>
       <type>ianaift:l2vlan</type>
       <vlan:base-interface>eth8</vlan:base-interface>
       <vlan:vlan-id>5</vlan:vlan-id>
     </interface>

E.5. Типовой хост с произвольными именами интерфейсов

В этом примере обычный хост имеет интерфейсы, именуемые ядром. Система идентифицирует физические интерфейсы по именам, назначенным операционной системой.

Реализация не ограничивает управляемые пользователем имена. Это позволяет оператору более гибко применять конфигурации к разным интерфейсам. Однако это несколько усложняет отображение имен интерфейсов, найденных в других протоколах, на записи в конфигурации.

Сервер NETCONF анонсирует возможность arbitrary-names в сообщении <hello>.

Физические интерфейсы настраиваются как в приложении E.4.

Оператор может настроить интерфейс VLAN с помощью команды <edit-config>, содержащей

     <interface nc:operation="create">
       <name>acme-interface</name>
       <type>ianaift:l2vlan</type>
       <vlan:base-interface>eth8</vlan:base-interface>
       <vlan:vlan-id>5</vlan:vlan-id>
     </interface>

При необходимости оператор может перенести конфигурацию с именем acme-interface на другой физический интерфейс с помощью команды <edit-config>, содержащей

     <interface nc:operation="merge">
       <name>acme-interface</name>
       <vlan:base-interface>eth3</vlan:base-interface>
     </interface>

Адрес автора

Martin Bjorklund

Tail-f Systems

EMail: mbj@tail-f.com


Перевод на русский язык

Николай Малых

nmalykh@protocols.ru

1Internet Engineering Task Force.

2Internet Engineering Steering Group.

3Simple Network Management Protocol — простой протокол сетевого управления.

4Network Configuration Protocol — протокол настройки конфигурации сети.

5Media Access Control — управление доступом к среде передачи.

6В RFC 7950 определена новая версия языка моделирования YANG, не отменяющая данную. Прим. перев.

7Этот документ заменен RFC 8341. Прим. перев.




RFC7224 IANA Interface Type YANG Module

Internet Engineering Task Force (IETF)                      M. Bjorklund
Request for Comments: 7224                                Tail-f Systems
Category: Standards Track                                       May 2014
ISSN: 2070-1721

IANA Interface Type YANG Module

Модуль YANG для типов интерфейсов IANA

PDF

Тезисы

В этом документе представлен первый выпуск модуля YANG iana-if-type.

Статус документа

Документ относится к категории Internet Standards Track.

Документ является результатом работы IETF1 и представляет согласованный взгляд сообщества IETF. Документ прошел открытое обсуждение и был одобрен для публикации IESG2. Не все одобренные IESG документы претендуют на статус Internet Standard (см. раздел 2 в RFC 5741).

Информацию о текущем статусе документа, ошибках и способах обратной связи можно найти по ссылке http://www.rfc-editor.org/info/rfc7224.

Авторские права

Авторские права (Copyright (c) 2014) принадлежат IETF Trust и лицам, указанным в качестве авторов документа. Все права защищены.

Этот документ является субъектом прав и ограничений, перечисленных в BCP 78 и IETF Trust Legal Provisions и относящихся к документам IETF (http://trustee.ietf.org/license-info), на момент публикации данного документа. Прочтите упомянутые документы внимательно, поскольку в них описаны права и ограничения, относящиеся к данному документу. Фрагменты программного кода, включенные в этот документ, распространяются в соответствии с упрощенной лицензией BSD, как указано в параграфе 4.e документа Trust Legal Provisions, без каких-либо гарантий (как указано в Simplified BSD License).

Оглавление

Исключено в версии HTML.

1. Введение

Этот документ определяет первый выпуск модуля YANG iana-if-type с определениями типов интерфейсов.

Модуль iana-if-type отражает имеющийся реестр IANA «ifType definitions» [IFTYPE-IANA-REGISTRY]. Последняя версия модуля может быть загружена с сайта IANA.

При добавлении нового типа интерфейса в реестр «ifType definitions» агентство IANA будет обновлять IANAifType-MIB и модуль YANG iana-if-type.

2. Модуль YANG для поддерживаемых IANA типов интерфейсов

Этот модуль YANG импортирует отождествление interface-type из [RFC7223].

   <CODE BEGINS> file "iana-if-type.yang"

   module iana-if-type {
     namespace "urn:ietf:params:xml:ns:yang:iana-if-type";
     prefix ianaift;

     import ietf-interfaces {
       prefix if;
     }

     organization "IANA";
     contact
       "        Internet Assigned Numbers Authority

        Postal: ICANN
                4676 Admiralty Way, Suite 330
                Marina del Rey, CA 90292

        Tel:    +1 310 823 9358
        <mailto:iana@iana.org>";

     description
       "Этот модуль YANG определяет отождествления интерфейсов для
        зарегистрированных IANA типов.

        Этот модуль YANG поддерживается агентством IANA и отражает
        реестр 'ifType definitions'.

        Последнюю версию этот модуля YANG можно загрузить с сайта IANA.

        Запросы на новые значение следует направлять в IANA по адресу
        (iana@iana.org). 

        Авторские права (Copyright (c) 2014) принадлежат IETF Trust и
        лицам, указанным как авторы кода. Все права защищены.

        Распространение и использование в исходной и двоичной форме
        с изменениями или без них разрешается в соответствии с условиями,
        указанными в упрощенной лицензии BSD, изложенной в разделе 4.c
        Правового положения IETF Trust применительно к документам IETF
        (http://trustee.ietf.org/license-info). 

        Эта исходная версия модуля YANG является частью RFC 7224, где
        правовые аспекты выражены более полно.";
     reference
         "Реестр IANA 'ifType definitions'.
          <http://www.iana.org/assignments/smi-numbers>"; 

     revision 2014-05-08 {
       description
         "Первый выпуск.";
       reference
         "RFC 7224: IANA Interface Type YANG Module";
     }

     identity iana-interface-type {
       base if:interface-type;
       description
         "Это отождествление служит базой для всех типов интерфейсов,
          определенных в реестре 'ifType definitions'.";
     }
     identity other {
       base iana-interface-type;
     }
     identity regular1822 {
       base iana-interface-type;
     }
     identity hdh1822 {
       base iana-interface-type;
     }
     identity ddnX25 {
       base iana-interface-type;
     }
     identity rfc877x25 {
       base iana-interface-type;
       reference
         "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer";
     }
     identity ethernetCsmacd {
       base iana-interface-type;
       description
         "Для всех интерфейсов типа Ethernet, независимо от скорости,
          как указано в RFC 3635.";
       reference
         "RFC 3635 - Definitions of Managed Objects for the
                     Ethernet-like Interface Types";
     }
     identity iso88023Csmacd {
       base iana-interface-type;
       status deprecated;
       description
         "Отменено в 3635 с заменой на ethernetCsmacd(6).";
       reference
         "RFC 3635 - Definitions of Managed Objects for the
                     Ethernet-like Interface Types";
     }
     identity iso88024TokenBus {
       base iana-interface-type;
     }
     identity iso88025TokenRing {
       base iana-interface-type;
     }
     identity iso88026Man {
       base iana-interface-type;
     }
     identity starLan {
       base iana-interface-type;
       status deprecated;
       description
         "Отменено в 3635 с заменой на ethernetCsmacd(6).";
       reference
         "RFC 3635 - Definitions of Managed Objects for the
                     Ethernet-like Interface Types";
     }
     identity proteon10Mbit {
       base iana-interface-type;
     }
     identity proteon80Mbit {
       base iana-interface-type;
     }
     identity hyperchannel {
       base iana-interface-type;
     }
     identity fddi {
       base iana-interface-type;
       reference
         "RFC 1512 - FDDI Management Information Base";
     }
     identity lapb {
       base iana-interface-type;
       reference
         "RFC 1381 - SNMP MIB Extension for X.25 LAPB";
     }
     identity sdlc {
       base iana-interface-type;
     }
     identity ds1 {
       base iana-interface-type;
       description
         "DS1-MIB.";
       reference
         "RFC 4805 - Definitions of Managed Objects for the
                     DS1, J1, E1, DS2, and E2 Interface Types";
     }
     identity e1 {
       base iana-interface-type;
       status obsolete;
       description
         "Отменено, см. DS1-MIB.";
       reference
         "RFC 4805 - Definitions of Managed Objects for the
                     DS1, J1, E1, DS2, and E2 Interface Types";
     }
     identity basicISDN {
       base iana-interface-type;
       description
         "Больше не применяется. См. также RFC 2127.";
     }
     identity primaryISDN {
       base iana-interface-type;
       description
         "Больше не применяется. См. также RFC 2127.";
     }

     identity propPointToPointSerial {
       base iana-interface-type;
       description
         "Proprietary serial.";
     }
     identity ppp {
       base iana-interface-type;
     }
     identity softwareLoopback {
       base iana-interface-type;
     }
     identity eon {
       base iana-interface-type;
       description
         "CLNP по протоколу IP.";
     }
     identity ethernet3Mbit {
       base iana-interface-type;
     }
     identity nsip {
       base iana-interface-type;
       description
         "XNS по протоколу IP.";
     }
     identity slip {
       base iana-interface-type;
       description
         "Базовый интерфейс SLIP.";
     }
     identity ultra {
       base iana-interface-type;
       description
         "Ultra Technologies.";
     }
     identity ds3 {
       base iana-interface-type;
       description
         "DS3-MIB.";
       reference
         "RFC 3896 - Definitions of Managed Objects for the
                     DS3/E3 Interface Type";
     }
     identity sip {
       base iana-interface-type;
       description
         "SMDS, coffee.";
       reference
         "RFC 1694 - Definitions of Managed Objects for SMDS
                     Interfaces using SMIv2";
     }
     identity frameRelay {
       base iana-interface-type;
       description
         "Только DTE.";
       reference
         "RFC 2115 - Management Information Base for Frame Relay
                     DTEs Using SMIv2";
     }
     identity rs232 {
       base iana-interface-type;
       reference
         "RFC 1659 - Definitions of Managed Objects for RS-232-like
                     Hardware Devices using SMIv2";
     }
     identity para {
       base iana-interface-type;
       description
         "Параллельный порт.";
       reference
         "RFC 1660 - Definitions of Managed Objects for
                     Parallel-printer-like Hardware Devices using
                     SMIv2";
     }

     identity arcnet {
       base iana-interface-type;
       description
         "ARCnet.";
     }
     identity arcnetPlus {
       base iana-interface-type;
       description
         "ARCnet Plus.";
     }
     identity atm {
       base iana-interface-type;
       description
         "Ячейки ATM.";
     }
     identity miox25 {
       base iana-interface-type;
       reference
         "RFC 1461 - SNMP MIB extension for Multiprotocol
                     Interconnect over X.25";
     }
     identity sonet {
       base iana-interface-type;
       description
         "SONET или SDH.";
     }
     identity x25ple {
       base iana-interface-type;
       reference
         "RFC 2127 - ISDN Management Information Base using SMIv2";
     }
     identity iso88022llc {
       base iana-interface-type;
     }
     identity localTalk {
       base iana-interface-type;
     }
     identity smdsDxi {
       base iana-interface-type;
     }
     identity frameRelayService {
       base iana-interface-type;
       description
         "FRNETSERV-MIB.";
       reference
         "RFC 2954 - Definitions of Managed Objects for Frame
                     Relay Service";
     }
     identity v35 {
       base iana-interface-type;
     }
     identity hssi {
       base iana-interface-type;
     }
     identity hippi {
       base iana-interface-type;
     }
     identity modem {
       base iana-interface-type;
       description
         "Модем общего назначения.";
     }
     identity aal5 {
       base iana-interface-type;
       description
         "AAL5 для ATM.";
     }
     identity sonetPath {
       base iana-interface-type;
     }
     identity sonetVT {
       base iana-interface-type;
     }

     identity smdsIcip {
       base iana-interface-type;
       description
         "SMDS InterCarrier Interface.";
     }
     identity propVirtual {
       base iana-interface-type;
       description
         "Фирменный виртуальный/внутренний.";
       reference
         "RFC 2863 - The Interfaces Group MIB";
     }
     identity propMultiplexor {
       base iana-interface-type;
       description
         "Фирменное мультиплексирование.";
       reference
         "RFC 2863 - The Interfaces Group MIB";
     }
     identity ieee80212 {
       base iana-interface-type;
       description
         "100BaseVG.";
     }
     identity fibreChannel {
       base iana-interface-type;
       description
         "Fibre Channel.";
     }
     identity hippiInterface {
       base iana-interface-type;
       description
         "Интерфейсы HIPPI.";
     }
     identity frameRelayInterconnect {
       base iana-interface-type;
       status obsolete;
       description
         "Отменено с заменой на frameRelay(32) или frameRelayService(44).";
     }
     identity aflane8023 {
       base iana-interface-type;
       description
         "ATM Emulated LAN для 802.3.";
     }
     identity aflane8025 {
       base iana-interface-type;
       description
         "ATM Emulated LAN для 802.5.";
     }
     identity cctEmul {
       base iana-interface-type;
       description
         "Эмулируемое устройство в ATM.";
     }
     identity fastEther {
       base iana-interface-type;
       status deprecated;
       description
         "Отменено RFC 3635 с заменой на ethernetCsmacd(6).";
       reference
         "RFC 3635 - Definitions of Managed Objects for the
                     Ethernet-like Interface Types";
     }
     identity isdn {
       base iana-interface-type;
       description
         "ISDN и X.25.";
       reference
         "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN
                     in the Packet Mode";
     }

     identity v11 {
       base iana-interface-type;
       description
         "CCITT V.11/X.21.";
     }
     identity v36 {
       base iana-interface-type;
       description
         "CCITT V.36.";
     }
     identity g703at64k {
       base iana-interface-type;
       description
         "CCITT G703 при скорости 64 Кбит/с.";
     }
     identity g703at2mb {
       base iana-interface-type;
       status obsolete;
       description
         "Отменено, см.  DS1-MIB.";
     }
     identity qllc {
       base iana-interface-type;
       description
         "SNA QLLC.";
     }
     identity fastEtherFX {
       base iana-interface-type;
       status deprecated;
       description
         "Отменено RFC 3635 с заменой на ethernetCsmacd(6).";
       reference
         "RFC 3635 - Definitions of Managed Objects for the
                     Ethernet-like Interface Types";
     }
     identity channel {
       base iana-interface-type;
       description
         "Канал.";
     }
     identity ieee80211 {
       base iana-interface-type;
       description
         "Радио-диапазон.";
     }
     identity ibm370parChan {
       base iana-interface-type;
       description
         "Канал IBM System 360/370 OEMI.";
     }
     identity escon {
       base iana-interface-type;
       description
         "Соединение IBM Enterprise Systems.";
     }
     identity dlsw {
       base iana-interface-type;
       description
         "Коммутация на канальном уровне.";
     }
     identity isdns {
       base iana-interface-type;
       description
         "Интерфейс ISDN S/T.";
     }
     identity isdnu {
       base iana-interface-type;
       description
         "Интерфейс ISDN U.";
     }
     identity lapd {
       base iana-interface-type;
       description
         "Протокол доступа к каналу D.";
     }

     identity ipSwitch {
       base iana-interface-type;
       description
         "Коммутирующие объекыт IP.";
     }
     identity rsrb {
       base iana-interface-type;
       description
         "Мост Remote Source Route.";
     }
     identity atmLogical {
       base iana-interface-type;
       description
         "Логический порт ATM.";
       reference
         "RFC 3606 - Definitions of Supplemental Managed Objects
                     for ATM Interface";
     }
     identity ds0 {
       base iana-interface-type;
       description
         "Цифровой сигнал уровня 0.";
       reference
         "RFC 2494 - Definitions of Managed Objects for the DS0
                     and DS0 Bundle Interface Type";
     }
     identity ds0Bundle {
       base iana-interface-type;
       description
         "Группа ds0 на одном ds1.";
       reference
         "RFC 2494 - Definitions of Managed Objects for the DS0
                     and DS0 Bundle Interface Type";
     }
     identity bsc {
       base iana-interface-type;
       description
         "Бисинхронный протокол.";
     }
     identity async {
       base iana-interface-type;
       description
         "Асинхронный протокол.";
     }
     identity cnr {
       base iana-interface-type;
       description
         "Combat Net Radio.";
     }
     identity iso88025Dtr {
       base iana-interface-type;
       description
         "ISO 802.5r DTR.";
     }
     identity eplrs {
       base iana-interface-type;
       description
         "Ext Pos Loc Report Sys.";
     }
     identity arap {
       base iana-interface-type;
       description
         "Протокол удаленного доступа Appletalk.";
     }
     identity propCnls {
       base iana-interface-type;
       description
         "Фирменный протокол без организации соединений.";
     }
     identity hostPad {
       base iana-interface-type;
       description
         "Протокол CCITT-ITU X.29 PAD.";
     }

     identity termPad {
       base iana-interface-type;
       description
         "Объект CCITT-ITU X.3 PAD.";
     }
     identity frameRelayMPI {
       base iana-interface-type;
       description
         "Multiproto Interconnect по протоколу FR.";
     }
     identity x213 {
       base iana-interface-type;
       description
         "CCITT-ITU X213.";
     }
     identity adsl {
       base iana-interface-type;
       description
         "Асимметричная цифровая абонентская линия.";
     }
     identity radsl {
       base iana-interface-type;
       description
         "Цифровая абонентская линия с адаптацией скорости.";
     }
     identity sdsl {
       base iana-interface-type;
       description
         "Симметричная цифровая абонентская линия.";
     }
     identity vdsl {
       base iana-interface-type;
       description
         "Высокоскоростная цифровая абонентская линия.";
     }
     identity iso88025CRFPInt {
       base iana-interface-type;
       description
         "ISO 802.5 CRFP.";
     }
     identity myrinet {
       base iana-interface-type;
       description
         "Myricom Myrinet.";
     }
     identity voiceEM {
       base iana-interface-type;
       description
         "Прием и передача голоса.";
     }
     identity voiceFXO {
       base iana-interface-type;
       description
         "Голосовой интерфейс телефонной станции.";
     }
     identity voiceFXS {
       base iana-interface-type;
       description
         "Голосовой интерфейс телефонного оборудования.";
     }
     identity voiceEncap {
       base iana-interface-type;
       description
         "Инкапсуляция голоса.";
     }
     identity voiceOverIp {
       base iana-interface-type;
       description
         "Инкапсуляция голоса в IP.";
     }
     identity atmDxi {
       base iana-interface-type;
       description
         "ATM DXI.";
     }

     identity atmFuni {
       base iana-interface-type;
       description
         "ATM FUNI.";
     }
     identity atmIma {
       base iana-interface-type;
       description
         "ATM IMA.";
     }
     identity pppMultilinkBundle {
       base iana-interface-type;
       description
         "Связка каналов PPP Multilink.";
     }
     identity ipOverCdlc {
       base iana-interface-type;
       description
         "IBM ipOverCdlc.";
     }
     identity ipOverClaw {
       base iana-interface-type;
       description
         "Общий канал доступа к рабочим станциям IBM.";
     }
     identity stackToStack {
       base iana-interface-type;
       description
         "IBM stackToStack.";
     }
     identity virtualIpAddress {
       base iana-interface-type;
       description
         "IBM VIPA.";
     }
     identity mpc {
       base iana-interface-type;
       description
         "Поддержка многопротокольных каналов IBM.";
     }
     identity ipOverAtm {
       base iana-interface-type;
       description
         "IBM ipOverAtm.";
       reference
         "RFC 2320 - Definitions of Managed Objects for Classical IP
                     and ARP Over ATM Using SMIv2 (IPOA-MIB)";
     }
     identity iso88025Fiber {
       base iana-interface-type;
       description
         "ISO 802.5j Fiber Token Ring.";
     }
     identity tdlc {
       base iana-interface-type;
       description
         "Управление каналом данных IBM twinaxial.";
     }
     identity gigabitEthernet {
       base iana-interface-type;
       status deprecated;
       description
         "Отменено RFC 3635 с заменой на ethernetCsmacd(6).";
       reference
         "RFC 3635 - Definitions of Managed Objects for the
                     Ethernet-like Interface Types";
     }
     identity hdlc {
       base iana-interface-type;
       description
         "HDLC.";
     }

     identity lapf {
       base iana-interface-type;
       description
         "LAP F.";
     }
     identity v37 {
       base iana-interface-type;
       description
         "V.37.";
     }
     identity x25mlp {
       base iana-interface-type;
       description
         "Многоканальный протокол.";
     }
     identity x25huntGroup {
       base iana-interface-type;
       description
         "X25 Hunt Group.";
     }
     identity transpHdlc {
       base iana-interface-type;
       description
         "Прозрачный HDLC.";
     }
     identity interleave {
       base iana-interface-type;
       description
         "Канал с чередованием.";
     }
     identity fast {
       base iana-interface-type;
       description
         "Быстрый канал.";
     }
     identity ip {
       base iana-interface-type;
       description
         "IP (для APPN HPR в сетях IP).";
     }
     identity docsCableMaclayer {
       base iana-interface-type;
       description
         "Уровень CATV Mac.";
     }
     identity docsCableDownstream {
       base iana-interface-type;
       description
         "Нисходящий интерфейс CATV.";
     }
     identity docsCableUpstream {
       base iana-interface-type;
       description
         "Восходящий интерфейс CATV.";
     }
     identity a12MppSwitch {
       base iana-interface-type;
       description
         "Параллельный процессор Avalon.";
     }
     identity tunnel {
       base iana-interface-type;
       description
         "Интерфейс инкапсуляции.";
     }
     identity coffee {
       base iana-interface-type;
       description
         "Coffee pot.";
       reference
         "RFC 2325 - Coffee MIB";
     }

     identity ces {
       base iana-interface-type;
       description
         "Служба эмуляции устройств (каналов).";
     }
     identity atmSubInterface {
       base iana-interface-type;
       description
         "Субинтерфейс ATM.";
     }
     identity l2vlan {
       base iana-interface-type;
       description
         "Виртуальная ЛВС L2 с использованием 802.1Q.";
     }
     identity l3ipvlan {
       base iana-interface-type;
       description
         "Виртуальная ЛВС L3 с использованием IP.";
     }
     identity l3ipxvlan {
       base iana-interface-type;
       description
         "Виртуальная ЛВС L3 с использованием IPX.";
     }
     identity digitalPowerline {
       base iana-interface-type;
       description
         "IP через электросеть.";
     }
     identity mediaMailOverIp {
       base iana-interface-type;
       description
         "Multimedia-почта по протоколу IP.";
     }
     identity dtm {
       base iana-interface-type;
       description
         "Динамический синхронный режим передачи.";
     }
     identity dcn {
       base iana-interface-type;
       description
         "Сеть передачи данных.";
     }
     identity ipForward {
       base iana-interface-type;
       description
         "Интерфейс пересылки IP.";
     }
     identity msdsl {
       base iana-interface-type;
       description
         "Многоскоростной симметричный интерфейс DSL.";
     }
     identity ieee1394 {
       base iana-interface-type;
       description
         "Высокопроизводительная последовательная шина IEEE1394.";
     }
     identity if-gsn {
       base iana-interface-type;
       description
         "HIPPI-6400.";
     }
     identity dvbRccMacLayer {
       base iana-interface-type;
       description
         "MAC-уровень DVB-RCC.";
     }
     identity dvbRccDownstream {
       base iana-interface-type;
       description
         "Нисходящий канал DVB-RCC.";
     }

     identity dvbRccUpstream {
       base iana-interface-type;
       description
         "Восходящий канал DVB-RCC .";
     }
     identity atmVirtual {
       base iana-interface-type;
       description
         "Виртуальный интерфейс ATM.";
     }
     identity mplsTunnel {
       base iana-interface-type;
       description
         "Виртуальный интерфейс MPLS.";
     }
     identity srp {
       base iana-interface-type;
       description
         "Протокол пространственного разделения.";
     }
     identity voiceOverAtm {
       base iana-interface-type;
       description
         "Голос по протоколу ATM.";
     }
     identity voiceOverFrameRelay {
       base iana-interface-type;
       description
         " Голос по протоколу Frame Relay.";
     }
     identity idsl {
       base iana-interface-type;
       description
         "DSL через ISDN.";
     }
     identity compositeLink {
       base iana-interface-type;
       description
         "Интерфейс композитного канала Avici.";
     }
     identity ss7SigLink {
       base iana-interface-type;
       description
         "Сигнальный канал SS7.";
     }
     identity propWirelessP2P {
       base iana-interface-type;
       description
         "Беспроводный интерфейс Prop. P2P.";
     }
     identity frForward {
       base iana-interface-type;
       description
         "Интерфейс пересылки кадров.";
     }
     identity rfc1483 {
       base iana-interface-type;
       description
         "Многопротокольная поддержка на основе ATM AAL5.";
       reference
         "RFC 1483 - Multiprotocol Encapsulation over ATM
                     Adaptation Layer 5";
     }
     identity usb {
       base iana-interface-type;
       description
         "Интерфейс USB.";
     }
     identity ieee8023adLag {
       base iana-interface-type;
       description
         "Агрегат каналов IEEE 802.3ad.";
     }

     identity bgppolicyaccounting {
       base iana-interface-type;
       description
         "BGP Policy Accounting.";
     }
     identity frf16MfrBundle {
       base iana-interface-type;
       description
         "Многоканальный интерфейс FRF.16.";
     }
     identity h323Gatekeeper {
       base iana-interface-type;
       description
         "H323 Gatekeeper.";
     }
     identity h323Proxy {
       base iana-interface-type;
       description
         "Прокси H323 для голоса и видео.";
     }
     identity mpls {
       base iana-interface-type;
       description
         "MPLS.";
     }
     identity mfSigLink {
       base iana-interface-type;
       description
         "Многочастотный сигнальный канал.";
     }
     identity hdsl2 {
       base iana-interface-type;
       description
         "Высокоскоростной интерфейс DSL второго поколения.";
     }
     identity shdsl {
       base iana-interface-type;
       description
         "Многоскоростной интерфейс HDSL2.";
     }
     identity ds1FDL {
       base iana-interface-type;
       description
         "Канал данных (4 Кбит/с) в DS1.";
     }
     identity pos {
       base iana-interface-type;
       description
         "Пакетный интерфейс SONET/SDH.";
     }
     identity dvbAsiIn {
       base iana-interface-type;
       description
         "Вход DVB-ASI.";
     }
     identity dvbAsiOut {
       base iana-interface-type;
       description
         "Выход DVB-ASI.";
     }
     identity plc {
       base iana-interface-type;
       description
         "Связь по проводам питания.";
     }
     identity nfas {
       base iana-interface-type;
       description
         "Не связанная с оборудованием сигнализация.";
     }
     identity tr008 {
       base iana-interface-type;
       description
         "TR008.";
     }

     identity gr303RDT {
       base iana-interface-type;
       description
         "Удаленный цифровой терминал.";
     }
     identity gr303IDT {
       base iana-interface-type;
       description
         "Интегрированный цифровой терминал.";
     }
     identity isup {
       base iana-interface-type;
       description
         "ISUP.";
     }
     identity propDocsWirelessMaclayer {
       base iana-interface-type;
       description
         "Фирменный уровень Cisco MAC.";
     }
     identity propDocsWirelessDownstream {
       base iana-interface-type;
       description
         "Фирменный нисходящий интерфейс Cisco.";
     }
     identity propDocsWirelessUpstream {
       base iana-interface-type;
       description
         "Фирменный восходящий интерфейс Cisco.";
     }
     identity hiperlan2 {
       base iana-interface-type;
       description
         "HIPERLAN Type 2 Radio Interface.";
     }
     identity propBWAp2Mp {
       base iana-interface-type;
       description
         "PropBroadbandWirelessAccesspt2Multipt (использование
          этого значения для интерфейсов IEEE 802.16 WMAN в 
          соответствии с IEEE Std 802.16f отменено с заменой на 
          ieee80216WMAN(237)).";
     }
     identity sonetOverheadChannel {
       base iana-interface-type;
       description
         "Наложенный канал SONET.";
     }
     identity digitalWrapperOverheadChannel {
       base iana-interface-type;
       description
         "наложенный цифровой канал.";
     }
     identity aal2 {
       base iana-interface-type;
       description
         "Адаптации ATM уровня 2.";
     }
     identity radioMAC {
       base iana-interface-type;
       description
         "MAC-уровень для радиоканалов.";
     }
     identity atmRadio {
       base iana-interface-type;
       description
         "ATM по радиоканалам.";
     }
     identity imt {
       base iana-interface-type;
       description
         "Межмашинные транки.";
     }

     identity mvl {
       base iana-interface-type;
       description
         "DSL с множеством виртуальных линий.";
     }
     identity reachDSL {
       base iana-interface-type;
       description
         "DSL для длинных линий.";
     }
     identity frDlciEndPt {
       base iana-interface-type;
       description
         "Конечная точка Frame Relay DLCI.";
     }
     identity atmVciEndPt {
       base iana-interface-type;
       description
         "Конечная точка ATM VCI.";
     }
     identity opticalChannel {
       base iana-interface-type;
       description
         "Оптический канал.";
     }
     identity opticalTransport {
       base iana-interface-type;
       description
         "Оптический транспорт.";
     }
     identity propAtm {
       base iana-interface-type;
       description
         "Фирменный интерфейс ATM.";
     }
     identity voiceOverCable {
       base iana-interface-type;
       description
         "Интерфейс передачи голоса по кабелю.";
     }
     identity infiniband {
       base iana-interface-type;
       description
         "Infiniband.";
     }
     identity teLink {
       base iana-interface-type;
       description
         "Канал TE.";
     }
     identity q2931 {
       base iana-interface-type;
       description
         "Q.2931.";
     }
     identity virtualTg {
       base iana-interface-type;
       description
         "Виртуальная транк-группа.";
     }
     identity sipTg {
       base iana-interface-type;
       description
         "Транк-группа SIP.";
     }
     identity sipSig {
       base iana-interface-type;
       description
         "Сигнализация SIP.";
     }
     identity docsCableUpstreamChannel {
       base iana-interface-type;
       description
         "Восходящий канал CATV.";
     }

     identity econet {
       base iana-interface-type;
       description
         "Acorn Econet.";
     }
     identity pon155 {
       base iana-interface-type;
       description
         "Симметричный интерфейс PON FSAN 155 Мбит/с.";
     }
     identity pon622 {
       base iana-interface-type;
       description
         "Симметричный интерфейс PON FSAN 622 Мбит/с.";
     }
     identity bridge {
       base iana-interface-type;
       description
         "Интерфейс прозрачного моста.";
     }
     identity linegroup {
       base iana-interface-type;
       description
         "Общий для множества линий интерфейс.";
     }
     identity voiceEMFGD {
       base iana-interface-type;
       description
         "Voice E&M Feature Group D.";
     }
     identity voiceFGDEANA {
       base iana-interface-type;
       description
         "Voice FGD Exchange Access North American.";
     }
     identity voiceDID {
       base iana-interface-type;
       description
         "Прямой входящий набор для голосовой связи.";
     }
     identity mpegTransport {
       base iana-interface-type;
       description
         "Транспортный интерфейс MPEG.";
     }
     identity sixToFour {
       base iana-interface-type;
       status deprecated;
       description
         "Интерфейс 6to4 (ОТМЕНЕН).";
       reference
         "RFC 4087 - IP Tunnel MIB";
     }
     identity gtp {
       base iana-interface-type;
       description
         "GTP (туннельный протокол GPRS).";
     }
     identity pdnEtherLoop1 {
       base iana-interface-type;
       description
         "Paradyne EtherLoop 1.";
     }
     identity pdnEtherLoop2 {
       base iana-interface-type;
       description
         "Paradyne EtherLoop 2.";
     }
     identity opticalChannelGroup {
       base iana-interface-type;
       description
         "Группа оптических каналов.";
     }

     identity homepna {
       base iana-interface-type;
       description
         "HomePNA ITU-T G.989.";
     }
     identity gfp {
       base iana-interface-type;
       description
         "Базовая процедура кадрирования (GFP3).";
     }
     identity ciscoISLvlan {
       base iana-interface-type;
       description
         "Виртуальная ЛВС L2 с использованием Cisco ISL.";
     }
     identity actelisMetaLOOP {
       base iana-interface-type;
       description
         "Фирменный высокоскоростной канал Acteleis MetaLOOP.";
     }
     identity fcipLink {
       base iana-interface-type;
       description
         "Канал FCIP.";
     }
     identity rpr {
       base iana-interface-type;
       description
         "Интерфейс отказоустойчивого пакетного кольца.";
     }
     identity qam {
       base iana-interface-type;
       description
         "Интерфейс RF Qam.";
     }
     identity lmp {
       base iana-interface-type;
       description
         "Протокол управления каналом.";
       reference
         "RFC 4327 - Link Management Protocol (LMP) Management
                     Information Base (MIB)";
     }
     identity cblVectaStar {
       base iana-interface-type;
       description
         "Cambridge Broadband Networks Limited VectaStar.";
     }
     identity docsCableMCmtsDownstream {
       base iana-interface-type;
       description
         "Нисходящий интерфейс CATV Modular CMTS.";
     }
     identity adsl2 {
       base iana-interface-type;
       status deprecated;
       description
         "Асимметричная цифровая абонентская линия версии 2
          (ОТМЕНЕНО/УСТАРЕЛО с заменой на adsl2plus(238)).";
       reference
         "RFC 4706 - Definitions of Managed Objects for Asymmetric
                     Digital Subscriber Line 2 (ADSL2)";
     }
     identity macSecControlledIF {
       base iana-interface-type;
       description
         "MACSecControlled.";
     }
     identity macSecUncontrolledIF {
       base iana-interface-type;
       description
         "MACSecUncontrolled.";
     }

     identity aviciOpticalEther {
       base iana-interface-type;
       description
         "Агрегат Avici Optical Ethernet.";
     }
     identity atmbond {
       base iana-interface-type;
       description
         "atmbond.";
     }
     identity voiceFGDOS {
       base iana-interface-type;
       description
         "Операторский сервис Voice FGD.";
     }
     identity mocaVersion1 {
       base iana-interface-type;
       description
         "Интерфейс MoCA4 в соответствии с документацией, приватно
          переданной агентству IANA.";
     }
     identity ieee80216WMAN {
       base iana-interface-type;
       description
         "Интерфейс IEEE 802.16 WMAN.";
     }
     identity adsl2plus {
       base iana-interface-type;
       description
         "Асимметричная цифровая абонентска линия версии 2 -
          2+ и все варианты.";
     }
     identity dvbRcsMacLayer {
       base iana-interface-type;
       description
         "MAC-уровень DVB-RCS.";
       reference
         "RFC 5728 - The SatLabs Group DVB-RCS MIB";
     }
     identity dvbTdm {
       base iana-interface-type;
       description
         "DVB Satellite TDM.";
       reference
         "RFC 5728 - The SatLabs Group DVB-RCS MIB";
     }
     identity dvbRcsTdma {
       base iana-interface-type;
       description
         "DVB-RCS TDMA.";
       reference
         "RFC 5728 - The SatLabs Group DVB-RCS MIB";
     }
     identity x86Laps {
       base iana-interface-type;
       description
         "LAPS на основе ITU-T X.86/Y.1323.";
     }
     identity wwanPP {
       base iana-interface-type;
       description
         "3GPP WWAN.";
     }
     identity wwanPP2 {
       base iana-interface-type;
       description
         "3GPP2 WWAN.";
     }
     identity voiceEBS {
       base iana-interface-type;
       description
         "Физический голосовой интерфейс P-phone EBS.";
     }

     identity ifPwType {
       base iana-interface-type;
       description
         "Интерфейс псевдопровода.";
       reference
         "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)";
     }
     identity ilan {
       base iana-interface-type;
       description
         "Внутренняя ЛВС на мосту IEEE 802.1ap.";
     }
     identity pip {
       base iana-interface-type;
       description
         "Экземпляр провайдерского порта на мосту IEEE 802.1ah PBB.";
     }
     identity aluELP {
       base iana-interface-type;
       description
         "Защита канала Ethernet от Alcatel-Lucent.";
     }
     identity gpon {
       base iana-interface-type;
       description
         "Гигабитная пассиваня оптическая сеть G-PON5 ITU-T G.948.";
     }
     identity vdsl2 {
       base iana-interface-type;
       description
         "Высокоскоростная цифровая абонентская линия версии 2
          (в соответствии с ITU-T G.993.2).";
       reference
         "RFC 5650 - Definitions of Managed Objects for Very High
                     Speed Digital Subscriber Line 2 (VDSL2)";
     }
     identity capwapDot11Profile {
       base iana-interface-type;
       description
         "Интерфейс профиля WLAN.";
       reference
         "RFC 5834 - Control and Provisioning of Wireless Access
                     Points (CAPWAP) Protocol Binding MIB for
                     IEEE 802.11";
     }
     identity capwapDot11Bss {
       base iana-interface-type;
       description
         "Интерфейс WLAN BSS.";
       reference
         "RFC 5834 - Control and Provisioning of Wireless Access
                     Points (CAPWAP) Protocol Binding MIB for
                     IEEE 802.11";
     }
     identity capwapWtpVirtualRadio {
       base iana-interface-type;
       description
         "Виртуальный радио-интерфейс WTP.";
       reference
         "RFC 5833 - Control and Provisioning of Wireless Access
                     Points (CAPWAP) Protocol Base MIB";
     }
     identity bits {
       base iana-interface-type;
       description
         "bitsport.";
     }
     identity docsCableUpstreamRfPort {
       base iana-interface-type;
       description
         "Восходящий порт RF в DOCSIS CATV.";
     }

     identity cableDownstreamRfPort {
       base iana-interface-type;
       description
         "Нисходящий порт RF в CATV.";
     }
     identity vmwareVirtualNic {
       base iana-interface-type;
       description
         "Виртуальный сетевой интерфейс VMware.";
     }
     identity ieee802154 {
       base iana-interface-type;
       description
         "Интерфейс IEEE 802.15.4 WPAN.";
       reference
         "IEEE 802.15.4-2006";
     }
     identity otnOdu {
       base iana-interface-type;
       description
         "Оптический модуль данных OTN.";
     }
     identity otnOtu {
       base iana-interface-type;
       description
         "Транспортный модуль оптического канала OTN.";
     }
     identity ifVfiType {
       base iana-interface-type;
       description
         "Тип интерфейса пересылающего экземпляра VPLS.";
     }
     identity g9981 {
       base iana-interface-type;
       description
         "Связанный интерфейс G.998.1.";
     }
     identity g9982 {
       base iana-interface-type;
       description
         "Связанный интерфейс G.998.2.";
     }
     identity g9983 {
       base iana-interface-type;
       description
         "Связанный интерфейс G.998.3.";
     }
     identity aluEpon {
       base iana-interface-type;
       description
         "Пассивные оптические сети Ethernet (E-PON6).";
     }
     identity aluEponOnu {
       base iana-interface-type;
       description
         "Модуль оптической сети EPON.";
     }
     identity aluEponPhysicalUni {
       base iana-interface-type;
       description
         "Физический интерфейс между пользователем и сетью EPON.";
     }
     identity aluEponLogicalLink {
       base iana-interface-type;
       description
         "Эмуляция канала «точка-точка» через уровень EPON.";
     }
     identity aluGponOnu {
       base iana-interface-type;
       description
         "Модуль оптической сети GPON.";
       reference
         "ITU-T G.984.2";
     }

     identity aluGponPhysicalUni {
       base iana-interface-type;
       description
         "Физический интерфейс между пользователем и сетью GPON.";
       reference
         "ITU-T G.984.2";
     }
     identity vmwareNicTeam {
       base iana-interface-type;
       description
         "VMware NIC Team.";
     }
   }

   <CODE ENDS>

3. Взаимодействие с IANA

Этот документ определяет первую версию поддерживаемого IANA модуля YANG iana-if-type.

Модуль YANG iana-if-type предназначен для отражения реестра «ifType definitions» [IFTYPE-IANA-REGISTRY], так же как этот реестр отражается в модуле IANAifType-MIB [IANAifType-MIB].

Агентство IANA добавило новое примечание в реестр «iana-if-type YANG Module».

Типы интерфейсов недопустимо напрямую добавлять в модуль YANG iana-if-type, лнт должны добавляться в реестр «ifType definitions».

При добавлении типа интерфейса в реестр «ifType definitions» должен добавляться новый оператор identity в модуль YANG iana-if-type. Имя identity должно совпадать с соответствующим перечисляемым именем в IANAifType-MIB. Следует определять перечисленные ниже субоператоры вместе с оператором identity.

base

Содержит значение iana-interface-type.

status

Включается только для отмененных (значение deprecated) или устаревших (значение obsolete) регистраций.

description

Дублирует описание из реестра, если оно имеется. Используются символы перевода строки, чтобы размер строк не превышал 72 символов.

reference

Дублирует ссылку из реестра, если она имеется и добавляет название документа.

Невыделенные и резервные значение не присутствуют в модуле.

При обновлении модуля YANG iana-if-type должен добавляться новый оператор revision перед имеющимися такими операторами.

Агентство IANA добавило новое примечание в реестр «ifType definitions».

При обновлении реестра должен обновляться модуль YANG iana-if-type, определенный в RFC 7224.

Текст раздела Reference в реестре «ifType definitionsбыл изменен, как показано ниже.

      Старый текст
        [RFC1213][RFC2863]
      Новый текст
        [RFC1213][RFC2863][RFC7224]

3.1. Регистрация URI

Этот документ регистрирует URI в реестре «IETF XML» [RFC3688]. В соответствии с форматом RFC 3688 добавлена приведенная ниже регистрация.

      URI: urn:ietf:params:xml:ns:yang:iana-if-type
      Registrant Contact: IANA.
      XML: N/A; the requested URI is an XML namespace.

3.2. Регистрация модуля YANG

Этот документ регистрирует модуль YANG в реестре «YANG Module Names» [RFC6020].

      name:         iana-if-type
      namespace:    urn:ietf:params:xml:ns:yang:iana-if-type
      prefix:       ianaift
      reference:    RFC 7224

4. Вопросы безопасности

Поскольку этот документ не добавляет технологий или протоколов, с ним не связано каких-либо проблем безопасности.

5. Нормативные документы

[IANAifType-MIB] Internet Assigned Numbers Authority, «IANAifType Textual Convention definitions», <http://www.iana.org/assignments/ianaiftype-mib>.

[IFTYPE-IANA-REGISTRY] Internet Assigned Numbers Authority, «ifType Definitions», <http://www.iana.org/assignments/smi-numbers>.

[RFC3688] Mealling, M., «The IETF XML Registry», BCP 81, RFC 3688, January 2004.

[RFC6020] Bjorklund, M., «YANG — A Data Modeling Language for the Network Configuration Protocol (NETCONF)», RFC 60207, October 2010.

[RFC7223] Bjorklund, M., «A YANG Data Model for Interface Management», RFC 7223, May 2014.


Адрес автора

Martin Bjorklund

Tail-f Systems

EMail: mbj@tail-f.com


Перевод на русский язык

Николай Малых

nmalykh@protocols.ru

1Internet Engineering Task Force.

2Internet Engineering Steering Group.

3Generic Framing Procedure.

4MultiMedia over Coax Alliance — альянс передачи MultiMedia по коаксиальным линиям.

5Gigabit-capable passive optical network.

6Ethernet Passive Optical Network.

7В RFC 7950 определена новая версия языка YANG, не отменяющая RFC 6020. Прим. перев.