Добрый день, дорогие друзья. Несколько лет работала сисадмином в некотором количестве корпоративных и домашних провайдеров Санкт-Петербурга и по сей день часто сталкиваюсь с тем, что покупая оборудование операторы смотрят больше на цену и описание функций, чем на реальные показатели, о них поставщики обычно ничего не пишут, в следствии чего вместо одного коммутатора приходится устанавливать еще и еще, а качество связи лучше может и не станет. Про существования понятия SLA(Service Level Agreement) тоже не все операторы в курсе, по этой причине собрала достоверную информацию по тестированию сетей и оборудования, и готова предоставить её вашему вниманию.
Ethernet нужно тестировать!
Есть ли точное определение и рецепты того, как проводить тесты пропускной способности канала и качества предоставляемой связи? Я нашла несколько статей, из которых стало понятно только одно, сегодня в России сети тестируют методами, предназначенными для других целей, и это не может не удивлять, ведь услуги связи в крупных городах нашей страны достаточно развиты, скоростной канал есть буквально в каждой квартире, а некоторые операторы уже предоставляют гигабитные каналы домашним клиентам, но о методиках тестирования качества предоставляемых телематических услуг знают далеко не все.
Что конкретно и почему нужно тестировать?
Задумайтесь, как часто сегодня покупают кота в мешке:
Это крохотная горстка примеров того, чем рискуют на сегодняшний день клиенты и операторы связи.
Софтовые утилиты для тестирование «Интернета»
Полноценным тестированием канала не могут являться echo запросы, ping и mtr никогда не расскажут какая у канала пропускная способность. Об этом не сможет рассказать iperf и прочие софтовые утилиты, так как при одновременном использовании сети и тестировании софтовым утилитам не известен объем пользовательских данных, находящихся в канале в текущий момент, так же при софтовом тестировании возможен ряд неточностей, обусловленных наличием заголовков пакетов, в зависимости от размера кадра заголовки остаются стандартной длины, а тело с данными увеличивается или уменьшается, софтовые утилиты определяют пропускную способность канала без учета размера заголовков, что на разных размерах пакетов вносит в подобное тестирование определенную неразбериху.
Вы не сможете оценить качество арендованного vlan, глядя на график загрузки канала или скачивая объемные файлы из интернета. Почему speedtest.net не является доказательством скорости предоставляемого канала наверное не стоит уточнять? Ведь сразу понятно что — неизвестно какие каналы и через какие сети они идут до серверов speedtest, как и неизвестно насколько загружен канал во время теста, и многие другие параметры теста, а если в тесте столько неизвестных — то его результаты никак не могут быть точными. Результатом speedtest — является скорее некая дельта от неких показателей, а не реальные цифры.
Качество предоставляемых услуг связи — это совокупность многих параметров, и используя правильные инструменты можно быстро и эффективно получить точные данные о предоставляемой услуге. Важно не только получить точные данные, но и иметь уверенность в том, что данные можно будет использовать для доказательства своей правоты, например в суде.
Методики и анализаторы Ethernet
На сегодняшний день есть две основные методики тестирования пропускной способности: старая — RFC-2544 и немного помладше: Y.1564. Методика ITU-T Y.1564 — более актуальная на сегодняшний день, имеет описания для тестирования современных, высокоскоростных каналов связи с современными понятиями о SLA(Service Layer Agreement).
Так как качество ethernet-канала это совокупность многих факторов, следовательно, правильное тестирование должно максимально охватывать все эти совокупности. При тестировании необходимо учесть многие аспекты и было бы полезно иметь расширенные возможности, такие как BER Test, пакетный джиттер, поддержку MPLS, QoS, тестирование нагрузкой протоколов прикладного уровня (http, ftp, etc...).
Для тестирования каналов от 1G до 10G и выше достаточно сложно делать нагрузочные тесты при помощи неспециализированного железа, зачастую процессоры не способны генерировать достаточный объем трафика, в отличие от специализированных тестеров-анализаторов. Такие приборы можно положить в стойку, шкаф, даже в ящик на чердаке и запускать тесты удаленно, а можно делать автоматические замеры в разные временные интервалы. Любые портативные приборы-анализаторы не испортятся в суровых условиях канализации, так как проходят жестокие испытания на прочность.
Сдача-приемка каналов связи.
Для сдачи или приемки построенных линий и магистралей, для работы по высоким стандартам лучше всего иметь в штатном арсенале тестер-анализатор, хотя в интернете можно найти фирмы, специализирующиеся на выездном тестировании. Почему-то считается что покупать тестер-анализатор это очень дорого.
Подробнее о методике тестирования RFC-2544 и том, как это работает.
Методика RFC-2544 рекомендует проводить измерения разных размеров кадра: для Ethernet трафика кадры размером 64, 128, 256, 512, 1024, 1280, 1518 октетов, для каждого размера кадра необходим отдельный запуск серийного тестирования. При необходимости можно провести тестирование и для Jumbo frame(кадры размером 4096 или 9000 октетов). Разный размер кадров необходим для имитации разных типов трафика.
Изначально методика была разработана непосредственно для тестирования сетевых устройств, например при разработке коммутаторов, но набор функций адаптировали для измерения качества каналов. Методика была одобрена в 1999 году ISOC.
Методика предлагает набор из 6 тестов, я опишу более подробно, каким образом проходит тестирование, для наглядности восприятия:
Определение пропускной способности тестируемого устройства(Throughput)
Описание теста: посылается небольшой объем, специально сформированных тестером, пакетов, на определенной скорости, на входной порт устройства, на выходном порту количество подсчитывается, если передано больше, чем получено — скорость уменьшается и тест запускается снова.
Определение время задержки кадра(Latency)
Описание теста: после определения пропускной способности(Throughput), для каждого размера кадра, на соответствующей ему максимальной скорости, посылается поток пакетов по определенному адресу. Поток должен иметь минимальную длительность в 120 секунд. В 1 пакет по прошествии 60 секунд вставляется метка. Формат метки определяется производителем оборудования. На передающей стороне записывается время, к которому пакет с меткой был полностью отправлен. На приемной стороне определяется метка и записывается время полного приема пакета с меткой. Задержка (latency) — это разница между временем отправки и временем получения. Данный тест, согласно методике необходимо повторять минимум 20 раз. По результатам 20 измерений вычисляется средняя задержка. Тест следует проводить отправляя весь тестовый поток на один адрес и отправляя каждый кадр по новому адресу.
Определение частоты потери кадров(Frame loss rate)
Описание теста: на входной порт устройства посылается определенное количество кадров на определенной скорости и подсчитывается количество пакетов, принимаемых от выходного порта устройства. Частота потери кадров рассчитывается следующим образом:
((количество переданных кадров — количество полученных кадров) * 100) / количество переданных кадров
Первая отправка происходит на максимально-возможной скорости, затем скорость отправки понижается с максимальным шагом в 10%, согласно методике уменьшение % шага даст наиболее точные результаты. Уменьшение скорости необходимо продолжать до тех пор, пока две последних отправки будут без ошибок, а именно мы узнаем максимальную скорость передачи данных, на которой frame loss rate становится равен 0.
Тестирование способности обрабатывать back-to-back кадры(Back-to-back frames)
Описание теста: тест сводится к отсылке некого количества кадров с минимальной межкадровой задержкой на входной порт тестируемого устройства и подсчету кадров с выходного порта устройства. Если количество отправленных кадров и полученных равно, то увеличивается объем отправляемых кадров и тест повторяется, если принятых пакетов меньше, чем отправленных объем отправляемых кадров уменьшается и тест повторяется. В итоге мы должны получить максимальное количество пакетов отправленных и полученных без потерь для каждого размера пакета, это и будет значение back-to-back теста. Согласно методике длительность посылок кадров на порт устройства не должна быть менее двух секунд, а минимальное количество — не менее 50 раз. Конечная цифра — это усредненный результат 50 тестов.
Восстановление после перегрузки(System recovery), применимо только для тестирование устройств
Описание теста: на вход устройства в течение минимум 60 секунд отсылается поток кадров со скоростью 110% относительно измеренной тестом throughput. Если тест throughput показал идеальные результаты, то выбирается максимальная скорость данного соединения. В момент перегрузки скорость потока уменьшается в два раза и засекается разница между временем снижения скорости потока, и временем когда был потерян последний кадр.
Время восстановления тестируемого устройства после перезапуска(Reset), применимо только для тестирование устройств
Описание теста: на вход устройства отсылается непрерывный поток кадров на скорости, определенной в результате теста throughput с минимальным размером кадра. Устройство сбрасывается. Время восстановления после сброса это разница между временем приема последнего пакета до сброса и временем приема первого пакета после сброса. Тестируется и аппаратный и программный типы сброса устройства.
Что изменилось со свежей методикой Y.1564?
Новые рекомендации были рассмотрены и одобрены в 2011 году ITU. К уже изложенным рекомендациям в RFC 2544 добавляется пакетный джиттер(дрожание), а именно возможность вычисления разницы времени при получении ряда последовательных пакетов данных, относящихся к одному и тому же потоку, в идеальном мире ее не должно существовать, но в проблемных сетях последовательность может быть нарушена, что может сказаться на скорости обработки данных. RFC2544 позволяет делать проверки исключительно на максимальной скорости канала, на которой не будет потери пакетов, а это обычно выше чем скорость CIR (Committed Information Rate — гарантированная полоса пропускания). Y.1564 создан именно для SLA, оценки скорости и качества предоставляемого канала согласно ключевым показателям производительности(KPI) и позволяет проверить предоставляемый канал в соответствие с договором.
Y.1564 позволяет проверить гарантированную полосу пропускания, максимально-допустимую, а так же дать нагрузку сверх полосы, к примеру для проверки настроек шейпера.
Есть еще несколько различий между методиками, RFC2544 не производит верификации корректности настройки сервиса (соответствие KPI заданным, и ограничение скорости выше EIR(Excess Information Rate — максимальная негарантированная полоса пропускания), во избежание перегрузки сети). В оригинальной версии RFC2544 джиттер не измеряется. Согласно RFC2544 каждый тест запускается отдельным потоком, что не позволяет измерить качество предоставляемых услуг в совокупности и увеличивает время тестирования, еще один минус RFC2544 в том, что отсутствует возможность профилирования для проверки разных типов трафика в одном канале, к примеру, если в сети используется QoS, в Y.1564 учтены недочеты и немного расширен функционал.
Тестировать можно только новые каналы или уже рабочие тоже?
Тестировать нужно и новые каналы, и тем более старые. Вы можете заранее узнать о назревающих проблемах, не доводя клиентов до звонка в поддержку. Современными тестерами-анализаторами можно проводить проверки в работающей сети, проверять каналы как со скоростью 10/100/1000Mbit, так и 10/40/100G. Есть одно НО, очень важно понимать что и как вы делаете, важно нечаянно не положить тестируемый канал.
Режимы тестирования — In/Out of service.
На сегодняшний день тестирование сетей стремится к полной систематизации и постоянному контролю каналов, более ранние версии методики RFC2544 были созданы для тестирования каналов/оборудования в режиме OutOfService, и использовались в основном для теста оборудования, но на сегодняшний день все производители тестовых приборов переходят на более новые стандарты тестирования, позволяющие проводить постоянный мониторинг сети в режиме InService. Такое тестирование позволяет проверять скорость полосы пропускания без отключения клиентов, что важно для операторов услуг связи.
Эпилог
Товарищи, как говорит один мой друг, давайте вместе бороться с «коекакерами», и начнем тестировать то, что строим и то, что эксплуатируем.
Используемая литература:
Методика RFC 2544:https://www.ietf.org/rfc/rfc2544.txt
Методика Y.1564: www.itu.int/rec/T-REC-Y.1564-201103-I/en
Статья Andre про разницу в методиках: www.mrv.com/blog/why-rcf2544-not-sufficient-anymore
* Мнение компании может не совпадать с мнением автора ;-)
Ethernet нужно тестировать!
Есть ли точное определение и рецепты того, как проводить тесты пропускной способности канала и качества предоставляемой связи? Я нашла несколько статей, из которых стало понятно только одно, сегодня в России сети тестируют методами, предназначенными для других целей, и это не может не удивлять, ведь услуги связи в крупных городах нашей страны достаточно развиты, скоростной канал есть буквально в каждой квартире, а некоторые операторы уже предоставляют гигабитные каналы домашним клиентам, но о методиках тестирования качества предоставляемых телематических услуг знают далеко не все.
Что конкретно и почему нужно тестировать?
Задумайтесь, как часто сегодня покупают кота в мешке:
- Арендованные вами или сданные в аренду каналы связи;
- Сдача-приемка каналов связи, построенных вами или для вас;
- Предоставляемые услуги связи, особенно при наличии неустойки в договоре;
- Оборудование, которое вы хотите купить, а вам его хотят продать и рассказывают о том, что оно супер-крутое и недорого стоит.
Это крохотная горстка примеров того, чем рискуют на сегодняшний день клиенты и операторы связи.
Софтовые утилиты для тестирование «Интернета»
Полноценным тестированием канала не могут являться echo запросы, ping и mtr никогда не расскажут какая у канала пропускная способность. Об этом не сможет рассказать iperf и прочие софтовые утилиты, так как при одновременном использовании сети и тестировании софтовым утилитам не известен объем пользовательских данных, находящихся в канале в текущий момент, так же при софтовом тестировании возможен ряд неточностей, обусловленных наличием заголовков пакетов, в зависимости от размера кадра заголовки остаются стандартной длины, а тело с данными увеличивается или уменьшается, софтовые утилиты определяют пропускную способность канала без учета размера заголовков, что на разных размерах пакетов вносит в подобное тестирование определенную неразбериху.
Вы не сможете оценить качество арендованного vlan, глядя на график загрузки канала или скачивая объемные файлы из интернета. Почему speedtest.net не является доказательством скорости предоставляемого канала наверное не стоит уточнять? Ведь сразу понятно что — неизвестно какие каналы и через какие сети они идут до серверов speedtest, как и неизвестно насколько загружен канал во время теста, и многие другие параметры теста, а если в тесте столько неизвестных — то его результаты никак не могут быть точными. Результатом speedtest — является скорее некая дельта от неких показателей, а не реальные цифры.
Качество предоставляемых услуг связи — это совокупность многих параметров, и используя правильные инструменты можно быстро и эффективно получить точные данные о предоставляемой услуге. Важно не только получить точные данные, но и иметь уверенность в том, что данные можно будет использовать для доказательства своей правоты, например в суде.
Методики и анализаторы Ethernet
На сегодняшний день есть две основные методики тестирования пропускной способности: старая — RFC-2544 и немного помладше: Y.1564. Методика ITU-T Y.1564 — более актуальная на сегодняшний день, имеет описания для тестирования современных, высокоскоростных каналов связи с современными понятиями о SLA(Service Layer Agreement).
Так как качество ethernet-канала это совокупность многих факторов, следовательно, правильное тестирование должно максимально охватывать все эти совокупности. При тестировании необходимо учесть многие аспекты и было бы полезно иметь расширенные возможности, такие как BER Test, пакетный джиттер, поддержку MPLS, QoS, тестирование нагрузкой протоколов прикладного уровня (http, ftp, etc...).
Для тестирования каналов от 1G до 10G и выше достаточно сложно делать нагрузочные тесты при помощи неспециализированного железа, зачастую процессоры не способны генерировать достаточный объем трафика, в отличие от специализированных тестеров-анализаторов. Такие приборы можно положить в стойку, шкаф, даже в ящик на чердаке и запускать тесты удаленно, а можно делать автоматические замеры в разные временные интервалы. Любые портативные приборы-анализаторы не испортятся в суровых условиях канализации, так как проходят жестокие испытания на прочность.
Сдача-приемка каналов связи.
Для сдачи или приемки построенных линий и магистралей, для работы по высоким стандартам лучше всего иметь в штатном арсенале тестер-анализатор, хотя в интернете можно найти фирмы, специализирующиеся на выездном тестировании. Почему-то считается что покупать тестер-анализатор это очень дорого.
Подробнее о методике тестирования RFC-2544 и том, как это работает.
Методика RFC-2544 рекомендует проводить измерения разных размеров кадра: для Ethernet трафика кадры размером 64, 128, 256, 512, 1024, 1280, 1518 октетов, для каждого размера кадра необходим отдельный запуск серийного тестирования. При необходимости можно провести тестирование и для Jumbo frame(кадры размером 4096 или 9000 октетов). Разный размер кадров необходим для имитации разных типов трафика.
Изначально методика была разработана непосредственно для тестирования сетевых устройств, например при разработке коммутаторов, но набор функций адаптировали для измерения качества каналов. Методика была одобрена в 1999 году ISOC.
Методика предлагает набор из 6 тестов, я опишу более подробно, каким образом проходит тестирование, для наглядности восприятия:
Определение пропускной способности тестируемого устройства(Throughput)
Описание теста: посылается небольшой объем, специально сформированных тестером, пакетов, на определенной скорости, на входной порт устройства, на выходном порту количество подсчитывается, если передано больше, чем получено — скорость уменьшается и тест запускается снова.
Определение время задержки кадра(Latency)
Описание теста: после определения пропускной способности(Throughput), для каждого размера кадра, на соответствующей ему максимальной скорости, посылается поток пакетов по определенному адресу. Поток должен иметь минимальную длительность в 120 секунд. В 1 пакет по прошествии 60 секунд вставляется метка. Формат метки определяется производителем оборудования. На передающей стороне записывается время, к которому пакет с меткой был полностью отправлен. На приемной стороне определяется метка и записывается время полного приема пакета с меткой. Задержка (latency) — это разница между временем отправки и временем получения. Данный тест, согласно методике необходимо повторять минимум 20 раз. По результатам 20 измерений вычисляется средняя задержка. Тест следует проводить отправляя весь тестовый поток на один адрес и отправляя каждый кадр по новому адресу.
Определение частоты потери кадров(Frame loss rate)
Описание теста: на входной порт устройства посылается определенное количество кадров на определенной скорости и подсчитывается количество пакетов, принимаемых от выходного порта устройства. Частота потери кадров рассчитывается следующим образом:
((количество переданных кадров — количество полученных кадров) * 100) / количество переданных кадров
Первая отправка происходит на максимально-возможной скорости, затем скорость отправки понижается с максимальным шагом в 10%, согласно методике уменьшение % шага даст наиболее точные результаты. Уменьшение скорости необходимо продолжать до тех пор, пока две последних отправки будут без ошибок, а именно мы узнаем максимальную скорость передачи данных, на которой frame loss rate становится равен 0.
Тестирование способности обрабатывать back-to-back кадры(Back-to-back frames)
Описание теста: тест сводится к отсылке некого количества кадров с минимальной межкадровой задержкой на входной порт тестируемого устройства и подсчету кадров с выходного порта устройства. Если количество отправленных кадров и полученных равно, то увеличивается объем отправляемых кадров и тест повторяется, если принятых пакетов меньше, чем отправленных объем отправляемых кадров уменьшается и тест повторяется. В итоге мы должны получить максимальное количество пакетов отправленных и полученных без потерь для каждого размера пакета, это и будет значение back-to-back теста. Согласно методике длительность посылок кадров на порт устройства не должна быть менее двух секунд, а минимальное количество — не менее 50 раз. Конечная цифра — это усредненный результат 50 тестов.
Восстановление после перегрузки(System recovery), применимо только для тестирование устройств
Описание теста: на вход устройства в течение минимум 60 секунд отсылается поток кадров со скоростью 110% относительно измеренной тестом throughput. Если тест throughput показал идеальные результаты, то выбирается максимальная скорость данного соединения. В момент перегрузки скорость потока уменьшается в два раза и засекается разница между временем снижения скорости потока, и временем когда был потерян последний кадр.
Время восстановления тестируемого устройства после перезапуска(Reset), применимо только для тестирование устройств
Описание теста: на вход устройства отсылается непрерывный поток кадров на скорости, определенной в результате теста throughput с минимальным размером кадра. Устройство сбрасывается. Время восстановления после сброса это разница между временем приема последнего пакета до сброса и временем приема первого пакета после сброса. Тестируется и аппаратный и программный типы сброса устройства.
Что изменилось со свежей методикой Y.1564?
Новые рекомендации были рассмотрены и одобрены в 2011 году ITU. К уже изложенным рекомендациям в RFC 2544 добавляется пакетный джиттер(дрожание), а именно возможность вычисления разницы времени при получении ряда последовательных пакетов данных, относящихся к одному и тому же потоку, в идеальном мире ее не должно существовать, но в проблемных сетях последовательность может быть нарушена, что может сказаться на скорости обработки данных. RFC2544 позволяет делать проверки исключительно на максимальной скорости канала, на которой не будет потери пакетов, а это обычно выше чем скорость CIR (Committed Information Rate — гарантированная полоса пропускания). Y.1564 создан именно для SLA, оценки скорости и качества предоставляемого канала согласно ключевым показателям производительности(KPI) и позволяет проверить предоставляемый канал в соответствие с договором.
Y.1564 позволяет проверить гарантированную полосу пропускания, максимально-допустимую, а так же дать нагрузку сверх полосы, к примеру для проверки настроек шейпера.
Есть еще несколько различий между методиками, RFC2544 не производит верификации корректности настройки сервиса (соответствие KPI заданным, и ограничение скорости выше EIR(Excess Information Rate — максимальная негарантированная полоса пропускания), во избежание перегрузки сети). В оригинальной версии RFC2544 джиттер не измеряется. Согласно RFC2544 каждый тест запускается отдельным потоком, что не позволяет измерить качество предоставляемых услуг в совокупности и увеличивает время тестирования, еще один минус RFC2544 в том, что отсутствует возможность профилирования для проверки разных типов трафика в одном канале, к примеру, если в сети используется QoS, в Y.1564 учтены недочеты и немного расширен функционал.
Тестировать можно только новые каналы или уже рабочие тоже?
Тестировать нужно и новые каналы, и тем более старые. Вы можете заранее узнать о назревающих проблемах, не доводя клиентов до звонка в поддержку. Современными тестерами-анализаторами можно проводить проверки в работающей сети, проверять каналы как со скоростью 10/100/1000Mbit, так и 10/40/100G. Есть одно НО, очень важно понимать что и как вы делаете, важно нечаянно не положить тестируемый канал.
Режимы тестирования — In/Out of service.
На сегодняшний день тестирование сетей стремится к полной систематизации и постоянному контролю каналов, более ранние версии методики RFC2544 были созданы для тестирования каналов/оборудования в режиме OutOfService, и использовались в основном для теста оборудования, но на сегодняшний день все производители тестовых приборов переходят на более новые стандарты тестирования, позволяющие проводить постоянный мониторинг сети в режиме InService. Такое тестирование позволяет проверять скорость полосы пропускания без отключения клиентов, что важно для операторов услуг связи.
Эпилог
Товарищи, как говорит один мой друг, давайте вместе бороться с «коекакерами», и начнем тестировать то, что строим и то, что эксплуатируем.
Используемая литература:
Методика RFC 2544:https://www.ietf.org/rfc/rfc2544.txt
Методика Y.1564: www.itu.int/rec/T-REC-Y.1564-201103-I/en
Статья Andre про разницу в методиках: www.mrv.com/blog/why-rcf2544-not-sufficient-anymore
* Мнение компании может не совпадать с мнением автора ;-)
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.