RFC 4724 Graceful Restart Mechanism for BGP

Network Working Group                                          S. Sangli
Request for Comments: 4724                                       E. Chen
Category: Standards Track                                  Cisco Systems
                                                             R. Fernando
                                                              J. Scudder
                                                              Y. Rekhter
                                                        Juniper Networks
                                                            January 2007

Graceful Restart Mechanism for BGP

Механизм аккуратного перезапуска для BGP

PDF

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

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

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

Copyright (C) The IETF Trust (2007).

Аннотация

Этот документ описывает механизм для BGP который поможет минимизировать негативное влияние перезапуска BGP на маршрутизацию. Задан маркер End-of-RIB, который может применяться для передачи информации о схождении маршрутов. Определена новая возможность BGP — Graceful Restart Capability, позволяющая узлу BGP указать свою способность сохранять состояние пересылки при перезапуске BGP. Кроме того, очерчены процедуры для временного сохранения маршрутной информации при разрыве и повторной организации сессии TCP.

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

1. Введение

Обычно при перезапуске маршрутизатора BGP все его партнеры BGP видят разрыв и последующее восстановление сессии. Такой переход «вкл. — выкл.» приводит к перебою маршрутизации (routing flap) и вызывает пересчет маршрутов BGP, генерацию маршрутных обновлений BGP и ненужные сбои в таблицах пересылки, которые могут охватывать множество доменов маршрутизации. Такие перебои в маршрутизации могут создавать временные «черные дыры» и петли в маршрутизации. Кроме того, это ведет к расходу ресурсов на уровне управления затронутых перебоем маршрутизаторов. В результате снижается общая производительность сети.

В этом документе описан механизм для BGP, который поможет минимизировать негативное влияние перезапуска BGP на маршрутизацию. Задан маркер End-of-RIB, который может служить для передачи информации о схождении маршрутов. Определена новая возможность BGP — Graceful Restart Capability, позволяющая узлу BGP указать свою способность сохранять состояние пересылки в процессе перезапуска BGP. Кроме того, очерчены процедуры для временного сохранения маршрутной информации при разрыве и повторной организации сессии TCP.

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

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

2. Маркер для End-of-RIB

Сообщение UPDATE без доступных NLRI1 и с пустым NLRI отзыва задано в качестве маркера End-of-RIB2, который может использоваться узлом BGP для индикации его партнеру завершения начального обновления маршрутов после организации сессии. Для семейства индивидуальных адресов IPv4 маркер End-of-RIB является сообщением UPDATE с минимальным размером [BGP-4]. Для других семейств адресов это будет сообщение UPDATE, содержащее лишь атрибут MP_UNREACH_NLRI [BGP-MP] без отзываемых маршрутов для данной пары <AFI, SAFI>.

Хотя маркер End-of-RIB задан для «аккуратного перезапуска» BGP, отмечено, что генерация такого маркера при завершении начального обновления будет полезна для схождения маршрутов в общем случае, поэтому такая практика рекомендуется.

Кроме того, для схождения маршрутов было бы лучше, если бы узел BGP мог заранее указать своему партнеру, что он будет генерировать маркер End-of-RIB, независимо от способности сохранять свое состояние пересылки при перезапуске BGP. Это может быть достигнуто с помощью возможности Graceful Restart Capability, описанной ниже.

3. Возможность аккуратного перезапуска

Graceful Restart Capability является новой возможностью BGP [BGP-CAP], которая позволяет узлу BGP указать свою способность сохранять состояние пересылки при перезапуске BGP. Она может применяться также для передачи партнеру своего намерения создавать маркер End-of-RIB при завершении начального обновления маршрутов.

Определение возможности приведено ниже.

Capability code

64

Capability length

переменная

Capability value

Поля Restart Flags и Restart Time, а также от 0 до 63 блоков <AFI, SAFI, Flags for address family>, как показано ниже.

+--------------------------------------------------+
| Restart Flags (4 бита)                           |
+--------------------------------------------------+
| Restart Time in seconds (12 битов)               |
+--------------------------------------------------+
| Address Family Identifier (16 битов)             |
+--------------------------------------------------+
| Subsequent Address Family Identifier (8 битов)   |
+--------------------------------------------------+
| Flags for Address Family (8 битов)               |
+--------------------------------------------------+
| ...                                              |
+--------------------------------------------------+
| Address Family Identifier (16 битов)             |
+--------------------------------------------------+
| Subsequent Address Family Identifier (8 битов)   |
+--------------------------------------------------+
| Flags for Address Family (8 битов)               |
+--------------------------------------------------+

Ниже описаны поля значения Capability.

Restart Flags

Это поле содержит флаги, относящиеся к перезапуску.

 0 1 2 3
+-+-+-+-+
|R|Resv.|
+-+-+-+-+

Старший бит определен как флаг перезапуска (Restart State — R), который может применяться для предотвращения возможного «зависания», вызванного ожиданием маркера End-of-RIB при перезапуске множества связанных между собой узлов BGP. Установленный (1) флаг указывает, что узел BGP был перезапущен и его партнерам недопустимо ждать маркера End-of-RIB перед анонсированием узлу маршрутной информации.

Оставшиеся биты являются резервными и должны сбрасываться (0) при передаче и игнорироваться на приеме.

Restart Time

Оценка времени (в секундах) ожидания восстановления сессии BGP после перезапуска. Это может применяться для ускорения схождения маршрутов у партнера, если узел BGP не возвращается после перезапуска.

Address Family Identifier (AFI), Subsequent Address Family Identifier (SAFI)

Комбинация AFI и SAFI указывает, что Graceful Restart поддерживается для маршрутов с данными семействами адресов. Маршруты можно связать с определенными AFI и SAFI явно путем кодирования [BGP-MP] или неявно указать <AFI=IPv4, SAFI=Unicast> путем кодирования [BGP-4].

Flags for Address Family

Это поле содержит флаги, относящиеся к маршрутами, которые будут анонсироваться с данными AFI и SAFI.

 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|F|   Reserved  |
+-+-+-+-+-+-+-+-+

Старший бит определен в качестве флага состояния пересылки (Forwarding State — F), который позволяет указать, сохранено ли состояние пересылки для маршрутов, анонсированных с указанными AFI и SAFI, при предшествующем перезапуске BGP. Установленное (1) значение говорит о сохранении состояния пересылки.

Оставшиеся биты являются резервными и должны сбрасываться (0) при передаче и игнорироваться на приеме.

Когда отправитель этой возможности не включает в анонс <AFI, SAFI>, это означает, что он не может сохранить состояние пересылки в при перезапуске BGP, но поддерживает процедуры, определенные в параграфе 4.2. В таких случаях указанное отправителем значение Restart Time не имеет реального смысла.

Узлу BGP недопустимо включать более одного экземпляра Graceful Restart Capability в свой анонс возможностей [BGP-CAP]. При наличии нескольких экземпляров Graceful Restart Capability в анонсе принимающая сторона должна игнорировать все экземпляры Graceful Restart Capability, кроме последнего.

Включение <AFI=IPv4, SAFI=unicast> в Graceful Restart Capability не подразумевает, что маршрутные данные для индивидуальных адресов IPv4 следует передавать с использованием расширений [BGP-MP] — она может передаваться в поле NLRI сообщения BGP UPDATE.

4. Операции

Узел BGP может анонсировать Graceful Restart Capability для семейства адресов своему партнеру, если он может сохранять свое состояние пересылки для этого семейства адресов при перезапуске BGP. Но даже при неспособности узла сохранить состояние пересылки при перезапуске BGP ему рекомендуется анонсировать своему партнеру Graceful Restart Capability без включения в нее <AFI, SAFI>. Для этого имеются две причины. Во-первых, это показывает намерение узла генерировать маркер End-of-RIB при завершении начального обновления маршрутов, что в общем случае полезно для схождения маршрутов. Во-вторых, это указывает поддержку партнеров, которые хотят использовать «аккуратный перезапуск» (graceful restart).

Маркер End-of-RIB должен передаваться узлом BGP его партнеру после завершения начального обновления маршрутов (включая случай отсутствия обновлений) для семейства адресов после организации сессии BGP.

Следует отметить, что при разрыве сессии TCP в результате приема или передачи сообщения BGP NOTIFICATION должны выполняться обычные процедуры BGP.

Предлагается использовать по умолчанию значение Restart Time, не превышающее HOLDTIME из сообщения OPEN.

Далее «перезапускаемым узлом» (Restarting Speaker) называется узел, на котором перезапускается BGP, а «принимающим узлом» (Receiving Speaker) называется партнер перезапускающегося узла.

Следует помнить, что Graceful Restart Capability для семейства адресов анонсируется перезапускаемым узлом и воспринимается принимающим узлом, а между этими узлами имеется сессия BGP. Ниже подробно рассматриваются процедуры, которым должны следовать перезапускаемые и принимающий узел после начала перезапуска.

4.1. Процедуры для перезапускаемого узла

При перезапуске Restarting Speaker должен (по возможности) сохранить состояние пересылки для маршрутов BGP в Loc-RIB и должен отметить его как «замороженное» (stale). Во время пересылки недопустимо отличать «замороженную» информацию от остальной.

Для восстановления сессии с партнером перезапускаемый узел должен установить бит Restart State в Graceful Restart Capability сообщения OPEN. Пока это не разрешено конфигурацией, бит Forwarding State для семейства адресов может устанавливаться лишь в случаях, когда состояние пересылки реально сохранено при перезапуске.

После восстановления сессии Restarting Speaker будет получать и обрабатывать сообщения BGP от своих партнеров. Однако он должен отложить выбор маршрутов для семейства адресов, пока (a) не получит маркеры End-of-RIB от всех партнеров (исключая установивших бит Restart State в переданной возможности и не передавших возможность аккуратного перезапуска) или (b) не завершится отсчет таймера Selection_Deferral_Timer (см. ниже). Следует отметить, что до выбора маршрутов узел не будет иметь маршрутов для анонсирования своим партнерам и обновления состояния пересылки.

При одновременном перезапуске IGP3 и BGP может быть полезно дождаться схождения IGP перед выбором маршрутов BGP.

После выбора маршрутов узлом BGP состояние пересылки узла должно быть обновлено и вся «замороженная» ранее информация должна быть удалена. После этого можно анонсировать партнерам Adj-RIB-Out. По завершении начального обновления для семейства адресов (включая отсутствие обновлений) должен передаваться маркер End-of-RIB.

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

Если хочется применять Graceful Restart только при запланированном перезапуске (а не при каждом), одним из способов является установка бита Forwarding State (1) после запланированного перезапуска и сброс (0) в иных случаях. Другие варианты решения этой задачи выходят за рамки документа.

4.2. Процедуры для принимающего узла

При перезапуске Restarting Speaker принимающий узел не всегда может определить разрыв сессии TCP с перезапускаемым узлом. Это зависит от реализации TCP, использования [BGP-AUTH] и конкретных условий перезапуска. Если разрыв сессии TCP не обнаружен, узел должен считать последующую попытку организации сессии указанием разрыва прежней сессии TCP и действовать подобающим образом (при получении Graceful Restart Capability от партнера). Описание поведения в терминах машины конечных состояний дано в разделе 54.

«Подобающие действия» в этом контексте означают, что узел должен закрыть прежнюю сессию TCP и сохранить новую. Отметим, что это поведение отличается от принятого по умолчанию в параграфе 6.8 [BGP-4]. Поскольку прежнее соединение считается разорванным, передавать сообщение NOTIFICATION не следует — просто закрывается сессия TCP.

Когда Receiving Speaker обнаруживает разрыв соединения TCP для сессии BGP с партнером, анонсировавшим Graceful Restart Capability, он должен сохранить полученные от партнера маршруты для всех семейств адресов, которые были получены в Graceful Restart Capability, и должен пометить их как «замороженные». При обработке последующих перезапусков маршруты (от партнера), помеченные ранее как «замороженные», должны быть удалены. Маршрутизатору недопустимо при пересылке отличать «замороженную» маршрутную информацию от другой.

В восстановленной сессии принимающему узлу недопустимо устанавливать бит Restart State возможности Graceful Restart Capability в сообщении OPEN, если сам этот узел не перезапускался. Наличие и значение бита Forwarding State для семейства адресов зависит от реального состояния пересылки и конфигурации.

Если сессия не была восстановлена с течение интервала Restart Time, ранее анонсированного партнером, принимающий узел должен удалить все «замороженные» маршруты от этого партнера.

Узел BGP может иметь тот или иной способ проверки жизнеспособности состояния пересылки своего партнера, например с помощью [BFD]5 или данных мониторинга на канальном уровне. Детали таких механизмов выходят за рамки этого документа. Если нежизнеспособность состояния пересылки партнера будет определена до восстановления сессии, узел может удалить все «замороженные» маршруты от этого партнера.

Если после восстановления сессии бит Forwarding State для конкретного семейства адресов не установлен во вновь полученной возможности Graceful Restart Capability, конкретное семейство адресов не включено в Graceful Restart Capability или сама эта возможность не получена в восстановленной сессии, Receiving Speaker должен незамедлительно удалить все «замороженные» маршруты от партнера для этого семейства адресов.

Принимающий узел должен передать своему партнеру маркер End-of-RIB по завершении начального обновления для семейства адресов (включая отсутствие обновлений).

Принимающий узел должен заменить «замороженные» маршруты полученными от партнера обновлениями. После получения от партнера маркера End-of-RIB для семейства адресов принимающий узел должен незамедлительно удалить все маршруты от партнера, помеченные как «замороженные» для семейства адресов.

Для установки верхней границы времени сохранения «замороженных» маршрутов реализация может поддерживать (настраиваемый) таймер.

5. Изменения в конечном автомате  BGP

Как отмечено в параграфе «4.2. Процедуры для принимающего узла», этот документ меняет конечный автомат  BGP.

Конкретные изменения, вносимые в параграф 8.2.2 [BGP-4] приведены ниже.

Состояние Idle

Текст:

  • инициализировать все ресурсы BGP для соединения с партнером;

Заменяется текстом:

  • инициализировать все ресурсы BGP для соединения с партнером, кроме ресурсов, требуемых для сохранения маршрутов в соответствии с параграфом «4.2. Процедуры для принимающего узла» данного документа;

Состояние Established

Текст:

В ответ на индикацию завершения организации соединения TCP (Событие 16 или 17) следует отслеживать второе соединение, пока не будет передано сообщение OPEN.

Заменяется текстом:

Если возможность Graceful Restart Capability с одним или несколькими AFI/SAFI не была получена для этой сессии, в ответ на индикацию завершения организации соединения TCP (Событие 16 или 17) нужно отслеживать второе соединение, пока не будет передано сообщение OPEN.

Однако если в сессии была получена возможность Graceful Restart Capability с одним или несколькими AFI/SAFI, в ответ на событие 16 или 17 локальная система будет:

  • сохранять все маршруты, связанные с соединением, в соответствии с параграфом «4.2. Процедуры для принимающего узла» данного документа;

  • освобождать все остальные ресурсы BGP;

  • сбрасывать соединение TCP, связанное с организованной (ESTABLISHED) сессией,

  • инициализировать все ресурсы BGP для соединения с партнером, кроме ресурсов, требуемых для сохранения маршрутов в соответствии с параграфом «4.2. Процедуры для принимающего узла» данного документа;

  • устанавливать ConnectRetryTimer = 0;

  • запускать таймер ConnectRetryTimer с начальным значением;

  • переходить в состояние Connect.

Текст:

Если локальная система получает сообщение NOTIFICATION (Событие 24 или 25) или сигнал TcpConnectionFails (Событие 18) от нижележащего уровня TCP, она будет:

  • устанавливать ConnectRetryTimer = 0;

  • удалять все маршруты, связанные с соединением;

  • освобождать все ресурсы BGP;

  • сбрасывать соединение TCP;

  • увеличивать значение ConnectRetryCounter на 1;

  • переходить в состояние Idle.

Заменяется текстом:

Если локальная система получает сообщение NOTIFICATION (Событие 24 или 25) или сигнал TcpConnectionFails (Событие 18) от нижележащего уровня TCP, а возможность Graceful Restart с одним или множеством AFI/SAFI не была получена в этой сессии, локальная система будет:

  • устанавливать ConnectRetryTimer = 0;

  • удалять все маршруты, связанные с соединением;

  • освобождать все ресурсы BGP;

  • сбрасывать соединение TCP;

  • увеличивать значение ConnectRetryCounter на 1;

  • переходить в состояние Idle.

Однако если локальная система получает TcpConnectionFails (Событие 18) от нижележащего TCP и возможность Graceful Restart Capability с одним или несколькими AFI/SAFI была получена в этой сессии, локальная система будет:

  • устанавливать ConnectRetryTimer = 0;

  • сохранять все маршруты, связанные с соединением, в соответствии с параграфом «4.2. Процедуры для принимающего узла» данного документа;

  • освобождать все ресурсы BGP;

  • сбрасывать соединение TCP;

  • увеличивать значение ConnectRetryCounter на 1;

  • переходить в состояние Idle.

6. Вопросы развертывания

Хотя описанные здесь процедуры помогают минимизировать влияние маршрутных перебоев, отмечено, что при перезапуске маршрутизатора, поддерживающего BGP Graceful Restart или при перезапуске без сохранения состояния пересылки (например, при сбое питания) возможны временные маршрутные петли или «черные дыры» в сети, если маршрутные данные меняются до того, как вовлеченные маршрутизаторы завершат обновление или схождение маршрутов. Если не все маршрутизаторы IBGP поддерживают Graceful Restart, в зависимости от топологии может увеличиваться вероятность возникновения петель и «черных дыр» при выполнении процедуры Graceful Restart.

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

В заключение следует отметить, что преимущества развертывания BGP Graceful Restart в автономной системе, где протоколы IGP и BGP тесно связаны (т. е. будут перезапускаться совместно), а IGP не имеет возможности, подобной Graceful Restart Capability, снижаются по сравнению с ситуацией, где IGP имеют похожую возможность.

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

Поскольку при использовании этого предложения новое соединение может вызывать разрыв имеющегося, это может «открыть дверь» для атак на отказ служб. Однако уже отмечено, что протокол BGP без проверки подлинности уязвим для атак на службы через атаки на транспорт TCP. Обычно транспорт TCP защищают с помощью [BGP-AUTH]. Такая проверка подлинности будет защищать и от атак на службы путем организации ложных новых соединений.

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

Таким образом, можно считать, что данное предложение не меняет базовую модель (и имеющиеся проблемы) безопасности BGP-4.

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

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

Авторы благодарны Bruce Cole, Lars Eggert, Bill Fenner, Eric Gray, Jeffrey Haas, Sam Hartman, Alvaro Retana, Pekka Savola Naiming Shen, Satinder Singh, Mark Townsley, David Ward, Shane Wright и Alex Zinin за рецензии и замечания.

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

Этот документ определяет новую возможность BGP — Graceful Restart Capability, для которой выделен код 64.

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

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

[BGP-4] Rekhter, Y., Li, T., and S. Hares, «A Border Gateway Protocol 4 (BGP-4)», RFC 4271, January 2006.

[BGP-MP] Bates, T., Rekhter, Y., Chandra, R., and D. Katz, «Multiprotocol Extensions for BGP-4», RFC 2858, June 2000.

[BGP-CAP] Chandra, R. and J. Scudder, «Capabilities Advertisement with BGP-4», RFC 3392, November 2002.

[BGP-AUTH] Heffernan, A., «Protection of BGP Sessions via the TCP MD5 Signature Option», RFC 2385, August 1998.

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

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

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

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

[BFD] Katz, D. and D. Ward, «Bidirectional Forwarding Detection», Work in Progress6.

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

Srihari R. Sangli

Cisco Systems, Inc.

EMail: rsrihari@cisco.com

Yakov Rekhter

Juniper Networks, Inc.

EMail: yakov@juniper.net

Rex Fernando

Juniper Networks, Inc.

EMail: rex@juniper.net

John G. Scudder

Juniper Networks, Inc.

EMail: jgs@juniper.net

Enke Chen

Cisco Systems, Inc.

EMail: enkechen@cisco.com


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

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

nmalykh@protokols.ru

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

Copyright (C) The IETF Trust (2007).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an «AS IS» basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

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

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

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

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

1Network Layer Reachability Information — информация о доступности на сетевом уровне.

2Конец базы маршрутной информации (RIB).

3Interior Gateway Protocol — протокол внутреннего шлюза (маршрутизации).

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

5Bidirectional Forwarding Detection — обнаружение двухсторонней пересылки.

6Опубликовано в RFC 5880. Прим. перев.

Рубрика: RFC | Комментарии к записи RFC 4724 Graceful Restart Mechanism for BGP отключены

RFC 4761 Virtual Private LAN Service (VPLS) Using BGP for Auto-Discovery and Signaling

Network Working Group                                   K. Kompella, Ed.
Request for Comments: 4761                               Y. Rekhter, Ed.
Category: Standards Track                               Juniper Networks
                                                            January 2007

Virtual Private LAN Service (VPLS) Using BGP for Auto-Discovery and Signaling

VPLS с использованием BGP для автоматического обнаружения и сигнализации

PDF

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

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

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

Copyright (C) The IETF Trust (2007).

Замечание IESG

Рабочая группа L2VPN создала два отдельных документа — RFC 4762 и этот документ, в которых реализованы похожие функции на основе разных протоколов сигнализации. Отметим, что оба метода обычно называют VPLS, хотя они отличаются и не совместимы друг с другом.

Аннотация

Услуги VPLS1, называемые также TLS2 и VPSN3, являются полезными предложениями сервис-провайдеров (SP4). Этот сервис предоставляет виртуальную частную сеть (VPN5) L2, однако в случае VPLS пользователи VPN соединяются через «многоточечную» (multipoint) ЛВС Ethernet в отличие от обычных L2 VPN с соединениями «точка-точка».

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

Оглавление

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

1. Введение

Услуги VPLS, называемые также TLS и VPSN, являются полезными предложениями сервис-провайдеров (SP). Виртуальные частные ЛВС (почти) во всех отношениях проявляются для абонентов SP как обычные Ethernet ЛВС. Однако в VPLS абоненты реально не подключены к одной ЛВС и могут быть соединены через городскую или распределенную сеть. По сути, VPLS «склеивает» отдельные ЛВС через сеть с коммутацией пакетов так, что они представляются и функционируют как единая ЛВС [9]. Это обеспечивается за счет встраивания функций обучения, лавинной рассылки и пересылки кадров в контекст псевдопроводов, соединяющих отдельные ЛВС через сеть с коммутацией пакетов.

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

Другие варианты организации сервиса включают [14], где можно создавать L2 VPN с использованием Ethernet для соединения сетей и [13], где можно организовывать соединения Ethernet через сеть с коммутацией пакетов. Однако оба эти варианта предлагают услуги Ethernet «точка-точка». VPLS отличается от них предоставлением многоточечного обслуживания. Механизм организации псевдопроводов для VPLS с использованием протокола распространения меток LDP6 определен в [10].

1.1. Область действия документа

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

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

Описываемый в документе уровень управления использует расширение Multiprotocol BGP [4] для организации сервиса VPLS, т. е. автоматического обнаружения членов VPLS, а также организации и разрыва псевдопроводов, создающих данный экземпляр VPLS. Кроме того, в разделе 3 описана организация VPLS через границы автономных систем (AS7), а также обслуживание многодомных компонент. Использование BGP для уровня управления VPN не ново (см. [14], [6], [11]) и приведенное здесь описание базируется на механизмах, предложенных в работе [6].

Уровень пересылки и действия краевых маршрутизаторов провайдера (PE8), предлагающих услуги VPLS, описаны в разделе 4.

В разделе 5 определено понятие «отвязанной» операции, а также взаимодействия отвязанных и неотвязанных PE. Отвязывание повышает уровень гибкости при развертывании VPLS.

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

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

2. Функциональная модель

                                                   -----
                                                  /  A1 \
    ----                                     ____CE1     |
   /    \          --------       --------  /    |       |
  |  A2 CE2-      /        \     /        PE1     \     /
   \    /   \    /          \___/          | \     -----
    ----     ---PE2                        |  \
                |                          |   \   -----
                |  Сеть сервис-провайдера  |    \ /     \
                |                          |     CE5  A5 |
                |            ___           |   /  \     /
         |----|  \          /   \         PE4_/    -----
         |u-PE|--PE3       /     \       /
         |----|    --------       -------
  ----  /   |    ----
 /    \/    \   /    \        CE = краевое устройство абонента
|  A3 CE3    --CE4 A4 |       PE = краевой маршрутизатор провайдера
 \    /         \    /        u-PE = агрегирование L2
  ----           ----         A<n> = абонентский сайт n

Рисунок 1. Пример VPLS.


Описываемая модель графически представлена на рисунке 1.

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

Терминология похожа на используемую в [6] — сеть сервис-провайдера (SP) с внутренними (P9) и граничными (PE) маршрутизаторами, а также абонентскими краевыми устройствами (CE10). Однако здесь используется дополнительная концепция — u-PE — устройство L2 PE, используемое для агрегирования на канальном уровне (L2), которое описано в разделе 5. Устройства PE и u-PE знают о VPLS (VPLS-aware), т. е. им известно о предлагаемом сервисе VPLS. Термин VE обозначает краевое устройство VPLS, которым может служить PE или u-PE.

Устройства CE (которые могут принадлежать SP или абоненту и управляться им), напротив, ничего не знают о VPLS. CE соединяются с другими CE в рамках VPLS через коммутируемую сеть L2. Это означает, что CE не требуют внесения программных или аппаратных изменений для поддержки VPLS.

Устройство CE может быть соединено с PE или u-PE через коммутаторы L2, которые не знают о VPLS. С точки зрения VPLS такие коммутаторы L2 невидимы и поэтому далее не рассматриваются. Кроме того, u-PE могут подключаться к PE через устройства L2 и L3, как будет описано ниже.

Термин «демультиплексор» обозначает идентификатор в пакете данных, указывающий экземпляр VPLS, к которому относится пакет, а также входной маршрутизатор PE. В этом документе демультиплексором считается метка MPLS.

Термин VPLS обозначает сервис, а также конкретный экземпляр этого сервиса (т. е. эмулируемую ЛВС). Различия определяются контекстом.

2.2. Допущения

Сеть SP представляет собой сеть с коммутацией пакетов. Предполагается полная (логическая) связность между устройствами PE через туннели, в которые инкапсулируются и пересылаются относящиеся к сервису (например, VPLS) пакеты. Это могут быть туннели IP, такие как GRE11 или туннели MPLS, организованные RSVP-TE12 или LDP. Эти туннели организуются независимо от услуг, предлагаемых на их основе. Организация туннелей и сигнализация не рассматриваются в документе.

Лавинная рассылка (flooding) и изучение MAC-адресов (learning), рассмотренные в разделе 4, являются частью сервиса VPLS. Однако эти действия являются «частным делом» устройства SP, т. е. в описанном ниже сервисе VPLS ни одно устройство SP не запрашивает у других лавинной рассылки или изучения MAC-адресов от его имени.

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

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

VPLS представляет собой «услуги ЛВС», где устройства CE, относящиеся к данному экземпляру VPLS V, могут взаимодействовать через сеть SP, как будто они подключены к единой локальной сети. VPLS является «частной» в том смысле, что устройства CE из разных VPLS не могут взаимодействовать. «Виртуальный» характер VPLS заключается в том, что в одной сети с коммутацией пакетов может одновременно существовать множество VPLS.

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

Устройства u-PE взаимодействуют с PE для организации соединений с удаленными PE или u-PE в том же сервисе VPLS. Это взаимодействие происходит на уровне управления.

Устройства PE могут одновременно участвовать в VPLS и IP VPN [6]. Это независимые услуги и данные для каждого типа сервиса хранятся раздельно в NLRI13, имеющих разные идентификаторы семейства адресов (AFI14) и последующего семейства адресов (SAFI15). Следовательно, реализация должна поддерживать свои хранилища маршрутных данных для каждого сервиса. Однако множество экземпляров сервиса может пользоваться одними базовыми туннелями, а для демультиплексирования пакетов разных служб применяются метки VPLS или VPN.

3. Уровень управления

Двумя основными функциями уровня управления VPLS являются автоматическое обнаружение, а также организация и удаление псевдопроводов, составляющих VPLS, часто называемые сигнализацией. Эти функции описаны в параграфах 3.1 и 3.2. Обе эти функции реализуются с помощью одиночных анонсов BGP Update. В параграфе 3.3 более подробно описаны протокольные операции BGP для VPLS. В параграфе 3.4 описана организация псевдопроводов через несколько автономных систем (AS), а в параграфе 3.5 — работа многодомных узлов.

3.1. Автоматическое обнаружение

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

В первом варианте требуется большая работа по настройке конфигурации, поскольку для всех PE данного экземпляра VPLS нужна организация полносвязных (full mesh) соединений (т. е. каждый маршрутизатор PE в данном экземпляре VPLS должен иметь псевдопровод к каждому другому PE в этом экземпляре). Кроме того, при изменении топологии VPLS (например, при добавлении или удалении PE) конфигурацию VPLS требуется менять на всех PE.

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

3.1.1. Функции

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

Устройства u-PE также должны знать, из чего состоит данный экземпляр VPLS, однако некоторые детали им не нужны. Устройство (устройства) PE, к которому подключено устройство u-PE, предоставляет u-PE абстракцию VPLS, как описано в разделе 5.

3.1.2. Спецификация протокола

Описанный здесь механизм автоматического обнаружения основан на работах [14] и [6], он использует расширенные группы BGP [5] для идентификации участников VPLS. В частности, используется группа Route Target, формат которой описан в работе [5]. Семантика применения Route Target описана в [6] и используется для VPLS.

Поскольку предполагается полная связность в VPLS, одного Route Target RT достаточно для данной VPLS V и RT фактически служит идентификатором для VPLS V.

PE анонсирует (обычно с помощью I-BGP) свою принадлежность к VPLS V, указывая свои NLRI для V (см. следующий параграф) с Route Target RT и принимает NLRI от других PE, имеющих Route Target RT. PE анонсирует свой выход из V путем отзыва всех NLRI, анонсированных с Route Target RT.

3.2. Сигнализация

