Измерение задержки на канал / джиттера / потери пакетов

9

Мне нужно измерить задержку, джиттер и потерю пакетов на канал в сети, а не сквозную, например, вот так:

s1-eth0 <-> s2-eth0 (средняя задержка ~ 20 мкс, стандартное получение 10 мкс, потеря пакета 57% / последняя секунда)

s2-eth1 <-> s3-eth0 (средняя задержка ~ 25 мкс, стандартное получение 5 мкс, потеря пакетов 21% / последняя секунда)

...

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

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

  • NetFlow: нет информации о задержке, только сквозной
  • Активное зондирование: я не могу изменить конфигурацию сети
  • Измерение времени в оба конца: не предоставляет статистику по ссылкам

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

user1923488
источник

Ответы:

12

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

шаги:

1. ip sla monitor operation-number

2. type echo protocol ipIcmpEcho {destination-ip-address | destination-hostname} [source-ipaddr {ip-address | hostname} | source-interface interface-name]

3. frequency seconds

4. ip sla monitor schedule operation-number [life {forever | seconds}] [start-time {hh:mm[:ss] [month day | day month] | pending | now | after hh:mm:ss] [ageout seconds] [recurring]

Пример конфигурации взят из Cisco: IP SLA - анализ уровней обслуживания IP с использованием операции эхо-сигнала ICMP .

Router> enable
Router# configure terminal
Router(config)# ip sla monitor 10
Router(config-sla-monitor)# type echo protocol ipIcmpEcho 172.29.139.134
Router(config-sla-monitor-echo)# frequency 300
Router(config-sla-monitor-echo)# exit
Router(config)# ip sla monitor schedule 10 start-time now life forever

Для мониторинга:

show ip sla monitor statistics
Ахмет Джемил Сабыр
источник
6

На оборудовании Juniper вы можете использовать сервис RPM для получения этих измерений. Служба может быть настроена на мониторинг определенных интерфейсов, что поможет с требованием «на ссылку».

user5469
источник
4

Проверьте протокол Y.1731 (или IEEE 802.1ag , или OAM). Это довольно легко реализовать в программном обеспечении (я думаю, это то, к чему вы стремитесь), и оно поддерживается всеми физическими сетевыми элементами.

Существует очень наивная реализация с открытым исходным кодом Y.1731 в C , которую вы можете посмотреть.

Обратите внимание, что Y.1731 не предназначен для пересечения физической границы сети (т.е. требует, чтобы MAC-адреса обоих MEP были известны), поэтому, если вам нужно пройти через IP-маршрутизацию, вы захотите инкапсулировать ваши кадры Y.1731 в некоторое туннелирование протокол, как VXLAN или GRE.

Надеюсь это поможет.

Эшед Гал-Ор
источник
4

Etherate позволяет вам измерять пропускную способность, задержку и потерю пакетов (кадров) на уровне 2 непосредственно через Ethernet (что звучит как то, что вы ищете). Это не измеряет джиттер в настоящее время, но это будет делать в будущем.

Используя его, вы можете генерировать трафик Ethernet уровня 2 контролируемым образом, который вы можете измерить.

Вы можете указать длительность потока трафика, размер кадра, биты в секунду / байты в секунду, общее количество байтов для передачи, ethertype, VLAN ID и значение PCP. Вы также можете ACK кадры уровня 2, если хотите проверить потери на уровне 2.

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

https://github.com/jwbensley/etherate

jwbensley
источник