Rfc 2544: Стандартный тест RFC2544 / Хабр

Стандартный тест RFC2544 / Хабр

Всем привет!

В этот раз подошло время рассмотреть стандартный тест RFC2544: для чего используется, как проводится, его достоинства и недостатки.

Disclaimer

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

Введение

Рекомендация RFC2544 была разработана в 1999 году и принята IETF. Существует перевод на русский язык. Сейчас эта рекомендация практически стандарт де-факто, благодаря широкому распространению и свободному доступу. Рекомендация “описывает и определяет набор тестов для определения характеристик устройств межсетевых соединений”, описывает форматы представления результатов тестирования.

Структура методики

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

  • Throughput
    • определяет пропускную способность DUT, по рекомендации RFC1242
    • определяет нагрузку, при которой нет потерь пакетов

  • Latency
    • определяет задержку, по рекомендации RFC1242
    • измеряет задержку по кадрам выборочно

  • Frame Loss
    • определяет частоту потери кадров, по рекомендации RFC1242, во всем диапазоне скоростей данных и размеров кадра
    • определяет зависимость потерь от нагрузки

  • Back-To-Back
    • определяет возможность DUT по обработке кадров back-to-back, по рекомендации RFC1242
    • измеряет длительность работы при заданной нагрузке

  • Восстановление системы
    • определяет скорость восстановления DUT после перегрузки трафиком

  • Перезагрузка
    • определяет скорость восстановления DUT после программного или аппаратного сброса

Пропускная способность

Определяется максимальное количество кадров в секунду, которое может передать устройство без ошибок. Скорость определяется методом бисекции. Тест начинается на максимальной скорости. В случае потерь, скорость уменьшается в два раза. Если потерь нет, то скорость увеличивается в два раза, по сравнению с предыдущей. И так далее. Максимальная скорость определяется по стабильности работы (нет потерь) на протяжении 60 секунд. Тестирование проводится для каждого размера кадра. Размеры задаются в параметрах теста RFC2544 перед запуском.

Задержка

Тест опирается на предыдущее измерение пропускной способности. Для каждого размера пакета с соответствующей ему максимальной скоростью генерируется поток данных. Поток должен иметь длительность минимум 120 секунд. В 1 пакет по прошествии 60 секунд вставляется метка времени. На передающей стороне записывается время отправки пакета. На приемной стороне определяется метка отправителя и записывается время приема пакета. Задержка — это разница времени получения и времени отправки. Тест должен повторяться минимум 20 раз.

По результатам измерений вычисляется средняя задержка.

Потеря пакетов

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

Back-to-back

Тест заключается в проверке оборудования обработать кадры, идущие с минимальным межкадровым интервалом, т.е. спиной к спине (back-to-back). Начинается с установленного в параметрах теста RFC2544 количества кадров. Если потери не наблюдаются (на протяжении не менее 2 секунд), то количество кадров увеличивается, если присутствуют, то уменьшается. По итогам не менее 50 измерений вычисляется среднее значение.

Недостатки методики

Методика тестирования стара (разработана в 1999 году) и сегодня уже не соответствует требованиям рынка. Из недостатков выделяются:
невозможно постоянно измерять задержку (Frame Transfer Delay, FTD)
отсутствует измерение вариации задержки (Frame Delay Variation, FDV)
нет многопоточности, все выполняется по очереди
тест долгий (исходя из предыдущего пункта)

Дополнения к методике

Чтобы расширить функциональность и компенсировать недостатки разработаны дополнения:

  • измерение jitter
  • complex traffic
Jitter

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

Возможный вариант — различная задержка между соседними пакетами:

Complex traffic

Тест позволяет генерировать и принимать несколько потоков тестового трафика.
Измеряет пропускную способность и величину потерь кадров (Frame Loss Rate, FLR), но не позволяет измерять постоянно задержку (FTD) и вариацию задержки (FDV).

Заключение

Методика RFC2544 сейчас присутствует в оборудовании большинства производителей, в первую очередь исторически, и можно сказать что сегодня она — такой же базовый тест для пакетных сетей Ethernet, как BERT для сетей TDM. Но стоит помнить, что RFC2544 не проводит всестороннее тестирование и даже при успешном прохождении всех тестов может возникнуть ситуация, что сеть не будет функционировать как ожидалось.