После обнаружения каждая пара устройств PE в составе VPLS должна быть способна организовать (и разорвать) между собой псевдопровод, т. е. анонсировать (и отозвать) демультиплексоры. Этот процесс называется сигнализацией. Сигнализация также служит для передачи некоторых характеристик псевдопроводов, которые PE организует для данного экземпляра VPLS.

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

Использование отдельного сообщения BGP Update для отправки демультиплексора каждому удаленному PE потребует от PE передачи N таких сообщений для N удаленных PE. Описанное здесь решение позволяет PE передать одно (общее) сообщение Update, содержащее демультиплексоры для всех удаленных PE, вместо N отдельных сообщений. Это снижает загрузку уровня управления на исходном PE и узлах BGP Route Reflector, которые могут быть вовлечены в распространение сообщения Update другим PE.

3.2.1. Блоки меток

Для решения задачи вводится понятие блока меток, который определяется базой LB16 и размером VBS VE-блока, представляющего собой множество меток {LB, LB+1, …, LB+VBS-1}. Рассмотрим работу такого блока. Всем PE в данном экземпляре VPLS в процессе настройки присваиваются уникальные идентификаторы VE ID. Устройство PE X, желающее передать обновление VPLS, отправляет один и тот же блок меток всем остальным PE. Каждое принимающее устройство PE выводит метку, предназначенную для PE X, путем добавления своего (уникального) VE ID к базе меток. Таким способом каждое устройство PE получает уникальный демультиплексор для PE X в данном экземпляре VPLS.

Это простое понятие дополняется концепцией смещения VE-блока VBO. Блок меток, определяемый <LB, VBO, VBS>, представляет собой множество {LB+VBO, LB+VBO+1, …, LB+VBO+VBS-1}. Т. е. взамен одного большого блока меток, охватывающего все VE ID в VPLS, можно задать несколько блоков, имеющих разные базы. Это упрощает управление блоками и позволяет PE X аккуратно обрабатывать добавление в VPLS устройства PE, идентификатор VE ID которого не охватывается набором блоков меток, уже анонсированных устройством PE X.

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

3.2.2. VPLS BGP NLRI

Описанные ниже VPLS BGP NLRI с новыми семействами адресов AFI и SAFI (см. [4]) служат для обмена информацией о принадлежности к VPLS и демультиплексорами.

VPLS BGP NLRI включает информационные элементы VE ID, VE Block Offset, VE Block Size и базу меток (LB). Формат VPLS NLRI показан на рисунке 2. AFI представляет собой L2VPN AFI (25), а SAFI — VPLS SAFI (65). Поле Length указывает размер в октетах.

+------------------------------------+
|  Length (2 октета)                 |
+------------------------------------+
|  Route Distinguisher  (8 октетов)  |
+------------------------------------+
|  VE ID (2 октета)                  |
+------------------------------------+
|  VE Block Offset (2 октета)        |
+------------------------------------+
|  VE Block Size (2 октета)          |
+------------------------------------+
|  Label Base (3 октета)             |
+------------------------------------+

Рисунок 2. BGP NLRI для информации VPLS.

Устройство PE, участвующее в VPLS, должно иметь хотя бы один идентификатор VE ID. Если устройство PE является VE, оно обычно имеет один идентификатор VE ID. Если устройство PE подключено к нескольким u-PE, оно будет иметь свой VE ID для каждого u-PE. Оно может иметь дополнительный идентификатор VE ID для себя при работе в качестве VE в данном экземпляре VPLS. Далее мы будем обозначать устройство PE, анонсирующее VPLS NLRI, как PE-a и считать, что оно владеет VE ID V (относящимся к самому PE-a или к устройству u-PE, подключенному к PE-a).

Идентификаторы VE ID обычно назначаются администратором сети. Их область действия ограничивается экземпляром VPLS. Данный идентификатор VE ID следует относить лишь к одному PE, если устройство CE не является многодомным (см. параграф 3.5).

Блок меток представляет собой набор меток демультиплексирования, используемых для связи с данным VE ID. VPLS BGP NLRI с VE ID V, VE Block Offset VBO, VE Block Size VBS, и базой меток LB сообщает партнерам:

блок меток для V — метки от LB до (LB + VBS — 1);

набор удаленного VE для V — от VBO до (VBO + VBS — 1).

Имеется взаимно-однозначное соответствие между набором удаленного VE и блоком меток — VE ID (VBO + n) соответствует метке (LB + n).

3.2.3. Организация и разрыв PW

Пусть PE-a является частью VPLS foo и делает анонсы с VE ID V, VE Block Offset VBO, VE Block Size VBS и базой меток LB. Если PE-b тоже является частью VPLS и имеет VE ID W, PE-b выполняет перечисленные ниже операции.

  1. Проверяется принадлежность W к «набору удаленного VE» устройства PE-a — если VBO <= W < VBO + VBS, W является частью набора удаленного VE для PE-a. В противном случае PE-b игнорирует это сообщение и пропускает остальную часть этой процедуры.

  2. Организуется PW к устройству PE-a. Метка демультиплексора для передачи трафика от PE-b к PE-a рассчитывается как (LB + W — VBO).

  3. Проверяется принадлежность V к «набору удаленного VE», анонсируемому PE-b, т. е. PE-b проверяет, относится ли V к тому или иному набору удаленного VE, который анонсирован PE-b (например, VE Block Offset VBO’, VE Block Size VBS’ и база меток LB’). Если это не так, устройство PE-b должно выполнить новый анонс, как описано в параграфе 3.3.

  4. Организуется PW от PE-a. Метка демультиплексора с которой PE-b следует ожидать трафик от PE-a, рассчитывается как (LB’ + V — VBO’).

Если Y отзывает NLRI для V, используемый X, узел X должен удалить свое окончание псевдопровода между X и Y.

3.2.4. Сигнальные возможности PE

Описанный ниже расширенный атрибут «Layer2 Info Extended Community» используется для передачи сигнальной информации о псевдопроводах, которые будут организованы для данного экземпляра VPLS. Значения для этого атрибута выделяются IANA (в настоящее время используется значение 0x800A). Эта информация включает Encaps Type (тип инкапсуляции в псевдопроводах), Control Flags (данные управления для псевдопроводов) и MTU17 для псевдопроводов.

Encaps Type для VPLS имеет значение 19.

+------------------------------------+
| Extended community type (2 октета) |
+------------------------------------+
|  Encaps Type (1 октет)             |
+------------------------------------+
|  Control Flags (1 октет)           |
+------------------------------------+
|  Layer-2 MTU (2 октета)            |
+------------------------------------+
|  Reserved (2 октета)               |
+------------------------------------+

Рисунок 3. Расширенная группа Layer2 Info.

 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|   MBZ     |C|S|      (MBZ = ДОЛЖНО быть 0)
+-+-+-+-+-+-+-+-+

Рисунок 4. Вектор флагов управления.

Флаги управления показаны на рисунке 4. Биты поля MBZ должны устанавливаться в 0 при передаче, а приемная сторона должна игнорировать эти биты.

C

При установленном (1) флаге слово управления [7] должно присутствовать при передаче пакетов VPLS этому устройству PE, при сброшенном (0) флаге наличие слова управления недопустимо.

S

При установленном (1) флаге передача пакетов VPLS этому устройству PE должна упорядочиваться, при сброшенном (0) флаге упорядочивание недопустимо.

3.3. Работа BGP VPLS

Для создания нового экземпляра VPLS (скажем, VPLS foo) администратор сети должен указать для него RT (например, RT-foo). Это будет использоваться всеми PE для обслуживания VPLS foo. Для настройки данного PE (скажем, PE-a) как участника VPLS foo сетевому администратору нужно лишь выбрать VE ID V для PE-a (если устройство PE-a подключено к u-PE, PE-a может иметь несколько VE ID и указанные ниже действия выполняются для каждого VE ID). Для PE может также указываться обозначение маршрута (RD18), если этого не делать, будет автоматически создано уникальное значение RD для VPLS foo. Предположим, что RD имеет значение RD-foo-a. После этого PE-a создает начальный блок меток и набор удаленного VE для V, определяемый VE Block Offset VBO, VE Block Size VBS и базой меток LB. Этот набор может быть пустым.

Затем PE-a создает VPLS BGP NLRI с RD-foo-a, VE ID V, VE Block Offset VBO, VE Block Size VBS и базой меток LB. К нему устройство присоединяет Layer2 Info Extended Community и RT со значением RT-foo. В качестве BGP Next Hop для этого NLRI устройство указывает себя и анонсирует NLRI своим партнерам. Протоколом сетевого уровня, связанным с сетевым адресом Next Hop для комбинации <AFI=L2VPN AFI, SAFI=VPLS SAFI> является IP, эта привязка требуется разделом 5 в [4]. Если поле Length в Next Hop имеет значение 4, Next Hop содержит адрес IPv4, при Length = 16 — адрес IPv6.

Если PE-a получает от другого PE (скажем, PE-b) анонс VPLS BGP с RT-foo и VE ID W, это говорит PE-a, что PE-b участвует с том же экземпляре VPLS (автоматическое обнаружение). Тогда PE-a организует свою часть псевдопровода VPLS между PE-a и PE-b, используя механизм, описанный в параграфе 3.2. Устройство PE-b аналогичным путем определит участие PE-a в том же экземпляре VPLS и должно организовать свою часть псевдопровода VPLS. Таким образом, сигнализация и организация псевдопровода обеспечиваются с помощью одного сообщения Update.

Если W нет ни в одном наборе удаленного VE, анонсированном PE-a для VE ID V в VPLS foo, PE-b не сможет быть частью псевдопровода к PE-a. Для решения этой проблемы PE-a может отозвать прежний анонс(ы) для VPLS foo и передать новое сообщение Update с большим набором удаленного VE и блоком меток, включающим все VE ID для VPLS foo. Однако это может вызвать прерывание обслуживания. Другим вариантом является создание устройством PE-a нового набора удаленного VE с соответствующим блоком меток и его анонс в новом сообщении Update без отзыва прежних анонсов.

Если конфигурация PE-a меняется с удалением VE ID V из VPLS foo, устройство PE-a должно отозвать все свои анонсы для VPLS foo, содержащие VE ID V. Если все соединения между PE-a и его устройствами CE в VPLS foo отключены (down), PE-a следует отозвать все свои NLRI для VPLS foo или как-то информировать другие PE в VPLS foo о том, что устройство PE-a больше не подключено к своим CE.

3.4. VPLS через множество AS

Как в [14] и [6], описанные выше функции автоматического обнаружения и сигнализации обычно анонсируются через I-BGP. Это предполагает, что все сайты в VPLS подключены к устройствам PE одной автономной системы (AS).

Однако сайты VPLS могут подключаться к PE из разных AS. Это ведет к возникновению двух проблем — (1) между этими PE не будет соединений I-BGP и потребуются другие методы сигнализации через AS, (2) между AS может не быть туннелей PE-PE.

Аналогичная проблема решается в разделе 10 документа [6]. Для решения проблемы (1) предложены 3 метода, каждый из которых имеет аналоги в VPLS через множество AS.

Схема такого сервиса VPLS приведена на рисунке 5.

 __________       ____________       ____________       __________
/          \     /            \     /            \     /          \
            \___/        AS 1  \   /  AS 2        \___/
                                \ /
  +-----+           +-------+    |    +-------+           +-----+
  | PE1 | ---...--- | ASBR1 | ======= | ASBR2 | ---...--- | PE2 |
  +-----+           +-------+    |    +-------+           +-----+
             ___                / \                ___
            /   \              /   \              /   \
\__________/     \____________/     \____________/     \__________/

Рисунок 5. VPLS через множество AS.


Как и в упомянутых выше документах, предлагается три метода сигнализации для VPLS через сети нескольких провайдеров. Метод (a) наиболее прост концептуально и в реализации, он требует соединения Ethernet между AS, а также состояний для уровней данных и управления VPLS на граничных маршрутизаторах AS (ASBR19). Метод (b) требует состояния уровня управления VPLS на ASBR и MPLS для соединений между AS (это не обязательно Ethernet). Для метода (c) требуется MPLS на соединениях AS-AS, но не нужны состояния VPLS на маршрутизаторах ASBR.

3.4.1. Метод (a) — соединения VPLS-VPLS на ASBR

В этом методе граничный маршрутизатор ASBR1 служит в качестве PE для всех VPLS в AS1 и AS, к которым ASBR1 подключен (в данном случае AS2). ASBR в соседней AS (ASBR2) представляется ASBR1 устройством CE для VPLS, которые проходят через AS1 и AS2. Маршрутизатор ASBR2 служит PE для этого экземпляра VPLS с точки зрения AS2 и видит ASBR1 как устройство CE.

Этот метод не требует поддержки MPLS на канале ASBR1-ASBR2, но требует передачи через этот канал трафика Ethernet и наличия отдельного субинтерфейса VLAN для каждого сервиса VPLS, проходящего через канал. Кроме того, от ASBR1 требуется выполнение функций PE (обнаружение, сигнализация, изучение MAC-адресов, лавинная рассылка, инкапсуляция и т. п.) для всех VPLS, проходящих через ASBR1. Это создает значительную нагрузку на уровнях управления и данных в ASBR1, что ограничивает число multi-AS VPLS.

Отметим, что в общем случае между парой AS организуется множество соединений для резервирования. В таких случаях должен применяться протокол STP20 [15] или иные способы обнаружения и предотвращения петель для каждого экземпляра VPLS, проходящего через эти AS, чтобы для каждого экземпляра VPLS могла быть построена топология без петель. Это создает добавочную нагрузку на ASBR и PE, участвующие в таких VPLS, поскольку на устройствах требуется поддерживать алгоритм обнаружения петель для каждого экземпляра VPLS. Решение этого вопроса выходит за рамки документа.

3.4.2. Метод (b) — распространение данных VPLS между ASBR с помощью EBGP

Для этого метода нужно партнерство I-BGP между устройствами PE в AS1 и ASBR1 в AS1 (возможно через рефлектор маршрутов), партнерство E-BGP между ASBR1 и ASBR2 в AS2, а также партнерство I-BGP между ASBR2 и устройствами PE в AS2. В приведенном выше примере PE1 передает маршрутизатору ASBR1 анонс VPLS NLRI с блоком меток, указывая себя в качестве BGP nexthop. ASBR1 передает NLRI маршрутизатору ASBR2 с новым блоком меток и собой в качестве BGP nexthop, а ASBR2 передает NLRI устройству PE2 с новым блоком и собой в качестве nexthop. В результате возникают три туннеля — T1 от PE1 до ASBR1, T2 от ASBR1 до ASBR2 и T3 от ASBR2 до PE2. В каждом туннеле метка VPLS будет использоваться для определения принимающего устройства. Например, меткой VPLS в T1 будет метка из блока, переданного ASBR1 устройству PE1. Маршрутизаторы ASBR отвечают за прием пакетов VPLS, инкапсулированных в туннель и выполнение соответствующих операций замены меток (см. ниже), позволяющих следующему устройству корректно идентифицировать и переслать пакет.

Блок VPLS NLRI, переданный ASBR1 маршрутизатору ASBR2 (и NLRI от ASBR2 к PE2), идентичен VPLS NLRI от PE1 к ASBR1, за исключением блока меток. Точнее, поля Length, Route Distinguisher, VE ID, VE Block Offset и VE Block Size должны совпадать, а Label Base могут различаться. Кроме того, маршрутизатор ASBR1 должен также обновить свой путь пересылки, как описано ниже.

Если LB от PE1 имеет значение L1, Label-block Size — N, LB от ASBR1 — L2, а метка туннеля от ASBR1 к PE1 — T, маршрутизатор ASBR1 должен выполнить для своего пути пересылки следующие операции:

поменять L2 на L1 и втолкнуть T;

поменять L2+1 на L1+1 и втолкнуть T;

…;

поменять L2+N-1 на L1+N-1 и втолкнуть T.

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

Когда устройство PE2 хочет передать пакет VPLS устройству PE1, оно использует VE ID для получения нужной метки VPLS из блока ASBR2 для PE1 и применяет метку туннеля для доступа к ASBR2. Маршрутизатор ASBR2 меняет метку туннеля VPLS на метку от ASBR1, затем ASBR1 меняет метку туннеля VPLS на метку от PE1 и выталкивает метку туннеля для доступа к PE1.

Для этого метода требуется поддержка MPLS на интерфейсе ASBR1-ASBR2, но не требуется Ethernet на канальном уровне. Кроме того, маршрутизаторы ASBR принимают участие в распространении информации VPLS. Однако требования к уровню данных ASBR значительно проще, чем для метода (a) и ограничиваются операциями с метками. Наконец, формирование беспетлевой топологии VPLS осуществляется на уровне маршрутизации путем выбора BGP path и nexthop, поэтому не нужно поддерживать STP для каждого экземпляра VPLS. В результате этот метод обеспечивает более эффективную расширяемость по сравнению с методом (a).

3.4.3. Метод (c) — распространение данных VPLS с помощью Multi-Hop EBGP

В этом методе используется партнерство multi-hop E-BGP между устройствами PE (или, предпочтительно, Route Reflector) в AS1 устройствами PE (или Route Reflector) в AS2. PE1 передает VPLS NLRI с метками и собой в качестве nexthop устройству PE2. При использовании рефлектора маршрутов BGP nexthop не меняется. Это требует наличия туннеля LSP от PE1 до PE2. Такой туннель можно создать как в разделе 10 (c) документа [6] (например, используя E-BGP для обмена маршрутами с метками для loopback-интерфейсов PE).

Когда PE1 хочет передать пакет VPLS устройству PE2, он вталкивает метку VPLS, соответствующую его VE ID в пакет. Затем он выталкивает метку (метки) туннеля для доступа к PE2.

Этот метод не требует информации VPLS (на уровне данных или управления) на ASBR. Маршрутизаторам ASBR нужно лишь организовать туннели LSP между устройствами PE на уровне управления и выполнять операции с метками на уровне данных. Как и в методе (b), формирование беспетлевой топологии VPLS осуществляется на уровне маршрутизации путем выбора пути BGP и nexthop, поэтому не нужно поддерживать STP для каждого экземпляра VPLS. Этот вариант явно обеспечивает лучшую расширяемость среди всех трех методов, представленных здесь.

3.4.4. Назначение VE ID во множестве AS

Чтобы упростить выделение VE ID для VPLS через множество AS, можно задать диапазоны значений для каждой AS. Например, AS1использует VE ID от 1 до 100, AS2 — от 101 до 200 и т. д. При наличии 10 сайтов, подключенных к AS1 и 20 — к AS2, выделенными значениями VE ID могут быть 1-10 и 101 — 120. Это минимизирует число передаваемых VPLS NLRI при обеспечении уникальности VE ID.

Если в приведенном выше примере AS1 требуется больше 100 сайтов, выделенный AS1 диапазон значений будет другим. Единственным предостережением является отсутствие перекрытий между диапазонами VE ID разных AS. Исключением из этого правила являются многодомные подключения, рассматриваемые ниже.

3.5. Многодомные подключения и выбор пути

Зачастую желательно иметь многодомный сайт VPLS, т. е. подключить его ко множеству PE, возможно даже из разных AS. В таких случаях для PE, подключенных к одному сайту, можно задать одно или разные значения VE ID. В последнем случае обязательно использовать протокол STP на устройстве CE, а возможно и на устройствах PE для создания топологии VPLS без петель. Способы реализации этого выходят за рамки документа, однако в остальной части этого параграфа более подробно рассматривается первый вариант. Отметим, что многодомное подключение к SP и протокол STP на устройствах CE могут применяться совместно. Пользователям VPLS рекомендуется применять STP, если устройства CE поддерживают протокол.

Если устройствам PE, подключенным к одному сайту, назначается одинаковый идентификатор VE ID, беспетлевая топология формируется механизмами маршрутизации, в частности, выбором пути BGP. Когда узел BGP получает два эквивалентных NLRI (см. ниже), он применяет стандартные критерии выбора пути (такие, как Local Preference и AS Path Length) для определения нужного NLRI (узел должен выбрать один). Если выбранный блок NLRI позднее отзывается, узел BGP применяет механизм выбора пути к оставшимся эквивалентным VPLS NLRI для выбора другого. Если таких NLRI больше нет, связанная с ними информация о пересылке удаляется.

Два VPLS NLRI считаются эквивалентными с точки зрения выбора пути, если значения Route Distinguisher, VE ID и VE Block Offset у них совпадают. Если двум PE выделено одно значение VE ID в данном экземпляре VPLS, они должны использовать одинаковое значение Route Distinguisher, а также им следует анонсировать один VE Block Size для данного VE Offset.

3.6. Иерархические BGP VPLS

В этом параграфе описано, как можно расширить уровень управления VPLS при использовании BGP. Имеется по меньшей мере три аспекта расширяемости уровня управления.

  1. Уход от требования полносвязных (full mesh) соединений между всеми узлами VPLS BGP.

  2. Ограничение числа сообщений BGP VPLS за счет их передачи лишь заинтересованным узлам BGP.

  3. Упрощение процедур добавления и удаления узлов BGP для VPLS или других приложений.

К счастью, применение BGP для маршрутизации Internet и IP VPN дало несколько хороших решений для этих проблем. Основным вариантом является использование иерархии на основе рефлекторов маршрутов BGP RR21 [8]. Идея заключается в назначении небольшого набора рефлекторов маршрутов, а затем организации сессий BGP между каждым узлом BGP и одним или множеством RR. В этом случае не требуется организации полносвязных соединений между всеми узлами BGP. Если для конкретного провайдера требуется большое число RR, этот метод можно использовать рекурсивно, заменяя полносвязные соединения между всеми RR их соединениями с RR другого уровня. Применение RR решает проблемы 1 и 3.

Важно подчеркнуть, что применение RR для VPLS и VPN полностью относится к уровню управления. RR не создает состояний и требований к пересылке на уровне данных, а также не меняет путей пересылки трафика VPLS. Это отличается от модели иерархического сервиса VPLS, определенной в [10].

Другим следствием такого подхода является отсутствие требования обработки одним набором RR всех сообщений BGP или обработки отдельным RR всех сообщений от данного PE. Можно определить несколько наборов RR, например, один для обработки VPLS, другой для IP VPN, а третий для маршрутизации Internet. Возможно другое разделение, когда то или иное подмножество VPLS и IP VPN обрабатывается одним набором RR, а второе подмножество — другим. Использование фильтрации целей маршрутов (RTF22), описанной в [12], позволяет сделать это более просто и эффективно.

Проблема 2 (передача сообщений BGP VPLS лишь заинтересованным узлам BGP) решается с помощью RTF. Этот метод «ортогонален» использованию RR, но они хорошо работают вместе. Фильтрация RTF также очень эффективна для VPLS через множество AS. Подробности и преимущества использования RTF описаны в [12]. Следует также упомянуть один аспект уровня управления, с которым часто возникает путаница. Обмен MAC-адресами не выполняется по протоколу BGP. Все операции изучения и старения MAC-адресов выполняются на уровне данных отдельно для каждого PE. Единственной задачей сообщений BGP VPLS является автоматическое обнаружение и обмен метками.

Таким образом, обработка BGP для VPLS возникает

  1. при добавлении или удалении PE из VPLS;

  2. при отказе в сети, отключающем (down) туннель PE-PE или канал PE-CE.

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

4. Уровень данных

В этом разделе описаны два аспекта уровня данных для устройств PE и u-PE, участвующих в VPLS, — инкапсуляция и пересылка.

4.1. Инкапсуляция

Кадры Ethernet, полученные от устройств CE, инкапсулируются для передачи через сеть с коммутацией пакетов, к которой подключены PE. Инкапсуляция выполняется в соответствии с [7].

4.2. Пересылка

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

4.2.1. Изучение MAC-адресов

Как было отмечено выше, ключевым отличием VPLS является поддержка многоточечного сервиса. Это означает, что всей сети сервис-провайдера следует быть одним логическим обучающимся мостом для каждого сервиса VPLS, поддерживаемого в сети SP. Логическими портами «моста» SP являются абонентские порты, а также псевдопровода на VE. Как обычный обучаемый мост изучает MAC-адреса на своих портах, так и мост SP должен изучать MAC-адреса на своих VE.

Обучение заключается в связывании MAC-адресов отправителей пакетов с (логическими) портами, через которые пакеты приходят. Эта привязка создает таблицу FIB23, используемую для пересылки пакетов. Предположим, например, что мост получает пакет с MAC-адресом отправителя S на (логическом) порту P. Если после этого мост получит пакет с MAC-адресом получателя S, он будет знать, что пакет нужно передать через порт P.

Если VE узнает MAC-адрес отправителя S на логическом порту P, а затем видит S на другом порту P’, устройство VE должно обновить свою таблицу FIB, указав в ней новый порт P’. VE может реализовать механизм демпфирования смены (flapping) портов-источников для данного MAC-адреса.

4.2.2. Старение

Устройствам VPLS PE следует поддерживать механизм старения, чтобы удалять связанный с портом MAC-адрес, как это делают обучающиеся мосты. Это нужно для того, чтобы MAC-адрес был «переучен» (relearn), если он «переходит» с одного логического порта на другой в результате физического перемещения владеющей адресом станции на другой порт или в результате изменения топологии ЛВС, меняющего пути пакетов. Кроме того, старение снижает размер таблицы VPLS MAC, сохраняя в ней лишь активные, а не все MAC-адреса в данном экземпляре VPLS.

«Возрастом» MAC-адреса S на логическом порту P считается время с момента, когда он последний раз наблюдался в качестве MAC-адреса отправителя на порту P. Если возраст превышает время старения T, запись для S должна быть удалена из FIB. При каждом появлении S в качестве MAC-адреса отправителя на порту P возраст S сбрасывается (0).

Реализации следует предоставлять средство настройки времени старения T на уровне VPLS. В дополнение к этому реализация может ускорять старение всех MAC в VPLS для некоторых ситуаций (например, при изменении топологии STP в данном экземпляре VPLS).

4.2.3. Лавинная рассылка

Когда мост получает пакет, для которого адрес получателя отсутствует в FIB, такой пакет пересылается во все остальные порты. Аналогично, VE будет применять лавинную рассылку пакетов для неизвестных получателей всем другим VE в VPLS.

В примере на рисунке 1 устройство PE2 будет отвечать за лавинную рассылку кадра всем другим PE в том же экземпляре VPLS, если CE2 передаст PE2 кадр Ethernet с отсутствующим в таблице FIB устройства PE2 (для данного экземпляра VPLS) адресом получателя. При получении такого кадра PE1 будет отвечать за дальнейшую лавинную рассылку кадра устройствам CE1 и CE5 (если PE1 не знает, какое из устройств CE «владеет» этим MAC-адресом).

С другой стороны, если устройство PE3 получает кадр, оно будет поручать лавинную рассылку своему u-PE. Если устройство PE3 подключено к двум u-PE, оно будет анонсировать наличие двух u-PE. PE3 может анонсировать неспособность к лавинной рассылке и в этом случае будет получать 2 кадра (по одному для каждого u-PE) или указать возможность лавинной рассылки, получая при этом один экземпляр кадра, который будет пересылаться обоим u-PE.

4.2.4. Широковещательные и групповые кадры

Имеются общеизвестные широковещательные MAC-адреса. Кадр Ethernet с широковещательным MAC-адресом получателя должен передаваться всем станциям данного экземпляра VPLS. Это может быть реализовано так же, как выполняется лавинная рассылка.

Имеется также легко распознаваемое множество групповых (multicast) MAC-адресов. Кадры Ethernet с групповым MAC-адресом получателя могут передаваться широковещательно всем станциям. VE может также применять те или иные методы ограничения групповой пересылки меньшим множеством получателей, которые указали заинтересованность в соответствующей multicast-группе. Рассмотрение этого вопроса выходит за рамки документа.

4.2.5. Пересылка с «расщепленным горизонтом»

Когда поддерживающее лавинную рассылку устройство PE (скажем, PEx) получает широковещательный кадр Ethernet или кадр с неизвестным MAC-адресом получателя, оно должно применять лавинную рассылку для этого кадра. Если кадр принят от подключенного CE, устройство PEx должно передать копию кадра всем другим подключенным CE, а также устройствам PE, участвующим в VPLS. Если же кадр приходит от другого PE (например, PEy), устройство PEx должно передать копию пакета лишь подключенным CE. PEx недопустимо передавать такой кадр другим PE, поскольку устройство PEy уже сделало это. Это называют пересылкой с «расщепленным горизонтом» и такая является следствием наличия полной связности между PE в рамках VPLS.

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

4.2.6. Квалифицированное и неквалифицированное обучение

Ключом для нормального обучения Ethernet MAC обычно служат (6-октетные) MAC-адреса. Это называется неквалифицированным обучением. Однако возможно включение в процесс имеющихся в кадрах тегов VLAN и тогда это называется квалифицированным обучением.

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

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

4.2.7. Класс обслуживания

Для поддержки разных классов обслуживания в рамках VPLS реализация может сопоставлять биты 802.1p в абонентских кадрах Ethernet с тегами VLAN с битами EXP в псевдопроводе и/или метке туннеля, что позволяет по-разному обрабатывать кадры VPLS в сети с коммутацией пакетов.

Чтобы такое сопоставление было полезно, реализации следует разрешать свое отображение для каждого экземпляра VPLS, поскольку каждый абонент VPLS может иметь свое представление об установке поведения битов 802.1p.

5. Варианты развертывания

При развертывании сети с поддержкой VPLS оператор должен решить, какие функции будут обеспечивать устройства с поддержкой VPLS, расположенные близко к абонентам (VE). Используемый по умолчанию случай, описанный в этом документе, предполагает применение в качестве VE маршрутизаторов PE. Однако имеется много причин, по которым VE может быть устройством, выполняющим все функции L2 (такие как изучение MAC-адресов и лавинная рассылка), а также ограниченный набор функций L3 (такие, как взаимодействие со своим PE), но не поддерживающим, например, полноценного обнаружения и сигнализации PE-PE. Такие устройства называются u-PE.

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

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

Основное внимание в VPLS уделяется приватности данных, т. е. данные в VPLS распространяются только узлам данного экземпляра VPLS и недоступны каким-либо внешним агентам или другим VPLS. Отметим, что сервис VPLS не предоставляет защиты конфиденциальности, целостности и проверки подлинности. Пакеты VPLS передаются в сеть пакетной коммутации в открытом виде и злоумышленник на пути передачи24 может перехватывать пакет, а в некоторых случаях имеет возможность помещать свои пакеты в поток данных. Если требуется защита, в качестве туннелей PE-PE могут служить туннели IPsec. Для дополнительной защиты оконечные системы на сайтах VPLS могут использовать подходящее шифрование пакетов до их отправки в сеть сервис-провайдера.

