Набор программ для тестирования Ethernet OAM (dot1ag-utils)

PDF

Репозиторий Git с исходнsми кодами утилит доступен по ссылке.

dot1agd

Демон, отвечающий на IEEE 802.1ag LBM и LTM PDU, запускается на тестируемой системе командой

sudo dot1agd -i <имя интерфейса>

Имена имеющихся в системе интерфейсов можно посмотреть с помощью команды ifconfig.

После запуска команды на экране появится сообщение

$sudo dot1agd -i enp0s25 
Listening on interface enp0s25 for CFM frames

Дальше программа будет «молчать». Завершение работы демона обеспечивается нажатием клавиш Ctrl+C.

ethping

Передает сообщения Loopback (LBM) в кадрах с тегами или без них в зависимости от опции -v. Запускается командой

ethping -i <имя интерфейса> [-v vid] [-l mdlevel] [-c count] mac-address

Имена имеющихся в системе интерфейсов можно посмотреть с помощью команды ifconfig.

vid

Тег IEEE 802.1Q для тестируемой VLAN. При отсутствии опции теги не используются.

count

Число передаваемых кадров LBM (по умолчанию 5).

mdlevel

IEEE 802.1ag Maintenance Domain Level.

mac-address

MAC-адрес тестируемой системы (где запущен демон dot1agd). Его следует заранее посмотреть на тестовой системе с помощью ifconfig.

Пример вывода

$ethping -i enp0s25 08:00:27:dc:45:36  
Sending CFM LBM to 08:00:27:dc:45:36 
64 bytes from 08:00:27:dc:45:36, sequence 2057043034, 160.039 ms 
64 bytes from 08:00:27:dc:45:36, sequence 2057043035, 39.997 ms 
64 bytes from 08:00:27:dc:45:36, sequence 2057043036, 99.999 ms 
64 bytes from 08:00:27:dc:45:36, sequence 2057043037, 180.163 ms 
64 bytes from 08:00:27:dc:45:36, sequence 2057043038, 40.023 ms

ethtrace

Передает сообщения Link Trace Messages (LTM) в кадрах с тегами или без них в зависимости от опции -v. Запускается командой

ethtrace -i <имя интерфейса> [-v vid] [-l mdlevel] [-c count] mac-address

Имена имеющихся в системе интерфейсов можно посмотреть с помощью команды ifconfig.

vid

Тег IEEE 802.1Q для тестируемой VLAN. При отсутствии опции теги не используются.

count

Число передаваемых кадров LBM (по умолчанию 5).

mdlevel

IEEE 802.1ag Maintenance Domain Level.

mac-address

MAC-адрес тестируемой системы (где запущен демон dot1agd). Его следует заранее посмотреть на тестовой системе с помощью ifconfig.

Пример вывода

$ethtrace -i enp0s25 08:00:27:dc:45:36     
Sending CFM LTM probe to 08:00:27:dc:45:36 
ttl 1: LTM with id 1415737007 
       reply from 08:00:27:dc:45:36, id=1415737007, ttl=0, RlyHit

dot1ag_ccd

Это демон, который передает через интерфейс IEEE 802.1ag CCM PDU и принимает на этом же интерфейсе такие PDU от удаленных демонов. Следовательно, запускать демон нужно на двух машинах одновременно. Программа выводит информацию о состоянии соединения только в syslog, поэтому придется воспользоваться некоторыми ухищрениями, описанными ниже.

Демон считает соединение прерванным, если он не получает подряд 3 CCM PDU от удаленного партнера. В этом случае в syslog помещается запись вида

00:1e:67:17:ad:08,DOWN,100,0,maintenance-domain,maintenance-association,PsUP,isUp

Когда прием CCM PDU восстанавливается, в syslog помещается запись вида

00:1e:67:17:ad:08,UP,100,0,maintenance-domain,maintenance-association,PsUP,isUp

Формат записи в syslog

mac-address,status,mepid,mdLevel,domain,association,port_status,interface_status

Значение полей можно понять из приведенных ниже описаний параметров.

Запуск демона