На смену методике RFC2544 приходит Y1564, которой собираюсь посвятить следующую статью.

Другие мои статьи

  1. Качество сетей передачи данных. Программные и аппаратные измерения
  2. Качество сетей передачи данных. Транспорт

Пример: Настройка тестов на основе бенчмаркинга RFC 2544 для NNI Direction of Ethernet Pseudowires

В этом примере показано, как настроить тест на бенчмаркинг для направления сетевого интерфейса (NNI) в направлении псевдопроводного сервиса Ethernet.

Требования

В этом примере используются следующие компоненты аппаратного и программного обеспечения:

Обзор

Рассмотрим пример топологии, в которой маршрутизатор, маршрутизатор А, работает в качестве инициатора и терминатора испытательных кадров для тестирования по стандарту RFC 2544. Маршрутизатор A работает в качестве граничного устройства поставщика, PE1, которое подключено к граничному устройству клиента, CE1, с одной стороны и по электронной псевдоуправляемой к другому маршрутизатору, маршрутизатору B, который функционирует как отражатель для отражения обратно испытательных кадров, которые он получает от маршрутизатора А. Маршрутизатор B работает в качестве граничного устройства поставщика, PE2, это удаленный маршрутизатор, расположенный по другую сторону ядра поставщика услуг. Uni-направление CE1 подключено к направлению NNI pe1. Туннель MPLS соединяет PE1 и PE2 по протоколам Ethernet pseudowire или Ethernet line (E-LINE).

Этот тест для бенчмаркинга используется для вычисления атрибутов производительности в направлении сетевого интерфейса (NNI) в отношении псевдопроводного сервиса Ethernet между маршрутизатором А и маршрутизатором B. Логический интерфейс, который тестируется на маршрутизаторе А, — это интерфейс CE1 с UNI в качестве направления, а логический интерфейс, который тестируется на маршрутизаторе B, — это интерфейс CE2 с NNI в качестве направления. Трафик данных, поступающий из UNI в NNI, игнорируются во время тестирования. Пакеты из NNI не направляются на границу клиента, поскольку предполагается, что все пакеты являются испытательными кадрами. Маршрутизаторы A и B настроены в направлении CCC и NNI.

На рисунке 1 показана топология образца для выполнения теста RFC 2544 для направления NNI в сервисе pseudowire Ethernet.

Рис. 1. Тест по бенчмаркингу на основе RFC 2544 для NNI Direction of an Ethernet Pseudowire

Конфигурации

В этом примере вы настраиваете тест на бенчмаркинг для направления NNI в отношении сервиса Ethernet pseudowire, который включен между двумя маршрутизаторами для обнаружения и анализа производительности маршрутизаторов межсоединения.

  • Быстрая настройка командной строки
  • Настройка параметров тестирования на маршрутизаторе B
  • Настройка параметров тестирования на маршрутизаторе B
  • Результаты

Быстрая настройка командной строки

Чтобы быстро настроить этот пример, скопируйте следующие команды, вставьте их в текстовый файл, удалите любые перерывы на строку, измените любые детали, необходимые для соответствия конфигурации сети, а затем скопируйте и вставьте команды в командную строку на уровне иерархии[edit]:

Настройка параметров тестирования на маршрутизаторе А

set interfaces ge-0/0/0 vlan-tagging
set interfaces ge-0/0/0 unit 0 encapsulation vlan-ccc
set interfaces ge-0/0/0 unit 0 vlan-id 101
set services rpm rfc2544-benchmarking profiles test-profile throughput test-type throughput
set services rpm rfc2544-benchmarking profiles test-profile throughput packet-size 64
set services rpm rfc2544-benchmarking profiles test-profile throughput test-duration 20
set services rpm rfc2544-benchmarking profiles test-profile throughput bandwidth-kbps 500 set services rpm rfc2544-benchmarking tests test-name test1 interface ge-0/0/0. 1 set services rpm rfc2544-benchmarking tests test-name test1 test-profile throughput set services rpm rfc2544-benchmarking tests test-name test1 mode initiate-and-terminate set services rpm rfc2544-benchmarking tests test-name test1 family ccc set services rpm rfc2544-benchmarking tests test-name test1 direction nni

