Репозиторий 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"
Красным цветом выделено состояние связности с удаленным интерфейсом, два последних поля каждой записи относятся к локальному порту и интерфейсу.
Николай Малых