Имеется два аспекта, связанных с приватностью в VPLS — безопасность уровня управления и защита пути пересылки. Компрометация уровня управления может приводить к передаче устройством PE данных, относящихся к одному экземпляру VPLS, в другой, созданию «черной дыры» для данных VPLS или даже отправки их перехватывающему устройству. Ни одно из таких событий не приемлемо с точки зрения приватности. Поскольку весь обмен на уровне управления осуществляется по протоколу BGP, методы, описанные в [2], могут помочь при проверке подлинности сообщений BGP, осложняя подмену обновлений (которые могут использоваться для направления трафика VPLS другому экземпляру VPLS) или отзыв данных (атаки на отказ в обслуживании). В методах (b) и (c) для работы через множество AS, описанных в разделе 3, это обеспечивает защиту сеансов BGP между AS, а также между устройствами ASBR, PE и рефлекторами маршрутов. Можно также применять методы, описанные в разделе 10 (b) и (c) документа [6], как для уровня управления, так и для уровня данных. Отметим, что методы [2] не помогут сохранить приватность меток VPLS, а зная эти метки, можно перехватить трафик VPLS. Однако для этого нужен доступ к путям данных в сети SP.

Возможны ошибочные конфигурации, ведущие к непреднамеренным подключениям устройств CE не к тем VPLS. Это может быть вызвано, например, некорректным Route Target для экземпляра VPLS. Эта проблема, как отмечено в [6], требует дополнительного исследования.

Для защиты уровня данных нужно обеспечить корректное поведение туннелей PE-PE (это выходит за рамки документа) и восприятие меток VPLS только от разрешенных интерфейсов. Для PE такими интерфейсами будут каналы к маршрутизаторам P, для ASBR — канал от маршрутизатора ASBR в AS, являющуюся частью данного экземпляра VPLS. При организации VPLS через множество AS особенно важно восприятие пакетов VPLS VPLS лишь от разрешенных интерфейсов.

В документе [3] описано туннелирование MPLS-in-IP и MPLS-in-GRE. Если желательно применение таких туннелей для транспортировки пакетов VPLS, нужно разобраться с вопросами безопасности, отмеченными в разделе 8 упомянутого документа. Любая реализация VPLS, которая позволяет туннелировать пакеты VPLS в соответствии с указанным документом, должна включать поддержку IPsec, которую можно использовать, как описано здесь. Если туннель не защищен с помощью IPsec, описанная в параграфе 8.2 этого документа фильтрация по адресам IP на граничных маршрутизаторах, будет единственным способом обеспечить на выходе из туннеля в конкретное устройство PE присутствие пакетов только от разрешенных входных точек туннелей (т. е. отсечь пакеты с подставным адресом отправителя). Поскольку граничные маршрутизаторы зачастую фильтруют лишь по адресам отправителей, фильтрация пакетов может оказаться неэффективной, если выходной PE не может проверить IP-адрес отправителя во всех принимаемых пакетах и сравнить его со списком IP-адресов разрешенных начальных точек туннелей. Любая реализация, разрешающая применять инкапсуляцию MPLS-in-IP или MPLS-in-GRE без защиты IPsec, должна позволять выходному PE такую проверку по IP-адресам для всех полученных туннелированных пакетов.

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

Агентство IANA выделило значение AFI 25 для информации L2VPN. Это значение совпадает с AFI, запрошенным в [11].

Агентство IANA выделило значение 0x800a для Layer2 Info Extended Community.

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

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

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

[2] Heffernan, A., «Protection of BGP Sessions via the TCP MD5 Signature Option», RFC 2385, August 1998.

[3] Worster, T., Rekhter, Y., and E. Rosen, «Encapsulating MPLS in IP or Generic Routing Encapsulation (GRE)», RFC 4023, March 2005.

[4] Bates, T., Katz, D., and Y. Rekhter, «Multiprotocol Extensions for BGP-4», RFC 4760, January 2007.

[5] Sangli, S., Tappan, D., and Y. Rekhter, «BGP Extended Communities Attribute», RFC 4360, February 2006.

[6] Rosen, E. and Y. Rekhter, «BGP/MPLS IP Virtual Private Networks (VPNs)», RFC 4364, February 2006.

[7] Martini, L., Rosen, E., El-Aawar, N., and G. Heron, «Encapsulation Methods for Transport of Ethernet over MPLS Networks», RFC 4448, April 2006.

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

[8] Bates, T., Chen, E., and R. Chandra, «BGP Route Reflection: An Alternative to Full Mesh Internal BGP (IBGP)», RFC 4456, April 2006.

[9] Andersson, L. and E. Rosen, «Framework for Layer 2 Virtual Private Networks (L2VPNs)», RFC 4664, September 2006.

[10] Lasserre, M., Ed. and V. Kompella, Ed., «Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling», RFC 4762, January 2007.

[11] Ould-Brahim, H., «Using BGP as an Auto-Discovery Mechanism for VR-based Layer-3 VPNs», Work in Progress, April 2006.

[12] Marques, P., «Constrained VPN Route Distribution», Work in Progress, June 2005.

[13] Martini, L., Rosen, E., El-Aawar, N., Smith, T., and G. Heron, «Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP)», RFC 4447, April 2006.

[14] Kompella, K., «Layer 2 VPNs Over Tunnels», Work in Progress, January 2006.

[15] Institute of Electrical and Electronics Engineers, «Information technology — Telecommunications and information exchange between systems — Local and metropolitan area networks — Common specifications — Part 3: Media Access Control (MAC) Bridges: Revision. This is a revision of ISO/IEC 10038: 1993, 802.1j-1992 and 802.6k-1992. It incorporates P802.11c, P802.1p and P802.12e. ISO/IEC 15802-3: 1998.», IEEE Standard 802.1D, July 1998.

Приложение A. Участники работы

Ниже перечислены участники работы над документом.

Javier Achirica, Telefonica
Loa Andersson, Acreo
Giles Heron, Tellabs
Sunil Khandekar, Alcatel-Lucent
Chaitanya Kodeboyina, Nuova Systems
Vach Kompella, Alcatel-Lucent
Marc Lasserre, Alcatel-Lucent
Pierre Lin
Pascal Menezes
Ashwin Moranganti, Appian
Hamid Ould-Brahim, Nortel
Seo Yeong-il, Korea Tel

Приложение B. Благодарности

Спасибо Joe Regan и Alfred Nothaft за их вклад в работу. Большое спасибо Eric Ji, Chaitanya Kodeboyina, Mike Loomis и Elwyn Davies за подробные рецензии.

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

Kireeti Kompella

Juniper Networks

1194 N. Mathilda Ave.

Sunnyvale, CA 94089

US

EMail: kireeti@juniper.net

Yakov Rekhter

Juniper Networks

1194 N. Mathilda Ave.

Sunnyvale, CA 94089

US

EMail: yakov@juniper.net


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

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

nmalykh@protokols.ru


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

Copyright (C) The IETF Trust (2007).

К этому документу применимы права, лицензии и ограничения, указанные в 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.


1Virtual Private LAN Service — услуги виртуальной частной ЛВС.

2Transparent LAN Services — услуги «прозрачной ЛВС».

3Virtual Private Switched Network — виртуальная частная коммутируемая сеть.

4Service Provider.

5Virtual Private Network.

6Label Distribution Protocol.

7Autonomous System.

8Provider Edge.

9Provider-only — только для провайдера.

10Customer Edge.

11Generic Routing Encapsulation — базовая инкапсуляция маршрутных данных.

12Reservation Protocol — Traffic Engineering — протокол резервирования ресурсов — организация трафика.

13Network Layer Reachability Information — информация о доступности на сетевом уровне.

14Address Family Identifier.

15Subsequent Address Family Identifier.

16Label base.

17Maximum Transmission Unit — максимальный передаваемый блок.

18Route Distinguisher.

19AS border router.

20Spanning Tree Protocol — протокол связующего дерева.

21Route Reflector.

22Route Target Filtering.

23Forwarding Information Base — база информации для пересылки кадров.

24Man-in-the-middle — человек посередине.

Рубрика: RFC | Комментарии к записи RFC 4761 Virtual Private LAN Service (VPLS) Using BGP for Auto-Discovery and Signaling отключены

RFC 4762 Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling

Network Working Group                                   M. Lasserre, Ed.
Request for Comments: 4762                              V. Kompella, Ed.
Category: Standards Track                                 Alcatel-Lucent
                                                            January 2007

Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling

VPLS с использованием сигнализации LDP

PDF

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

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

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

Copyright (C) The IETF Trust (2007).

Замечание IESG

Рабочая группа L2VPN создала два отдельных документа — RFC 4761 и этот документ, в которых реализованы похожие функции на основе разных протоколов сигнализации. Отметим, что оба метода обычно называют VPLS, хотя они отличаются и не совместимы друг с другом.

Аннотация

Этот документ описывает решение по организации с использованием псевдопроводов услуг VPLS1, которые раньше предоставлялись на основе других технологий туннелирования, известных как TLS2. VPLS создает сегмент эмулируемой ЛВС для заданного множества пользователей, т. е. организуется широковещательный домен L2, поддерживающий обучение и пересылку по адресам Ethernet MAC и ограниченный заданным множеством пользователей. На одном краевом устройстве провайдера (PE3) может поддерживаться множество независимых служб VPLS.

Этот документ описывает функции уровня управления для сигнализации меток псевдопровода с использованием протокола LDP4, расширяющего RFC 4447. Метод не зависит от протокола обнаружения. Описаны также функции пересылки на уровне данных с концентрацией на функциях обучения (learning) для MAC-адресов. Инкапсуляция пакетов VPLS описана в RFC 4448.

Оглавление

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

1. Введение

Технология Ethernet стала преобладающей в сфере локальных сетей (ЛВС) и получает признание в качестве технологии доступа, особенно в городских и распределенных сетях (MAN5 и WAN6, соответственно). Основным назначением служб VPLS является обеспечение связности между географически разделенными пользовательскими сайтами через сети MAN и WAN, как будто эти сайты подключены к одной ЛВС. Предполагаемые применения для конечных пользователей можно разделить на две категории:

  • соединение маршрутизаторов абонента — маршрутизация ЛВС;

  • соединение коммутаторов абонента — коммутация ЛВС.

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

[RFC4448] определяет способ передачи кадров L2 через псевдопровод (PW) «точка-точка». Этот документ описывает расширение [RFC4447] для транспортировки трафика Ethernet/802.3 и VLAN [802.1Q] через множество сайтов, относящихся к одному широковещательному домену L2 или VPLS. Отметим, что та же модель может применяться к другим технологиям 802.1. Она описывает простой и расширяемый способ обеспечивать услуги виртуальных ЛВС, включая подобающую рассылку широковещательного, группового и индивидуального трафика неизвестных адресатов через сеть MPLS, без необходимости использовать серверы преобразования адресов или иные внешние серверы, как описано в [L2VPN-REQ].

Приведенное ниже обсуждение применимо к устройствам, способным поддерживать VPLS и туннелировать пакеты с метками между собой. Полученное в результате множество соединенных между собой устройств образует MPLS VPN.

2. Термины

Q-in-Q

Расширение 802.1ad Provider Bridge, известное также как стековые VLAN и Q-in-Q.

Qualified learning — квалифицированное обучение

Режим обучения, в котором каждая VLAN абонента отображается на свой экземпляр VPLS.

Service delimiter — указатель сервиса

Информация, используемая для идентификации конкретного экземпляра абонентского сервиса. Обычно представляется в заголовке инкапсуляции абонентских кадров (например, VLAN Id).

Tagged frame — кадр с тегом

Кадр с идентификатором 802.1Q VLAN.

Unqualified learning — неквалифицированное обучение

Режим обучения, в котором все VLAN одного абонента отображаются на один экземпляр VPLS.

Untagged frame — кадр без тега

Кадр, не имеющий идентификатора 802.1Q VLAN.

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

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

3. Сокращения

AC Attachment Circuit (устройство подключения).

BPDU Bridge Protocol Data Unit (блок данных протокола мостов).

CE Customer Edge device (краевое устройство абонента).

FEC Forwarding Equivalence Class (класс эквивалентности пересылки).

FIB Forwarding Information Base (база информации для пересылки).

GRE Generic Routing Encapsulation (базовая инкапсуляция маршрутных данных).

IPsec IP security (безопасность IP).

L2TP Layer Two Tunneling Protocol (туннельный протокол уровня 2).

LAN Local Area Network (локальная сеть, ЛВС).

LDP Label Distribution Protocol (протокол распространения меток).

MTU-s Multi-Tenant Unit switch (коммутатор для множества арендаторов).

PE Provider Edge device (краевое устройство провайдера).

PW Pseudowire (псевдопровод).

STP Spanning Tree Protocol (протокол связующего дерева).

VLAN Virtual LAN (виртуальная ЛВС).

VLAN tag VLAN Identifier (идентификатор VLAN).

4. Топологическая модель для VPLS

Участвующий в VPLS интерфейс должен быть способен рассылать в лавинном режиме (flood), пересылать и фильтровать кадры Ethernet. На рисунке 1 показана топологическая модель VPLS. Множество устройств PE, соединенных между собой псевдопроводами PW, представляется одной эмулируемой ЛВС для абонента X. Каждое устройство PE будет формировать MAC для своего PW и связывать подключенные напрямую MAC-адреса с локальными портами в сторону абонента. Это моделирует стандартное обучение IEEE 802.1 MAC.

+-----+                                              +-----+
| CE1 +---+      ...........................     +---| CE2 |
+-----+   |      .                         .     |   +-----+
 Сайт 1   |   +----+                    +----+   |   Сайт 2
          +---| PE |       Облако       | PE |---+
              +----+                    +----+
                 .                         .
                 .         +----+          .
                 ..........| PE |...........
                           +----+         ^
                             |            |
                             |            +-- Эмулируемая ЛВС
                           +-----+
                           | CE3 |
                           +-----+
                           Сайт 3

Рисунок 1. Топологическая модель VPLS для абонента с 3 сайтами.


Отметим еще раз, что в документе приводятся конкретные примеры использования транспортных туннелей MPLS, но PW могут применять и другие туннели (как указано в [RFC4447]), например, GRE, L2TP, IPsec, если они позволяют идентифицировать исходное устройство PE, поскольку это нужно для процесса обучения MAC.

Областью применения VPLS являются устройства PE в сети сервис-провайдера и это подчеркивает тот факт, что кроме разграничения абонентского сервиса, форма доступа к сайту абонента никак не связана с VPLS [L2VPN-REQ]. Иными словами, устройство присоединения (AC), подключенное к абоненту, может быть физическим портом Ethernet, логическим (тег) портом Ethernet, ATM PVC, передающим кадры Ethernet и т. п., включая даже Ethernet PW.

PE обычно является граничным маршрутизатором, способным работать с сигнальным протоколом LDP и/или протоколами маршрутизации для организации PW. Кроме того, он способен организовывать транспортные туннели к другим PE и доставлять трафик через PW.

4.1. Пересылка и лавинная рассылка

Одним из свойств сервиса Ethernet является передача кадров по широковещательным адресам и лавинная рассылка во все порты кадров с неизвестным MAC-адресом получателя. Для лавинной рассылки в сети сервис-провайдера все кадры с неизвестным индивидуальным адресом, а также широковещательные и групповые кадры рассылаются в лавинном режиме через все соответствующие PW всем узлам PE, участвующим в VPLS, а также всем устройствам AC.

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

Для пересылки кадра устройство PE должно быть способно связать MAC-адрес получателя с PW. Неразумно, а порой и невозможно требовать настройки на всех PE статической привязки всех возможных MAC-адресов к PW. Поэтому поддерживающим VPLS устройствам PE следует иметь возможность динамического изучения MAC на AC и PW, а также пересылки и репликации пакетов через AC и PW.

4.2. Изучение адресов

В отличие от BGP VPN [RFC4364], информация о доступности не анонсируется и не распространяется на уровне управления. Доступность определяется стандартными функциями обучения моста на уровне данных.

Если для пришедшего в PW пакета MAC-адрес отправителя не известен, его нужно связать с PW, чтобы исходящие пакеты на этот MAC-адрес могли доставляться через соответствующий PW. Аналогично, при поступлении в AC пакета с неизвестным MAC-адресом отправителя адрес нужно связать с AC, чтобы исходящие пакеты на этот MAC-адрес могли доставляться через соответствующее устройство AC.

При смене состояния PW или AC требуется выполнять стандартные операции обучения, фильтрации и рассылки, определенные в [802.1D-ORIG], [802.1D-REV] и [802.1Q].

4.3. Топология туннелей

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

В Ethernet L2VPN на сервис-провайдера ложится ответственность за создание топологии без петель. Для простоты определим топологию VPLS как полносвязный (full mesh) набор PW.

4.4. VPLS без петель

Если топология VPLS не является полносвязной, может оказаться, что пара PE не связана напрямую через PW и будет использовать промежуточные PE для трансляции пакетов. Такая топология будет требовать применения того или иного протокола устранения петель, подобного STP.

Вместо этого между PE организуется полносвязная сеть PW. Поскольку в этом случае каждое устройство PE напрямую соединяется со всеми другими PE в составе VPLS через псевдопровод PW, трансляция пакетов уже не требуется и можно использовать для устранения петель простое правило «расщепления горизонта» (split horizon), в соответствии с которым PE недопустимо пересылать трафик из одного PW в другой из состава той же сети соединений VPLS.

Отметим, что абоненты могут применять протокол STP (скажем, в соответствии с [802.1D-REV]), например, при наличии у абонента дополнительных соединений (back door) для резервирования на случай отказа в VPLS. В таких случаях STP BPDU7 просто туннелируются через облако провайдера.

5. Обнаружение

Требуется возможность настройки адресов удаленных PE вручную. Однако ручная настройка перестает быть необходимой при использовании процедур автоматического обнаружения. Данный документ совместим со множеством процедур автоматического обнаружения ([RADIUS-DISC], [BGP-DISC]).

6. Уровень управления

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

6.1. Сигнализация демультиплексоров на базе LDP

Полная связность сессий LDP служит для организации сети PW. Требование полносвязной сети PW может приводить к большому числу сессий LDP. В разделе 10 рассмотрен вариант организации иерархической топологии для снижения числа связей в VPLS.

Поскольку сессии LDP организуются между двумя PE, все PW между этими двумя PE сигнализируются в одной сессии.

В [RFC4447] описано два типа FEC — PWid FEC Element (FEC типа 128) и Generalized PWid FEC Element (FEC типа 129). Исходные элементы FEC, применяемые для VPLS, совместимы с PWid FEC Element. Описание сигнализации с использованием элементов PWid FEC перенесено в Приложение A. Ниже вместо этого описано применение более обобщенного дескриптора L2VPN — Generalized PWid FEC Element.

6.1.1. Использование обобщенного элемента PWid FEC

В [RFC4447] описана обобщенная структура FEC, которая будет применяться для сигнализации VPLS, описанной ниже. Рассматривается назначение полей Generalized PWid FEC Element в контексте сигнализации VPLS.

Control bit (C) — слово управления

Этот бит указывает использование слова управления, описанного в [RFC4447].

PW type — тип псевдопровода

Разрешенными типами PW являются Ethernet (0x0005) и Ethernet tagged (0x004), как указано в [RFC4446].

PW info length – размер информации псевдопровода

В соответствии с [RFC4447].

Attachment Group Identifier (AGI), Length, Value – идентификатор группы подключения, размер, значение

Уникальное имя данной VPLS. AGI указывает тип имени, а Length — размер поля Value, в котором задано имя VPLS. Термин AGI используется наравне с термином «идентификатор VPLS».

Target Attachment Individual Identifier (TAII), Source Attachment Individual Identifier (SAII)

Это пустые (null) значения, поскольку сеть PW в VPLS завершается таблицами обучения MAC, а не отдельными устройствами подключения. Использование непустых TAII и SAII зарезервировано на будущее.

Interface Parameters – параметры интерфейса

MTU

Максимальный размер передаваемого блока (MTU8) в VPLS должен совпадать для всех PW в сети (mesh).

Optional Description String – необязательная строка описания

В соответствии с [RFC4447].

Requested VLAN ID – запрошенный идентификатор VLAN

Если PW работает в режиме Ethernet с тегами, этот параметр может служить для сигнализации вставки подходящего VLAN ID, как определено в [RFC4448].

6.2. Отзыв MAC-адресов

Может оказаться желательным удаление или отмена обучения (unlearn) для определенных динамически MAC-адресов с целью ускорить схождение. Это достигается передачей сообщения LDP Address Withdraw со списком MAC-адресов для удаления всем другим PE через соответствующие сессии LDP.

Здесь определяется необязательный элемент MAC List TLV в LDP для задания списка MAC-адресов, которые будут удалены (или для них будет отменено обучение) с помощью сообщений LDP Address Withdraw.

Сообщения Address Withdraw с MAC List TLV могут поддерживаться для ускоренного удаления MAC-адресов в результате изменения топологии (например, отказ основного канала для двудомного коммутатора с поддержкой VPLS).

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

6.2.1. TLV со списком MAC

Отмена обучения (unlearn) для MAC-адреса может быть указана передачей сообщения LDP Address Withdraw с новым MAC List TLV, формат которого описан ниже. Представление адреса MAC List TLV в 6-октетном формате MAC определено документами IEEE 802 [802.1D-ORIG] [802.1D-REV].

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|       Type                |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      MAC address #1                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        MAC address #1         |      MAC Address #2           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      MAC address #2                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                              ...                              ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      MAC address #n                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        MAC address #n         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


U bit

Флаг неизвестности, который должен иметь значение 1. Если формат MAC-адреса не распознан, элемент TLV также не будет понят и должен игнорироваться.

F bit

Флаг пересылки, который должен иметь значение 0. Поскольку применяется адресный (targeted) механизм LDP, пересылка TLV недопустима.

Type

Поле типа, которое должно иметь значение 0x0404 (MAC List TLV).

Length

Поле, указывающее общий размер (в октетах) MAC-адресов в TLV. Размер должен быть кратным 6.

MAC Address

MAC-адрес(а) для удаления.

Сообщение MAC Address Withdraw содержит FEC TLV (для указания VPLS), MAC Address TLV и необязательные параметры. Для сигнализации MAC Address Withdraw необязательных параметров не определено. Отметим, что при получении устройством PE непонятного сообщения MAC Address Withdraw, сообщение должно игнорироваться. В этом случае вместо очистки таблицы MAC-адресов будет продолжаться использование несвежей информации, пока не возникнет одно указанных ниже условий.

  • Принят пакет с известной привязкой MAC-адреса из другого PW, которая заменит прежнюю привязку.

  • Привязка устарела.

Сообщения MAC Address Withdraw лишь помогают ускорить схождение, поэтому PE, не понимающие сообщения, продолжат участвовать в VPLS.

6.2.2. Сообщение об отзыве с TLV со списком MAC-адресов

Обработка MAC List TLV из полученного сообщения Address Withdraw включает перечисленные ниже операции.

  • Для каждого MAC-адреса в TLV удаляется привязка к AC или PW, откуда было принято сообщение.

  • Для каждого сообщения MAC Address Withdraw с пустым списком адресов удаляются все MAC-адреса, связанные с экземпляром VPLS (задается FEC TLV), за исключением MAC-адресов, узнанных (learned) через PW, связанный с сигнальной сессией, в которой получено сообщение.

Областью действия MAC List TLV является VPLS, указанная полем FEC TLV в сообщении MAC Address Withdraw. Число MAC-адресов можно определить из поля размера TLV.

7. Пересылка данных в Ethernet PW

В этом разделе описано поведение уровня данных Ethernet PW, используемых в VPLS. Хотя инкапсуляция похожа на описанную в [RFC4448], функции вырезания указывающего сервис тега и использование «нормализованных» кадров Ethernet дополнительно описаны здесь.

7.1. Инкапсуляция VPLS

В VPLS абонентские кадры Ethernet без преамбулы инкапсулируются с заголовком, определенным в [RFC4448]. Определение типов абонентских кадров Ethernet приведено ниже.

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

  • Если пришедший в PE кадр имеет инкапсуляцию, не используемую данным PE в качестве обозначения сервиса, инкапсуляцию кадра не следует менять в VPLS. К таким кадрам относятся, например, кадры с заданными клиентом тегами VLAN, о которых сервис-провайдер не знает и которые не хочет менять.

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

Аналогично при поступлении кадра на обращенный в сторону абонента порт через ATM или Frame Relay VC, указывающий экземпляр абонентской VPLS, инкапсуляция ATM или FR будет удалена перед отправкой кадра в VPLS.

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

В соответствии с этими правилами проходящие через VPLS кадры Ethernet всегда являются абонентскими. Отметим, что действия на входе и выходе с указывающими сервис тегами являются локальными и ни одно из устройств PE не сигнализирует другим о таких действиях. Это позволяет, например, смешивать и сопоставлять службы с тегами VLAN и без таковых на любой стороне и не передавать через VPLS теги VLAN с локальной значимостью. Указателем сервиса может служить и метка MPLS, поэтому Ethernet PW, определенный в [RFC4448], может применяться соединением для доступа к PE. Инкапсуляция RFC 1483 Bridged PVC также может указывать сервис. На основе ограничения области локальной значимости инкапсуляции краевыми устройствами, можно создать иерархическую модель VPLS для обеспечения возможности создания расширяемых систем VPLS, как описано ниже.

7.2. Обучение VPLS

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

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

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

Для использования STP с квалифицированным обучением устройства VPLS PE должны быть способны пересылать STP BPDU нужным экземплярам VPLS. В иерархическом варианте VPLS (см. раздел 10) могут добавляться теги обозначения сервиса (Q-in-Q или [RFC4448]), чтобы PE могли однозначно идентифицировать весь абонентский трафик, включая STP BPDU. В базовом варианте VPLS восходящие коммутаторы должны вставлять такие теги обозначения сервиса. Когда порт доступа используется для множества абонентов, должны применяться зарезервированные теги VLAN для абонентских доменов, чтобы передавать трафик STP. Кадры STP инкапсулируются с уникальными для каждого абонента провайдерскими тегами (как и обычный трафик абонентов), а PE просматривают эти теги для передачи таких кадров через соответствующий экземпляр VPLS.

8. Пересылка данных в Ethernet VLAN PW

В этом разделе описано поведение уровня данных для Ethernet VLAN PW в VPLS. Хотя инкапсуляция похожа на описанную в [RFC4448], ниже рассмотрены функции наложения тегов и использования «нормализованных» кадров Ethernet. Обучение выполняется так же, как для Ethernet PW.

8.1. Инкапсуляция VPLS

В VPLS абонентские кадры Ethernet без преамбулы инкапсулируются с заголовком, определенным в [RFC4448]. Определение типов абонентских кадров Ethernet приведено ниже.

  • Если принятый PE кадр имеет инкапсуляцию, которая является частью пользовательского кадра и служит данному PE в качестве обозначения сервиса (т. е. для идентификации конкретного абонента и/или конкретного сервиса для данного абонента), инкапсуляция сохраняется при передаче кадра в VPLS, если не указан необязательный параметр Requested VLAN ID (в этом случае тег VLAN заменяется до отправки кадра в PW).

  • При поступлении в PE кадра с инкапсуляцией без требуемого тега VLAN, в него добавляется пустой (null) тег, если не задан необязательный параметр Requested VLAN ID.

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

Ethernet VLAN PW обеспечивает простой способ сохранить абонентские биты 802.1p.

VPLS может включать оба типа псевдопроводов — Ethernet и Ethernet VLAN. Однако при невозможности поддержки в PE одновременно обоих типов PW следует передавать в неподдерживаемые PW сообщение Label Release с кодом «Unknown FEC», как указано в [RFC3036].

9. Работа VPLS

На рисунке 2 показан пример, где услуги VPLS обеспечиваются между PE1, PE2 и PE3. VPLS объединяет 4 сайта абонента (A1, A2, A3, A4), подключенные через устройства CE1, CE2, CE3 и CE4, соответственно.

Изначально VPLS организуется так, что PE1, PE2 и PE3 имеют полносвязный набор Ethernet PW. Экземпляр VPLS указывается идентификатором AGI. В этом примере PE1 сообщает метку PW 102 устройству PE2 и 103 — устройству PE3, а PE2 сообщает метку 201 устройству PE1 и 203 — устройству PE3.

                                                 -----
                                                /  A1 \
   ----                                    ----CE1    |
  /    \          --------       -------  /     |     |
  | A2 CE2-      /        \     /       PE1     \     /
  \    /   \    /          \---/         \       -----
   ----     ---PE2                        |
               |  Сеть сервис-провайдера  |
                \          /   \         /
         -----  PE3       /     \       /
         |Agg|_/  --------       -------
        -|   |
 ----  / -----  ----
/    \/    \   /    \      CE = краевой маршрутизатор абонента
| A3 CE3    -CE4 A4 |      PE = краевой маршрутизатор провайдера
\    /         \    /      Agg = агрегирование L2
 ----           ----

Рисунок 2. Пример VPLS.


Предположим, что пакет из A1 предназначен для A2. Он приходит на CE1 с MAC-адресом отправителя M1 и MAC-адресом получателя M2. Если PE1 не знает, где находится M2, он использует лавинную рассылку пакета, т. е. передаст его PE2 и PE3. PE2 получит этот пакет с меткой PW 201 и может сделать вывод, что MAC-адрес M1 расположен за PE1, поскольку метка 201 была передана PE1. Поэтому можно связать MAC-адрес M1 с меткой PW 102.

9.1. Старение MAC-адресов

Устройствам PE, изучающим удаленные MAC-адреса, следует иметь механизм старения, позволяющий удалять неиспользуемые записи, связанные с меткой PW. Это важно как для экономии памяти, так и для администрирования. Например, если абонентский сайт A9 отключен, другие PE должны в конце концов «забыть» MAC-адреса этого сайта.

Таймер старения для MAC-адреса M следует сбрасывать при получении пакета с MAC-адресом отправителя M.