Настройка параметров тестирования на маршрутизаторе B

set interfaces ge-0/0/4 vlan-tagging
set interfaces ge-0/0/4 unit 0 encapsulation vlan-ccc
set interfaces ge-0/0/4 unit 0 vlan-id 101
set services rpm rfc2544-benchmarking tests test-name test1 interface ge-0/0/4.1
set services rpm rfc2544-benchmarking tests test-name test1 mode reflect set services rpm rfc2544-benchmarking tests test-name test1 reflector-port 25 set services rpm rfc2544-benchmarking tests test-name test1 mode family ccc set services rpm rfc2544-benchmarking tests test-name test1 direction uni

Настройка параметров тестирования на маршрутизаторе B

Пошаговая процедура

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

Для настройки параметров тестирования на маршрутизаторе А:

  1. В режиме конфигурации перейдите на уровень иерархии [edit interfaces] :

    [edit]
    user@host# edit interfaces
    
  2. Настройка интерфейса, на котором должно быть запущено тестирование.

    [edit interfaces]
    user@host# edit ge-0/0/0
    
  3. Настраивайте метки VLAN для передачи и приема кадров с метками VLAN 802.1Q.

    [edit interfaces ge-0/0/0]
     user@host# set vlan-tagging
    
  4. Настройте логический блок для интерфейса.

    [edit interfaces ge-0/0/0]
     user@host# edit unit 0
    
  5. Укажите инкапсуляцию для каналов Ethernet VLAN.

    [edit interfaces ge-0/0/0 unit 0]
     user@host# set encapsulation vlan-ccc
    
  6. Настраивайте ID VLAN в логическом интерфейсе.

    [edit interfaces ge-0/0/0 unit 0]
    user@host# set vlan-id 101
    
  7. Идите на верхний уровень командного режима конфигурации.

    [edit interfaces ge-0/0/0 unit 0]
    user@host# top
    
  8. В режиме конфигурации переходите на [edit services] уровень иерархии.

    [edit]
    user@host# edit services
    
  9. Настройте экземпляр сервиса мониторинга производительности в режиме реального времени (RPM).

    [edit services]
    user@host# edit rpm
    
  10. Настраивайте тест по бенчмаркингу на основе RFC 2544 для экземпляра RPM.

    [edit services rpm]
    user@host# edit rfc2544-benchmarking
    
  11. Определение названия тестового профиля, например пропускной способности.

    [edit services rpm rfc2544-benchmarking]
    user@host# edit profiles test-profile throughput
    
  12. Настраивайте тип тестирования, который будет выполняться в качестве пропускной способности.

    [edit services rpm rfc2544-benchmarking profiles test-profile throughput]
    user@host# set test-type throughput
    
  13. Укажите размер пакета тестирования в виде 64 байтов.

    [edit services rpm rfc2544-benchmarking profiles test-profile throughput]
    user@host# set test-type packet-size 64
    
  14. Укажите период, например 20 минут, для которых тест должен быть выполнен за часы, минуты или секунды, указывая номер, за которым следует буква h (в течение нескольких часов), м (в течение минут) или s (в течение секунд).

    [edit services rpm rfc2544-benchmarking profiles test-profile throughput]
    user@host# set test-type test-duration 20m
    
  15. Определение теоретической максимальной полосы пропускания для тестирования в килобит в секунду с пропускной способностью от 1 кбит/с до 1 000 000 Кбит/с.

    [edit services rpm rfc2544-benchmarking profiles test-profile throughput]
    user@host# set test-type bandwidth-kbps 500
    
  16. up Введите команду, чтобы перейти на предыдущий уровень в иерархии конфигурации.

    [edit services rpm rfc2544-benchmarking profiles test-profile throughput]
    user@host# up
    
  17. up Введите команду, чтобы перейти на предыдущий уровень в иерархии конфигурации.

    [edit services rpm rfc2544-benchmarking profiles]
    user@host# up
    
  18. Определение названия теста— например, test1. Идентификатор тестового имени может быть длиной до 32 символов.

    [edit services rpm rfc2544-benchmarking]
    user@host# edit tests test-name test1
    
  19. Укажите название профиля тестирования, например пропускную способность, которая будет связана с определенным названием тестирования.

    [edit services rpm rfc2544-benchmarking tests test-name test1]
    user@host# set test-profile throughput
    
  20. Укажите логический интерфейс ge-0/0/0.1, на котором выполняется тест по бенчмаркингу на основе RFC 2544.

    [edit services rpm rfc2544-benchmarking tests test-name test1]
    user@host# set test-interface ge-0/0/0.1
    
  21. Укажите режим тестирования для пакетов, которые передаются во время тестирования эталонной оценки в качестве инициации и прекращения.

    [edit services rpm rfc2544-benchmarking tests test-name test1]
    user@host# set mode initiate-and-terminate
    
  22. Настраивайте семейство cccадресов для тестирования по бенчмаркингу.

    [edit services rpm rfc2544-benchmarking tests test-name test1]
    user@host# set family ccc
    
  23. Укажите направление интерфейса, на котором должно быть запущено тестирование, т. е. NNI в этом примере.

    [edit services rpm rfc2544-benchmarking tests test-name test1]
    user@host# set direction nni
    