dot1ag_ccd -i interface -t interval -d domain -m MEPID -a association [-v vid] [-l mdlevel] [-f facility] [-V]

interface

Имя интерфейса (из ifconfig), через который будут передаваться и приниматься CCM PDU.

domain

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

rcvd CCM: 08:00:27:dc:45:36, level 0, MD "maintenance-domain" (expected "TestDomain", discard frame)

association

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

rcvd CCM: 08:00:27:dc:45:36, level 0, MD "TestDomain", MA "maintenance-association" (expected "TestAssoc", discard frame)

interval

Интервал между CCM PDU в миллисекундах (поддерживается 100, 1000, 10000, 60000 и 600000).

MEPID

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

config error: CCM received with our MEPID 100 (ours 100)

vid

Тег IEEE 802.1Q для тестируемой VLAN. При отсутствии опции теги не используются.

mdlevel

Уровень иерархии домена (0 – 7). Должен быть одинаковым у всех участвующих в тесте систем. При несовпадении выдается ошибка вида

rcvd CCM: 08:00:27:dc:45:36, level 1 (expected level 0, discard frame)

facility

Уровень syslog. Поддерживаются значения LOG_KERN, LOG_USER, LOG_MAIL, LOG_NEWS, LOG_UUCP, LOG_DAEMON, LOG_AUTH, LOG_CRON, LOG_LPR, LOG_LOCAL0, LOG_LOCAL1, LOG_LOCAL2, LOG_LOCAL3, LOG_LOCAL4, LOG_LOCAL5, LOG_LOCAL6, LOG_LOCAL7. По умолчанию LOG_DAEMON.

На одной из тестируемых станций запускаем команду с подробным выводом

dot1ag_ccd -i enp0s25 -t 100 -d TestDomain -m 100 -a TestAssoc -V

На другой (где будем наблюдать результаты) используем команду

dot1ag_ccd -i enp0s3 -t 100 -d TestDomain -m 101 -a TestAssoc -V

На консоли обеих ВМ будет вывод, подобный приведенному ниже (для теста на 3 ВМ).

rcvd CCM: 08:00:27:e8:e5:ab, level 0, MD "TestDomain", MA "TestAssoc" 
rcvd CCM: 08:00:27:e8:e5:ab, level 0, MD "TestDomain", MA "TestAssoc" 
rcvd CCM: 08:00:27:e8:e5:ab, level 0, MD "TestDomain", MA "TestAssoc" 
Mar 20 14:54:00 debian-mini dot1ag_ccd: 00:1e:67:17:ad:08,DOWN,105,0,TestDomain,TestAssoc,PsUP,isUp
rcvd CCM: 08:00:27:e8:e5:ab, level 0, MD "TestDomain", MA "TestAssoc" 
rcvd CCM: 08:00:27:e8:e5:ab, level 0, MD "TestDomain", MA "TestAssoc" 
rcvd CCM: 08:00:27:e8:e5:ab, level 0, MD "TestDomain", MA "TestAssoc" 
rcvd CCM: 00:1e:67:17:ad:08, level 0, MD "TestDomain", MA "TestAssoc" 
Mar 20 14:54:01 debian-mini dot1ag_ccd: 00:1e:67:17:ad:08,UP,105,0,TestDomain,TestAssoc,PsUP,isUp
rcvd CCM: 00:1e:67:17:ad:08, level 0, MD "TestDomain", MA "TestAssoc" 
rcvd CCM: 00:1e:67:17:ad:08, level 0, MD "TestDomain", MA "TestAssoc" 
rcvd CCM: 00:1e:67:17:ad:08, level 0, MD "TestDomain", MA "TestAssoc" 
rcvd CCM: 00:1e:67:17:ad:08, level 0, MD "TestDomain", MA "TestAssoc" 
rcvd CCM: 08:00:27:e8:e5:ab, level 0, MD "TestDomain", MA "TestAssoc"

Красным цветом выделено состояние связности с удаленным интерфейсом, два последних поля каждой записи относятся к локальному порту и интерфейсу.

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

nmalykh@protokols.ru

Запись опубликована в рубрике Linux, Измерения и тестирование. Добавьте в закладки постоянную ссылку.