10. Иерархическая модель VPLS

Описанное выше решение требует полносвязного набора туннелей LSP между маршрутизаторами PE, участвующими в сервисе VPLS. Для каждой услуги VPLS должно быть организовано n*(n-1)/2 PW между маршрутизаторами PE. Хотя это ведет к издержкам на сигнализацию, реальной проблемой для крупномасштабных систем являются требования репликации пакетов для каждого псевдопровода PW на маршрутизаторе PE. Описанные в этом документе иерархические соединения снижают издержки на сигнализацию и репликацию, позволяя создавать большие системы.

Зачастую сервис-провайдеры размещают небольшое число устройств в зданиях со множеством арендаторов и затем агрегируют их в PE центрального офиса (CO10). В некоторых случаях могут применяться стандартные теги IEEE 802.1q для более простого отображения интерфейсов CE на каналы доступа в VPLS на маршрутизаторах PE.

Часто выгодно распространить методы туннелирования услуг VPLS на домен коммутируемого доступа. Это можно сделать путем реализации устройств доступа как PE и организации PW между ними и другими краевыми устройствами как базового сервиса VPLS. Другим способом является применение [RFC4448] PW или логических интерфейсов Q-in-Q между устройством доступа и выбранными маршрутизаторами PE с поддержкой VPLS. Инкапсуляция Q-in-Q является другой формой туннелирования L2, которая может применяться с сигнализацией MPLS, как описано ниже. В двух приведенных ниже сценариях рассматривается альтернативный подход. PW ядра VPLS (концентратор) дополняются PW доступа (лучи) для формирования 2-уровневой иерархической VPLS (H-VPLS).

Лучевые PW могут быть реализованы с помощью любого туннельного механизма L2 и за счет расширения первого уровня путем включения маршрутизаторов VPLS PE без функций моста. Такие PE будут расширять лучевые PW от коммутатора L2, подключенного к ним через ядро сети оператора, к маршрутизатору VPLS PE с функциями моста, служащему концентратором PW. Мы опишем также участие требуемых для VPLS узлов и простых CE без поддержки MPLS в работе иерархической VPLS.

В оставшейся части документа устройства с поддержкой функций моста обозначаются MTU-s, а PE без функций моста — PE-r. Устройства с поддержкой функций моста и маршрутизатора обозначаются PE-rs.

10.1. Иерархическая связность

В этом параграфе описана модель соединений в виде концентратора с лучами (hub and spoke — звезда) и требования к мостам и устройствам MTU-s для поддержки лучевых соединений.

10.1.1. Лучевая связность для устройств с функциями моста

На рисунке 3 к устройству MTU-s подключены три абонентских сайта через устройства CE-1, CE-2, CE-3. MTU-s имеет одно соединение (PW-1) с PE1-rs, а это устройство подключено к полносвязному базовому сервису VPLS. Для каждого сервиса VPLS организуется один лучевой PW между MTU-s и PE-rs на базе [RFC4447]. В отличие от традиционных PW, завершающихся на физическом (или логическом с тегом VLAN) порту, лучевой PW завершается на экземпляре виртуального коммутатора (VSI11, см [L2FRAME]) на устройствах MTU-s и PE-rs.

                                                      PE2-rs
                                                    +--------+
                                                    |        |
                                                    |   --   |
                                                    |  /  \  |
CE-1                                                |  \S /  |
 \                                                  |   --   |
  \                                                 +--------+
   \   MTU-s                          PE1-rs        /   |
    +--------+                      +--------+     /    |
    |        |                      |        |    /     |
    |   --   |      PW-1            |   --   |---/      |
    |  /  \--|- - - - - - - - - - - |  /  \  |          |
    |  \S /  |                      |  \S /  |          |
    |   --   |                      |   --   |---\      |
    +--------+                      +--------+    \     |
     /                                             \    |
   ----                                             +--------+
  |Agg |                                            |        |
   ----                                             |  --    |
  /    \                                            | /  \   |
CE-2  CE-3                                          | \S /   |
                                                    |  --    |
                                                    +--------+
                                                      PE3-rs
    Agg = агрегирование L2
    --
   /  \
   \S / = экземпляр виртуального коммутатора
    --

Рисунок 3. Пример иерархической модели VPLS.


MTU-s и PE-rs рассматривают каждое лучевое соединение подобно AC в сервисе VPLS. Метка PW служит для привязки трафика луча к экземпляру VPLS.

10.1.1.1. Работа MTU-s

MTU-s определяется как устройство, поддерживающее функциональность коммутатора L2 и все обычные функции обучения и репликации кадров во все порты, включая луч, рассматриваемый как виртуальный порт. Пакеты для неизвестных получателей реплицируются во все обслуживаемые порты, включая порт луча. После изучения MAC-адресов трафик между CE1 и CE2 будет локально коммутироваться MTU-s, снижая загрузку луча в направлении PE-rs. Аналогично, трафик между CE1 или CE2 и любым удаленным адресатом коммутируется напрямую в луч и передается PE-rs через PW «точка-точка».

Поскольку MTU-s поддерживает функции моста, требуется лишь один псевдопровод PW на экземпляр VPLS при любом числе соединений доступа в одном сервисе VPLS. Это также снижает издержки на сигнализацию между MTU-s и PE-rs.

Если устройство MTU-s напрямую подключено к PE-rs, в луче могут применяться другие методы инкапсуляции (например, Q-in-Q).

10.1.1.2. Работа PE-rs

PE-rs представляет собой устройство, поддерживающее все функции моста для сервиса VPLS, а также маршрутизацию и инкапсуляцию MPLS, т. е. все описанные выше функции для базового сервиса VPLS.

Работа PE-rs не зависит от типа устройства на другой стороне луча. Таким образом, луч от MTU-s рассматривается как виртуальный порт и PE-rs будет коммутировать трафик между лучевым PW, псевдопроводами концентратора PW и устройствами AC после изучения MAC-адресов.

10.1.2. Преимущества лучевых соединений

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

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

  • Снижаются издержки на сигнализацию за счет снижения числа PW, требуемых для сервиса VPLS.

  • Узловое обнаружение сегментов VPLS. MTU-s нужно знать лишь узел PE-rs, хотя устройство участвует в сервисе VPLS, охватывающем множество устройств. С другой стороны, каждое устройство VPLS PE-rs должно знать о всех других VPLS PE-rs, а также о всех локально подключенных устройствах MTU-s и PE-r.

  • Добавление других сайтов требует настройки новых MTU-s, но не требует какого-либо обеспечения для имеющихся в данном сервисе устройств MTU-s.

  • Иерархические соединения могут служить для организации сервиса VPLS через множество доменов сервис-провайдеров, как описано ниже.

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

10.1.3. Лучевые соединения для устройств, не являющихся мостами

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

На рисунке 4 три абонентских сайта (CE-1, CE-2, CE-3) подключены к VPLS через устройство PE-r. Для каждого устройства подключения, участвующего в сервисе VPLS, маршрутизатор PE-r создает PW «точка-точка», завершающиеся на VSI маршрутизатора PE1-rs.

                                                      PE2-rs
                                                    +--------+
                                                    |        |
                                                    |   --   |
                                                    |  /  \  |
CE-1                                                |  \S /  |
 \                                                  |   --   |
  \                                                 +--------+
   \   PE-r                           PE1-rs        /   |
    +--------+                      +--------+     /    |
    |\       |                      |        |    /     |
    | \      |      PW-1            |   --   |---/      |
    |  ------|- - - - - - - - - - - |  /  \  |          |
    |   -----|- - - - - - - - - - - |  \S /  |          |
    |  /     |                      |   --   |---\      |
    +--------+                      +--------+    \     |
     /                                             \    |
   ----                                           +--------+
  | Agg|                                          |        |
   ----                                           |  --    |
  /    \                                          | /  \   |
CE-2  CE-3                                        | \S /   |
                                                  |  --    |
                                                  +--------+
                                                    PE3-rs

Рисунок 4. Пример иерархической VPLS с лучами без мостов.


PE-r является устройством, поддерживающим маршрутизацию, но не поддерживающим функции моста. Однако оно может создавать PW между собой и PE-rs. Для каждого порта, поддерживаемого в сервисе VPLS, организуется PW от PE-r к PE-rs. После организации PW функции обучения и репликации на PE-r не нужны. Весь трафик, полученный на любом из AC, передается в PW. Аналогично, весь трафик, полученный на PW, передается в AC, где завершается PW. Таким образом, трафик от CE1, адресованный CE2, коммутируется на PE1-rs, а не на PE-r.

Отметим, что в случае использования устройствами PE-r провайдерских VLAN (P-VLAN12) в качестве демультиплексора вместо PW, маршрутизатор PE1-rs может работать с ними и отображать эти «каналы» в домен VPLS для организации функций моста между ними.

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

10.2. Избыточные лучевые соединения

Очевидной слабостью описанной модели «hub and spoke» является то, что MTU-s имеют одно соединение с PE-rs. В случае отказа соединения или PE-rs устройство MTU-s полностью теряет связь с сетью.

В этом параграфе описан способ организации резервных соединений для предотвращения потери связности с MTU-s. Описанный механизм подходит как для MTU-s, так и для PE-r.

10.2.1. Двудомный MTU-s

Для защиты от отказа соединений PW или устройств PE-rs применяются двудомные MTU-s или PE-r с подключением к двум устройствам PE-rs, которые должны относиться к одному экземпляру сервиса VPLS.

На рисунке 5 два абонентских сайта подключены через CE-1 и CE-2 к устройству MTU-s, которое организует до двух PW (один для PE1-rs, другой для PE3-rs) для каждого экземпляра VPLS. Один из двух PW назначается основным и работает в обычных условиях, а другой служит резервным и поддерживается в режиме ожидания (standby). MTU-s согласует метки PW для основного и резервного псевдопровода, но не использует резервный PW до возникновения отказа на основном PW. Выбор первичного и вторичного луча выходит за рамки этой спецификации. Например, одним из вариантов может быть экземпляр STP, работающий между MTU-s и двумя узлами PE-rs. Другие методы требуют настройки.

                                                      PE2-rs
                                                    +--------+
                                                    |        |
                                                    |   --   |
                                                    |  /  \  |
CE-1                                                |  \S /  |
  \                                                 |   --   |
   \                                                +--------+
    \  MTU-s                          PE1-rs        /   |
    +--------+                      +--------+     /    |
    |        |                      |        |    /     |
    |   --   |   Основной PW        |   --   |---/      |
    |  /  \  |- - - - - - - - - - - |  /  \  |          |
    |  \S /  |                      |  \S /  |          |
    |   --   |                      |   --   |---\      |
    +--------+                      +--------+    \     |
      /      \                                     \    |
     /        \                                     +--------+
    /          \                                    |        |
   CE-2         \                                   |  --    |
                 \     Вторичный PW                 | /  \   |
                  - - - - - - - - - - - - - - - - - | \S /   |
                                                    |  --    |
                                                    +--------+
                                                      PE3-rs

Рисунок 5. Пример двудомного MTU-s.


10.2.2. Обнаружение отказов и восстановление

MTU-s следует контролировать использование лучей к устройствам PE-rs. Если узлами служат PW, для согласования меток PW применяется протокол LDP и сообщения hello, используемые в сессиях LDP, можно применять для детектирования отказа основного PW. Использование других механизмов, способных детектировать отказы быстрее, выходит за рамки этой спецификации.

При отказе основного PW устройство MTU-s незамедлительно переключается на резервный PW. В этот момент PE3-rs, завершающий резервный PW, начинает изучение MAC адресов на лучевом PW. Все другие узлы PE-rs в сети считают, что CE-1 и CE-2 расположены за PE1-rs и могут продолжать передачу трафика PE1-rs, пока не узнают, что эти устройства находятся за PE3-rs. Процесс отмены обучения (unlearning) может занять много времени, что может оказать негативное влияние на связность протоколов верхних уровней с CE1 и CE2. Для более быстрого схождения устройство PE3-rs, где активируется вторичный PW, может передать сообщение для сброса адресов (как описано в параграфе 6.2), используя MAC List TLV (см. раздел 6), всем узлам PE-rs. При получении этого сообщения узлы PE-rs будут сбрасывать MAC-адреса, связанные с этим экземпляром VPLS.

10.3. Многодоменный сервис VPLS

Иерархия может также применяться для организации крупномасштабного сервиса VPLS в одном домене или сервиса, охватывающего множество доменов, без необходимости организации полносвязных соединений между всеми поддерживающими VPLS устройствами. Две полносвязных сети VPLS можно соединить вместе через один туннель LSP между «граничными» устройствами VPLS. Для объединения двух доменов организуется один лучевой PW на сервис VPLS.

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

Это создает трехуровневую иерархическую модель, включающую лучевую (hub-and-spoke) топологию между устройствами MTU-s и PE-rs, полносвязную топологию между PE-rs и полносвязную сеть междоменных лучей между краевыми устройствами PE-rs.

Этот документ не задает способов поддержки избыточных граничных PE на уровне домена для каждого сервиса VPLS.

11. Иерархическая модель VPLS с сетями доступа Ethernet

В этом параграфе иерархическая модель расширена для включения сетей доступа Ethernet. Модель сохраняет иерархическую архитектуру, описанную выше, с использованием полносвязных соединений между устройствами PE-rs, однако не задается ограничений для сетей доступа Ethernet (например, топология между MTU-s и PE-rs не обязательно «звезда»).

Рассмотрение Ethernet в сетях доступа обусловлено тем, что технология Ethernet сейчас используется многими сервис-провайдерами для предоставления услуг VPLS своим абонентам. Поэтому важно обеспечить механизм, который позволит интегрировать такие сети с ядром IP или MPLS для организации расширяемых услуг VPLS.

Один из подходов к туннелированию абонентского трафика Ethernet через сеть доступа Ethernet заключается в добавлении тега VLAN к абонентским данным (они уже могут иметь свой тег). Дополнительный тег называют P-VLAN. Внутри сети оператора каждая сеть P-VLAN указывает абонента или, более точно, экземпляр VPLS для данного абонента. Поэтому имеется взаимно-однозначное соответствие между P-VLAN и экземпляром VPLS. В этой модели устройства MTU-s должны быть способны добавлять дополнительный тег P-VLAN к немультиплексируемым AC, где абонентские VLAN не служат указателем сервиса. Эта функциональность описана в [802.1ad].

Если абонентские VLAN должны служить указателями сервиса (например, AC является мультиплексируемым портом), устройства MTU-s должны обеспечивать трансляцию абонентских VLAN (C-VLAN13) в P-VLAN или вталкивание дополнительного тега P-VLAN для предотвращения проблем, связанных с использованием перекрывающихся VLAN разными абонентами. Поэтому MTU-s в этой модели могут рассматриваться как типичные мосты с поддержкой такой дополнительной возможности. Эта функциональность описана в [802.1ad].

Устройства PE-rs должны быть способны выполнять функции моста через стандартные порты Ethernet в направлении сети доступа, а также через PW в направлении ядра сети. В этой модели для PE-rs может потребоваться запуск протокола STP в направлении сети доступа в дополнение к «расщеплению горизонта» для ядра MPLS. PE-rs должны отображать P-VLAN на экземпляр VPLS и связанные с ним PW (и наоборот).

Детали, относящиеся к операциям моста для MTU-s и PE-rs (например, формат инкапсуляции для сообщений Q-in-Q, обработка протокола управления абонентских сетей Ethernet и т. п.), выходят за рамки этого документа и описаны в [802.1ad]. Тем не менее, важной частью является взаимодействие между модулем моста и псевдопроводами MPLS/IP PW в устройствах PE-rs, которое не отличается от обычного поведения VPLS.

11.1. Расширяемость

Поскольку каждая P-VLAN соответствует экземпляру VPLS, общее число поддерживаемых экземпляров VPLS ограничено значением 4K. P-VLAN служит локальным обозначением сервиса в сети оператора, которое вырезается при отображении на PW в экземпляре VPLS. Поэтому ограничение в 4K применимо лишь в сети доступа Ethernet (остров Ethernet), а не во всей сети. Сеть SP состоит из ядра MPLS/IP, соединяющего множество островов Ethernet. Поэтому число экземпляров VPLS может расти с ростом числа островов Ethernet (сети доступа в городе могут быть представлены одним или множеством островов).

11.2. Двудомные устройства и восстановление при отказах

В этой модели MTU-s может быть двудомным для различных устройств (агрегаторы и устройства PE-rs). Защита от отказов для узлов доступа в сеть и каналов может быть обеспечена за счет применения STP на каждом острове. STP каждого из островов не зависит от других островов и не взаимодействует с ними. Если остров имеет более одного PE-rs, между этими PE-rs используется полносвязная сеть PW для передачи пакетов SP BPDU с острова. На уровне P-VLAN протокол STP будет назначать одно устройство PE-rs для передачи трафика через ядро. Защита от петель через ядро выполняется с использованием «расщепления горизонта», а защита от отказов в ядре — с помощью стандартной перемаршрутизации IP/MPLS.

12. Участники работы

Loa Andersson, TLA
Ron Haberman, Alcatel-Lucent
Juha Heinanen, Independent
Giles Heron, Tellabs
Sunil Khandekar, Alcatel-Lucent
Luca Martini, Cisco
Pascal Menezes, Independent
Rob Nath, Alcatel-Lucent
Eric Puetz, AT&T
Vasile Radoaca, Independent
Ali Sajassi, Cisco
Yetik Serbest, AT&T
Nick Slabakov, Juniper
Andrew Smith, Consultant
Tom Soon, AT&T
Nick Tingle, Alcatel-Lucent

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

Спасибо Joe Regan, Kireeti Kompella, Anoop Ghanwani, Joel Halpern, Bill Hong, Rick Wilder, Jim Guichard, Steve Phillips, Norm Finn, Matt Squire, Muneyoshi Suzuki, Waldemar Augustyn, Eric Rosen, Yakov Rekhter, Sasha Vainshtein и Du Wenhua за их полезные замечания.

Спасибо также Rajiv Papneja (ISOCORE), Winston Liu (Ixia) и Charlie Hundall за указание проблем в черновых вариантах, связанных с тестированием взаимодействия.

Спасибо Ina Minei, Bob Thomas, Eric Gray и Dimitri Papadimitriou за техническое рецензирование документа.

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

Более полное рассмотрение вопросов безопасности, связанных с L2VPN, приведено в [RFC4111]. Незащищенные услуги VPLS имеют некоторые уязвимости, создающие риски для сетей абонентов и провайдеров. Большинства проблем безопасности можно избежать путем реализации соответствующих мер защиты. Некоторые из них можно предотвратить с помощью имеющихся протоколов.

  • Уровень данных

    • Изоляция трафика между доменами VPLS гарантируется использованием на уровне VPLS своей таблицы L2 FIB и своих PW.

    • Абонентский трафик, состоящий из кадров Ethernet, передается через VPLS без изменений. Если нужна защита, абонентский трафик следует шифровать и/или аутентифицировать до отправки в сеть сервис-провайдера.

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

  • Уровень управления

    • Следует применять методы защиты LDP (аутентификация), как описано в [RFC3036]. Это будет предотвращать нарушения работы PE в VPLS с помощью подставных сообщений.

  • Атаки на отказ в обслуживании

    • Следует реализовать те или иные меры по ограничению числа MAC-адресов (на сайт и VPLS), которым PE может обучиться.

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

Поле типа в MAC List TLV определенно со значением 0x404 в параграфе 6.2.1.

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

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

[RFC4447] Martini, L., Rosen, E., El-Aawar, N., Smith, T., and G. Heron, «Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP)», RFC 4447, April 2006.

[RFC4448] Martini, L., Rosen, E., El-Aawar, N., and G. Heron, «Encapsulation Methods for Transport of Ethernet over MPLS Networks», RFC 4448, April 2006.

[802.1D-ORIG] Original 802.1D — ISO/IEC 10038, ANSI/IEEE Std 802.1D-1993 «MAC Bridges».

[802.1D-REV] 802.1D — «Information technology — Telecommunications and information exchange between systems — Local and metropolitan area networks — Common specifications — Part 3: Media Access Control (MAC) Bridges: Revision. This is a revision of ISO/IEC 10038: 1993, 802.1j-1992 and 802.6k-1992. It incorporates P802.11c, P802.1p and P802.12e.» ISO/IEC 15802-3: 1998.

[802.1Q] 802.1Q — ANSI/IEEE Draft Standard P802.1Q/D11, «IEEE Standards for Local and Metropolitan Area Networks: Virtual Bridged Local Area Networks», July 1998.

[RFC3036] Andersson, L., Doolan, P., Feldman, N., Fredette, A., and B. Thomas, «LDP Specification», RFC 3036, January 2001.

[RFC4446] Martini, L., «IANA Allocations for Pseudowire Edge to Edge Emulation (PWE3)», BCP 116, RFC 4446, April 2006.

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

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

[RFC4364] Rosen, E. and Y. Rekhter, «BGP/MPLS IP Virtual Private Networks (VPNs)», RFC 4364, February 2006.

[RADIUS-DISC] Heinanen, J., Weber, G., Ed., Townsley, W., Booth, S., and W. Luo, «Using Radius for PE-Based VPN Discovery», Work in Progress, October 2005.

[BGP-DISC] Ould-Brahim, H., Ed., Rosen, E., Ed., and Y. Rekhter, Ed., «Using BGP as an Auto-Discovery Mechanism for Network-based VPNs», Work in Progress14, September 2006.

[L2FRAME] Andersson, L. and E. Rosen, «Framework for Layer 2 Virtual Private Networks (L2VPNs)», RFC 4664, September 2006.

[L2VPN-REQ] Augustyn, W. and Y. Serbest, «Service Requirements for Layer 2 Provider-Provisioned Virtual Private Networks», RFC 4665, September 2006.

[RFC4111] Fang, L., «Security Framework for Provider-Provisioned Virtual Private Networks (PPVPNs)», RFC 4111, July 2005.

[802.1ad] «IEEE standard for Provider Bridges», Work in Progress15, December 2002.

Приложение A. Сигнализация VPLS с использованием PWid FEC

Этот раздел был сохранен потому, что остаются реализации, применяющие эту версию сигнализации для VPLS.

Сигнальная информация VPLS передается в сообщениях Label Mapping, отправляемых без запроса в нисходящем направлении, и содержащих приведенную ниже структуру PWid FEC TLV.

Поля PW, C, PW Info Length, Group ID и Interface parameters определены в [RFC4447].

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    PW TLV     |C|         PW Type             |PW info Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Group ID                                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        PWID                                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Interface parameters                    |
~                                                               ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


Мы используем тип Ethernet PW для указания PW, которые передают трафик при многоточечной связности.

В VPLS мы используем идентификатор PWID (который при использовании обобщенного PWid FEC будет заменяться более обобщенным идентификатором AGI, для расширения области действия VPLS), указывающий сегмент эмулируемой ЛВС. Отметим, что PWID в соответствии с [RFC4447] является идентификатором сервиса, указывающим службу, эмулирующую виртуальный канал «точка-точка». В VPLS идентификатор PWID является единственным указателем сервиса, поэтому он имеет глобальную значимость для всех PE, вовлеченных в экземпляр VPLS16.


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

Marc Lasserre

Alcatel-Lucent

EMail: mlasserre@alcatel-lucent.com

Vach Kompella

Alcatel-Lucent

EMail: vach.kompella@alcatel-lucent.com

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

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

nmalykh@protokols.ru


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

Copyright (C) The IETF Trust (2007).

К этому документу применимы права, лицензии и ограничения, указанные в 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.


1Virtual Private LAN Service — услуги виртуальной частной ЛВС.

2Transparent LAN Services — услуги «прозрачной ЛВС».

3Provider Edge.

4Label Distribution Protocol.

5Metropolitan Area Network.

6Wide Area Network.

7Bridge PDU — блок данных протокола мостов.

8Maximum Transmission Unit.

9Предложено исключить в этом предложении указание конкретного сайта A. См. https://www.rfc-editor.org/errata/eid4834. Прим. перев.

10Central Office.

11Virtual switch instance.

12Provider VLAN.

13Customer VLAN.

14Работа опубликована в RFC 5195. Прим. перев.

15Стандарт принят и включен в IEEE Std 802.1Q-2011.

16В оригинале этот абзац содержит ошибки. См. https://www.rfc-editor.org/errata/eid4144. Прим. перев.

Рубрика: RFC | Комментарии к записи RFC 4762 Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling отключены

RFC 4760 Multiprotocol Extensions for BGP-4

Network Working Group                                       T. Bates
Request for Comments: 4760                             Cisco Systems
Obsoletes: 2858                                           R. Chandra
Category: Standards Track                              Sonoa Systems
                                                             D. Katz
                                                          Y. Rekhter
                                                    Juniper Networks
                                                        January 2007

 

Многопротокольные расширения для BGP-4

Multiprotocol Extensions for BGP-4

PDF

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

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

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

Copyright (C) The IETF Trust (2007).

Аннотация

В этом документе определяется расширение протокола BGP-4, позволяющее передавать информацию для различных протоколов сетевого уровня (например, IPv6, IPX, L3VPN и т. п.). Расширение обеспечивает обратную совместимость – маршрутизаторы, поддерживающие это расширение, смогут нормально работать с маршрутизаторами, которые его не поддерживают.

1. Введение

Только три компоненты информации, передаваемой с помощью BGP-4 [BGP-4], непосредственно связаны с IPv4: (a) атрибут NEXT_HOP (указывается адресом IPv4), (b) AGGREGATOR (содержит адрес IPv4) и (c) NLRI (выражается префиксом адреса IPv4). В этом документе предполагается, что любой узел BGP (включая те, которые поддерживают описанное здесь расширение) имеет адрес IPv4 (который будет вместе с другими параметрами использоваться в атрибуте AGGREGATOR). Следовательно, для того, чтобы BGP-4 поддерживал маршрутизацию для множества протоколов сетевого уровня, в BGP-4 требуется добавить только два элемента: (a) возможность связывания отдельного протокола сетевого уровня с информацией о следующем интервале (next hop) и (b) возможность связывания протокола сетевого уровня с NLRI. Для идентификации протоколов сетевого уровня данный документ использует значение Address Family (семейство адресов), определенное в [IANA-AF], и Subsequent Address Family1 (описано в этом документе).

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

Для обеспечения совместимости с предыдущими спецификациями и упрощения перехода к поддержке многопротокольного расширения в BGP-4 в данном документе используются два новых атрибута – MP_REACH_NLRI2 и MP_UNREACH_NLRI3. Первый атрибут (MP_REACH_NLRI) используется для передачи набора доступных адресов с информацией о следующем интервале, который будет использоваться для пересылки по этим адресам. Второй атрибут (MP_UNREACH_NLRI) служит для передачи наборов недоступных адресатов. Оба эти атрибута являются необязательными и непереходными. Таким образом, узел BGP, не поддерживающий многопротокольное расширение, просто будет игнорировать содержащуюся в этих атрибутах информацию и не станет передавать ее другим узлам BGP.

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

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

3. MP_REACH_NLRI (тип 14)

Этот необязательный и нетранзитивный атрибут может использоваться с двумя целями:

  1. анонсирование партнеру возможного маршрута;

  2. обеспечение маршрутизатору возможности анонсирования адреса сетевого уровня маршрутизатора, который следует использовать как следующий интервал (next hop) на пути к адресату, указанному в поле NLRI4 атрибута MP_NLRI.

Формат представления атрибута показан на рисунке.

+--------------------------------------------------+
| Address Family Identifier (2 октета)             |
+--------------------------------------------------+
| Subsequent Address Family Identifier (1 октет)   |
+--------------------------------------------------+
| Length of Next Hop Network Address (1 октет)     |
+--------------------------------------------------+
| Network Address of Next Hop (перемен.)           |
+--------------------------------------------------+
| Резерв (1 октет)                                 |
+--------------------------------------------------+
| Network Layer Reachability Information (перемен.)|
+--------------------------------------------------+

Назначение полей описано ниже.

Address Family Identifier (AFI) – идентификатор семейства адресов

Это поле в комбинации с полем Subsequent Address Family Identifier идентифицирует набор протоколов сетевого уровня, к которым должен относится адрес, передаваемый в поле Next Hop, способ представления адреса следующего интервала и семантику последующих данных NLRI. Если значение Next Hop разрешено для нескольких протоколов сетевого уровня, представление Next Hop должно обеспечивать способ определения протокола сетевого уровня.

Определенные к настоящему времени значения поля AFI заданы в реестре IANA Address Family Numbers [IANA-AF].

Subsequent Address Family Identifier (SAFI) – дополнительный идентификатор семейства адресов

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

Length of Next Hop Network Address – размер адреса следующего интервала

1-октетное поле, указывающее размер поля Network Address of Next Hop в октетах.

Network Address of Next Hop – сетевой адрес для следующего интервала

Поле переменной длины, содержащее адрес сетевого уровня для следующего маршрутизатора на пути к получателю. Протокол сетевого уровня, связанный с сетевым адресом следующего интервала, идентифицируется комбинацией значений полей <AFI, SAFI> в данном атрибуте.

Резерв

Это 1-октетное поле должно устанавливаться в 0, а при получении значение поля следует игнорировать.

Network Layer Reachability Information (NLRI) – информация о доступности на сетевом уровне

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

Если поле Subsequent Address Family Identifier содержит одно из значений, определенных в данном документе, каждое значение NLRI кодируется в соответствии с параграфом 5. Представление NLRI данного документа.

Информация о следующем интервале (next hop), передаваемая в атрибуте пути MP_REACH_NLRI, определяет адрес сетевого уровня маршрутизатора, который следует использовать в качестве следующего этапа пересылки адресатам, указанным в атрибуте MP_NLRI сообщения UPDATE.

Правила для информации о следующем интервале совпадают с правилами для информации, передаваемой в атрибуте BGP NEXT_HOP (см. параграф 5.1.3 документа [BGP-4]).

Сообщение UPDATE, содержащее MP_REACH_NLRI, должно также включать атрибуты ORIGIN и AS_PATH (как для EBGP, так и для IBGP). Более того, в обменах IBGP такие сообщения должны также включать атрибут LOCAL_PREF.

В сообщения UPDATE, не содержащие NLRI, кроме значения в атрибуте MP_REACH_NLRI, не следует включать атрибут NEXT_HOP. Если такое сообщение содержит атрибут NEXT_HOP, получившему это сообщение узлу BGP следует игнорировать данный атрибут.