Настройка параметров тестирования на маршрутизаторе B

Пошаговая процедура

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

Для настройки параметров тестирования на маршрутизаторе B:

  1. В режиме конфигурации перейдите на уровень иерархии [edit interfaces] :

    [edit]
    user@host# edit interfaces
    
  2. Настройка интерфейса, на котором должно быть запущено тестирование.

    [edit interfaces]
    user@host# edit ge-0/0/4
    
  3. Настраивайте метки VLAN для передачи и приема кадров с метками VLAN 802.1Q.

    [edit interfaces ge-0/0/4]
     user@host# set vlan-tagging
    
  4. Настройте логический блок для интерфейса.

    [edit interfaces ge-0/0/4]
     user@host# edit unit 0
    
  5. Укажите инкапсуляцию для каналов Ethernet VLAN.

    [edit interfaces ge-0/0/4 unit 0]
     user@host# set encapsulation vlan-ccc
    
  6. Настраивайте ID VLAN в логическом интерфейсе.

    [edit interfaces ge-0/0/4 unit 0]
    user@host# set vlan-id 101
    
  7. Идите на верхний уровень командного режима конфигурации.

    [edit interfaces ge-0/0/4 unit 0]
    user@host# top
    
  8. В режиме конфигурации переходите на [edit services] уровень иерархии.

    [edit]
    user@host# edit services
    
  9. Настройте экземпляр сервиса мониторинга производительности в режиме реального времени (RPM).

    [edit services]
    user@host# edit rpm
    
  10. Настраивайте тест по бенчмаркингу на основе RFC 2544 для экземпляра RPM.

    [edit services rpm]
    user@host# edit rfc2544-benchmarking
    
  11. Определение названия теста— например, test1. Идентификатор тестового имени может быть длиной до 32 символов.

    [edit services rpm rfc2544-benchmarking]
    user@host# edit tests test-name test1
    
  12. Укажите логический интерфейс ge-0/0/4.1, на котором выполняется тест rFC 2544 на основе эталонной оценки.

    [edit services rpm rfc2544-benchmarking tests test-name test1]
    user@host# set test-interface ge-0/0/4. 1
    
  13. Укажите reflect в качестве тестового режима пакеты, которые передаются в ходе тестирования по бенчмаркингу.

    [edit services rpm rfc2544-benchmarking tests test-name test1]
    user@host# set mode reflect
    
  14. Настраивайте семейство cccадресов для тестирования по бенчмаркингу.

    [edit services rpm rfc2544-benchmarking tests test-name test1]
    user@host# set family ccc
    
  15. Укажите направление интерфейса, на котором должно быть запущено тестирование, т. е. NNI в этом примере.

    [edit services rpm rfc2544-benchmarking tests test-name test1]
    user@host# set direction nni
    

Результаты

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

Настройка параметров тестирования на маршрутизаторе А:

