RFC 3779 X.509 Extensions for IP Addresses and AS Identifiers

Network Working Group                                            C. Lynn
Request for Comments: 3779                                       S. Kent
Category: Standards Track                                         K. Seo
                                                        BBN Technologies
                                                               June 2004

Расширения X.509 для адресов IP и номеров AS

X.509 Extensions for IP Addresses and AS Identifiers

PDF

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

Этот документ задает проект стандартного протокола Internet для сообщества Internet и служит приглашением к дискуссии в целях развития этого протокола. Текущий статус стандартизации протокола можно узнать из документа Internet Official Protocol Standards (STD 1). Распространение документа не ограничивается.

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

Copyright (C) The Internet Society (2004).

Аннотация

Этот документ определяет два расширения для сертификатов X.509 v3. Первое расширение привязывает список адресных блоков IP или префиксов к субъекту сертификата. Второе привязывает к субъекту сертификата список идентификаторов автономных систем. Эти расширения могут служить для передачи полномочий субъекта на использование содержащихся в расширениях адресов IP и идентификаторов автономных систем.

Оглавление

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

1. Введение

В этом документе описаны два расширения сертификатов X.509 v3, которые подтверждают передачу прав на использование адресов IP и номеров автономных систем от IANA через региональных регистраторов (RIR1) провайдерам Internet (ISP2) и организациям-пользователям. Первое расширение связывает список адресных блоков IP, зачастую представленных адресными префиксами IP, с субъектом (держателю секретного ключа) сертификата. Второе расширение связывает список идентификаторов автономных систем (AS3) с субъектом (держателю секретного ключа) сертификата. Эмитентом сертификата является организация (например, IANA, региональный регистратор Internet или ISP), которая имеет полномочия передавать право использования (выделять) наборов адресных блоков IP и номеров AS субъектам сертификатов. Эти сертификаты обеспечивают расширяемую систему проверки прав на использование (right-to-use) для наборов адресных префиксов IP и номеров AS. Это может применяться протоколами маршрутизации (например, Secure BGP [S-BGP]) для проверки правомочности и корректности маршрутной информации или реестрами маршрутизации Internet для проверки получаемых данных.

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

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

Предполагается знакомство читателя с терминами и концепциями, описанными в документах «Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile» [RFC3280], «INTERNET PROTOCOL» [RFC791], «Internet Protocol Version 6 (IPv6) Addressing Architecture» [RFC3513], «INTERNET REGISTRY IP ALLOCATION GUIDELINES» [RFC2050] и связанных с ними документах в части политики распределения адресов региональными регистраторами Internet. Ниже приведены определения некоторых терминов.

Allocate — выделение, распределение

Передача хранения (содержания) ресурса промежуточной организации (см. [RFC2050]).

Assign — назначение, присвоение

Передача хранения (содержания) ресурса конечному владельцу (см. [RFC2050]).

Autonomous System (AS) — автономная система

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

Autonomous System number — номер автономной системы

32-битовое значение, идентифицирующее автономную систему.

Delegate — передача полномочий, делегирование

Передача хранения (т. е. права использования) блока адресов IP или идентификатора AS путем выпуска сертификата для объекта.

initial octet — начальный октет

Первый октет битовой строки (BIT STRING) в представлении DER [X.690].

IP v4 address — адрес IPv4

32-битовый идентификатор, записываемый в форме четырех десятичных чисел из диапазона 0 — 255, разделенных точками. Примером адреса IPv4 может служить 10.5.0.5.

IP v6 address — адрес IPv6

128-битовый идентификатор, записываемый в форме восьми шестнадцатеричных чисел от 0 до ffff, разделенных двоеточиями (:). Примером адреса IPv6 может служить 2001:0:200:3:0:0:0:1. Последовательность :0: может быть заменена двумя символами двоеточия (::) и запись 2001:0:200:3::1 эквивалентна приведенному выше примеру адреса (см. [RFC3513]).

Prefix — префикс

Битовая строка, содержащая некоторое число начальных битов адреса и записанная в форме адреса, за которым следует символ дробной черты (/) и число начальных битов. Примерами префиксов могут служить 10.5.0.0/16 и 2001:0:200:3:0:0:0:0/64 (или 2001:0:200:3::/64). Префиксы часто сокращают, отбрасывая нули в младших полях так, чтобы число оставшихся битов было не меньше размера префикса. 10.5/16 и 2001:0:200:3/64 являются сокращенными записями приведенных выше префиксов.

Regional Internet Registry (RIR) — региональный регистратор Internet

Любая организация, признанная IANA в качестве регионального уполномоченного по управлению адресами IP и номерами AS. На момент подготовки документа их было 5 — AfriNIC, APNIC, ARIN, LACNIC и RIPE NCC.

Right-to-use — право использования

Для адресного префикса IP это полномочия указывать AS, которая может создавать анонсы для этого префикса в Internet. Для номеров AS это полномочия сети представлять себя с этим идентификатором сетям из других AS.

subsequent octets — последующие октеты

Октеты со второго и до последнего в форме битовой строки (BIT STRING) с представлением DER [X.690].

trust anchor — доверенная привязка

Сертификат, которому доверяют при проверке пригодности пути сертификации (см. [RFC3280]).

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

2. Расширение IP Address Delegation

Это расширение показывает выделение адресов IP объекту путем привязки адресов к открытому ключу объекта.

2.1. Контекст

Адресное пространство IP в настоящее время поддерживается иерархией с номинальным корнем в IANA, но реально обслуживается RIR. IANA выделяет блоки адресов RIR, а те, в свою очередь, распределяют их между провайдерами (ISP), которые могут выделять адреса IP нижестоящим провайдерам, заказчикам и т. п. RIR также могут выделять адреса организациям, являющимся конечными абонентами, т. е. не распределяют полученных адресов между другими организациями (см. [RFC2050] и соответствующие документы RIR с рекомендациями и описанием процесса выделения адресов.

Расширение IP Address Delegation предназначено для обеспечения возможности проверки корректности передачи полномочий на блоки адресов IP (т. е. полномочий на использование или последующее выделение адресных блоков IP). Соответственно, имеет смысл использовать преимущества имеющейся административной модели распределения адресного пространства IP. Как описано выше в разделе 1, это может быть реализовано путем выпуска сертификатов, сопровождающих описанное в разделе 1 выделение адресов. Примером использования информации из этого расширения может служить объект, применяющий эти данные для проверки полномочий организации в части создания сообщений BGP UPDATE, анонсирующих путь к конкретному блоку адресов IP (см., например, [RFC1771], [S-BGP]).

2.1.1. Представление адресов и префиксов IP

Имеется два семейства адресов IP — IPv4 и IPv6.

Адрес IPv4 представляет собой 32-битовое значение, которое записывается в форме 4 десятичных чисел от 0 до 255, разделенных точками. Примером адреса IPv4 может служить 10.5.0.5.

Адрес IPv6 представляет собой 128-битовое значение, которое записывается в форме 8 шестнадцатеричных значений от 0 до ffff, разделенных двоеточием (:). Примером адреса IPv6 может служить 2001:0:200:3:0:0:0:1. В адресах IPv6 часто встречаются смежные поля со значением 0. Группу таких полей можно обозначить последовательностью «::». Приведенный выше пример адреса можно представить в виде 2001:0:200:3::1.

Адресный префикс представляет собой блок из 2k адресов, образующих непрерывную последовательность, в которой старшие биты адресов одинаковы. Например, 512 адресов IPv4 от 10.5.0.0 до 10.5.1.255 будут иметь одинаковые значений 23 старших битов. Блок адресов указывается путем добавления символа дробной черты (/) и числа неизменных старших битов. Префикс из приведенного выше примера имеет вид 10.5.0.0/23 и содержит 2(32-23) = 29 адресов. Блок адресов IPv6 от 2001:0:200:0:0:0:0:0 до 2001:0:3ff:ffff:ffff:ffff:ffff:ffff (289 адресов) представляется в виде 2001:0:200:0:0:0:0:0/39 или 2001:0:200::/39. Префиксы можно сократить, опуская нули в младших полях, не входящих в число неизменных. Сокращенные формы приведенных выше префиксов имеют вид 10.5.0/23 и 2001:0:200/39.

Адрес или префикс IP кодируется в расширении IP Address Delegation как DER-представление ASN.1 BIT STRING, содержащие неизменные старшие биты. В соответствии с [X.690] DER-представление битовой строки состоит из типа BIT STRING (0x03), за которым следует представление числа октетов значения и само значение. Это значение состоит из «начального октета», который указывает число неиспользуемых битов с последнем октете, и «последующих октетов», содержащих саму строку (для адресов IP представление размера совпадает с размером).

Для одного адреса неизменны все биты и битовая строка для адреса IPv4 содержит 32 бита. Последующие октеты в DER-представлении адреса 10.5.0.4 будут иметь значения 0x0a 0x05 0x00 0x04. Поскольку в последнем октете используются все биты, начальный октет имеет значение 0x00. Октеты DER-представления BIT STRING показаны ниже

         Тип  Разм. Неисп. битов ...
         0x03 0x05  0x00  0x0a 0x05 0x00 0x04

DER-представление префикса 10.5.0/23 будет иметь вид

         Тип  Разм. Неисп. битов ...
         0x03 0x04  0x01  0x0a 0x05 0x00

В этом случае три последующих октета включают 24 бита, но префикс имеет размер 23, поэтому в последнем октете 1 бит не используется и начальный октет имеет значение 1 (в соответствии с DER все неиспользуемые биты должны иметь значение 0).

DER-представление адреса IPv6 2001:0:200:3:0:0:0:1 будет иметь вид

         Тип  Разм. Неисп. битов ...
         0x03 0x11  0x00  0x20 0x01 0x00 0x00 0x02 0x00 0x00 0x03
                          0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01

DER-представление префикса 2001:0:200/39 с одним неиспользуемым битом в последнем октете будет иметь вид

         Тип  Разм. Неисп. битов ...
         0x03 0x06  0x01  0x20 0x01 0x00 0x00 0x02

2.1.2. Представление диапазонов адресов IP

Хотя любой непрерывный диапазон адресов IP можно представить набором смежных префиксов, более компактным будет представление диапазона в форме SEQUENCE (последовательность) с указанием младшего и старшего адреса в форме BIT STRING. В SEQUENCE битовая строка с младшим адресом формируется путем удаления всех младших битов со значением 0, а строка со старшим адресом путем удаления всех младших битов со значением 1. в DER-представлении BIT STRING все неиспользуемые биты последнего октета должны иметь значение 0. Отметим, что префикс всегда можно выразить в форме диапазона, но диапазон не всегда выражается одним префиксом.

Диапазон адресов префикса 10.5.0/23 будет от 10.5.0.0 до 10.5.1.255. Младший адрес содержит 16 младших битов со значением 0 и DER-представление 16-битовой строки будет иметь вид

         Тип  Разм. Неисп. битов ...
         0x03 0x03  0x00  0x0a 0x05

Старший адрес завершается 9 единицами, которые удаляются. DER-представление оставшейся 23-битовой строки имеет вид

         Тип  Разм. Неисп. битов ...
         0x03 0x04  0x01  0x0a 0x05 0x00

Префикс 2001:0:200/39 можно представить диапазоном и DER-представлением младшего адреса (2001:0:200::) будет

         Тип  Разм. Неисп. битов ...
         0x03 0x06  0x01  0x20 0x01 0x00 0x00 0x02

Старший адрес 2001:0:3ff:ffff:ffff:ffff:ffff:ffff после удаления 90 младших битов со значением 1 будет включать 38 битов с представлением

         Тип  Разм. Неисп. битов ...
         0x03 0x06  0x02  0x20 0x01 0x00 0x00 0x00

Специальный случай «всех адресов IP» (префикс 0/0) должен кодироваться в DER с октетом размера 1, начальным октетом 0 и без последующих октетов

         Тип  Разм. Неисп. битов ...
         0x03 0x01  0x00

Отметим, что для адресов IP число нулей в конце имеет значение. Например DER-представлением 10.64/12 будет

         Тип  Разм. Неисп. битов ...
         0x03 0x03  0x04  0x0a 0x40

А DER-представлением 10.64.0/20 будет

         Тип  Разм. Неисп. битов ...
         0x03 0x04  0x04  0x0a 0x40 0x00

2.2. Спецификация

2.2.1. OID

Идентификатор OID для этого расширения имеет значение id-pe-ipAddrBlocks.

      id-pe-ipAddrBlocks  OBJECT IDENTIFIER ::= { id-pe 7 }

В [RFC3280] дано определение

      id-pkix  OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
               dod(6) internet(1) security(5) mechanisms(5) pkix(7) }

      id-pe    OBJECT IDENTIFIER ::= { id-pkix 1 }

2.2.2. Критичность

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

2.2.3. Синтаксис

   id-pe-ipAddrBlocks      OBJECT IDENTIFIER ::= { id-pe 7 }

   IPAddrBlocks        ::= SEQUENCE OF IPAddressFamily

   IPAddressFamily     ::= SEQUENCE {    -- AFI и необязательный SAFI --
      addressFamily        OCTET STRING (SIZE (2..3)),
      ipAddressChoice      IPAddressChoice }

   IPAddressChoice     ::= CHOICE {
      inherit              NULL, -- наследуется от эмитента --
      addressesOrRanges    SEQUENCE OF IPAddressOrRange }

   IPAddressOrRange    ::= CHOICE {
      addressPrefix        IPAddress,
      addressRange         IPAddressRange }

   IPAddressRange      ::= SEQUENCE {
      min                  IPAddress,
      max                  IPAddress }

   IPAddress           ::= BIT STRING
2.2.3.1. Тип IPAddrBlocks

Тип IPAddrBlocks представляет собой последовательность (SEQUENCE OF) типов IPAddressFamily.

2.2.3.2. Тип IPAddressFamily

Тип IPAddressFamily представляет собой последовательность (SEQUENCE), содержащую элементы addressFamily и ipAddressChoice.

2.2.3.3. Элемент addressFamily

Элемент addressFamily представляет собой строку октетов (OCTET STRING) содержащую 2-октетный идентификатор семейства адресов (AFI4) с сетевым порядком байтов, за которым может следовать октет идентификатора последующего семейства адресов (SAFI5). AFI и SAFI определены в [IANA-AFI] и [IANA-SAFI], соответственно.

Если не было предоставлено полномочий для конкретного AFI и дополнительного SAFI, недопустимо включать IPAddressFamily для этого AFI/SAFI в последовательность IPAddrBlocks.

Должна присутствовать только одна последовательность IPAddressFamily для уникальной комбинации AFI и SAFI. Каждая последовательность (SEQUENCE) должна быть упорядочена по возрастанию значений addressFamily (октеты считаются значениями без знака). addressFamily без SAFI должны предшествовать элементам, включающим SAFI. При указании обоих типов адресов IPv4 и IPv6 адреса IPv4 должны предшествовать адресам IPv6 (поскольку IPv4 AFI имеет значение 0001, которое меньше IPv6 AFI — 0002).

2.2.3.4. Элемент ipAddressChoice и тип IPAddressChoice

Элемент ipAddressChoice имеет тип IPAddressChoice, который представляет собой выбор (CHOICE) одного из элементов inherit или addressesOrRanges.

2.2.3.5. Элемент inherit

Если выбор IPAddressChoice содержит элемент inherit, набор адресов IP (на которые распространяются полномочия) для указанного AFI и дополнительного SAFI берется из сертификата эмитента (или сертификата эмитента сертификата эмитента и т. д. рекурсивно, пока не будет найден сертификат, содержащий IPAddressChoice и с элементом addressesOrRanges).

2.2.3.6. Элемент addressesOrRanges

Элемент addressesOrRanges является последовательностью (SEQUENCE OF) типов IPAddressOrRange. Элементы addressPrefix и addressRange должны сортироваться с использованием двоичного представления

      <lowest IP address in range> | <prefix length>

где | означает конкатенацию. Отметим, что октеты в этом представлении (a.b.c.d | размер для IPv4 или s:t:u:v:w:x:y:z | размер IPv6) не являются октетами DER-представления битовой строки (BIT STRING). Например, для двух addressPrefix

      Адрес IP  | разм. DER-представление
      ----------------  ------------------------
                        Тип  Разм. Неисп. битов ...
      10.32.0.0 | 12     03   03    04   0a 20
      10.64.0.0 | 16     03   03    00   0a 40

префикс 10.32.0.0/12 должен быть впереди префикса 10.64.0.0/16, поскольку 32 меньше 64, тогда как при сортировке по DER-представлениям битовых строк порядок был бы обратным, за счет октета неиспользуемых битов. Любой паре вариантов IPAddressOrRange в расширении недопустимо перекрываться с другой парой. Любые непрерывные префикса или диапазоны должны объединяться в один диапазон или (если возможно) в один префикс.

2.2.3.7. Тип IPAddressOrRange

Тип IPAddressOrRange представляет собой выбор (CHOICE) одного из элементов addressPrefix (префикс или адрес IP) или addressRange (диапазон адресов IP).

В соответствии с данной спецификацией любой диапазон адресов, который может быть выражен префиксом, должен кодироваться с использованием элемента IPAddress (BIT STRING), а любой диапазон, который невозможно выразить префиксом, должен кодироваться с использованием IPAddressRange (SEQUENCE из двух BIT STRING). Приведенный ниже псевдокод иллюстрирует выбор способа кодирования диапазона адресов.

         LET  N = число совпадающих старших битов в младшем и старшем адресе диапазона
         IF   все оставшиеся биты младшего адреса имеют значения 0
          AND все оставшиеся биты старшего адреса имеют значения 1
         THEN диапазон ДОЛЖЕН кодироваться как IPAddress размером N битов
         ELSE диапазон ДОЛЖЕН кодироваться как IPAddressRange.
2.2.3.8. Элемент addressPrefix и тип IPAddress

Элемент addressPrefix имеет тип IPAddress. Этот тип определяет диапазон адресов IP, в котором N старших (слева) битов сохраняется неизменным, а оставшиеся биты (32 — N для IPv4, 128 — N для IPv6) могут принимать разные значения. Например, префикс IPv4 10.64/12 соответствует адресам с 10.64.0.0 до 10.79.255.255, а 10.64/11 — адресам с 10.64.0.0 до 10.95.255.255. Префикс IPv6 2001:0:2/48 представляет адреса 2001:0:2:: — 2001:0:2:ffff:ffff:ffff:ffff:ffff.

Адресный префикс IP представляется в форме строки битов (BIT STRING). DER-представление BIT STRING использует начальный октет строки для указания числа младших битов в младшем октете, которые не используются. В DER-представлении эти биты должны иметь значение 0.

Пример

             128.0.0.0       = 1000 0000.0000 0000.0000 0000.0000 0000
           - 143.255 255 255 = 1000 1111.1111 1111.1111 1111.1111 1111
        битовая строка для кодирования = 1000
              Тип  Разм. Неисп. битов ...
Кодирование = 0x03 0x02  0x04  0x80
2.2.3.9. Элемент addressRange и тип IPAddressRange

Элемент addressRange имеет тип IPAddressRange, который представляет собой последовательность (SEQUENCE), включающую младший (элемент min) и старший (элемент max) IP-адрес диапазона. Каждый из этих адресов представляется строкой битов (BIT STRING). Все не указанные биты младшего адреса в IPAddressRange (до размера полного адреса) считаются установленными в 0, а для старшего — в 1. Битовая строка младшего адреса образуется путем удаления всех младших битов со значением 0 из младшего адреса, BIT STRING старшего адреса образуется удалением единиц из младших битов старшего адреса.

Пример

             129.64.0.0       = 1000 0001.0100 0000.0000 0000.0000 0000
           - 143.255.255.255  = 1000 1111.1111 1111.1111 1111.1111 1111
          мин. битов. строка  = 1000 0001.01
          макс. битов. строка = 1000
   Кодирование = SEQUENCE {
               Тип  Разм. Неисп. битов ...
        min    0x03 0x03  0x06  0x81      0x40
        max    0x03 0x02  0x04  0x80
              }

Для упрощения операций сравнения адресных блоков IP при проверке пути сертификации старший адрес IP должен содержать хотя бы один бит со значением 1, т. е. последующие октеты не могут быть опущены или содержать только 06.

2.3. Проверка пути сертификации расширения IP Address Delegation

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

3. Расширение AS Identifier Delegation

Это расширение показывает выделение номеров AS объекту путем привязки этих номеров к открытому ключу объекта.

3.1. Контекст

Расширение AS Identifier Delegation в настоящее время поддерживается иерархией с номинальным корнем в IANA, но реально обслуживается RIR. IANA выделяет номера AS регистраторам RIR, которые, в свою очередь, назначают номера AS организациям, являющимся конечными объектами (не распределяющими эти номера между другими организациями). Расширение AS Identifier Delegation предназначено для обеспечения возможности проверки полномочий для идентификаторов AS (т. е. прав объекта на использование данного номера AS). Соответственно, имеет смысл воспользоваться преимуществами имеющейся инфраструктуры поддержки идентификаторов AS. Как описано выше в разделе 1, это реализуется путем выпуска сертификатов, включающих описанное в этом разделе расширение. Примером использования информации из таких расширений может служить объект, применяющий расширение для проверки полномочий организации на управление AS, указанной идентификатором AS в расширении. Применение этого расширения для представления назначений идентификаторов AS не означает изменения процедур поддержки идентификаторов AS или условий, в которых следует использовать AS [RFC1930].

3.2. Спецификация

3.2.1. OID

Идентификатор OID для этого расширения имеет значение id-pe-autonomousSysIds.

      id-pe-autonomousSysIds  OBJECT IDENTIFIER ::= { id-pe 8 }

для которого [RFC3280] определяет

      id-pkix  OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
               dod(6) internet(1) security(5) mechanisms(5) pkix(7) }

      id-pe    OBJECT IDENTIFIER ::= { id-pkix 1 }

3.2.2. Критичность

Это расширение следует объявлять критичным (CRITICAL). Предполагаемое использование этого расширения состоит в обозначении права использования идентификаторов AS, указанных в нем. CA помечает это расширение как критическое (CRITICAL) для обозначения того, что зависимая сторона должна понимать семантику расширения для того, чтобы использовать сертификат по назначению. Предполагается, что новые приложения, которые используют сертификаты с таким расширением, будут его понимать.

3.2.3. Синтаксис

   id-pe-autonomousSysIds  OBJECT IDENTIFIER ::= { id-pe 8 }

   ASIdentifiers       ::= SEQUENCE {
       asnum               [0] EXPLICIT ASIdentifierChoice OPTIONAL,
       rdi                 [1] EXPLICIT ASIdentifierChoice OPTIONAL}
   ASIdentifierChoice  ::= CHOICE {
      inherit              NULL, -- наследуется от эмитента --
      asIdsOrRanges        SEQUENCE OF ASIdOrRange }

   ASIdOrRange         ::= CHOICE {
       id                  ASId,
       range               ASRange }

   ASRange             ::= SEQUENCE {
       min                 ASId,
       max                 ASId }

   ASId                ::= INTEGER
3.2.3.1. Тип ASIdentifiers

Тип ASIdentifiers представляет собой последовательность (SEQUENCE), содержащую одну или множество форм идентификаторов автономных систем — номеров AS (в элементах asnum) или идентификаторов доменов маршрутизации (в элементах rdi). Если ASIdentifiers содержит множество форм идентификаторов, элемент asnum должен предшествовать элементу rdi. Номера AS используются BGP, а идентификаторы доменов маршрутизации заданы в IDRP [RFC1142]7.

3.2.3.2. Элементы asnum, rdi и тип ASIdentifierChoice

Элементы asnum и rdi имеют тип ASIdentifierChoice, который представляет собой выбор (CHOICE) из элементов inherit и asIdsOrRanges.

3.2.3.3. Элемент inherit

Если выбор ASIdentifierChoice содержит элемент inherit, множество полномочных идентификаторов AS берется из сертификата эмитента или эмитента сертификата эмитента (рекурсивно, пока не будет найден сертификат с ASIdentifierChoice, содержащим элемент asIdsOrRanges). Если для конкретной формы идентификатора AS не было предоставлено полномочий, недопустимо присутствие соответствующего элемента asnum/rdi в последовательности ASIdentifiers.

3.2.3.4. Элемент asIdsOrRanges

Элемент asIdsOrRanges представляет собой последовательность (SEQUENCE) типов ASIdOrRange. Недопустимо перекрытие любой пары элементов в последовательности asIdsOrRanges. Все непрерывные последовательности идентификаторов AS должны по возможности объединяться в один диапазон. Идентификаторы AS в элементе asIdsOrRanges должны сортироваться в порядке роста числовых значений.

3.2.3.5. Тип ASIdOrRange

Тип ASIdOrRange представляет собой выбор (CHOICE) из одиночного целого числа (ASId) или одиночной последовательности (ASRange).

3.2.3.6. Элемент id

Элемент id имеет тип ASId.

3.2.3.7. Элемент range

Элемент range имеет тип ASRange.

3.2.3.8. Тип ASRange

Тип ASRange представляет собой последовательность (SEQUENCE), содержащую элементы min и max, которые служат для указания диапазона значений идентификаторов AS.

3.2.3.9. Элементы min и max

Элементы min и max относятся к типу ASId. Элемент min служит для задания минимального идентификатора AS в диапазоне, а элемент max — для задания максимального идентификатора AS.

3.2.3.10. Тип ASId

ASId имеет тип INTEGER (целое число).

3.3. Проверка пути сертификации расширения AS Identifier Delegation

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

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

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

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

Эти расширения предоставляют информацию о полномочиях, т. е. праве использовать адреса IP или идентификаторы AS. Расширения разработаны для поддержки защищенной версии протокола BGP [S-BGP], но могут применяться и в другом контексте. В среде защищенного BGP сертификаты с такими расширениями служат возможностями (capability) — сертификат подтверждает, что владелец секретного ключа (Subject) уполномочен использовать адреса IP или идентификаторы AS, представленные в расширениях. По этой причине поле Subject значительно меньше относится к защите, нежели в обычных инфраструктурах PKI.

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

Авторы признательны Charles Gardiner, Russ Housley, James Manger и Jim Schaad за их вклад в подготовку документа.

Приложение A. Модуль ASN.1

Это нормативное приложение описывает расширения, используемые соответствующими спецификации компонентами PKI в синтаксисе ASN.1.

   IPAddrAndASCertExtn { iso(1) identified-organization(3) dod(6)
            internet(1) security(5) mechanisms(5) pkix(7) mod(0)
            id-mod-ip-addr-and-as-ident(30) }
       DEFINITIONS EXPLICIT TAGS ::=
   BEGIN
        -- Copyright (C) The Internet Society (2004). Эта        --
        -- версия данного модуля ASN.1 является частью RFC 3779. --
        -- Авторские права полностью указаны в этом документе.   --
   -- EXPORTS ALL --

   IMPORTS
   -- специфические для PKIX значения OID и arc --
       id-pe FROM PKIX1Explicit88 { iso(1) identified-organization(3)
                  dod(6) internet(1) security(5) mechanisms(5) pkix(7)
                  id-mod(0) id-pkix1-explicit(18) };

   -- OID расширения IP Address Delegation --
   id-pe-ipAddrBlocks  OBJECT IDENTIFIER ::= { id-pe 7 }

   -- Синтаксис расширения IP Address Delegation --
   IPAddrBlocks        ::= SEQUENCE OF IPAddressFamily

   IPAddressFamily     ::= SEQUENCE { -- AFI и необязательный SAFI --
      addressFamily        OCTET STRING (SIZE (2..3)),
      ipAddressChoice      IPAddressChoice }

   IPAddressChoice     ::= CHOICE {
      inherit              NULL, -- наследуется от эмитента --
      addressesOrRanges    SEQUENCE OF IPAddressOrRange }

   IPAddressOrRange    ::= CHOICE {
      addressPrefix        IPAddress,
      addressRange         IPAddressRange }

   IPAddressRange      ::= SEQUENCE {
      min                  IPAddress,
      max                  IPAddress }

   IPAddress           ::= BIT STRING

   -- OID расширения ASystem Identifier Delegation --
   id-pe-autonomousSysIds  OBJECT IDENTIFIER ::= { id-pe 8 }

   -- Синтаксис расширения ASystem Identifier Delegation --
   ASIdentifiers       ::= SEQUENCE {
       asnum               [0] ASIdentifierChoice OPTIONAL,
       rdi                 [1] ASIdentifierChoice OPTIONAL }

   ASIdentifierChoice  ::= CHOICE {
      inherit              NULL, -- наследуется от эмитента --
      asIdsOrRanges        SEQUENCE OF ASIdOrRange }

   ASIdOrRange         ::= CHOICE {
       id                  ASId,
       range               ASRange }

   ASRange             ::= SEQUENCE {
       min                 ASId,
       max                 ASId }

   ASId                ::= INTEGER
   END

Приложение B. Примеры расширения IP Address Delegation

Критическое расширение сертификата X.509 v3, которое задает перечисленные ниже адреса.

   Префиксы индивидуальных адресов IPv4
       1) 10.0.32/20     т. е.  10.0.32.0 - 10.0.47.255
       2) 10.0.64/24     т. е.  10.0.64.0 - 10.0.64.255
       3) 10.1/16        т. е.  10.1.0.0  - 10.1.255.255
       4) 10.2.48/20     т. е.  10.2.48.0 - 10.2.63.255
       5) 10.2.64/24     т. е.  10.2.64.0 - 10.2.64.255
       6) 10.3/16        т. е.  10.3.0.0  - 10.3.255.255, and
       7) наследуются все адреса IPv6 от эмитента сертификата

Будет иметь шестнадцатеричное представление

   30 46                       Extension {
      06 08 2b06010505070107     extnID        1.3.6.1.5.5.7.1.7
      01 01 ff                   critical
      04 37                      extnValue {
         30 35                     IPAddrBlocks {
            30 2b                    IPAddressFamily {
               04 03 0001  01          addressFamily: IPv4 Unicast
                                       IPAddressChoice
               30 24                     addressesOrRanges {
                                           IPAddressOrRange
                  03 04 04 0a0020            addressPrefix 10.0.32/20
                                           IPAddressOrRange
                  03 04 00 0a0040            addressPrefix 10.0.64/24
                                           IPAddressOrRange
                  03 03 00 0a01              addressPrefix    10.1/16
                                           IPAddressOrRange
                  30 0c                      addressRange {
                     03 04 04 0a0230           min        10.2.48.0
                     03 04 00 0a0240           max        10.2.64.255
                                             } -- addressRange
                                           IPAddressOrRange
                  03 03 00 0a03              addressPrefix    10.3/16
                                         } -- addressesOrRanges
                                     } -- IPAddressFamily
            30 06                    IPAddressFamily {
               04 02 0002              addressFamily: IPv6
                                       IPAddressChoice
               05 00                     наследуется от эмитента
                                     } -- IPAddressFamily
                                   } -- IPAddrBlocks
                                 } -- extnValue
                               } -- расширение

Этот пример показывает сортировку префиксов и диапазонов.

  • Префикс 1 должен предшествовать префиксу 2, хотя число неиспользуемых битов (4) в префиксе 1 больше числа неиспользуемых битов (0) в префиксе 2.

  • Префикс 2 должен предшествовать префиксу 3, хотя число октетов (4) в представлении BIT STRING для префикса 2 больше числа октетов (3) в BIT STRING префикса 3.

  • Префиксы 4 и 5 являются смежными (представляют диапазон адресов 10.2.48.0 — 10.2.64.255), поэтому они должны объединяться в диапазон (поскольку одним префиксом выразить из невозможно).

  • Отметим, что 6 нулей в конце элемента max значимы для интерпретации значения (поскольку все неиспользуемые биты интерпретируются 1, а не 0). Четыре нуля в конце элемента min не являются значимыми и должны быть удалены (это дает 4 неиспользуемых бита в представлении элемента min). DER-представление требует устанавливать значение 0 для всех неиспользуемых битов в последнем из последующих октетов.

  • Диапазон, формируемый префиксами 4 и 5, должен предшествовать префиксу 6, хотя тег SEQUENCE для представления диапазона (30) больше тега BIT STRING (03) для представления префикса 6.

  • Данные IPv4 должны предшествовать информации IPv6, поскольку идентификатор семейства адресов для IPv4 (0001) меньше идентификатора для IPv6 (0002).

Ниже показано расширение, задающее префикс IPv6 2001:0:2/48 и префиксы IPv4 10/8 и 172.16/12, а также наследование всех групповых адресов IPv4 из сертификата эмитента (в шестнадцатеричной форме).

   30 3d                       Extension {
      06 08 2b06010505070107     extnID        1.3.6.1.5.5.7.1.7
      01 01 ff                   critical
      04 2e                      extnValue {
         30 2c                     IPAddrBlocks {
            30 10                    IPAddressFamily {
               04 03 0001 01           addressFamily: IPv4 Unicast
                                       IPAddressChoice
               30 09                     addressesOrRanges {
                                           IPAddressOrRange
                  03 02 00 0a                addressPrefix    10/8
                                           IPAddressOrRange
                  03 03 04 b010              addressPrefix    172.16/12
                                         } -- addressesOrRanges
                                     } -- IPAddressFamily
            30 07                    IPAddressFamily {
               04 03 0001 02           addressFamily: IPv4 Multicast
                                       IPAddressChoice
               05 00                     наследуется от эмитента
                                     } -- IPAddressFamily
            30 0f                    IPAddressFamily {
               04 02 0002              addressFamily: IPv6
                                       IPAddressChoice
               30 09                     addressesOrRanges {
                                           IPAddressOrRange
                  03 07 00 200100000002      addressPrefix   2001:0:2/47
                                         } -- addressesOrRanges
                                     } -- IPAddressFamily
                                   } -- IPAddrBlocks
                                 } -- extnValue
                                  } -- расширение

Приложение C. Пример расширения AS Identifier Delegation

Ниже приведено расширение, задающее номера AS 135, 3000 — 3999 и 5001, а также наследующее все идентификаторы rdi из сертификата эмитента (в шестнадцатеричной форме).

   30 2b                       Extension {
      06 08 2b06010505070108     extnID        1.3.6.1.5.5.7.1.8
      01 01 ff                   critical
      04 1c                      extnValue {
         30 1a                     ASIdentifiers {
            a0 14                    asnum
                                       ASIdentifierChoice
               30 12                     asIdsOrRanges {
                                           ASIdOrRange
                  02 02 0087                 ASId
                                           ASIdOrRange
                  30 08                      ASRange {
                     02 02 0bb8                min
                     02 02 0f9f                max
                                             } -- ASRange
                                           ASIdOrRange
                  02 02 1389                 ASId
                                         } -- asIdsOrRanges
                                     } -- asnum
            a1 02                    rdi {
                                       ASIdentifierChoice
               05 00                     наследуется от эмитента
                                     } -- rdi
                                   } -- ASIdentifiers
                                 } -- extnValue
                               } -- расширение

Приложение D. Использование сертификатов атрибутов X.509

В этом приложении рассматриваются вопросы, связанные с предложением использовать сертификаты атрибутов (AC, как описано в [RFC3281]) для доставки от региональных регистраторов (RIR8) до организаций, являющихся конечными пользователями, «прав на использование» адресных блоков IP и идентификаторов AS.

Ресурсы идентификаторов AS и адресных блоков IP в настоящее время поддерживаются раздельно. Все организации, имеющие право использовать идентификаторы AS, получают эти полномочия напрямую от RIR. Организации, имеющие право использовать блоки адресов IP, получают свои полномочия напрямую от RIR или опосредованно через сервис-провайдеров, которые могут получить свои полномочия от ISP, а те, в свою очередь, от RIR. Отметим, что в будущем для идентификаторов AS также может возникнуть многоуровневое распределение, поэтому механизм не следует строить на базе лишь трех уровней.

В разделе 1 RFC 3281 приведены две причины, по которым использование AC может быть предпочтительней применения сертификатов открытых ключей (PKC9) в расширениях, передающих информацию о полномочиях.

«Информация о полномочиях может быть помещена в расширение PKC или отдельный сертификат атрибута (AC). Размещение информации о полномочиях в PKC обычно нежелательно по двум причинам. Во-первых, срок действия такой информации обычно отличается от срока действия привязки объекта к открытому ключу. Размещение информации о полномочиях в расширении PKC обычно сокращает полезный срок действия PKC. Во-вторых, эмитенты PKC обычно не обладают информацией о предоставлении полномочий. Это приводит к необходимости дополнительных действий эмитентов PKC по получению такой информации из уполномоченного источника.»

«По этим причинам зачастую лучше отделить информацию о полномочиях от PKC. Эта информация все равно должна быть привязана к объекту и AC обеспечивает такую привязку — это просто цифровая подпись (или сертификат) для объекта и набор атрибутов.»

В случае адресов IP и идентификаторов AS приведенные выше соображения не применимы. Во-первых, сертификаты открытых ключей выпускаются исключительно в целях предоставления полномочий, поэтому срок их действия в точности совпадает со сроком действия полномочий, который часто привязан к контрактным отношениям между эмитентом и организацией, получившей полномочия. Имена субъекта (Subject) и эмитента (Issuer) нужны лишь для создания цепочек при проверке путей сертификации, поэтому не требуется какого-либо соответствия имен физическим объектам. Значение Subject в PKC может быть произвольно выбранным выпускающим сертификат CA, что позволяет частично скрыть владельца ресурса. Во-вторых, иерархия сертификатов организована так, что эмитент сертификата обладает информацией о полномочиях.

Таким образом, два пункта из первой цитаты не являются корректными для случая распределения номеров AS и адресных блоков IP. Указанное во второй цитате также не применимо, поскольку ресурсы привязываются не к объекту, а к владельцу секретного ключа, соответствующего открытому ключу в PKC.

В RFC 3281 указано несколько требований, которым должны соответствовать сертификаты атрибутов (AC). Применительно к S-BGP наиболее важные требования перечислены ниже.

  1. Раздел 1: «данная спецификация не рекомендует использовать цепочки AC. Другие (будущие) спецификации могут включать вопросы использования цепочек AC.»

    Распределение ресурсов от IANA через RIR, ISP, DSP и присвоение конечным пользователям (организациям) требует использования цепочек по крайней мере для адресных блоков IP. Требуется описание расположения вышестоящего AC и способа обработки. Читатели могут подумать сами о способах избавления от цепочек.

  2. Параграф 4.2.9: «в параграфе 4.3 определены расширения, которые могут использоваться с этим профилем, и критерии указания уровня критичности таких расширений. При использовании любых других критических расширений AC не будет соответствовать профилю. Однако использование других некритических расширений не нарушает соответствия AC данному профилю.»

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

  3. Параграф 4.5: «эмитенту AC недопустимо быть также эмитентом PKC. Т. е. эмитент AC не может быть CA.»

    Это означает, что каждому эмитенту AC потребуется отдельный CA для выпуска PKC с открытым ключом держателя AC. Эмитент AC не может выпустить PKC для держателя, а эмитент PKC не может подписывать AC. Таким образом, каждому объекту в PKI потребуется поддерживать эмитента AC в дополнение к CA. Это будет удваивать число эмитентов при использовании сертификатов атрибутов по сравнению с числом эмитентов сертификатов и CRL при использовании PKC. При выдаче сертификатов разными органами возрастает также вероятность несогласованности.

    Модель AC из RFC 3281 предполагает, что держатель AC представляет AC проверяющей стороне, когда та желает получить обоснование атрибута или полномочий. Предполагаемое использование определенных здесь расширений не включает прямого взаимодействия между проверяющей AC стороной (NOC10) и эмитентами AC (все RIR и NOC). На основе подписи в заявляющем право использования объекте «проверяющая AC сторона» может получить PKC держателя AC, но нет прямого пути для определения субъектов AC.

  4. Параграф 5: «4. Эмитент AC должен быть непосредственно доверенным издателем AC (по конфигурации или иным способом).»

    Это не справедливо для случая прав на использование адресных блоков IP, которые выделяются через иерархию. Проверка пути сертификации AC будет требовать организации цепочек через иерархию передачи полномочий (делегирования). Организация для каждой зависимой от инфраструктуры стороны (NOC) «доверия» к каждому другому NOC не обеспечивает масштабируемости и такое «доверие» приведет в результате к отказам, которые предлагаемые механизмы должны были предотвращать. В предлагаемой здесь модели используется одна PKI с доверенным корнем, а не тысячи отдельных доверительных отношений между ISP, выпускающими AC.

    Объем работы, требуемой для проверки пригодности AC больше , нежели для расширений сертификатов, определенных в этом документе в рамках PKC. Число проверяемых сертификатов для случая AC будет вдвое больше. Это может существенно увеличить издержки, связанные с использованием AC.

Литература

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

[IANA-AFI] http://www.iana.org/assignments/address-family-numbers.

[IANA-SAFI] http://www.iana.org/assignments/safi-namespace.

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

[RFC3280] Housley, R., Polk, W., Ford, W. and D. Solo, «Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile», RFC 3280, April 2002.

[X.690] ITU-T Recommendation X.690 (1997) | ISO/IEC 8825-1:1998, «Information Technology — ASN.1 Encoding Rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)».

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

[RFC791] Postel, J., «Internet Protocol — DARPA Internet Program Protocol Specification», RFC 791, September 1981.

[RFC1142] D. Oran, Ed., «OSI IS-IS Intra-domain Routing Protocol», RFC 1142, February 1990.

[RFC1771] Rekhter, Y. and T. Li, Eds., «A Border Gateway Protocol 4 (BGP-4)», RFC 1771, March 1995.

[RFC1930] Hawkinson, J. and T. Bates, «Guidelines for creation, selection, and registration of an Autonomous System (AS)», BCP 6, RFC 1930, March 1996.

[RFC2050] Hubbard, K., Kosters, M., Conrad, D., Karrenberg, D. And J. Postel, «Internet Registry IP Allocation Guidelines», BCP 12, RFC 2050, November 1996.

[RFC3513] Hinden, R. and S. Deering, «Internet Protocol Version 6 (IPv6) Addressing Architecture», RFC 3513, April 2003.

[RFC3281] Farrell, S. and R. Housley, «An Internet Attribute Certificate Profile for Authorization», RFC 3281, April 2002.

[RFC4291] R. Hinden, S. Deering, «IP Version 6 Addressing Architecture», RFC 4291, February 2006.11

[S-BGP] S. Kent, C. Lynn, and K. Seo, «Secure Border Gateway Protocol (S-BGP),» IEEE JSAC Special Issue on Network Security, April 2000.

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

Charles Lynn

BBN Technologies

10 Moulton St.

Cambridge, MA 02138

USA

Phone: +1 (617) 873-3367

EMail: CLynn@BBN.Com

Stephen Kent

BBN Technologies

10 Moulton St.

Cambridge, MA 02138

USA

Phone: +1 (617) 873-3988

EMail: Kent@BBN.Com

Karen Seo

BBN Technologies

10 Moulton St.

Cambridge, MA 02138

USA

Phone: +1 (617) 873-3152

EMail: KSeo@BBN.Com


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

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

nmalykh@gmail.com

Полное заявление авторских прав

Copyright (C) The Internet Society (2004). К этому документу применимы права, лицензии и ограничения, указанные в BCP 78, и, за исключением указанного там, авторы сохраняют свои права.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Интеллектуальная собственность

IETF не принимает какой-либо позиции в отношении действительности или объема каких-либо прав интеллектуальной собственности (Intellectual Property Rights или IPR) или иных прав, которые, как может быть заявлено, относятся к реализации или использованию описанной в этом документе технологии, или степени, в которой любая лицензия, по которой права могут или не могут быть доступны, не заявляется также применение каких-либо усилий для определения таких прав. Сведения о процедурах IETF в отношении прав в документах RFC можно найти в BCP 78 и BCP 79.

Копии раскрытия IPR, предоставленные секретариату IETF, и любые гарантии доступности лицензий, а также результаты попыток получить общую лицензию или право на использование таких прав собственности разработчиками или пользователями этой спецификации, можно получить из сетевого репозитория IETF IPR по ссылке http://www.ietf.org/ipr.

IETF предлагает любой заинтересованной стороне обратить внимание на авторские права, патенты или использование патентов, а также иные права собственности, которые могут потребоваться для реализации этого стандарта. Информацию следует направлять в IETF по адресу ietf-ipr@ietf.org.


1Regional Internet registry.

2Internet service provider.

3Autonomous system.

4Address Family Identifier.

5Subsequent Address Family Identifier

6Этот абзац предложено исключить из спецификации. См. https://www.rfc-editor.org/errata/eid2537. Прим. перев.

7RFC 1142 не содержит спецификации IDRP, она задана в ISO 10747. См. https://www.rfc-editor.org/errata/eid836. Прим. перев.

8Regional Internet Registry.

9Public key certificate.

10Network operations center. Прим. перев.

11В оригинале эта ссылка отсутствует (документа еще не было). См. https://www.rfc-editor.org/errata/eid1887. Прим. перев.

Рубрика: RFC | Комментарии к записи RFC 3779 X.509 Extensions for IP Addresses and AS Identifiers отключены

RFC 3746 Forwarding and Control Element Separation (ForCES) Framework

Network Working Group                                            L. Yang
Request for Comments: 3746                                   Intel Corp.
Category: Informational                                         R. Dantu
                                                    Univ. of North Texas
                                                             T. Anderson
                                                             Intel Corp.
                                                                R. Gopal
                                                                   Nokia
                                                              April 2004

Схема разделения пересылки и управления ForCES

Forwarding and Control Element Separation (ForCES) Framework

PDF

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

Этот документ содержит информацию для сообщества Internet. Документ не задает каких-либо стандартов Internet. Распространение документа не ограничивается.

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

Copyright (C) The Internet Society (2004). All Rights Reserved.

Аннотация

Этот документ определяет архитектурную модель для сетевых элементов ForCES1 и указывает связанные с ней объекты и их взаимодействия.

1. Определения

1.1. Уровни требований

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

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

Термины, связанные с требованиям к ForCES, определены в [4] и в этом документе представлены наиболее тесно связанные с темой определения.

Addressable Entity (AE) – адресуемый объект (элемент)

Физическое сетевое устройство, которое непосредственно адресуется в данной технологии соединения. Например, в сетях IP — это устройства, к которым можно обращаться по адресу IP, а в матрице коммутации (switch fabric) — это устройства, к которым можно обращаться по номеру порта в матрице.

Physical Forwarding Element (PFE) – физический элемент пересылки

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

PFE Partition – раздел PFE

Логическая часть PFE, содержащая некоторое подмножество ресурсов (например, портов, памяти, записей таблицы пересылки), доступных в PFE. Эта концепция аналогична выделению ресурсов для виртуального элемента коммутации, описанного в [9].

Physical Control Element (PCE) – физический элемент управления

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

PCE Partition – раздел PCE

Логическая часть PCE, содержащая некое подмножество ресурсов, доступных в PCE.

Forwarding Element (FE) – элемент пересылки

Логический элемент, реализующий протокол ForCES. Элементы FE используют базовое оборудование для обработки каждого пакета и управляются (контролируются) одним или множеством CE по протоколу ForCES. FE может быть отдельным элементом (или PFE), часть PFE или множеством PFE.

Control Element (CE) – элемент управления

Логический объект, который реализует протокол ForCES и инструктирует один или множество FE по части обработки пакетов. Функциональность CE включает исполнение протоколов управления и сигнализации. CE может состоять из частей PCE или целых PCE.

ForCES Network Element (NE) – элемент сети ForCES

Объект, состоящий из одного или множества CE и одного или множества FE. NE обычно скрывает свою внутреннюю структуру от внешних наблюдателей и выглядит с их точки зрения единой точкой управления.

Pre-association Phase – фаза до объединения

Интервал времени, в течение которого менеджер FE (см. ниже) и менеджер CE (см. ниже) определяют каким FE и CE следует быть частью одного сетевого элемента. Некоторые элементы NE могут относится к фазе до объединения, а другие — к фазе после объединения.

Post-association Phase – фаза после объединения

Интервал времени, в течение которого FE знает управляющие им устройства CE и наоборот, включая интервал, в течение которого CE и FE организуют связи между собой.

ForCES Protocol – протокол ForCES

Хотя в архитектуре ForCES может применяться множество протоколов, термин «протокол ForCES» относится лишь к протоколу ForCES фазы после объединения (см. ниже).

ForCES Post-Association Phase Protocol – протокол ForCES после объединения

Протокол, используемый в коммуникациях между CE и FE после объединения. Этот протокол не применяется для коммуникаций CE-CE, FE-FE или между менеджерами FE и CE. Протокол ForCES работает в режиме «ведущий-ведомый» (master-slave) где FE являются ведомыми, а CE — ведущими. Этот протокол включает управление коммуникационным каналом (например, организацию соединения, обмен heartbeat) и сами управляющие сообщения. Протокол может представлять единое целое или набор совместно работающих протоколов. Эта информация будет представлена в отдельном документе.

FE Manager – менеджер FE

Логический элемент, которые работает в фазе до объединения и отвечает за определение CE, с которыми элементу FE следует взаимодействовать. Этот процесс называется обнаружением CE и может включать определение менеджером FE возможностей доступных CE. Менеджер FE может применять все, что угодно от статической конфигурации до протокола фазы до объединения (см. ниже) для определения используемого CE. Однако протокол фазы до объединения выходит за рамки документа. Будучи логическим устройством менеджер FE может быть физически объединен с любыми логическими элементами, упомянутыми в этом разделе.

CE Manager (CEM) – менеджер элементов управления

Логический объект, который отвечает за генерацию базовых задач управления CE. Используется, в частности, на этапе до объединения (pre-association phase) для определения FE, с которым CE следует взаимодействовать. Этот процесс называется обнаружением FE и может включать определение менеджером CE возможностей доступных FE. Менеджер CE может использовать все, что угодно от статической конфигурации до протокола фазы до объединения (см. ниже) для определения используемых FE. Протокол фазы до объединения выходит за рамки документа. Будучи логическим элементом, менеджер CE может быть физически объединен с любыми из логических элементов, упомянутых в этом разделе.

Pre-association Phase Protocol – протокол фазы до объединения

Протокол взаимодействия менеджеров FE и CE для определения используемых элементов CE и FE. Этот протокол может включать механизм определения возможностей CE и/или FE. Отметим, что этот процесс определения возможностей полностью отделен (и не служит заменой) от процесса, используемого протоколом ForCES. Однако эти два механизма определения возможностей могут использовать одну модель FE.

FE Model – модель элемента пересылки

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

ForCES Network Element (NE) – элемент сети ForCES

Объект, состоящий из одного или множества CE и одного или множества FE. Для внешних наблюдателей NE представляется единой точкой управления. Обычно NE скрывает свою внутреннюю структуру от внешних наблюдателей.

ForCES Protocol Element – элемент протокола ForCES

FE или CE.

Intra-FE topology – внутренняя топология FE

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

FE Topology — топология FE

Представление соединений между множеством FE в одном NE. Иногда это называют внешней топологией FE, чтобы отличать от внутренней топологии FE, используемой моделью FE.

Inter-FE topology – внешняя топология FE

См. FE Topology.

2. Введение в ForCES

Элементы сети IP (NE2) представляются внешнему наблюдателю монолитной частью сетевого оборудования, например, маршрутизатором, транслятором NAT, межсетевым экраном, балансировщиком нагрузки. Однако внутри NE (например, маршрутизатор) имеет множество логически разделенных элементов, которые совместно обеспечивают заданную функциональность (например, маршрутизацию). Существует два типа компонент в элементах сети — элементы управления CE3 на уровне управления и элементы пересылки FE4 на уровне управления (или уровне данных). Элементами пересылки обычно являются контроллеры ASIC, сетевые процессоры или устройства на основе процессоров общего назначения, которые обеспечивают операции пути данных для каждого пакета. Элементы управления обычно представляют собой процессоры общего назначения, которые реализуют функции управления типа протоколов сигнализации и маршрутизации.

-------------------------       -------------------------
|  Control Blade A      |       |  Control Blade B      |
|       (CE)            |       |          (CE)         |
-------------------------       -------------------------
        ^   |                           ^    |
        |   |                           |    |
        |   V                           |    V
---------------------------------------------------------
|            Магистраль матрицы коммутации              |
---------------------------------------------------------
        ^  |            ^  |                   ^  |
        |  |            |  |     . . .         |  |
        |  V            |  V                   |  V
    ------------    ------------           ------------
    |Router    |    |Router    |           |Router    |
    |Blade #1  |    |Blade #2  |           |Blade #N  |
    |   (FE)   |    |   (FE)   |           |   (FE)   |
    ------------    ------------           ------------
        ^  |            ^  |                   ^  |
        |  |            |  |     . . .         |  |
        |  V            |  V                   |  V

Рисунок 1. Пример конфигурации маршрутизатора с раздельными модулями.


Целью ForCES является определение основы (модели) и связанных с ней протоколов для стандартизации информационного обмена между уровнями управления и пересылки. Наличие стандартных механизмов позволяет элементам CE и FE стать физически разделенными стандартными компонентами. Это физическое разделение обеспечивает архитектуре ForCES некоторые преимущества. Отдельные компоненты позволяют их производителям сосредоточится именно на них, не разбираясь в других компонентах. Стандартный протокол обеспечивает возможность взаимодействия между элементами CE и FE разных производителей и это позволяет разработчикам систем интегрировать CE и FE от разных производителей. Это взаимодействие транслируется в увеличение числа вариантов выбора и повышение гибкости систем. В целом ForCES позволит ускорить развитие уровней управления и пересылки с сохранением взаимодействия. Масштабирование в этой архитектуре также упрощается за счет возможности добавления дополнительных компонент управления или пересылки в существующие элементы сети без их полного обновления.

Один из примеров такого разделения реализуется на уровне блейдов (модулей). На рисунке 1 показан пример конфигурации маршрутизатора с двумя модулями управления и множеством моделей пересылки, соединенных между собой по шине матрицы коммутации (switch fabric backplane). В такой конфигурации шасси модули управления являются элементами CE, модули маршрутизации — элементами FE, а системная шина обеспечивает соединения между всеми модулями. Control blade A может быть первичным CE, а B может служить для резервирования. Возможно также использование резервной матрицы коммутации для повышения надежности. Современные маршрутизаторы такого типа используют фирменные интерфейсы для обмена сообщениями между элементами CE и FE. Задачей ForCES является замена таких фирменных интерфейсов стандартным протоколом. С помощью стандартного протокола типа ForCES, реализованного во всех модулях (blade), становится возможным взаимодействие модулей управления от компании X с модулями пересылки от компании Y и их совместное использование в одном шасси.

    -------         -------
    | CE1 |         | CE2 |
    -------         -------
       ^               ^
       |               |
       V               V
============================================ Ethernet
    ^       ^       . . .   ^
    |       |               |
    V       V               V
 -------  -------         --------
 | FE#1|  | FE#2|         | FE#n |
 -------  -------         --------
   ^  |     ^  |            ^  |
   |  |     |  |            |  |
   |  V     |  V            |  V

Рисунок 2. Пример конфигурации маршрутизатора в виде отдельных устройств.


Другой пример физического разделения CE и FE может быть реализован на уровне устройств (box). В такой конфигурации все CE и FE представляют собой автономные устройства, соединенные через скоростную ЛВС (например, Gigabit Ethernet). Эти раздельные CE и FE находятся в одной локальной сети (без промежуточных маршрутизаторов). Элементы CE и FE взаимодействуют между собой по протоколу ForCES и набор этих CE и FE становится единым маршрутизатором с точки зрения внешнего наблюдателя. Пример показан на рисунке 2.

В обоих примерах для соединений CE-FE и FE-FE используется одна физическая среда. Однако это совсем не обязательно. Одной из причин использования разных сред является то, что для соединений между CE и FE не требуется такой высокой скорости, как для соединений между элементами FE, которые существенно дороже. Раздельные соединения повышают также уровень надежности и резервирования для NE.

-------------------------------------------------
|       |       |       |       |       |       |
|OSPF   |RIP    |BGP    |RSVP   |LDP    |. . .  |
|       |       |       |       |       |       |
-------------------------------------------------
|               Интерфейс ForCES                |
-------------------------------------------------
                        ^   ^
            Управляющие |   | Пакеты 
              сообщения |   | данных
                 ForCES |   | (например, маршрутизации)
                        v   v
-------------------------------------------------
|               Интерфейс ForCES                |
-------------------------------------------------
|       |       |       |       |       |       |
|LPM Fwd|Meter  |Shaper |NAT    |Classi-|. . .  |
|       |       |       |       |fier   |       |
-------------------------------------------------
|                Ресурсы FE                     |
-------------------------------------------------

Рисунок 3. Примеры функций CE и FE.


Некоторые примеры функций управления, которые могут быть реализованы в элементах CE, включают протоколы маршрутизации типа RIP, OSPF и BGP, протоколы управления и сигнализации типа RSVP5, LDP6 для MPLS и т. п. Примерами функций пересылки в FE служат узлы пересылки LPM7, классификаторы, формирователи трафика, измерители, NAT8 и т. п. На рисунке 3 показаны примеры функций CE и FE. Любой данный элемент NE может содержать в себе один или множество таких CE и FE, функционирующих в нем. Рисунок также показывает использование протокола ForCES для транспортировки управляющих сообщений самого протокола ForCES и пакетов данных, которые адресованы функциям управления в элементах CE или созданы ими (например, пакеты протокола маршрутизации). Более подробная информация приведена в параграфе 4.2.4.

Набор требований для разделения пересылки и управления приведен в [4]. Этот документ описывает архитектуру ForCES, соответствующую архитектурным требованиям [4], и определяет основу для сетевых элементов ForCES и связанных с ними объектов для упрощения спецификации протокола. Когда это нужно, в документе используется множество примеров иллюстрирующих проблемы и/или возможные решения в ForCES. Это просто примеры и не следует считать их единственным или заданным путем решения той или иной задачи. Предполагается, что рабочая группа ForCES выпустит отдельный документ со спецификацией протокола ForCES.

3. Архитектура

В этом разделе определяется архитектурная основа ForCES и связанные с ней логические компоненты. Схема ForCES определяет компоненты сетевых элементов ForCES (NE), включающие некоторые вспомогательные компоненты. Эти элементы могут соединяться между собой разными вариантами топологии для гибкой обработки пакетов.

                       ---------------------------------------
                       | Сетевой элемент ForCES              |
--------------   Fc    | --------------      --------------  |
| CE Manager |---------+-|     CE 1   |------|    CE 2    |  |
--------------         | |            |  Fr  |            |  |
      |                | --------------      --------------  |
      | Fl             |         |  |    Fp       /          |
      |                |       Fp|  |----------| /           |
      |                |         |             |/            |
      |                |         |             |             |
      |                |         |     Fp     /|----|        |
      |                |         |  /--------/      |        |
--------------     Ff  | --------------      --------------  |
| FE Manager |---------+-|     FE 1   |  Fi  |     FE 2   |  |
--------------         | |            |------|            |  |
                       | --------------      --------------  |
                       |   |  |  |  |          |  |  |  |    |
                       ----+--+--+--+----------+--+--+--+-----
                           |  |  |  |          |  |  |  |
                           |  |  |  |          |  |  |  |
                             Fi/f                   Fi/f
    Fp — интерфейс CE-FE
    Fi — интерфейс FE-FE
    Fr — интерфейс CE-CE
    Fc — интерфейс между CE Manager и CE
    Ff — интерфейс между FE Manager и FE
    Fl — интерфейс между CE Manager и FE Manager
    Fi/f — внешний интерфейс FE

Рисунок 4. Архитектура ForCES.

На рисунке 4 показаны логические компоненты архитектуры ForCES и их взаимосвязи. Внутри сетевого элемента ForCES имеется два типа компонент — элементы управления CE и элементы пересылки FE. Схема предполагает наличие множества экземпляров CE и FE внутри одного NE. Каждый элемент FE включает один или множество интерфейсов с физической средой для приема пакетов из внешнего мира и передачи своих пакетов вовне. Комбинация этих интерфейсов FE образует внешние интерфейсы элемента NE. Кроме внешних интерфейсов требуется также наличие того или иного типа соединений между элементами внутри NE, позволяющих CE и FE взаимодействовать (один элемент FE может пересылать пакеты другому FE). На рисунке также показаны два объекта, не относящихся к ForCES NE — CE Manager и FE Manager. Эти два дополнительных объекта обеспечивают настройку соответствующих CE и FE в фазе до их объединения (pre-association phase, см. параграф 4.1).

Для удобства логические взаимодействия между этими компонентами помечены опорными точками Fp, Fc, Ff, Fr, Fl и Fi, как показано на рисунке 4. Внешние интерфейсы FE имеют метку Fi/f. Более подробное описание этих интерфейсов приведено ниже. Все эти опорные точки важны для понимания архитектуры ForCES, однако протокол ForCES определен только для одного интерфейса Fp.

Интерфейс между двумя ForCES NE идентичен интерфейсу между двумя традиционными маршрутизаторами и эти два NE обмениваются протокольными пакетами через внешние интерфейсы Fi/f. Подключение ForCES NE к имеющимся маршрутизаторам «прозрачно9».

3.1. Элементы управления и интерфейс Fr

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

Множество CE может использоваться для резервирования, распределения нагрузки, распределенного управления и других задач. В случае резервирования один или несколько элементов CE находятся в готовности принять на себя работу отказавшего активного CE. В случае распределения нагрузки одновременно активны два или более CE и все запросы, которые могут обслуживаться одним CE, могут также быть обработаны любым другим CE. Для резервирования и распределения нагрузки вовлеченные CE имеют эквивалентные возможности. Единственным различием для этих случаев является число одновременно активных CE. Для распределенного управления активны два или более CE одновременно, но каждый из них отвечает только за свою часть запросов.

При наличии множества CE в элементе ForCES NE, их внутренняя организация определяется реализацией и выходит за рамки ForCES. Элементы CE полностью отвечают за координацию своих действий чрез интерфейс Fr для обеспечения согласованности и синхронизации. Однако ForCES не определяет реализацию или протокол взаимодействия между CE и даже не задает распределение функций между ними. Тем не менее, ForCES будет поддерживать механизмы резервирования и отказоустойчивости CE и предполагается, что разработчики будут реализовать эти решения в рамках модели.

3.2. Элементы пересылки и интерфейс Fi

FE является логическим объектом, который реализует протокол ForCES и использует базовое оборудование для обработки и обслуживания каждого пакета под управлением CE. Возможно разделение одного физического FE на множество логических элементов FE. Возможно также использование одним FE множества физических элементов FE. Отображение между физическими и логическими элементами FE выходит за рамки ForCES. Например, логическая часть физического FE может создаваться путем выделения некоторой части каждого из ресурсов (порты, память, записи таблицы пересылки), доступных ForCES в физическом FE, каждому логическому элементу FE. Такая концепция виртуализации FE аналогична виртуальным элементам коммутации, описанным в [9]. Если виртуализация FE происходит только до объединения, она не оказывает влияния на ForCES. Однако если виртуализация приводит к изменению ресурсов существующих FE (уже участвующих в ForCES после объединения), протокол ForCES должен обеспечить возможность информирования CE о таких изменениях с помощью асинхронных сообщений (требование 6 раздела 410 в [4]).

Элементы FE выполняют все функции обработки пакетов в соответствии с указаниями CE, не проявляя своей инициативы. Таким образом, элементы FE являются ведомыми и делают только то, что им сказано. Элементы FE могут взаимодействовать с одним или множеством CE через интерфейс Fp. FE не знают об избыточности CE, распределении нагрузки или распределенном управлении, они просто воспринимают команды от любого CE, имеющего полномочия управления и CE самостоятельно координируют свои действия для обеспечения резервирования, распределения нагрузки или распределенного управления. Идея состоит в том, чтобы сделать FE максимально простыми и «тупыми» и занимающимися только функциями обработки пакетов. Если протокольный обмен ForCEs на задает иного, каждый элемент FE будет обрабатывать полномочные входящие команды, направленные ему, в порядке их поступления.

Например, на рисунке 5 элементы FE1 и FE2 могут быть настроены на восприятие команд от основного (CE1) и резервного (CE2) элементов CE. При обнаружении отказа CE1 (возможно через интерфейс Fr или Fp), CE2 будет принимать на себя функции CE1. Этот вопрос выходит за рамки ForCES и в дальнейшем не рассматривается.

Распределенное управления может быть реализовано похожим способом без привлечения интеллекта FE. Например, FE могут быть настроены на обнаружение пакетов протокола RSVP и BGP с пересылкой пакетов RSVP одному CE, а BGP — другому. Поэтому элементам FE могут потребоваться функции фильтрации для пересылки пакетов нужным CE.

-------   Fr  -------
| CE1 | ------| CE2 |
-------       -------
  |   \      /   |
  |    \    /    |
  |     \  /     |
  |      \/Fp    |
  |      /\      |
  |     /  \     |
  |    /    \    |
-------  Fi   -------
| FE1 |<----->| FE2 |
-------       -------

Рисунок 5. Пример избыточности CE.


Эта архитектура позволяет присутствовать множеству элементов FE в одном NE. В [4] требуется, чтобы протокол ForCES был способен обеспечивать масштабирование по меньшей мере до сотен FE (требование 11 раздела 41 в [4]). Каждый из этих FE может иметь свой набор функций обработки пакетов с разными интерфейсами в среду передачи. FE отвечают за базовую поддержку связности на канальном уровне с другими FE и внешними объектами. Многие среды канального уровня включают изощренные протоколы управления. Протокол FORCES (через интерфейс Fp) будет способен переносить сообщения этих протоколов, чтобы в соответствии с «тупой» моделью FE элементы CE могли обеспечивать нужный интеллект и управление такими средами.

При наличии множества FE модель ForCES требует, чтобы пакеты могли поступать в NE через один элемент FE и покидать NE через другой FE (требование 3 раздела 41 в [4]). Пакеты, которые приходят в NE через один FE и выходят из NE через другой FE, передаются между элементами FE через интерфейс Fi. Опорная точка Fi может использоваться FE для определения своей (между FE) топологии, возможно в фазе до объединения. Интерфейс Fi отделен от интерфейса Fp и в настоящее время не определяется протоколом ForCES.

FE могут соединяться между собой в разных вариантах топологии и обработка пакета может проходить через несколько FE в этой топологии. Поэтому логическое течение (поток) пакетов может отличаться от физической топологии FE. На рисунке 6 представлены некоторые варианты топологии. Когда требуется пересылать пакеты между FE, элементам CE нужно знать топологию FE. Элемент CE может запросить у FE топологию по протоколу ForCES, но FE не обязаны представлять такую информацию элементам CE. Поэтому топологическая информация FE может собираться другими путями, выходящими за рамки протокола ForCES (например, протокол определения топологии inter-FE).

3.3. Менеджеры CE

Менеджеры CE отвечают за определение элементов FE, которыми CE следует управлять. Для менеджеров CE уместно жесткое задание элементов FE, с которыми его элементам CE следует взаимодействовать. Менеджер CE может быть физически встроен в CE и реализован как простой механизм настройки конфигурации CE (например, с клавиатуры). Кроме того, менеджеры CE могут быть физически и логически отдельными объектами, которые задают в CE данные элементов FE с помощью механизмов типа COPS-PR [7] или SNMP [5].

            -----------------
            |      CE       |
            -----------------
             ^      ^      ^
            /       |       \
           /        v        \
          /      -------      \
         /    +->| FE3 |<-+    \
        /     |  |     |  |     \
       v      |  -------  |      v
     -------  |           |  -------
     | FE1 |<-+           +->| FE2 |
     |     |<--------------->|     |
     -------                 -------
        ^  |                   ^  |
        |  |                   |  |
        |  v                   |  v
    (a) Полносвязные соединения между FE1, FE2 и FE3

                -----------
                |   CE    |
                -----------
               ^ ^       ^ ^
              /  |       |  \
       /------   |       |   ------\
       v         v       v          v
   -------   -------   -------   -------
   | FE1 |<->| FE2 |<->| FE3 |<->| FE4 |
   -------   -------   -------   -------
     ^  |     ^  |       ^  |     ^  |
     |  |     |  |       |  |     |  |
     |  v     |  v       |  v     |  v
   (b) Множество FE, соединенных в daisy-цепочку.

                   ^ |
                   | v
                -----------
                |   FE1   |<-----------------------|
                -----------                        |
                  ^    ^                           |
                 /      \                          |
          | ^   /        \   ^ |                   V
          v |  v          v  | v                ----------
        ---------        ---------              |        |
        | FE2   |        |  FE3  |<------------>|   CE   |
        ---------        ---------              |        |
            ^  ^          ^                     ----------
            |   \        /                        ^  ^
            |    \      /                         |  |
            |    v     v                          |  |
            |   -----------                       |  |
            |   |   FE4   |<----------------------|  |
            |   -----------                          |
            |      |  ^                              |
            |      v  |                              |
            |                                        |
            |----------------------------------------|
        (c) Множество FE, соединенных в кольцо.

Рисунок 6. Примеры топологии FE.

3.4. Менеджеры FE

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

4. Фазы работы

Элементы FE и CE требуют некоторой начальной настройки конфигурации до того, как начнется обмен информации между ними и работа в качестве единого элемента сети. Данная схема предусматривает две фазы работы — до объединения (pre-association) и после объединения (post-association).

4.1. До объединения

Фазой Pre-association называется период, в течение которого FE Manager и CE Manager определяют каким FE и CE следует быть часть. Одного сетевого элемента. Протокол, используемый в этой фазе, может включать целиком или частично обмен сообщениями через интерфейсы Fl, Ff и Fc. Однако все это не обязательно и не входит в протокол ForCES.

4.1.1. Интерфейс Fl

Менеджеры CE и FE могут взаимодействовать через интерфейс Fl в фазе до объединения для того, чтобы определить отдельные CE и FE или множества этих элементов, которые нужно связать (объединить). Коммуникации через интерфейс Fl не являются в этой архитектуре обязательными. Требований к интерфейсу не предъявляется.

Менеджеры CE и FE могут управляться разными операторами. Оператор менеджера CE может не пожелать раскрытия каких-либо характеристик своих CE кому либо сверх указанного набора менеджеров FE. Аналогично и оператор менеджера FE может пожелать скрыть характеристики FE от всех, кроме уполномоченных объектов. Поэтому для менеджеров CE и FE может потребоваться проверка подлинности друг друга. Показанный ниже обмен сообщениями между менеджерами CE и FE может потребовать других функций защиты типа приватности, безотзывности, «свежести, и целостности.

FE Manager      FE               CE Manager     CE
 |              |                 |             |
 |              |                 |             |
 |(обмен данными защиты)          |             |
1|<------------------------------>|             |
 |              |                 |             |
 |(список CE и их атрибуты)       |             |
2|<-------------------------------|             |
 |              |                 |             |
 |(список FE и их атрибуты)       |             |
3|------------------------------->|             |
 |              |                 |             |
 |              |                 |             |
 |<----------------Fl------------>|             |

Рисунок 7. Пример обмена сообщениями через интерфейс Fl.

После выполнения требуемых функций защиты менеджеры CE и FE начинают взаимодействие для определения элементов CE и FE между которыми следует организовать взаимодействие (объединить). Менеджеры CE и FE должны, как минимум, знать о наличии доступных CE и FE. Этот процесс обнаружения может включать определение одним или обоими менеджерами возможностей обнаруженных протокольных элементов ForCES. На рисунке 7 показан пример результативного обмена сообщениями между менеджерами CE и FE через интерфейс Fl.

4.1.2. Интерфейс Ff

Интерфейс Ff служит для информирования элементов пересылки о решениях по связыванию, принятых менеджером FE в фазе pre-association. Только уполномоченные элементы могут давать FE инструкции по части CE, которым следует управлять им. Поэтому требуется функции защиты конфиденциальности, целостности, «свежести» и проверка подлинности между менеджером FE и элементами FE, когда менеджер удален от элементов FE. После организации приемлемой защиты менеджер FE через интерфейс информирует элементы FE о присоединении к новому NE или выходе из существующего NE. Менеджер FE может также задать уникальные идентификаторы элементам FE, которые будут использовать этот интерфейс. Идентификаторы FE полезны после объединения для представления топологии FE. На рисунке 8 показан пример обмена сообщениями через опорную точку Ff.

FE Manager      FE               CE Manager     CE
 |              |                |             |
 |              |                |             |
 |(обмен данными защиты)         |(обмен данными защиты)         
1|<------------>|аутентификация 1|<----------->|аутентификация
 |              |                |             |
 |(FE ID, атрибуты)              |(CE ID, атрибуты)
2|<-------------|запрос         2|<------------|запрос
 |              |                |             |
3|------------->|отклик         3|------------>|отклик
 |(соответствующий CE ID)        |(соответствующий FE ID)
 |              |                |             |
 |              |                |             |
 |<-----Ff----->|                |<-----Fc---->|

Рисунок 8. Примеры обмена сообщениями через интерфейсы Ff и Fc.

Отметим, что функциональность менеджера FE может быть реализована там же, где FE (например, ручной ввод IP-адресов CE с клавиатуры) и в этом случае интерфейс сводится к встроенной функции.

4.1.3. Интерфейс Fc

Интерфейс Fc служит для информирования элементов управления о решениях по связи (объединению) принятых менеджерами CE в фазе pre-association. Для случая удаленного менеджера CE только уполномоченные объекты могут давать CE инструкции по управления элементами FE. Защита конфиденциальности и целостности, а также «свежесть» и проверка подлинности требуются на интерфейсе в такой конфигурации. После обеспечения подходящей защиты менеджер CE инструктирует элементы CE, какими FE им следует управлять и как следует это делать. На рисунке 8 показан пример обмена сообщениями через интерфейс Fc.

Как и для FE, возможны ситуации совместного размещения менеджера и элементов CE без использования протокола для реализации этой функции.

4.2. Фаза после объединения и интерфейс Fp

Фаза Post-association (после объединения) представляет собой период времени, когда элементы FE и CE уже имеют информацию (настроены) для взаимодействия, и включает организацию связи и коммуникации в установившемся состоянии. Обмен информацией между CE и FE происходит через интерфейс Fp (p означает протокол). Протокол ForCES является единственным протоколом обмена данными через интерфейс Fp.

4.2.1. Близость элементов CE и FE и соединения между ними

Рабочая группа ForCES осознанно выбрала для первое версии ForCES «очень близкое» размещение элементов CE и FE в сетях IP. Очень близкими считаются элементы управления и пересылки, расположенные в одном физическом устройстве (box) или разделенные одним интервалом пересылки через локальную сеть11 ([8]). Элементы CE и FE могут быть связаны с использованием разных технологий, включая соединения Ethernet, системные шины (backplane), матрицы коммутации ATM (ячейки) и т. п. Протоколу ForCES следует поддерживать все эти технологии (см. требование 1 в разделе 412 документа [4]). Когда элементы CE и FE разделены более чем одним интервалом маршрутизации L3 (hop), протокол ForCES будет использовать существующий протокол L4, соответствующий RFC 2914 [3], с подходящими гарантиями, защитой и контролем перегрузок (например, TCP или SCTP) в качестве транспорта.

4.2.2. Организация связи (объединение)

 FE                      CE
 |                       |
 |(обмен данными защиты) |
1|<--------------------->|
 |                       |
 |(Можно присоединиться к NE?)
2|---------------------->|
 |                       |
 |(Какой тип FE у вас? - запрос возможностей)
3|<----------------------|
 |                       |
 |(Вот мои функции/состояние FE: используйте модель для описания)
4|---------------------->|
 |                       |
 |(Начальная конфигурация для FE - необязательна)
5|<----------------------|
 |                       |
 |(Я готов. Можно начинать?)
6|---------------------->|
 |                       |
 |(Вперед!)              |
7|<----------------------|
 |                       |

Рисунок 9. Пример обмена сообщениями между CE и FE через интерфейс Fp для организации NE.

Пример на рисунке 9 показывает некий обмен сообщениями перед тем, как организация связи (объединение) между CE и FE будет завершена. Инициатором соединения может быть CE или FE.

Согласование защиты требуется для взаимной проверки подлинности взаимодействующих конечных точек до начала обмена сообщениями. В это согласование следует включать взаимную аутентификацию и проверку полномочий CE и FE, но детали этого согласования зависят от решения для безопасности выбранного протоколом ForCES. Проверка полномочий может быть простым просмотром списка разрешенных точек, представленного менеджером FE или CE в фазе до объединения. Проверки подлинности и полномочий должны завершиться успешно до того, как будет организована ассоциация (объединение). При отказе аутентификации или проверки полномочий конечной точке не разрешается присоединение к NE. После успешного согласования защиты необходимость аутентификации и защиты конфиденциальности сообщений сохраняется для обмена информацией между CE и FE, если не существует той или иной формы физической защиты. Если пакет не проходит проверку подлинности, он должен быть отброшен и может передаваться уведомление для сигнала отправителю о возможной атаке. Более подробное рассмотрение вопросов безопасности для ForCES приведено в разделе 8.

После успешного согласования защиту FE нужно сообщить элементу CE свои возможности и можно также проинформировать о топологии соединений с другими FE. Возможности FE следует представлять моделью FE в соответствии с требованиями [4] (раздел 6, требование 1). Модель позволит FE описать тип выполняемых им функций обработки пакетов, собираемой статистики, возможных событий и т. п. После того, как эта информация станет доступна CE, тот может передать элементу FE начальную конфигурацию, чтобы FE мог корректно начать прием и обработку пакетов. По окончании обмена требуемой начальной информацией процесс объединения завершается. Обработка и пересылка пакетов в FE не может начаться до организации связи (объединения). После объединения элементы CE и FE переходят в режим установившейся связи (steady-state communication).

4.2.3. Установившаяся связь

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

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

 FE                      CE
 |                       |
 |(Добавить маршруты)    |
1|<----------------------|
 |                       |
 |(Добавлено)            |
2|---------------------->|
 |                       |
 |                       |
 |(Запрос статистики)    |
1|<----------------------|
 |                       |
 |(Отклик со статистикой)|
2|---------------------->|
 |                       |
 |                       |
 |(Мой порт down, номер порта #.)
1|---------------------->|
 |                       |
 |(Здесь новая таблица пересылки)
2|<----------------------|
 |                       |

Рисунок 10. Примеры обмена сообщениями между CE FE через Fp в установившемся состоянии.

4.2.4. Пакеты данных через Fp

---------------------           ----------------------
|                   |           |                    |
|    +--------+     |           |     +--------+     |
|    |CE(BGP) |     |           |     |CE(BGP) |     |
|    +--------+     |           |     +--------+     |
|        |          |           |          ^         |
|        |Fp        |           |          |Fp       |
|        v          |           |          |         |
|    +--------+     |           |     +--------+     |
|    |  FE    |     |           |     |   FE   |     |
|    +--------+     |           |     +--------+     |
|        |          |           |          ^         |
| Router |          |           | Router   |         |
| A      |          |           | B        |         |
---------+-----------           -----------+----------
         v                                 ^
         |                                 |
         |                                 |
         ------------------->---------------

Рисунок 11. Пример передачи пакета данных между двумя NE.


Пакеты протокола уровня управления (например, RIP, сообщения OSPF), адресованные любому из интерфейсов NE, обычно перенаправляются принимающим элементом FE своему CE, а CE может быть источником пакетов, которые его FE затем доставляет другим элементам NE. Поэтому протокол ForCES через интерфейс Fp не только доставляет свои протокольные сообщения между CE и FE, но и инкапсулирует пакеты данных протоколов уровня управления. Кроме того, один элемент FE может контролироваться несколькими CE при распределенном управлении. В такой конфигурации протоколы управления, поддерживаемые элементами ForCES NE, могут проходить через несколько CE. Например, один элемент CE может поддерживать протоколы маршрутизации типа OSPF и BGP, а протоколы сигнализации и контроля доступа типа RSVP будут поддерживаться другим CE. Элементы FE настраиваются на распознавание и фильтрацию пакетов этих протоколов с их пересылкой соответствующим CE.

На рисунке 11 показано, как пакеты BGP от маршрутизатора A передаются в маршрутизатор B. В этом примере протокол ForCES служит для транспортировки пакетов из CE в FE внутри маршрутизатора A, затем из FE в CE внутри маршрутизатора B. В свете того, что протокол ForCES отвечает за транспортировку между CE и FE как управляющих сообщений, так и пакетов данных через интерфейс Fp, возможно использовать один или множество протоколов.

4.2.5. Proxy FE

В случае, когда физический элемент FE не может (например, по причине отсутствия CPU общего назначения) напрямую реализовать протокол ForCES, может применяться FE-посредник (proxy) для завершения Fp вместо физического FE. Это позволяет CE взаимодействовать с физическим FE через посредника по протоколу ForCES, тогда как посредник управляет физическим FE с помощью некой промежуточной формы коммуникаций (например, не являющийся ForCES протокол или DMA). В таких случаях комбинация прокси и физического FE становится одним логическим элементом FE. Посредник может также действовать от имени множества физических элементов FE.

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

4.3. Повторная организация связи

Элементы FE и CE могут присоединяться к NE и выходить из них динамически (требование 12 раздела 413 в [4]). Когда FE или CE выходит из NE, ассоциация (связь) с NE разрывается. Если этот элемент снова присоединяется к данному NE, для восстановления связи ему может потребоваться повторение фазы pre-association. Потеря связи может также происходить неожиданно в результате разрыва соединения между CE и FE. Поэтому модель разрешает двух сторонние переходы между фазами «до объединения» и «после объединения», но протокол ForCES примени только в фазе post-association. Однако протоколу следует поддерживать механизм восстановления ассоциации. Это включает способность элементов CE и FE детектировать потерю связи, ее восстановление и эффективные механизмы (ре)синхронизации (требование 7 раздела 5 в [4]). Отметим, что должны также восстанавливаться защитные связи (security association) и их состояния для гарантии того же уровня защиты после восстановления ассоциации.

Когда FE присоединяется или выходит из работающего элемента NE, элементу CE нужно осознать изменение топологии FE и принять соответствующие меры.

4.3.1. Изящный перезапуск CE

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

Был разработан механизм обеспечения высокой доступности, названный graceful restart (изящный перезапуск) для протоколов маршрутизации IP (OSPF [11], BGP [12], IS-IS [13]) и протокола распространения меток MPLS (LDP [10]), для снижения отрицательных воздействий на маршрутизацию в сети, вызываемых перезагрузкой маршрутизатора. Механизм позволяет предотвратить переключение маршрутов (route flap) на соседних маршрутизаторах и перезагруженный маршрутизатор будет пересылать пакеты, которые в ином случае просто бы отбрасывались.

Хотя детали различаются для разных протоколов, общая идея механизма изящного перезапуска сохраняется. Перезагружаемый маршрутизатор может информировать своих соседей о перезагрузке. Его соседи могут обнаружить потерю смежности, но не станут пересчитывать свои маршруты и передавать обновления своим соседям. Те, в свою очередь, тоже сохранят маршруты, полученные от перезагружающегося маршрутизатора, предполагая, что они остаются пригодными в течение некоторого ограниченного времени. В этом случае элементы FE перезагружаемого маршрутизатора могут продолжать получение и пересылку трафика в течение ограниченного интервала, используя уже имеющиеся у них таблицы. Затем перезагруженный маршрутизатор восстановит свои отношения смежности, загрузит обновленные маршруты от своих соседей, рассчитает новые маршруты и использует их для замены прежних. Он будет передавать эти обновленные маршруты своим соседям и сообщать о завершении процесса перезагрузки.

Безостановочная пересылка является требованием изящного перезапуска. Маршрутизатору необходимо продолжать пересылку пакетов, пока он загружает маршрутные данные и рассчитывает новые маршруты. Это обеспечивает предотвращение отбрасывания пакетов. Как можно видеть, одним из преимуществ разделения CE и FE является возможность продолжать пересылку пакетов в случае отказа или перезапуска CE. Поддержка динамического изменения ассоциаций CE-FE в ForCES также обеспечивает совместимость с механизмами высокой доступности типа изящной перезагрузки.

ForCES следует поддерживать возможность изящного перезапуска CE. При первоначальном создании ассоциации элемент CE должен информировать FE о том, что им следует делать в случае отказа CE. Если изящный перезапуск не поддерживается, элементам FE можно дать указание прекратить обработку пакетов в случае отказа CE. При поддержке изящного перезапуска элементам FE следует дать указание кэшировать и сохранять свое состояние (включая таблицы пересылки) на время перезагрузки CE. При это должен указываться тайм-аут, при наступлении которого действие кэшированных состояний должно прекращаться. Значения тайм-аутов следует делать настраиваемыми элементом CE.

4.3.2. Перезапуск FE

Для примера рисунке 5 предположим, что CE1 является в данный момент рабочим CE. Что же произойдет, если один из FE (например, FE1) временно выйдет из состава NE? FE1 может по своей инициативе покинуть объединение. Кроме того, возможно просто прекращение работы FE1 в результате неожиданного отказа. В первом случае CE1 получит запрос leave-association от FE1, во втором случае CE1 обнаружит отказ FE1 каким-то иным способом. В обоих случаях CE1 должен информировать протоколы маршрутизации о произошедшем событии, что скорей всего приведет в пересчету доступности и SPF14, а также связанной с этим загрузки новых FIB из CE1 в оставшиеся FE (в примере это FE2). Этот пересчет и обновления FIB будет распространяться от CE1 к соседним NE, которые были связаны с FE1.

Когда FE1 решит вернуться в ассоциацию или перезагрузится после отказа, ему потребуется снова определить своего ведущего (CE). Это можно сделать несколькими способами. Можно снова перейти в фазу pre-association и получить нужную информацию от менеджера FE. Можно отыскать прежнюю информацию CE в своем кэше, если ее свежесть может быть проверена. Как только элемент обнаружит свой CE, он начинает обмен сообщениями с ним для восстановления ассоциации, как показано на рисунке 9 (возможно при этом удастся обойти согласование транспорта). Предположим, что в FE1 сохранилась таблица маршрутизации и другие данные состояния из прежней ассоциации. Тогда вместо повторной передачи этих данных он сможет воспользоваться более эффективным механизмом для восстановления синхронизации состояния со своим CE, если такой механизм поддерживается протоколом ForCES. Например, контрольная сумма CRC-32 для состояния позволяет проверить его синхронизацию с CE. Сравнив свое состояние с CE, элемент может при необходимости передать лишь обновления. Протокол ForCES может реализовать похожий механизм для оптимизации, но может и не делать этого, поскольку требования не задают такой механизм.

5. Применимость RFC 1812

Требование 9 в разделе 415 [4] говорит «Любая предлагаемая архитектура ForCES должна объяснять, как она будет поддерживать все функции маршрутизации, определенные в [RFC1812].» В RFC 1812 [2] рассмотрено множество важных требований к маршрутизаторам IPv4 от канального до прикладного уровня. В этом разделе рассматриваются требования RFC 1812, связанные с реализациями маршрутизаторов IPv4 на основе архитектуры ForCES и показано, как эти требования выполняются в ForCES путем разделения функциональности, требуемой для уровней пересылки и управления.

В общем случае уровень пересылки выполняет большую часть обработки каждого пакета, которая требует высокой скорости, а уровень управления выполняет большую часть требующих сложных вычислений операций, которые типичны для протоколов управления и сигнализации. Однако провести четкую линию раздела между обработкой в элементах CE и FE невозможно и архитектуре ForCES не следует ограничивать инновационные подходы к разделению пересылки и управления. По мере роста производительности обработки в FE некоторые функции управления, традиционно выполнявшиеся в CE, могут переноситься в элементы FE для повышения производительности и масштабируемости. Такие функции могут включать часть обработки ICMP или TCP, а также часть протоколов маршрутизации. Будучи перенесенными на уровень пересылки, такие функции CE хотя и продолжают относиться к уровню управления, становятся реально функциями FE. Подобно другим функциям FE, эти перенесенные (off-loaded) функции должны выражаться как часть модели FE, чтобы элемент CE мог принять решение о наиболее эффективном использовании таких функций при их наличии в FE.

5.1. Общие требования к маршрутизатору

Маршрутизаторы имеют не менее двух логических интерфейсов. Когда элементы CE и FE разделены ForCES внутри одного NE, требуются некие дополнительные интерфейсы для коммуникаций внутри этого NE, как показано на рисунке 12. В этом примере NE имеется один элемент CE и два FE. Каждый FE имеет 4 интерфейса, из которых два служат для приема и передачи пакетов, связанных с внешним миром, а два оставшихся используются внутри NE. Элемент CE имеет два логических интерфейса 9 и 10, подключенных к интерфейсам 3 и 6 элементов FE1 и FE2, соответственно. Интерфейсы 4 и 5 служат для коммуникаций между FE1 и FE2. В результате маршрутизатор имеет 4 внешних интерфейса — 1, 2, 7 и 8.

---------------------------------
|        NE-маршрутизатор       |
|   -----------   -----------   |
|   |   FE1   |   |   FE2   |   |
|   -----------   -----------   |
|   1| 2| 3| 4|   5| 6| 7| 8|   |
|    |  |  |  |    |  |  |  |   |
|    |  |  |  +----+  |  |  |   |
|    |  |  |          |  |  |   |
|    |  | 9|        10|  |  |   |
|    |  | -------------- |  |   |
|    |  | |    CE      | |  |   |
|    |  | -------------- |  |   |
|    |  |                |  |   |
-----+--+----------------+--+----
     |  |                |  |
     |  |                |  |

Рисунок 12. Пример NE-маршрутизатора с 4 интерфейсами.

Маршрутизаторы IPv4 должны реализовать протокол IP для поддержки функции пересылки пакетов, которая управляется таблицей FIB16. Эта пересылка уровня Internet (см. раздел 5 в RFC 1812 [2]) функционально относится к FE в архитектуре ForCES.

Маршрутизатор может реализовать протоколы транспортного уровня (типа TCP и UDP), которые требуются для поддержки протоколов прикладного уровня (см. раздел 6 в RFC 1812 [2]). Важным классом прикладных протоколов являются протоколы маршрутизации (см. раздел 7 в RFC 1812 [2]). В архитектуре ForCES протоколы маршрутизации относятся к элементам CE. Для протоколов маршрутизации требуется взаимодействие между маршрутизаторами. Это взаимодействие между CE в разных маршрутизаторах поддерживается в ForCES за счет способности FE перенаправлять пакеты данных, адресованные маршрутизаторам (т. е. NE), и способности CE создавать пакеты, которые будут доставляться их элементами FE. Такие коммуникации осуществляются через интерфейс Fp внутри каждого маршрутизатора и между внешними интерфейсами соседних маршрутизаторов, как показано на рисунке 11.

5.2. Канальный уровень

Поскольку FE владеют всеми внешними интерфейсами маршрутизатора, элементы FE должны соответствовать требованиям RFC 1812 [2] в канальному уровню. Поддержка ARP может быть реализована в CE или FE. Как будет показано позднее, ряд категорий поведения, которые RFC 1812 относит к канальному уровню, может быть реализован реализован как в FE, так и в CE. Нужны общие рекомендации для обеспечения взаимодействия между разделенными уровнями управления и пересылки. Рекомендации, предлагаемые здесь, заключаются в том, что CE должны быть способны выполнить эти типы операции, а FE могут реализовать их. Модели FE следует указывать возможности, для которых CE может принимать решение о месте реализации этих функций.

Параметры интерфейса, включая MTU, адрес IP и т. п., должны настраиваться элементами CE через ForCES. Элементы CE должны быть способны определить доступен ли физический интерфейс в FE для передачи пакетов. Элементы FE должны также информировать CE об изменении состояния своих интерфейсов (типа up/down) через ForCES.

5.3. Сетевой уровень

Элементы FE и CE должны реализовать протокол IP и все обязательные расширения, заданные RFC 1812. Элементам CE следует реализовать опции IP типа source route и record route, а FE могут реализовать их по своему усмотрению. Опцию timestamp следует реализовать в FE для аккуратной вставки временных меток. Элемент FE должен интерпретировать понятные ему опции IP и сохранять остальные неизменными для использования их элементами CE. FE и CE могут отбрасывать пакеты без отправки ошибок ICMP, но такие события следует учитывать и записывать в системный журнал. Элементы FE могут передавать такую статистику в CE через ForCES.

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

FE должны принимать и обрабатывать любые пакеты с широковещательным или групповым адресом получателя, для которых маршрутизатор запросил прием. При поддержке в маршрутизаторах групповой адресации (IP multicast) протокол IGMP реализуется в CE. Элементы CE должны также поддерживать ICMP, а для FE такая поддержка не обязательна. Об наличии такой поддержки можно уведомить CE с помощью модели FE. Элементы FE всегда могут полагаться на CE в части передачи ошибок ICMP, но и сами FE также могут генерировать сообщения ICMP об ошибках.

5.4. Пересылка на сетевом уровне

Пересылка IP реализуется элементами FE. При обновлении таблицы маршрутизации в элементах CE используется ForCES для передачи новых маршрутов из CE в FE. Каждый элемент FE имеет свою таблицу пересылки и использует ее для отправки пакетов на интерфейс следующего интервала пересылки (next hop).

При получении пакетов IP элемент FE проверяет заголовок IP и обрабатывает большинство опций IP. Некоторые опции не могут быть обработаны, пока не будет решения о маршрутизации, которое принимается после проверки адреса получателя. Если этот адрес относится к самому маршрутизатору, пакет фильтруется и обрабатывается локально или пересылается CE в зависимости от инструкций, установленных CE. В остальных случаях FE определяет IP-адрес следующего маршрутизатора, просматривая свою таблицу пересылки. FE также определяет сетевой интерфейс, который он будет использовать для передачи пакетов. Иногда FE может потребоваться пересылка пакетов другому элементу FE до того, как пакет можно будет переслать следующему маршрутизатору. Непосредственно перед отправкой пакета следующему маршрутизатору FE уменьшает значение TTL на 1 и обрабатывает все опции IP, которые не были обработаны ранее. FE выполняет фрагментацию IP при необходимости, определяет адрес канального уровня (например, с помощью ARP), инкапсулирует дейтаграмму IP (или ее фрагмент) в подходящий кадр канального уровня и помещает ее в очередь выбранного выходного интерфейса.

Другие опции, упомянутые в RFC 1812 [2] для пересылки IP, также будут реализоваться в элементах FE (например, фильтрация пакетов).

FE обычно пересылают пакеты локальных получателей элементам CE. FE могут также отправлять элементам CE «исключительные» пакеты (про которые FE не знает куда отправить). Элементы CE должны обрабатывать пакеты по любым причинам пересланные им элементами FE. Для ForCES может потребоваться присоединение к таким пакетам неких метаданных, показывающих причину их пересылки от FE в CE. При получении от FE пакета с метаданными CE могут принять решение о самостоятельной обработке пакета или его передаче протоколам вышележащего уровня, включая протоколы маршрутизации и администрирования. Если элемент CE обрабатывает пакет самостоятельно, он может отбросить пакет или переслать его после изменения. Элементы CE могут также генерировать новые пакеты и доставлять их элементам FE для дальнейшей пересылки.

Любая смена состояния в процессе работы маршрутизатора также должна корректно обрабатываться в соответствии с RFC 1812. Например, когда FE прекращает пересылку, элемент NE в целом может продолжать пересылку пакетов, но ему нужно прекратить анонсирование маршрутов, на которые влиял отказавший элемент FE.

5.5. Транспортный уровень

Транспортный уровень обычно реализуется в CE для поддержки протоколов вышележащих уровней (например, протоколов маршрутизации) На практике это означает, что большинство CE реализуют протоколы TCP18 и UDP19.

Элементы CE и FE должны реализовать протокол ForCES. В некоторых транспортных протоколах L4, используемых для поддержки ForCES, элементы CE и FE должны реализовать транспорт L4 и протокол ForCES.

5.6. Прикладной уровень — протоколы маршрутизации

Протоколы внутренней и внешней маршрутизации реализуются в элементах CE. Пакеты протоколов маршрутизации, порожденные CE, пересылаются элементам FE для доставки. Результаты таких протоколов (типа обновлений таблиц пересылки) передаются FE через ForCES.

Из соображений производительности или масштабируемости часть функций уровня управления, требующих быстрого отклика, может быть «выгружена» из CE в элементы FE. Например, в протоколе OSPF периодически генерируются и обрабатываются пакеты Hello. При реализации этого в CE входящие пакеты Hello проходят с внешнего интерфейса FE на элемент CE по внутреннему каналу CE-FE. Аналогично, исходящие пакет пакеты Hello проходят от CE к FE и на внешние интерфейсы. Частый обмен обновлениями Hello создает высокую нагрузку на CE и может также перегружать канал CE-FE. Поскольку элементов FE в маршрутизаторе обычно больше, нежели элементов CE, «выгрузка» функций обработки Hello обеспечивает более эффективную распределенную и масштабируемую обработку. Указав такие «выгруженные» функции в модели FE, можно обеспечить взаимодействие. Однако точное описание «выгруженной» функциональности, соответствующее указанным в модели FE «выгруженным» функциям, не является частью самой модели и требует отдельной спецификации.

5.7. Прикладной уровень — протоколы управления сетью

В RFC 1812 [2] также сказано: «Маршрутизаторы должны поддерживать управление по протоколу SNMP.» В общем случае для фазы после объединения большинство внешних задач управления (включая SNMP) следует выполнять через взаимодействие с CE для поддержки представления в виде единого устройства. Поэтому рекомендуется реализовать агенты SNMP в элементах CE и перенаправлять сообщения SNMP, полученные элементами FE, в их CE. Здесь может быть использована модель AgentX, определенная в RFC 2741 [6], где CE выступают в роли ведущих агентов при обработке протокольных сообщений SNMP, а элементы FE служат субагентами, обеспечивающими доступ к базам MIB, размещенным в FE. Сообщения протокола AgentX между ведущим агентом (CE) и субагентами (FE) инкапсулируются и доставляются через ForCES как пакеты данных других протоколов прикладного уровня.

6. Заключение

Этот документ определяет архитектурную основу для ForCES. Он указывает относящиеся к делу сетевые элементы ForCES, включая (один или множество) FE, (один или множество) CE, а также необязательные менеджеры FE и CE. Документ также описывает взаимодействие этих компонент и опорные точки (интерфейсы) для такого взаимодействия. Важно подчеркнуть, что из числа этих опорных точек лишь интерфейс Fp между элементами CE и FE относится к ForCES. Возможностей ForCES может оказаться недостаточно для поддержки всех желаемых конфигураций NE. Однако мы надеемся, что ForCES через интерфейс Fp является самым важным элементом в физическом разделении и взаимодействии CE и FE, поэтому данный интерфейс нужно стандартизовать в первую очередь. Простые и полезные конфигурации можно будет реализовать, используя лишь стандартизованный интерфейс между CE и FE (например, один элемент CE с полносвязной сетью FE).

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

Joel M. Halpern представил множество полезных замечаний и предложений, а также отметил несколько важных проблем. T. Sridhar принадлежит предложение о возможности применения протокола AgentX с SNMP для управления сетевыми элементами ForCES. Susan Hares отметила проблему изящного перезапуска в ForCES. Russ Housley, Avri Doria, Jamal Hadi Salim и многие другие участники почтовой конференции ForCES также представили полезные отклики.

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

Администратор NE волен выбирать конфигурацию защиты в своей среде. Например, ForCES может работать между CE и FE, соединенными по шине внутри устройства. В этом случае физическая защита устройства предотвратит большинство атак типа MITM20, отслеживания и подмены, поэтому архитектура ForCES может полагаться на физическую защиту устройства и протокольные механизмы можно отключить. Однако MITM-атаки через внешние интерфейсы, описанные в параграфе 8.1.8, создают угрозу даже в таких ситуациях и для их предотвращения нужен механизм ограничения скорости. Этот пример показывает важность вопросов защиты элементов сети с поддержкой ForCES в различных вариантах ее развертывания. Администраторам следует предоставлять возможность настройки уровня защиты, требуемого для протокола ForCES.

В общем случае физическое разделение двух объектов обычно использует потенциально небезопасное соединение между ними и требует более серьезной защиты. Например, в параграфе 4.1 было указано, что проверка подлинности становится необходимой для взаимодействия между менеджерами CE и FE, элементами и менеджерами CE, а также элементами и менеджерами FE в некоторых конфигурациях. Физическое разделение элементов FE и CE также требует защиты для протокола ForCES, работающего через интерфейс Fp. В этом разделе предпринимается первая попытка описать угрозы, которые могут быть связаны с физическим разделением элементов FE и CE, а также приведены рекомендации и руководства по защите работы и администрирования протокола ForCES через интерфейс Fp на основе имеющихся стандартных решений для защиты.

8.1. Анализ возможных угроз, вносимых ForCES

В этом параграфе проводится анализ угроз для ForCES и особое внимание уделено интерфейсу Fp. Каждая угроза описана с деталями ее воздействия на объекты протокола ForCES и/или NE в целом, а также рассмотрена полная функциональность, требуемая для защиты.

8.1.1. Лавинные рассылки сообщений Join и Remove для CE

Угрозы

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

Воздействия

Если поддерживать состояния для отсутствующих или не уполномоченных элементов FE, CE может стать недоступным для других операций, что создает возможность организации DoS-атак21, подобных TCP SYN DoS. При использовании множества CE ненужная информация о состояниях может также передаваться этим CE через интерфейс Fr (например, от активного CE к резервному CE) и DoS-атака коснется множества CE.

Требования

Элементу CE получившему запрос join или remove, не следует создавать данных состояния для элемента, который не является аутентифицированным FE.

8.1.2. Атаки с подменой

Угрозы

Враждебный узел может прикинуться элементом CE или FE и передавать ложные сообщения.

Воздействия

Риску может быть подвержен элемент NE в целом.

Требования

Элементы CE и FE должны проверять подлинность сообщение от другого FE или CE по списку уполномоченных элементов ForCES (предоставляется менеджером CE или FE в фазе pre-association) до восприятия и обработки такого сообщения.

8.1.3. Replay-атаки

Угроза

Враждебный узел может повторно использовать (replay) полное сообщение, переданное раньше элементом FE или CE при проверке подлинности.

Воздействие

Риску может быть подвержен элемент NE в целом.

Требования

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

8.1.4. Атаки при передаче управления

Угроза

Враждебный узел может воспользоваться механизмом CE fail-over для захвата управления элементом NE. Например, если два элемента CE — CE-A и CE-B управляют несколькими FE, CE-A может быть активным, а CE-B — резервным. При отказе CE-A управление принимает на себя CE-B и становится активным CE. Элементы FE уже имеют доверительные отношения с CE-A, но могут не иметь в момент передачи управления таких отношений с CE-B. Это дает злоумышленнику возможность взять на себя роль CE-B, если доверительные отношения не были организованы до отказа или во время перехода.

Воздействие

Риску может быть подвержен элемент NE в целом после незащищенного переключения элементов CE.

Требования

Уровень доверия между резервным CE и элементами FE должен быть таким же, как для активного CE. Защищенная связь между FE и CE может быть организована заранее. Если этого не было сделано, такую связь требуется создать до передачи управления резервному CE.

8.1.5. Целостность данных

Угрозы

Враждебный узел может внедрять ложные сообщения для легитимных CE или FE.

Воздействие

FE или CE получит сфабрикованное сообщение и выполнит некорректную или недопустимую операцию.

Требования

Для сообщений протокола требуется защита целостности.

8.1.6. Конфиденциальность данных

Угроза

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

Воздействие

Возможность раскрытия деликатной информации, передаваемой между CE и FE.

Требования

Должна быть доступна защита конфиденциальности данных, передаваемых между FE и CE.

8.1.7. Совместное использование параметров защиты

Угроза

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

Воздействие

Риску подвержен элемент NE в целом.

Требования

Для предотвращения таких побочных эффектов лучше использовать отдельные параметры защиты для каждой пары FE-CE, взаимодействующих через интерфейс Fp.

8.1.8. DoS-атаки через внешний интерфейс

Угроза

Когда FE получает пакет, адресованный CE, он пересылает этот пакет через интерфейс Fp. Злоумышленник может создать огромный поток сообщений типа пакетов протоколов маршрутизации и т. п. через внешний интерфейс Fi/f, которые FE будет обрабатывать и пересылать элементу CE через интерфейс Fp.

Воздействие

Элемент CE может столкнуться с нехваткой ресурсов и пропускной способности интерфейса Fp в результате чрезмерного числа пакетов от элементов FE.

Требования

Должен применяться тот или иной механизм ограничения скорости на элементах FE и CE. Ограничитель (Rate Limiter) следует делать настраиваемым на уровне FE для каждого типа сообщений, которые будут приниматься через интерфейс Fi/f.

8.2. Рекомендации по защите для ForCES

В требования [4] предложено для протокола ForCES обеспечивать гарантированную доставку для интерфейса Fp, но конкретный транспортный протокол для ForCES еще не задан. Этот документ не предназначен для указания конкретного транспорта и содержит лишь рекомендации и руководства на основе имеющихся стандартных протоколов защиты [18], которые могут работать с наиболее вероятными транспортными протоколами для ForCES.

Здесь рассмотрены два защитных решения на основе IPsec22 [15] и TLS23 [14]. Протокол TLS работает с гарантированным транспортом типа TCP и SCTP для индивидуальной адресации, а IPsec можно использовать с любым транспортом (UDP, TCP, SCTP) и он поддерживает индивидуальную и групповую адресацию. TLS и IPsec подходят для выполнения всех требований защиты протокола ForCES. Кроме того, могут применяться другие решения, соответствующие требованиям безопасности, включая механизмы защиты L2 для используемой технологии канального уровня.

При использовании ForCES между CE и FE внутри устройства или в физически защищенном помещении проверка подлинности, защита конфиденциальности и целостности могут быть обеспечены физическими средствами и методами. Поэтому протокольные механизмы защиты могут быть отключены в зависимости от используемой топологии и административных правил. Однако важно помнить, что даже при реализации NE в одном устройстве возможны DoS-атаки, отмеченные в параграфе 8.1.8, через внешние интерфейсы Fi/f. Поэтому важно иметь соответствующие меры противодействия даже при развертывании системы в одном устройстве.

8.2.1. Использование TLS с протоколом ForCES

TLS [14] можно применять если используется надежный транспорт TCP или SCTP для протокола ForCES через интерфейс Fp. Протокол согласования TLS применяется при создании или восстановлении ассоциации для установки параметров сессии TLS между элементами CE и FE. После организации сессии используется протокол TLS record для защиты коммуникаций ForCES между CE и FE.

Ниже описывается базовая схема применения TLS с протоколом ForCES. Этапы 1) — 7) служат для согласования защиты, как показано на рисунке 9, а этап 8) — для обеспечения основных коммуникаций между CE и FE, включая сообщения, показанные на рисунке 9 после согласования защиты и коммуникации в установившемся состоянии (рисунок 10).

  1. В фазе Pre-association для всех FE задаются элементы CE (включая активный и резервный CE).

  2. FE организует соединение TLS с CE (ведущий) и согласует применяемый шифр.

  3. FE (ведомый) получает сертификат CE, проверяет подпись и срок действия, а также убеждается, что сертификат не отозван.

  4. CE (ведущий) получает сертификат FE и выполняет проверки, указанные в п. 3).

  5. При отказе любой из проверок пп. 3) и 4) конечная точка должна передать сообщение об ошибке и прервать согласование.

  6. После успешной взаимной проверки подлинности организуется сессия TLS между элементами CE и FE.

  7. FE передает сообщение join NE элементу CE.

  8. FE и CE используют сессию TLS для последующих коммуникаций.

Отметим, что существуют разные способы проверки сертификатов элементами CE и FE. Один из способов заключается в настройке менеджера FE или CE или другой центральной компоненты в качестве удостоверяющего центра (CA), чтобы элементы CE и FE могли запрашивать у этого (известного заранее) CA проверку пригодности сертификата (отсутствие отзыва). Другим вариантов является прямое указание в CE и FE списка действующих сертификатов в фазе pre-association (до объединения).

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

8.2.2. Использование IPsec с протоколом ForCES

IPsec [15] можно применять с любым транспортным протоколом (UDP, SCTP, TCP) через интерфейс Fp для протокола ForCES. При выборе IPsec рекомендуется использовать ESP в транспортном режиме, поскольку для ForCES нужна конфиденциальность сообщений.

IPsec можно использовать в ручном или автоматизированном режиме SA и управления криптографическими ключами. Однако при ручном управлении ключами механизмы IPsec для защиты от повторного использования (replay) не доступны. Поэтому рекомендуется автоматическое управления ключами, если функция защиты от повторного использования важна. В иных случаях ручного управления ключами может быть достаточно для некоторых вариантов развертывания, особенно при сравнительно небольшом числе элементов CE и FE. Рекомендуется время от времени менять ключи даже при ручном управлении ими.

IPsec может поддерживать транспорт с индивидуальной и групповой адресацией. В момент публикации этого документа рабочая группа MSEC активно занималась стандартизацией протоколов для защиты при групповой адресации [17]. Решениям, основанным на групповой адресации в IPsec, следует указать, как они выполняют требования безопасности, указанные в [4].

В отличие от TLS, протокол IPsec обеспечивает услуги защиты между CE и FE на уровне IP, поэтому согласование защиты на рисунке 9 становится пустым для случая ручного управления ключами. Ниже показаны этапы действий для ForCES в таком случае.

  1. В фазе Pre-association всем FE указываются элементы CE (включая активный и резервный CE), а также вручную задаются параметры SA.

  2. FE передает сообщение join NE элементу CE. Это сообщение, а также все последующие, получает услуги защиты в соответствии с заданными вручную параметрами IPsec SA, но защиты от повторного использования (replay) не обеспечивается.

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

Если требуется автоматическое управление ключами, можно использовать IKE [16], хотя подходят и другие методы распространения ключей типа Kerberos. Процесс обмена ключами согласует параметры защиты, как показано на рисунке 9. Ниже перечислены этапы процесса при использовании IKE с IPsec для протокола ForCES. Процессу согласования защиты на рисунке 9 соответствуют пп. 1) — 6).

  1. В фазе Pre-association для всех FE задаются элементы CE (включая активный и резервный CE), правила IPsec и т. п.

  2. FE запускает процесс IKE и пытается организовать IPsec SA с элементом CE (ведущий). FE (ведомый) в процессе согласования IKE получает сертификат CE, проверяет пригодность подписи, срок действия сертификата и отсутствие отзыва.

  3. CE (ведущий) получает сертификат FE и выполняет те же проверки, что и FE в п. 2).

  4. При отказе любой из проверок пп. 2) и 3) конечная точка должна передать сообщение об ошибке и прервать согласование.

  5. После успешной взаимной аутентификации организуется сессия IPsec между элементами CE м FE.

  6. FE передает сообщение join NE элементу CE. В FE пока не создано записи SADB.

  7. Элементы FE и CE используют сессию IPsec для продолжения коммуникаций.

Менеджер FE или CE или иная централизованная компонента могут использоваться в качестве CA для проверки пригодности сертификатов CE и FE в процессе IKE. Другим вариантов является настройка CE и FE в фазе pre-association, с заданием требуемой информации типа сертификатов, паролей и т. п., в зависимости от выбранного администратором типа проверки подлинности CE и FE.

Для случаев отказа активный и резервный CE отвечают за синхронизацию состояний ForCES и IPsec для минимизации случаев повторной организации связи при отказах. Кроме того, FE при запуске нужно организовывать разные IPsec SA с каждым элементом CE. Это будет минимизировать периодическую передачу состояний с помощью уровня IPsec через интерфейс Fr (CE-CE).

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

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

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

[2] Baker, F., Ed., «Requirements for IP Version 4 Routers», RFC 1812, June 1995.

[3] Floyd, S., «Congestion Control Principles», BCP 41, RFC 2914, September 2000.

[4] Khosravi, H. and Anderson, T., Eds., «Requirements for Separation of IP Control and Forwarding», RFC 3654, November 2003.

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

[5] Case, J., Mundy, R., Partain, D. and B. Stewart, «Introduction and Applicability Statements for Internet Standard Management Framework», RFC 3410, December 2002.

[6] Daniele, M., Wijnen, B., Ellison, M. and D. Francisco, «Agent Extensibility (AgentX) Protocol Version 1», RFC 2741, January 2000.

[7] Chan, K., Seligson, J., Durham, D., Gai, S., McCloghrie, K., Herzog, S., Reichmeyer, F., Yavatkar, R. and A. Smith, «COPS Usage for Policy Provisioning (COPS-PR)», RFC 3084, March 2001.

[8] Crouch, A. et al., «ForCES Applicability Statement», Work in Progress24.

[9] Anderson, T. and J. Buerkle, «Requirements for the Dynamic Partitioning of Switching Elements», RFC 3532, May 2003.

[10] Leelanivas, M., Rekhter, Y. and R. Aggarwal, «Graceful Restart Mechanism for Label Distribution Protocol», RFC 3478, February 2003.

[11] Moy, J., Pillay-Esnault, P. and A. Lindem, «Graceful OSPF Restart», RFC 3623, November 2003.

[12] Sangli, S. et al., «Graceful Restart Mechanism for BGP», Work in Progress25.

[13] Shand, M. and L. Ginsberg, «Restart Signaling for IS-IS», Work in Progress26.

[14] Dierks, T. and C. Allen, «The TLS Protocol Version 1.0», RFC 2246, January 1999.

[15] Kent, S. and R. Atkinson, «Security Architecture for the Internet Protocol», RFC 240127, November 1998.

[16] Harkins, D. and D. Carrel, «The Internet Key Exchange (IKE)», RFC 240928, November 1998.

[17] Hardjono, T. and Weis, B. «The Multicast Group Security Architecture», RFC 3740, March 2004.

[18] Bellovin, S., Schiller, J. and C. Kaufman, Eds., «Security Mechanisms for the Internet», RFC 3631, December 2003.

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

L. Lily Yang

Intel Corp., MS JF3-206,

2111 NE 25th Avenue

Hillsboro, OR 97124, USA

Phone: +1 503 264 8813

EMail: lily.l.yang@intel.com

Ram Dantu

Department of Computer Science,

University of North Texas,

Denton, TX 76203, USA

Phone: +1 940 565 2822

EMail: rdantu@unt.edu

Todd A. Anderson

Intel Corp.

2111 NE 25th Avenue

Hillsboro, OR 97124, USA

Phone: +1 503 712 1760

EMail: todd.a.anderson@intel.com

Ram Gopal

Nokia Research Center

5, Wayside Road,

Burlington, MA 01803, USA

Phone: +1 781 993 3685

EMail: ram.gopal@nokia.com

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

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

nmalykh@gmail.com

11. Полное заявление авторских прав

Copyright (C) The Internet Society (2004). К этому документу применимы права, лицензии и ограничения, указанные в BCP 78, и, за исключением указанного там, авторы сохраняют свои права.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Интеллектуальная собственность

IETF не принимает какой-либо позиции в отношении действительности или объема каких-либо прав интеллектуальной собственности (Intellectual Property Rights или IPR) или иных прав, которые, как может быть заявлено, относятся к реализации или использованию описанной в этом документе технологии, или степени, в которой любая лицензия, по которой права могут или не могут быть доступны, не заявляется также применение каких-либо усилий для определения таких прав. Сведения о процедурах IETF в отношении прав в документах RFC можно найти в BCP 78 и BCP 79.

Копии раскрытия IPR, предоставленные секретариату IETF, и любые гарантии доступности лицензий, а также результаты попыток получить общую лицензию или право на использование таких прав собственности разработчиками или пользователями этой спецификации, можно получить из сетевого репозитория IETF IPR по ссылке http://www.ietf.org/ipr.

IETF предлагает любой заинтересованной стороне обратить внимание на авторские права, патенты или использование патентов, а также иные права собственности, которые могут потребоваться для реализации этого стандарта. Информацию следует направлять в IETF по адресу ietf-ipr@ietf.org.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


1Forwarding and Control Element Separation — разделение элементов управления и пересылки.

2Network element.

3Control element.

4Forwarding element.

5Resource Reservation Protocol — протокол резервирования ресурсов.

6Label Distribution Protocol — протокол распространения меток.

7Longest prefix match — самый длинный из совпадающих префиксов.

8Network Address Translator — транслятор сетевых адресов.

9Как подключение прочих сетевых устройств. Прим. перев.

10В оригинале ошибочно указан раздел 5, см. https://www.rfc-editor.org/errata/eid5338. Прим. перев.

11Без маршрутизаторов между ними. Прим. перев.

12В оригинале ошибочно указан раздел 5, см. https://www.rfc-editor.org/errata/eid5339. Прим. перев.

13В оригинале ошибочно указан раздел 5, см. https://www.rfc-editor.org/errata/eid5340. Прим. перев.

14Shortest Path First — выбор маршрута по кратчайшему пути.

15В оригинале ошибочно указан раздел 5, см. https://www.rfc-editor.org/errata/eid5337. Прим. перев.

16Forwarding Information Base — база данных для пересылки.

17Time-To-Live — время жизни.

18 Transmission Control Protocol — протокол управления передачей.

19User Datagram Protocol — протокол пользовательских дейтаграмм.

20Man-in-the-middle — перехват и изменение данных с участием человек.

21Denial of service — атака, нацеленная на отказ в обслуживании легитимных клиентов.

22IP Security — защита IP.

23Transport Layer Security — защита транспортного уровня.

24Работа завершена и опубликована в RFC 6041. Прим. перев.

25Работа завершена и опубликована в RFC 4724. Прим. перев.

26Работа завершена и опубликована в RFC 3847. Прим. перев.

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

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

Рубрика: RFC | Комментарии к записи RFC 3746 Forwarding and Control Element Separation (ForCES) Framework отключены

RFC 3768 Virtual Router Redundancy Protocol (VRRP)

Заменен RFC 5798.

Рубрика: RFC | Оставить комментарий

RFC 3704 Ingress Filtering for Multihomed Networks

Network Working Group                                           F. Baker
Request for Comments: 3704                                 Cisco Systems
Updates: 2827                                                  P. Savola
BCP: 84                                                        CSC/FUNET
Category: Best Current Practice                               March 2004

 

Фильтрация на входе в многодомные сети

Ingress Filtering for Multihomed Networks

PDF

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

Этот документ относится к категории обмена опытом (Best Current Practice) в сообществе Internet и служит приглашением к дискуссии и внесению предложений в целях дальнейшего развития. Документ может распространяться свободно.

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

Copyright (C) The Internet Society (2004). Все права защищены.

Аннотация

Документ BCP 38 (RFC 2827) был разработан с целью ограничения возможностей организации распределенных атак на службы (DDoS1) за счет фильтрации трафика с подменными адресами на входе в сеть и оказания помощи в трассировке источников такого трафика. Кроме защиты Internet от таких атак реализующие это решение сети также обеспечивают для себя защиту от этих и других атак типа обманного доступа к системам управления сетевым оборудованием. Возможны ситуации (например, многодомные сети), когда будут возникать проблемы. В данном документе описаны современные механизмы фильтрации на входе и рассмотрены основные проблемы, связанные с такой фильтрацией (в частности, с учетом многодомных подключений). Документ служит обновлением RFC 2827.

Оглавление

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

1. Введение

Документ BCP 38 (RFC 2827) [1] был разработан с целью ограничения возможностей организации распределенных атак на службы (DDoS) за счет фильтрации трафика с подменными адресами на входе в сеть и оказания помощи в трассировке источников такого трафика. Кроме защиты Internet от таких атак реализующие это решение сети также обеспечивают для себя защиту от этих и других атак типа обманного доступа к системам управления сетевым оборудованием. Возможны ситуации (например, многодомные сети), когда будут возникать проблемы. В данном документе описаны современные механизмы фильтрации на входе, рассмотрены основные проблемы, связанные с такой фильтрацией (в частности, с учетом многодомных подключений).

RFC 2827 рекомендует сервис-провайдерам (ISP2) контролировать трафик своих заказчиков, отбрасывая на входе в сеть пакеты, отправленные с адресов, которые не могут легитимно использоваться в сети заказчика. Фильтрация включает трафик (но никоим образом не ограничивается им) с так называемыми «марсианскими адресами» (Martian Address), которые зарезервированы в [3] (включая все адреса из блоков 0.0.0.0/8, 10.0.0.0/8, 127.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 224.0.0.0/4, 240.0.0.0/4).

Потребность во входной фильтрации обусловлена тем, что при распределенных DoS-атаках зачастую в качестве подставных адресов отправителей используются случайные адреса. В некоторых случаях такие случайные адреса попадают в блок адресов атакуемой сети и кроме атаки на один или множество хостов этой сети вызывают со стороны этих хостов «атаки» других хостов данной сети сообщениями ICMP или иным трафиком откликов. В таких случаях атакуемые сайты могут защитить самих себя с помощью подходящей фильтрации, проверяя, не указаны ли адреса из данной сети в поле отправителя пакетов, приходящих из Internet. В других атаках в качестве адресов отправителей используются случайные 32-битовые значения для осложнения поиска источника атаки. Если трафик, исходящий из оконечной сети и входящий в ISP ограничивать путем проверки принадлежности адресов отправителей к данной оконечной сети, возможности организации таких атак можно существенно снизить, а источник атак будет проще отследить (по крайней мере, определить сеть злоумышленников).

Этот документ адресован ISP и операторам оконечных сетей, которые 1) хотят расширить свои знания в области фильтрации на входе или 2) уже используют входную фильтрацию, но хотят расширить ее применение, избежав ошибок при организации фильтров в многодомных/асимметричных средах.

В разделе 2 описано несколько способов реализации входных фильтров, проверенных в типичных средах. В разделе 3 приведены некоторые разъяснения в части применимости фильтрации на входе. В разделе 4 приведен подробный анализ фильтрации на входе в многодомные сети, а раздел 5 посвящен перспективам работ в этом направлении.

2. Различные способы фильтрации на входе

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

Имеется по крайней мере пять вариантов реализации RFC 2827, различающихся по уровню влияния, включая (даны общепринятые названия):

  • Ingress Access Lists — входные списки доступа;

  • Strict Reverse Path Forwarding — строгая

  • Feasible Path Reverse Path Forwarding — мягкая

  • Loose Reverse Path Forwarding — мягкая

  • Loose Reverse Path Forwarding ignoring default routes — мягкая с игнорированием принятых по умолчанию маршрутов

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

2.1. Входные списки доступа

Ingress Access List представляет собой фильтр, который проверяет адрес отправителя в каждом сообщении, принятом сетевым интерфейсом, сравнивая его со списком разрешенных префиксов и отбрасывая не соответствующие списку пакеты. Хотя это не единственный способ фильтрации на входе, он является одним из предложенных в RFC 2827 [1] и, в некотором смысле, наиболее определенным.

Обычно списки Ingress Access List поддерживаются вручную и это может служить причиной некоторых проблем (например, не обновленный вовремя список префиксов ISP, может приводить к потере части пакетов).

Эта проблема присуща не только входным спискам доступа — она может возникать при любом методе фильтрации на входе, если фильтры заданы не полностью. Однако при использовании Ingress Access Lists поддержка фильтров более сложна по сравнению с другими методами и использование устаревшего списка может приводить к потере легитимного трафика.

2.2. Строгая проверка по обратному пути

Strict RPF3 обеспечивает простой способ реализации входных фильтров. Концептуально этот метод идентичен использованию списков доступа, но эти списки формируются динамически. Метод также позволяет избежать дублирования конфигураций (например, поддержки фильтров для статических маршрутов или префиксов BGP и списков доступа на интерфейсах). Процедура фильтрации заключается в поиске адреса отправителя по базе FIB4 — пакет считается приемлемым, если он был получен интерфейсом, который используется для пересылки пакетов по адресу отправителя.

Strict RPF является разумным решением для любых краевых сетей и значительно превосходит Ingress Access List для случаев, когда сеть анонсирует множество префиксов, используя BGP. Этот метод служит для создания простых, быстрых и недорогих динамических фильтров.

Однако этому методу присущи свои проблемы. Во-первых, этот метод применим только в тех местах, где маршрутизация симметрична (дейтаграммы IP и отклики на них детерминировано проходят по одному пути). Для краевых сетей такая ситуация является, подключенных к ISP, такая ситуация достаточно типична, но в соединениях между ISP обычно возникает асимметричная маршрутизация (hot potato). Кроме того, если для передачи префиксов применяется BGP и некоторые легитимные префиксы не анонсируются или не воспринимаются в соответствии с политикой ISP, такая фильтрация будет приводить к эффектам, аналогичным тем, что возникают при неполных списках доступа — часть легитимного трафика будет фильтроваться по причине отсутствия маршрута в фильтруемой базе FIB.

Есть методы повышения эффективности Strict RPF для случаев асимметричной маршрутизации и многодомных систем, рассчитанные, прежде всего, на BGP, но в той или иной степени применимы и с другими протоколами маршрутизации. ISP задает лучшую метрику (которая не распространяется за пределы маршрутизатора) с помощью фирменного «веса» или «протокольной дальности», чтобы отдать предпочтение полученным напрямую маршрутам. При использовании BGP и достаточных ресурсах установку предпочтений можно автоматизировать, используя группы BGP [2]. Это позволяет сделать маршрут лучшим в FIB даже в тех случаях, когда реально используется только основное соединение и обычно через интерфейс пакеты даже не передаются. Этот метод предполагает отсутствие фильтрации Strict RPF между основным и вторичным краевыми маршрутизаторами (для многодомных подключений к разным ISP это допущение может быть неверным).

2.3. Проверка по доступности обратного пути

Feasible RPF5 является расширением Strict RPF. Адреса отправителей по-прежнему отыскиваются в FIB (или эквивалентной таблице RPF), но вместо использования одного лучшего маршрута добавляются дополнительные пути (если они есть), которые также принимаются во внимание. Список маршрутов создается с использованием зависящих от протокола маршрутизации методов, например, путем включения всех или N (части) доступных путей BGP из таблицы RIB6. Иногда такой метод используют, как часть реализации Strict RPF.

В случае асимметричной маршрутизации и/или многодомного подключения краевой сети, такой подход обеспечивает сравнительно простое решение проблем, присущих Strict RPF.

Важно понимать контекст, в котором работает Feasible RPF. Метод полагается на согласованные анонсы маршрутов (т.е., одни и те же префиксы через все пути), распространяемые всеми маршрутизаторами, применяющими проверки Feasible RPF. Например, этот метод может не работать в случае, когда вторичный ISP не распространяет анонс BGP первичному ISP (в результате использования route-map или других правил для маршрутов). Результаты отказов похожи на описанные в конце предыдущего параграфа для «улучшенного» варианта Strict RPF.

В общем случае фильтрация анонсов будет приводить к фильтрации соответствующих пакетов.

Отметим в заключение, что корректно заданные фильтры Feasible RPF являются очень мощным средством для входной фильтрации при асимметричных маршрутах, но важно понимать их функционирование и применимость.

2.4. Проверка по наличию маршрута

Метод Loose RPF7 алгоритмически похож на Strict RPF, но отличается тем, проверяется только наличие маршрута (даже маршрута по умолчанию, если он подходит). Практически этот метод можно трактовать, как «проверку наличия маршрута» (термин Loose RPF не вполне корректен, поскольку в первую очередь проверяется отсутствие «обратного пути»).

Неочевидное преимущество Loose RPF возникает в случаях асимметричной маршрутизации — пакеты отбрасываются, если маршрута к их отправителю нет совсем (например, «марсианский адрес» или немаршрутизируемый в данный момент адрес), но не отбрасываются при наличии какого-либо маршрута.

Однако методу Loose RPF присущи и проблемы. Поскольку этот механизм не принимает во внимание направление маршрута, он теряет способность отсекать нелегитимный трафик из той или иной сети и в большинстве случаев механизм становится бесполезным для использования в качестве средства входной фильтрации.

Кроме того, многие ISP поддерживают с теми или иными целями (например, сбор нелегитимного трафика в специальные «ловушки» (Honey Pot) или отбрасывание любого трафика, для которого нет иного пути), а небольшие ISP могут покупать у более крупных транзит трафика и использовать маршрут к большому провайдеру по умолчанию. По крайней мере часть реализаций Loose RPF проверяет, куда ведет маршрут по умолчанию. Если этот маршрут ведет на интерфейс, где механизм Loose RPF разрешен, все пакеты с этого интерфейса принимаются. Если не маршрут ведет в «никуда» или на какой-то другой интерфейс, пакеты с фиктивными адресами будут отбрасываться на интерфейсе Loose RPF даже при наличии используемого по умолчанию маршрута. Если такая усовершенствованная проверка не выполняется, наличие маршрута по умолчанию делает фильтрацию Loose RPF полностью бесполезной.

Loose RPF будет работать достаточно хорошо у ISP, фильтрующих трафик от вышестоящего провайдера для отбрасывания пакетов с «марсианскими» или немаршрутизируемыми адресами.

Если другие варианты фильтрации не подходят, Loose RPF можно применить в качестве средства проверки соответствия контракту — другая сеть заранее подтверждает, что она обеспечивает приемлемую фильтрацию на входе, так что данной сети достаточно лишь проверять этот факт и реагировать при обнаружении каких-либо пакетов, не соответствующих контракту. Естественно, что этот механизм будет лишь обнаруживать пакеты с «марсианскими» и другими немаршрутизируемыми адресами, не реагируя на пакеты с адресами из других пространств.

2.5. Проверка по наличию маршрута, кроме маршрута по умолчанию

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

Подобно Loose RPF, этот метод подходит для систем с асимметричной маршрутизацией (например, соединения между ISP). Однако, как и Loose RPF, этот метод не принимает во внимание направление, что ведет к невозможности идентифицировать трафик, легитимно приходящий из той или иной сети.

3. Разъяснения о применимости входной фильтрации

Не очевидно, что применение входной фильтрации не ограничивается лишь интерфейсами «последней мили» между ISP и конечным пользователем. Будет правильным решением (и рекомендуется) использовать входную фильтрацию также на периметре ISP (где это подходит), на маршрутизаторах, соединяющих ЛВС с корпоративной сетью и т. п. — это обеспечит глубоко эшелонированную защиту.

3.1. Многоуровневая фильтрация

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

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

3.2. Входная фильтрация для защиты инфраструктуры

Другие особенности, связанные с более широким развертыванием входной фильтрации, могут быть не очевидными. Маршрутизаторы и другие компоненты архитектуры ISP уязвимы для разных типов атак. Снижение уровня угроз обычно обеспечивается ограничением доступа к системам.

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

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

3.3. Входная фильтрация на партнерских соединениях

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

Однако следует отметить, что в смешанных ситуациях с восходящими/нисходящими и партнерскими соединениями свойства разных каналов могут различаться (например, в части ограничений, доверия, жизнестойкости механизмов входной фильтрации и т.п.). В наиболее типичном случае простое применение механизма входной фильтрации (например, Strict RPF) будет работать достаточно хорошо, если маршрутизация между партнерами достаточно симметрична. Это может быть полезно даже для фильтрации по адресам отправителей на восходящем соединении, проходящем через канал к партнеру (предполагается использование в восходящем направление чего-нибудь типа Strict RPF), однако эта ситуация более сложна и выходит за рамки документа (см. раздел 6).

4. Решения для входной фильтрации в многодомных сетях

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

  • использовать двух ISP для резервирования своего подключения к Internet в целях повышения отказоустойчивости;

  • выбирать ISP, обеспечивающего в данный момент более быстрый сервис TCP;

  • иметь потребность в точках доступа в Internet в тех местах, где нет ISP;

  • менять ISP (многодомность является временной).

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

  1. отказ от многодомности;

  2. отказ от входной фильтрации;

  3. согласие с неполным обслуживанием;

  4. ослабить на некоторых интерфейсах входную фильтрацию, используя подходящую форму Loose RPF, как описано в параграфе 4.1;

  5. обеспечить с помощью BGP или контракта полноту входной фильтрации у каждого ISP, как описано в параграфе 4.2;

  6. обеспечить, чтобы оконечная сеть только доставляла трафик своим ISP, которые будут осуществлять входную фильтрацию, как описано в параграфе 4.3.

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

Варианты 4 и 5 должны быть реализованы и у вышестоящих ISP, как описано в параграфе 3.1.

Далее будут рассмотрены практические способы преодоления побочных эффектов фильтрации на входе.

4.1. Не применяйте Loose RPF без необходимости

Когда асимметрия в маршрутизации предпочтительна или неизбежна, могут возникать сложности с использованием механизмов типа Strict RPF, которым нужны симметричные пути. Во многих случаях использование методов, описанных в конце параграфа 2.2 или механизма Feasible RPF позволяет обеспечить полноту входной фильтрации, подобно описанному ниже. Если же это не удается, реальными вариантами будут лишь отказ от входной фильтрации, использование создаваемых вручную списков доступа (возможно, дополненных другими механизмами) или применение той или иной формы проверки Loose RPF.

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

Использование Loose RPF на границе между оконечной сетью и ISP не представляется разумным решением, поскольку в этом случае утрачивается направление проверки. Это является аргументом в пользу полной фильтрации в сети восходящего направления или обеспечением в сети нисходящего направления того, что отвергаемые вышестоящей сетью пакеты никогда не будут достигать ее.

Следовательно, применение Loose RPF не рекомендуется за исключением случаев, когда оно служит для фильтрации «марсианских» и других немаршрутизируемых адресов.

4.2. Убедитесь в полноте входных фильтров каждого ISP

Для оконечной сети, где множественные подключения служат для обеспечения надежности или изменения маршрутизации в зависимости от поведения ISP, простейшим решением будет убедиться в том, что их ISP фактически передают адреса сети в маршрутизацию. Для этого оконечной сети зачастую требуется не связанный с провайдерами адресный префикс и обмен маршрутами с ISP по протоколу BGP, чтобы обеспечить передачу префикса в восходящем направлении основным транзитным ISP. Это требует от оконечной сети соответствия требованиям по размеру и техническому уровню специалистов, предъявляемым региональным регистратором (RIR) для выделения независимого префикса и номера автономной системы.

Упростить процесс обеспечения полноты входной фильтрации у ISP можно множеством способов. Методы Feasible RPF и Strict RPF с расширениями достаточно хорошо работают для многодомных подключений или асимметричной маршрутизации между ISP и оконечной сетью.

Если протоколы маршрутизации не применяются, а информация берется из баз данных типа Radius, TACACS или Diameter, входную фильтрацию можно обеспечить и актуализировать при использовании Strict RPF или Ingress Access List на основании информации из таких базе данных.

4.3. Передавайте трафик, использующий префикс ISP, только этому ISP

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

Эта процедура несложна, но требует аккуратного планирования и настройки. Для обеспечения отказоустойчивости оконечная сеть может выбрать подключение к каждому из своих ISP через две или более точки POP8, чтобы при возникновении проблем в одной POP или линии можно было использовать другое подключение к тому же ISP. Можно также организовать набор туннелей вместо множества подключений к одному ISP [4][5]. В этом случае граничные маршрутизаторы настраиваются так, чтобы сначала проверялся адрес отправителя в пакетах, предназначенных для ISP, а после этого пакет направлялся на туннельный интерфейс в направлении данного ISP.

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

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

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

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

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

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

Защитные свойства и применимость различных типов входной фильтрации достаточно сильно различаются.

  • Списки Ingress Access List обычно требуют поддержки вручную, но при правильной настройке являются очень мощным средством. Такие списки хорошо подходят на границе между оконечной сетью и ISP, когда конфигурация достаточно статична и не используется вариант Strict RPF, между сетями ISP, если число используемых ими префиксов невелико, а также в качестве дополнительного уровня защиты.

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

  • Feasible Path RPF работает, как расширение Strict RPF. Этот метод работает во всех случаях, где применим метод Strict RPF, но особенно подходит для многодомных систем и случаев с асимметрией трафика. Однако следует помнить, что Feasible RPF предполагает согласованное создание и распространение маршрутной информации. Особенно важно принимать это во внимание для случаев, когда анонсы префиксов проходят через «третьи руки».

  • Loose RPF отфильтровывает немаршрутизируемые префиксы типа «марсианских» адресов. Этот метод можно применять на восходящих интерфейсах для снижения интенсивности DoS-атак с немаршрутизируемыми адресами отправителей. На нисходящих интерфейсах этот метод может применяться лишь для проверки соответствия контрактам о применении фильтрации на входе.

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

6. Заключение и планы на будущее

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

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

В качестве резюме отметим, что:

  • входную фильтрацию всегда следует использовать между ISP и оконечными сетями с одним каналом;

  • метод Feasible RPF или Strict RPF почти всегда применим между ISP и многодомными оконечными сетями;

  • как ISP, так и оконечным сетям следует проверять, что их собственные адреса не указаны в поле отправителя приходящих извне пакетов;

  • некоторые формы входной фильтрации разумно использовать и между ISP (особенно при небольшом числе префиксов).

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

Можно отметить ряд направлений, в которых будет полезна дополнительная работа.

  • Более подробная спецификация механизмов, поскольку в реализациях используются разные варианты (например, передавать ли групповой трафик во всех случаях через фильтр Strict RPF). Формальная спецификация механизмов поможет согласовать разные реализации.

  • Дополнительное изучение и спецификация механизмов фильтрации на базе RIB (например, Feasible Path RPF). В частности, следует рассмотреть допущения, при которых механизмы работают должным образом.

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

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

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

Rob Austein, Barry Greene, Christoph Reichert, Daniel Senie, Pedro Roque и Iljitsch van Beijnum просмотрели этот документ и помогли улучшить его. Thomas Narten, Ted Hardie и Russ Housley предоставили отклики, которые помогли улучшить окончательный вариант документа.

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

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

[1] Ferguson, P. and D. Senie, «Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing», BCP 38, RFC 2827, May 2000.

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

[2] Chandrasekeran, R., Traina, P. and T. Li, «BGP Communities Attribute», RFC 1997, August 1996.

[3] IANA, «Special-Use IPv4 Addresses», RFC 3330, September 2002.

[4] Bates, T. and Y. Rekhter, «Scalable Support for Multi-homed Multi-provider Connectivity», RFC 2260, January 1998.

[5] Hagino, J. and H. Snyder, «IPv6 Multihoming Support at Site Exit Routers», RFC 3178, October 2001.

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

Fred Baker

Cisco Systems

Santa Barbara, CA 93117

US

EMail: fred@cisco.com

Pekka Savola

CSC/FUNET

Espoo

Finland

EMail: psavola@funet.fi

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

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

nmalykh@gmail.com

10. Полное заявление авторских прав

Copyright (C) The Internet Society (2004). К этому документу применимы права, лицензии и ограничения, указанные в BCP 78, и, за исключением указанного там, авторы сохраняют свои права.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Интеллектуальная собственность

IETF не принимает какой-либо позиции в отношении действительности или объема каких-либо прав интеллектуальной собственности (Intellectual Property Rights или IPR) или иных прав, которые, как может быть заявлено, относятся к реализации или использованию описанной в этом документе технологии, или степени, в которой любая лицензия, по которой права могут или не могут быть доступны, не заявляется также применение каких-либо усилий для определения таких прав. Сведения о процедурах IETF в отношении прав в документах RFC можно найти в BCP 78 и BCP 79.

Копии раскрытия IPR, предоставленные секретариату IETF, и любые гарантии доступности лицензий, а также результаты попыток получить общую лицензию или право на использование таких прав собственности разработчиками или пользователями этой спецификации, можно получить из сетевого репозитория IETF IPR по ссылке http://www.ietf.org/ipr.

IETF предлагает любой заинтересованной стороне обратить внимание на авторские права, патенты или использование патентов, а также иные права собственности, которые могут потребоваться для реализации этого стандарта. Информацию следует направлять в IETF по адресу ietf-ipr@ietf.org.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


1Distributed denial of service attack.

2Internet Service Provider. Прим. перев.

3Strict Reverse Path Forwarding — строгая проверка обратного пути.

4Forwarding Information Base — база данных о пересылке.

5Feasible Path Reverse Path Forwarding — доступен обратный путь.

6Routing Information Base — база маршрутной информации.

7Loose Reverse Path Forwarding — проверка наличия маршрута для обратного пути.

8Points of Presence — точка присутствия.

9Этот документ признан устаревшим и заменен RFC 5735. Прим. перев.

Рубрика: RFC | Комментарии к записи RFC 3704 Ingress Filtering for Multihomed Networks отключены

RFC 3715 IPsec-Network Address Translation (NAT) Compatibility Requirements

Network Working Group                                           B. Aboba
Request for Comments: 3715                                      W. Dixon
Category: Informational                                        Microsoft
                                                              March 2004

Требования по совместимости для трансляции IPsec NAT

IPsec-Network Address Translation (NAT) Compatibility Requirements

PDF

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

Этот документ содержит информацию для сообщества Internet и не задает каких-либо стандартов Internet. Документ может распространяться свободно.

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

Copyright (C) The Internet Society (2004). All Rights Reserved.

Аннотация

В этом документе описаны известные случаи несовместимости между NAT1 и IPsec, а также приведены требования по решению этой проблемы. Возможно наиболее распространенным применением IPsec является организация виртуальных частных сетей (VPN2). Одним из популярных приложений технологии VPN является обеспечение доступа удаленных пользователей в корпоративную сеть Intranet. Сегодня трансляторы NAT широко используются на домашних шлюзах, а также в других местах, откуда могут подключаться удаленные пользователи (гостиницы, кафе и т. п.). В результате несовместимости IPsec-NAT становятся основным препятствием распространению и практическом использованию технологий IPsec.

Оглавление

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

1. Введение

Возможно наиболее распространенным применением IPsec [RFC2401] являются виртуальные частные сети (VPN). Одним из наиболее популярных вариантов применения VPN является предоставление удаленным пользователям доступа в корпоративные сети Intranet. В настоящее время трансляторы сетевых адресов (NAT), как описано в [RFC3022] и [RFC2663], широко используются в домашних шлюзах, а также в других местах, откуда могут подключаться удаленные пользователя (например, в гостиницах). В результате несовместимости IPsec-NAT становятся главным препятствием распространению IPsec в одном из основных приложений. В этом документе описаны несовместимости между NAT и IPsec, а также требования по их преодолению.

1.1. Описание требований

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

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

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

2. Известные несовместимости между NA(P)T и IPsec

Несовместимости между NA(P)T и IPsec можно разделить на три категории, указанных ниже.

  1. Внутренние проблемы NA(P)T. Несовместимости этого типа непосредственно связаны с функциональностью NA(P)T, описанной в [RFC3022], и, следовательно, присущи всем устройствам NA(P)T.

  2. Недостатки реализации NA(P)T. Такие несовместимости не присущи природе NA(P)T, но присутствуют во многих реализациях NA(P)T. В эту категорию входит обработка входящих и исходящих фрагментов. Поскольку эти проблемы не связаны непосредственно с природой NA(P)T, они могут быть устранены в будущих реализациях NA(P)T. Однако в силу широкого распространения проблемных устройств их нужно принимать во внимание при реализации решений для работы через устройства NA(P)T.

  3. Проблемы с «помощниками» (Helper). Эти несовместимости присутствуют в устройствах NA(P)T, которые пытаются обеспечить работу IPsec через трансляторы NA(P)T. Ирония состоит в том, что такие «помощники» создают новые проблемы совместимости, осложняя решение уже имевшихся проблем. Хотя функциональность «помощников» в работе IPsec через NA(P)T присутствует не во всех трансляторах, эти функции получили достаточное распространение и их нужно принимать во внимание при реализации решений для работы через устройства NA(P)T.

2.1. Внутренние проблемы NA(P)T

Присущие NA(P)T проблемы совместимости перечислены ниже.

  1. Несовместимость IPsec AH [RFC2402] и NAT. Поскольку заголовок AH включает адреса отправителя и получателя в код контроля целостности, устройства NAT (включая reverse NAT), меняющие поля адресов, будут нарушать работу контроля целостности пакетов. Поскольку IPsec ESP [RFC2406] не включает адреса отправителя и получателя в код контроля целостности сообщений, этой проблемы не возникает для ESP.

  2. Несовместимость контрольных сумм и NAT. Контрольные суммы TCP и UDP зависят от IP-адресов отправителя и получателя по причине включения «псевдозаголовка» в расчет контрольных сумм. В результате, при расчете и проверке контрольных сумм после прохождения через трансляторы NAT будет возникать отказ.

    По этой причине IPsec ESP3 будет беспрепятственно работать через NAT только в случаях использования протоколов, отличных от TCP/UDP (например, туннельный режим IPsec или GRE с защитой IPsec), или отказа от проверки контрольных сумм (это возможно в IPv4 UDP). Как описано с [RFC793], расчет и проверка контрольных сумм TCP являются обязательными для протокола IPv4, а в IPv6 требуется расчет и проверка контрольных сумм UDP/TCP.

    Протокол SCTP4, как определено в [RFC2960] и [RFC3309], использует алгоритм CRC32C только для пакета SCTP (общий заголовок и блоки данных), не включая заголовка IP. В результате трансляторы NAT не препятствуют использованию SCTP CRC и проблем не возникает.

    Отметим, что в результате защиты целостности и аутентификации трафика в транспортном режиме IPsec с использованием сильной криптографии изменение пакетов может быть обнаружено до проверки контрольных сумм UDP/TCP. Таким образом, проверка контрольных сумм в этом случае служит лишь для обнаружения ошибок при внутренней обработке.

  3. Несовместимость адресных идентификаторов IKE с NAT. При использовании адресов IP в качестве идентификаторов на фазах 1 или 2 протокола IKE5 [RFC2409] изменение адресов отправителя или получателя трансляторами NAT (или reverse NAT) будет приводить к несоответствию между протокольными идентификаторами и адресами в заголовках IP. В соответствии с [RFC2409] реализации IKE должны отбрасывать такие пакеты.

    Для отказа от применения адресов IP в качестве идентификаторов IKE (фаза 1 и фаза 2), можно воспользоваться значениями userID или именами FQDN6. Если желательна аутентификация пользователей, можно воспользоваться идентификаторами типа ID_USER_FQDN, описанными в [RFC2407]. Если желательна аутентификация машин, можно воспользоваться идентификаторами типа ID_FQDN. В любом случае требуется проверить, был ли предложенный идентификатор аутентифицирован в результате обработки сертификата конечного объекта (end-entity), если фаза 1 включает обмен сертификатами. Хотя использование идентификаторов типа USER_FQDN или FQDN возможно в IKE, существуют варианты (например, записи SPD7 для подсетей), препятствующие такому применению.

    Поскольку в фазе 2 адреса отправителя зачастую применяются для формирования полных 5-элементных входящих селекторов SA, адрес получателя, протокол и номера портов отправителя и получателя могут использоваться в селекторах, чтобы не ослаблять обработку входящих SA.

  4. Несовместимость фиксированных портов отправителя в IKE с NAPT. Когда множество расположенных за транслятором NAPT хостов инициирует связи IKE SA с одним ответчиком, требуется механизм, позволяющий устройству NAPT демультиплексировать входящие пакеты IKE от такого ответчика. Обычно это выполняется путем трансляции порта отправителя IKE UDP на исходящие пакеты от инициатора. В этом случае ответчики должны быть способны воспринимать пакеты IKE из порта отправителя UDP, отличающегося от 500 и передавать отклики в этот же порт. Здесь требуется аккуратность для предотвращений неожиданностей при смене ключей. Если «плавающий» порт отправителя не применяется в качестве порта получателя при смене ключа, транслятор NAT может оказаться не способным к передаче пакетов смены ключей нужному адресату.

  5. Несовместимость между перекрывающимися записями SPD и NAT. При использовании хостами-инициаторами, расположенными за NAT своих адресов отправителя в качестве идентификаторов в фазе 2 возможно согласование перекрывающихся записей SPD с общим IP-адресом ответчика, который в таких случаях может передавать пакеты не в ту IPsec SA. Это обусловлено тем, что для отвечающего разные IPsec SA будут казаться эквивалентными, поскольку они соединяют одни и те же конечные точки и могут использоваться для передачи одного и того же трафика.

  6. Несовместимость выбора IPsec SPI с NAT. Поскольку трафик IPsec ESP зашифрован и непрозрачен для NAT, трансляторы NAT должны использовать элементы заголовков IP и IPsec для демультиплексирования входящего трафика IPsec. Для этого обычно применяется комбинация IP-адреса получателя, протокол защиты (AH/ESP) и IPsec SPI.

    Однако по причине независимого выбора входящих и исходящих SPI транслятор NAT не имеет возможности определить соответствие входящих SPI хостам-адресатам, проверяя лишь исходящий трафик. Таким образом, когда два расположенных за NAT хоста пытаются одновременно организовать связи IPsec SA с одним адресатом, транслятор NAT может доставлять входящие пакеты IPsec не тому получателю.

    Отметим, что это является несовместимостью не с IPsec, самой по себе, а с типичными способами реализации. В протоколах AH и ESP передающий хост указывает значение SPI для использования в данной защищенной связи SA и выбор этого значения важен лишь для получателя. В настоящее время комбинации Destination IP, SPI и Security Protocol (AH, ESP) уникально идентифицируют защищенные связи SA. Значения SPI из диапазона 1 — 255 зарезервированы агентством IANA и могут быть использованы в будущем. Это означает, что при согласовании с одним внешним хостом или шлюзом внутренние хосты, расположенные за одним устройством NAPT могут выбрать одинаковые значения SPI — например, у одного хоста будет входящая SA с (SPI=470, Internal Dest IP=192.168.0.4), а у другого — с (SPI=470, Internal Dest IP=192.168.0.5). Принимающий пакеты транслятор NAPT не сможет определить какие из входящих пакетов IPsec с SPI=470 кому пересылать из этих двух хостов.

    Принимающий хост может также выделить уникальное значение SPI для каждой индивидуальной (unicast) связи SA. В этом случае адрес Destination IP требуется проверять только для того, чтобы увидеть, является ли он индивидуальным адресом IP для данного хоста и не нужна проверка указания этого адреса удаленным хостом в поле Destination IP. Используя такой метод, транслятор NA(P)T может обеспечить малую (но отличную от 0) вероятность пересылки пакетов не тому внутреннему хосту даже при организации несколькими внутренними хостами связей SA с одним внешним хостом.

    Такое решение полностью совместимо с предшествующими версиями и требует на конкретном принимающем хосте лишь изменения политики выделения SPI и кода IPsec_esp_input(). Однако устройства NA(P)T могут оказаться не способны детектировать такое поведение без проблем, связанных с разбором элементов данных IKE. А от хоста может потребоваться использование резервных значений SPI из числа выделенных IANA.

  7. Несовместимость вложенных адресов IP с NAT. Поскольку данные защищены криптографически, все адреса IP, вложенные в пакеты IPsec, не будут транслироваться устройствами NAT. Это препятствует работе шлюзов прикладного уровня (ALG8), реализуемых в трансляторах NAT. К протоколам, использующим вложенные адреса IP относятся FTP, IRC, SNMP, LDAP, H.323, SIP, SCTP (не всегда) и многие игры. Для решения этой проблемы требуется устанавливать шлюзы ALG на хостах или защитных шлюзах, которые могут обрабатывать трафик приложений до инкапсуляции IPsec и после декапсуляции IPsec.

  8. Неявная направленность NA(P)T. Трансляторы NA(P)T зачастую требуют прохождения через них начального исходящего пакета для создания входного отображения. Направленность препятствует незапрошенной организации связей IPsec SA для хостов, расположенных за устройством NA(P)T.

  9. Проверка входных селекторов SA. В предположении, что IKE согласует селекторы фазы 2, обработка входных SA будет приводить к отбрасыванию декапсулированного пакета, поскольку [RFC2401] требует соответствия адреса отправителя пакета значению селектора SA, которое NA(P)T будет менять при обработке пакетов ESP.

2.2. Недостатки реализаций NA(P)T

Ниже перечислены проблемы, встречающиеся во многих реализациях NA(P)T.

  1. Неспособность обслуживания трафика, отличного от UDP/TCP. Некоторые системы NA(P)T отбрасывают трафик, не относящийся к UDP/TCP, или выполняют трансляцию только адресов в случаях, когда за NAT находится единственный хост. Такие системы NAPT не поддерживают трафик SCTP, ESP (протокол 50) и AH (протокол 51).

  2. Тайм-ауты отображений NAT. Трансляторы NA(P)T различаются по времени, в течение которого будет поддерживаться отображения UDP при отсутствии трафика. В результате даже при корректной трансляции пакетов IKE возможно преждевременное удаление состояний трансляции.

  3. Невозможность обработки исходящих фрагментов. Большинство трансляторов NA(P)T могут корректно фрагментировать исходящие пакеты IP в тех случаях, когда размер пакета превышает значение MTU на выходном интерфейсе. Однако корректная трансляция исходящих пакетов, которые уже были фрагментированы, достаточно сложна и многие устройства NAPT не поддерживают этого. Как отмечено в параграфе 6.3 работы [RFC3022], в случае, когда два хоста передают фрагментированные пакеты одному получателю, идентификаторы фрагментов могут перекрываться. Поскольку хост-получатель использует при сборке идентификаторы и смещения фрагментов, результатом такого перекрытия будет повреждение данных. Некоторые трансляторы NA(P)T обеспечивают защиту от описанного перекрытия с помощью трансляции идентификаторов фрагментов. Конфликты идентификаторов не вызывают проблем в тех случаях, когда фрагментацию выполняет сам транслятор NAT, поскольку уникальность идентификаторов должна обеспечиваться только для данной пары адресов отправителя и получателя.

    Поскольку фрагмент может иметь размер даже в 68 октетов (или больше) [RFC791], нет гарантии присутствия в первом фрагменте полного заголовка TCP. Поэтому транслятору NA(P)T для перерасчета контрольной суммы TCP может потребоваться изменение следующего фрагмента. Поскольку порядок следования фрагментов может нарушаться, а адреса IP могут оказаться в разных фрагментах (даже один адрес может быть разделен), транслятору NA(P)T потребуется выполнить сборку фрагментов для выполнения трансляции. Далеко не все устройства NA(P)T поддерживают это.

  4. Невозможность обработки входящих фрагментов. Поскольку полный заголовок IP/UDP/SCTP/TCP обычно содержится лишь в первом фрагменте, от устройств NAPT требуется способность трансляции на основе адресов отправителя и получателя, а также по идентификаторам фрагментов. Поскольку порядок следования фрагментов может нарушаться, заголовки для фрагмента с данным идентификатором могут быть не известны на момент его прибытия. Кроме того, заголовок может оказаться разделенным между фрагментами. В результате устройству NAPT потребуется перед трансляцией выполнить полную сборку пакета, что поддерживают далеко не все устройства NAPT.

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

2.3. Несовместимости «помощников»

Ниже перечислены несовместимости IPsec с функциональностью «помощников» NAT.

  1. Проверка заголовков ISAKMP9. Сегодня некоторые реализации NAT пытаются использовать значения IKE cookie для демультиплексирования трафика IKE. Как и при демультиплексировании по порту отправителя такое решение сталкивается с проблемами при смене ключей, поскольку в фазе 1 при смене ключей используются обычно не те значения cookie, которые применялись для предшествующего трафика.

  2. Специальная трактовка для порта 500. Поскольку некоторые реализации IKE не могут работать с портами отправителя, отличными от UDP 500, некоторые устройства NAT не транслируют пакеты, отправленные из порта UDP 500. Это означает, что такой транслятор NAT не позволит работать нескольким клиентам IPsec с одним удаленным шлюзом, если он не обрабатывает заголовки ISAKMP для работы со значениями cookie, что создает другую проблему, описанную выше.

  3. Проверка данных ISAKMP. Реализации NA(P)T, пытающиеся разбирать элементы данных ISAKMP, могут не обрабатывать все комбинации порядка этих элементов или не поддерживать элементы vendor_id для согласования опции IKE.

3. Требования по совместимости IPsec-NAT

Решение по совместимости IPsec-NAT предназначено для расширения сферы применения функциональности IPsec за пределы использования решения на основе совместимых с NAT туннелей IPsec, описанного в параграфе 2.3.

При оценке решений для совместимости IPsec-NAT следует принимать во внимание перечисленные ниже аспекты.

Развертывание

Поскольку IPv6 будет решать проблему нехватки адресов, зачастую вынуждающую использовать NA(P)T для IPv4, вопрос совместимости IPsec-NAT можно считать временным, решение которого нужно лишь до широкого развертывания IPv6. Следовательно, для того, чтобы решение IPsec-NAT было полезным, оно должно быть развернуто до перехода на IPv6.

Поскольку развертывание IPv6 требует изменений как на маршрутизаторах, так и на хостах, требующие подобных изменений решения по совместимости IPsec-NAT будут разворачиваться примерно с такой же скоростью, как IPv6. По этой причине для совместимости IPsec-NAT следует находить решения, которые потребуют изменений только на хостах без изменения в маршрутизаторах.

Наряду с прочим это означает, что решению по совместимости IPsec-NAT не следует требовать коммуникаций между хостом и транслятором NA(P)T, поскольку такое взаимодействие потребует изменения трансляторов NA(P)T и проверки совместимости между реализациями хостов и NA(P)T. Для быстрого развертывания требуется решение, которое будет работать с имеющимися маршрутизаторами и трансляторами NA(P)T в уже развернутой инфраструктуре.

Совместимость протоколов

От решения по работе IPsec через NAT не ожидается решение проблем для протоколов, которые не могут работать через трансляторы NA(P)T без защиты IPsec. Следовательно, сохранится потребность в шлюзах ALG для некоторых протоколов даже при наличии решения для работы IPsec через трансляторы NAT.

Безопасность

Поскольку NA(P)T напрямую обслуживает функции защиты, решениям по работе IPsec через NA(P)T не следует пропускать произвольный входящий трафик IPsec или IKE с любого адреса IP на хост за транслятором NA(P)T, хотя после организации двухсторонней связи IKE и IPsec следует сохранять отображение.

Удаленные пользователи

Поскольку основным применением IPsec является удаленный доступ в корпоративные сети (Intranet), решение для работы через трансляторы NA(P)T должно поддерживать туннельный режим IPsec или транспортный режим L2TP over IPsec [RFC3193], включая возможность прохождения через множество трансляторов NA(P)T между удаленным клиентом и шлюзом VPN.

Клиент может иметь маршрутизируемый адрес, а шлюз VPN может размещаться за одним или несколькими трансляторами NA(P)T или оба (клиент и шлюз VPN) могут находиться за одним или множеством трансляторов NA(P)T. Удаленные пользователи, подключающиеся к одному шлюзу VPN, могут работать с одинаковыми приватными адресами IP, находясь каждый за своим устройством NA(P)T, или множество удаленных пользователей может находиться в частной сети за одним транслятором NA(P)T с выдачей каждому уникального приватного адреса. Поскольку IKE использует порт UDP 500 для получателя, не требуется применять множество шлюзов VPN, расположенных за общим внешним адресом IP.

Взаимодействие между шлюзами

В варианте «шлюз-шлюз» между корпоративной сетью и Internet может размещаться сеть с адресами из приватного блока (DMZ10). В таких случаях защитные шлюзы IPsec, подключающие части корпоративной сети, могут размещаться в DMZ и использовать приватные адреса на своих внешних (в DMZ) интерфейсах. Транслятор NA(P)T соединяет сеть DMZ с Internet.

Сквозное взаимодействие

Решение NAT-IPsec должно разрешать защищенные коммуникации TCP/IP между парами хостов с использованием IPsec, а также коммуникации между хостами и шлюзами. Хост частной сети должен быть способен организовать одно или множество защищенных с помощью IPsec соединений TCP или сессий UDP с другим хостом, отделенным от первого одним или множеством устройств NA(P)T. Например, трансляторы NA(P)T могут размещаться в сетях филиалов, соединенных с корпоративной сетью, а также в центральном офисе для подключения корпоративной сети к Internet. Точно также трансляторы NA(P)T могут развертываться в корпоративной сети для беспроводного подключения или доступа удаленных клиентов. Это может потребовать на хосте специальной обработки трафика TCP и UDP.

Организация соединений SCTP с другим хостом через один или множество трансляторов NA(P)T может создавать дополнительные проблемы. Протокол SCTP поддерживает многодомность. Если применяется более одного адреса IP, эти адреса передаются, как часть пакета SCTP в процессе создания ассоциации (в блоках INIT и INIT-ACK). Для случая использования только однодомных конечных точек SCTP в параграфе 3.3.2.1 работы [RFC2960] сказано:

Отметим, что отсутствие параметров IP address в блоках INIT и INIT-ACK упрощает организацию ассоциаций при работе с использованием NAT.

Это означает, что без необходимости адреса IP не следует помещать в пакеты SCTP. Если присутствует транслятор NAT и адреса IP помещены в пакет, организация соединения завершится отказом. Недавно было внесено предложение [AddIP], позволяющее менять адрес IP после создания ассоциации. Сообщения о таком изменении также передают адреса IP в пакете SCTP и это будет вызывать конфликт с трансляторами NAT.

Совместимость с межсетевыми экранами

По причине широкого использования межсетевых экранов решение для совместимости NAT-IPsec должно позволять администраторам этих экранов создавать простые, статические правила доступа, разрешающие или запрещающие трафик IKE и IPsec, проходящий через трансляторы NA(P)T. Это позволяет, например, избежать динамического выделения портов получателя для IKE и IPsec.

Масштабирование

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

Поддержка режимов

По минимуму решение для совместимости IPsec-NAT должно поддерживать работу режимов IKE и IPsec, требуемых в [RFC2409] и [RFC2401]. Например, шлюз IPsec должен поддерживать туннельный режим ESP через трансляторы NA(P)T, а хост IPsec должен поддерживать работу через NA(P)T в транспортном режиме IPsec. Целью AH является защита неизменяемых полей в заголовках IP (включая адреса), а NA(P)T транслирует адреса, аннулируя проверку целостности AH. В результате NA(P)T и AH принципиально не совместимы и поэтому не вводится требования поддержки решением по совместимости IPsec-NAT протокола AH в транспортном или туннельном режиме.

Совместимость и взаимодействие со старыми версиями

Решение IPsec-NAT должно быть совместимо с имеющимися реализациями IKE/IPsec, чтобы они могли взаимодействовать через трансляторы NA(P)T, если таковые присутствуют. Это предполагает, что решение IPsec-NAT должно быть совместимо со старыми версиями IPsec [RFC2401] и IKE [RFC2409]. Кроме того, следует также обеспечивать возможность обнаружения устройств NA(P)T, чтобы решения NA(P)T не применялись без необходимости. Это означает, что должна обеспечиваться возможность определить, что существующая реализация IKE не поддерживает работу через NA(P)T, чтобы организовать работу IKE, как описано в [RFC2407], [RFC2408] и [RFC2409]. Отметим, что хотя это означает инициирование IKE через порт 500, требование выбора конкретного порта отправителя не задается, поэтому отправителю не обязательно использовать порт UDP 500.

Безопасность

Недопустимо внесение решением по совместимости IPsec-NAT дополнительных уязвимостей в защиту IKE или IPsec. Например, подходящее решение должно продемонстрировать, что оно не создает новых возможностей для атак на службы или использования обманок (spoofing). Протоколу IKE должна быть разрешена смена ключей, инициируемая любой стороной, как описано в [RFC2408].

4. Существующие решения

4.1. Туннельный режим IPsec

В ограниченном числе случаев для работы через NA(P)T можно использовать туннельный режим IPsec (см., например, [DHCP]). Однако предъявляемые требования, перечисленные ниже, вносят существенные ограничения и не снижают потребности в общем решении.

  1. IPsec ESP. Туннели IPsec ESP не учитывают внешний заголовок IP при расчете кода контроля целостности, поэтому трансляция адресов не приводит к отказам аутентификации. В туннелях IPsec не должна использоваться проверка контрольных сумм.

  2. Отказ от проверки адресов. Большинство современных реализаций туннельного режима IPsec не проверяет адрес отправителя, поэтому несоответствие этих адресов с идентификаторами IKE не обнаруживается. Это создает уязвимости, описанные в разделе 5.

  3. Записи Any to Any в SPD. Клиенты туннельного режима IPsec могут согласовывать SPD вида any to any (каждый с каждым), которые не становятся неприемлемыми в результате трансляции адресов, Это фактически исключает использование SPD для фильтрации туннелируемого трафика.

  4. Работа с одним клиентом. Если за транслятором NAT размещается единственный клиент, риска перекрытия SPD не возникает. Поскольку устройству NAT не требуется разделять трафик между несколькими клиентами, не возникает риска при смене ключей или некорректного демультиплексирования входящих SPI и cookie.

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

  6. Активные сессии. Большинство сессий VPN обычно поддерживают поток входящего трафика в течение всего срока существования, поэтому вероятность удаления отображений портов UDP в действующей сессии достаточно мала.

4.2. RSIP

Метод RSIP, описанный в [RSIP] и [RSIPFrame], включает механизмы для работы IPsec через трансляторы, описанные в [RSIPsec]. За счет поддержки связи между хостом и транслятором NA(P)T метод RSIP решает проблемы демультиплексирования SPI и перекрытия SPD в приложениях IPsec. Метод подходит для использования в корпоративных и домашних сетях. Позволяя расположенным за транслятором NAT хостам использовать общий внешний адрес транслятора NA(P)T (шлюз RSIP), этот метод обеспечивает совместимость с протоколами, передающими вложенные в пакеты адреса IP.

За счет туннелирования пакетов IKE и IPsec метод RSIP позволяет обойтись без изменения протоколов IKE и IPsec, хотя в реализациях IKE и IPsec на хостах требуются серьезные изменения для обеспечения совместимости с RSIP. В результате будет обеспечиваться совместимость со всеми имеющимися протоколами (AH/ESP) и режимами (транспортный и туннельный).

Для обеспечения демультиплексирования при смене ключей IKE в RSIP требуется использовать «плавающий» порт отправителя IKE, а также смена ключей с «плавающим» портом. В результате совместимость с имеющимися реализациями IPsec не гарантируется.

RSIP не удовлетворяет требованиям к развертыванию решений по совместимости IPsec-NAT, поскольку хостам с поддержкой RSIP требуется соответствующий шлюз RSIP для организации IPsec SA с другим хостом. Поскольку RSIP требует менять только клиентов и маршрутизатора, а не серверы, это несколько снижает сложность развертывания по сравнению с IPv6. Однако от разработчиков реализация RSIP потребует существенной части ресурсов, нужных для поддержки IPv6. По этой причине RSIP может служить лишь временным решением, которое не имеет долгосрочной перспективы.

4.3. 6to4

Метод 6to4, описанный в [RFC3056], может служить основой для решения IPsec-NAT. В этой модели транслятор NAT обеспечивает хостам IPv6 префикс IPv6, созданный на основе внешнего адреса IPv4 транслятора NAT, и инкапсулирует пакеты IPv6 в IPv4 для передачи другим хостам или трансляторам 6to4. Это позволяет хостам IPv6, использующим IPsec, свободно обмениваться данными с другими хостами в облаке IPv6 или 6to4.

Решение 6to4 изящно и отказоустойчиво для случая одного транслятора NA(P)T между клиентом и шлюзом VPN, но оно не обеспечивает универсальности применения. Поскольку в 6to4 требуется выделение маршрутизируемого адреса IPv4 транслятору NA(P)T для того, чтобы он мог сформировать префикс IPv6, это решение не может быть использовано при наличии нескольких устройств NA(P)T между клиентом и шлюзом VPN. Например, трансляторы NA(P)T с приватными адресами на внешнем интерфейсе не могут использоваться находящимися за ними клиентами для получения префикса IPv6 с помощью 6to4.

Хотя 6to4 не требует существенной поддержки от хостов, которые уже поддерживают IPv6, этот метод требует существенного обновления трансляторов NAT. В результате 6to4 не может служить для быстрого решения проблемы.

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

По определению решение IPsec-NAT требует от всех хостов и маршрутизаторов, поддерживающих IPsec, способности безопасно обрабатывать пакеты, чьи заголовки IP не имеют криптографической защиты. Это вызывает множество проблем, которые требуется обсудить.

Поскольку IPsec AH не может работать через NAT, одним из побочных эффектов решения по совместимости IPsec-NAT может быть использование IPsec ESP с null-шифрованием (без шифрования) взамен AH при наличии трансляторов NAT между отправителем и получателем. Однако следует отметить, что ESP с null-шифрованием не обеспечивает таких же защитных свойств, как AH. Например, риски, связанные с IPv6 source routing, предотвращаются в AH, но сохраняются в ESP с null-шифрованием.

Кроме того, по причине отсутствия в ESP с любыми преобразованиями защиты от подмены адресов отправителя, требуется та или иная проверка корректности адреса отправителя. Важность такой проверки понимают далеко не все. Обычно проверка подмены IP-адреса отправителя выполняется, как часть IPsec_{esp,ah}_input(). Это позволяет убедиться, что пакет отправлен с того же адреса, который заявлен в исходных защитных связях IKE для фаз 1 и 2. Когда принимающих хост расположен за транслятором NAT, такая проверка не имеет большого смысла для индивидуальных (unicast) сессий, но в глобальной сети Internet она важна для индивидуальных сессий в туннельном режиме с целью предотвращения spoofing-атак, описанных в [AuthSource], которые могут возникать в тех случаях, когда контроль доступа на приемной стороне зависит от IP-адреса отправителя проверенных пакетов ESP после декапсуляции. Схемам IPsec-NAT следует обеспечивать защиту от атак с подменой адресов отправителя, если эти адреса применяются для контроля доступа.

Рассмотрим два хоста A и C, находящихся за (разными) трансляторами NAT, которые согласуют туннельные связи IPsec SA с маршрутизатором B. Хосты A и C могут иметь разные привилегии — например, A может принадлежать сотруднику доверенной компании с доступом в корпоративную сеть Intranet, а C — заказчику с доступом лишь к конкретному web-сайту.

Если C отправит туннельный пакет от имени хоста A (обманный адрес отправителя), важно, чтобы такой пакет не получил привилегий, соответствующих A. Если выполняется аутентификация и защита целостности но без проверки обманных адресов (соответствия между адресом отправителя и SPI), хост C может получить доступ в ту часть сети, которая для него не предназначена. По этой причине схема решения для совместимости IPsec-NAT должна обеспечивать ту или иную защиту от подмены адреса отправителя.

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

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

[RFC791] Postel, J., «Internet Protocol», STD 5, RFC 791, September 1981.

[RFC793] Postel, J., «Transmission Control Protocol», STD 7, RFC 793, September 1981.

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

[RFC2401] Atkinson, R. and S. Kent, «Security Architecture for the Internet Protocol», RFC 240111, November 1998.

[RFC2402] Kent, S. and R. Atkinson, «IP Authentication Header», RFC 240212, November 1998.

[RFC2406] Kent,S. and R. Atkinson, «IP Encapsulating Security Payload (ESP)», RFC 240613, November 1998.

[RFC2407] Piper, D., «The Internet IP Security Domain of Interpretation for ISAKMP», RFC 240714, November 1998.

[RFC2409] Harkins, D. and D. Carrel, «The Internet Key Exchange (IKE)», RFC 24094, November 1998.

[RFC2663] Srisuresh, P. and M. Holdredge, «IP Network Address Translator (NAT) Terminology and Considerations», RFC 2663, August 1999.

[RFC3022] Srisuresh, P. and K. Egevang, «Traditional IP Network Address Translator (Traditional NAT)», RFC 3022, January 2001.

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

[RFC2408] Maughan, D., Schertler, M., Schneider, M. and J. Turner, «Internet Security Association and Key Management Protocol (ISAKMP)», RFC 24084, November 1998.

[RFC2960] Stewart, R., Xie, Q., Morneault, K., Sharp, C., Schwarzbauer, H., Taylor, T., Rytina, I., Kalla, M., Zhang, M. and V. Paxson, «Stream Control Transmission Protocol», RFC 2960, October 2000.

[RFC3056] Carpenter, B. and K. Moore, «Connection of IPv6 Domains via IPv4 Clouds», RFC 3056, February 2001.

[RFC3193] Patel, B., Aboba, B., Dixon, W., Zorn, G. and S. Booth, «Securing L2TP using IPsec», RFC 3193, November 2001.

[RFC3309] Stone, J., Stewart, R. and D. Otis, «Stream Control Transmission Protocol (SCTP) Checksum Change», RFC 3309, September 2002.

[RSIPFrame] Borella, M., Lo, J., Grabelsky, D. and G. Montenegro, «Realm Specific IP: Framework», RFC 3102, October 2001.

[RSIP] Borella, M., Grabelsky, D., Lo, J. and K. Taniguchi, «Realm Specific IP: Protocol Specification», RFC 3103, October 2001.

[RSIPsec] Montenegro, G. and M. Borella, «RSIP Support for End-to-End IPsec», RFC 3104, October 2001.

[DHCP] Patel, B., Aboba, B., Kelly, S. and V. Gupta, «Dynamic Host Configuration Protocol (DHCPv4) Configuration of IPsec Tunnel Mode», RFC 3456, January 2003.

[AuthSource] Kent, S., «Authenticated Source Addresses», IPsec WG Archive (ftp://ftp.ans.net/pub/archive/IPsec), Message-Id: <v02130517ad121773c8ed@[128.89.0.110]>, January 5, 1996.

[AddIP] Stewart, R., et al., «Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration», Work in Progress15.

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

Спасибо Steve Bellovin из AT&T Research, Michael Tuexen из Siemens, Peter Ford из Microsoft, Ran Atkinson из Extreme Networks и Daniel Senie за полезные обсуждения проблемы.

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

Bernard Aboba

Microsoft Corporation

One Microsoft Way

Redmond, WA 98052

Phone: +1 425 706 6605

Fax: +1 425 936 7329

EMail: bernarda@microsoft.com

William Dixon

V6 Security, Inc.

601 Union Square, Suite #4200-300

Seattle, WA 98101

EMail: ietf-wd@v6security.com


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

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

nmalykh@gmail.com

9. Полное заявление авторских прав

Copyright (C) The Internet Society (2004). К этому документу применимы права, лицензии и ограничения, указанные в BCP 78, и, за исключением указанного там, авторы сохраняют свои права.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Интеллектуальная собственность

IETF не принимает какой-либо позиции в отношении действительности или объема каких-либо прав интеллектуальной собственности (Intellectual Property Rights или IPR) или иных прав, которые, как может быть заявлено, относятся к реализации или использованию описанной в этом документе технологии, или степени, в которой любая лицензия, по которой права могут или не могут быть доступны, не заявляется также применение каких-либо усилий для определения таких прав. Сведения о процедурах IETF в отношении прав в документах RFC можно найти в BCP 78 и BCP 79.

Копии раскрытия IPR, предоставленные секретариату IETF, и любые гарантии доступности лицензий, а также результаты попыток получить общую лицензию или право на использование таких прав собственности разработчиками или пользователями этой спецификации, можно получить из сетевого репозитория IETF IPR по ссылке http://www.ietf.org/ipr.

IETF предлагает любой заинтересованной стороне обратить внимание на авторские права, патенты или использование патентов, а также иные права собственности, которые могут потребоваться для реализации этого стандарта. Информацию следует направлять в IETF по адресу ietf-ipr@ietf.org.

Подтверждение

Финансирование функций RFC Editor обеспеченоInternet Society.


1Network Address Translation — трансляция сетевых адресов.

2Virtual Private Network.

3Encapsulating Security Payload — инкапсулированные защищенные данные.

4Stream Control Transmission Protocol — протокол управления передачей потоков.

5Internet Key Exchange — обмен ключами в Internet.

6Полное доменное имя. Прим. перев.

7Security Policy Database — база данных о правилах безопасности.

8Application Layer Gateway.

9Internet Security Association and Key Management Protocol — протокол защищенных связей и обмена ключами в Internet.

10«Демилитаризованная» зона.

11Этот документ признан устаревшим и заменен RFC 4301. Прим. перев.

12Этот документ признан устаревшим и заменен RFC 4302 и RFC 4305. Прим. перев.

13Этот документ признан устаревшим и заменен RFC 4303 и RFC 4305. Прим. перев.

14Этот документ признан устаревшим и заменен RFC 4306, который заменен RFC 5996, а затем — RFC 7296. Прим. перев.

15Работа завершена и опубликована в RFC 5061. Прим. перев.

Рубрика: RFC | Комментарии к записи RFC 3715 IPsec-Network Address Translation (NAT) Compatibility Requirements отключены

RFC 3682 The Generalized TTL Security Mechanism (GTSM)

Этот документ заменен RFC 5082.

Рубрика: RFC | Комментарии к записи RFC 3682 The Generalized TTL Security Mechanism (GTSM) отключены

RFC3688 The IETF XML Registry

Network Working Group                                        M. Mealling
Request for Comments: 3688                                VeriSign, Inc.
BCP: 81                                                     January 2004
Category: Best Current Practice

The IETF XML Registry

Реестр IETF XML

PDF

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

Этот документ служит для обмена опытом (Internet Best Current Practice) в сообществе Internet и является приглашением к дискуссии в целях развития и совершенствования. Документ можно распространять без ограничений.

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

Copyright (C) The Internet Society (2004). All Rights Reserved.

Fyyjnfwbz

А этом документе описан поддерживаемый IANA реестр для стандартов IETF, которые используют связанные с XML1 элементы, такие как пространство имен (Namespace), объявления типа документа (DTD2), схемы (Schema), и схемы RDF3.

1. Введение

За несколько недавних лет язык XML [W3C.REC-xml] стал широко применяться для разметки данных. Уже имеется несколько рабочих групп IETF, которые разработали стандарты, определяющие типы документов XML (DTD), пространства имен XML [W3C.REC-xml-names] и схемы XML [W3C.REC-xmlschema-1]. Каждая из этих технологий применяет унифицированные идентификаторы ресурсов (URI4) [RFC2396] и другие стандартизованные идентификаторы для указания различных компонент.

Например, хотя в некоторых стандартах применялась практика использования определений типов документов (DTD) с целью отказа от использования идентификаторов PUBLIC в пользу «общеизвестных» идентификаторов SYSTEM, оказалось, что попытка стандартизации идентификаторов SYSTEM связана с множеством проблем. В результате несколько стандартов IETF просто создали нетранслируемые URI для того лишь, чтобы не преобразовывать DTD для некого заданного документа XML.

Этот документ является попыткой стандартизовать и улучшить эти методы за счет создания поддерживаемого IANA реестра идентификаторов элементов XML, чтобы авторы документов и разработчики имели поддерживаемое и доверенное хранилище для своих элементов XML. В рамках этого стандарта IANA будет поддерживать:

  • публичное представление документа;

  • URI для элементов, если идентификатор представлен при регистрации;

  • реестр публичных идентификаторов (Public Identifier) как URI.

Если при регистрации не был запрошен идентификатор URI, агентство IANA будет назначать имя ресурса (URN5) в соответствии с [RFC3553].

2. Уровни требований

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

3. Регистрируемые документы

3.1. Назначенные/зарегистрированные URI

Для всех элементов (кроме идентификаторов PUBLIC) этого реестра при регистрации будет требоваться URI. Если заявитель хочет получить URI, будет выделяться имя URN в форме urn:ietf:params:xml:<class>:<id>, где <class> указывает тип регистрируемого документа (см. ниже). Уникальное значение <id> генерируется IANA на основе любых мер, которые IANA сочтет необходимыми для обеспечения уникальности и постоянства. Отметим, что для назначения URN этого типа регистрируемый элемент должен получить согласие IETF. По сети, это означает документирование в RFC. Шаблон регистрации URN в соответствии с RFC 3553 [RFC3553] представлен в разделе 6.

IANA также будет поддерживать файловый сервер, доступный по меньшей мере по протоколам HTTP и FTP, где будут содержаться все зарегистрированные элементы в неком пространстве с открытым доступом так же, как для всех зарегистрированных IANA, элементов, доступных по ссылке http://www.iana.org/assignments/. Хотя выбор структуры каталога остается за IANA, предполагается, что файлы будут организованы по значениям <class> с использованием <id> в качестве имени.

Разработчикам не следует полагаться в программах на доступность или статичность этой структуры данных. Явно отмечались попытки некоторых программных средств напрямую загружать DTD, схемы и т. п. Разработчикам следует понимать, что они делают и не следует указывать сетевые ресурсы IANA в качестве «репозитория для загрузки схем». По этой причине IANA не регистрирует и не предоставляет идентификаторов SYSTEM.

3.2. Регистрируемые классы

Ниже приведен список элементов XML, регистрируемых IANA.

publicid

Документ XML, содержащий объявление DOCTYPE или другую внешнюю ссылку, может указать такую ссылку идентификатором PUBLIC или SYSTEM. Идентификаторы SYSTEM содержат зависимую от системы информацию, которая позволяет менеджеру объектов XML найти файл, место в памяти или указатель в файле, где можно найти объект. Следует отметить, что системный идентификатор может быть вызовом программы, контролирующей доступ к указанному объекту. Таким образом, эти идентификаторы не являются регистрируемыми элементами. Во многих случаях идентификаторы SYSTEM являются также URI. Однако в таких случаях URI применяется только для определяемой системой информации. Когда идентификатор PUBLIC является URI, идентификатор SYSTEM может содержать то же значение URI, но такой подход не рекомендуется без осознания побочных эффектов и понимания того, что они не принесут неприемлемого вреда.

Идентификатор PUBLIC является именем, которому следует быть значимым среди систем и разных пользовательских сред. Обычно это имя, с которым связан зарегистрированный владелец, так что общедоступные идентификаторы гарантированно являются уникальными и два объекта не будут иметь одинаковых публичных идентификаторов. На практике идентификаторы PUBLIC обычно являются FPI6 [ISO.8879.1986], но это не обязательно. Как сказано в [RFC3151]:

«Любая строка, содержащая только символы общедоступного идентификатора (определен в Выпуске 13 Extensible Markup Language (XML) 1.0, второго издания) является допустимым публичным идентификатором.»

Поэтому идентификаторы PUBLIC могут быть URN при использовании символов, соответствующих ограничениям. Таким образом, идентификаторы, зарегистрированные с DTD являются идентификаторами PUBLIC. Единственным ограничением является набор разрешенных символов. Если заявитель не предоставляет его, IANA будет назначать одну из форм urn:ietf:params:xml:pi:<id>. Заявителям рекомендуется прочесть RFC 3151 [RFC3151], где даны рекомендации по созданию URN, которые могут быть также FPI.

ns

Пространства имен XML [W3C.REC-xml-names] указываются идентификаторами URI и не имеют машинно-анализируемого представления. Таким образом, зарегистрированный документ будет либо спецификацией, либо ссылкой на нее. Если заявитель не представляет URI, агентство IANA будет назначать имя URN в форме urn:ietf:params:xml:ns:<id>, которое будет именем пространства имен XML.

schema

Схемы XML [W3C.REC-xmlschema-1] также указываются URI, но их содержимое пригодно для машинного анализа. Зарегистрированные IANA документы будут файлами XML Schema. Выделенное IANA значение URN может применяться в качестве URI для схемы и имеет форму urn:ietf:params:xml:schema:<id>.

rdfschema

Формат описания ресурса (RDF7) [W3C.CR-rdf-schema] представляет собой сериализацию XML для связного графа, основанного на модели данных, используемой для представления метаданных. RDF использует схемы, которые выражают элементы связей между URI. Эти элементы указываются идентификаторами URI. Выделенное IANA значение URN может служить для идентификации URI и имеет форму urn:ietf:params:xml:rdfschema:<id>.

4. Регистрируемые процедуры

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

URI

Идентификатор URI или PUBLIC, указывающий компонент XML. Если заявитель хочет получить значение URI от IANA, следует указать «please assign» (выделите пожалуйста).

Registrant Contact

Человек или организации для контактов по вопросам регистрации. В идеале это имя и постоянные контактные данные (физические и сетевые). Для разрабатываемых IETF стандартов запрашивающей стороной будет IESG.

XML

Точный код XML для хранения в реестре. Если начало и конец файла не очевидны, в документе следует использовать текст BEGIN в начале файла и END для маркировки конца файла. IANA будет помещать весь текст между этими маркерами (за исключением перевода страниц и форматирования RFC, добавленного редактором RFC) в файл репозитория.

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

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

Кроме этого не возникает каких-либо проблем безопасности в дополнение к известным для реестров IANA.

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

Этот документ пытается создать довольно большой реестр, за который будет отвечать агентство IANA (по указанию IESG). Общий объем работы по поддержке такого реестра достаточно велик, а правила и процедуры, связанные с процессами одобрения публикаций, не являются тривиальными. Реестр работает по принципу естественной очередности (First Come First Served), но требует спецификаций (процедура Specification Required). Когда IETF обретет опыт работы с реестром, правила могут быть изменены.

В RFC 3553 [RFC3553] указано, что любой новый реестр, требующий имени, будет назначаться под пространством имен urn:ietf:params и должен задавать структуру этого пространства в форме шаблона. IANA создает и поддерживает это новое субпространство, как показано ниже.

   Registry-name: xml
   Specification: This document contains the registry specification.
      The namespace is organized with one sub-namespace which is the
      <id>.
   Repository: To be assigned according to the guidelines found above.
   Index value: The class name

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

[ISO.8879.1986] International Organization for Standardization, «Information processing — Text and office systems — Standard generalized markup language (SGML)», ISO Standard 8879, 1986.

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

[RFC2396] Berners-Lee, T., Fielding, R. and L. Masinter, «Uniform Resource Identifiers (URI): Generic Syntax», RFC 23968, August 1998.

[RFC3151] Walsh, N., Cowan, J. and P. Grosso, «A URN Namespace for Public Identifiers», RFC 3151, August 2001.

[RFC3553] Mealling, M., Masinter, L., Hardie, T. and G. Klyne, «An IETF URN Sub-namespace for Registered Protocol Parameters», BCP 73, RFC 3553, June 2003.

[W3C.CR-rdf-schema] Brickley, D. and R. Guha, «Resource Description Framework (RDF) Schema Specification 1.0», W3C CR-rdf-schema, March 2000, <http://www.w3.org/TR/2000/CR-rdf-schema-20000327>.

[W3C.REC-xml] Bray, T., Paoli, J., Sperberg-McQueen, C. And E. Maler, «Extensible Markup Language (XML) 1.0 (2nd ed)», W3C REC-xml, October 2000, <http://www.w3.org/TR/REC-xml>.

[W3C.REC-xml-names] Bray, T., Hollander, D. and A. Layman, «Namespaces in XML», W3C REC-xml-names, January 1999, <http://www.w3.org/TR/REC-xml-names>.

[W3C.REC-xmlschema-1] Thompson, H., Beech, D., Maloney, M. and N. Mendelsohn, «XML Schema Part 1: Structures», W3C REC-xmlschema-1, May 2001, <http://www.w3.org/TR/xmlschema-1/>.

8. Заявление прав интеллектуальной собственности

IETF не занимает какой-либо позиции в отношении действительности или объёма каких-либо прав интеллектуальной собственности или иных прав, которые могут быть заявлены как относящиеся к реализации или применению технологии, описанной в этом документе, или степени, в которой любая лицензия, по которой права могут или не могут быть доступны, не заявляется также применение каких-либо усилий для определения таких прав. Сведения о процедурах IETF в отношении прав в документах, связанных со стандартами, можно найти в BCP-11. Копии раскрытия IPR, предоставленные секретариату IETF, и любые гарантии доступности лицензий, а также результаты попыток получить общую лицензию или право на использование таких прав собственности разработчиками или пользователями этой спецификации, можно получить в IETF Secretariat.

IETF предлагает любой заинтересованной стороне обратить внимание на авторские права, патенты или использование патентов, а также иные права собственности, которые могут потребоваться для реализации этого стандарта. Эту информацию следует направлять исполнительному директоу IETF (Executive Director).

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

Michael Mealling

VeriSign, Inc.

Mountain View, CA

USA

EMail: michael@verisignlabs.com

URI: http://www.research.verisignlabs.com


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

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

nmalykh@protokols.ru

10. Полное заявление авторских прав

Copyright (C) The Internet Society (2004). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


1Extensible Markup Language — расширенный язык разметки.

2Document Type Declaration.

3Resource Description Framework — модель описания ресурсов.

4Uniform Resource Identifier.

5Uniform Resource Name — унифицированное имя ресурса.

6Formal Public Identifier — формальный общедоступный идентификатор.

7Resource Description Format.

8Заменен RFC 3986. Прим. перев.

Рубрика: RFC | Комментарии к записи RFC3688 The IETF XML Registry отключены

RFC 3654 Requirements for Separation of IP Control and Forwarding

Network Working Group                                   H. Khosravi, Ed.
Request for Comments: 3654                              T. Anderson, Ed.
Category: Informational                                            Intel
                                                           November 2003

Требования к разделению управления и пересылки IP

Requirements for Separation of IP Control and Forwarding

PDF

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

Этот документ содержит информацию для сообщества Internet. Документ не задает каких-либо стандартов Internet. Распространение документа не ограничивается.

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

Copyright (C) The Internet Society (2003). All Rights Reserved.

Аннотация

Этот документ определяет архитектуру разделения уровней управления и пересылки ForCES1 и связанную с ней терминологию. Документ также определяет набор требований к архитектуре, моделированию и протоколу для логического разделения уровней управления и пересылки IP (IPv4, IPv6) в сетевых устройствах.

1. Введение

Элементы сетей IP состоят из множества логически разделенных частей, которые совместно используются для обеспечения заданной функциональности (например, маршрутизации или коммутации IP), а для внешнего наблюдателя представляются единым элементом. Существует два основных типа таких элементов — компоненты уровня управления (control-plane) и компоненты уровня пересылки (forwarding-plane). В общем случае компонентами уровня пересылки служат специализированные контроллеры ASIC, сетевые процессоры или устройства на процессорах общего назначения, которые выполняют все операции пути передачи данных. Компоненты уровня управления, напротив, обычно включают процессоры общего назначения, которые обеспечивают такие функции управления, как обработка протоколов маршрутизации или сигнализации. Нужен стандартный набор механизмов для связи между этими компонентами, который обеспечит лучшее масштабирование и позволит развивать уровни управления и пересылки независимо один от другого, что ускорит разработку и внедрение новинок.

Рассмотрим в качестве иллюстрации архитектуру маршрутизатора, чтобы показать концепцию разделения уровней управления и пересылки. Архитектура маршрутизатора включает две основных части. Эти взаимосвязанные компоненты выполняют функции, которые также тесно связаны между собой. Нижняя часть пути пересылки работает на уровне пересылки данных и отвечает за обработку и пересылку каждого пакета. Над уровнем пересылки размещается сетевая операционная система, которая отвечает за операции уровня управления. В случае маршрутизатора или коммутатора сетевая ОС обеспечивает протоколы маршрутизации, сигнализации и управления (например, RIP, OSPF и RSVP), определяя поведение уровня пересылки путем манипуляций с таблицами пересылки, таблицами QoS для потоков и списками контроля доступа (ACL2). Обычно архитектура таких устройств объединяет всю эту функциональность в единое целое с точки зрения внешнего наблюдателя.

2. Определения

Addressable Entity (AE) – адресуемый объект (элемент)

Физическое сетевое устройство, которое непосредственно адресуется в данной технологии соединения. Например, в сетях IP — это устройства, к которым можно обращаться по адресу IP, а в машине коммутации (switch fabric) — это устройства, к которым можно обращаться по номеру порта.

Physical Forwarding Element (PFE) – физический элемент пересылки

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

Physical Control Element (PCE) – физический элемент управления

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

Forwarding Element (FE) – элемент пересылки

Логический элемент, реализующий протокол ForCES. Элементы FE используют базовое оборудование для обработки каждого пакета и управляются (контролируются) одним или множеством CE по протоколу ForCES. FE может быть отдельным элементом (или PFE), частью PFE или множеством PFE.

Control Element (CE) – элемент управления

Логический объект, который реализует протокол ForCES и инструктирует один или множество FE по части обработки пакетов. Функциональность CE включает исполнение протоколов управления и сигнализации. CE может состоять из частей PCE или целых PCE.

Pre-association Phase – фаза до объединения

Интервал времени, в течение которого менеджер FE (см. ниже) и менеджер CE (см. ниже) определяют каким FE и CE следует быть частью одного сетевого элемента. Все разделение PFE и PCE происходит на этом этапе.

Post-association Phase – фаза после объединения

Интервал времени, в течение которого FE знает управляющие им устройства CE и наоборот, включая интервал, в течение которого CE и FE организуют связи между собой.

ForCES Protocol – протокол ForCES

Хотя в архитектуре ForCES может применяться множество протоколов, термин «протокол ForCES» относится лишь к протоколу ForCES фазы после объединения (см. ниже).

ForCES Post-Association Phase Protocol – протокол ForCES после объединения

Протокол, используемый в коммуникациях между CE и FE после объединения. Этот протокол не применяется для коммуникаций CE-CE, FE-FE или между менеджерами FE и CE. Протокол ForCES работает в режиме «ведущий-ведомый» (master-slave), где FE являются ведомыми, а CE — ведущими. Этот протокол включает управление коммуникационным каналом (например, организацию соединения, обмен heartbeat) и сами управляющие сообщения. Протокол может представлять единое целое или набор совместно работающих протоколов.

FE Model – модель элемента пересылки

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

FE Manager – менеджер FE

Логический элемент, которые работает в фазе до объединения и отвечает за определение CE, с которыми элементу FE следует взаимодействовать. Этот процесс называется обнаружением CE и может включать определение менеджером FE возможностей доступных CE. Менеджер FE может применять все, что угодно от статической конфигурации до протокола фазы до объединения (см. ниже) для определения используемого CE. Однако протокол фазы до объединения выходит за рамки документа. Будучи логическим устройством, менеджер FE может быть физически объединен с любыми логическими элементами, упомянутыми в этом разделе.

CE Manager (CEM) – менеджер элементов управления

Логический объект, который отвечает за генерацию базовых задач управления CE. Используется, в частности, на этапе до объединения (pre-association phase) для определения FE, с которым CE следует взаимодействовать. Этот процесс называется обнаружением FE и может включать определение менеджером CE возможностей доступных FE. Менеджер CE может использовать все, что угодно от статической конфигурации до протокола фазы до объединения (см. ниже) для определения используемых FE. Протокол фазы до объединения выходит за рамки документа. Будучи логическим элементом, менеджер CE может быть физически объединен с любыми из логических элементов, упомянутых в этом разделе.

Pre-association Phase Protocol – протокол фазы до объединения

Протокол взаимодействия менеджеров FE и CE для определения используемых элементов CE и FE. Этот протокол может включать механизм определения возможностей CE и/или FE. Отметим, что этот процесс определения возможностей полностью отделен (и не служит заменой) от процесса, используемого протоколом ForCES (см. требование 1 в разделе 6). Однако эти два механизма определения возможностей могут использовать одну модель FE (см. раздел 5). Протокол фазы до объединения в этом документе не рассматривается.

ForCES Network Element (NE) – элемент сети ForCES

Объект, состоящий из одного или множества CE и одного или множества FE. Для внешних наблюдателей NE представляется единой точкой управления. Обычно NE скрывает свою внутреннюю структуру от внешних наблюдателей.

ForCES Protocol Element – элемент протокола ForCES

FE или CE.

High Touch Capability – работа с верхними уровнями

Этот термин обозначает возможности некоторых устройство пересылки (forwarder) выполнять операции над содержимым или заголовками пакетов, на основе данных, не входящих в заголовок IP. Примерами таких возможностей служат NAT-PT, межсетевое экранирование, распознавание содержимого L7.

3. Архитектура

Основными компонентами архитектуры NE являются элементы CE, FE и протокол соединения (interconnect) между ними. CE отвечает за сигнализацию и обработку протокола управления, а также за реализацию протоколов администрирования. На основе информации, полученной при обработке данных управления элементы CE задают поведение пересылки пакетов элементами FE с помощью протокола соединения. Например, CE может управлять элементами FE, меняя таблицы пересылки, состояния интерфейсов, а также добавляя или удаляя привязки NAT.

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

На рисунке показан пример NE, включающего CE и два FE. Элементы FE и CE требуют минимальной настройки в процессе предварительного задания конфигурации, которую можно выполнить с помощью менеджеров FE и CE, соответственно. Других ролей для менеджеров FE и CE не предусмотрено. Эти компоненты выходят за рамки архитектуры и требований к протоколу ForCES, которые включают элементы CE и FE.

--------------------------------
| NE                           |
|        -------------         |
|        |    CE     |         |
|        -------------         |
|          /        \          |
|         /          \         |
|        /            \        |
|       /              \       |
|  -----------     ----------- |
|  |   FE    |     |    FE   | |
|  -----------     ----------- |
|    | | | |         | | | |   |
|    | | | |         | | | |   |
|    | | | |         | | | |   |
|    | | | |         | | | |   |
--------------------------------
     | | | |         | | | |
     | | | |         | | | |

4. Архитектурные требования

Ниже перечислены архитектурные требования к разделению уровней пересылки и управления.

  1. Элементы CE и FE должны быть способны соединяться между собой на основе различных технологий. Примерами технологий соединения, используемых в современных архитектурах, являются Ethernet, шинные магистрали и ATM (ячейки). FE могут соединяться между собой на основе технологии, отличающейся от используемой в соединениях между CE и FE.

  2. Элементы FE должны поддерживать минимальный набор возможностей, требуемых для организации сетевых соединений (например, обнаружение интерфейсов, функции включения и выключения портов). Сверх этого архитектуре ForCES недопустимо ограничивать типы и число возможностей, поддерживаемых FE.

  3. Пакеты должны иметь возможность поступать в NE через один элемент FE и уходить через другой FE.

  4. Элемент NE должен поддерживать представление себя в виде одного функционального устройства. Например, в маршрутизаторе значение TTL в пакете следует декрементировать при прохождении через NE только один раз, независимо от числа вовлеченных элементов FE. Однако внешние элементы (например, менеджеры FE и CE) могут иметь прямой доступ к отдельным элементам протокола ForCES для предоставления информации, позволяющей перейти из фазы до объединения (pre-association) в фазу после объединения (post-association).

  5. Архитектура должна обеспечивать способ предотвращения несанкционированного присоединения элементов протокола ForCES к NE (более подробно это рассмотрено в требовании 2 раздела 6).

  6. Элементы FE должны быть способны асинхронно информировать CE об отказе, а также изменении доступных ресурсов и возможностей FE. Таким образом, FE должны поддерживать мониторинг и уведомления (поскольку нет взаимно-однозначного соответствия между FE и PFE, возможно изменение отношений между FE и его физическими ресурсами с течением времени). Например, может меняться число физических портов или объем выделенной FE памяти. Элемент CE должен получать информацию о таких изменениях для обеспечения аккуратного управления элементами FE.

  7. Архитектура должна поддерживать механизмы резервирования (избыточности) или отказоустойчивости CE. Это включает возможность элементов CE и FE обнаруживать потерю связи между ними, восстанавливать эту связь и эффективно (ре)синхронизировать состояние. Это также включает возможность заранее установить действия FE при потере связи со своим CE (например, продолжение пересылки пакетов или прекращение работы).

  8. Элементы FE должны быть способны перенаправлять пакеты (например, сообщения RIP, OSPF), полученные на своих интерфейсах элементу CE. Они должны также перенаправлять другие относящиеся к делу пакеты (например, пакеты с опцией Router Alert Option) своим CE. Элементы CE должны быть способны настроить перенаправление пакетов на элементах FE. Элементы CE должны быть способны генерировать пакеты и предоставлять их своим FE для доставки.

  9. Любая предлагаемая архитектура ForCES должна объяснять, как она будет поддерживать все функции маршрутизации, определенные в [RFC1812]. Должны быть разъяснены такие функции пересылки IPv4, как проверка пригодности заголовков IP, реализация алгоритма поиска самого длинного соответствия, декрементирование TTL, расчет контрольных сумм, генерация сообщений ICMP об ошибках и другие, определенные в RFC 1812 функции.

  10. В ForCES NE элементы CE должны быть способны определять топологию соединений между элементами FE в NE.

  11. Архитектура ForCES NE должна быть способна поддерживать по меньшей мере сотни FE и десятки тысяч портов.

  12. Архитектура ForCES должна позволять элементам FE и CE динамически присоединяться к NE и покидать их.

  13. Архитектура ForCES NE должна поддерживать множество CE и FE. Однако координация между элементами CE выходит за рамки ForCES.

  14. Для фазы до объединения при организации, мониторинге и настройке конфигурации может оказаться полезным использование стандартных механизмов администрирования CE и FE. Архитектура и требования к ForCES не препятствуют этому. В общем случае для фазы после объединения большую часть задач администрирования следует решать путем взаимодействия с CE. В некоторых случаях (например, при потере связи между CE и FE) может оказаться полезным использование инструментов управления (например, SNMP) для диагностики и устранения проблем. При этом должны выполняться приведенные ниже рекомендации.

    1. Возможности средств управления (например, SNMP), служащие для чтения (но не изменения) данных состояния FE не следует запрещать.

    2. Недопустимо разрешать средствам управления (например, SNMP) изменять состояние FE так, что это будет воздействовать на поведение NE в целом, без уведомления CE.

5. Требования к модели FE

Разнообразие функций FE, разрешаемых архитектурой ForCES, создает потенциальную проблему для элементов CE. Для эффективного управления FE элемент CE должен понимать, как FE обрабатывает пакеты. Поэтому требуется создание модели FE, которая будет выражать возможности логической обработки пакетов в FE. Эта модель будет применяться в протоколе ForCES для описания возможностей FE (требование 1 в разделе 6). Модель FE должна определять модели возможностей и состояний, которые отражают текущую конфигурацию устройства. Модель FE должна также поддерживать множество элементов FE в архитектуре NE.

5.1. Типы логических функций

Модель FE должна показывать, какие логические функции могут быть применены к пакетам при их прохождении через FE. Логические функции — это функции обработки пакетов, применяемые при пересылке пакета через FE. Примерами таких функция являются пересылка на сетевом уровне, межсетевое экранирование, NAT, формирование трафика (shaping). В параграфе 5.5 определен минимальный набор логических функций, которые модель FE должна поддерживать.

5.2. Вариации логический функций

Модель FE должна быть способна разрешать (поддерживать) вариации способов реализации логических функций в FE. Например, в некоторых FE логическая функция пересылки может иметь адреса IP и MAC следующего интервала (next hop), а в других FE это может быть реализовано в разных логических функциях. Другим примером могут служить разновидности функции NAT — Traditional/Outbound NAT, Bi-directional NAT, Twice NAT, Multihomed NAT [RFC2663]. Модель должна быть достаточно гибкой, чтобы разрешать такие вариации в функциях.

5.3. Порядок логических функций

Модель должна быть способна описать порядок применения логических функций в FE, который во многих случаях важен. Например, функция NAT может изменять IP-адреса отправителя или получателя, которые могут применяться другими логическими функциями (пересылка L3, фильтрация на входе или выходе, формирование и учет трафика) для принятия решений. Элемент CE должен знать, следует использовать в таких функциях адреса до трансляции или после нее. Кроме того, модель должна быть способна выразить множество экземпляров одной функции в пути обработки FE. Здесь снова может послужить примером трансляция NAT, один экземпляр которой может применяться до принятия решения о пересылке (замена публичных адресов в пакетах извне на внутренние адреса сети), а другой после принятия такого решения (замена внутренних адресов на публичные для пакетов наружу).

5.4. Гибкость

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

5.5. Минимальный набор логических функций

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

  1. Функции портов

    Модель FE должна быть способна выразить число портов устройства, статические атрибуты каждого порта (например, тип порта, скорость линии) и его настраиваемые атрибуты (например, IP-адрес, административный статус).

  2. Функции пересылки

    Модель FE должна быть способна выразить данные, которые могут использоваться функцией пересылки для принятия решений. Модель должна обеспечивать поддержку функций индивидуальной и групповой пересылки для IPv4 и IPv6.

  3. Функции QoS

    Модель FE должна позволять FE выразить свои возможности QoS с точки зрения функций измерения, применения правил, формирования и управления очередями. Модель FE должна быть способна выразить применение этих функций для обеспечения функциональности IntServ или DiffServ в соответствии с [RFC2211], [RFC2212], [RFC2215], [RFC2475] и [RFC3290].

  4. Базовые функции фильтрации

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

  5. Фирменные функции производителей

    Модели FE следует быть расширяемой для выражения новой, не известной в настоящий момент функциональности FE. Модель FE не следует расширять для поддержки стандартных (общих) функций с использованием фирменных (proprietary) решений. Это не будет отвечать требованиям ForCES.

  6. Функции high touch

    Модель FE должна быть способна выразить возможности инкапсуляции и туннелирования элементов FE. Модель FE должна поддерживать функции маркировки класса обслуживания, который следует обеспечить для пакетов (например, октет TOS в заголовке IPv4 или IPv6 Traffic Class). Модель FE может поддерживать другие функции high touch (например, NAT, ALG).

  7. Функции защиты

    Модель FE должна быть способна выразить типы шифрования, которое может быть применено к пакетам на пути пересылки.

  8. Отложенные (Off-loaded) функции

    Обработка каждого пакета может сохранять состояние в FE, чтобы логические функции в процессе обработки могли выполняться согласованно (например, каждый пакет может обновлять состояние «маркерного ковша» — token bucket). Кроме того, модель FE должна разрешать асинхронное выполнение логических функций в соответствии с той или иной машиной конечных состояний для того чтобы можно было, например, выполнить функции «выгруженные» в FE элементом управления CE. Модель FE должна быть способна выразить такие асинхронные функции. Примеры таких функций включают выполнение операций машины конечных состояний при прерывании сессии TCP или обработке OSPF Hello, вызываемой не только связанными с пакетами событиями, но и таймерами. Это не означает выгрузку (off-loading) какого-либо кода в FE, просто модели FE следует обеспечивать возможность выразить существующие отложенные функции в FE.

  9. Функции IPFLOW/PSAMP

    Некоторые приложения (например, учет использования и формирования трафика) требуют от элементов сети измерений на уровне протокола IP. [IPFLOW] определяет архитектуру мониторинга, измерения и экспорта для потоков трафика IP. Модели FE следует обеспечивать возможность выразить функции измерения и учета для экспорта данных о потоках трафика IP. Для поддержки основанных на измерениях приложений [PSAMP] описывает модель определения стандартного набора возможностей элементов сети по выборке подмножества пакетов на основе статистических или иных методов. Модели FE следует обеспечивать возможность выражать функции статистической фильтрации пакетов и информацию, требуемую для поддержки приложений выборки пакетов.

6. Требования к протоколу ForCES

Данная спецификация задает некоторые требования, которые протокол ForCES должен выполнять.

  1. Настройка элементов по модели

    Протокол ForCES должен разрешать элементам CE определять возможности каждого FE. Эти возможности нужно указывать с использованием модели FE, требования к которой определены в разделе 5. Кроме того, протокол должен обеспечивать элементам CE способ управления всеми возможностями FE, определенными из модели FE. Протокол должен быть способен добавлять и удалять записи для событий и классификации, устанавливать и удалять параметры, запрашивать статистику и регистрироваться для получения событий.

  2. Поддержка защищенных коммуникаций

    1. Конфигурация FE содержит информацию, играющую важную роль в работе сети (например, таблицы пересылки IP). Поэтому должна обеспечиваться защита целостности всех сообщений протокола ForCES, а также защита от MITM-атак3.

    2. Конфигурационные данные FE могут также включать информацию, полученную из деловых соглашений (например, SLA4). Поскольку такая информация является конфиденциальной, должна обеспечиваться защита конфиденциальности (приватности) всех сообщений протокола ForCES.

    3. Для обеспечения участия в работе NE только уполномоченных элементов CE и FE и защиты от подмены CE или FE, архитектура ForCES должна выбрать способы проверки подлинности CE и FE.

    4. В некоторых реализациях ForCES предполагается, что связанные между собой элементы CE и FE размещаются на одной плате (backplane) и физическая защита корпуса предотвращает MITM-атаки, перехват и подмену. В таких случаях архитектура ForCES может полагаться на физическую защиту устройства и протокольные механизмы защиты можно отключить.

    5. В тех случаях, когда элементы CE и FE соединены через сеть, должны быть заданы механизмы защиты протокола ForCES от упомянутых выше атак. Любое решение, используемое для защиты ForCES, должно указывать способы защиты от таких атак.

  3. Расширяемость

    Протокол ForCES должен быть способен поддерживать по меньшей мере сотни FE и десятки тысяч портов. Например, размеры полей протокола ForCES, соответствующих FE или номерам портов, нужно делать достаточно большими для поддержки требуемого числа элементов или портов. Эти требования не связаны с производительностью NE по мере роста числа портов или FE.

  4. Связь через маршрутизаторы

    Когда элементы CE и FE разделены более, чем одним интервалом маршрутизации L3 (hop), протокол ForCES будет использовать соответствующий требованиям RFC 2914 существующий протокол L4 с подходящими гарантиями, защитой и контролем перегрузок (например, TCP или SCTP) в качестве транспортного протокола.

  5. Приоритет сообщений

    Протокол ForCES должен обеспечивать возможность задать приоритет протокольных сообщений.

  6. Надежность

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

    2. Некоторые данные (payload) типа перенаправленных пакетов или выборки пакетов могут не требовать гарантий доставки (быть устойчивыми к некоторому уровню потерь). Для информации такого сорта протокол ForCES недопустимо ограничивать строгими гарантиями.

    3. Такие данные как конфигурационная информация (например, ACL, записи FIB или информация о возможностях FE, упомянутая в требовании 1 раздела 6), критичны для работы и должны доставляться с надежными гарантиями. Поэтому для такой информации протокол ForCES должен обеспечивать встроенные механизмы или использовать транспортный протокол с гарантиями доставки.

    4. Для таких типов информации, как пакеты heartbeat, которые могут применяться для обнаружения потери связности между CE и FE (см. требование 8 в разделе 6), своевременность доставки может оказаться более предпочтительной, чем гарантии. Для информации такого сорта протокол ForCES недопустимо ограничивать строгими гарантиями.

    5. Когда протокол ForCES работает через сеть с множеством интервалов маршрутизации IP, ForCES должен использовать соответствующий требованиям [RFC2914] транспортный протокол.

    6. В случаях, когда протокол ForCES не работает через сеть IP (например, сеть Ethernet или коммутация ячеек между CE и FE), гарантии должны обеспечиваться при передаче важной информации, отмеченной выше в п. c), за счет встроенных механизмов протокола или нижележащих уровней.

  7. Независимость от технологии соединений

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

  8. Избыточность или отказоустойчивость CE

    Протокол ForCES должен поддерживать механизмы резервирования CE или восстановления при отказе CE. Это включает возможность элементов CE и FE определять потерю связи между ними, возможность восстанавливать связь и эффективные механизмы (ре)синхронизации. Это включает также возможность заранее задать действия FE в ответ на потерю связи со своим CE — например, продолжение пересылки пакетов или прерывание работы (см. п. 7 в требованиях раздела 4).

  9. Перенаправление и «зеркалирование» пакетов

    1. Протокол ForCES должен определять способ перенаправления пакетов от FE к CE и наоборот. Перенаправление пакетов прерывает дальнейшую обработку пакета в FE.

    2. Протокол ForCES должен определять способ отображения (mirror) пакетов от FE к CE. Отображение позволяет элементу FE дублировать пакет в точке «отражения» для передачи его элементу CE с продолжением обработки в FE.

    Примеры пакетов, которые могут перенаправляться или отображаться, включают пакеты управления (например, сообщения RIP или OSPF), адресованные на интерфейсы, или другие относящиеся к делу пакеты (например, пакеты с опцией Router Alert Option). Протокол ForCES должен также определять для CE способ настройки поведения в описанных выше случаях a) и b) для выбора пакетов в каждом из них.

  10. Обмен топологической информацией

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

  11. Динамические соединения (ассоциации)

    Протокол ForCES должен позволять элементам CE и FE динамически подключаться к NE и выходить из него (требование 12 в разделе 4).

  12. Группировка команд

    Протокол ForCES должен быть способен группировать упорядоченный набор команд для FE. Каждую такую группу команд следует передавать FE с использованием минимально возможного числа сообщений. Кроме того, протокол должен поддерживать возможность указать, должна ли группа использовать семантику «все или ничего» (all-or-nothing).

  13. Асинхронные уведомления о событиях

    Протокол ForCES должен быть способен асинхронно уведомлять CE о событиях в элементах FE, таких как отказ или изменение доступных ресурсов или возможностей (требование 6 в разделе 4).

  14. Статистика запросов

    Протокол ForCES должен обеспечивать для CE возможность запроса статистики (мониторинг производительности) у элементов FE.

  15. Защита от атак на отказ службы (DoS), связанных с перегрузкой процессора или переполнением очередей

    Система, использующая протокол ForCES, может быть атакована путем перегрузки CPU или переполнения очередей. Протокол ForCES может использоваться в таких атаках для того, чтобы лишить CE возможности управления FE или требуемого для работы взаимодействия с другими маршрутизаторами или системами. Поэтому протокол ForCES должен обеспечивать механизмы контроля возможностей FE, которые могут применяться для защиты от таких атак. Возможности FE, которые должны управляться через ForCES, включают способность устанавливать классификаторы и фильтры для детектирования и отбрасывания пакетов атаки, а также способность ограничивать скорость пакетов, которые представляются корректными, но могут оказаться частью атаки (например, ложные пакеты BGP).

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

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

[RFC3290] Bernet, Y., Blake, S., Grossman, D. and A. Smith, «An Informal Management Model for DiffServ Routers», RFC 3290, May 2002.

[RFC1812] Baker, F., «Requirements for IP Version 4 Routers», RFC 1812, June 1995.

[RFC2211] Wroclawski, J., «Specification of the Controlled-Load Network Element Service», RFC 2211, September 1997.

[RFC2212] Shenker, S., Partridge, C. and R. Guerin, «Specification of Guaranteed Quality of Service», RFC 2212, September 1997.

[RFC2215] Shenker, S. and J. Wroclawski, «General Characterization Parameters for Integrated Service Network Elements», RFC 2215, September 1997.

[RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z. and W. Weisss, «An Architecture for Differentiated Service», RFC 2475, December 1998.

[RFC2914] Floyd, S., «Congestion Control Principles», BCP 14, RFC 2914, September 2000.

[RFC2663] Srisuresh, P. and M. Holdrege, «IP Network Address Translator (NAT) Terminology and Considerations», RFC 2663, August 1999.

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

[RFC3532] Anderson, T. and J. Buerkle, «Requirements for the Dynamic Partitioning of Switching Elements», RFC 3532, May 2003.

[IPFLOW] Quittek, et al., «Requirements for IP Flow Information Export», Work in Progress5, February 2003.

[PSAMP] Duffield, et al., «A Framework for Passive Packet Measurement «, Work in Progress, March 2003.

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

См. требование 5 для архитектуры и требование 2 для протокола.

9. Адреса авторов и благодарности

Этот документ был написан командой ForCES Requirements, включающей:

Todd A. Anderson (редактор)

Ed Bowen

IBM Zurich Research Laboratory

Saumerstrasse 4

CH-8803 Rueschlikon Switzerland

Phone: +41 1 724 83 68

EMail: edbowen@us.ibm.com

Ram Dantu

Department of Computer Science

University of North Texas,

Denton, Texas, 76203

Phone: 940 565 2822

EMail: rdantu@unt.edu

Avri Doria

ETRI

161 Gajeong-dong, Yuseong-gu

Deajeon 305-350 Korea

EMail: avri@acm.org

Ram Gopal

Nokia Research Center

5, Wayside Road,

Burlington, MA 01803

Phone: 1-781-993-3685

EMail: ram.gopal@nokia.com

Jamal Hadi Salim

Znyx Networks

Ottawa, Ontario

Canada

EMail: hadi@znyx.com

Hormuzd Khosravi (редактор)

Muneyb Minhazuddin

Avaya Inc.

123, Epping road,

North Ryde, NSW 2113, Australia

Phone: +61 2 9352 8620

EMail: muneyb@avaya.com

Margaret Wasserman

Nokia Research Center

5 Wayside Road

Burlington, MA 01803

Phone: +1 781 993 3858

EMail: margaret.wasserman@nokia.com

Авторы благодарят Vip Sharma и Lily Yang за их значимый вклад в работу.

10. Адреса редакторов

Hormuzd Khosravi

Intel

2111 NE 25th Avenue

Hillsboro, OR 97124 USA

Phone: +1 503 264 0334

EMail: hormuzd.m.khosravi@intel.com

Todd A. Anderson

Intel

2111 NE 25th Avenue

Hillsboro, OR 97124 USA

Phone: +1 503 712 1760

EMail: todd.a.anderson@intel.com


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

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

nmalykh@gmail.com

11. Полное заявление авторских прав

Copyright (C) The Internet Society (2003). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


1Forwarding and Control Element Separation.

2Access control list.

3Man-in-the-middle — перехват и изменение данных в пути с участием человека.

4Service level agreement — соглашение об уровне обслуживания.

5Работа завершена и опубликована в RFC 3917. Прим. перев.

Рубрика: RFC | Комментарии к записи RFC 3654 Requirements for Separation of IP Control and Forwarding отключены

RFC 3629 UTF-8, a transformation format of ISO 10646

Network Working Group                                         F. Yergeau
Request for Comments: 3629                             Alis Technologies
STD: 63                                                    November 2003
Obsoletes: 2279
Category: Standards Track

UTF-8, a transformation format of ISO 10646

UTF-8 — преобразование формата ISO 10646

PDF

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

В этом документе содержится спецификация протокола, предложенного сообществу Internet. Документ служит приглашением к дискуссии в целях развития и совершенствования протокола. Текущее состояние стандартизации протокола можно узнать из «Internet Official Protocol Standards» (STD 1). Документ может распространяться без ограничений.

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

Copyright (C) The Internet Society (2003). Все права защищены.

Аннотация

Стандарт ISO/IEC 10646-1 определяет большой набор, называемый универсальным набором символов (Universal Character Set или UCS), который охватывает большинство мировых систем письма. Однако первоначально предложенные кодировки UCS оказались не совместимыми со многими имеющимися приложениями и протоколами, что привело к разработке кодировки UTF-8, описанной в этом документе. Особенностью UTF-8 является сохранение всего диапазоны US-ASCII, что обеспечивает совместимость с файловыми системами, синтаксическими анализаторами и другими программами, основанными на US-ASCII и воспринимающими другие значения. Этот документ заменяет собой RFC 2279.

1. Введение

Стандарт ISO/IEC 10646-1 [ISO.10646] определяет большой набор, называемый универсальным набором символов (UCS), который охватывает большинство мировых систем письма. Этот же набор символов определён стандартом Unicode [UNICODE], задающим дополнительные свойства символов и другие детали применения, важные для разработчиков. До настоящего времени изменения в Unicode, а также поправки и дополнения к ISO/IEC 10646 отслеживают друг друга, так что наборы символов и их коды оставались синхронизированными. Соответствующие комитеты по стандартизации обязались поддерживать эту очень полезную синхронность.

ISO/IEC 10646 и Unicode задают несколько форм кодирования их общего набора — UTF-8, UCS-2, UTF-16, UCS-4 UTF-32. В формате кодирования каждый символ представляется одной или несколькими единицами кодирования. Все стандартные формы кодирования UCS, за исключением UTF-8, используют единицу кодирования больше 1 октета, что затрудняет их применение во многих современных приложениях и протоколах, предполагающих использование 8- или 7-битовых символов.

В UTF-8 — предмете этого документа — используется 1-октетный блок кодирования. Используются все биты октета, но сохраняется весь диапазон US-ASCII [US-ASCII] — символы US-ASCII кодируются в 1 октет с нормальным значением US-ASCII и любой октет с таким значением может обозначать только символ US-ASCII и ничего другого.

UTF-8 представляет символы UCS разным числом октетов, где количество октетов и значение каждого из них зависит от целочисленного кода символа в ISO/IEC 10646 (номер символа, он же кодовая позиция, кодовая точка или скалярное значение Unicode). Характеристики этой формы кодирования приведены ниже в шестнадцатеричной форме.

  • Номера символов от U+0000 до U+007F (US-ASCII) соответствуют октетам от 00 до 7F (7-битовые символы US-ASCII). Прямым следствием этого является то, что строка ASCII является действительной строкой UTF-8.

  • Значения октетов US-ASCII не появляются иначе в потоке символов с кодировкой UTF-8. Это обеспечивает совместимость с файловыми системами и другими программами (например, с функцией printf() в библиотеках C), которые анализируют значения US-ASCII, и прозрачность для других значений.

  • Преобразование между UTF-8 и другими формами кодирования выполняется легко.

  • Первый октет многооктетной последовательности указывает число октетов в последовательности.

  • Октеты со значениями C0, C1, F5 — FF никогда не используются.

  • Границы символов легко найти в любом месте потока октетов.

  • Лексический порядок сортировки строк UTF-8 по значениям байтов совпадает с порядком при сортировке по номерам символов. Это представляет ограниченный интерес, поскольку сортировка по номерам символов почти никогда не применяется.

  • Алгоритм Бойера-Мура (Boyer-Moore) может применяться для быстрого поиска с данными UTF-8.

  • Строки UTF-8 могут достаточно надёжно распознаваться простым алгоритмом. т. е. вероятность того, что строка в другой кодировке будет воспринята как действительная строка UTF-8, мала и уменьшается с ростом длины строки.

Кодировка UTF-8 была разработана в сентябре 1992 г. Ken Thompson на основе критериев, заданных Rob Pike, с целью задания формата преобразования UCS, который можно было бы использовать в операционной системе Plan9 без нарушения её работы. Проект Thompson прошёл стандартизацию в X/Open Joint Internationalization Group (XOJIG, см. [FSS_UTF]), получив имена FSS-UTF (вариант FSS/UTF), UTF-2 и, наконец, UTF-8.

2. Соглашения по обозначениям

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

Символы UCS обозначаются нотацией U+HHHH, где HHHH — строка из 4 — 6 шестнадцатеричных цифр, представляющая номер символа в ISO/IEC 10646.

3. Определение UTF-8

Определение UTF-8 дано в стандарте Unicode [UNICODE]. Описания и формулы даны также в приложении Annex D к ISO/IEC 10646-1 [ISO.10646]

В UTF-8 символы из диапазона U+0000 — U+10FFFF (доступный диапазон UTF-16) кодируются последовательностями размером от 1 до 4 октетов. В единственном октете однооктетной «последовательности» первый бит сброшен (0), а оставшиеся 7 указывают номер символа. В последовательности из n октетов (n>1) в начальном октете n старших битов имеют значение 1, затем один бит сброшен (0), а остальные содержат биты номера кодируемого символа. В последующих октетах старший бит установлен (1), следующий сброшен (0), а оставшиеся 6 битов кодируют символ. В приведённой ниже таблице показаны форматы этих октетов (x указывает биты, доступные для кодирования символов).

 

Диапазон шестнадцатеричных значений

Двоичная последовательность октетов UTF-8

0000 0000-0000 007F

0xxxxxxx

0000 0080-0000 07FF

110xxxxx 10xxxxxx

0000 0800-0000 FFFF

1110xxxx 10xxxxxx 10xxxxxx

0001 0000-0010 FFFF

11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

 

Кодирование символа UTF-8 описано ниже.

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

  2. Подготавливаются старшие биты октетов в соответствии со вторым столбцом приведённой выше таблицы.

  3. Заполняются биты x битами номера символа, представленного в двоичной форме. Сначала размещается младший бит номера в младшем бите последнего октета, затем следующий по старшинству бит этого октета и т. д. Когда биты x последнего октета заполнены, выполняется заполнение предыдущего октета и т. д. до полного заполнения битов x.

Определение UTF-8 запрещает кодирование символов с номерами U+D800 — U+DFFF, которые зарезервированы для использования в UTF-16 (как суррогатные пары) и не представляют символы напрямую. При перекодировании в UTF-8 из UTF-16 нужно сначала декодировать данные UTF-16 для получения номеров символов, которые затем кодируются в UTF-8, как описано выше. Это отличается от кодировки CESU-8 [CESU-8], которая похожа на UTF-8, но не предназначена для Internet. CESU-8 работает аналогично UTF-8, но вместо номеров символов (кодовых точек) кодирует значения кодов UTF-16 (16-битовые величины). Это ведёт к разным результатам для символов с номерами больше 0xFFFF (кодировка CESU-8 для этих символов недействительна в UTF-8).

Ниже описано декодирование символов UTF-8.

  1. Инициируется двоичное число сбросом всех битов в 0. Может потребоваться до 21 бита.

  2. Определяется, какие биты кодируют номер символа, по числу октетов в последовательности и второй колонке приведённой выше таблицы (биты x).

  3. Биты x из последовательности копируются в двоичное число, начиная с младшего бита последнего октета последовательности. Когда биты x закончатся, двоичное число будет представлять номер символа.

Реализации этого алгоритма декодирования должны обеспечивать защиту от декодирования недопустимых последовательностей. Например, наивная реализация может декодировать чрезмерно длинную последовательность UTF-8 C0 80 как символ U+0000 или суррогатную пару ED A1 8C ED BE B4 — в U+233B4. Декодирование непригодных последовательностей может иметь последствия для безопасности или вызывать другие проблемы (см. раздел 10).

4. Синтаксис последовательностей байтов UTF-8

Для удобства разработчиков, применяющих ABNF, ниже приведено определение UTF-8 в синтаксисе ABNF. Строка UTF-8 — это последовательность октетов, представляющих последовательность символов UCS. Последовательность октетов действительна в UTF-8 лишь в том случае, когда она соответствует представленному ниже синтаксису, выведенному из правил кодирования UTF-8 и выраженному в форме ABNF [RFC2234].

   UTF8-octets = *( UTF8-char )
   UTF8-char   = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4
   UTF8-1      = %x00-7F
   UTF8-2      = %xC2-DF UTF8-tail
   UTF8-3      = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2( UTF8-tail ) /
                 %xED %x80-9F UTF8-tail / %xEE-EF 2( UTF8-tail )
   UTF8-4      = %xF0 %x90-BF 2( UTF8-tail ) / %xF1-F3 3( UTF8-tail ) /
                 %xF4 %x80-8F 2( UTF8-tail )
   UTF8-tail   = %x80-BF

Примечание. Официальное определение UTF-8 дано в [UNICODE]. Считается, что приведённая грамматика описывает то же, что и Unicode, но она не претендует на официальность. Разработчикам рекомендуется полагаться на официальный источник, а не на приведённую здесь форму ABNF.

5. Версии стандартов

Стандарт ISO/IEC 10646 время от времени обновляется путём публикации поправок и дополнительных частей, для стандарта Unicode с течением времени тоже публикуются новые версии. Каждая новая версия заменяет собой предыдущую, но реализации и, что важнее всего, данные не обновляются мгновенно.

В общем случае изменения сводятся к добавлению новых символов, что не создаёт проблем со старыми данными. В 1996 г. поправки Amendment 5 к редакции ISO/IEC 10646 1993 г. и Unicode 2.0 перенесли и расширили блок корейского хангыля (Hangul), сделав все прежние данные с символами Hangul непригодными в новой версии. Unicode 2.0 отличается в том же от Unicode 1.1. Оправданием для такого несовместимого изменения послужило отсутствие крупных реализаций и значительных объёмов данных, содержащих Hangul. Этот инцидент был назван корейским беспорядком (Korean mess) и соответствующие комитеты пообещали, никогда впредь не вносить несовместимые изменения (см. правила консорциума Unicode [1]).

Новые версии и в особенности несовместимые изменения влияют на метки MIME, рассматриваемые в разделе 8.

6. Знак порядка байтов (BOM)

Символ UCS U+FEFF ZERO WIDTH NO-BREAK SPACE1, неформально называемый также BYTE ORDER MARK2 (BOM) можно действительно применять в качестве пробела нулевой ширины без разрыва, но имя BOM намекает на второе возможное использование символа — добавление U+FEFF в начало потока символов UCS в качестве «подписи». Получатель такого сериализованного потока может использовать его начальный символ как подсказку о содержании в потоке символов UCS, а также для распознания задействованной кодировки символов UCS и при кодировке с многооктетными блоками кодирования в качестве способа распознания порядка сериализации октетов. В UTF-8 применяется однооктетный блок кодирования, поэтому последняя функция бесполезна здесь и BOM всегда будет появляться в виде последовательности октетов EF BB BF.

Важно понимать, что символ U+FEFF в любой позиции, кроме начала потока, должен интерпретироваться с семантикой пробела нулевой ширины без разрыва и его недопустимо считать подписью. При интерпретации как подписи стандарт Unicode предполагает, сто начальный символ U+FEFF может быть исключён (вырезан) перед обработкой текста. Такое исключение необходимо в некоторых случаях (например, при конкатенации двух строк, поскольку иначе полученная строка будет содержать непредусмотренный неразрывный пробел в точке соединения) но может повлиять на внешний процесс на другом уровне (например, на цифровую подпись или подсчёт символов), который учитывает все символы потока. Поэтому рекомендуется избегать вырезания без уважительной причины начального символа U+FEFF, интерпретируемого как подпись, игнорировать его без вырезания, когда это возможно (например, при отображении) и вырезать символ только при реальной необходимости.

U+FEFF в первой позиции потока может интерпретироваться не только как подпись, но и как неразрывный пробел нулевой ширины. В попытке сократить неопределённость в Unicode 3.2 добавлен новый символ U+2060 WORD JOINER3 с такой же семантикой как у U+FEFF, но без функции подписи, и настоятельно рекомендуется применять его для выражения семантики слияния слов. В конечном итоге, соблюдение этой рекомендации практически гарантирует, что любой начальный символ U+FEFF является подписью, а не ZERO WIDTH NO-BREAK SPACE.

Тем не менее, неопределённость сохраняется и может влиять на протоколы Internet. Спецификации протоколов могут ограничивать применение U+FEFF в качестве подписи, чтобы сократить или устранить возможные вредные последствия этой неопределённости. В целях соблюдения баланса преимуществ (снижение неопределённости) и недостатков (потеря функции подписи) таких ограничений полезно различать указанные ниже случаи.

  • Протоколам следует запрещать использование U+FEFF в качестве подписи для текстовых элементов протокола, которые, согласно протоколу, всегда должны быть в UTF-8, поскольку функция подписи в таких случаях совершенно бесполезна.

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

  • Протоколам не следует запрещать использование U+FEFF в качестве подписи для текстовых элементов протокола, которым протокол не обеспечивает механизмы идентификации кодировки, когда запрет не может быть применён или предполагается, что реализации протоколов не всегда могут должным образом использовать эти механизмы. Два последних случая, скорей всего, будут возникать для больших элементов протокола, таких как сущности MIME, особенно при получении реализацией протокола таких сущностей от файловых систем, протоколов без механизмов идентификации кодировки содержимого (например, FTP) или иных протоколов, не гарантирующих корректного указания кодировки символов (например, HTTP).

Когда протокол запрещает использовать U+FEFF в качестве подписи для некоторых элементов протокола, любой начальный символ U+FEFF должен считаться неразрывным пробелом нулевой ширины. Если протокол не запрещает использование U+FEFF в качестве подписи для некоторых элементов протокола, реализациям следует быть готовыми к обработке подписи в этом элементе и реагировать должным образом — использовать подпись для идентификации кодировки символов, если это требуется, и удалять или игнорировать подпись, когда это приемлемо.

7. Примеры

Последовательность символов U+0041 U+2262 U+0391 U+002E (A<NOT IDENTICAL TO><ALPHA>.4) в кодировке UTF-8 имеет вид

       --+--------+-----+--
       41 E2 89 A2 CE 91 2E
       --+--------+-----+--

Последовательность символов U+D55C U+AD6D U+C5B4 (Korean «hangugeo» — корейский язык) в кодировке UTF-8 имеет вид

       --------+--------+--------
       ED 95 9C EA B5 AD EC 96 B4
       --------+--------+--------

Последовательность символов U+65E5 U+672C U+8A9E (Japanese «nihongo» — японский язык) в кодировке UTF-8 имеет вид

       --------+--------+--------
       E6 97 A5 E6 9C AC E8 AA 9E
       --------+--------+--------

Символ U+233B4 (пень дерева по китайски) с UTF-8 BOM перед ним в кодировке UTF-8 имеет вид

       --------+-----------
       EF BB BF F0 A3 8E B4
       --------+-----------

8. Регистрация MIME

Этот документ служит основой для регистрации параметра MIME charset для кодировки UTF-8 в соответствии с [RFC2978]. Параметр имеет значение UTF-8. Эта строка помечает типы носителей, содержащие текст из символов набора ISO/IEC 10646 с учётом всех поправок, по меньшей мере, до поправки 5 1993 г. (корейский блок), представленных последовательностями октетов с использованием описанной выше схемы кодирования. UTF-8 подходит для использования в типах содержимого MIME с типом верхнего уровня text.

Примечательно, что метка UTF-8 не включает номера вервии, указывая ISO/IEC 10646 в целом. Это обусловлено тем, что метка набора символов MIME предназначена для представления лишь сведений, требуемых для преобразования последовательности полученных из линии байтов в последовательность символов и не более того (см. параграф 2.2 в [RFC2045]). Пока стандарт для наборов символов не меняется несовместимым образом, номер версии не нужен, поскольку сведения из такого тега о возможности получения недавно добавленных символов, которые не известны, ничего не дают. Сам тег ничего не сообщает о новых символах, которые в любом случае будут получены.

Таким образом, пока стандарты развиваются согласованно, польза от добавления номера версии остаётся лишь видимостью. Но у зависящих от версии меток имеется и недостаток — когда старое приложение получает данные с новой (неизвестной) меткой, оно может не распознать её и оказаться неспособным обработать данные, тогда как базовая (известная) метка приведёт к корректной в основном обработке данных, которые могут не включать новых символов.

Сейчас «корейский беспорядок» (ISO/IEC 10646, поправка 5) является несовместимым изменением, в принципе противоречащим целесообразности независимой от версии метки набора символов MIME, как описано выше. Однако проблема совместимости возможна лишь для данных с символами Korean Hangul, закодированными в соответствии с Unicode 1.1 (или, эквивалентно, до поправки 5 к ISO/IEC 10646), а таких данных, пожалуй, не существует и именно по этой причине несовместимое изменение было сочтено приемлемым.

Таким образом, на практике оправдана метка без указания версии при условии, что она относится ко всем версиям после Amendment 5 и несовместимых изменений не происходит. Если в более поздней версии ISO/IEC 10646 будут несовместимые изменения, метка набора символов MIME останется согласованной с предыдущей версией, пока IETF не примет соответствующее решение.

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

В записи для UTF-8 в реестре IANA для наборов символов указана ссылка на этот документ.

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

Разработчикам UTF-8 нужно учитывать аспекты безопасности при обработке недопустимых последовательностей UTF-8. Вполне возможно, что в некоторых условиях злоумышленник сможет воспользоваться неосторожным синтаксическим анализатором UTF-8, передав тому последовательность октетов, не разрешённую синтаксисом UTF-8. Особо тонкий вариант такой атаки можно организовать на анализатор, который выполняет важные в плане безопасности проверки входных данных в кодировке UTF-8, считая символами некоторые недопустимые последовательности октетов. Например, анализатор может запрещать символ NUL, представленный однооктетной последовательностью 00, но ошибочно разрешать некорректную двухоктетную последовательность C0 80, считая её символом NUL. Другим примером может служить анализатор, запрещающий последовательность 2F 2E 2E 2F (/../), но разрешающий 2F C0 AE 2E 2F. Этот эксплойт был использован в широко распространённом вирусе, атаковавшем Web-серверы в 2001 г, т. е. угроза вполне реальны.

Ещё одна проблема возникает при кодировании UTF-8 — описание ISO/IEC 10646 для UTF-8 разрешает кодировать номера символов вплоть до U+7FFFFFFF, что даёт последовательности размером до 6 байтов. Поэтому возникает риск переполнения буфера, если диапазон номеров символов явно не ограничен значением U+10FFFF или размер буфера не учитывает возможность использования последовательностей из 5 или 6 байтов.

На безопасность может влиять возможность в некоторых кодировках (включая UTF-8) представить одно и то же (насколько может судить пользователь) разными последовательностями символов. Например, букву e с сильным ударением (acute accent) можно представить составным символом U+00E9 E ACUTE или канонически эквивалентной последовательностью U+0065 U+0301 (E + COMBINING ACUTE). Хотя UTF-8 предоставляет одну последовательность байтов для каждой последовательности символов, наличие нескольких последовательностей символов для «одного и того же» может иметь последствия для безопасности при сопоставлении строк, индексировании, поиске, сортировке, сопоставлении регулярных выражений и выборе. Примером может служить сопоставления строк идентификаторов в свидетельствах (credential) и записях списка контроля доступа. Эту проблему можно решить с помощью форм нормализации Unicode, см. [UAX15].

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

В подготовке и обсуждении этого документа принимали участие James E. Agenbroad, Harald Alvestrand, Andries Brouwer, Mark Davis, Martin J. Duerst, Patrick Faltstrom, Ned Freed, David Goldsmith, Tony Hansen, Edwin F. Hart, Paul Hoffman, David Hopwood, Simon Josefsson, Kent Karlsson, Dan Kohn, Markus Kuhn, Michael Kung, Alain LaBonte, Ira McDonald, Alexey Melnikov, MURATA Makoto, John Gardiner Myers, Chris Newman, Dan Oscarsson, Roozbeh Pournader, Murray Sargent, Markus Scherer, Keld Simonsen, Arnold Winkler, Kenneth Whistler и Misha Wolf.

12. Отличия от RFC 2279

  • Набор символов ограничен диапазоном 0000-10FFFF (диапазон, доступный в UTF-16).

  • Стандарт Unicode сделан источником нормативного определения UTF-8, а ISO/IEC 10646 оставлен как справочник по символам.

  • Уточнена терминология. UTF-8 описывается в терминах формы кодирования номера символа, а UCS-2 и UCS-4 практически исчезли.

  • Примечание о декодировании непригодных последовательностей стало нормативным требованием недопустимо (MUST NOT).

  • Добавлен новый раздел о UTF-8 BOM с рекомендациями для протоколов.

  • Удалена предложенная регистрация UNICODE-1-1-UTF-8 MIME.

  • Добавлен синтаксис ABNF для допустимых последовательностей октетов UTF-8.

  • Расширен раздел вопросов безопасности, в частности, рассмотрено влияние нормализации Unicode.

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

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

[ISO.10646] International Organization for Standardization, «Information Technology — Universal Multiple-octet coded Character Set (UCS)», ISO/IEC Standard 10646, comprised of ISO/IEC 10646-1:2000, «Information technology — Universal Multiple-Octet Coded Character Set (UCS) — Part 1: Architecture and Basic Multilingual Plane», ISO/IEC 10646-2:2001, «Information technology — Universal Multiple-Octet Coded Character Set (UCS) — Part 2: Supplementary Planes» and ISO/IEC 10646-1:2000/Amd 1:2002, «Mathematical symbols and other characters».

[UNICODE] The Unicode Consortium, «The Unicode Standard — Version 4.0», defined by The Unicode Standard, Version 4.0 (Boston, MA, Addison-Wesley, 2003. ISBN 0-321-18578-1), April 2003, <http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode_4_0_0>.

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

[CESU-8] Phipps, T., «Unicode Technical Report #26: Compatibility Encoding Scheme for UTF-16: 8-Bit (CESU-8)», UTR 26, April 2002, <http://www.unicode.org/unicode/reports/tr26/>.

[FSS_UTF] X/Open Company Ltd., «X/Open Preliminary Specification — File System Safe UCS Transformation Format (FSS-UTF)», May 1993, <http://wwwold.dkuug.dk/jtc1/sc22/wg20/docs/N193-FSS-UTF.pdf>.

[RFC2045] Freed, N. and N. Borenstein, «Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies», RFC 2045, November 1996.

[RFC2234] Crocker, D. and P. Overell, «Augmented BNF for Syntax Specifications: ABNF», RFC 2234, November 1997.

[RFC2978] Freed, N. and J. Postel, «IANA Charset Registration Procedures», BCP 19, RFC 2978, October 2000.

[UAX15] Davis, M. and M. Duerst, «Unicode Standard Annex #15: Unicode Normalization Forms», An integral part of The Unicode Standard, Version 4.0.0, April 2003, <http://www.unicode.org/unicode/reports/tr15>.

[US-ASCII] American National Standards Institute, «Coded Character Set — 7-bit American Standard Code for Information Interchange», ANSI X3.4, 1986.

15. URI

[1] <http://www.unicode.org/unicode/standard/policies.html>

16. Права интеллектуальной собственности

IETF не занимает какой-либо позиции в отношении действительности или объёма каких-либо прав интеллектуальной собственности или иных прав, которые могут быть заявлены как относящиеся к реализации или применению технологии, описанной в этом документе, или степени, в которой любая лицензия, по которой права могут или не могут быть доступны, не заявляется также применение каких-либо усилий для определения таких прав. Сведения о процедурах IETF в отношении прав в документах, связанных со стандартами, можно найти в BCP-11. Копии раскрытия IPR, предоставленные секретариату IETF, и любые гарантии доступности лицензий, а также результаты попыток получить общую лицензию или право на использование таких прав собственности разработчиками или пользователями этой спецификации, можно получить в IETF Secretariat.

IETF предлагает любой заинтересованной стороне обратить внимание на авторские права, патенты или использование патентов, а также иные права собственности, которые могут потребоваться для реализации этого стандарта. Эту информацию следует направлять исполнительному директоу IETF (Executive Director).

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

Francois Yergeau
Alis Technologies
100, boul. Alexis-Nihon, bureau 600
Montreal, QC H4M 2P2
Canada
Phone: +1 514 747 2547
Fax: +1 514 747 2561
EMail: fyergeau@alis.com

18. Полное заявления авторских прав

Copyright (C) The Internet Society (2003). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


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

nmalykh@protokols.ru


1Пробел нулевой ширины без разрыва (строки) или просто неразрывный пробел.

2Знак порядка байтов.

3Объединитель слов.

4A не идентично ALPHA.

Рубрика: RFC | Оставить комментарий

RFC 3635 Definitions of Managed Objects for the Ethernet-like Interface Types

Network Working Group                                           J. Flick
Request for Comments: 3635                       Hewlett-Packard Company
Obsoletes: 2665                                           September 2003
Category: Standards Track

Определения управляемых объектов для интерфейсов типа Ethernet

Definitions of Managed Objects for the Ethernet-like Interface Types

PDF

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

В этом документе содержится спецификация протокола, предложенного сообществу Internet. Документ служит приглашением к дискуссии в целях развития и совершенствования протокола. Текущее состояние стандартизации протокола можно узнать из «Internet Official Protocol Standards» (STD 1). Документ может распространяться без ограничений.

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

Copyright (C) The Internet Society (2003). All Rights Reserved.

Фннотация

В этом документе определена часть базы MIB1 для использования с протоколами сетевого управления в сообществе Internet. В частности, документ определяет объекты для управления устройствами, похожими на Ethernet. Этот документ служит заменой RFC 2665 и обновляет спецификацию путем включения данных для управления интерфейсами Ethernet 10 Гбит/с.

1. Введение

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

Документ также включает модуль MIB, обновляющий список управляемых объектов прежней версии этого модуля MIB [RFC2665].

Технология Ethernet, разработанная рабочей группой IEEE 802.3, продолжает развиваться путем повышения скорости, добавления новых типов кабелей и интерфейсов, а также новых функций. Это развитие может требовать изменения управляемых объектов с учетом новой функциональности. Данный документ, как и другие документы рабочей группы, отражает определенный этап развития технологии Ethernet. В будущем документ может быть пересмотрен или выпущены новые документы рабочей группы Ethernet Interfaces and Hub MIB с учетом развития технологии Ethernet.

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

2. Схема стандартного управления Internet

Подробный обзор документов, описывающих современную схему стандартного управления Internet приведен в разделе 7 RFC 3410 [RFC3410].

Доступ к управляемым объектам осуществляется через виртуальное информационное хранилище, называемое базой данных управления — MIB. Доступ к объектам MIB обычно выполняется по протоколу SNMP1. Объекты MIB определяются с использованием механизмов, заданных в структуре информации управления (SMI2). Этот документ определяет модуль MIB, соответствующий спецификации SMIv2, которая описана в STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] и STD 58, RFC 2580 [RFC2580].

3. Обзор

Экземпляры этих типов объектов представляют атрибуты интерфейса в коммуникационную среду типа Ethernet. В настоящее время такие среды идентифицируются значением ethernetCsmacd(6) объекта ifType в Interfaces MIB [RFC2863]. Некоторые старые реализации могут возвращать значение iso88023Csmacd(7) или starLan(11) для ifType.

Представленные здесь определения основаны на разделе 30 «10 Mb/s, 100 Mb/s 1000 Mb/s and 10 Gb/s Management», и Приложении 30A «GDMO Specification for 802.3 managed object classes» документа IEEE Std. 802.3 в редакции 2002 г. [IEEE802.3], дополненных IEEE Std. 802.3ae-2002 [IEEE802.3ae], которые исходно были представлены Frank Kastenholz, затем Interlan в [KASTEN]. Разработчикам этих объектов MIB следует принимать во внимание, что IEEE Std. 802.3 [IEEE802.3] явно описывает (в форме псевдокода Pascal) когда, где и как измеряются различные атрибуты MAC. Документ IEEE описывает также эффекты операций MAC, которые могут возникать при манипуляциях с определенными здесь объектами MIB.

С учетом того, что некоторые атрибуты, определенные в [IEEE802.3], представлены объектами, определенными ранее в MIB-2 [RFC1213] или MIB [RFC2863], такие атрибуты не представляются объектами, определенными в этом документе. К атрибутам, представленным объектами, которые определены в других документах, относится число октетов и кадров, принятых или переданных на конкретном интерфейсе, «неразборчивое» (promiscuous) состояние интерфейса, его MAC-адрес и связанная с интерфейсом информация о групповой адресации.

3.1. Связь с MIB-2

Этот параграф относится лишь к ситуациям, когда данная база MIB используется вместе со «старой» группой интерфейса [RFC1213].

Связь между интерфейсом типа Ethernet и интерфейсом в контексте MIB-2 является взаимнооднозначной. Поэтому значение экземпляра объекта ifIndex может напрямую применяться для идентификации соответствующих экземпляров определенных здесь объектов.

Для объектов, реализующих (ныне отмененный) объект ifSpecific, экземпляр этого объекта, связанный с интерфейсом типа Ethernet, имеет значение OBJECT IDENTIFIER

         dot3    OBJECT IDENTIFIER ::= { transmission 7 }

3.2. Связь с Interfaces MIB

Interface MIB [RFC2863] требует от любой MIB, дополняющей Interface MIB, разъяснять конкретные области внутри Interface MIB. Эти области были намеренно оставлены не определенными в Interface MIB, чтобы избежать ненужных ограничений MIB, исключающих управление некоторыми типами сред.

В разделе 4 [RFC2863] перечислены некоторые области, которые должны прояснять MIB для конкретной среды. Каждая из таких областей рассмотрена в последующих параграфах. Разработчикам следует обратиться к [RFC2863] для понимания общего смысла таких областей.

3.2.1. Многоуровневая модель

Изначально для интерфейсов типа Ethernet не было подуровней. Однако может возникать множество определяемых реализацией требований, для которых такие подуровни нужны. Одним из примеров является агрегирование каналов 802.3. В этом случае приложение 30C [IEEE802.3] описывает многоуровневую модель и использование ifStackTable для представления агрегированных каналов. Другим примером является использование подуровня WAN-интерфейса 802.3. В этом случае 802.3 WIS MIB [RFC3637] описывает многоуровневую модель и использование ifStackTable для представления подуровня WAN.

3.2.2. Виртуальные устройства

Эта среда не поддерживает виртуальных устройств и данная область не применима к этой MIB.

3.2.3. ifRcvAddressTable

Эта таблица содержит все адреса IEEE 802.3 (индивидуальные, групповые и широковещательные), по которым этот интерфейс будет принимать пакеты и пересылать объекту вышележащего уровня для локальной обработки (потребления). Формат адреса в ifRcvAddressAddress совпадает с форматом в ifPhysAddress.

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

3.2.4. ifType

Эта база MIB применяется к интерфейсам с ifType = ethernetCsmacd(6). От всех интерфейсов типа Ethernet требуется использовать ifType = ethernetCsmacd(6), независимо от скорости и типа инкапсуляции на канальном уровне. Применение ifType со значениями iso88023Csmacd(7) и starLan(11) отменено, однако старые реализации могут возвращать эти значения. Программам управления следует быть готовыми к приему устаревших ifType.

В IANAifType-MIB для Ethernet определены три типа интерфейсов — fastEther(62), fastEtherFX(69) и gigabitEthernet(117). Эти типы были зарегистрированы отдельными производителями, а не рабочей группой IETF. В соответствии с требованиями этого документа все интерфейсы, подобные Ethernet, должны возвращать значение ethernetCsmacd(6) для ifType и недопустимо возвращать fastEther(62), fastEtherFX(69) или gigabitEthernet(117). Однако сохранились реализации, возвращающие эти отмененные значения ifType, поэтому программам управления следует быть готовыми к приему таких значений от устаревших реализаций.

Информация о конкретных свойствах Ethernet для данного интерфейса доступна из ifSpeed в Interfaces MIB и ifMauType в 802.3 MAU MIB [RFC3636]. Отметим, что реализация 802.3 MAU MIB [RFC3636] требуется для всех интерфейсов типа Ethernet.

3.2.5. Счетчики октетов ifXxxOctets

Счетчики октетов Interface MIB ifInOctets, ifOutOctets, ifHCInOctets и ifHCOutOctets должны учитывать все октеты корректных кадров, переданных и принятых интерфейсом, включая заголовок MAC и FCS, но без преамбулы, начиная с границы кадра (frame delimiter), и октеты расширения. Это соответствует определению frameSize/8 в параграфе 4.2.7.1 [IEEE802.3] (frameSize определяется в битах, а не октетах — 2 * addressSize + lengthOrTypeSize + dataSize + crcSize). Не учитываются октеты кадров с конфликтами (коллизиями) и неудачных попыток передачи, поскольку драйвер уровня MAC обычно не может видеть число октетов в таких кадрах. Не учитываются также октеты принятых некорректных кадров, поскольку эта информация обычно не передается уровню MAC, а также по причине того, что не находящиеся в неразборчивом режиме реализации MAC не способны надежно определить, был ли некорректный кадр действительно адресован данной станции.

Отметим, что эти счетчики не учитывают октеты корректных кадров управления MAC, принятых и переданных на интерфейсе, а также принятых корректных кадров MAC, которые отбрасываются уровнем MAC по тем или иным причинам (недостаточно буферов, неизвестный протокол и т. п.).

Отметим, что счетчики октетов в IF-MIB не точно соответствуют определению счетчиков октетов в IEEE 802.3. Значения aOctetsTransmittedOK и aOctetsReceivedOK включают лишь октеты в полях clientData и Pad, тогда как ifInOctets и ifOutOctets учитывают кадр MAC целиком, включая заголовок MAC и FCS. Однако значения счетчиков IF-MIB можно получить из значений IEEE 802.3, как показано ниже.

     ifInOctets = aOctetsReceivedOK + (18 * aFramesReceivedOK)
     ifOutOctets = aOctetsTransmittedOK + (18 * aFramesTransmittedOK)

Другое значимое различие между счетчиками IF-MIB и IEEE 802.3 заключается в том, что в соответствии со стандартом IEEE 802.3 счетчики кадров и октетов всегда инкрементируются вместе. Переменная aOctetsTransmittedOK учитывает число октетов в кадрах, которые были посчитаны в aFramesTransmittedOK, aOctetsReceivedOK — число октетов, в кадрах, посчитанных в aFramesReceivedOK. В счетчиках IF-MIB это не так и счетчики октетов IF-MIB учитывают число октетов, переданных или принятых от уровня ниже этого интерфейса, а счетчики пакетов учитывают пакеты переданные или принятые от уровня выше. Поэтому принятые кадры управления MAC, ifInDiscards и ifInUnknownProtos учитываются в ifInOctets, но не учитываются в ifInXcastPkts. Переданные кадры управления MAC учитываются в ifOutOctets, но не учитываются в ifOutXcastPkts. Значения ifOutDiscards и ifOutErrors учитываются в ifOutXcastPkts, но не учитываются в ifOutOctets.

3.2.6. Счетчики пакетов ifXxxXcastPkts

Счетчики пакетов в IF-MIB не точно соответствуют определению счетчиков кадров в IEEE 802.3. Значение aFramesTransmittedOK учитывает число кадров, реально переданных интерфейсом, тогда как ifOutUcastPkts, ifOutMulticastPkts и ifOutBroadcastPkts считают число запросов на передачу от вышележащего уровня, независимо от возникновения отказов при передаче. Это означает, что пакеты, учтенные в ifOutErrors или ifOutDiscards, учитываются также в ifOutXcastPkts, но не учитываются в aFramesTransmittedOK. Поскольку кадры управления MAC создаются внутренним подуровнем, а не принимаются интерфейсом от вышележащего уровня, они не учитываются в ifOutXcastPkts, но учитываются в aFramesTransmittedOK. Грубо говоря,

     aFramesTransmittedOK = ifOutUcastPkts + ifOutMulticastPkts +
                            ifOutBroadcastPkts + dot3OutPauseFrames -
                            (ifOutErrors + ifOutDiscards)

Аналогично, aFramesReceivedOK учитывает число кадров, реально принятых интерфейсом, независимо от их передачи на вышележащий уровень, а ifInUcastPkts, ifInMulticastPkts и ifInBroadcastPkts учитывают лишь переданные на вышележащий уровень пакеты. Это означает, что пакеты, учтенные ifInDiscards или ifInUnknownProtos, учитываются и в aFramesReceivedOK, но не учитываются в ifInXcastPkts. Поскольку кадры управления MAC «потребляются» внутренним подуровнем без передачи вышележащему уровню, они не учитываются в ifInXcastPkts, но учитываются в aFramesReceivedOK. Грубо говоря,

     aFramesReceivedOK = ifInUcastPkts + ifInMulticastPkts +
                         ifInBroadcastPkts + dot3InPauseFrames +
                         ifInDiscards + ifInUnknownProtos

Эта спецификация трактует кадры управления MAC как создаваемые и потребляемые внутри интерфейса, поэтому они не учитываются счетчиками пакетов IF-MIB. Кадры управления MAC обычно передаются с групповыми адресами. Во многих сетевых средах число кадров управления MAC может значительно превышать число групповых кадров с обычными данными. Если кадры управления MAC учитывать в ifInMulticastPkts и ifOutMulticastPkts, групповые пакеты с обычными данными будут просто незаметны на фоне кадров управления, что сделает счетчики бесполезными.

Для понимания вопросов, связанных с сопоставлением счетчиков октетов и пакетов в IF-MIB для интерфейса Ethernet, полезно обратиться к диаграмме [CASE] для счетчиков IF-MIB с интерпретацией для уровня интерфейса Ethernet.

                        Вышележащий уровень
--------------------------------------------------------------------
    ifInUcastPkts+         ^           |     ifOutUcastPkts+
    ifInBroadcastPkts+ ----|----   ----|---- ifOutBroadcastPkts+
    ifInMulticastPkts      |           |     ifOutMulticastPkts
                           |           |
     dot3InPauseFrames <---|           |<--- dot3OutPauseFrames
                           |           |
          ifInDiscards <---|           |
                           |           |
     ifInUnknownProtos <---|           |---> ifOutDiscards
                           |           |
            ifInOctets ----|----   ----|---- ifOutOctets
                           |           |
            ifInErrors <---|           |---> ifOutErrors
                           |           V
--------------------------------------------------------------------
                        Нижележащий уровень


3.2.7. ifMtu

Определенное стандартом значение MTU для интерфейсов типа Ethernet составляет 1500 октетов. Однако многие современные реализации поддерживают более крупные кадры, чем задает стандарт IEEE 802.3. Значение этого объекта должно отражать реальный размер MTU, независимо от его соответствия стандартному MTU.

В этом значении следует отражать величину, которую видит интерфейс клиента MAC. При работе протокола вышележащего уровня (например, IP) через кадры Ethernet, это будет значение MTU, которое видит такой протокол. Однако большинство интерфейсов типа Ethernet сегодня работает с множеством протоколов, которые могут пользоваться разными типами кадрирования. Например, клиентский протокол IEEE 802.2 LLC типа 1 будет видеть MTU размером 1497 октетов на интерфейсе, использующем стандартный максимальный размер кадра IEEE, а протокол, работающий на основе SNAP, на этом же интерфейсе увидит MTU размером 1492 октета. Однако, поскольку спецификация требует использовать значение MTU, видимое клиентским интерфейсом MAC, для ifMtu в этом случае будет выбираться значение 1500 октетов.

3.2.8. Скорость ifSpeed и ifHighSpeed

Для интерфейсов типа Ethernet, работающих со скоростями не более 1000 Мбит/с, ifSpeed будет представлять текущую скорость работы интерфейса в бит/с. Для имеющихся сегодня интерфейсов это будет 1 000000 (1 миллион), 10 000 000 (10 миллионов), 100 000 000 (100 миллионов) или 1 000 000 000 (1 миллиард). IfHighSpeed будет представлять текущую скорость работы в миллионах бит/с и для современных интерфейсов типа Ethernet составит 1, 10, 100 или 1000. Если интерфейс поддерживает автоматическое согласование и оно включено для интерфейса, но скорость работы еще не согласована, в этих объектах следует указывать максимальную скорость интерфейса.

Для интерфейсов типа Ethernet, работающих со скоростью выше 1000 Мбит/с, ifHighSpeed будет представлять текущую скорость работы в миллионах бит/с. Отметим, что для реализаций WAN это будет скорость передачи данных (payload) через подуровень интерфейса WAN. Для современных реализаций это дает значение 10 000 для ЛВС 10 Гбит/с и 9 294 для WAN с MAC 10 Гбит/с на основе OC-192 PHY. Для таких скоростей в ifSpeed следует возвращать максимальное значение 32-битового целого числа без знака (4 294 967 295), как указано в [RFC2863].

Отметим, что в этих объектах недопустимо указывать удвоенное значение при работе в полнодуплексном режиме. Они должны указывать корректное значение текущей скорости в линии, независимо от режима дуплекса, который может быть определен для интерфейса путем проверки объекта dot3StatsDuplexStatus в данном модуле MIB или объекта ifMauType в 802.3 MAU MIB [RFC3636].

3.2.9. Адрес ifPhysAddress

Этот объект содержит адрес IEEE 802.3, помещаемый в поле адреса отправителя любого кадра Ethernet, Starlan или IEEE 802.3, происходящего от данного интерфейса. Обычно этот адрес записан в ПЗУ (ROM) устройства. Некоторые системы позволяют менять адрес программным путем.

При наличии у системы нескольких таких адресов возникает задача выбора одного из них. Выбранный адрес должен быть одним из наиболее подходящих для управления сетью (например, адрес, помещаемый в отклики ARP для систем, которые работают в основном с протоколом IP). При затруднениях с выбором следует использовать указанный в ПЗУ заводской адрес.

Если адрес не определен, следует возвращать пустую строку (размером 0).

Адрес хранится в объекте в двоичной форме с «каноническим» порядком битов, т. е. бит Group является младшим битом первого октета. Поэтому в групповом адресе бит 0x01 будет установлен.

3.2.10. Объекты MIB конкретного интерфейса

В таблице приведены конкретные рекомендации по применению объектов группы interface к средам типа Ethernet.

Объект

Описание

ifIndex

Каждый интерфейс типа Ethernet представляется ifEntry. Таблица dot3StatsTable в этом модуле MIB индексируется dot3StatsIndex. Интерфейс, указанный конкретным значением dot3StatsIndex, совпадает с интерфейсом, указанным таким же значением ifIndex.

ifDescr

См. [RFC2863].

ifType

См. параграф 3.2.4.

ifMtu

См. параграф 3.2.7.

ifSpeed

См. параграф 3.2.8.

ifPhysAddress

См. параграф 3.2.9.

ifAdminStatus

Доступ для записи не требуется. Поддержка тестирования не требуется.

ifOperStatus

Рабочее состояние интерфейса. Поддержка тестирования не требуется. Значение dormant не имеет смысла для интерфейсов типа Ethernet.

ifLastChange

См. [RFC2863].

ifInOctets

Число октетов в корректных кадрах MAC, принятых на этом интерфейсе, с учетом заголовка MAC и FCS. Принятые интерфейсом кадры MAC Control не учитываются. См. параграф 3.2.5.

ifInUcastPkts

См. [RFC2863]. Отметим, что это значение не учитывает кадров MAC Control, поскольку кадры управления MAC потребляются интерфейсом без передачи на вышележащий уровень. См. параграф 3.2.6.

ifInDiscards

См. [RFC2863].

ifInErrors

Сумма значений dot3StatsAlignmentErrors, dot3StatsFCSErrors, dot3StatsFrameTooLongs и dot3StatsInternalMacReceiveErrors для данного интерфейса.

ifInUnknownProtos

См. [RFC2863].

ifOutOctets

Число октетов, переданных в корректных кадрах MAC на данном интерфейсе с учетом заголовка MAC и FCS. Переданные интерфейсом кадры MAC Control не учитываются. См. параграф 3.2.5.

ifOutUcastPkts

См. [RFC2863]. Отметим, что это значение не учитывает кадров MAC Control, поскольку кадры управления MAC создаются интерфейсом, а не принимаются от протокола вышележащего уровня. См. параграф 3.2.6.

ifOutDiscards

См. [RFC2863].

ifOutErrors

Сумма dot3StatsSQETestErrors, dot3StatsLateCollisions, dot3StatsExcessiveCollisions, dot3StatsInternalMacTransmitErrors и dot3StatsCarrierSenseErrors для этого интерфейса.

ifName

Текстовое имя интерфейса с локальной значимостью (например, lan0).

ifInMulticastPkts

См. [RFC2863]. Отметим, что это значение не учитывает кадров MAC Control, поскольку кадры управления MAC потребляются интерфейсом без передачи на вышележащий уровень. См. параграф 3.2.6.

ifInBroadcastPkts

См. [RFC2863]. Отметим, что это значение не учитывает кадров MAC Control, поскольку кадры управления MAC потребляются интерфейсом без передачи на вышележащий уровень. См. параграф 3.2.6.

ifOutMulticastPkts

См. [RFC2863]. Отметим, что это значение не учитывает кадров MAC Control, поскольку кадры управления MAC создаются интерфейсом, а не принимаются от протокола вышележащего уровня. См. параграф 3.2.6.

ifOutBroadcastPkts

См. [RFC2863]. Отметим, что это значение не учитывает кадров MAC Control, поскольку кадры управления MAC создаются интерфейсом, а не принимаются от протокола вышележащего уровня. См. параграф 3.2.6.

IfHCInOctets
ifHCOutOctets

64-битовые варианты счетчиков, требуемые для интерфейсов типа Ethernet, способных работать со скоростью не ниже 20 Мбит/с, даже когда реальная скорость < 20 Мбит/с.

IfHCInUcastPkts
ifHCInMulticastPkts
ifHCInBroadcastPkts
ifHCOutUcastPkts
ifHCOutMulticastPkts
ifHCOutBroadcastPkts

64-битовые варианты счетчиков пакетов, требуемые для интерфейсов типа Ethernet, способных работать со скоростью не ниже 640 Мбит/с, даже когда реальная скорость меньше 640 Мбит/с.

ifLinkUpDownTrapEnable

См. [RFC2863]. По умолчанию включено (enabled).

ifHighSpeed

См. параграф 3.2.8.

ifPromiscuousMode

См. [RFC2863].

ifConnectorPresent

Обычно имеет значение true. Значение false устанавливается при использовании интерфейсом подуровня WAN Interface. См. [RFC3637].

ifAlias

См. [RFC2863].

ifCounterDiscontinuityTime

См. [RFC2863]. Отметим, что разрывы значений счетчиков Interface MIB могут также указывать разрывы значений некоторых или всех других счетчиков данной MIB, связанных с этим интерфейсом.

IfStackHigherLayer
ifStackLowerLayer
ifStackStatus

См. параграф 3.2.1.

IfRcvAddressAddress
ifRcvAddressStatus
ifRcvAddressType

См. параграф 3.2.3.

3.3. Связь с 802.3 MAU MIB

Для интерфейсов типа Ethernet требуется поддержка заявления о совместимости mauModIfCompl3 для MAU-MIB [RFC3636]. Эта база MIB требуется для того, чтобы позволить приложениям определять текущий тип MAU, используемый интерфейсом, и управлять согласованием скорости и режима работы интерфейса. Реализация этого модуля MIB без реализации MAU-MIB оставит приложениям лишь стандартный способ определения используемого типа среды и не дает стандартного способа управления режимом дуплекса для интерфейса.

3.4. dot3StatsEtherChipSet

Этот документ определяет объект dot3StatsEtherChipSet, служащий для идентификации оборудования MAC, используемого интерфейсом. Предыдущие версии этого документа содержат множество назначений OID для некоторых микросхем Ethernet. Поддержка этого списка в рамках данного документа представляется проблематичной, поэтому назначения OID, содержавшиеся в предыдущих версиях, были перенесены в отдельный документ [RFC2666].

Объект dot3StatsEtherChipSet устарел. Отклики разработчиков показывают, что этот объект оказался полезен лишь в теории. Возможности объекта в части отладки при возникновении сетевых проблем оказались весьма ограниченными. В тех случаях, где они могли быть полезны, не достаточно идентифицировать только контроллер MAC, а не PHY, PMD или драйвер. Административные издержки, связанные с поддержкой централизованного реестра OID, не могут быть приняты для объекта, полезность которого вызывает сомнения.

Реализации, поддерживающие этот объект для совместимости с прежними версиями, могут продолжать использовать значения, определенные в [RFC2666]. Для микросхем, не включенных в [RFC2666], разработчики, желающие поддерживать этот объект и возвращать корректное значение OBJECT IDENTIFIER, могут назначать OBJECT IDENTIFIER в части дерева, делегированной отдельным предприятиям.

3.5. Сопоставление с объектами управления IEEE 802.3

 

Управляемый объект IEEE 802.3

Объект SNMP

oMacEntity

.aMACID

dot3StatsIndex или IF-MIB — ifIndex

.aFramesTransmittedOK

IF-MIB — ifOutUCastPkts + ifOutMulticastPkts + ifOutBroadcastPkts3

.aSingleCollisionFrames

dot3StatsSingleCollisionFrames

.aMultipleCollisionFrames

dot3StatsMultipleCollisionFrames

.aFramesReceivedOK

IF-MIB — ifInUcastPkts + ifInMulticastPkts + ifInBroadcastPkts1

.aFrameCheckSequenceErrors

dot3StatsFCSErrors

.aAlignmentErrors

dot3StatsAlignmentErrors

.aOctetsTransmittedOK

IF-MIB — ifOutOctets1

.aFramesWithDeferredXmissions

dot3StatsDeferredTransmissions

.aLateCollisions

dot3StatsLateCollisions

.aFramesAbortedDueToXSColls

dot3StatsExcessiveCollisions

.aFramesLostDueToIntMACXmitError

dot3StatsInternalMacTransmitErrors

.aCarrierSenseErrors

dot3StatsCarrierSenseErrors

.aOctetsReceivedOK

IF-MIB — ifInOctets1

.aFramesLostDueToIntMACRcvError

dot3StatsInternalMacReceiveErrors

.aPromiscuousStatus

IF-MIB — ifPromiscuousMode

.aReadMulticastAddressList

IF-MIB — ifRcvAddressTable

.aMulticastFramesXmittedOK

IF-MIB — ifOutMulticastPkts1

.aBroadcastFramesXmittedOK

IF-MIB — ifOutBroadcastPkts1

.aMulticastFramesReceivedOK

IF-MIB — ifInMulticastPkts1

.aBroadcastFramesReceivedOK

IF-MIB — ifInBroadcastPkts1

.aFrameTooLongErrors

dot3StatsFrameTooLongs

.aReadWriteMACAddress

IF-MIB — ifPhysAddress

.aCollisionFrames

dot3CollFrequencies

.aDuplexStatus

dot3StatsDuplexStatus

.aRateControlAbility

dot3StatsRateControlAbility

.aRateControlStatus

dot3StatsRateControlStatus

.acAddGroupAddress

IF-MIB — ifRcvAddressTable

.acDeleteGroupAddress

IF-MIB — ifRcvAddressTable

.acExecuteSelfTest

dot3TestLoopBack

oPHYEntity

.aPHYID

dot3StatsIndex или IF-MIB — ifIndex

.aSQETestErrors

dot3StatsSQETestErrors

.aSymbolErrorDuringCarrier

dot3StatsSymbolErrors

oMACControlEntity

.aMACControlID

dot3StatsIndex или IF-MIB — ifIndex

.aMACControlFunctionsSupported

dot3ControlFunctionsSupported и dot3ControlFunctionsEnabled

.aUnsupportedOpcodesReceived

dot3ControlInUnknownOpcodes

oPAUSEEntity

.aPAUSEMACCtrlFramesTransmitted

dot3OutPauseFrames

.aPAUSEMACCtrlFramesReceived

dot3InPauseFrames

 

Следует также обратить внимание на то, что счетчики пакетов IF-MIB не точно соответствуют определению счетчиков кадров в IEEE 802.3 (см. параграф 3.2.6).

Перечисленные ниже объекты управления IEEE 802.3 были удалены из этого модуля MIB на основании откликов разработчиков.

   oMacEntity
     .aFramesWithExcessiveDeferral
     .aInRangeLengthErrors
     .aOutOfRangeLengthField
     .aMACEnableStatus
     .aTransmitEnableStatus
     .aMulticastReceiveStatus
     .acInitializeMAC

Причины удаления этих объектов подробно описаны в [RFC1369].

Перечисленные ниже объекты управления IEEE 802.3 не включены в MIB по указанным в таблице причинам.

Управляемый объект IEEE 802.3

Причина исключения

oMACEntity

.aMACCapabilities

Может быть выведено из MAU-MIB — ifMauTypeListBits.

.aStretchRatio

Константа реализации.

oPHYEntity

.aPhyType

Может быть выведено из MAU-MIB — ifMauType.

.aPhyTypeList

Может быть выведено из MAU-MIB — ifMauTypeListBits.

.aMIIDetect

Не считается полезным.

.aPhyAdminState

Можно получить состояние интерфейса из IF-MIB — ifAdminStatus и состояние MAU из MAU-MIB — ifMauStatus. Дополнительные состояния для PHY были сочтены бесполезными.

.acPhyAdminControl

Можно управлять состоянием интерфейса из IF-MIB — ifAdminStatus и состоянием MAU из MAU-MIB — ifMauStatus. Отдельное административное управление для PHY было сочтено бесполезным

oMACControlEntity

.aMACControlFramesTransmitted

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

.aMACControlFramesReceived

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

oPAUSEEntity

.aPAUSELinkDelayAllowance

Не считается полезным.

4. Определения

   EtherLike-MIB DEFINITIONS ::= BEGIN

       IMPORTS
           MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
           Integer32, Counter32, Counter64, mib-2, transmission
               FROM SNMPv2-SMI
           MODULE-COMPLIANCE, OBJECT-GROUP
               FROM SNMPv2-CONF
           TruthValue
               FROM SNMPv2-TC
           ifIndex, InterfaceIndex
               FROM IF-MIB;

       etherMIB MODULE-IDENTITY
           LAST-UPDATED "200309190000Z"  -- 19 сентября 2003 г.
           ORGANIZATION "IETF Ethernet Interfaces and Hub MIB
                        Working Group"
           CONTACT-INFO
               "WG E-mail: hubmib@ietf.org 
             To subscribe: hubmib-request@ietf.org 

                    Chair: Dan Romascanu
                   Postal: Avaya Inc.
                           Atidum Technology Park, Bldg. 3
                           Tel Aviv 61131
                           Israel
                      Tel: +972 3 645 8414
                   E-mail: dromasca@avaya.com 

                  Editor: John Flick
                  Postal: Hewlett-Packard Company
                          8000 Foothills Blvd. M/S 5557
                          Roseville, CA 95747-5557
                          USA
                     Tel: +1 916 785 4018
                     Fax: +1 916 785 1199
                  E-mail: johnf@rose.hp.com" 

           DESCRIPTION "Модуль MIB, описывающий базовые объекты для интерфейсов
                       типа Ethernet.

                       В этом модуле MIB используются приведенные ниже ссылки.

                       [IEEE 802.3 Std] указывает стандарт
                          IEEE Std 802.3, 2002 Edition: 'IEEE Standard
                          for Information technology -
                          Telecommunications and information exchange
                          between systems - Local and metropolitan
                          area networks - Specific requirements -
                          Part 3: Carrier sense multiple access with
                          collision detection (CSMA/CD) access method
                          and physical layer specifications', дополненный
                          стандартом IEEE Std 802.3ae-2002:
                          'Amendment: Media Access Control (MAC)
                          Parameters, Physical Layer, and Management
                          Parameters for 10 Gb/s Operation', август 2002 г.

                       Особый интерес представляет раздел 30, '10 Mb/s,
                       100 Mb/s, 1000 Mb/s, and 10 Gb/s Management'.

                       Copyright (C) The Internet Society (2003). Эта
                       версия модуля MIB является частью RFC 3635, 
                       где указаны  правовые аспекты."

           REVISION    "200309190000Z"  -- 19 сентября 2003 г.
           DESCRIPTION "Обновлено для поддержки интерфейсов 10 Гбит/с.
                        Это привело к перечисленным ниже изменениям.

                        - Обновлены описания dot3StatsAlignmentErrors и
                          dot3StatsSymbolErrors с учетом поведения при
                          скорости 10 Гбит/с.
                        - Добавлены dot3StatsRateControlAbility и
                          dot3RateControlStatus для управления функцией
                          Rate Control в WAN-приложениях 10 Гбит/с.
                        - Добавлены 64-битовые версии всех счетчиков для
                          использования на высокоскоростных интерфейсах.
                        - Добавлены группы для новых объектов.
                        - Отменен объект etherStatsBaseGroup с
                          разделением на etherStatsBaseGroup2 и
                          etherStatsHalfDuplexGroup, чтобы интерфейсам,
                          работающим лишь в полнодуплексном режиме, не
                          нужно было поддерживать статистику для полудуплекса.
                        - Отменен объект dot3Compliance с заменой на
                          dot3Compliance2, который включает данные о
                          соответствии для новых групп объектов.

                        В дополнение к этому отменены объекты dot3Tests и 
                        dot3Errors по причине отсутствия стандартного
                        метода их использования.

                        Эта версия опубликована в RFC 3635."

           REVISION    "199908240400Z"  -- 24 августа 1999 г.
           DESCRIPTION "Обновлено с учетом поддержки интерфейсов 1000 Мбит/с
                        и полнодуплексных интерфейсов.
                        Эта версия опубликована в RFC 2665."

           REVISION    "199806032150Z"  -- 3 июня 1998 г.
           DESCRIPTION "Обновлено для поддержки интерфейсов 100 Мбит/с.
                        Эта версия опубликована в RFC 2358."

           REVISION    "199402030400Z"  -- 3 февраля 1994 г.
           DESCRIPTION "Первоначальная версия, опубликованная в RFC 1650."
           ::= { mib-2 35 }

       etherMIBObjects OBJECT IDENTIFIER ::= { etherMIB 1 }

       dot3    OBJECT IDENTIFIER ::= { transmission 7 }

       -- Группа статистики Ethernet

       dot3StatsTable OBJECT-TYPE
           SYNTAX     SEQUENCE OF Dot3StatsEntry
           MAX-ACCESS not-accessible
           STATUS     current
           DESCRIPTION "Статистика для набора интерфейсов типа Ethernet,
                       подключенных к конкретной системе, по одной 
                       строке для каждого подключенного интерфейса."
           ::= { dot3 2 }

       dot3StatsEntry OBJECT-TYPE
           SYNTAX     Dot3StatsEntry
           MAX-ACCESS not-accessible
           STATUS     current
           DESCRIPTION "Статистика для конкретного интерфейса в среду
                       типа Ethernet."
           INDEX       { dot3StatsIndex }
           ::= { dot3StatsTable 1 }

       Dot3StatsEntry ::=
           SEQUENCE {
               dot3StatsIndex                      InterfaceIndex,
               dot3StatsAlignmentErrors            Counter32,
               dot3StatsFCSErrors                  Counter32,
               dot3StatsSingleCollisionFrames      Counter32,
               dot3StatsMultipleCollisionFrames    Counter32,
               dot3StatsSQETestErrors              Counter32,
               dot3StatsDeferredTransmissions      Counter32,
               dot3StatsLateCollisions             Counter32,
               dot3StatsExcessiveCollisions        Counter32,
               dot3StatsInternalMacTransmitErrors  Counter32,
               dot3StatsCarrierSenseErrors         Counter32,
               dot3StatsFrameTooLongs              Counter32,
               dot3StatsInternalMacReceiveErrors   Counter32,
               dot3StatsEtherChipSet               OBJECT IDENTIFIER,
               dot3StatsSymbolErrors               Counter32,
               dot3StatsDuplexStatus               INTEGER,
               dot3StatsRateControlAbility         TruthValue,
               dot3StatsRateControlStatus          INTEGER
           }
       dot3StatsIndex OBJECT-TYPE
           SYNTAX      InterfaceIndex
           MAX-ACCESS  read-only  -- доступно лишь для чтения, поскольку
                                  -- исходно это индекс SMIv1.
           STATUS      current
           DESCRIPTION "Значение индекса, которое однозначно указывает 
                       интерфейс в среду типа Ethernet. Интерфейс,
                       указанный конкретным значением этого индекса,
                       является интерфейсом, указанным таким же значением
                       ifIndex."
           REFERENCE   "RFC 2863, ifIndex"
           ::= { dot3StatsEntry 1 }

       dot3StatsAlignmentErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, принятых на конкретном интерфейсе,
                       у которых размер не равен целому числу октетов
                       и проверка FCS не прошла.

                       Значение, представленное экземпляром этого объекта,
                       инкрементируется при возврате статуса alignmentError
                       службой MAC подуровню LLC (или другому пользователю MAC).
                       Принятые кадры, в которых имеется множество ошибок,
                       в соответствии с соглашениями IEEE 802.3 Layer Management
                       учитываются исключительно по статусу ошибки,
                       представленному LLC.

                       Этот счетчик не инкрементируется для схем группового
                       кодирования, где число битов на группу превышает 4.

                       Для интерфейсов, работающих на скорости 10 Гбит/с, этот
                       счетчик будет переполняться быстрее чем за 5 минут, если
                       он инкрементируется с максимальной скоростью. Поскольку 
                       это время может оказаться меньше периода опроса станции
                       управления, для предотвращения потери информации станциям
                       управления рекомендуется запрашивать объект
                       dot3HCStatsAlignmentErrors для скоростей 10 Гбит/с и выше.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.7, aAlignmentErrors"
           ::= { dot3StatsEntry 2 }

       dot3StatsFCSErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, принятых на конкретном интерфейсе,
                       которые содержат целое число октетов, но не прошли
                       проверку FCS. Это число не включает кадры с ошибкой
                       frame-too-long или frame-too-short.

                       Значение, представленное экземпляром этого объекта,
                       инкрементируется при возврате статуса frameCheckError
                       службой MAC подуровню LLC (или другому пользователю MAC).
                       Принятые кадры, в которых имеется множество ошибок,
                       в соответствии с соглашениями IEEE 802.3 Layer Management
                       учитываются исключительно по статусу ошибки,
                       представленному LLC.

                       Примечание. Ошибки кодирования, обнаруженные физическим
                       уровнем при скорости выше 10 Мбит/с, будут приводить
                       к отказу при проверке FCS.

                       Для интерфейсов, работающих на скорости 10 Гбит/с, этот
                       счетчик будет переполняться быстрее чем за 5 минут, если
                       он инкрементируется с максимальной скоростью. Поскольку 
                       это время может оказаться меньше периода опроса станции
                       управления, для предотвращения потери информации станциям
                       управления рекомендуется запрашивать объект
                       dot3HCStatsFCSErrors для скоростей 10 Гбит/с и выше.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.6, aFrameCheckSequenceErrors."
           ::= { dot3StatsEntry 3 }

       dot3StatsSingleCollisionFrames OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, вовлеченных в один конфликт, а потом
                       переданных.

                       Кадры, учтенные этим экземпляром счетчика, учитываются
                       также соответствующим экземпляром ifOutUcastPkts,
                       ifOutMulticastPkts или ifOutBroadcastPkts,
                       но не учитываются соответствующим экземпляром объекта
                       dot3StatsMultipleCollisionFrames.

                       Этот счетчик не инкрементируется при работе интерфейса
                       в полнодуплексном режиме.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.3, aSingleCollisionFrames."
           ::= { dot3StatsEntry 4 }

       dot3StatsMultipleCollisionFrames OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, вовлеченных в несколько конфликтов, 
                       а потом переданных.

                       Кадры, учтенные этим экземпляром счетчика, учитываются
                       также соответствующим экземпляром ifOutUcastPkts,
                       ifOutMulticastPkts или ifOutBroadcastPkts,
                       но не учитываются соответствующим экземпляром объекта
                       dot3StatsSingleCollisionFrames.

                       Этот счетчик не инкрементируется при работе интерфейса
                       в полнодуплексном режиме.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.4, aMultipleCollisionFrames."
           ::= { dot3StatsEntry 5 }

       dot3StatsSQETestErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число ошибок SQE TEST, полученных на конкретном
                       интерфейсе. Ошибка SQE TEST устанавливается в 
                       соответствии с правилами механизма обнаружения SQE 
                       в функции PLS Carrier Sense, как описано в параграфе
                       7.2.4.6 стандарта IEEE Std. 802.3 в редакции 2000 г.

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

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 7.2.4.6, 30.3.2.1.4, aSQETestErrors."
           ::= { dot3StatsEntry 6 }

       dot3StatsDeferredTransmissions OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, для которых первая попытка передачи
                       на конкретном интерфейсе была задержана по причине
                       занятости среды.

                       Значение, представленное экземпляром этого объекта,
                       не учитывает кадры, вовлеченные в конфликты.

                       Этот счетчик не инкрементируется на интерфейсах, 
                       работающих в полнодуплексном режиме.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.9, aFramesWithDeferredXmissions."
           ::= { dot3StatsEntry 7 }

       dot3StatsLateCollisions OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число случаев, когда конфликт при передаче пакета
                       на конкретном интерфейсе был обнаружен уже после 
                       интервала slotTime.

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

                       Этот счетчик не инкрементируется на интерфейсах, 
                       работающих в полнодуплексном режиме.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.10, aLateCollisions."
           ::= { dot3StatsEntry 8 }

       dot3StatsExcessiveCollisions OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, для которых передача через конкретный
                       интерфейс завершилась отказом по причине большого 
                       числа конфликтов.

                       Этот счетчик не инкрементируется на интерфейсах, 
                       работающих в полнодуплексном режиме.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.11, aFramesAbortedDueToXSColls."
           ::= { dot3StatsEntry 9 }

       dot3StatsInternalMacTransmitErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, для которых передача через конкретный
                       интерфейс завершилась отказом по причине ошибки
                       передачи внутреннего подуровня MAC. Кадр учитывается
                       экземпляром этого объекта лишь в том случае, когда он
                       не учтен соответствующим экземпляром одного из объектов
                       dot3StatsLateCollisions, dot3StatsExcessiveCollisions 
                       или dot3StatsCarrierSenseErrors.

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

                       Для интерфейсов, работающих на скорости 10 Гбит/с, этот
                       счетчик будет переполняться быстрее чем за 5 минут, если
                       он инкрементируется с максимальной скоростью. Поскольку 
                       это время может оказаться меньше периода опроса станции
                       управления, для предотвращения потери информации станциям
                       управления рекомендуется запрашивать объект
                       dot3HCStatsInternalMacTransmitErrors для скоростей 
                       10 Гбит/с и выше.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.12, aFramesLostDueToIntMACXmitError."
           ::= { dot3StatsEntry 10 }

       dot3StatsCarrierSenseErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число случаев, когда несущая была потеряна или не обнаружена
                       при попытке передачи кадра на конкретном интерфейсе.

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

                       Этот счетчик не инкрементируется на интерфейсах, 
                       работающих в полнодуплексном режиме.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.13, aCarrierSenseErrors."
           ::= { dot3StatsEntry 11 }

       -- { dot3StatsEntry 12 } не назначен

       dot3StatsFrameTooLongs OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, полученных на конкретном интерфейсе
                       с превышением максимально разрешенного размера кадров.

                       Значение, представленное экземпляром этого объекта,
                       инкрементируется при возврате статуса frameTooLong
                       сервисом MAC подуровню LLC (или другому пользователю 
                       MAC). Принятые кадры, для которых наблюдается
                       множество ошибок, в соответствии с соглашениями
                       IEEE 802.3 Layer Management учитываются исключительно
                       по статусу ошибок, представленных подуровню LLC.

                       Для интерфейсов, работающих на скорости 10 Гбит/с, этот
                       счетчик будет переполняться быстрее чем за 80 минут, если
                       он инкрементируется с максимальной скоростью. Поскольку 
                       это время может оказаться меньше периода опроса станции
                       управления, для предотвращения потери информации станциям
                       управления рекомендуется запрашивать объект
                       dot3HCStatsFrameTooLongs для скоростей 10 Гбит/с и выше.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.25, aFrameTooLongErrors."
           ::= { dot3StatsEntry 13 }

       -- { dot3StatsEntry 14 } не назначен

       -- { dot3StatsEntry 15 } не назначен

       dot3StatsInternalMacReceiveErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, для который прием на конкретном
                       интерфейсе привел к отказу в результате внутренней
                       ошибки приема подуровня MAC. Кадр учитывается
                       экземпляром этого объекта лишь в том случае, если
                       он не учтен соответствующим экземпляром объекта
                       dot3StatsFrameTooLongs, dot3StatsAlignmentErrors 
                       или dot3StatsFCSErrors.
                       Точный смысл значения, представляемого экземпляром этого
                       объекта зависит от реализации. В частности, этот
                       экземпляр может представлять число ошибок приема на
                       конкретном интерфейсе, не учтенных другими счетчиками.

                       Для интерфейсов, работающих на скорости 10 Гбит/с, этот
                       счетчик будет переполняться быстрее чем за 5 минут, если
                       он инкрементируется с максимальной скоростью. Поскольку 
                       это время может оказаться меньше периода опроса станции
                       управления, для предотвращения потери информации станциям
                       управления рекомендуется запрашивать объект
                       dot3HCStatsInternalMacReceiveErrors для скоростей 
                       10 Гбит/с и выше.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.15, aFramesLostDueToIntMACRcvError."
           ::= { dot3StatsEntry 16 }

       dot3StatsEtherChipSet OBJECT-TYPE
           SYNTAX      OBJECT IDENTIFIER
           MAX-ACCESS  read-only
           STATUS      deprecated
           DESCRIPTION "******** Этот объект устарел ********

                       Этот объект содержит OBJECT IDENTIFIER, который
                       указывает набор микросхем, использованный
                       для интерфейса. Интерфейсы типа Ethernet обычно
                       создаются на базе нескольких разных микросхем. 
                       Разработчик MIB принимает решение о выборе
                       микросхемы, указываемой этим объектом.
                       Разработчику следует указывать микросхему, 
                       которую обычно называют контроллером доступа
                       к среде (MAC). Если такую микросхему сложно
                       определить, разработчику следует указать 
                       микросхему, собирающую реальную статистику приема 
                       и передачи, а также информацию об ошибках.
                       Это позволит станции управления сопоставить
                       статистику с предоставляющей ее микросхемой,
                       что обеспечит возможность принимать во внимание
                       известные аномалии этой микросхемы.

                       Этот объект устарел. Отклики разработчиков 
                       показывают, что его возможности в части отладки
                       при возникновении проблем «в поле» ограничены, 
                       а издержки на администрирование реестра OID
                       не оправданы."
           ::= { dot3StatsEntry 17 }

       dot3StatsSymbolErrors OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Для интерфейса, работающего со скоростью 100 Мбит/с,
                       число некорректных символов данных при наличии несущей.

                       Для интерфейса, работающего в полудуплексном режиме 
                       со скоростью 1000 Мбит/с, число случаев приема сигнала
                       занятости среды в течение интервала времени не меньше
                       slotTime, когда происходило по меньшей мере одно
                       событие, заставляющее PHY указать состояние 
                       'Data reception error' или 'carrier extend error' на GMII.

                       Для интерфейса, работающего в полнодуплексном режиме 
                       со скоростью 1000 Мбит/с, число случаев приема сигнала
                       занятости среды в течение интервала времени не меньше
                       minFrameSize, когда происходило по меньшей мере одно
                       событие, заставляющее PHY указать состояние 
                       'Data reception error' на GMII.

                       Для интерфейса, работающего со скоростью 10 Гбит/с,
                       число случаев приема сигнала  занятости среды в течение
                       интервала времени не меньше minFrameSize, когда
                       происходило по меньшей мере одно, заставляющее
                       PHY указать состояние 'Receive Error' на XGMII.
                       Значение, представленное экземпляром этого объекта,
                       инкрементируется не более одного раза для связанного
                       с несущей события, даже при наличии множества ошибок
                       в одном событии. Счетчик не инкрементируется при 
                       наличии конфликта (collision).

                       Этот счетчик не инкрементируется при работе 
                       интерфейса со скоростью 10 Мбит/с.

                       Для интерфейсов, работающих на скорости 10 Гбит/с, этот
                       счетчик будет переполняться быстрее чем за 5 минут, если
                       он инкрементируется с максимальной скоростью. Поскольку 
                       это время может оказаться меньше периода опроса станции
                       управления, для предотвращения потери информации станциям
                       управления рекомендуется запрашивать объект
                       dot3HCStatsSymbolErrors для скоростей 10 Гбит/с и выше.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.2.1.5, aSymbolErrorDuringCarrier."
           ::= { dot3StatsEntry 18 }

       dot3StatsDuplexStatus OBJECT-TYPE
           SYNTAX      INTEGER {
                           unknown(1),
                           halfDuplex(2),
                           fullDuplex(3)
                       }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Текущий режим работы объекта MAC. Значение
                       unknown показывает, что текущий режим дуплекса
                       не может быть определен.

                       Управление режимом дуплекса обеспечивается через
                       MAU MIB. Когда интерфейс не поддерживает 
                       автосогласование или оно отключено, управление
                       режимом дуплекса происходит с использованием
                       ifMauDefaultType. При поддерживаемом и включенном
                       автосогласовании режим дуплекса контролируется 
                       с помощью ifMauAutoNegAdvertisedBits. В обоих 
                       случаях текущий режим отражается в обоих этих
                       объектах и ifMauType.

                       Отметим, что этот объект представляет избыточную 
                       информацию в ifMauType. Обычно избыточности 
                       следует избегать, однако в этом экземпляре 
                       избыточность позволяет управляющему приложению
                       определить режим дуплекса на интерфейсе без
                       знания всех возможных значений ifMauType. Это  
                       сочтено достаточным основанием для избыточности."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.32, aDuplexStatus."
           ::= { dot3StatsEntry 19 }

       dot3StatsRateControlAbility OBJECT-TYPE
           SYNTAX      TruthValue
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Значение true для интерфейсов, работающих со скоростью
                       выше 1000 Мбит/с, которые поддерживают Rate Control за
                       счет снижения средней скорости подуровня MAC с достаточной
                       дискретностью, false - в остальных случаях."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.33, aRateControlAbility."
           ::= { dot3StatsEntry 20 }

       dot3StatsRateControlStatus OBJECT-TYPE
           SYNTAX      INTEGER {
                           rateControlOff(1),
                           rateControlOn(2),
                           unknown(3)
                       }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Текущий режим Rate Control на подуровне MAC данного
                       интерфейса."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.34, aRateControlStatus."
           ::= { dot3StatsEntry 21 }

       -- Группа статистики конфликтов для интерфейсов типа Ethernet

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

       dot3CollTable OBJECT-TYPE
           SYNTAX      SEQUENCE OF Dot3CollEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "Набор гистограмм конфликтов для заданного множества
                       интерфейсов."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.30, aCollisionFrames."
           ::= { dot3 5 }

       dot3CollEntry OBJECT-TYPE
           SYNTAX      Dot3CollEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "Ячейка гистограммы конфликтов на уровне кадра
                       для конкретного интерфейса. Экземпляр этого
                       объекта представляет частоту, с которой кадры
                       MAC сталкивались с конфликтами при передаче
                       (успешной или неудачной) в среду."
           INDEX       { ifIndex, dot3CollCount }
           ::= { dot3CollTable 1 }

       Dot3CollEntry ::=
           SEQUENCE {
               dot3CollCount        Integer32,
               dot3CollFrequencies  Counter32
           }

       -- { dot3CollEntry 1 } больше не применяется

       dot3CollCount OBJECT-TYPE
           SYNTAX      Integer32 (1..16)
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "Число конфликтов при доступе к среде, для 
                       которого конкретная ячейка гистограммы конфликтов
                       представляет частоту конфликтов на отдельном
                       интерфейсе."
           ::= { dot3CollEntry 2 }

       dot3CollFrequencies OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число отдельных кадров MAC, которые при передаче
                       (успешной или неудачной) на конкретном интерфейсе
                       столкнулись с числом конфликтов, в совпадающим
                       со значением связанного с интерфейсом объекта
                       dot3CollCount.

                       Например, кадры, которые переданы на интерфейсе 77
                       после ровно 4 конфликтов, будут указываться путем 
                       инкрементирования только dot3CollFrequencies.77.4.
                       Другие экземпляры dot3CollFrequencies при этом не
                       будут инкрементироваться.

                       Этот счетчик не инкрементируется при работе
                       интерфейса в полудуплексном режиме.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           ::= { dot3CollEntry 3 }

       dot3ControlTable OBJECT-TYPE
           SYNTAX      SEQUENCE OF Dot3ControlEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "Таблица с описанием и данными о состоянии 
                       подуровня MAC Control на интерфейсах типа 
                       Ethernet, подключенных к конкретной системе.
                       Таблица содержит одну строку для каждого 
                       интерфейса типа Ethernet, который реализует
                       подуровень MAC Control. Если в системе лишь 
                       часть интерфейсов типа Ethernet реализует
                       подуровень MAC Control, число строк
                       в таблице будет меньше dot3StatsTable."
           ::= { dot3 9 }

       dot3ControlEntry OBJECT-TYPE
           SYNTAX      Dot3ControlEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "Запись таблицы, содержащая информацию о подуровне
                       MAC Control на отдельном интерфейсе типа Ethernet."
           INDEX       { dot3StatsIndex }
           ::= { dot3ControlTable 1 }

       Dot3ControlEntry ::=
           SEQUENCE {
               dot3ControlFunctionsSupported       BITS,
               dot3ControlInUnknownOpcodes         Counter32,
               dot3HCControlInUnknownOpcodes       Counter64
           }

       dot3ControlFunctionsSupported OBJECT-TYPE
           SYNTAX      BITS {
                           pause(0)   -- управление потоком данных 802.3
                       }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Список функций MAC Control, реализованных
                       на этом интерфейсе."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.3.2,
                       aMACControlFunctionsSupported."
           ::= { dot3ControlEntry 1 }

       dot3ControlInUnknownOpcodes OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число принятых на данном интерфейсе кадров MAC Control,
                       которые содержат код не поддерживаемой устройством операции.

                       Для интерфейсов, работающих на скорости 10 Гбит/с, этот
                       счетчик будет переполняться быстрее чем за 5 минут, если
                       он инкрементируется с максимальной скоростью. Поскольку 
                       это время может оказаться меньше периода опроса станции
                       управления, для предотвращения потери информации станциям
                       управления рекомендуется запрашивать объект
                       dot3HCControlInUnknownOpcodes для скоростей 10 Гбит/с и выше.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.3.5, aUnsupportedOpcodesReceived"
           ::= { dot3ControlEntry 2 }

       dot3HCControlInUnknownOpcodes OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число принятых на данном интерфейсе кадров MAC Control,
                       которые содержат код не поддерживаемой устройством операции.

                       Это 64-битовая версия счетчика dot3ControlInUnknownOpcodes.  
                       Ее следует использовать на интерфейсах 10 Гбит/с и выше.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.3.5, aUnsupportedOpcodesReceived"
           ::= { dot3ControlEntry 3 }

       dot3PauseTable OBJECT-TYPE
           SYNTAX      SEQUENCE OF Dot3PauseEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "Таблица с описанием и данными о состоянии функции
                       MAC Control PAUSE на интерфейсах типа Ethernet,
                       подключенных к конкретной системе. Таблица содержит
                       по одной строке для каждого интерфейса типа Ethernet,
                       который поддерживает функцию MAC Control PAUSE
                       (т. е. бит pause установлен в соответствующем
                       экземпляре dot3ControlFunctionsSupported). Если
                       часть интерфейсов типа Ethernet не реализует
                       функцию MAC Control PAUSE (например, если некоторые
                       интерфейсы работают лишь в полнодуплексном режиме),
                       число строк таблицы будет меньше dot3StatsTable."
           ::= { dot3 10 }

       dot3PauseEntry OBJECT-TYPE
           SYNTAX      Dot3PauseEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "Запись таблицы, содержащая информацию о функции
                       MAC Control PAUSE на одном интерфейсе типа Ethernet."
           INDEX       { dot3StatsIndex }
           ::= { dot3PauseTable 1 }

       Dot3PauseEntry ::=
           SEQUENCE {
               dot3PauseAdminMode                  INTEGER,
               dot3PauseOperMode                   INTEGER,
               dot3InPauseFrames                   Counter32,
               dot3OutPauseFrames                  Counter32,
               dot3HCInPauseFrames                 Counter64,
               dot3HCOutPauseFrames                Counter64
           }

       dot3PauseAdminMode OBJECT-TYPE
           SYNTAX      INTEGER {
                           disabled(1),
                           enabledXmit(2),
                           enabledRcv(3),
                           enabledXmitAndRcv(4)
                       }
           MAX-ACCESS  read-write
           STATUS      current
           DESCRIPTION "Этот объект используется для настройки принятого  по
                       умолчанию административного режима PAUSE для интерфейса.

                       Этот объект представляет административно настраиваемый
                       режим PAUSE для данного интерфейса. Если автосогласование
                       выключено или не реализовано для активного MAU на данном
                       интерфейсе, значение этого объекта определяет рабочий
                       режим PAUSE на интерфейсе, когда он работает в
                       полнодуплексном режиме. В таких случаях установка этого 
                       объекта будет переводить интерфейс в указанный режим.

                       Если автосогласование реализовано и включено для
                       MAU на этом интерфейсе, режим PAUSE для интерфейса
                       определяется автосогласованием, а значение этого
                       объекта указывает режим, в который интерфейс 
                       автоматически перейдет при запрете автосогласования.
                       Отметим, что при работающем автосогласовании 
                       административный контроль над режимом PAUSE может
                       быть реализован с помощью объекта
                       ifMauAutoNegCapAdvertisedBits в MAU-MIB.

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

                       Попытка установить для этого объекта значение 
                       enabledXmit(2) или enabledRcv(3) приведет к отказу, если
                       интерфейс не может работать быстрее 100 Мбит/с."
           ::= { dot3PauseEntry 1 }
       dot3PauseOperMode OBJECT-TYPE
           SYNTAX      INTEGER {
                           disabled(1),
                           enabledXmit(2),
                           enabledRcv(3),
                           enabledXmitAndRcv(4)
                       }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Этот объект отражает текущий режим PAUSE на
                       интерфейсе, определяемый (1) результатом функции
                       автосогласования или (2) значением dot3PauseAdminMode,
                       если автосогласование не включено или не реализовано
                       для активного MAU на интерфейсе. Интерфейсы, 
                       работающие со скоростью не более 100 Мбит/с, 
                       никогда не будут возвращать enabledXmit(2) или
                       enabledRcv(3). Интерфейсы в полнодуплексном режиме 
                       всегда будут возвращать disabled(1). Интерфейсам, где
                       автоопределение включено, но еще не завершено, 
                       следует возвращать значение disabled(1)."
           ::= { dot3PauseEntry 2 }

       dot3InPauseFrames OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число полученных на интерфейсе кадров MAC Control
                       с кодом операции PAUSE.

                       Этот счетчик не инкрементируется при работе
                       интерфейса в полудуплексном режиме.

                       Для интерфейсов, работающих на скорости 10 Гбит/с, этот
                       счетчик будет переполняться быстрее чем за 5 минут, если
                       он инкрементируется с максимальной скоростью. Поскольку 
                       это время может оказаться меньше периода опроса станции
                       управления, для предотвращения потери информации станциям
                       управления рекомендуется запрашивать объект
                       dot3HCInPauseFrames для скоростей 10 Гбит/с и выше.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.4.3, aPAUSEMACCtrlFramesReceived."
           ::= { dot3PauseEntry 3 }

       dot3OutPauseFrames OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число переданных интерфейсом кадров MAC Control 
                       с кодом операции PAUSE.

                       Этот счетчик не инкрементируется при работе
                       интерфейса в полудуплексном режиме.

                       Для интерфейсов, работающих на скорости 10 Гбит/с, этот
                       счетчик будет переполняться быстрее чем за 5 минут, если
                       он инкрементируется с максимальной скоростью. Поскольку 
                       это время может оказаться меньше периода опроса станции
                       управления, для предотвращения потери информации станциям
                       управления рекомендуется запрашивать объект
                       dot3HCOutPauseFrames для скоростей 10 Гбит/с и выше.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.4.2, aPAUSEMACCtrlFramesTransmitted."
           ::= { dot3PauseEntry 4 }

       dot3HCInPauseFrames OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число полученных на интерфейсе кадров MAC Control
                       с кодом операции PAUSE.

                       Этот счетчик не инкрементируется при работе
                       интерфейса в полудуплексном режиме.

                       Это 64-битовая версия dot3InPauseFrames, которую 
                       следует применять для интерфейсов 10 Гбит/с и быстрее.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.4.3, aPAUSEMACCtrlFramesReceived."
           ::= { dot3PauseEntry 5 }

       dot3HCOutPauseFrames OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число переданных интерфейсом кадров MAC Control 
                       с кодом операции PAUSE.

                       Этот счетчик не инкрементируется при работе
                       интерфейса в полудуплексном режиме.

                       Это 64-битовая версия dot3OutPauseFrames, которую 
                       следует применять для интерфейсов 10 Гбит/с и быстрее.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.4.2, aPAUSEMACCtrlFramesTransmitted."
           ::= { dot3PauseEntry 6 }

       dot3HCStatsTable OBJECT-TYPE
           SYNTAX      SEQUENCE OF Dot3HCStatsEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "Таблица, содержащая 64-битовые варианты счетчиков
                       ошибок из dot3StatsTable. 32-битовые варианты этих 
                       счетчиков могут достаточно быстро переполняться на
                       высокоскоростных интерфейсах Ethernet. В этой 
                       таблице содержатся 64-битовые счетчики, применимые
                       к полнодуплексным интерфейсам, поскольку интерфейсы
                       типа Ethernet со скоростью 10 Гбит/с и выше не
                       поддерживают полудуплексный режим, а среди интерфейсов 
                       1000 Мбит/с такая поддержка встречается редко.

                       Записи этой таблицы рекомендуются для интерфейсов,
                       работающих со скоростью не менее 1000 Мбит/с, и
                       требуются для интерфейсов, способных работать со
                       скоростью 10 Гбит/с и выше. Более медленным интерфейсам
                       типа Ethernet записи этой таблицы не нужны, поэтому их
                       число может быть меньше числа записей в dot3StatsTable. 
                       Однако реализации, поддерживающие интерфейсы с разными
                       скоростями, могут поддерживать в таблице записи для
                       всех интерфейсов типа Ethernet."
           ::= { dot3 11 }

       dot3HCStatsEntry OBJECT-TYPE
           SYNTAX      Dot3HCStatsEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION "Запись с 64-битовой статистикой для одного интерфейса
                       типа Ethernet."
           INDEX       { dot3StatsIndex }
           ::= { dot3HCStatsTable 1 }

       Dot3HCStatsEntry ::=
           SEQUENCE {
               dot3HCStatsAlignmentErrors           Counter64,
               dot3HCStatsFCSErrors                 Counter64,
               dot3HCStatsInternalMacTransmitErrors Counter64,
               dot3HCStatsFrameTooLongs             Counter64,
               dot3HCStatsInternalMacReceiveErrors  Counter64,
               dot3HCStatsSymbolErrors              Counter64
           }

       dot3HCStatsAlignmentErrors OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число принятых на определенном интерфейсе кадров 
                       с нецелым числом октетов, не прошедших проверку FCS.

                       Значение, представленное экземпляром этого объекта,
                       инкрементируется при возврате статуса alignmentError
                       службой MAC подуровню LLC (или другому пользователю MAC).
                       Принятые кадры, в которых имеется множество ошибок,
                       в соответствии с соглашениями IEEE 802.3 Layer Management
                       учитываются исключительно по статусу ошибки,
                       представленному LLC.

                       Этот счетчик не инкрементируется для схем группового
                       кодирования, где число битов на группу превышает 4.
      
                       Этот счетчик является 64-битовой версией
                       dot3StatsAlignmentErrors, которую следует использовать
                       для интерфейсов 10 Гбит/с или быстрее.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.7, aAlignmentErrors"
           ::= { dot3HCStatsEntry 1 }

       dot3HCStatsFCSErrors OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, принятых на конкретном интерфейсе,
                       которые содержат целое число октетов, но не прошли
                       проверку FCS. Это число не включает кадры с ошибкой
                       frame-too-long или frame-too-short.

                       Значение, представленное экземпляром этого объекта,
                       инкрементируется при возврате статуса frameCheckError
                       службой MAC подуровню LLC (или другому пользователю MAC).
                       Принятые кадры, в которых имеется множество ошибок,
                       в соответствии с соглашениями IEEE 802.3 Layer Management
                       учитываются исключительно по статусу ошибки,
                       представленному LLC.

                       Примечание. Ошибки кодирования, обнаруженные физическим
                       уровнем при скорости выше 10 Мбит/с, будут приводить
                       к отказу при проверке FCS.

                       Этот счетчик является 64-битовой версией
                       dot3StatsFCSErrors, которую следует использовать
                       для интерфейсов 10 Гбит/с или быстрее.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.6, aFrameCheckSequenceErrors."
           ::= { dot3HCStatsEntry 2 }

       dot3HCStatsInternalMacTransmitErrors OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, для которых передача на конкретном
                       интерфейсе привела к отказу в результате внутренней
                       ошибки приема подуровня MAC. Кадр учитывается
                       экземпляром этого объекта лишь в том случае, если
                       он не учтен соответствующим экземпляром объекта
                       dot3StatsLateCollisions, dot3StatsExcessiveCollisions 
                       или dot3StatsCarrierSenseErrors.

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

                       Этот счетчик является 64-битовой версией
                       dot3StatsInternalMacTransmitErrors, которую следует 
                       использовать для интерфейсов 10 Гбит/с или быстрее.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.12, aFramesLostDueToIntMACXmitError."
           ::= { dot3HCStatsEntry 3 }

       dot3HCStatsFrameTooLongs OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, полученных на конкретном интерфейсе
                       с превышением максимально разрешенного размера кадров.

                       Значение, представленное экземпляром этого объекта,
                       инкрементируется при возврате статуса frameTooLong
                       сервисом MAC подуровню LLC (или другому пользователю 
                       MAC). Принятые кадры, для которых наблюдается
                       множество ошибок, в соответствии с соглашениями
                       IEEE 802.3 Layer Management учитываются исключительно
                       по статусу ошибок, представленных подуровню LLC.

                       Этот счетчик является 64-битовой версией
                       dot3StatsFrameTooLongs, которую следует 
                       использовать для интерфейсов 10 Гбит/с или быстрее.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.25, aFrameTooLongErrors."
           ::= { dot3HCStatsEntry 4 }

       dot3HCStatsInternalMacReceiveErrors OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Число кадров, для который прием на конкретном
                       интерфейсе привел к отказу в результате внутренней
                       ошибки приема подуровня MAC. Кадр учитывается
                       экземпляром этого объекта лишь в том случае, если
                       он не учтен соответствующим экземпляром объекта
                       dot3StatsFrameTooLongs, dot3StatsAlignmentErrors 
                       или dot3StatsFCSErrors.

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

                       Этот счетчик является 64-битовой версией
                       dot3StatsInternalMacReceiveErrors, которую следует 
                       использовать для интерфейсов 10 Гбит/с или быстрее.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.15, aFramesLostDueToIntMACRcvError."
           ::= { dot3HCStatsEntry 5 }

       dot3HCStatsSymbolErrors OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION "Для интерфейса, работающего со скоростью 100 Мбит/с,
                       число некорректных символов данных при наличии несущей.

                       Для интерфейса, работающего в полудуплексном режиме 
                       со скоростью 1000 Мбит/с, число случаев приема сигнала
                       занятости среды в течение интервала времени не меньше
                       slotTime, когда происходило по меньшей мере одно
                       событие, заставляющее PHY указать состояние 
                       'Data reception error' или 'carrier extend error' на GMII.

                       Для интерфейса, работающего в полнодуплексном режиме 
                       со скоростью 1000 Мбит/с, число случаев приема сигнала
                       занятости среды в течение интервала времени не меньше
                       minFrameSize, когда происходило по меньшей мере одно
                       событие, заставляющее PHY указать состояние 
                       'Data reception error' на GMII.

                       Для интерфейса, работающего со скоростью 10 Гбит/с,
                       число случаев приема сигнала  занятости среды в течение
                       интервала времени не меньше minFrameSize, когда
                       происходило по меньшей мере одно, заставляющее
                       PHY указать состояние 'Receive Error' на XGMII.

                       Значение, представленное экземпляром этого объекта,
                       инкрементируется не более одного раза для связанного
                       с несущей события, даже при наличии множества ошибок
                       в одном событии. Счетчик не инкрементируется при 
                       наличии конфликта (collision).

                       Этот счетчик является 64-битовой версией
                       dot3StatsSymbolErrors, которую следует 
                       использовать для интерфейсов 10 Гбит/с или быстрее.

                       При повторной инициализации системы управления и в других 
                       случаях, указанных значением ifCounterDiscontinuityTime,
                       могут возникать разрывы в значении этого счетчика."
           REFERENCE   "[IEEE 802.3 Std.], 30.3.2.1.5, aSymbolErrorDuringCarrier."
           ::= { dot3HCStatsEntry 6 }

       --  Тесты 802.3

       dot3Tests   OBJECT IDENTIFIER ::= { dot3 6 }

       dot3Errors  OBJECT IDENTIFIER ::= { dot3 7 }

       --  Тест TDR

       dot3TestTdr OBJECT-IDENTITY
           STATUS      deprecated
           DESCRIPTION "******** Это отождествление отменено *******

                       Тест TDR4 относится к интерфейсам Ethernet типов
                       10Base5 и 10Base2. Значение TDR может быть
                       полезно при определении приблизительного расстояния
                       до точки повреждения кабеля. Имеет смысл выполнять
                       этот тест несколько раз для получения более точного
                       значения TDR.

                       Тест TDR возвращает в качестве результата временной
                       интервал в периодах частоты 10 МГц или блоках 100 нсек
                       между началом передачи теста TDR и последующим 
                       обнаружением конфликта или потери (deassertion) несущей.
                       При успешном завершении теста TDR результат
                       сохраняется как значение соответствующего результата
                       в объекте фирменной MIB производителя, а 
                       OBJECT IDENTIFIER этого экземпляра сохраняется
                       в соответствующем экземпляре объекта с результатом
                       теста (тем самым указывается сохранение результата).

                       Это отождествление объекта устарело, поскольку 
                       ifTestTable в IF-MIB была отменена и больше нет
                       стандартного механизма инициирования теста интерфейса.
                       В результате не осталось стандартного способа 
                       использования этого отождествления объекта."
           ::= { dot3Tests 1 }

       -- Loopback-тест

       dot3TestLoopBack OBJECT-IDENTITY
           STATUS      deprecated
           DESCRIPTION "******** Это отождествление отменено *******

                       Этот тест настраивает контроллер MAC и организует
                       внутренний шлейф (петлю) для проверки памяти, пути
                       данных и логики контроллера MAC. Шлейфовый тест
                       может выполняться только для отключенного интерфейса.
                       По завершении теста контроллер MAC следует
                       инициализировать заново для сетевых операций, сохраняя
                       его в состоянии offline.
                       При возникновении ошибки во время теста соответствующий
                       объект результата будет показывать этот отказ.
                       Для обеспечения дополнительной информации о результатах
                       проверки могут использоваться объекты с OBJECT IDENTIFIER
                       dot3ErrorInitError и dot3ErrorLoopbackError, значения
                       которых отражают результат проверки.

                       Это отождествление объекта устарело, поскольку 
                       ifTestTable в IF-MIB признан устаревшим и больше нет
                       стандартного механизма инициирования теста интерфейса.
                       В результате не осталось стандартного способа 
                       использования этого отождествления объекта."
           ::= { dot3Tests 2 }

       dot3ErrorInitError OBJECT-IDENTITY
           STATUS      deprecated
           DESCRIPTION "******** Это отождествление отменено *******

                       Невозможно инициализировать контроллер MAC для теста.

                       Это отождествление объекта устарело, поскольку 
                       ifTestTable в IF-MIB была отменена и больше нет
                       стандартного механизма инициирования теста интерфейса.
                       В результате не осталось стандартного способа 
                       использования этого отождествления объекта."
           ::= { dot3Errors 1 }

       dot3ErrorLoopbackError OBJECT-IDENTITY
           STATUS      deprecated
           DESCRIPTION "******** Это отождествление отменено *******

                       Данные не были получены (или приняты с ошибками)
                       в тесте loopback.

                       Это отождествление объекта устарело, поскольку 
                       ifTestTable в IF-MIB была отменена и больше нет
                       стандартного механизма инициирования теста интерфейса.
                       В результате не осталось стандартного способа 
                       использования этого отождествления объекта."
           ::= { dot3Errors 2 }

       -- { dot3 8 }, дерево dot3ChipSets, если определено в [RFC2666]

       -- информация о соответствии

       etherConformance OBJECT IDENTIFIER ::= { etherMIB 2 }

       etherGroups      OBJECT IDENTIFIER ::= { etherConformance 1 }
       etherCompliances OBJECT IDENTIFIER ::= { etherConformance 2 }

       -- заявления о соответствии

       etherCompliance MODULE-COMPLIANCE
           STATUS      deprecated
           DESCRIPTION "******** Это соответствие отменено ********

                       Заявление о соответствии для элементов управляемой
                       сети с интерфейсами типа Ethernet.

                       Это соответствие заменено dot3Compliance."

           MODULE  -- данный модуль
               MANDATORY-GROUPS { etherStatsGroup }

               GROUP       etherCollisionTableGroup
               DESCRIPTION "Эта группа не обязательна. Она подходит для
                           всех систем с нужными измерителями. Настоятельно
                           рекомендуется реализация таких систем."
           ::= { etherCompliances 1 }

       ether100MbsCompliance MODULE-COMPLIANCE
           STATUS      deprecated
           DESCRIPTION "******** Это соответствие отменено ********

                       Заявление о соответствии для элементов управляемой
                       сети с интерфейсами типа Ethernet 100 Мбит/с.
                       Это соответствие заменено dot3Compliance."

           MODULE  -- данный модуль
               MANDATORY-GROUPS { etherStats100MbsGroup }

               GROUP       etherCollisionTableGroup
               DESCRIPTION "Эта группа не обязательна. Она подходит для
                           всех систем с нужными измерителями. Настоятельно
                           рекомендуется реализация таких систем."
           ::= { etherCompliances 2 }

       dot3Compliance MODULE-COMPLIANCE
           STATUS      deprecated
           DESCRIPTION "******** Это соответствие отменено ********

                       Заявление о соответствии для элементов управляемой
                       сети с интерфейсами типа Ethernet.

                       Это соответствие заменено dot3Compliance2."

           MODULE  -- данный модуль
               MANDATORY-GROUPS { etherStatsBaseGroup }

               GROUP       etherDuplexGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые способны работать
                           в полнодуплексном режиме. Настоятельно
                           рекомендуется для всех интерфейсов
                           типа Ethernet."

               GROUP       etherStatsLowSpeedGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые способны работать
                           со скоростью до 10 Мбит/с в полудуплексном режиме."

               GROUP       etherStatsHighSpeedGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые способны работать
                           со скоростью 100 Мбит/с и выше."

               GROUP       etherControlGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые поддерживают
                           подуровень MAC Control."

               GROUP       etherControlPauseGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые поддерживают
                           функцию MAC Control PAUSE."

               GROUP       etherCollisionTableGroup
               DESCRIPTION "Эта группа не обязательна. Она подходит для
                           всех  интерфейсов типа Ethernet, которые 
                           способны работать в полудуплексном режиме и
                           имеют нужные измерители. Настоятельно рекомендуется
                           реализовать группу во всех системах 
                           с такими интерфейсами."
           ::= { etherCompliances 3 }

           dot3Compliance2 MODULE-COMPLIANCE
               STATUS      current
               DESCRIPTION "Заявление о совместимости для элементов 
                           управляемой сети с интерфейсами типа Ethernet.

                           Отметим, что соответствие с этим модулем MIB
                           требует соответствия с заявлением ifCompliance3
                           MODULE-COMPLIANCE в IF-MIB (RFC2863). Кроме того,
                           этот модуль MIB требует соответствия с заявлением
                           mauModIfCompl3 MODULE-COMPLIANCE в MAU-MIB (RFC3636)."

           MODULE  -- данный модуль
               MANDATORY-GROUPS { etherStatsBaseGroup2 }

               GROUP       etherDuplexGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые способны работать
                           в полнодуплексном режиме.
                           Настоятельно рекомендуется для всех 
                           интерфейсов типа Ethernet."

               GROUP       etherRateControlGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые способны работать
                           со скоростями выше 1000 Мбит/с.
                           Настоятельно рекомендуется для всех 
                           интерфейсов типа Ethernet."

               GROUP       etherStatsLowSpeedGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые способны работать
                           со скоростью до 10 Мбит/с в полудуплексном режиме."

               GROUP       etherStatsHighSpeedGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые способны работать
                           со скоростью 100 Мбит/с и выше."

               GROUP       etherStatsHalfDuplexGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые способны работать
                           в полнодуплексном режиме.

               GROUP       etherHCStatsGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые способны работать
                           со скоростью 10 Гбит/с и выше.
                           Рекомендуется для всех интерфейсов типа
                           Ethernet, способных работать со скоростью 
                           1000 Мбит/с и выше."

               GROUP       etherControlGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые поддерживают подуровень
                           MAC Control."

               GROUP       etherHCControlGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые поддерживают подуровень
                           MAC Control и могут работать со скоростью
                           10 Гбит/с и выше."

               GROUP       etherControlPauseGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые поддерживают функцию
                           MAC Control PAUSE."

               GROUP       etherHCControlPauseGroup
               DESCRIPTION "Эта группа обязательна для всех интерфейсов
                           типа Ethernet, которые поддерживают функцию
                           MAC Control PAUSE и могут работать со скоростью
                           10 Гбит/с и выше."

               GROUP       etherCollisionTableGroup
               DESCRIPTION "Эта группа не обязательна. Она подходит для
                           всех  интерфейсов типа Ethernet, которые 
                           способны работать в полудуплексном режиме и
                           имеют нужные измерители. Настоятельно рекомендуется
                           реализовать группу во всех системах 
                           с такими интерфейсами."
           ::= { etherCompliances 4 }

       -- модули соответствия

       etherStatsGroup OBJECT-GROUP
           OBJECTS     { dot3StatsIndex,
                         dot3StatsAlignmentErrors,
                         dot3StatsFCSErrors,
                         dot3StatsSingleCollisionFrames,
                         dot3StatsMultipleCollisionFrames,
                         dot3StatsSQETestErrors,
                         dot3StatsDeferredTransmissions,
                         dot3StatsLateCollisions,
                         dot3StatsExcessiveCollisions,
                         dot3StatsInternalMacTransmitErrors,
                         dot3StatsCarrierSenseErrors,
                         dot3StatsFrameTooLongs,
                         dot3StatsInternalMacReceiveErrors,
                         dot3StatsEtherChipSet
                       }
           STATUS      deprecated
           DESCRIPTION "********* Эта группа отменена **********

                       Набор объектов, обеспечивающих информацию,
                       применимую ко всем интерфейсам типа Ethernet.

                       Эта группа заменена группами etherStatsBaseGroup и
                       etherStatsLowSpeedGroup."
           ::= { etherGroups 1 }

       etherCollisionTableGroup OBJECT-GROUP
           OBJECTS     { dot3CollFrequencies }
           STATUS      current
           DESCRIPTION "Набор объектов, представляющих гистограмму пакетов,
                       успешно переданных после N конфликтов."
           ::= { etherGroups 2 }

       etherStats100MbsGroup OBJECT-GROUP
           OBJECTS     { dot3StatsIndex,
                         dot3StatsAlignmentErrors,
                         dot3StatsFCSErrors,
                         dot3StatsSingleCollisionFrames,
                         dot3StatsMultipleCollisionFrames,
                         dot3StatsDeferredTransmissions,
                         dot3StatsLateCollisions,
                         dot3StatsExcessiveCollisions,
                         dot3StatsInternalMacTransmitErrors,
                         dot3StatsCarrierSenseErrors,
                         dot3StatsFrameTooLongs,
                         dot3StatsInternalMacReceiveErrors,
                         dot3StatsEtherChipSet,
                         dot3StatsSymbolErrors
                       }
           STATUS      deprecated
           DESCRIPTION "********* Эта группа отменена **********

                       Набор объектов, обеспечивающих информацию, применимую
                       к интерфейсам типа Ethernet 100 Мбит/с.

                       Эта группа объектов заменена группами 
                       etherStatsBaseGroup и etherStatsHighSpeedGroup."
           ::= { etherGroups 3 }

       etherStatsBaseGroup OBJECT-GROUP
           OBJECTS     { dot3StatsIndex,
                         dot3StatsAlignmentErrors,
                         dot3StatsFCSErrors,
                         dot3StatsSingleCollisionFrames,
                         dot3StatsMultipleCollisionFrames,
                         dot3StatsDeferredTransmissions,
                         dot3StatsLateCollisions,
                         dot3StatsExcessiveCollisions,
                         dot3StatsInternalMacTransmitErrors,
                         dot3StatsCarrierSenseErrors,
                         dot3StatsFrameTooLongs,
                         dot3StatsInternalMacReceiveErrors
                       }
           STATUS      deprecated
           DESCRIPTION "********* Эта группа отменена **********

                       Набор объектов, обеспечивающих информацию,
                       применимую ко всем интерфейсам типа Ethernet.

                       Эта группа была заменена группами 
                       etherStatsBaseGroup2 и etherStatsHalfDuplexGroup, 
                       чтобы разделить объекты, которые должны быть 
                       реализованы для всех интерфейсов типа Ethernet,
                       и объекты, которые требуются лишь для интерфейсов,
                       способных работать в полудуплексном режиме."
           ::= { etherGroups 4 }

       etherStatsLowSpeedGroup OBJECT-GROUP
           OBJECTS     { dot3StatsSQETestErrors }
           STATUS      current
           DESCRIPTION "Набор объектов, обеспечивающих информацию,
                       применимую к интерфейсам типа Ethernet, способным
                       работать со скоростью до 10 Мбит/с в полудуплексном режиме."
           ::= { etherGroups 5 }

       etherStatsHighSpeedGroup OBJECT-GROUP
           OBJECTS     { dot3StatsSymbolErrors }
           STATUS      current
           DESCRIPTION "Набор объектов, обеспечивающих информацию,
                       применимую к интерфейсам типа Ethernet, способным
                       работать со скоростью 100 Мбит/с и выше."
           ::= { etherGroups 6 }

       etherDuplexGroup OBJECT-GROUP
           OBJECTS     { dot3StatsDuplexStatus }
           STATUS      current
           DESCRIPTION "Набор объектов, обеспечивающих информацию
                       о режиме дуплекса интерфейсов типа Ethernet."
           ::= { etherGroups 7 }

       etherControlGroup OBJECT-GROUP
           OBJECTS     { dot3ControlFunctionsSupported,
                         dot3ControlInUnknownOpcodes
                       }
           STATUS      current
           DESCRIPTION "Набор объектов, обеспечивающих информацию
                       о подуровне MAC Control интерфейсов типа Ethernet."
           ::= { etherGroups 8 }

       etherControlPauseGroup OBJECT-GROUP
           OBJECTS     { dot3PauseAdminMode,
                         dot3PauseOperMode,
                         dot3InPauseFrames,
                         dot3OutPauseFrames
                       }
           STATUS      current
           DESCRIPTION "Набор объектов, обеспечивающих информацию
                       о функции MAC Control PAUSE и управление ею
                       для function интерфейсов типа Ethernet."
           ::= { etherGroups 9 }

       etherStatsBaseGroup2 OBJECT-GROUP
           OBJECTS     { dot3StatsIndex,
                         dot3StatsAlignmentErrors,
                         dot3StatsFCSErrors,
                         dot3StatsInternalMacTransmitErrors,
                         dot3StatsFrameTooLongs,
                         dot3StatsInternalMacReceiveErrors
                       }
           STATUS      current
           DESCRIPTION "Набор объектов, обеспечивающих информацию,
                       применимую ко всем интерфейсам типа Ethernet."
           ::= { etherGroups 10 }

       etherStatsHalfDuplexGroup OBJECT-GROUP
           OBJECTS     { dot3StatsSingleCollisionFrames,
                         dot3StatsMultipleCollisionFrames,
                         dot3StatsDeferredTransmissions,
                         dot3StatsLateCollisions,
                         dot3StatsExcessiveCollisions,
                         dot3StatsCarrierSenseErrors
                       }
           STATUS      current
           DESCRIPTION "Набор объектов, обеспечивающих информацию, применимую
                       лишь к полудуплексным интерфейсам типа Ethernet."
           ::= { etherGroups 11 }

       etherHCStatsGroup OBJECT-GROUP
           OBJECTS     { dot3HCStatsAlignmentErrors,
                         dot3HCStatsFCSErrors,
                         dot3HCStatsInternalMacTransmitErrors,
                         dot3HCStatsFrameTooLongs,
                         dot3HCStatsInternalMacReceiveErrors,
                         dot3HCStatsSymbolErrors
                       }
           STATUS      current
           DESCRIPTION "Набор объектов, обеспечивающих статистику
                       с большой емкостью для высокоскоростных
                       интерфейсов типа Ethernet."
           ::= { etherGroups 12 }

       etherHCControlGroup OBJECT-GROUP
           OBJECTS     { dot3HCControlInUnknownOpcodes }
           STATUS      current
           DESCRIPTION "Набор объектов, обеспечивающих статистику
                       с большой емкостью для подуровня MAC Control 
                       на высокоскоростных интерфейсах типа Ethernet."
           ::= { etherGroups 13 }

       etherHCControlPauseGroup OBJECT-GROUP
           OBJECTS     { dot3HCInPauseFrames,
                         dot3HCOutPauseFrames
                       }
           STATUS      current
           DESCRIPTION "Набор объектов, обеспечивающих статистику
                       с большой емкостью для функции MAC Control PAUSE
                       на высокоскоростных интерфейсах типа Ethernet."
           ::= { etherGroups 14 }

       etherRateControlGroup OBJECT-GROUP
           OBJECTS     { dot3StatsRateControlAbility,
                         dot3StatsRateControlStatus
                       }
           STATUS      current
           DESCRIPTION "Набор объектов, обеспечивающих информацию о
                       функции Rate Control на интерфейсах типа Ethernet."
           ::= { etherGroups 15 }

   END

5. Права интеллектуальной собственности

IETF не занимает какой-либо позиции в отношении действительности или объёма каких-либо прав интеллектуальной собственности или иных прав, которые могут быть заявлены как относящиеся к реализации или применению технологии, описанной в этом документе, или степени, в которой любая лицензия, по которой права могут или не могут быть доступны, не заявляется также применение каких-либо усилий для определения таких прав. Сведения о процедурах IETF в отношении прав в документах, связанных со стандартами, можно найти в BCP-11. Копии раскрытия IPR, предоставленные секретариату IETF, и любые гарантии доступности лицензий, а также результаты попыток получить общую лицензию или право на использование таких прав собственности разработчиками или пользователями этой спецификации, можно получить в IETF Secretariat.

IETF предлагает любой заинтересованной стороне обратить внимание на авторские права, патенты или использование патентов, а также иные права собственности, которые могут потребоваться для реализации этого стандарта. Эту информацию следует направлять исполнительному директоу IETF (Executive Director).

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

Этот документ был подготовлен рабочей группой IETF Ethernet Interfaces and Hub MIB, которой очень помог вклад перечисленных ниже людей.

Ran Atkinson
Mike Ayers
Mike Heard
Jeffrey Johnson
Lynn Kubinec
Kam Lam
Kerry McDonald
Steve McRobert
K.C. Norseth
Dan Romascanu
Randy Presuhn
Andrew Smith
Kaj Tesink
Geoff Thompson

Документ основан на предложенном стандарте Ethernet MIB RFC 2665 [RFC2665] под редакцией John Flick из Hewlett-Packard и Jeffrey Johnson из RedBack Networks, выпущенном рабочей группой Ethernet Interfaces and Hub MIB. В новый документ добавлена поддержка интерфейсов Ethernet 10 Гбит/с, определенных в [IEEE802.3ae].

RFC 2665 основан на предложенном стандарте Ethernet MIB RFC 2358 [RFC2358] под редакцией John Flick из Hewlett-Packard и Jeffrey Johnson из RedBack Networks, выпущенном рабочей группой 802.3 Hub MIB. В документ добавлена поддержка полнодуплексных интерфейсов Ethernet и интерфейсов Ethernet 1000 Мбит/с, описанных в [IEEE802.3].

RFC 2358 почти полностью основан на стандарте Ethernet MIB RFC 1643 [RFC1643] и предложенном стандарте Ethernet MIB с использованием SNMPv2 SMI RFC 1650 [RFC1650], которые выпущены под редакцией Frank Kastenholz из FTP Software рабочей группой Interfaces MIB. RFC 2358 добавил поддержку интерфейсов Ethernet 100 Мбит/с.

RFC 1643 и RFC 1650 основаны на проекте стандарта Ethernet MIB RFC 1398 [RFC1398] под редакцией Frank Kastenholz, выпущенном рабочей группой Ethernet MIB.

RFC 1398 основан на предложенном стандарте Ethernet MIB RFC 1284 [RFC1284] под редакцией John Cook из Chipcom, выпущенном рабочей группой Transmission MIB. Группа Ethernet MIB обобщила опыт применения переменных RFC 1284, опубликовав его в RFC 1369 [RFC1369], и использовала для разработки этой обновленной базы MIB.

RFC 1284 основан на документе, написанном Frank Kastenholz (тогда из Interlan), под названием «IEEE 802.3 Layer Management Draft M compatible MIB for TCP/IP Networks» [KASTEN]. Этот документ был слегка переработан сначала рабочей группой SNMP, а затем группой Transmission с учетом текущих соглашений для определения объектов интерфейсов MIB. James Davin из MIT Laboratory for Computer Science и Keith McCloghrie из Hughes LAN Systems приняли участие в подготовке последних вариантов этого документа. Marshall Rose из Performance Systems International, Inc. преобразовал документ в сжатый формат RFC 1212 [RFC1212]. Anil Rijsinghani из DEC предложил текст, более адекватно описывающий тест TDR. Спасибо Frank Kastenholz из Interlan и Louis Steinberg из IBM за их эксперименты.

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

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

[RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, «Structure of Management Information Version 2 (SMIv2)», STD 58, RFC 2578, April 1999.

[RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, «Textual Conventions for SMIv2», STD 58, RFC 2579, April 1999.

[RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, «Conformance Statements for SMIv2», STD 58, RFC 2580, April 1999.

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

[IEEE802.3] IEEE, IEEE Std 802.3, 2002 Edition: «Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications», March 2002.

[IEEE802.3ae] IEEE, IEEE Std 802.3ae-2002, «Amendment: Media Access Control (MAC) Parameters, Physical Layers, and Management Parameters for 10 Gb/s Operation», August, 2002.

[RFC3636] Flick, J., «Definitions of Managed Objects for IEEE 802.3 Medium Attachment Units (MAUs) using SMIv2», RFC 36365, September 2003.

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

[RFC1212] Rose, M. and K. McCloghrie, Editors, «Concise MIB Definitions», STD 16, RFC 1212, March 1991.

[RFC1213] McCloghrie, K. and M. Rose, Editors, «Management Information Base for Network Management of TCP/IP-based internets: MIB-II», STD 17, RFC 1213, March 1991.

[RFC1284] Cook, J., «Definitions of Managed Objects for Ethernet-Like Interface Types», RFC 1284, December 1991.

[RFC1369] Kastenholz, F., «Implementation Notes and Experience for The Internet Ethernet MIB», RFC 1369, October 1992.

[RFC1398] Kastenholz, F., «Definitions of Managed Objects for the Ethernet-like Interface Types», RFC 1398, January 1993.

[RFC1643] Kastenholz, F., «Definitions of Managed Objects for the Ethernet-like Interface Types», STD 50, RFC 1643, July 1994.

[RFC1650] Kastenholz, F., «Definitions of Managed Objects for the Ethernet-like Interface Types using SMIv2», RFC 1650, August 1994.

[RFC2358] Flick, J. and J. Johnson, «Definitions of Managed Objects for the Ethernet-like Interface Types», RFC 2358, June 1998.

[RFC2665] Flick, J. and J. Johnson, «Definitions of Managed Objects for the Ethernet-like Interface Types», RFC 2665, August 1999.

[RFC2666] Flick, J., «Definitions of Object Identifiers for Identifying Ethernet Chip Sets», RFC 2666, August 1999.

[RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart, «Introduction and Applicability Statements for Internet-Standard Network Management Framework», RFC 3410, December 2002.

[CASE] Case, J., and C. Partridge, «Case Diagrams: A First Step to Diagrammed Management Information Bases», Computer Communications Review, 19(1):13-16, January 1989.

[RFC3637] Heard, C., «Definitions of Managed Objects for the Ethernet WAN Interface Sublayer», RFC 3637, September 2003.

[KASTEN] Kastenholz, F., «IEEE 802.3 Layer Management Draft compatible MIB for TCP/IP Networks», electronic mail message to mib-wg@nnsc.nsf.net, 9 June 1989.

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

Один из объектов, определенных в данной MIB, разрешает доступ в MAX-ACCESS для чтения и записи. Этот объект dot3PauseAdminMode может быть использован для изменения конфигурации управления потоком данных, что может приводить к отбрасыванию пакетов или для передачи пакетов управления потоком в каналы, где партнеры не будут их понимать. Любое из этих действий будет негативно влиять на работу сети.

Такие объекты могут быть уязвимыми в некоторых сетевых средах. Поддержка операций SET в небезопасной среде без достаточно защиты может оказать негативное влияние на работу сети.

Некоторые из считываемых объектов в этом модуле MIB (т. е., объекты, у которых MAX-ACCESS отличается от not-accessible) могут оказаться уязвимыми в некоторых сетевых средах. В частности, объект dot3StatsEtherChipSet во многих средах требует деликатного отношения, поскольку он позволяет атакующему получить информацию об используемом в сети оборудовании. Отметим, что этот объект признан устаревшим, однако некоторые реализации могут поддерживать его для совместимости со старыми версиями.

Большинство объектов в данном модуле MIB содержит статистическую информацию о конкретных сетевых соединениях. В некоторых сетевых средах такая информация может быть в той или иной степени конфиденциальной.

Таким образом, важно контролировать даже доступ GET и/или NOTIFY к этим объектам и по возможности шифровать значения объектов при их передаче через сеть по протоколу SNMP.

Протокол SNMP до версии SNMPv3 не обеспечивает адекватной защиты. Даже в защищенной сети (например, с помощью IPSec) нет возможности персонально контролировать доступ GET/SET (чтение, изменение, создание, удаление) к объектам данного модуля MIB.

Разработчикам рекомендуется рассмотреть функции защиты, обеспечиваемые SNMPv3 (см. раздел 8 [RFC3410]), включая полную поддержку криптографических механизмов SNMPv3 (для аутентификации и конфиденциальности).

Более того, развертывание версий SNMP до SNMPv3 не рекомендуется. Вместо этого рекомендуется использовать SNMPv3 и включать криптографическую защиту. Тогда на абонентов/операторов ложится ответственность за обеспечение того, чтобы объект SNMP, предоставляющий доступ к экземпляру этого модуля MIB, был правильно настроен для предоставления доступа к объектам лишь тем элементам (пользователям), которые имеют легитимные права выполнять операции GET или SET (изменить, создать, удалить).

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

В этом документе не определено нового пространства имен для администрирования IANA. Однако в параграфе 3.2.4 указано, что некоторые значения в текущем пространстве имен, администрируемом IANA, устарели или отменены. В частности, указанные ниже перечисляемые значения в IANAifType TEXTUAL-CONVENTION модуля IANAifType-MIB имеют комментарий ASN.1, добавленный IANA, с указанием того, что они отменены.

  • iso88032Csmacd(7)

  • starLan(11)

Кроме того, перечисленные ниже значения имеют добавленный IANA комментарий ASN.1, говорящий, что они устарели.

  • fastEther(62)

  • fastEtherFX(69)

  • gigabitEthernet(117)

Во всех случаях комментарий ASN.1 указывает, что следует использовать ethernetCsmacd(6) вместо этих значений.

A. Список изменений

A.1. Отличия от RFC 2665

В этом параграфе приведены отличия данного документа от RFC 2665.

  1. Обновлены ссылки на стандарт IEEE 802.3 путем указания редакции 2002 года.

  2. Добавлена ссылка на IEEE 802.3ae-2002.

  3. Обновлен адрес электронной почты рабочей группы.

  4. Обновлены описания (DESCRIPTION) с учетом поведения интерфейсов 10 Гбит/с для объектов dot3StatsAlignmentErrors и dot3StatsSymbolErrors.

  5. Для управления функцией Rate Control в WAN-приложениях Ethernet добавлены объекты dot3StatsRateControlAbility и dot3StatsRateControlStatus.

  6. Для поддержки высокоскоростных интерфейсов Ethernet добавлены 64-битовые счетчики dot3HCControlInUnknownOpcodes, dot3HCInPauseFrames, dot3HCOutPauseFrames, dot3HCStatsAlignmentErrors, dot3HCStatsFCSErrors, dot3HCStatsFrameTooLongs, dot3HCStatsInternalMacTransmitErrors, dot3HCStatsInternalMacReceiveErrors, dot3HCStatsSymbolErrors

  7. Добавлены группы объектов и соответствия с учетом новых объектов.

  8. Обновлено определение MODULE-IDENTITY с учетом изменений в MIB.

  9. Разъяснено использование различных значений ifType для Ethernet с целью подчеркнуть необходимость использовать ethernetCsmacd для всех типов Ethernet.

  10. Внесены некоторые разъяснения в раздел отображения объектов Interface MIB на Ethernet.

  11. Обновлен шаблон MIB в разделе 2 до последнего утвержденного текста.

A.2. Отличия RFC 2665 от RFC 2358

Ниже перечислены отличия RFC 2665 от RFC 2358.

  1. Раздел 2 заменен текущим шаблоном схемы управления SNMP.

  2. Разъяснено отображение ifMtu.

  3. Разъяснены связи между счетчиками октетов IEEE 802.3 и IF-MIB.

  4. Были обновлены ссылки (REFERENCE) с учетом действительных объектов управления IEEE 802.3 для каждого объекта MIB, который основан на таком объекте IEEE 802.3.

  5. С учетом поведения интерфейсов в полнодуплексном режиме были обновлены описания (DESCRIPTION) для dot3StatsSingleCollisionFrames, dot3StatsMultipleCollisionFrames, dot3StatsSQETestErrors, dot3StatsDeferredTransmissions, dot3StatsLateCollisions, dot3StatsExcessiveCollisions, dot3StatsCarrierSenseErrors, dot3CollFrequencies.

  6. С учетом поведения полнодуплексных интерфейсов и интерфейсов 1000 Мбит/с были обновлены описания (DESCRIPTION) для dot3StatsAlignmentErrors, dot3StatsFCSErrors, dot3StatsSQETestErrors, dot3StatsLateCollisions, dot3StatsSymbolErrors.

  7. Добавлены таблицы dot3ControlTable и dot3PauseTable.

  8. Добавлен объект dot3StatsDuplexStatus.

  9. Изменена структура групп объектов и соответствий.

  10. Объект dot3StatsEtherChipSet отменен.

  11. Объект dot3ChipSets перемещен в отдельный документ.

A.3. Отличия RFC 2358 от RFC 1650

Ниже перечислены отличия RFC 2358 от RFC 1650.

  1. Обновлено определение MODULE-IDENTITY с учетом изменений в MIB.

  2. Добавлен объект dot3StatsSymbolErrors.

  3. Определение объекта dot3StatsIndex преобразовано для использования макроса SMIv2 OBJECT-TYPE.

  4. Добавлена группа соответствия etherStats100MbsGroup.

  5. Добавлено новое заявление о соответствии ether100MbsCompliance.

  6. Раздел «Благодарности» включает более полную историю создания документа.

  7. Расширено обсуждение ifType.

  8. Добавлен параграф с отображениями объектов Interfaces MIB.

  9. Добавлен параграф, описывающий связь данной MIB с MAU MIB.

  10. Добавлен параграф, описывающий сопоставление объектов управления IEEE 802.3 с данной MIB и Interfaces MIB.

  11. Преобразованы dot3Tests, dot3Errors и dot3ChipSets OID для использования макроса OBJECT-IDENTITY.

  12. Добавлен список зарегистрированных dot3ChipSets.

  13. Добавлена информация об интеллектуальной собственности и авторских правах в соответствии с RFC 2026.

Адрес автора

John Flick

Hewlett-Packard Company

8000 Foothills Blvd. M/S 5557

Roseville, CA 95747-5557

Phone: +1 916 785 4018

EMail: johnf@rose.hp.com


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

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

nmalykh@gmail.com

Полное заявления авторских прав

Copyright (C) The Internet Society (2003). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


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

2Structure of Management Information.

3Отметим, что счетчики октетов в IF-MIB не точно соответствуют счетчикам октетов IEEE 802.3 (см. параграф 3.2.5).

4Time-Domain Reflectometry

5Документ заменен RFC 4836. Прим. перев.

 

Рубрика: RFC | Комментарии к записи RFC 3635 Definitions of Managed Objects for the Ethernet-like Interface Types отключены