Internet Engineering Task Force (IETF) J. Hedin Request for Comments: 7750 G. Mirsky Updates: 5357 S. Baillargeon Category: Standards Track Ericsson ISSN: 2070-1721 February 2016
Differentiated Service Code Point and Explicit Congestion Notification Monitoring in the Two-Way Active Measurement Protocol (TWAMP)
Мониторинг DSCP и ECN в TWAMP
Аннотация
Этот документ описывает необязательное расширение для протокола двухсторонних активных измерений (Two-Way Active Measurement Protocol или TWAMP), позволяющее отслеживать поля DSCP и ECN в протоколе TWAMP-Test.
Статус документа
Документ относится к категории Internet Standards Track.
Документ является результатом работы IETF1 и представляет согласованный взгляд сообщества IETF. Документ прошёл открытое обсуждение и был одобрен для публикации IESG2. Дополнительную информацию о стандартах Internet можно найти в разделе 2 в RFC 5741.
Информацию о текущем статусе документа, ошибках и способах обратной связи можно найти по ссылке http://www.rfc-editor.org/info/rfc7750.
Авторские права
Авторские права (Copyright (c) 2016) принадлежат IETF Trust и лицам, указанным в качестве авторов документа. Все права защищены.
К документу применимы права и ограничения, указанные в BCP 78 и IETF Trust Legal Provisions и относящиеся к документам IETF (http://trustee.ietf.org/license-info), на момент публикации данного документа. Прочтите упомянутые документы внимательно. Фрагменты программного кода, включённые в этот документ, распространяются в соответствии с упрощённой лицензией BSD, как указано в параграфе 4.e документа IETF Trust Legal Provisions, без каких-либо гарантий (как указано в Simplified BSD License).
1. Введение
Протокол OWAMP [RFC4656] определяет поле Type-P Descriptor и согласует его значение через протокол OWAMP-Control. В протоколе TWAMP [RFC5357] указано, что лишь значение кода DSCP (см. [RFC2474], [RFC3168], [RFC3260]) может быть задано в Type-P Descriptor и согласованное значение должны использовать как Session-Sender, так и Session-Reflector. В спецификации TWAMP также указано, что это же значение DSCP (из пакета Session-Sender) должно применяться а пакетах, отраженных Session-Reflector. Однако протокол TWAMP-Test не задаёт какого-либо метода обнаружения и информирования при смене значения DSCP или применении отличного от ожидаемого значения в прямом или обратном направлении. Перемаркировка DSCP (смена значения) возможна в сетях IP и часто выполняется политикой дифференцированного обслуживания на одном из узлов пути IP. Во многих случаях смена кода DSCP говорит о непреднамеренных или ошибочных действиях. В лучшем случае Session-Sender может обнаружить смену DSCP в обратном направлении, предполагая, что такое обнаружение действительно возможно.
В этом документе описана необязательная функция TWAMP, называемая DSCP and ECN Monitoring. Она позволяет отправителю Session-Sender знать фактическое значение DSCP, полученное на стороне Session-Reflector. Кроме того, эта функция отслеживает значение ECN (см. [RFC2474], [RFC3168], [RFC3260]), полученное Session-Reflector. Это полезно для определения работы ECN и фактического обнаружения перегрузки в прямом направлении узлом ECN.
1.1. Используемые соглашения
1.1.1. Сокращения
DSCP
Differentiated Services Code Point — код дифференцированного обслуживания.
ECN
Explicit Congestion Notification — явное уведомление о перегрузке.
IPPM
IP Performance Metrics — показатели производительности IP.
TWAMP
Two-Way Active Measurement Protocol — двухсторонний протокол активных измерений.
OWAMP
One-Way Active Measurement Protocol — односторонний протокол активных измерений.
1.1.2. Уровни требований
Ключевые слова должно (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не следует (SHALL NOT), следует (SHOULD), не нужно (SHOULD NOT), рекомендуется (RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе интерпретируются в соответствии с [RFC2119].
2. Расширения TWAMP
Организация соединения TWAMP выполняется по процедуре, заданной в параграфе 3.1 и [RFC4656] и параграфе 3.1 [RFC5357], где поле Modes служит для указания и выбора конкретных свойств взаимодействия. В то же время, поле Modes считается и применяется как механизм расширения [RFC6038]. Для новой функции требуется новый флаг для указания способности Session-Reflector возвращать полученные значения полей DSCP и ECN отправителю Session-Sender и поддержки нового формата пакетов Session-Reflector в протоколе TWAMP-Test (см. раздел 3).
2.1. Установка отслеживания DSCP и ECN в соединении
Server устанавливает флаг отслеживания DSCP и ECN в поле Modes сообщения Server Greeting для индикации своей возможности и желания отслеживать эти поля. Если клиент Control-Client согласен отслеживать DSCP и ECN для всех или некоторых тестовых сессий, организованных в этом соединении, он должен установить флаг мониторинга DSCP и ECN в поле Modes сообщения Setup Response.
2.2. Расширение TWAMP-Test
Отслеживание DSCP и ECN требует поддержки со стороны Session-Reflector и смены формата тестовых пакетов в исходных режимах (unauthenticated, authenticated, encrypted). Отслеживание DSCP и ECN не меняет тестовые пакеты Session-Sender, но требуется учесть некоторые соображения при восприятии этого режима вместе с режимом Symmetrical Size [RFC6038].
2.2.1. Формат пакета Session-Reflector для отслеживания DSCP и ECN
Когда Session-Reflector поддерживает отслеживание DSCP и ECN, он создаёт поля S-DSCP и S-ECN (S-DSCP-ECN), показанные на рисунке 1, для каждого тестового пакета, передаваемого отправителю Session-Sender, как указано ниже.
-
6 младших битов поля Differentiated Service должны копироваться из полученного тестового пакета от Session-Sender в поле Sender DSCP (S-DSCP);
-
два бита поля ECN должны копироваться из полученного тестового пакета от Session-Sender в поле Sender ECN (S-ECN).
0 1 2 3 4 5 6 7 +---+---+---+---+---+---+---+---+ | S-DSCP | S-ECN | +---+---+---+---+---+---+---+---+
Рисунок 1. Формат полей DSCP и ECN у отправителя.
Формат тестовых пакетов, которые Session-Reflector передаёт в режимах unauthenticated, authenticated, encrypted, задан в параграфе 4.2.1 [RFC5357]. Для Session-Reflector с поддержкой отслеживания DSCP и ECN формат таких пакетов показан на рисунках 2 и 3.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Timestamp | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Error Estimate | MBZ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receive Timestamp | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sender Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sender Timestamp | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sender Error Estimate | MBZ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sender TTL | S-DSCP-ECN | MBZ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Packet Padding ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Рисунок 2. Формат тестового пакета Session-Reflector с полем мониторинга в режиме Unauthenticated.
Значения DSCP и ECN values (часть Type-P Descriptor [RFC4656]) можно задать через TWAMP-Control или иными средствами (командный интерфейс CLI или центральный контроллер). Эти значения зачастую копируются в отражённые пакеты текущими реализациями TWAMP без протокола TWAMP-Control. С расширением мониторинга DSCP и ECN рефлектор Session-Reflector обрабатывает DSCP, как показано ниже.
-
Session-Reflector должен извлечь DSCP и ECN из принятого пакета и должен использовать их для заполнения поля S-DSCP-ECN в соответствующем отражённом пакете.
-
Session-Reflector должен передавать каждый отражённый тестовый пакет с полученным значением DSCP.
-
Если предоставленное значение DSCP неизвестно (например, TWAMP Light), выбор DSCP зависит от реализации. Например, Session-Reflector может копировать DSCP из полученного тестового пакета и установить в поле DSCP отражённого пакета. Как вариант, Session-Reflector может установить DSCP = CS0 (0) [RFC2474].
-
Если предоставленное значение ECN, в поле ECN следует установить Not-ECT [RFC3168]. В остальных случаях нужно применять заданное для сессии значение ECN.
Session-Reflector в режиме отслеживания DSCP и ECN не анализирует и не влияет на значение ECN, полученное в тестовом пакете TWAMP, поэтому рефлектор игнорирует состояние перегрузки в сети. Предполагается, что скорость передачи достаточно мала, поскольку опыт развёртывания TWAMP показывает с момента публикации базового протокола TWAMP (RFC 5357, 2008 г.), что игнорирование индикации перегрузки не вносит в неё значимого вклада.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | MBZ (12 октетов) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Timestamp | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Error Estimate | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | MBZ (6 октетов) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receive Timestamp | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MBZ (8 октетов) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sender Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | MBZ (12 октетов) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sender Timestamp | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sender Error Estimate | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | MBZ (6 октетов) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sender TTL | S-DSCP-ECN | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | | MBZ (14 октетов) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | HMAC (16 октетов) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Packet Padding ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Рисунок 3. Формат тестового пакета Session-Reflector с полем мониторинга в режиме Authenticated или Encrypted.
2.2.2. Отслеживание DSCP и ECN с расширениями из RFC 6038
В [RFC6038] заданы два расширения TWAMP — одно для обмена между Session-Sender и Session-Reflector пакетами TWAMP-Test одного размера, другое для задания числа октетов, отражаемых Session-Reflector. Если согласованы режимы DSCP and ECN Monitoring и Symmetrical Size и/или Reflects Octets между Server и Control-Client в режиме Unauthenticated, значению Padding Length следует быть не меньше 28 октетов для поддержки процесса отсечки TWAMP, рекомендованного в параграфе 4.2.1 [RFC5357], поскольку поля S-DSCP и S-ECN увеличивают размер неаутентифицируемого пакета Session-Reflector на 4 октета.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Timestamp | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Error Estimate | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | | MBZ (28 октетов) | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | . . . Packet Padding . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Рисунок 4. Формат тестового пакета Session-Sender с полем мониторинга в режиме и Symmetrical Test в режиме Unauthenticated.
2.2.3. Соображения по режиму TWAMP Light
В Приложении I к [RFC5357] не указано явно, как значение Type-P Descriptor синхронизируется между Session-Sender и Session-Reflector и считаются ли разные значения ошибкой, о которой следует сообщать. Авторы предполагают, что Session-Sender и Session-Reflector в данной сессии TWAMP-Test каким-либо способом информируются для использования одного значения DSCP. Те же средства, например, конфигурацию, можно применять для оповещения Session-Reflector о поддержке отслеживания DSCP и ECN путём копирования данных из полученных тестовых пакетов TWAMP. Тогда Session-Sender может узнать о необходимости использования поля S-DSCP-ECN в отражённых тестовых пакетах TWAMP.
3. Взаимодействие с IANA
В реестр TWAMP-Modes, заданный [RFC5618], агентство IANA внесло новую функцию DSCP and ECN Monitoring Capability, как показано ниже.
Таблица 1. Новая возможность временных меток.
Битовая позиция |
Описание |
Семантика |
Документ |
---|---|---|---|
8 |
DSCP and ECN Monitoring Capability |
Раздел 2 |
RFC 7750 |
4. Вопросы безопасности
Отслеживание DSCP и ECN не создаёт дополнительных угроз безопасности для хостов, взаимодействующих с TWAMP в соответствии с [RFC5357] и имеющимися расширениями [RFC6038]. В параграфах 3.2, 4, 4.1.2, 4.2, 4.2.1 [RFC5357] рассмотрены режимы unauthenticated, authenticated и encrypted с разным уровнем детализации. Соображения безопасности при любых активных измерениях в действующих сетях применимы и здесь. См. разделы «Вопросы безопасности» в [RFC4656] и [RFC5357].
5. Литература
5.1. Нормативные документы
[RFC2119] Bradner, S., «Key words for use in RFCs to Indicate Requirement Levels», BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>.
[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, DOI 10.17487/RFC2474, December 1998, <http://www.rfc-editor.org/info/rfc2474>.
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, «The Addition of Explicit Congestion Notification (ECN) to IP», RFC 3168, DOI 10.17487/RFC3168, September 2001, <http://www.rfc-editor.org/info/rfc3168>.
[RFC4656] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M. Zekauskas, «A One-way Active Measurement Protocol (OWAMP)», RFC 4656, DOI 10.17487/RFC4656, September 2006, <http://www.rfc-editor.org/info/rfc4656>.
[RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. Babiarz, «A Two-Way Active Measurement Protocol (TWAMP)», RFC 5357, DOI 10.17487/RFC5357, October 2008, <http://www.rfc-editor.org/info/rfc5357>.
[RFC5618] Morton, A. and K. Hedayat, «Mixed Security Mode for the Two-Way Active Measurement Protocol (TWAMP)», RFC 5618, DOI 10.17487/RFC5618, August 2009, <http://www.rfc-editor.org/info/rfc5618>.
[RFC6038] Morton, A. and L. Ciavattone, «Two-Way Active Measurement Protocol (TWAMP) Reflect Octets and Symmetrical Size Features», RFC 6038, DOI 10.17487/RFC6038, October 2010, <http://www.rfc-editor.org/info/rfc6038>.
5.2. Дополнительная литература
[RFC3260] Grossman, D., «New Terminology and Clarifications for Diffserv», RFC 3260, DOI 10.17487/RFC3260, April 2002, <http://www.rfc-editor.org/info/rfc3260>.
Благодарности
Авторы признательны Bill Cerveny, Christofer Flinta, Samita Chakrabarti за рецензии и ценные замечания.
Адреса авторов
Jonas Hedin
Ericsson
Email: jonas.hedin@ericsson.com
Greg Mirsky
Ericsson
Email: gregory.mirsky@ericsson.com
Steve Baillargeon
Ericsson
Email: steve.baillargeon@ericsson.com
Перевод на русский язык
Николай Малых
1Internet Engineering Task Force — комиссия по решению инженерных задач Internet.
2Internet Engineering Steering Group — комиссия по инженерным разработкам Internet.