[edit interfaces]
  ge-0/0/0 {
      vlan-tagging;
      unit 0 {
          encapsulation vlan-ccc;
          vlan-id 101;
      }
  }
  [edit services rpm]
  rfc2544-benchmarking {
      profiles {
          test-profile throughput {
              test-type throughput
              packet-size 64;
              test-duration 20m;
              bandwidth-kbps 500;
          }
      }
      tests {
          test-name test1 {
              interface ge-0/0/0.1;
              test-profile throughput;
              mode initiate-and-terminate;
              family ccc;
              direction nni;
          }
      }
  }

Настройка параметров тестирования бенчмаркинга на маршрутизаторе B:

[edit interfaces]
  ge-0/0/4 {
      vlan-tagging;
      unit 0 {
          encapsulation vlan-ccc;
          vlan-id 101;
      }
  }
  [edit services rpm]
  rfc2544-benchmarking {
      # Note, When in reflector mode, test profile is not needed
      tests {
          test-name test1 {
              interface ge-0/0/4. 1;
              mode reflect;
              family ccc;
              direction nni;
          }
      }
  }

После настройки устройства введите commit команду в режиме конфигурации.

Проверка результатов тестирования по бенчмаркингу для NNI Direction of the Ethernet Pseudowire Service

Изучите результаты тестирования эталонной оценки, которое проводится на настроенных сервисах между маршрутизатором А и маршрутизатором B.

Проверка результатов тестирования по бенчмаркингу

  • Цель
  • Действий
  • Смысл
Цель

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

Действий

В эксплуатационном режиме введите run show services rpm rfc2544-benchmarking (aborted-tests | active-tests | completed-tests | summary) команду для отображения информации о результатах каждой категории или состояния теста по бенчмаркированию RFC 2544, таких как прекращенные тесты, активные тесты и заполненные тесты для каждого экземпляра мониторинга производительности в режиме реального времени (RPM).

Смысл

На выходе отображаются сведения о тесте на бенчмаркинг, который был выполнен. Подробнее об оперативном командовании run show services rpm rfc2544-benchmarking см show services rpm rfc2544-benchmarking . в интерфейсе КОМАНДной строки.

 

Что такое RFC 2544? Методология тестирования производительности

Что такое RFC 2544?

Если вы работаете с сетями, вы, вероятно, слышали об этом, но что такое RFC 2544? Запрос на комментарий (RFC) 2544 — это методология сравнительного анализа, созданная в 1999 году для тестирования и измерения производительности сетевых устройств. Предоставляя общий язык и набор процедур для сетевых инженеров, RFC 2544 обеспечивает стандартизированные результаты производительности, которые позволяют пользователям легко сравнивать устройства разных поставщиков.

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

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

Каковы шесть подтестов RFC 2544?

В RFC 2544 определены шесть тестов: пропускная способность, задержка, потеря кадров, чередование кадров, сброс системы и восстановление системы.

Пропускная способность:

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

Задержка:

Задержка — это время, которое требуется кадру, чтобы добраться от отправителя до места назначения. Это сумма задержек обработки и распространения при перемещении через сетевое устройство или по сети и обратно к тестовому порту. Для измерения задержки по сети передается тестовый кадр, содержащий отметку времени, и эта отметка времени проверяется при получении кадра.

Потеря кадров :

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

Кадры в обратном направлении (стабильность) :

Тестирование кадров в обратном направлении требует отправки пакетов кадров с минимальными промежутками между кадрами на ИУ и подсчета количества кадров, пересылаемых затем ИУ. Значение Back-to-back Frames — это количество кадров в самом длинном пакете кадров — при самой высокой пропускной способности — которое тестируемое устройство может обработать без потери кадров. Этот расчет помогает определить емкость буфера узла.

Сброс системы :

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

Восстановление системы :

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

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

Решения Netropy для генерации трафика обеспечивают всесторонние возможности тестирования и отчеты, необходимые для выполнения подтестов RFC 2544.

RFC 2544 Сетевое тестирование

Сравнительное соглашение об уровне обслуживания (SLA) RFC2544 Тесты — пропускная способность Ethernet, задержка, потеря кадров и обратно обратные тесты производительности.