В сообщение UPDATE не следует включать один префикс (одну пару <AFI, SAFI>) более одного раза для полей WITHDRAWN ROUTES, NLRI, MP_REACH_NLRI и MP_UNREACH_NLRI. Обработка сообщений UPDATE с дубликатами префиксов не определена.

4. MP_UNREACH_NLRI (тип 15)

Этот дополнительный нетранзитивный атрибут может использоваться для отзыва невозможных маршрутов.

Формат атрибута показан на рисунке.

+-----------------------------------------------+
| Address Family Identifier (2 октета)          |
+-----------------------------------------------+
| Subsequent Address Family Identifier (1 октет)|
+-----------------------------------------------+
| Withdrawn Routes (перемен.)                   |
+-----------------------------------------------+

Назначение полей атрибута описано ниже.

Address Family Identifier (AFI) – идентификатор семейства адресов

Это поле в комбинации с полем Subsequent Address Family Identifier идентифицирует набор протоколов сетевого уровня, к которым должен относится адрес, передаваемый в поле Next Hop, способ представления адреса следующего интервала и семантику последующих данных NLRI. Если значение Next Hop разрешено для нескольких протоколов сетевого уровня, представление Next Hop должно обеспечивать способ определения протокола сетевого уровня5.

Определенные к настоящему времени значения поля AFI заданы в реестре IANA Address Family Numbers [IANA-AF].

Subsequent Address Family Identifier (SAFI) – дополнительный идентификатор семейства адресов

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

Withdrawn Routes NLRI – отзываемые маршруты

Поле переменной длины, содержащее значения NLRI для отзываемых маршрутов. Семантика NLRI определяется комбинацией значений <AFI, SAFI> в атрибуте.

При установке в поле Subsequent Address Family Identifier одного из определенных в данном документе значений, каждое поле NLRI кодируется в соответствии с параграфом 5. Представление NLRI.

Сообщение UPDATE, содержащее MP_UNREACH_NLRI, может не включать других атрибутов пути.

5. Представление NLRI

Информация о доступности на сетевом уровне (NLRI) представляется в форме одной или множества пар <length, prefix>, показанных на рисунке.

+------------------+
| Length (1 октет) |
+------------------+
| Prefix (перемен.)|
+------------------+

Назначение каждого поля пар описано ниже.

  1. Length — размер

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

  2. Prefix — префикс

    Поле Prefix включает префикс адреса, за которым следуют нулевые биты заполнения для выравнивания поля по границе октета. Отметим, что нулевые биты заполнения не принимаются во внимание.

6. Дополнительный идентификатор семейства адресов

Этот документ определяет следующие значения поля Subsequent Address Family Identifier для атрибутов MP_REACH_NLRI и MP_UNREACH_NLRI:

1 – NLRI используется для unicast-пересылки (по конкретному адресу);

2 – NLRI используется для групповой пересылки.

Реализация может поддерживать все или часть определенных в этом документе значений SAFI или не поддерживать их совсем.

7. Обработка ошибок

Если узел BGP получает от соседа сообщение UPDATE с атрибутом MP_REACH_NLRI или MP_UNREACH_NLRI и видит, что атрибут указан некорректно, он должен удалить все маршруты BGP, полученные от данного соседа, в которых значения AFI/SAFI совпадают с одним из содержащихся в некорректном атрибуте MP_REACH_NLRI или MP_UNREACH_NLRI. До завершения сеанса BGP, в котором получено сообщение UPDATE, узлу следует игнорировать все последующие маршруты с данным AFI/SAFI, принятые в этой сессии.

В дополнение к сказанному узел может прервать сеанс BGP, в котором было получено сообщение UPDATE. Сессию следует прерывать с помощью сообщения NOTIFICATION, содержащего код/субкод ошибки Update Message Error/Optional Attribute Error.

8. Использование анонсирования возможностей BGP

Узлу BGP, использующему описанное здесь расширение, следует применять процедуры анонсирования возможностей (Capability Advertisement) [BGP-CAP] для определения возможности использования данного расширения при работе с тем или иным партнером.

Для полей дополнительного параметра Capabilities следует установить приведенные здесь значения. Поле Capability Code должно содержать значение 1 (указывает на Multiprotocol Extensions). Поле Capability Length должно иметь значение 4. Формат поля Capability Value показан на рисунке.

0       7      15      23      31
+-------+-------+-------+-------+
|      AFI      | Res.  | SAFI  |
+-------+-------+-------+-------+

Компоненты этого поля описаны ниже.

AFI — идентификатор семейства адресов (16 битов), представляемый так же, как для Multiprotocol Extensions;

Res. — резервное поле (8 битов); отправителю следует устанавливать для этого поля значение 07, а получателю – игнорировать его;

SAFI – дополнительный идентификатор семейства адресов (8 битов), представляемый так же, как для Multiprotocol Extensions.

Узел, поддерживающий множество пар <AFI, SAFI>, включает их как множество возможностей в дополнительный параметр Capabilities.

Чтобы организовать двухсторонний обмен маршрутной информацией для той или иной пары <AFI, SAFI> между двумя узлами BGP, каждый из этих узлов должен анонсировать партнеру (с помощью механизма Capability Advertisement) возможность поддержки маршрутов для соответствующей пары <AFI, SAFI>.

9. Согласование с IANA

Как указано выше, атрибуты MPL_REACH_NLRI и MP_UNREACH_NLRI содержат поле дополнительного идентификатора семейства адресов (SAFI). Пространство имен SAFI определено в данном документе. IANA поддерживает и регистрирует значения SAFI, как описано ниже.

  • значения 1 и 2 выделены в настоящем документе;
  • значение 3 является резервным; оно было выделено в RFC 2858 для целей, не получивших распространения, поэтому данный документ отменяет это выделение;
  • значения от 5 до 63 выделяются IANA с использованием процедуры стандартизации (Standards Action), определенной в [RFC2434], или процедуры предварительного распределения (Early IANA Allocation), определенной в [RFC4020];
  • SAFI из диапазона 67 — 127 распределяются IANA в порядке поступления запросов (процедура First Come First Served), как описано в RFC 2434;
  • значения 0 и 255 являются резервными;
  • значения от 128 до 240 являются часть выделенного ранее блока для приватного использования; на момент принятия данного документа неиспользуемые значения были предоставлены IANA руководителем Routing Area; во избежание конфликтов эти значения (130, 131, 135 — 139 и 141 — 240) рассматриваются, как резервные;
  • значения от 241 до 254 выделены для приватного использования и не распределяются IANA.

10. Сравнение с RFC 2858

Этот документ согласует использование информации о следующем интервале с информацией, передаваемой в атрибуте пути BGP NEXT_HOP.

Из документа удалено определение SAFI 3 и отменено использование SAFI 3.

В этом документе изменено распределение пространства значений SAFI. В частности, RFC 2858 определял значения SAFI от 128 до 240 для приватного использования. В данном документе распределение этого блока передается IANA и неиспользуемые значения 130, 131, 135 — 139 и 141 — 240 из этого диапазона следует рассматривать в качестве резервных.

В этом документе поле Number of SNPA8 переведено в состояние резервного, а последующие поля атрибута MP_REACH_NLRI, связанные с SNPA, удалены.

11. Сравнение с RFC 2283

Этот документ ограничивает атрибут MP_REACH_NLRI передачей единственного экземпляра <AFI, SAFI, Next Hop Information, …>.

Этот документ ограничивает атрибут MP_UNREACH_NLRI передачей единственного экземпляра <AFI, SAFI, …>.

Этот документ разъясняет обработку сообщений UPDATE, не содержащих NLRI, кроме значения в атрибуте MP_REACH_NLRI.

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

Этот документ содержит спецификацию использования анонсов возможностей BGP вместе с многопротокольными расширениями.

Этот документ включает раздел 9. Согласование с IANA.

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

Данное расширение не оказывает влияния на вопросы безопасности, связанные с протоколом BGP.

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

Авторы благодарят членов рабочей группы IDR за обзор и комментарии к документу.

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

[BGP-CAP] Chandra, R. and J. Scudder, «Capabilities Advertisement with BGP-4», RFC 3392, November 2002.

[BGP-4] Rekhter, Y., Li, T., and S. Hares, «A Border Gateway Protocol 4 (BGP-4)», RFC 4271, January 2006.

[IANA-AF] «Address Family Numbers», Reachable from http://www.iana.org/numbers.html

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

[RFC2434] Narten, T. and H. Alvestrand, «Guidelines for Writing an IANA Considerations Section in RFCs», BCP 26, RFC 2434, October 1998.

[RFC4020] Kompella, K. and A. Zinin, «Early IANA Allocation of Standards Track Code Points», BCP 100, RFC 4020, February 2005.

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

Tony Bates

Cisco Systems, Inc.

EMail: tbates@cisco.com

Ravi Chandra

Sonoa Systems

EMail: rchandra@sonoasystems.com

Dave Katz

Juniper Networks, Inc.

EMail: dkatz@juniper.net

Yakov Rekhter

Juniper Networks, Inc.

EMail: yakov@juniper.net


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

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

nmalykh@gmail.com

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

Copyright (C) The IETF Trust (2007).

К этому документу применимы права, лицензии и ограничения, указанные в 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.


1Дополнительное семейство адресов.

2Multiprotocol Reachable NLRI

3Multiprotocol Unreachable NLRI

4Network Layer Reachability Information – информация о доступности на сетевом уровне.

5Yakov Rekhter предложил иную редакцию этого абзаца (см. http://rfc-editor.org/errata_search.php?eid=1573). «Это поле в комбинации с полем Subsequent Address Family Identifier определяет семантику информации NLRI для отзываемых этим атрибутом маршрутов.» Прим. перев.

7Отметим, что если это поле не сбрасывать в 0, могут возникать проблемы с получателями, которые не будут игнорировать значение поля. Кроме того, могут возникать проблемы при переопределении этого поля.

8Subnetwork Points of Attachment — точки подключения подсетей. Прим. перев.

9В настоящее время этот документ утратил силу и заменен RFC 5492. Прим. перев.

11В настоящее время этот документ утратил силу и заменен RFC 5226. Прим. перев.

Сохранить

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

RFC 4742 Using the NETCONF Configuration Protocol over Secure SHell (SSH)

Заменен RFC 6242.

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

RFC 4786 Operation of Anycast Services

Network Working Group                                       J. Abley
Request for Comments: 4786                            Afilias Canada
BCP: 126                                                K. Lindqvist
Category: Best Current Practice             Netnod Internet Exchange
                                                       December 2006

 

Работа anycast-служб

Operation of Anycast Services

PDF

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

В этом документе описывается накопленный опыт (BCP1) и содержится запрос к дискуссии в целях дальнейшего развития и совершенствования. Документ может распространяться без ограничений.

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

Copyright (C) The IETF Trust (2006).

Аннотация

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

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

1. Введение

Этот документ адресован сетевым операторам, которые заинтересованы в развертывании или уже используют распределенные службы на базе anycast. Документ описывает накопленный опыт, но не дает рекомендаций в части выбора сетевых служб, которые имеет (или не имеет) смысл реализовать с использованием технологии anycast.

Для описания сервиса, использующего anycast, эта услуга сначала ассоциируется со стабильным набором адресов IP и доступность этих адресов анонсируется в систему маршрутизации множеством независимых узлов сервиса. Различные методы реализации услуг на основе anycast рассмотрены в [RFC1546], [ISC-TN-2003-1] и [ISC-TN-2004-1].

Описанные в этом документе методы и соображения применимы как для IPv4, так и для IPv6.

Технология anycast в последние годы стала более популярным решением для резервирования серверов DNS в дополнение к средствам резервирования, обеспечиваемым самой архитектурой DNS. Некоторые операторы корневых серверов DNS распределяют свои серверы по сети Internet, а преобразователи и полномочные серверы в общем случае распределены по сетям сервис-провайдеров. Технология anycast используется коммерческими операторами полномочных серверов DNS уже в течение нескольких лет. Применение технологии anycast не ограничено DNS, хотя ее использование вносит создает дополнительные ограничения для распространяемого с использованием anycast-адресации сервиса, включая время жизни транзакций, сохранение данных о состоянии транзакций на серверах и возможности синхронизации данных.

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

В этом документе описано использование anycast как в локальном масштабе с использованием протокола маршрутизации IGP2, так и в глобальном масштабе с использованием протокола BGP3 [RFC4271]. Многие вопросы мониторинга и синхронизации данных являются общими для обоих вариантов, но развертывание сервиса существенно различается.

2. Термины

Service Address — адрес службы (сервиса)

Адрес IP, связанный с определенной службой (например, адрес получателя, используемый преобразователями DNS для доступа к определенному полномочному серверу).

Anycast

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

Anycast Node — узел anycast

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

Catchment — зона охвата

В физической географии — область водосбора реки, которую называют также бассейном реки (drainage basin). По аналогии в данном документе термин используется для обозначения топологической области сети, в пределах которой пакеты, направленные по anycast-адресу, маршрутизируются одному определенному узлу.

Local-Scope Anycast — локальный сервис anycast

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

Local Node — локальный узел

Узел anycast, обеспечивающий услуги по anycast адресу с локальной значимостью.

Global-Scope Anycast — глобальный сервис anycast

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

Global Node — глобальный узел

Узел anycast, обеспечивающий услуги по anycast адресу с глобальной значимостью.

3. Распространение услуг anycast

3.1. Общее описание

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

Для услуг, предоставляемых с использованием технологии anycast, не возникает унаследованных требований перенаправления на другие серверы или распространение услуг на основе имен (round-robin DNS), хотя эти методы могут использоваться совместно с anycast-распространением услуг, если это нужно приложениям. Система маршрутизации решает, какой узел используется для каждого запроса, на основе топологии системы маршрутизации и точек сети, откуда поступают запросы.

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

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

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

3.2. Цели

Услуги могут предоставляться с использованием anycast по разным причинам, включая нижеперечисленные.

  1. Грубое (несбалансированное) распределение нагрузки между узлами, позволяющее масштабировать инфраструктуру по мере роста числа запросов (в том числе, пиковых нагрузок).
  2. Снижение угроз от нераспределенных атак на службы за счет локализации негативного воздействия на одном узле anycast.
  3. Ограничение распределенных атак на службы и скопления пользователей локальными областями вокруг anycast-узлов. Распространение услуг с использованием технологии anycast обеспечивает возможность обработки трафика вблизи его источника, возможно с использованием высокоскоростных партнерских соединений вместо загрузки дорогостоящих транзитных каналов.
  4. Обеспечение дополнительной информации, помогающей определить местоположение источников трафика в случаях атак (или запросов) с использованием подставных адресов отправителей. Эта возможность обусловлена тем, что при распространении услуг по технологии anycast выбор сервисного узла для конкретного запроса может быть топологически связан с источником запроса.
  5. Снижения времени отклика на запросы за счет укорочения пути через сеть между клиентом и сервером при получении услуг от локального anycast-узла. Уровень снижения времени отклика на запросы зависит от способа выбора отвечающего узла в системе маршрутизации. Топологическая близость в системе маршрутизации в общем случае не коррелирует со временем кругового обхода через сеть; в некоторых случаях время отклика может не снижаться, а расти.
  6. Уменьшения списка серверов до одного распределенного адреса. Например, большое число полномочных серверов имен для зоны может быть развернуто с использованием небольшого числа anycast-адресов служб; такое решение может существенно повысить уровень доступности данных зоны в системе DNS без увеличения времени отклика, связанного с обращением к полномочным серверам родительской зоны.

4. Схема

4.1. Приемлемость протоколов

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

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

Услуги могут предоставляться с использованием anycast в предсказуемых системах маршрутизации, которые могут сохранять стабильность достаточно долго (например, anycast в хорошо управляемых и топологически простых системах IGP, где выбор узла меняется только в случаях отказа на каком-либо канале). Другие варианты развертывания имеют менее предсказуемые характеристики (см. параграф 4.4.7).

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

В этом документе преднамеренно не задается никаких правил определения приемлемости тех или иных протоколов для anycast-распространения — такая попытка была бы дерзостью.

Операторам следует соблюдать осторожность, особенно для продолжительных потоков, поскольку отказы в режиме anycast несколько сложней простых отказов «destination unreachable» (адресат недоступен) в режиме unicast.

4.2. Размещение узлов

Выбор места размещения узлов anycast зависит от сферы распространения сервиса. Например:

  • Услуги рекурсивного преобразования DNS могут распространяться в сети ISP с использованием одного узла anycast на сайт.
  • Корневые серверы DNS могут быть распределены по сети Internet; узлы anycast могут располагаться в регионах со слабой внешней связностью для того, чтобы услуги DNS предоставлялись в регионе даже в случаях отказов на внешних сетях.
  • Зеркала сервера FTP могут включать локальные узлы, размещаемые в точках обмена, чтобы подключенные к таким точкам ISP могли позволяли загружать большие файлы без использования дорогих транзитных каналов.

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

4.3. Системы маршрутизации

4.3.1. Anycast в IGP

Существует несколько факторов общего плана, стимулирующих распространение адреса службы в пределах IGP:

  1. снижение времени отклика за счет размещения сервиса ближе к потребителям;
  2. повышение надежности обслуживания за счет автоматического переключения на резервные узлы;
  3. локализация трафика для предотвращения загрузки внешних каналов.

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

Когда услуга предоставляется в режиме anycast внутри системы IGP, вся система маршрутизации обычно находится под контролем той же организации, которая предоставляет услуги, и, следовательно, параметры транзакций и стабильности сети известны достаточно хорошо. В таком случае описанная технология применима к большему числу приложений, нежели распространение услуг по технологии anycast в масштабе сети Internet (см. параграф 4.1).

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

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

За счет сокращения области IGP до обеспечивающих сервис хостов (вместе с одним или несколькими граничными маршрутизаторами) этот метод можно использовать для создания серверных кластеров. Такое применение описано в работе [ISC-TN-2004-1].

4.3.2. Anycast в глобальной сети Internet

Адреса служб могут быть типа anycast в глобальной системе маршрутизации Internet для распространения сервиса в масштабе всей сети. Принципиальные различия между таким применением и распространением сервиса в масштабе IGP, описанном в параграфе 4.3.1, состоят в том, что:

  1. система маршрутизации в общем случае контролируется другими людьми;
  2. используемый протокол маршрутизации (BGP) и общепринятая практика его использования вносят дополнительные ограничения (см. параграф 4.4).

4.4. Вопросы маршрутизации

4.4.1. Сигнализация доступности услуг

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

Когда маршрутный анонс от узла соответствует одному адресу службы, связь может быть обеспечения констатацией доступности сервиса по анонсу маршрута и недоступности — по отзыву. Этого можно добиться используя реализацию протокола маршрутизации на том же сервере. Такие реализации обеспечивают поддержку распространяемого сервиса и настраиваются так, чтобы маршрут анонсировался и отзывался в соответствии с доступностью (и состоянием) программ, обеспечивающих обслуживание сервисных запросов. Пример такой реализации для сервиса DNS описан в работе [ISC-TN-2004-1].

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

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

4.4.2. Покрывающий префикс

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

В таких случаях необходимо распространять маршрут, который покрывает адрес службы и имеет достаточно короткий префикс, который не будет отбрасываться в соответствии с общепринятыми правилами импорта маршрутов. Для адресов IPv4 обычно достаточно сократить префикс до 24 битов, но существуют другие хорошо документированные примеры правил импорта IPv4, которые используют при фильтрации префиксов на границах RIR4, поэтому могут потребоваться эксперименты по определению подходящего размера префикса. Для префиксов IPv6 также существуют соответствующие правила. Дополнительное рассмотрение адресов служб в формате IPv6 и соответствующих маршрутов anycast приведено в параграфе 4.5.

При распространении одного маршрута на сервис возникают некоторые проблемы масштабирования, описанные в параграфе 4.4.8.

Когда множество адресов служб покрывается одним маршрутом, теряется возможность связать анонсирование маршрута с отдельными службами, связанными с покрываемыми маршрутами к хостам. Связанное с этим влияние на сигнализацию доступности конкретного сервиса рассматривается в параграфах 4.4.1 и 4.8.

4.4.3. Равноценные пути

Некоторые системы маршрутизации поддерживают равноценные пути к получателям. В тех случаях, когда существует несколько равноценных путей, ведущих к различным узлам anycast, возникает риск передачи разных пакетов с запросами одной транзакции нескольким узлам. Услуги, предоставляемые по протоколу TCP [RFC0793] обязательно включают множество пакетов с запросами, поскольку протокол TCP использует процедуру согласования при организации соединений.

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

Равноценные пути часто встречаются в IGP. Выбора множества узлов для одной транзакции обычно удается избежать при аккуратном учете метрики каналов IGP или за счет использования алгоритма выбора из множества равноценных путей (ECMP5), который обеспечивает выбор единственного узла для транзакции, включающей множество пакетов. Например, использование алгоритма ECMP на основе хэширования для распространения anycast-сервиса описано в работе [ISC-TN-2004-1].

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

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

  1. реализация PPLB на множестве параллельных каналов между парой маршрутизаторов не будет создавать проблем при выборе узла;
  2. реализация PPLB на разных путях внутри автономной системы (AS), сходящихся на выходе из AS, будет вызывать проблемы при выборе узла;
  3. PPLB на каналах в разные соседние AS, где выбираются разные узлы для одного anycast-сервиса, будет в общем случае приводить к распределению пакетов с запросами между множеством узлов anycast; это приведет к тому, что услуги anycast станут недоступными для клиентов нисходящего направления в сторону маршрутизатора, выполняющего PPLB.

Использование PPLB, способного негативно воздействовать на распространение услуг anycast, может также создавать постоянное изменение порядка доставки пакетов. Путь, на котором постоянно меняется порядок следования сегментов, будет приводить к снижению производительности приложений TCP [Allman2000]. TCP по результатам опубликованных измерений ([McCreary2000], [Fomenkov2004]) широко используется в Internet для транзакций с большими объемами данных. Следовательно, во многих случаях имеет смысл рассматривать сети с таким использованием PPLB, как патологические.

4.4.4. Подавление маршрутов

Частые анонсы и отзывы отдельных префиксов в BGP называют хлопками (flap). Это явление может приводить к перегрузке процессоров (CPU) в маршрутизаторах, достаточно удаленных от источника нестабильности. По этой причине быстрые осцилляции маршрутов зачастую подавляются (демпфируются), как описано в [RFC2439].

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

Некоторые реализации подавления осцилляций работают на основе наблюдаемых значений AS_PATH, а не NLRI7 (см. [RFC4271]). По этой причине нестабильность сети, ведущая к осцилляциям маршрута для одного узла anycast, в общем случае не будет вызывать подавления такими реализациями анонсов от других узлов (с иными атрибутами AS_PATH).

Чтобы ограничить в таких реализациях подавление анонсов от других узлов anycast в ответ на осцилляции одного узла, следует сделать атрибуты AS_PATH от разных узлов максимально различающимися. Например, узлам anycast следует использовать в своих анонсах одинаковое значение исходной AS, но они могут указывать разные AS восходящего направления.

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

  1. разумное сочетание локальных узлов с достаточно стабильными глобальными узлами (надежные соединения между AS, резервирование оборудования и питания и т. п.) может ограничить область негативного влияния нестабильности локальных узлов;
  2. жесткое подавление осцилляций вблизи источника (например, в локальной автономной системе узла anycast или в смежных AS каждого узла anycast) также позволяет снизить негативное влияние осцилляций на удаленные AS.

4.4.5. Проверка обратного пути

Проверка обратного пути (RPF8), впервые описанная в [RFC2267], обычно развертывается, как часть входной фильтрации пакетов на маршрутизаторах Internet для отбрасывания пакетов с подставными адресами отправителей (см. также [RFC2827]). Развернутые реализации RPF поддерживают несколько режимов работы (например, loose9 и strict).

Некоторые режимы RPF могут приводить к отказу от приема пакетов с корректными адресами отправителей, когда эти пакеты приходят от многодомных сайтов, поскольку выбранный путь может представляться не соответствующим входному интерфейсу. Этот вопрос рассматривается в [RFC3704].

Множество anycast-узлов, распределенных по сети Internet, с точки зрения системы маршрутизации трудно отличить от многодомного сайта. Следовательно, существует риск ошибочного отбрасывания anycast-пакетов входными фильтрами маршрутизаторов даже если они отправлены не многодомными узлами. Следует принимать меры, чтобы к каждому узлу anycast фильтры относились, как к многодомной сети, и выполнялись соответствующие рекомендации [RFC3704] в части RPF.

4.4.6. Область распространения

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

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

Иногда желательно реализовать anycast-узел так, чтобы услуги предоставлялись только в масштабе локальной автономной системы и не были доступными из остальной сети Internet; такие узлы в этом документе называются локальными (Local Node). Примером может служить развертывание локального узла для обслуживания региона с хорошей внутренней связностью, но ненадежными, дорогими и перегруженными соединениями с остальной частью Internet.

Локальные узлы анонсируют покрывающие маршруты для адресов служб так, чтобы распространение этих маршрутов было ограничено. Для ограничения могут использоваться общеизвестные символьные атрибуты групп (community) типа NO_EXPORT [RFC1997] или NOPEER [RFC3765], а также партнерские соглашения по реализации специальной (peering) политики импорта вместо обычной (transit) или некоторым иным мерам ограничения.

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

4.4.7. Чужие сети

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

Стабильность и предсказуемость такой системы маршрутизации следует принимать во внимание при решении вопроса о выборе технологии anycast для конкретных услуг или протоколов (см. также параграф 4.1).

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

4.4.8. Риски, связанные с агрегированием

Распространение отдельного маршрута для каждого сервиса anycast не обеспечивает требуемого уровня масштабирования для систем маршрутизации, в которых передача маршрутной информации имеет важное значение и возможно использование множества услуг anycast. Например, автономной системе, поддерживающей доступ в Internet и включающей N адресов служб, обеспечиваемых по технологии anycast, потребуется анонсировать (по крайней мере — прим. перев.) N+1 маршрут, если для каждой службы анонсируется отдельный маршрут.

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

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

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

4.5. Вопросы адресации

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

Для сервиса IPv4, развернутого в сети Internet, например, адрес можно выбрать из блока, где минимальный размер выделения RIR составляет 24 бита и доступность адреса можно анонсировать с использованием покрывающего префикса размером 24 бита.

Для сервиса IPv4 в частной сети можно использовать специально выделенные для таких сетей адреса [RFC1918] и (32 бита).

Для сервиса IPv6 адреса anycast не рассматриваются отдельно от обычных (unicast) адресов. Поэтому рекомендации по выбору адресов IPv4 подходят и для IPv6. Отметим, давние запреты на распространение услуг по технологии anycast для IPv6 были удалены из спецификации адресов IPv6 [RFC4291].

4.6. Синхронизация данных

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

Механизм синхронизации данных зависит от природы этих данных. Примерами могут служить перенос зон для полномочных серверов DNS или операции rsync для архивов FTP. В общем случае синхронизация данных между узлами anycast будет включать транзакции между обычными (не-anycast) адресами.

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

4.7. Автономность узлов

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

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

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

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

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

4.8. Мультисервисные узлы

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

В следующих параграфах описано несколько вариантов решения этой задачи.

4.8.1. Множество покрывающих префиксов

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

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

4.8.2. Общий префикс

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

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

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

4.8.3. Связность внутри узла

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

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

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

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

4.9. Идентификация узла клиентами

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

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

Поиск неисправностей в anycast-системах можно существенно упростить с помощью механизмов идентификации узлов, встроенных в протокол. Примерами таких механизмов могут служить опция NSID в DNS [NSID] и общепринятое включение имени хоста для сервера SMTP на этапе представления в начале почтовой сессии [RFC2821].

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

5. Управление сервисом

5.1. Мониторинг

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

Для мониторинга распределенных услуг рекомендуется распределять зонды по всей системе маршрутизации и, по возможности, идентифицировать узлы, отвечающие на запросы, сохраняя информацию об узле вместе со статистикой производительности и доступности. Примером такого мониторинга для системы DNS может служить сервис RIPE NCC DNSMON [DNSMON].

Мониторинг системы маршрутизации (из разных точек в тех случаях, когда это уместно) также может давать информацию, полезную при поиске неисправностей в распределенном сервисе. Такой мониторинг можно организовать на основе специализированных зондов или публичных средств контроля маршрутов в Internet типа RIPE NCC Routing Information Service [RIS] или проекта Route Views университета штата Орего [ROUTEVIEWS].

Мониторинг состояния компонент распределенного anycast-сервиса (хостов, маршрутизаторов и т. п.) является достаточно эффективным способом и может быть организован с использованием тех же средств и методов, которые обычно служат для мониторинга других сетевых инфраструктур. Использование технологии anycast в данном случае не создает дополнительных сложностей.

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

6.1. Ослабление атак на службы (DoS)

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

  1. Узлы anycast могут «поглощать» вредоносный трафик, происходящих из их сферы влияния, предотвращая воздействие атаки на другие узлы сервиса.
  2. Приложения, сталкивающиеся с распределенными атаками на службы, сами по себе распределены между всеми узлами, принимающими участие в сервисе. Поскольку задача сортировки легитимного и вредоносного трафика распределяется по сети, это может обеспечивать более эффективное масштабирование по сравнению с локальной организацией сервиса.

6.2. Компрометация сервиса

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

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

6.3. Захват сервиса

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

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

Многие протоколы, включающие идентификацию и защиту целостности, обеспечивают отказоустойчивость этих функций. Примерами могут служить периодическая повторная идентификация в рамках одного сеанса, контроль целостности на уровне канала (например, [RFC2845], [RFC3207]) или сообщения (например, [RFC4033], [RFC2311]). Менее отказоустойчивые протоколы могут быть более подвержены захвату сеансов, предоставляя возможности недетектируемого захвата anycast-служб. Поэтому для систем anycast рекомендуется использовать протоколы, требующие идентификации и обеспечивающие контроль целостности.

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

Авторы выражают свою признательность участникам рабочей группы GROW и, в частности, Geoff Huston, Pekka Savola, Danny McPherson, Ben Black и Alan Barrett.

Работа поддерживалась US National Science Foundation (исследовательский грант SCI-0427144) и DNS-OARC.

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

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

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

[RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and E. Lear, «Address Allocation for Private Internets», BCP 5, RFC 1918, February 1996.

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

[RFC2439] Villamizar, C., Chandra, R., and R. Govindan, «BGP Route Flap Damping», RFC 2439, November 1998.

[RFC2827] 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.

[RFC3704] Baker, F. and P. Savola, «Ingress Filtering for Multihomed Networks», BCP 84, RFC 3704, March 2004.

[RFC4271] Rekhter, Y., Li, T., and S. Hares, «A Border Gateway Protocol 4 (BGP-4)», RFC 4271, January 2006.

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

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

[Allman2000] Allman, M. and E. Blanton, «On Making TCP More Robust to Packet Reordering», January 2000, <http://www.icir.org/mallman/papers/tcp-reorder-ccr.ps>.

[DNSMON] «RIPE NCC DNS Monitoring Services», <http://dnsmon.ripe.net/>.

[Fomenkov2004] Fomenkov, M., Keys, K., Moore, D., and k. Claffy, «Longitudinal Study of Internet Traffic from 1999-2003», January 2004, <http://www.caida.org/outreach/papers/2003/nlanr/nlanr_overview.pdf>.

[ISC-TN-2003-1] Abley, J., «Hierarchical Anycast for Global Service Distribution», March 2003, <http://www.isc.org/pubs/tn/isc-tn-2003-1.html>.

[ISC-TN-2004-1] Abley, J., «A Software Approach to Distributing Requests for DNS Service using GNU Zebra, ISC BIND 9 and FreeBSD», March 2004, <http://www.isc.org/pubs/tn/isc-tn-2004-1.html>.

[McCreary2000] McCreary, S. and k. claffy, «Trends in Wide Area IP Traffic Patterns: A View from Ames Internet Exchange», September 2000, <http://www.caida.org/outreach/papers/2000/AIX0005/AIX0005.pdf>.

[NSID] Austein, R., «DNS Name Server Identifier Option (NSID)», Work in Progress, June 2006.

[RFC1546] Partridge, C., Mendez, T., and W. Milliken, «Host Anycasting Service», RFC 1546, November 1993.

[RFC2267] Ferguson, P. and D. Senie, «Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing», RFC 2267, January 1998.

[RFC2311] Dusse, S., Hoffman, P., Ramsdell, B., Lundblade, L., and L. Repka, «S/MIME Version 2 Message Specification», RFC 2311, March 1998.

[RFC2821] Klensin, J., «Simple Mail Transfer Protocol», RFC 2821, April 2001.

[RFC2845] Vixie, P., Gudmundsson, O., Eastlake, D., and B. Wellington, «Secret Key Transaction Authentication for DNS (TSIG)», RFC 2845, May 2000.

[RFC3207] Hoffman, P., «SMTP Service Extension for Secure SMTP over Transport Layer Security», RFC 3207, February 2002.

[RFC3765] Huston, G., «NOPEER Community for Border Gateway Protocol (BGP) Route Scope Control», RFC 3765, April 2004.

[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, «DNS Security Introduction and Requirements», RFC 4033, March 2005.

[RIS] «RIPE NCC Routing Information Service (RIS)», <http://ris.ripe.net>.

[ROUTEVIEWS] «University of Oregon Route Views Project», <http://www.routeviews.org/>.

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

Joe Abley

Afilias Canada, Corp.

204 — 4141 Yonge Street

Toronto, ON M2P 2A8

Canada

Phone: +1 416 673 4176

EMail: jabley@ca.afilias.info

URI: http://afilias.info/

Kurt Erik Lindqvist

Netnod Internet Exchange

Bellmansgatan 30

118 47 Stockholm

Sweden

EMail: kurtis@kurtis.pp.se

URI: http://www.netnod.se/


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

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

nmalykh@protokols.ru

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

Copyright (C) The IETF Trust (2006).

К этому документу применимы права, лицензии и ограничения, указанные в 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.


1Best Current Practices.

2Interior Gateway Protocol — протокол внутреннего шлюза.

3Border Gateway Protocol — протокол граничного шлюза.

4Regional Internet Registry — региональный регистратор Internet.

5equal-cost multi-path.

6Per Packet Load Balancing.

7Network Layer Reachability Information — информация о доступности на сетевом уровне.

8Reverse Path Forwarding — путь обратной пересылки.

9Мягкий, свободный и жесткий, соответственно. Прим. перев.

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

RFC 4741 NETCONF Configuration Protocol

Заменен RFC 6241.

Рубрика: RFC | Комментарии к записи RFC 4741 NETCONF Configuration Protocol отключены

RFC 4737 Packet Reordering Metrics

Network Working Group                                          A. Morton
Request for Comments: 4737                                 L. Ciavattone
Category: Standards Track                                G. Ramachandran
                                                               AT&T Labs
                                                             S. Shalunov
                                                               Internet2
                                                               J. Perser
                                                                Veriwave
                                                           November 2006

Packet Reordering Metrics

Показатели разупорядочения пакетов

PDF

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

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

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

Copyright (C) The IETF Trust (2006).

Аннотация

Этот документ определяет показатели для оценки нарушения порядка доставки пакетов. Приводятся мотивы введения новых показателей и обсуждаются вопросы измерения, включая данные о контексте, требуемые для измерений. Сначала определяется одиночная (singleton) фиксация нарушения порядка, которая затем служит основой для выборки количественных значений степени разупорядочения в нескольких измерениях для характеризации сети или устройства получателя. Дополнительные показатели количественно оценивают частоту нарушения порядка и «расстояние» между отдельными нарушениями. Затем определяется метрика, ориентированная на влияние нарушения порядка на протокол TCP. Приведено несколько примеров оценки с использованием разных показателей. В приложении даны расширенные определения для оценки разупорядоченности при наличии фрагментов.

1. Введение

Упорядоченное прибытие — это свойство, обнаруживаемое для пакетов, проходящих по своему пути, когда порядковый номер в каждом прибывающем пакете возрастает по сравнению с предшественником. В протоколах Internet Protocol (IP) [RFC791] [RFC2460] нет механизма упорядоченной доставки и протоколам вышележащих уровней (над IP) следует быть готовыми к обработке потерь и нарушения порядка доставки. В этом документе определяются показатели разупорядочения пакетов.

Уникальный порядковый идентификатор в каждом пакете, например, инкрементируемый целочисленный номер сообщения, задаёт исходный порядок пакетов. Обнаружение разупорядочения на приёмной стороне основано на сравнении порядка поступления пакетов с их исходной нумерацией [Cia03].

Этот показатель согласуется с [RFC2330] и классифицирует полученные пакеты с номером меньше полученного ранее как разупорядоченные (out-of-order). Например, если пакеты поступают в порядке 1,2,4,5,3, пакет 3 будет разупорядоченным. Это эквивалентно определению разупорядочения Paxon [Pax98], где «запоздавшие» пакеты объявляются разупорядоченными. Другим вариантом является выделение «преждевременных» пакетов (4 и 5 в пример), но это можно отличить от потери пакета лишь по прибытии пакета 3. Фокусировка на просроченных пакетах позволяет обеспечить ортогональность (независимость) от показателей потери пакетов. Показатель очень похож на проверку пространства последовательностей принятых сегментов в [RFC793]. Более ранние работы по определению упорядоченной доставки включают [Cia00], [Ben99], [Lou01], [Bel02], [Jai02], [Cia03].

1.1. Мотивация

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

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

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

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

  • Протокол повтора передачи L2 для компенсации ошибок может нарушать порядок доставки.

  • Обслуживание буферизованных пакетов не в порядке их поступления может нарушать порядок доставки.

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

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

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

1.2. Цели и задачи

Приведённые ниже определения предназначены для достижения указанных ниже целей.

  1. Обнаружение наличия или отсутствия нарушения порядка пакетов.

  2. Количественная оценка степени разупорядоченности (Для этого в документе определено несколько параметров, поскольку в протоколах и приложениях применяются разные процедуры приёма. Так как влияние разупорядочение зависит от этих процедур, параметр количественной оценки ключевых аспектов поведения одного получателя может не подходить для других получателей. Если в отчёте указаны все показатели, определённые ниже, это даст широкое представление об условиях нарушения порядка.).

Показатели нарушения порядка должны:

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

  • быть вычисляемыми «на лету»;

  • работать даже при дублировании или потере пакетов из потока.

Желательно, чтобы показатели разупорядоченности имели хотя бы один из приведённых ниже атрибутов:

  • способность объединять результаты из разных сегментов пути для оценки нарушения порядка на всем пути;

  • простота расчётов и понимания;

  • соответствие устройству протокола TCP;

  • соответствие требованиям производительности в реальном масштабе времени.

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

1.3. Контекст, требуемый для всех показателей

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

  1. Идентификаторы Packet of Type-P [RFC2330] для потока пакетов, включая транспортные адреса источника и получателя, а также любые другие данные, которые могут влиять на различную трактовку пакетов.

  2. Набор параметров потока для дисциплины отправки, таких как уникальные параметры периодических потоков (как в [RFC3432]), потоков в стиле TCP (как в [RFC3148]) или потоков Пуассона (как в [RFC2330]). Параметры потока включают размер пакетов, заданный фиксированным значением или картиной (pattern) размеров (что из них применимо).

При указании показателя в отчёте должно включаться описание этих параметров для обеспечения контекста.

2. Используемые соглашения

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

В этом документе символы <= означают «меньше или равно», а >= — «больше или равно».

3. Показатель одиночного нарушения порядка

Модель IPPM [RFC2330] выделяет одиночные измерения (singleton), выборки (sample) и статистику (statistics).

Одноэлементной (singleton) метрикой называются показатели, которые по сути неделимы (атомарны). Например, единичный экземпляр «общей пропускной способности» от одного хоста к другому можно определить как singleton-метрику, даже несмотря на то, что измерение включает множество пакетов Internet.

Для оценки порядка пакетов требуются некоторые концепции поддержки. Первая связана с алгоритмом (функцией), создающей серию строго монотонно возрастающих идентификаторов, применяемых для пакетов у отправителя для организации однозначного порядка передачи (функция g(x) возрастает строго монотонно, если для любого x>y выполняется условие g(x)>g(y)). Уникальный последовательный идентификатор может бить просто возрастающим по порядку целым числом или порядковым номером, как указано ниже. Процедура перехода порядкового номера через максимум описана в разделе 6. Вопросы измерений и реализации.

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

Каждый пакет в потоке можно оценить с помощью этого показателя одиночных измерений (singleton metric).

3.1. Название показателя

Type-P-Reordered

3.2. Параметры показателя

  • Src — IP-адрес хоста.

  • Dst — IP-адрес хоста.

  • SrcTime — время отправки пакета источником (или время в линии — wire time).

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

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

Необязательные параметры

  • PayloadSize — число байтов в информационном поле, которое указывают, когда значение SrcByte основано на числе переданных байтов.

  • SrcByte — порядковый номер пакета, основанный на количестве переданных в пакетах данных.

3.3. Определение

Если обнаружено, что пакет s (передан в момент SrcTime) нарушает порядок при сравнении со значением NextExp, для него устанавливается Type-P-Reordered = TRUE. В ином случае Type-P-Reordered = FALSE, как определено ниже.

Type-P-Reordered принимает значение TRUE, если s < NextExp (пакет нарушает порядок). Значение NextExp в этом случае не меняется.

Type-P-Reordered принимает значение FALSE, если s >= NextExp (пакет не ). В этом случае устанавливается NextExp = set to s+1 для сравнения со следующим пакетом.

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

Приведённое определение можно записать в псевдокоде на момент получения пакета с порядковым номером s.

        if s >= NextExp then /* s сохраняет порядок */
                NextExp = s + 1;
                Type-P-Reordered = False;
        else     /* когда s < NextExp */
                Type-P-Reordered = True

3.4. Определение пропуска номеров

Пакеты с s > NextExp являются особым случаем упорядоченной доставки. Это условие показывает разрыв последовательности из-за потери пакетов или нарушения их порядка. Чтобы счесть разрыв в номерах прерыванием разупорядочения должны быть получены пакеты с нарушением порядка (4. Показатели выборки).

Определим два случая для упорядоченных пакетов.

При s = NextExp исходная нумерация сохраняется и пропуска номеров нет.

Значение s > NextExp говорит, что некоторые пакеты исходной последовательности ещё не прибыли и в нумерации оказываются пропуск, связанный с пакетом s. Пропущенные номера s — NextExp указывают число пакетов, отсутствующих в результате потери или нарушения порядка.

Приведённое определение можно записать в псевдокоде на момент получения пакета с порядковым номером s.

        if s >= NextExp, then /* s сохраняет порядок */
                if s > NextExp then
                          SequenceDiscontinuty = True;
                          SeqDiscontinutySize = s - NextExp;
                else
                          SequenceDiscontinuty = False;
                NextExp = s + 1;
                Type-P-Reordered = False;
        else /* когда s < NextExp */
                Type-P-Reordered = True;
                SequenceDiscontinuty = False;

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

3.5. Оценка нарушения порядка во времени или байтах

Можно воспользоваться другими измерениями (время, переданные данные — payload) в определении переупорядочения в параграфе 3.3, если значение SrcTime и SrcBytes уникальны и надежны. Разрывы в нумерации легко определить и обнаружить путём нумерации сообщений, однако это усложняется при использовании времени или байтов. Это препятствует использованию упомянутых измерений, поскольку обнаружение пропусков в нумерации играет ключевую роль для описанных ниже показателей выборки.

Можно обнаружить пропуски в номерах с помощью нумерации байтов данных (payload), но это подходит лишь для случаев, когда тестовое устройство точно знает, какое значение присвоит NextExp при получении пакета. Это возможно при наличии у получателя полной картины размеров данных или при создании этой картины с использованием генератора псевдослучайных чисел и общей «затравки» (seed). Если размер данных не меняется, нумерация байтов ведёт к неоправданному усложнению по сравнению с нумерацией сообщений.

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

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

3.6. Обсуждение

Любой прибывающий пакет из последовательности, устанавливающей NextExp, можно проверить на предмет нарушения порядка. Если значение NextExp не определено (Undefined), поскольку прибывший пакет является первым в последовательности), пакет считается упорядоченным (Type-P-Reordered=FALSE).

Этот показатель позволяет собрать пакет из фрагментов до проверки упорядоченности. В принципе, можно применять показатель Type-P-Reordered для оценки порядка доставки фрагментов, но тогда в каждом фрагменте нужны сведения о порядке. Более подробно это рассматривается ниже — Приложение B. Оценка порядка фрагментов (информативное)

При получении дубликатов (несколько неповреждённых копий) они должны помечаться и для последующего анализа выбирается лишь первый пакет (копии считаются разупорядоченными в соответствии с данным выше определением). Это оказывает такое же влияние на хранение, как более ранние показатели IPPM, и соответствует прецеденту [RFC2679]. В разделе 6. Вопросы измерений и реализации предлагается минимизировать размер хранилища.

4. Показатели выборки

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

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

4.1. Доля разупорядоченных пакетов

4.1.1. Имя показателя

Type-P-Reordered-Ratio-Stream

4.1.2. Параметры показателя

Набор параметров включает одиночные параметры Type-P-Reordered — уникальные параметры пуассоновских потоков (как в [RFC2330]), периодических потоков (как в [RFC3432]) или потоков в стиле TCP (как в [RFC3148]), размер пакетов или картину размеров, а также:

  • T0 — время старта;

  • Tf — время завершения;

  • dT — время ожидания прибытия для каждого пакета (в секундах);

  • K — общее число пакетов в потоке, переданном от источника к получателю;

  • L — общее число принятых пакетов (прибывших в интервале T0 — Tf+dT) из числа K переданных; идентичные копии — дубликаты удаляются, поэтому L <= K;

  • R — отношение числа разупорядоченных пакетов к числу принятых, как определено ниже.

Отметим, что параметр dT фактически является порогом для объявления пакета потерянным. Показатель IPPM Packet Loss Metric [RFC2680] отвергает рекомендацию значения этого порога, заявляя: «на практике требуется понимать сроки существования пакетов».

4.1.3. Определение

С учётом потока пакетов от источника к получателю доля переупорядоченных потоков в выборке составит

   R = (число пакетов с Type-P-Reordered=TRUE) / ( L )

Эту долю можно выразить в % (умножив на 100). Отметим, что в случае дубликатов учитывается лишь первая копия.

4.1.4. Обсуждение

Когда Type-P-Reordered-Ratio-Stream = 0, для этой выборки не требуется других показателей разупорядочения. Поэтому ценность этого показателя заключается в простой возможности суммировать результаты для выборок без нарушения порядка.

4.2. Степень нарушения порядка

В этом разделе определяется степень нарушения порядка пакетов и связывается конкретное прерывание порядка с каждым разупорядоченным пакетом. Раздел наследует определённые выше параметры.

4.2.1. Имя показателя

Type-P-Packet-Reordering-Extent-Stream

4.2.2. Обозначение и параметры показателя

Напомним, что K — число пакетов, переданных источником, а L — число принятых получателем пакетов. Каждому пакету назначается порядковый номер s (от 1 до K) в порядке отправки пакетов (у источника).

Пусть s[1], s[2], …, s[L] — исходные порядковые номера, связанные с пакетами в порядке их прибытия. s[i] можно ситать вектором, где индекс i — номер прибытия пакета с порядковым номером s. Теоретически любой порядковый номер от источника может быть связан с любым номером прибытия, но это маловероятно.

Рассмотрим неупорядоченный пакет (Type-P-Reordered=TRUE) с индексом прибытия i и номером отправки s[i]. Имеется набор индексов j (1 <= j < i), таких, что s[j] > s[i].

Новые параметры включают:

  • i — номер прибытия пакета, где i-1 представляет пакет, прибывший перед i;

  • j — набор из одного или нескольких индексов прибытия, где 1 <= j < i;

  • s[i] — исходные порядковые номера (s) в порядке отправки;

  • e — степень разупорядочения (Reordering Extent), указанную числом пакетов, как определено ниже.

4.2.3. Определение

Степень разупорядочения e для пакета s[i] определяется как i-j для наименьшего значения j, где s[j] > s[i].

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

Комментарий к определению. Для некоторых случаев порядка прибытия назначение простой позиции (дистанции) степенью разупорядоченности ведёт к переоценке размера хранилища у получателя, требуемого для восстановления порядка. Более точной и сложной процедурой расчёта размера хранилища для восстановления порядка было бы вычитание (исключение) принятых ранее пакетов, которые получатель мог бы передать на вышележащий уровень (4.4. Разупорядочение по смещению байтов). С учётом смещения (bias) это определение считается достаточным особенно для случаев, когда нужны расчёты «на лету».

4.2.4. Обсуждение

Пакет с индексом j (s[j] в параграфе 4.2.3. Определение) представляет собой прерывание разупорядочения, связанное с пакетом s с индексом i (s[i]). Определение формализовано ниже.

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

Если получателю нужно восстановить порядок, его возможности буферизации определяют способность обработать пакеты с нарушением порядка. Для ситуаций с одним разупорядоченным пакетом, степень разупорядоченности e указывает число пакетов, которые нужно сохранить в буфере получателя в ожидании восстановления порядка. В более сложных случаях степень разупорядоченности может приводить к переоценке требуемого для буферизации пространства (см. 4.4. Разупорядочение по смещению байтов и примеры из раздел 7. Примеры оценки порядка прибытия). Если же получатель по какой-либо причине очищает буфер, степень разупорядочения не будет определять поведение, предполагая взамен, что получатель предпримет исчерпывающую попытку восстановить порядок.

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

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

4.3. Разупорядочение по времени задержки

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

4.3.1. Имя показателя

Type-P-Packet-Late-Time-Stream

4.3.2. Параметры показателя

В дополнение к параметрам, определенным для Type-P-Reordered-Ratio-Stream, задаются:

  • DstTime — время прихода к получателю каждого пакета из потока, который можно связать с индексом i или пакетом s[i];

  • LateTime(s[i]) — смещение пакета s[i] (в секундах), как определено ниже.

4.3.3. Определение

Время задержки рассчитывается по часам получателя. Когда полученный пакет s[i] разупорядочен со степенью e,

LateTime(s[i]) = DstTime(i)-DstTime(i-e)

Кроме того, используя нотацию, похожую на принятую в параграфе 4.2, это можно записать в форме

LateTime(s[i]) = DstTime(i)-DstTime(j), для min{j|1<=j<i} при s[j]>s[i].

4.3.4. Обсуждение

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

Отметим, что показатель IPDV (IP Packet Delay Variation) [RFC3393] дает вариации задержки в одном направлении относительно предшествующего пакета в потоке от источника. Задержка и IPDV служат индикатором наличия в приёмном буфере достаточного пространства для адаптации к поведению сети и восстановления порядка. При потере более раннего пакета в последовательности значение IPDV обязательно становится неопределённым, а LateTime может стать единственным способом оценки полезности пакета.

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

Комбинация потерь и нарушения порядка влияет на показатель LateTime. Если представлена последовательность прибытия 1, 10, 5 (пакеты 2, 3, 4 и 6 — 9 потеряны), LateTime не будет точно указывать, насколько запоздал пакет 5 по сравнению с предполагаемым временем. IPDV [RFC3393] не учитывает такие ситуации, поскольку отсутствуют соседние пакеты. В предположении периодического потока [RFC3432] ожидаемое время прибытия можно определить для всех пакетов, но это будет по сути показателем измерения вариации задержки в одной точке (как определено в рекомендациях ITU-T [I.356] и [Y.1540]), а не показателем разупорядочения.

Результаты выборки LateTime можно указать на гистограмме для представления числа значений времени буферизации, требуемых для размещения разупорядоченных пакетов, и разрешить настройку буфера на этой основе. Информативной может быть кумулятивная функция распределения (cumulative distribution function или CDF) времени буферизации в зависимости от процента размещаемых в буфере разупорядоченных пакетов.

4.4. Разупорядочение по смещению байтов

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

4.4.1. Имя показателя

Type-P-Packet-Byte-Offset-Stream

4.4.2. Параметры показателя

Применяются определённые выше параметры, включая необязательные параметры SrcByte и PayloadSize, а также:

  • ByteOffset(s[i]) — смещение пакета s[i] в байтах.

4.4.3. Определение

Смещение ByteOffset для разупорядоченного пакета s[i] — сумма размеров данных (payload) в пакетах, соответствующим приведённым ниже критериям:

  • прибытие до разупорядоченного пакета s[i];

  • порядковый номер отправки s > s[i].

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

Для разупорядоченного пакета s[i] со степенью разупорядочения e

   ByteOffset(s[i]) = Sum[соответствующий пакет]
                    = Sum[PayloadSize(пакет с i-1, если он соответствует),
                        PayloadSize(пакет с i-2, если он соответствует), ...
                        PayloadSize(пакет с i-e всегда соответствует)]

С использованием представленной выше нотации

   ByteOffset(s[i]) =
               Sum[данные s[j], где s[j]>s[i] и i > j >= i-e]

4.4.4. Обсуждение

Отметим, что размер буфера для компенсации разупорядочения сильно зависит от тестового потока в части дистанции между тестовыми пакетами и их размера, особенно при переменном размере. В этих и иных обстоятельствах может оказаться наиболее полезным характеризовать смещение размером сохраняемых пакетов с использованием показателя Type-P-packet-Byte-Offset-Stream. Этот показатель может помочь в предсказании полезности разупорядоченных пакетов в общей системе буферизации получателя с конечным размером. Предел указывается числом байтов, которые можно поместить в буфер.

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

4.5. Разрыв в нарушении порядка

4.5.1. Имена показателей

Type-P-Packet-Reordering-Gap-Stream

Type-P-Packet-Reordering-GapTime-Stream

4.5.2. Параметры

Применяются определённые выше параметры с добавлением соглашения о том, что i’ > i и j’ > j, определения

  • Gap(s[j’]) — интервал между нарушениями порядка (Reordering Gap) для пакета s[j’] (число сообщений)

и необязательного параметра

  • GapTime(s[j’]) интервал между нарушениями порядка (Reordering Gap) для пакета s[j’] (в секундах).

4.5.3. Определение разрыва разупорядоченности

Все разупорядоченные пакеты связанные с пакетом, на котором порядок восстановлен, определяемым как упорядоченный пакет s[j] , прибывший с наименьшим значением j (1<=j<i), для которого s[j]> s[i].

Отметим, что обнаружение прерывания нарушения порядка пакетом s[j] вызывает разрыв последовательности с s > NextExp при оценке показателя одиночного пропуска номеров, как описано в параграфе 3.4. Определение пропуска номеров.

Напомним, что i — e = min(j). Последующие разупорядоченные пакеты могут быть связаны с тем же s[j] или другим прерыванием нарушения порядка. Этот факт используется в определении интервала без нарушений (Reordering Gap).

4.5.4. Определение интервала между нарушениями порядка

Интервалом между нарушениями порядка является дистанция между последовательными прерываниями разупорядочения. Показатель Type-P-Packet-Reordering-Gap-Stream присваивает значение Gap(s[j’]) (всем) пакетам в потоке (и значение GapTime(s[j’]), если оно используется).

Если выполняются все указанные ниже условия

определено, что пакет s[j’] прерывает нарушение порядка на основе приёма разупорядоченного пакета s[i’] со степенью разупорядочения e’;

уже было обнаружено предшествующее прерывание нарушения порядка s[j] на основе прибытия разупорядоченного пакета s[i] со степенью разупорядочения e;

i’ > i

не было обнаружено прерывания разупорядоченности между j и j’,

тогда интервал между нарушениями порядка (Reordering Gap) для пакета s[j’] определяется разностью между позициями прибытия при прерывании разупорядочения, как показано ниже.

Gap(s[j’]) = (j’) — (j)

Интервалы можно также указать временем

GapTime(s[j’]) = DstTime(j’) — DstTime(j)

В противном случае

Gap(s[j’]) (и GapTime(s[j’]) ) для пакета s[j’] имеет значение 0.

4.5.5. Обсуждение

Когда можно различить отдельные разрывы разупорядочения, их число можно указать (вместе с описанием разрыва, таким как число разупорядоченных пакетов, связанных с разрывом, а также их степени разупорядоченности и смещения). Интервалы между разрывами нарушения порядка в выборках можно указать на гистограмме для представления частоты разных разрывов. Указание режима, среднего значения, диапазона и т. п. также может обобщать распределения.

Показатель Gap может помочь при сопоставлении частоты разрывов нарушения порядка с их причинами. Величина разрыва также полезна разработчикам получателей, показывая период разрывов. Сочетание разрывов и степени разупорядочения показывает, будут ли получатели обрабатывать наложение разупорядочения пакетов.

4.6. Работа без нарушения порядка

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

4.6.1. Имена показателей

Type-P-Packet-Reordering-Free-Run-x-numruns-Stream

Type-P-Packet-Reordering-Free-Run-q-squruns-Stream

Type-P-Packet-Reordering-Free-Run-p-numpkts-Stream

Type-P-Packet-Reordering-Free-Run-a-accpkts-Stream

4.6.2. Параметры

Используются определённые выше параметры, а также:

  • r — счётчик запусков;

  • x — число запусков, а также число разупорядоченных пакетов;

  • a — аккумулятор упорядоченных пакетов;

  • p — число пакетов (по завершении потока p=(x+a)=L);

  • q — сумма квадратов, учтённых запусков.

4.6.3. Определение

По мере прибытия пакетов выборки к получателю они учитываются счётчиком Reordering-Free. Отметим, что в соответствии с этим определением минимальный размер цикла равен 0. Пример псевдокода приведён ниже.

   r = 0; /* r - счётчик */
   x = 0; /* x - число запусков */
   a = 0; /* a - аккумулятор упорядоченных пакетов */
   p = 0; /* p - число пакетов */
   q = 0; /* q - сумма квадратов учтённых запусков */

   while(прибывает пакет с номером s)
   {
        p++;
        if (s >= NextExp) /* s упорядочен */
                then r++;
                a++;
        else    /* s нарушает порядок */
                q+= r*r;
                r = 0;
                x++;
   }

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

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

Процент упорядоченных пакетов составляет 100*a/p, средняя продолжительность работы без нарушения порядка — a/x. Счётчик q показывает отклонение работы без нарушения порядка от среднего значения путём сравнения q/a с a/x ((q/a)/(a/x)).

4.6.4. Обсуждение и иллюстрация

Параметры Type-P-packet-Reordering-Free-Run-Stream дают краткую сводку характеристик нарушения порядка, включая среднюю продолжительность работы без нарушения и вариации этих периодов, поэтому основным применением этого показателя является оценка работы сети.

Для 36 пакетов с 3 периодами из 11 упорядоченных пакетов мы имеем

      p = 36
      x = 3
      a = 33
      q = 3 * (11*11) = 363
      средний интервал работы без нарушений = 11
      q/a = 11
      (q/a)/(a/x) = 1,0

Для 36 пакетов с тремя интервалами работы без ошибок, из которых два имеют размер 1, а третий — 31, мы имеем

      p = 36
      x = 3
      a = 33
      q = 1 + 1 + 961 = 963
      средний интервал работы без нарушений = 11
      q/a = 29.18
      (q/a)/(a/x) = 2,65

Вариативность продолжительности работы без нарушения порядка проявляется в разнице между значениями q (сумма квадратов продолжительности интервалов без ошибок) и сравнении средней продолжительности интервалов с отношением (q/a)/(a/x) — 1 означает одинаковые интервалы работы без нарушения порядка.

5. Показатель, нацеленный на оценку получателя — TCP

В этом разделе описан показатель, содержащий информацию, связанную с влиянием нарушения порядка на TCP. Однако для оценки производительности TCP тестовый поток должен быть близок к интересующему отправителю TCP. В [RFC3148] перечислены конкретные аспекты алгоритмов контроля перегрузок, которые должны быть заданы. Кроме того, в соответствии с RFC 3148 для показателей Bulk Transfer Capacity (ёмкости объемной передачи) следует иметь инструменты, различающие 3 варианта нарушения порядка пакетов (см. 3.3. Определение). Показатели выборки, определённые выше, удовлетворяют требованиям классификации пакетов со слабым или значительным нарушением порядка. Определённый здесь показатель добавляет возможность оценки способности нарушения порядка приводить к превышению порога DUP-ACK, вызывающему алгоритм Fast Retransmit. Дополнительные инструменты для TCP указаны в [Mat03].

5.1. Имя показателя

Type-P-Packet-n-Reordering-Stream

5.2. Обозначение параметров

Пусть n будет положительным целым числом (параметр), а k — положительным целым числом, равным количеству переданных пакетов (размер выборки). Пусть l — неотрицательное целое число, представляющее пакеты с нарушением порядка из числа переданных k пакетов (отметим, что k и l не связаны, потери могут сделать l < k, а дубликаты — l > k). Свяжем с каждым переданным пакетом номер от 1 до k в порядке их передачи.

Пусть s[1], s[2], …, s[l] — исходные порядковые номера пакетов в порядке их получения на приёмной стороне.

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

Определение 1. Принятый пакет i (n < i <= l) с исходным номером s[i], считается n-разупорядоченным тогда и только тогда, когда для всех j таких, что i-n <= j < i, выполняется условие s[j] > s[i].

Утверждение. Если в соответствии с этим определением пакет n-разупорядочен и 0 < n’ < n, пакет также n’-разупорядочен.

Примечание. Это определение представлено кодом C в Приложении A. Код обнаруживает и сообщает о n-разупорядочении при n от 1 до заданного значения (в коде MAXN = 100). Предполагается, что относящееся к TCP значение n является порогом TCP ACK (3 в соответствии с п. 2 в параграфе 3.2 [RFC 2581]).

Это определение не назначает n всем разупорядоченным пакетам, как определено для одиночного измерения, в частности при переупорядочении последовательных блоков (в приёмной последовательности s={1,2,3,7,8,9,4,5,6} пакеты 4 — 6 разупорядочены, но лишь пакет 4 является n-разупорядоченным с n=3).

Определение 2. Степенью n-разупорядоченности выборки является m/l, где m — число n-разупорядоченных пакетов в выборке.

Определение 3. Степенью монотонного переупорядочения выборки является степень 1-разупорядоченности.

Определение 4. Выборку считают упорядоченной, если степень монотонной переупорядоченности равна 0.

Примечание. Как следует из приведённого выше утверждения, если монотонная разупорядоченность группы равна 0, n-разупорядочение группы равно 0 для всех n.

5.4. Обсуждение

Степень n-разупорядоченности можно выразить в процентах, умножив значение из определения 2 на 100.

Показатель n-разупорядоченности полезен для сопоставления с порогом дубликатов ACK на данном пути. Например, если на пути наблюдается не более чем 5-разупорядочение, порог DUP-ACK = 6 может предотвратить ненужные повторы передачи. Важными особыми случаями являются n=1 и n=3.

  • При n=1 отсутствие 1-разупорядочения означает, что получатель видит монотонный рост порядкового номера по сравнению с предыдущим пакетом.

  • При n=3 отправитель NewReno TCP будет повторно передавать 1 в ответ на экземпляр 3-разупорядочения и, следовательно, станет считать этот пакет потерянным при контроле перегрузки (отправитель будет снижать вдвое своё окно перегрузки [RFC2581]). Значение 3 принято по умолчанию для протоколов SCTP (Stream Control Transport Protocol) [RFC2960] и DCCP (Datagram Congestion Control Protocol) [RFC4340] при использовании с Congestion Control ID 2: TCP-like Congestion Control [RFC4341].

N-разупорядочение выборки можно представить на гистограмме для указания частоты при каждом значении n.

Отметим, что определение n-разупорядочения не позволяет точно предсказать число повторных пакетов, необоснованно переданных отправителем TCP в некоторых обстоятельствах, например в случае близко расположенных одиночных случаев нарушения порядка. На поведение отправителя влияет время и расположение.

Назначение n-разупорядочения иногда эквивалентно степени нарушения порядка e, но n-разупорядочение отличается в двух аспектах:

  1. n — число предшествующих пакетов с последовательными номерами прибытия к получателю;

  2. пакеты с нарушением порядка (Type-P-Reordered=TRUE) могут не быть n-разупорядоченными, но иметь степень e (см. примеры).

6. Вопросы измерений и реализации

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

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

  • Чтобы сделать выводы о приложениях TCP, требуется применять потоки в стиле TCP как в [RFC3148].

  • Для приложений в реальном масштабе времени рекомендуются периодические потоки как в [RFC3432].

Показатели из разделов 3 и 4 можно сообщать с другими метриками IPPM, используя потоки Пуассона [RFC2330]. Пуассоновские потоки представляют «беспристрастную выборку» производительности сети для показателей потери и задержки пакетов. Однако было бы некорректно делать выводы об указанных выше категориях применения с использованием показателей нарушения порядка, измеренных с помощью потоков Пуассона.

Разработчики тестовых потоков могут предпочесть периодическую отправку, чтобы поддерживать известный сдвиг во времени и упростить анализ результатов (как описано в [RFC3432]). В тахих случаях рекомендуется выбирать интервал для периодических потоков так, чтобы воспроизвести ближайший ожидаемый интервал между исходными пакетами. Тестировщики должны понимать, что потоки, передаваемые с максимальной скоростью канала, должны быть ограничены по продолжительности, и должны рассматривать потерю пакетов как указание перегрузки, вызванной потоком, останавливая дальнейшее тестирование.

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

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

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

Поскольку в определении показателей могут применяться порядковые номера с конечным диапазоном значений, возможно достижение максимального номера и сброс в 0 во время измерения. По определению значение NextExp не может снижаться и все пакеты, полученные после перехода через 0, будут считаться переупорядоченными. Сброса порядкового номера можно избежать, применяя сочетание размера счётчика и продолжительности теста, при котором достижение максимального номера невозможно (и отсчёт начинается с 0 при запуске). Кроме того, нумерация на уровне сообщений обеспечивает более медленный рост номеров. В некоторых случаях может быть желательно метрологическое смягчение проблемы (например, при длительных тестах). Для этого служат указанные ниже меры.

  1. Должна быть проверка перехода через максимум. Различия в порядковых номерах последовательных пакетов более чем на половину диапазона практически невозможны, поэтому столь большие разрывы следует связывать с переходом через максимум.

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

  3. Переупорядоченные пакеты с номерами в конце диапазона также должны обнаруживаться для применения корректировки с учётом перехода через максимум.

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

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

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

Важно отметить, что в практических сетях IP также может быть ограниченная возможность «хранить» пакеты даже при возникновении временных петель в маршрутизации. Таким образом, максимальное хранилище для показателей переупорядочения (и их сложности) будет приближаться к числу пакетов в выборке (K) лишь в случае, когда время передачи K пакетов мало по сравнению с максимальным временем их нахождения в сети. Другим возможным ограничением для хранилища является максимальный размер поля порядкового номера при условии, что большинство номеров тестовых пакетов на практике не достигают максимальных номеров (использование поля целиком).

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

6.1. Пассивные измерения

Как и для других показателей IPPM, определения рассчитаны прежде всего на активные измерения.

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

Можно применить эти показатели для оценки переупорядочения в потоке отправителя TCP. В этом случае порядковые номера источника основываются на смещении байтов или нумерации сегментов. Поскольку поток может включать повторы передачи в результате потерь или нарушения порядка, должны быть приняты меры против учёта повторных пакетов как разупорядоченных. Дополнительная нумерация s или SrcTime поможет избежать неоднозначности при активном измерении, а (необязательные) временные метки TCP [RFC1323] — при пассивном.

7. Примеры оценки порядка прибытия

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

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

7.1. Один пакет с нарушением порядка

В таблице 1 показан случай нарушения порядка для пакета 4. Пакеты указаны в порядке их прибытия с нумерацией по сообщениям. Все пакеты имеют PayloadSize=100 байтов и SrcByte=(s x 100)-99 для s=1,2,3,4,…

Таблица 1. Пример с нарушением порядка для пакета 4. Порядок отправки источником (s @Src): 1,2,3,4,5,6,7,8,9,10.

s @Dst

NextExp

Src Time

Dst Time

Delay

IPDV

Dst Order

Byte Offset

Late Time

1

1

0

68

68

1

2

2

20

88

68

0

2

3

3

40

108

68

0

3

5

4

80

148

68

-82

4

6

6

100

168

68

0

5

7

7

120

188

68

0

6

8

8

140

208

68

0

7

4

9

60

210

150

82

8

400

62

9

9

160

228

68

0

9

10

10

180

248

68

0

10

s Порядковый номер отпраки пакета.
NextExp Значение NextExp при получении пакета (до обновления).
SrcTime Временная метка отправки пакета (мсек).
DstTime Временная метка прибытия пакета (мсек).
Delay Задержка пакета в одном направлении (мсек).
IPDV Вариация задержки (IP Packet Delay Variation или IPDV) в мсек. IPDV= Delay(SrcNum)-Delay(SrcNum-1).
DstOrder Порядок прибытия пакетов к получателю.
Byte Offset Смещение переупорядоченного пакета (в байтах).
LateTime Задержка переупорядоченного (мсек).

Можно видеть, что при получении пакета 4 значение NextExp=9 и пакет считается переупорядоченным. Степень переупорядочения рассчитывается, как показано ниже.

В нотации <s[1], …, s[i], …, s[L]> принятые пакеты представляются как

                            \/
   s = 1, 2, 3, 5, 6, 7, 8, 4, 9, 10
   i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
                            /\

Применим определение Type-P-Packet-Reordering-Extent-Stream

когда j=7, 8 > 4 и степень разупорядоченности составляет не менее 1;
когда j=6, 7 > 4 и степень разупорядоченности составляет не менее 2;
когда j=5, 6 > 4 и степень разупорядоченности составляет не менее 3;
когда j=4, 5 > 4 и степень разупорядоченности составляет не менее 4.
 
когда j=3, а 3 < 4 и 4 является максимальной степенью переупорядочения e=4 (в предположении отсутствия более раннего разрыва переупорядочения, как в этом примере).

Далее рассчитывается время задержки (Late Time, 210-148=62 мсек) с использованием DstTime по сравнению с прибытием пакета 5. Если у получателя есть буфер компенсации вариаций задержки, вмещающий более 4 пакетов или хотя бы хранение в течение 62 мсек, пакет 4 божет быть полезен. Отметим, что задержка в одном направлении и IPDV указывают необычное поведение пакета 4. Если бы пакет 4 прибыл на 62 мсек раньше, он был бы упорядоченным.

Если все пакеты содержат 100 байтов данных (payload), Byte Offset будет иметь значение 400 байтов.

В соответствии с определениями параграфа 5.1 пакет 4 обозначается как 4-переупорядоченный.

7.2. Нарушение порядка двумя пакетами

Таблица 2. Пример с переупорядоченными пакетами 5 и 6. Порядок отправки (s @Src): 1,2,3,4,5,6,7,8,9,10.

s @Dst

NextExp

Src Time

Dst Time

Delay

IPDV

Dst Order

Byte Offset

Late Time

1

1

0

68

68

1

2

2

20

88

68

0

2

3

3

40

108

68

0

3

4

4

60

128

68

0

4

7

5

120

188

68

-22

5

5

8

80

189

109

41

6

100

1

6

8

100

190

90

-19

7

100

2

8

8

140

208

68

0

8

9

9

160

228

68

0

9

10

10

180

248

68

0

10

В таблице 2 показан случай, когда пакеты 5 и 6 прибывают после пакета 7 и являются переупорядоченными. Задержки их прибытия невелики (189-188=1, 190-188=2).

В нотации <s[1], …, s[i], …, s[l]> принятые пакеты представляются как

                      \/ \/
   s = 1, 2, 3, 4, 7, 5, 6, 8, 9, 10
   i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
                      /\ /\

Рассмотрим сначала пакет 5

когда j=5, 7 > 5 и степень разупорядоченности составляет не менее 1;
когда j=4, мы имеем 4 < 5, поэтому максимальной степенью разупорядоченности будет 1 и e=1.

Рассмотрим пакет 6

когда j=6, 5 < 6 и степень разупорядоченности ещё не определена;
когда j=5, 7 > 6 и степень разупорядоченности составляет не менее i-j=2;
когда j=4, 4 < 6 и максимальной степенью разупорядоченности будет 2 и e=2.

С каждым из этих пакетов можно также связать разрыв переупорядочения. Минимум составляет j=5 (для обоих пакетов) в соответствии с параграфом 4.2.3. Пакет 6 связан с тем же разрывом переупорядочения, что и пакет 5 — разрыв переупорядочения пакетом 7.

В этом случае степень переупорядочения e ведёт к переоценке размера памяти, требуемой для восстановления порядка. Фактически нужна память лишь для одного пакета (7), но e=2 для пакета 6.

В соответствии с определениями раздела 5 пакет 5 обозначается как 1-переупорядоченный, а пакет 6 не считается n-переупорядоченным.

Гипотетическая пара отправитель-получатель может без необходимости повторить пакет 5, поскольку он 1-переупорядочен (в соответствии с singleton-показателем). Хотя пакет 6 может не передаваться без необходимости повторно, получатель не может продвигать пакет 7 на вышележащий уровень, пока не прибудет пакет 6. Следовательно, показатель одиночного измерения корректно определяет переупорядоченность пакета 6.

7.3. Пример с тремя разупорядоченными пакетами

Таблица 3. Пример с переупорядоченными пакетами 4 — 6. Порядок отправки (s @Src): 1,2,3,4,5,6,7,8,9,10,11.

s @Dst

NextExp

Src Time

Dst Time

Delay

IPDV

Dst Order

Byte Offset

Late Time

1

1

0

68

68

1

2

2

20

88

68

0

2

3

3

40

108

68

0

3

7

4

120

188

68

-88

4

8

8

140

208

68

0

5

9

9

160

228

68

0

6

10

10

180

248

68

0

7

4

11

60

250

190

122

8

400

62

5

11

80

252

172

-18

9

400

64

6

11

100

256

156

-16

10

400

68

11

11

200

268

68

0

11

В таблице 3 представлен случай, когда три пакета подряд имеют длительное время доставки (пакеты с s = 4, 5, 6). Значения Delay, Late time, Byte Offset очень хорошо отражают это и показывают вариации степени переупорядочения, тогда как IPDV показывает изменение интервала между пакетами 4, 5, 6.

Гистограмма степени переупорядоченности имеет вид

   Степень     1  2  3  4  5  6  7
   Частота     0  0  0  1  1  1  0

В нотации <s[1], …, s[i], …, s[l]> принятые пакеты представляются как

   s = 1, 2, 3, 7, 8, 9,10, 4, 5, 6, 11
   i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11

Сначала рассчитаем n-переупорядочение, начав с пакета 4

когда n=1, 7<=j<8 и 10> 4 пакет является 1-переупорядоченным;
когда n=2, 6<=j<8 и 9 > 4 пакет является 2-переупорядоченным;
когда n=3, 5<=j<8 и 8 > 4 пакет является 3-переупорядоченным;
когда n=4, 4<=j<8 и 7 > 4 пакет является 4-переупорядоченным;
когда n=5, 3<=j<8 и 3 < 4, 4 является максимальным n-переупорядочением.

Далее рассмотрим пакет 5[9]

когда n=1, 8<=j<9 и 4 < 5, поэтому пакет с i=9 не считается n-переупорядоченным (то же и для пакета 6).

Рассмотрим, связаны ли переупорядоченные пакеты 5 и 6 с тем же разрывом разупорядоченности, что и пакет 4. Тест из параграфа 4.2.3 показывает минимальное значение j=4 для всех трёх пакетов. Все они связаны с разрывом разупорядочения пакетом 7.

Этот пример снова показывает, что определение n-переупорядочения указывает 1 пакет (4) с достаточной степенью n-переупорядочения, что может вызвать ненужные повторы передачи отправителем New Reno TCP (с порогом DUP-ACK 3 или 4). Кроме того, переупорядоченное прибытие пакетов 5 и 6 позволит процессу-получателю передать пакеты 7 — 10 вверх по стеку протоколов (одиночное значение Type-P-Reordered = TRUE для пакетов 5 и 6 и они связаны с одним разрывом переупорядочения).

7.4. Нарушение порядка множеством пакетов

Таблица 4. Пример с переупорядочением нескольких пакетов. Порядок отправки (s @Src): 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16.

             Разрыв                Разрыв
                |---------Gap---------|
   s = 1, 2, 3, 6, 7, 4, 5, 8, 9, 10, 12, 13, 11, 14, 15, 16
   i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16

   r = 1, 2, 3, 4, 5, 0, 0, 1, 2,  3,  4,  5,  0,  1,  2,  3, ...
   число запусков,n = 1  2                     3
   заверш. счёта r  = 5  0                     5
   (Эти значения рассчитываются после прихода пакета.)

Пакет 4 имееть сиепень переупорядочения e=2, пакет 5 — e=3, пакет 11 — e=2. Имеется два разрыва переупорядочения, один из которых связан с пакетом 6 (где j=4), другой — с пакетом 12 (где j’=11).

В соответствии с определением интервала без переупорядочения (Reordering Gap)

   Gap(s[j']) = (j') - (j)
   Gap(Packet 12) = (11) - (4) = 7

Здесь также три «запуска» без переупорядочения продолжительностью 5, 0 и 5.

Различия между этими двумя показателями с несколькими событиями очевидны здесь. Интервал (Gap) — это дистанция между двумя последовательными фактами переупорядочения, тогда как работа без нарушения порядка — это дистанция между упорядоченными пакетами.

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

8.1. Отказ в обслуживании (DoS)

Для этого показателя нужен поток пакетов, передаваемых от одного хоста (источник) к другому (получатель) через промежуточные сети. Этот метод можно использовать для организации DoS-атак, направленных на получателя и/или промежуточные сети.

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

8.2. Конфиденциальность данных пользователей

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

8.3. Влияние на показатели

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

Требования к устойчивости отбора данных к вмешательству злоумышленников и механизмы обеспечения такой устойчивости приведены в других документах IPPM. Набор требований к протоколу данных можно найти в [RFC3763], а спецификация протокола активных измерений в одном направлении (One-Way Active Measurement Protocol или OWAMP) представлена в [RFC4656]. Посвящённые безопасности разделы двух документов OWAMP достаточно обширны их к ним следует обращаться для получения дополнительных сведений.

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

Определённые здесь показатели включены в реестр IANA IPPM METRICS REGISTRY, как описано в исходной версии реестра [RFC4148].

Агентство IANA зарегистрировало приведённые ниже показатели в IANA-IPPM-METRICS-REGISTRY-MIB

   ietfReorderedSingleton OBJECT-IDENTITY
       STATUS       current
       DESCRIPTION
          "Type-P-Reordered"
       REFERENCE
          "Reference RFC 4737, Section 3"
       ::= { ianaIppmMetrics 34 }

   ietfReorderedPacketRatio OBJECT-IDENTITY
       STATUS       current
       DESCRIPTION
          "Type-P-Reordered-Ratio-Stream"
       REFERENCE
          "Reference RFC 4737, Section 4.1"
       ::= { ianaIppmMetrics 35 }

   ietfReorderingExtent OBJECT-IDENTITY
       STATUS       current
       DESCRIPTION
          "Type-P-Packet-Reordering-Extent-Stream"
       REFERENCE
          "Reference RFC 4737, Section 4.2"
       ::= { ianaIppmMetrics 36 }

   ietfReorderingLateTimeOffset OBJECT-IDENTITY
       STATUS       current
       DESCRIPTION
          "Type-P-Packet-Late-Time-Stream"
       REFERENCE
          "Reference RFC 4737, Section 4.3"
       ::= { ianaIppmMetrics 37 }

   ietfReorderingByteOffset OBJECT-IDENTITY
       STATUS       current
       DESCRIPTION

          "Type-P-Packet-Byte-Offset-Stream"
       REFERENCE
          "Reference RFC 4737, Section 4.4"
       ::= { ianaIppmMetrics 38 }

   ietfReorderingGap OBJECT-IDENTITY
       STATUS       current
       DESCRIPTION
          "Type-P-Packet-Reordering-Gap-Stream"
       REFERENCE
          "Reference RFC 4737, Section 4.5"
       ::= { ianaIppmMetrics 39 }

   ietfReorderingGapTime OBJECT-IDENTITY
       STATUS       current
       DESCRIPTION
          "Type-P-Packet-Reordering-GapTime-Stream"
       REFERENCE
          "Reference RFC 4737, Section 4.5"
       ::= { ianaIppmMetrics 40 }

   ietfReorderingFreeRunx OBJECT-IDENTITY
       STATUS       current
       DESCRIPTION
          "Type-P-Packet-Reordering-Free-Run-x-numruns-Stream"
       REFERENCE
          "Reference RFC 4737, Section 4.6"
       ::= { ianaIppmMetrics 41 }

   ietfReorderingFreeRunq OBJECT-IDENTITY
       STATUS       current
       DESCRIPTION
          "Type-P-Packet-Reordering-Free-Run-q-squruns-Stream"
       REFERENCE
          "Reference RFC 4737, Section 4.6"
       ::= { ianaIppmMetrics 42 }

   ietfReorderingFreeRunp OBJECT-IDENTITY
       STATUS       current
       DESCRIPTION
          "Type-P-Packet-Reordering-Free-Run-p-numpkts-Stream"
       REFERENCE
          "Reference RFC 4737, Section 4.6"
       ::= { ianaIppmMetrics 43 }

   ietfReorderingFreeRuna OBJECT-IDENTITY
       STATUS       current
       DESCRIPTION
          "Type-P-Packet-Reordering-Free-Run-a-accpkts-Stream"
       REFERENCE
          "Reference RFC 4737, Section 4.6"
       ::= { ianaIppmMetrics 44 }

   ietfnReordering OBJECT-IDENTITY
       STATUS       current
       DESCRIPTION
          "Type-P-Packet-n-Reordering-Stream"
       REFERENCE
          "Reference RFC 4737, Section 5"
       ::= { ianaIppmMetrics 45 }

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

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

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

[RFC2330] Paxson, V., Almes, G., Mahdavi, J., and M. Mathis, «Framework for IP Performance Metrics», RFC 2330, May 1998.

[RFC2460] Deering, S. and R. Hinden, «Internet Protocol, Version 6 (IPv6) Specification», RFC 2460, December 1998.

[RFC3148] Mathis, M. and M. Allman, «A Framework for Defining Empirical Bulk Transfer Capacity Metrics», RFC 3148, July 2001.

[RFC3432] Raisanen, V., Grotefeld, G., and A. Morton, «Network performance measurement with periodic streams», RFC 3432, November 2002.

[RFC3763] Shalunov, S. and B. Teitelbaum, «One-way Active Measurement Protocol (OWAMP) Requirements», RFC 3763, April 2004.

[RFC4148] Stephan, E., «IP Performance Metrics (IPPM) Metrics Registry», BCP 108, RFC 4148, August 2005.

[RFC4656] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M. Zeckauskas, «A One-way Active Measurement Protocol (OWAMP)», RFC 4656, September 2006.

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

[Bel02] J. Bellardo and S. Savage, «Measuring Packet Reordering,» Proceedings of the ACM SIGCOMM Internet Measurement Workshop 2002, November 6-8, Marseille, France.

[Ben99] J.C.R. Bennett, C. Partridge, and N. Shectman, «Packet Reordering is Not Pathological Network Behavior,» IEEE/ACM Transactions on Networking, vol. 7, no. 6, pp. 789-798, December 1999.

[Cia00] L. Ciavattone and A. Morton, «Out-of-Sequence Packet Parameter Definition (for Y.1540)», Contribution number T1A1.3/2000-047, October 30, 2000, http://home.comcast.net/~acmacm/IDcheck/0A130470.doc.

[Cia03] L. Ciavattone, A. Morton, and G. Ramachandran, «Standardized Active Measurements on a Tier 1 IP Backbone,» IEEE Communications Mag., pp. 90-97, June 2003.

[I.356] ITU-T Recommendation I.356, «B-ISDN ATM layer cell transfer performance», March 2000.

[Jai02] S. Jaiswal et al., «Measurement and Classification of Out-of-Sequence Packets in a Tier-1 IP Backbone,» Proceedings of the ACM SIGCOMM Internet Measurement Workshop 2002, November 6-8, Marseille, France.

[Lou01] D. Loguinov and H. Radha, «Measurement Study of Low-bitrate Internet Video Streaming», Proceedings of the ACM SIGCOMM Internet Measurement Workshop 2001 November 1-2, 2001, San Francisco, USA.

[Mat03] M. Mathis, J. Heffner, and R. Reddy, «Web100: Extended TCP Instrumentation for Research, Education and Diagnosis», ACM Computer Communications Review, Vol 33, Num 3, July 2003, http://www.web100.org/docs/mathis03web100.pdf.

[Pax98] V. Paxson, «Measurements and Analysis of End-to-End Internet Dynamics,» Ph.D. dissertation, U.C. Berkeley, 1997, ftp://ftp.ee.lbl.gov/papers/vp-thesis/dis.ps.gz.

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

[RFC1323] Jacobson, V., Braden, R., and D. Borman, «TCP Extensions for High Performance», RFC 1323, May 1992.

[RFC2581] Allman, M., Paxson, V., and W. Stevens, «TCP Congestion Control «, RFC 2581, April 1999.

[RFC2679] Almes, G., Kalidindi, S., and M. Zekauskas, «A One-way Delay Metric for IPPM», RFC 2679, September 1999.

[RFC2680] Almes, G., Kalidindi, S., and M. Zekauskas, «A One-way Packet Loss Metric for IPPM», RFC 2680, September 1999.

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

[RFC3393] Demichelis, C. and P. Chimento, «IP Packet Delay Variation Metric for IP Performance Metrics (IPPM)», RFC 3393, November 2002.

[RFC4340] Kohler, E., Handley, M., and S. Floyd, «Datagram Congestion Control Protocol (DCCP)», RFC 4340, March 2006.

[RFC4341] Floyd, S. and E. Kohler, «Profile for Datagram Congestion Control Protocol (DCCP) Congestion Control ID 2: TCP-like Congestion Control», RFC 4341, March 2006.

[TBABAJ02] T. Banka, A. Bare, A. P. Jayasumana, «Metrics for Degree of Reordering in Packet Sequences», Proc. 27th IEEE Conference on Local Computer Networks, Tampa, FL, Nov. 2002.

[Y.1540] ITU-T Recommendation Y.1540, «Internet protocol data communication service — IP packet transfer and availability performance parameters», December 2002.

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

Авторы хотели бы поблагодарить Matt Zekauskas, Jon Bennett (автор друх параграфов для работы без нарушения порядка) и Matt Mathis за полезные дискуссии. Спасибо David Newman, Henk Uijterwaal, Mark Allman, Vern Paxson, Phil Chimento за их рецензии и предложения, а Michal Przybylski за то, что он поделился опытом реализации в рассылке ippm-list. Anura Jayasumana и Nischal Piratla предоставили свою незавершённую работу [TBABAJ02]. Авторы с благодарностью отмечают фундамент, заложенный авторами модели оценки производительности IP [RFC2330].

Приложение A. Пример реализации на языке C (информативный)

Ниже представлены два примера кода C для определений нарушений порядка.

Пример 1. n-reordering

   #include <stdio.h>

   #define MAXN   100

   #define min(a, b) ((a) < (b)? (a): (b))
   #define loop(x) ((x) >= 0? x: x + MAXN)

   /*
    * Считывается и возвращается новый порядковый номер. При отсутствии
    * номера возвращает сигнал EOF (хотя бы 1 раз). В этом примере номера
    * приходят от stdin, в реальном тесте они приходят из сети.
    *
   */

   int
   read_sequence_number()
   {
           int     res, rc;
           rc = scanf("%d\n", &res);
           if (rc == 1) return res;
           else return EOF;
   }

   int
   main()
   {
           int     m[MAXN];       /* Имеем m[j-1] == число пакетов с
                                            * j-переупорядочением. */
           int     ring[MAXN];    /* Последний увиденный номер.  */
           int     r = 0;         /* Кольцевой указатель для следующей записи. */
           int     l = 0;         /* Число считанных порядковых номеров. */
           int     s;             /* Последний считанный номер.  */
           int     j;

           for (j = 0; j < MAXN; j++) m[j] = 0;
           for (;(s = read_sequence_number())!= EOF;l++,r=(r+1)%MAXN) {
             for (j=0; j<min(l, MAXN)&&s<ring[loop(r-j-1)];j++) m[j]++;
             ring[r] = s;
           }

           for (j = 0; j < MAXN && m[j]; j++)
             printf("%d-reordering = %f%%\n", j+1, 100.0*m[j]/(l-j-1));
           if (j == 0) printf("no reordering\n");
           else if (j < MAXN) printf("no %d-reordering\n", j+1);
           else printf("only up to %d-reordering is handled\n", MAXN);
           exit(0);
   }

   /* Пример 2. Сравнение singleton и n-reordering =======
      Author:  Jerry Perser 7-2002 (измен. acm 12-2004)
      Compile: $ gcc -o jpboth file.c
      Usage:   $ jpboth 1 2 3 7 8 4 5 6 (порядок пакетов задаёт команда)
      Отметим, что при копировании строка 59 может потребовать правки
   */
      #include <stdio.h>

      #define MAXN   100
      #define min(a, b) ((a) < (b)? (a): (b))
      #define loop(x) ((x) >= 0? x: x + MAXN)

      /* Глобальные счётчики */
      int receive_packets=0;       /* число полученных пакетов */
      int reorder_packets_Al=0;    /* число полученных пакетов (singleton) */
      int reorder_packets_Stas=0; /* число полученных пакетов(n-reordering)*/

      /* Функция проверки нарушения порядка текущим пакетом
       * 0 = упорядочен
       * 1 = переупорядочен
       */
      int testorder1(int seqnum)   // Al
      {
           static int NextExp = 1;
           int iReturn = 0;

           if (seqnum >= NextExp) {
                   NextExp = seqnum+1;
           } else {
                   iReturn = 1;
           }
           return iReturn;
      }
      int testorder2(int seqnum)   // Станислав
      {
           static int  ring[MAXN];    /* Последний увиденный номер.  */
           static int  r = 0;         /* Кольцевой указатель для следующей записи. */
           int   l = 0;          /* Число прочитанных номеров.  */
           int   j;
           int  iReturn = 0;

           l++;
           r = (r+1) % MAXN;
           for (j=0; j<min(l, MAXN) && seqnum<ring[loop(r-j-1)]; j++)
                       iReturn = 1;
           ring[r] = seqnum;
           return iReturn;
      }
      int main(int argc, char *argv[])
      {
           int i, packet;
           for (i=1; i< argc; i++) {
                receive_packets++;
                packet = atoi(argv[i]);
                reorder_packets_Al += testorder1(packet); // singleton
                reorder_packets_Stas += testorder2(packet); //n-reord.
           }
           printf("Received packets = %d, Singleton Reordered = %d, n-
   reordered = %d\n",  receive_packets, reorder_packets_Al,
   reorder_packets_Stas );
           exit(0);
      }

Ссылка

ISO/IEC 9899:1999 (E) с поправками ISO/IEC 9899:1999/Cor.1:2001 (E). Опубликован также в The C Standard: Incorporating Technical Corrigendum 1, British Standards Institute, ISBN: 0-470-84573-2, Hardcover, 558 pages, September 2003.

Приложение B. Оценка порядка фрагментов (информативное)

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

B.1. Имя показателя

Имя показателя Type-P-Reordered сохраняется, но нужны дополнительные параметры. В этом приложении предполагается, что фрагментирующее пакеты устройство передаёт их в порядке роста смещений для фрагментов. Ранние версии Linux передавали фрагменты в обратном порядке и это следует проверять.

B.2. Дополнительные параметры показателей

MoreFrag — состояние флага More Fragments в заголовке IP.
FragOffset — смещение от начала фрагментированного пакета в 8-октетных блоках (из заголовка IP).
FragSeq# — порядковый номер фрагмента из заголовка IP фрагментированного пакета, для которого сейчас проверяется порядок. При значении 0 оценка фрагмента не производится.
NextExpFrag — следующий фрагмент, ожидаемый получателем в 8-октетных блоках. При установке значения 0 фрагмент не оценивается.

Предполагается, что порядковый номер пакета (s) совпадает с порядковым номером заголовка IP, а значение NextExp не меняется при упорядоченной доставке фрагментов и обновляется лишь при поступлении последнего фрагмента или полного пакета.

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

B.3. Определение

Type-P-Reordered обычно имеет значение False (пакет упорядочен) при выполнении приведённых ниже условий.

  • Порядковый номер s >= NextExp.

  • Смещение фрагмента FragOffset >= NextExpFrag.

Однако более эффективно будет точно определить условия переупорядочения и устанавливать Type-P-Reordered = False, если они не выполняются.

Type-P-Reordered определяется как True (пакет переупорядочен) при указанных ниже условиях (NextExp не меняется).

Случай 1: s < NextExp
Случай 2: s < FragSeq#
Случай 3: s>= NextExp, s = FragSeq# и FragOffset < NextExpFrag

Это определение можно проиллюстрировать псевдокодом, представленным ниже, который можно несколько упростить.

   NextExp=0;
   NextExpFrag=0;
   FragSeq#=0;

   while(пакеты прибывают с s, MoreFrag, FragOffset)
   {
   if (s>=NextExp AND MoreFrag==0 AND s>=FragSeq#){
        /* обычный пакет или последний фрагмент при упорядоченной доставке */
        NextExp = s+1;
        FragSeq# = 0;
        NextExpFrag = 0;
        Reordering = False;
        }
   if (s>=NextExp AND MoreFrag==1 AND s>FragSeq#>=0){
        /* прибыл фрагмент нового пакета, возможно с большим чем у текущего
        фрагментированного пакета порядковым номером */
        FragSeq# = s;
        NextExpFrag = FragOffset+1;
        Reordering = False;
        }
   if (s>=NextExp AND MoreFrag==1 AND s==FragSeq#){
        /* прибыл фрагмент «текущего пакета» */
        if (FragOffset >= NextExpFrag){
                NextExpFrag = FragOffset+1;
                Reordering = False;
                }
        else{
                Reordering = True; /* фрагмент переупорядочен */
                }
        }
   if (s>=NextExp AND MoreFrag==1 AND s < FragSeq#){
        /* случай прибытия запоздалого фрагмента приведён лишь для иллюстрации
           иллюстрации, поскольку он избыточен */
        Reordering = True;
        }
   else { /* когда s < NextExp или (MoreFrag==0 AND s < FragSeq#) */
        Reordering = True;
        }
   }

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

B.4. Замечания к показателям выборки при фрагментации

Все фрагменты с одним порядковым номером источника имеют общее время отправки источником.

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

Приложение C. Отказ от ответственности и лицензия

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


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

Al Morton
AT&T Labs
Room D3 — 3C06
200 Laurel Ave. South
Middletown, NJ 07748 USA
Phone +1 732 420 1571
EMail: acmorton@att.com
 
Len Ciavattone
AT&T Labs
Room A2 — 4G06
200 Laurel Ave. South
Middletown, NJ 07748 USA
Phone +1 732 420 1239
EMail: lencia@att.com
 
Gomathi Ramachandran
AT&T Labs
Room C4 — 3D22
200 Laurel Ave. South
Middletown, NJ 07748 USA
Phone +1 732 420 2353
EMail: gomathi@att.com
 
Stanislav Shalunov
Internet2
1000 Oakbrook DR STE 300
Ann Arbor, MI 48104
Phone: +1 734 995 7060
EMail: shalunov@internet2.edu
 
Jerry Perser
Veriwave
8770 SW Nimbus Ave.
Suite B
Beaverton, OR 97008 USA
Phone: +1 818 338 4112
EMail: jperser@veriwave.com
 

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

Copyright (C) The IETF Trust (2006).

К этому документу применимы права, лицензии и ограничения, указанные в 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.



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

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

nmalykh@protokols.ru

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

RFC 4727 Experimental Values in IPv4, IPv6, ICMPv4, ICMPv6, UDP, and TCP Headers

Network Working Group                                      B. Fenner
Request for Comments: 4727                      AT&T Labs - Research
Category: Standards Track                              November 2006

Экспериментальные значения в заголовках IPv4, IPv6, ICMPv4, ICMPv6, UDP и TCP

Experimental Values in IPv4, IPv6, ICMPv4, ICMPv6, UDP, and TCP Headers

PDF

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

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

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

Copyright (C) The IETF Trust (2006).

Аннотация

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

1. Введение

[RFC3692] рекомендует выделять номера опций для экспериментов и тестирования. В этом документе зафиксировано несколько случаев выделения таких значений для пространств имен, которые требуют согласования с IANA в соответствии с [RFC2780]. Этот документ в основном следует [RFC2780].

При использовании таких значений следует внимательно рассмотреть рекомендации разделов 1 и 1.1 документа [RFC3692]. Не следует просто выбирать одно из таких значений и жестко фиксировать его в системе.

Примечание. Хотя в [RFC3692] сказано, что выделение значение для портов UDP и TCP может не быть обязательным, в разделах 6 и 7.1 явно резервируются порты для экспериментов во избежание возникновения конфликтов.

2. Поля в заголоках IPv4

Заголовок IPv4 [RFC0791] содержит ряд полей, значения для которых распределяются агентством IANA. К таким полям относятся Version, Type of Service, Protocol, Source Address, Destination Address и Option Type.

2.1. Поле IP Version в заголовке IPv4

Поле Version в заголовках IPv4 всегда имеет значение 4.

2.2. Поле Type of Service в IPv4

[RFC2474] определяет пул 2 (Pool 2 — все коды вида xxxx11, где x может принимать значение 0 или 1), как предназначенный для экспериментов и локального использования (Experimental/Local Use), поэтому дополнительных кодов определять не требуется. Для поля ECN1 [RFC3168] свободных кодов для распределения уже нет.

2.3. Поле Protocol в IPv4

[RFC3692] выделяет в поле IPv4 Protocol два значения кодов для экспериментальных целей (253 и 254).

2.4. Адреса отправителя и получателя IPv4

2.4.1. Индивидуальные адреса IPv4

Адресов IPv4 для экспериментальных целей не выделено. Для некоторых экспериментов могут быть полезны блоки адресов, выделенные для приватного использования в [RFC1918]. Другие адреса IPv4 специального назначения [RFC3330] не следует использовать для экспериментов.

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

2.4.2. Групповые адреса IPv4

Группа 224.0.1.20 с глобальной маршрутизацией выделена для экспериментов. Для некоторых экспериментов могут оказаться полезными группы, определенные в [RFC2365]. Этот документ определяет одну группу с видимостью на уровне локального соединения — 254.

2.5. Поле IPv4 Option Type

Этот документ выделяет один номер опции с определенными значениями полей copy и class, что дает в результате четыре разных кода типа опции. Значения приведены в разделе 8.

3. Поля заголовков IPv6

Заголовок IPv6 [RFC2460] содержит следующие поля, значения для которых выделяются из контролируемых IANA пространств имен: Version, Traffic Class, Next Header, Source Address и Destination Address. В дополнение к этому заголовки расширения IPv6 Hop-by-Hop Options и Destination Options включают поле Option Type, значения которого выделяются из контролируемого IANA пространства имен. Заголовок IPv6 Routing Header содержит поле Type, для которого в настоящее время не определена явно политика распределения для IANA.

3.1. Поле IP Version в заголовке IPv6

Поле Version в пакетах IPv6 всегда имеет значение 6.

3.2. Поле IPv6 Traffic Class

[RFC2474] определяет Pool 2 (все коды имеют значения xxxx11, где x может принимать значение 0 или 1), как Experimental/Local Use, поэтому дополнительные коды для экспериментов не требуются. Поле ECN [RFC3168] не имеет свободных кодов для распределения.

3.3. Поле IPv6 Next Header

[RFC3692] выделяет два экспериментальных кода (253 и 254) для поля IPv6 Next Header.

3.4. Адреса отправителя и получателя IPv6

3.4.1. Индивидуальные адреса IPv6

[RFC2928] определяет набор адресов IPv6 для тестирования и экспериментов.

Блок Sub-TLA ID, выделенный IANA (т. е., 2001:0000::/29 — 2001:01F8::/29) предназначен для тестов и экспериментов в поддержку таких направлений, как 6bone,а также для новых приложений типа точек обмена.

Однако на момент написания этого документа не было известно о выделении для экспериментов адресов IPv6 в стиле RFC3692. В работе [HUSTON05] предложен реестр IANA, который в будущем может включать такие адреса. Для некоторых экспериментов могут быть полезны уникальные локальные адреса (ULA2) [RFC4193]. Адреса из префикса, выделенного для документов [RFC3849], не подходят для экспериментирования.

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

3.4.2. Групповые адреса IPv6

Группа FF0X::114 выделена для экспериментов во всех областях действия. Более мелкие области действия могут быть особенно полезны для экспериментов, поскольку они определены так, чтобы не выходить за указанную границу, в качестве которой может быть выбрана граница эксперимента. Для некоторых экспериментов могут быть полезны иные групповые адреса с установленным битом T (временный адрес) bit [RFC4291].

3.5. Поля IPv6 Hop-by-Hop и Destination Option

Этот документ выделяет один тип опций со всеми возможными значениями полей act и chg, что дает 8 различных кодов типа опции. Выделенные значения рассмотрены в разделе 8.

3.6. Тип маршрутизации в заголовке IPv6 Routing

Этот документ выделяет два значения для поля Routing Type в заголовке IPv6 Routing Header — 253 и 254.

4. Поля в заголовке IPv4 ICMP

Этот документ выделяет два новых значения для типов ICMPv4 — 253 и 254. Значения кодов ICMPv4 выделяются по типам, поэтому нет смысла присваивать в этом документе экспериментальные значения.

5. Поля в заголовке IPv6 ICMP

[RFC4443] включает экспериментальные значения типов ICMPv6 для сообщений Informational (информационное — 200, 201) и Error (ошибка — 100, 101). Значения кодов ICMPv6 выделяются по типам, поэтому нет смысла присваивать в этом документе экспериментальные значения.

5.1. Поля IPv6 Neighbor Discovery

Заголовок IPv6 Neighbor Discovery [RFC2461] содержит три поля, использующие значения из распределяемого IANA пространства — Type, Code, Option Type.

5.1.1. IPv6 Neighbor Discovery Type

Поле Neighbor Discovery Type совпадает с полем ICMPv6 Type. Значения приведены в разделе 83.

5.1.2. IPv6 Neighbor Discovery Code

Поле ICMPv6 Code не используется IPv6 Neighbor Discovery и экспериментальные значения не требуются.

5.1.3. IPv6 Neighbor Discovery Option Type

Этот документ выделяет два значения типов IPv6 Neighbor Discovery Option — 253 и 254.

6. Поля в заголовке UDP

Два номера портов (1021 и 1022) зарезервированы для экспериментов с протоколами UDP и TCP.

7. Поля в заголовке TCP

7.1. Порты отправителя и получателя TCP

Два номера портов (1021 и 1022) зарезервированы для экспериментов с протоколами UDP и TCP.

7.2. Резервные биты в заголовке TCP

Число резервных битов недостаточно для выделения экспериментальных значений.

7.3. Поле TCP Option

Две опции TCP с номерами 253 и 254 выделены для экспериментов с TCP Option.

8. Согласование с IANA

Ниже приведены новые значения, выделенные в этом документе.

Групповые адреса IPv4 (групповые адреса (224.0.0/24) раздел Local Network Control Block) (параграф 2.4.2)

Групповой адрес

Описание

224.0.0.254

Эксперименты в стиле RFC36924

Групповые адреса IPv4 (групповые адреса, раздел относительной адресации) (параграф2.4.2)

Относительный адрес

Описание

254

Эксперименты в стиле RFC36922

Номера опций IPv4 (раздел ip-parameters) (параграф 2.5)

Копия

Класс

Номер

Значение

0

0

30

30

0

2

30

94

1

0

30

158

1

2

30

222

Типы опций IPv6 (ipv6-parameters, параграф5.b.) (параграф 3.5)

HEX

act

chg

rest

0x1e

00

0

11110

0x3e

00

1

11110

0x5e

01

0

11110

0x7e

01

1

11110

0x9e

10

0

11110

0xbe

10

1

11110

0xde

11

0

11110

0xfe

11

1

11110

Форматы IPv6 Neighbor Discovery Option (icmpv6-parameters) (параграф 5.1.3)

Тип

Описание

253

Эксперименты в стиле RFC36922

254

Эксперименты в стиле RFC36922

Типы IPv6 Routing Header Routing Types (ipv6-parameters, параграф 5.c.) (параграф 3.6)

Тип

Описание

253

Эксперименты в стиле RFC36925

254

Эксперименты в стиле RFC36921

Типы ICMPv4 (icmp-parameters) (параграф 4)

Тип

Описание

253

Эксперименты в стиле RFC36921

254

Эксперименты в стиле RFC36921

Номера портов (port-numbers) (параграфы 6 и 7.1)

Обозначение

Номер

Описание

exp1

1021/udp

Эксперименты в стиле RFC36921

exp1

1021/tcp

Эксперименты в стиле RFC36921

exp2

1022/udp

Эксперименты в стиле RFC36921

exp2

1022/tcp

Эксперименты в стиле RFC36921

Опции TCP (tcp-parameters) (параграф 7.3)

Тип

Размер

Описание

253

N

Эксперименты в стиле RFC36921

254

N

Эксперименты в стиле RFC36921

Каждый из этих реестров сопровожден примечанием.

(*) Использование этого значения приемлемо только в явных экспериментах, недопустима поставка с установленным по умолчанию таким значением. См. RFC 3692.

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

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

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

Поскольку экспериментальные опции IPv4, определенные в параграфе 2.5, не учитываются при расчетах IPsec AH [RFC4302], аутентификация их использования не возможна. Об этом следует помнить при разработке и постановке экспериментов. Пользователи экспериментальных опций IPv6, определенных в параграфе 3.5, могут самостоятельно решить вопрос о включении этих опций в расчет AH, выбирая значение поля chg.

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

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

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

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

[RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G., and E. Lear, «Address Allocation for Private Internets», BCP 5, RFC 1918, February 1996.

[RFC2365] Meyer, D., «Administratively Scoped IP Multicast», BCP 23, RFC 2365, July 1998.

[RFC2460] Deering, S. and R. Hinden, «Internet Protocol, Version 6 (IPv6) Specification», RFC 24606, December 1998.

[RFC2461] Narten, T., Nordmark, E., and W. Simpson, «Neighbor Discovery for IP Version 6 (IPv6)», RFC 2461, December 1998.

[RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, «Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers», RFC 2474, December 1998.

[RFC2780] Bradner, S. and V. Paxson, «IANA Allocation Guidelines For Values In the Internet Protocol and Related Headers», BCP 37, RFC 2780, March 2000.

[RFC2928] Hinden, R., Deering, S., Fink, R., and T. Hain, «Initial IPv6 Sub-TLA ID Assignments», RFC 2928, September 2000.

[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, «The Addition of Explicit Congestion Notification (ECN) to IP», RFC 3168, September 2001.

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

[RFC3692] Narten, T., «Assigning Experimental and Testing Numbers Considered Useful», BCP 82, RFC 3692, January 2004.

[RFC3849] Huston, G., Lord, A., and P. Smith, «IPv6 Address Prefix Reserved for Documentation», RFC 3849, July 2004.

[RFC4193] Hinden, R. and B. Haberman, «Unique Local IPv6 Unicast Addresses», RFC 4193, October 2005.

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

[RFC4302] Kent, S., «IP Authentication Header», RFC 4302, December 2005.

[RFC4443] Conta, A., Deering, S., and M. Gupta, «Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification», RFC 4443, March 2006.

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

[HUSTON05] Huston, G., «Administration of the IANA Special Purpose Address Block», Work in Progress7, December 2005.

Адрес автора

Bill Fenner

AT&T Labs — Research

75 Willow Rd

Menlo Park, CA 94025

USA

Phone: +1 650 330-7893

EMail: fenner@research.att.com

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

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

nmalykh@gmail.com

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

Copyright (C) The IETF Trust (2006).

К этому документу применимы права, лицензии и ограничения, указанные в 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.


1Explicit Congestion Notification — явное уведомление о насыщении.

2Unique Local Address.

3В оригинале ошибочно указан раздел 5. Прим. перев.

4Использование этого значения приемлемо только в явных экспериментах, недопустима поставка с установленным по умолчанию таким значением. См. RFC 3692.

5Использование этого значения приемлемо только в явных экспериментах, недопустима поставка с установленным по умолчанию таким значением. См. RFC 3692.

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

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

Рубрика: RFC | Комментарии к записи RFC 4727 Experimental Values in IPv4, IPv6, ICMPv4, ICMPv6, UDP, and TCP Headers отключены

RFC 4789 Simple Network Management Protocol (SNMP) over IEEE 802 Networks

Network Working Group                                   J. Schoenwaelder
Request for Comments: 4789               International University Bremen
Obsoletes: 1089                                               T. Jeffree
Updates: 3417                                                 Consultant
Category: Standards Track                                  November 2006


Протокол SNMP в сетях IEEE 802

Simple Network Management Protocol (SNMP) over IEEE 802 Networks

PDF

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

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

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

Copyright (C) The IETF Trust (2006).

Аннотация

Этот документ задает способ передачи сообщений SNMP1 непосредственно через сети IEEE 802.

Данный документ отменяет RFC 1089.

1. Введение

Этот документ задает способ передачи сообщений SNMP непосредственно через сети IEEE 802. Подробный обзор документов, описывающих схему стандартного управления Internet приведен в разделе 7 RFC 3410 [RFC3410]. Данный документ дополняет стандарт транспортных отображений SNMP, определенных в RFC 3417 [RFC3417].

Данный документ отменяет RFC 1089.

Доступ к объектам управления осуществляется через виртуальное хранилище информации, называемой базой MIB2. Доступ к объектам MIB обычно осуществляется по протоколу SNMP. Объекты MIB определяются с использованием механизмов, заданных в структуре управляющей информации (SMI3). Данный документ задает модуль MIB, соответствующий спецификации SMIv2, описанной в STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] и STD 58, RFC 2580 [RFC2580].

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

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

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

   SNMP-IEEE802-TM-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-IDENTITY, snmpModules, snmpDomains
           FROM SNMPv2-SMI;

       snmpIeee802TmMib MODULE-IDENTITY
           LAST-UPDATED "200611210000Z"
           ORGANIZATION "IETF Operations and Management Area"
           CONTACT-INFO
               "Juergen Schoenwaelder (Editor)
                International University Bremen
                P.O. Box 750 561
                28725 Bremen, Germany

                Phone: +49 421 200-3587
                EMail: j.schoenwaelder@iu-bremen.de

                Send comments to <ietfmibs@ops.ietf.org>."
           DESCRIPTION
               "This MIB module defines the SNMP over IEEE 802
                transport mapping.

                Copyright (C) The IETF Trust (2006).  This version
                of this MIB module is part of RFC 4789; see the RFC
                itself for full legal notices."
           REVISION "200611210000Z"
           DESCRIPTION
               "The initial version, published as RFC 4789."
           ::= { snmpModules 21 }

       snmpIeee802Domain OBJECT-IDENTITY
           STATUS  current
           DESCRIPTION
               "The SNMP over IEEE 802 networks transport domain.  The
                corresponding transport address is of type MacAddress
                as defined in the SNMPv2-TC module (RFC 2579)."
           REFERENCE "RFC 2579"
           ::= { snmpDomains 6 }
   END

3. SNMP в сетях IEEE 802

Это транспортное отображение является необязательным. Необходимость непосредственной передачи SNMP с помощью транспорта ЛВС 802 обусловлена потребностями управления простыми устройствами в приложениях типа двухпортовых ретрансляторов MAC, разработанных IEEE в рамках проекта P802.1aj [802.1aj].

SNMP в сетях IEEE 802 имеет некоторые ограничения. Использование транспортного отображения SNMP over IEEE 802 ограничивает обмен сообщениями рамками одной ЛВС IEEE 802, ЛВС на основе мостов или VLAN. Кроме того, на данном сетевом интерфейсе IEEE 802 может быть адресована лишь одна машина SNMP. В частности, генераторы команд и получатели уведомлений, а также инициаторы уведомлений и отвечающие на команды элементы должны размещаться в одной транспортной конечной точке.

3.1. Сериализация

Сообщения SNMP сериализуются в соответствии с разделом 8 RFC 3417 [RFC3417]. Полученное в результате сообщение доставляется в поле данных кадра IEEE LAN MAC.

3.2. Общеизвестные значения

Сериализованные сообщения SNMP передаются в кадрах IEEE 802.3 с полем типа Ethernet 33100 (шестнадцатеричное значение 814C).

При передаче сериализованных сообщений SNMP в кадрах IEEE 802.3 (и кадрах иных типов IEEE 802 MAC, которые могут естественным образом представлять значения типа Ethernet) должно использоваться поле типа Ethernet со значением 33100 (0x814C) в качестве идентификатора протокола канального уровня. В ЛВС IEEE 802, использующих подуровень LLC для идентификации протокола канального уровня (типа беспроводных сетей IEEE 802.11), должен применяться метод инкапсуляции SNAP, описанный в параграфе 10.5 «Encapsulation of Ethernet frames over LLC» стандарта [IEEE802].

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

3.3. Формат кадра IEEE 802.3

                0                   1
                0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               |             Адрес             |
               +-                             -+
               |           получателя          |
               +-                             -+
               |            Ethernet           |
               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               |             Адрес             |
               +-                             -+
               |          отправителя          |
               +-                             -+
               |            Ethernet           |
               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               |1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0|
               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               |          Сообщение            |
               +-                             -+
               /             SNMP ...          /
               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             (каждая «клетка» представляет 1 бит)

4. Связи с другими модулями MIB

В нескольких базовых модулях SNMP MIB используются пары TDomain/TAddress для идентификации конечных точек транспорта SNMP. Модуль SNMP-TARGET-MIB [RFC3413] использует пары TDomain/TAddress для указания объектов, которые могут служить приемниками уведомлений. Пары TDomain/TAddress используются модулем NOTIFICATION-LOG-MIB [RFC3014] для записи источника, из которого получен уведомление. Модуль ENTITY-MIB [RFC4133] использует пары TDomain/TAddress для предоставления конечной точки транспорта для логических объектов.

Содержащийся в этом документе модуль MIB вводит постоянный идентификатор объекта snmpIeee802Domain. Значение этой константы может быть назначено объекту типа TDomain для указания конечной точки SNMP over IEEE 802, при этом соответствующая переменная TAddress будет иметь значение, удовлетворяющее текстовому соглашению MacAddress. Эти определения позволяют использовать базовые модули MIB для указания конечных точек SNMP over IEEE 802.

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

Агентство IANA выделило значение MIB OID в ветви snmpModules для модуля SNMP-IEEE802-TM-MIB.

Агентство IANA выделило значение OID в ветви snmpDomains для транспортного домена. Это потребовало предварительно создать реестр для OIDs в ветви snmpDomains. На момент выхода этого документа имелись перечисленные ниже значения.

Префикс: iso.org.dod.internet.snmpv2.snmpDomains (1.3.6.1.6.1)

 

Десятичный код

Имя

Описание

Документ

1

snmpUDPDomain

SNMP на основе UDP

[RFC3417]

2

snmpCLNSDomain

SNMP на основе CLNS

[RFC3417]

3

snmpCONSDomain

SNMP на основе CONS

[RFC3417]

4

snmpDDPDomain

SNMP на основе DDP

[RFC3417]

5

snmpIPXDomain

SNMP на основе IPX

[RFC3417]

Было добавлено показанное ниже назначение.

 

Десятичный код

Имя

Описание

Документ

6

snmpIeee802Domain

SNMP на основе IEEE 802

RFC 4789

 

Для новых назначений требуется спецификация, как указано в [RFC2434].

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

Этот модуль не определяет каких-либо объектов управления. Здесь определен идентификатор OBJECT-IDENTIFIER, который может использоваться в других модуля MIB для указания транспортного отображения SNMP. Значимые соображения в части безопасности могут быть приведены лишь в модулях MIB, которые определяют объекты управления. Поэтому содержащийся в документе модуль MIB не оказывает влияния на безопасность Internet.

Сообщения SNMPv1 и SNMPv2c не считаются защищенными. При реализации рекомендуется рассмотреть использование сообщений SNMPv3 и средств защиты, обеспечиваемых в SNMPv3. В частности, рекомендуется использовать модель защиты в зависимости от пользователя (User-based Security Model) STD 62, RFC 3414 [RFC3414] и модель контроля доступа на основе представлений (View-based Access Control Model) STD 62, RFC 3415 [RFC3415].

После этого ответственность пользователя заключается в гарантии корректной настройки элемента SNMP, предоставляющего доступ к MIB, чтобы такой доступ предоставлялся лишь пользователям, имеющим легитимные права на операции GET и SET (изменение).

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

Исходное определение для передачи SNMP через сеть Ethernet, разработанное Marty Schoffstall, Chuck Davin, Mark Fedor и Jeff Case, было опубликовано в RFC 1089 [RFC1089].

Bert Wijnen и Dan Romascanu дали рекомендации по многим аспектам этой пересмотренной спецификации. Комментарии David Harrington помогли улучшить представление.

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

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

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

[RFC2578] McCloghrie, K., Perkins, D., and J. Schoenwaelder, «Structure of Management Information Version 2 (SMIv2)», STD 58, RFC 2578, April 1999.

[RFC2579] McCloghrie, K., Perkins, D., and J. Schoenwaelder, «Textual Conventions for SMIv2», STD 58, RFC 2579, April 1999.

[RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, «Conformance Statements for SMIv2», STD 58, RFC 2580, April 1999.

[RFC3417] Presuhn, R., Ed., «Transport Mappings for the Simple Network Management Protocol (SNMP)», STD 62, RFC 3417, December 2002.

[IEEE802] «IEEE Standard for Local Area Networks: Overview and Architecture», IEEE Std. 802-20014.

[RFC2434] Narten, T. and H. Alvestrand, «Guidelines for Writing an IANA Considerations Section in RFCs», BCP 26, RFC 2434, October 1998.

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

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

[RFC3413] Levi, D., Meyer, P., and B. Stewart, «Simple Network Management Protocol (SNMP) Applications», STD 62, RFC 3413, December 2002.

[RFC3414] Blumenthal, U. and B. Wijnen, «User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)», STD 62, RFC 3414, December 2002.

[RFC3415] Wijnen, B., Presuhn, R., and K. McCloghrie, «View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)», STD 62, RFC 3415, December 2002.

[RFC3014] Kavasseri, R., «Notification Log MIB», RFC 3014, November 2000.

[RFC4133] Bierman, A. and K. McCloghrie, «Entity MIB (Version 3)», RFC 41335, August 2005.

[RFC1089] Schoffstall, M., Davin, C., Fedor, M., and J. Case, «SNMP over Ethernet», RFC 1089, February 1989.

[802.1aj] P802.1aj/D1.4 Draft Standard for Local and Metropolitan Area Networks — Virtual Bridged Local Area Networks — Amendment 08: Two-Port Media Access Control (MAC) Relay, IEEE 802.1 Working Group, June 2006, Work in Progress6.

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

Juergen Schoenwaelder

International University Bremen

Campus Ring 1

28725 Bremen

Germany

Phone: +49 421 200-3587

EMail: j.schoenwaelder@iu-bremen.de

Tony Jeffree

Consultant

11a Poplar Grove

Sale, Cheshire, M33 3AX

United Kingdom

Phone: +44-161-973-4278

EMail: tony@jeffree.co.uk


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

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

nmalykh@gmail.com

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

Copyright (C) The IETF Trust (2006).

К этому документу применимы права, лицензии и ограничения, указанные в 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.


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

2Management Information Base — база управляющей информации.

3Structure of Management Information.

4Действующая версия стандарта доступна по ссылке 802-2014 — IEEE Standard for Local and Metropolitan Area Networks: Overview and Architecture. Прим. перев.

5Документ заменен RFC 6933. Прим. перев.

6Поправки были приняты как 802.1aj-2009 — IEEE Standard for Local and Metropolitan Area Networks — Virtual Bridged Local Area Networks Amendment 11: Two-Port Media Access Control (Mac) Relay. Затем эти поправки были включены в пересмотренный стандарт IEEE Std 802.1Q-2014. Прим. перев.

Рубрика: RFC | Комментарии к записи RFC 4789 Simple Network Management Protocol (SNMP) over IEEE 802 Networks отключены