...
Ping
Блок кода zabbix_get -s {HOST.CONN} -p 10050 -k "system.run[ sudo ping -c 3 192.168.32.101]"Клиент (ESR), получивший данную команду от сервера, выполнит ping до заданного узла (в нашем примере до 192.168.32.101), и вернет результат серверу.
Примечание Использование ключа "-c" с указанием количества пакетов в тесте — обязательно. Без данного ключа команда ping не остановится самостоятельно и тест не будет считаться завершенным.
Ping в VRF
Блок кода zabbix_get -s {HOST.CONN} -p 10050 -k "system.run[sudo netns -exec -n backup sudo ping 192.168.32.101 -c 5 -W 2 ]"Вышеупомянутая команда будет выполнена в заданном VRF с именем backup.
Fping
Блок кода zabbix_get -s {HOST.CONN} -p 10050 -k "system.run[ sudo fping 192.168.32.101]"Клиент (ESR), получивший данную команду от сервера, выполнит fping до заданного узла (в нашем примере до 192.168.32.101), и вернет результат серверу.
Scroll Pagebreak Fping в VRF
Блок кода zabbix_get -s {HOST.CONN} -p 10050 -k "system.run[sudo netns-exec -n backup sudo fping 192.168.32.101 ]"Traceroute
Блок кода zabbix_get -s {HOST.CONN} -p 10050 -k "system.run[ sudo traceroute 192.168.32.101]Клиент (ESR), получивший данную команду от сервера, выполнит traceroute до заданного узла (в нашем примере до 192.168.32.101), и вернет результат серверу.
Traceroute в VRF
Блок кода zabbix_get -s {HOST.CONN} -p 10050 -k "system.run[ sudo netns-exec -n backup sudo traceroute 192.168.32.179]"Iperf
Блок кода zabbix_get -s {HOST.CONN} -p 10050 -k "system.run[ sudo iperf -c 192.168.32.101 -u -b 100K -i 1 -t 600]"Клиент (ESR), получивший данную команду от сервера, выполнит iperf до заданного сервера (в нашем примере до 192.168.32.101), и вернет результат серверу.
...
| Блок кода |
|---|
esr(config)# logging service start-stop |
| Scroll Pagebreak |
|---|
Задаем логирование внесений изменений в профиль пользователей:
...
Алгоритм настройки SLA-теста
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Создать в системе новый SLA-тест и перейти в режим его конфигурирования. | esr(config)# ip sla test <NUM> | <NUM> – номер SLA-теста, задается в диапазоне [1..10000]. |
| 2 | Задать режим тестирования канала связи и параметры тестирования. Разные режимы подразумевают различный набор параметров, которые необходимо указать. Для одного SLA-теста возможно указать только один набор параметров тестирования. | ||
| 2.1 | Конфигурирование ICMP-режима тестирования канала связи. | esr(config-sla-test)# icmp-echo { <DST-ADDRESS> | <IPV6-DST-ADDRESS> } { source-ip { <SRC-ADDRESS> <IPV6-SRC-ADDRESS> | object-group <NETWORK_OBJ_GROUP_NAME> } | source-interface { <IF> | <TUN> } } [ interval <INTERVAL> ] [ num-packets <NUM-PACKETS> ] | <DST-ADDRESS> – IPv4-адрес, на который будут направляться тестовые пакеты. Задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-DST-ADDRESS> – IPv6-адрес, на который будут направляться тестовые пакеты. Задаётся в виде X:X:X:X::X, где каждая часть X принимает значения в шестнадцатеричном формате [0..FFFF]; <SRC-ADDRESS> – IPv4-адрес, с которого будут отправляться тестовые пакеты. Задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-SRC-ADDRESS> – IPv6-адрес, с которого будут отправляться тестовые пакеты. Задаётся в виде X:X:X:X::X, где каждая часть X принимает значения в шестнадцатеричном формате [0..FFFF]; <NETWORK_OBJ_GROUP_NAME> – список адресов, которые будут использоваться в качестве source address; <IF> – тип и идентификатор интерфейса, IP-адрес которого будет использоваться в качестве адреса источника пакетов. Задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора; <TUN> – тип и идентификатор туннеля, IP-адрес которого будет использоваться в качестве адреса источника пакетов. Задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора; <INTERVAL> – интервал между отправкой каждого последующего тестового пакета. Может принимать значение [1..255] миллисекунд; <NUM-PACKETS> – количество тестовых пакетов, отправляемых в рамках одной сессии тестирования. Может принимать значение [1..100000]. |
| esr(config-sla-test)# icmp-jitter <DST-ADDRESS> { source-ip { <SRC-ADDRESS> | object-group <NETWORK_OBJ_GROUP_NAME> } | source-interface { <IF> | <TUN> } } [ interval <INTERVAL> ] [ num-packets <NUM-PACKETS> ] | |||
| 2.2 | Конфигурирование UDP-режима тестирования канала связи. Для корректной работы UDP-режим предполагает сконфигурированный Eltex SLA-responder на удаленной стороне. | esr(config-sla-test)# udp-jitter { <DST-ADDRESS> | <IPV6-DST-ADDRESS> } <DST-PORT> { source-ip { <SRC-ADDRESS> | <IPV6-SRC-ADDRESS> | object-group <NETWORK_OBJ_GROUP_NAME> } | source-interface { <IF> | <TUN> } } [ source-port <SRC-PORT> ] [ interval <INTERVAL> ] [ num-packets <NUM-PACKETS> ] | <DST-ADDRESS> – IPv4-адрес, на который будут направляться тестовые пакеты. Задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-DST-ADDRESS> – IPv6-адрес, на который будут направляться тестовые пакеты. Задаётся в виде X:X:X:X::X, где каждая часть X принимает значения в шестнадцатеричном формате [0..FFFF]; <DST-PORT> – номер UDP-порта назначения тестовых пакетов, принимает значения [1..65535]; <SRC-ADDRESS> – IPv4-адрес, с которого будут отправляться тестовые пакеты. Задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-SRC-ADDRESS> – IPv6-адрес, с которого будут отправляться тестовые пакеты. Задаётся в виде X:X:X:X::X, где каждая часть X принимает значения в шестнадцатеричном формате [0..FFFF]; <NETWORK_OBJ_GROUP_NAME> – список адресов, которые будут использоваться в качестве source address; <IF> – тип и идентификатор интерфейса, с IP-адреса которого будут отправляться тестовые пакеты. Задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора; <TUN> – тип и идентификатор туннеля, с IP-адреса которого будут отправляться тестовые пакеты. Задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора; <SRC-PORT> – номер UDP-порта источника тестовых пакетов, принимает значения [1..65535]; <INTERVAL> – интервал между отправкой каждого последующего тестового пакета. Может принимать значение [1..255] миллисекунд; <NUM-PACKETS> – количество тестовых пакетов, отправляемых в рамках одной сессии тестирования. Может принимать значение [1..100000]. |
| 2.3 | Конфигурирование TCP-режима тестирования канала связи. | esr(config-sla-test)# tcp-connect { <DST-ADDRESS> | <IPV6-DST-ADDRESS>} { source-ip { <SRC-ADDRESS> | <IPV6-SRC-ADDRESS> | object-group <NETWORK_OBJ_GROUP_NAME> } | source-interface { <IF> | <TUN> } } [ source-port <SRC-PORT> ] | <DST-ADDRESS> – IPv4-адрес, на который будут направляться тестовые пакеты. Задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-DST-ADDRESS> – IPv6-адрес, на который будут направляться тестовые пакеты. Задаётся в виде X:X:X:X::X, где каждая часть X принимает значения в шестнадцатеричном формате [0..FFFF]; <DST-PORT> – номер TCP-порта назначения тестовых пакетов, принимает значения [1..65535]; <SRC-ADDRESS> – IPv4-адрес, с которого будут отправляться тестовые пакеты. Задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-SRC-ADDRESS> – IPv6-адрес, с которого будут отправляться тестовые пакеты. Задаётся в виде X:X:X:X::X, где каждая часть X принимает значения в шестнадцатеричном формате [0..FFFF]; <NETWORK_OBJ_GROUP_NAME> – список адресов, которые будут использоваться в качестве source address; <IF> – тип и идентификатор интерфейса, с IP-адреса которого будут отправляться тестовые пакеты. Задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора; <TUN> – тип и идентификатор туннеля, с IP-адреса которого будут отправляться тестовые пакеты. Задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора; <SRC-PORT> – номер TCP-порта источника тестовых пакетов, принимает значения [1..65535]. |
| 3 | Установить значение dscp, которым будут помечаться тестовые пакеты (необязательно). | esr(config-sla-test)# dscp <DSCP> | <DSCP> – значение кода DSCP, может принимать значение [0..63]. |
| 4 | Установить частоту перезапуска SLA-теста (необязательно). | esr(config-sla-test)# frequency <TIME> | <TIME> – частота перезапуска SLA-теста, может принимать значение [1..604800] секунд. |
| 5 | Установить размер исходящего тестового пакета (необязательно). | esr(config-sla-test)# packet-size <SIZE> | <SIZE> – размер тестового пакета SLA-теста, может принимать значение [70..10000] байт. |
| 6 | Установить максимальное время ожидания ответа от удаленной стороны на тестовый пакет (необязательно). | esr(config-sla-test)# timeout <TIME> | <TIME> – время ожидания ответного пакета от удаленной стороны, может принимать значение [1..4294967295] миллисекунд. |
| 7 | Установить значение TTL для исходящих пакетов SLA-теста (необязательно). | esr(config-sla-test)# ttl <TTL> | <TTL> – значение TTL, может принимать значение [1..255]. |
| 8 | Указать экземпляр VRF,в адресном пространстве которого должен работать SLA-тест (если подразумевается конфигурацией). | esr(config-sla-test)# vrf <VRF> | <VRF> – имя экземпляра VRF, задаётся строкой до 31 символа. |
| 9 | Установить пороговые значения характеристик канала (необязательно). | esr(config-sla-test)# thresholds <TYPE> { high <VALUE_H> | low <VALUE_L> | forward [ { high <VALUE_H> | low <VALUE_L> } ] | reverse [ { high <VALUE_H> | low <VALUE_L> } ] } [ from-last <NUM-CHECK> { all | over <NUM-LIMIT> } ] | <TYPE> – тип отслеживаемой величины, может принимать значения:
<VALUE_H> – верхнее пороговое значение, при пересечении которого сессия тестирования будет считаться проваленной; <VALUE_L> – нижнее пороговое значение, при пересечении которого сессия тестирования будет вновь считаться успешной; <NUM-CHECKS> – количество итераций теста, в течение которых проверяется соблюдение пороговых значений характеристик канала; <NUM-LIMIT> – количество итераций теста с превышением установленного порога, после превышения которого тест считается проваленным. |
| 10 | Запретить фрагментацию тестовых пакетов (необязательно). | esr(config-sla-test)# disallow-fragmentation | |
| 11 | Установить количество записей о результатах тестирования, отображающихся в истории измерений (необязательно). | esr(config-sla-test)# history <SIZE> | <SIZE> – число сохраняемых результатов, может принимать значение [1..1000]. |
| 12 | Задать описание SLA-теста (необязательно). | esr(config-sla-test)# description <DESCRIPTION> | <DESCRIPTION> – описание SLA-теста, задается строкой до 255 символов. |
| 13 | Настроить параметры аутентификации, согласно алгоритму настройки параметров аутентификации (только для UDP-тестов, необязательно). | ||
| 14 | Активировать SLA-тест. | esr(config-sla-test)# enable | |
| 15 | Выйти из параметров конфигурирования SLA-теста. | esr(config-sla-test)# exit | |
| 16 | Задать расписание запуска активированных SLA-тестов. | esr(configt)# ip sla schedule { <TEST-NUMBER> | all } [ life { <LIFE-TIME> | forever } ] [ start-time { <MONTH> <DAY> <TIME> | now } ] | <TEST-NUMBER> – номер SLA-теста, может принимать значение [1..10000]. При использовании ключа "all" вместо номера, устанавливается расписание работы для всех активированных SLA-тестов; <LIFE-TIME> – время жизни теста, может принимать значение [1..2147483647] секунд; forever – время жизни теста не ограничено; <TIME> – время начала теста, задаётся в виде HH:MM:SS, где: HH – часы, может принимать значение [0..23]; MM – минуты, может принимать значение [0..59]; SS – секунды, может принимать значение [0..59]; <MONTH> – месяц начала теста, принимает значения [ January / February / March / April / May / June / July / August / September / October / November / December ]; <DAY> – день месяца начала теста, может принимать значение [1..31]; now – начать тест немедленно. |
| 17 | Активировать вывод информационных сообщений групп событий (необязательно). Каждая из групп активируется отдельно. | esr(config)# ip sla logging <TYPE> | <TYPE> – название группы информационных сообщений, может принимать значения:
|
| 18 | Активировать сервис SLA-agent. | esr(config)# ip sla | |
Настройка SLA-responder
| Якорь | ||||
|---|---|---|---|---|
|
...
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | В режиме конфигурирования SLA-теста, установить тип алгоритма, который будет использоваться при хешировании ключей аутентификации. | esr(config-sla-test)# control-phase authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм хеширования, принимает значения [sha-256, hmac-sha-256]. |
| 2 | Задать ключ, который будет использоваться в процессе прохождения контрольной фазы для аутентификации. Может быть использован один из двух видов ключей аутентификации: ключ-строка, указываемая непосредственно в режиме конфигурирования SLA-теста, и ключ, содержащийся в предварительно сконфигурированной связке ключей (key-chain). | ||
| 2.1 | При использовании ключ-строки установить ее непосредственно в режиме конфигурирования SLA-теста. | esr(config-sla-test)# control-phase authentication key-string ascii-text { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> } | <CLEAR-TEXT> – строка длиной от 8 до 16 символов; <ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 16 байт (от 16 до 32 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). |
| 2.2.1 | При использовании ключа из связки ключей вернуться в общий режим конфигурирования, а затем создать новую связку ключей. | esr(config)# key-chain <KEYCHAIN> | <KEYCHAIN> – идентификатор связки ключей, задается строкой длиной до 16 символов. |
| 2.2.2 | В режиме конфигурирования связки ключей создать новый ключ. | esr(config-key-chain)# key <NUM> | <NUM> – номер-идентификатор ключа в связке ключей, может принимать значение [1..255]. |
| 2.2.3 | Привязать к созданному ключу ключ-строку. | esr(config-key-chain-key)# key-string ascii-text { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> } | <CLEAR-TEXT> – строка длиной от 8 до 16 символов; <ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 16 байт (от 16 до 32 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). |
| 2.2.4 | Установить период времени, в течение которого данный ключ может использоваться для аутентификации исходящих пакетов (необязательно). | esr(config-keychain-key)# send-lifetime <TIME_B> <DAY_B> <MONTH_B> <YEAR_B> <TIME_E> <DAY_E> <MONTH_E> <YEAR_E> | <TIME_B> – устанавливаемое время начала действия ключа, задаётся в виде HH:MM:SS, где: HH – часы, принимает значение [0..23]; MM – минуты, принимает значение [0 .. 59]; SS – секунды, принимает значение [0 .. 59]. <DAY_B> – день месяца начала действия ключа, принимает значения [1..31]; <MONTH_B> – месяц начала использования ключа, принимает значения [January/February/March/April/May/June/July/August/September/October/November/December]; <YEAR_B> – год начала использования ключа, принимает значения [2001..2037]; <TIME_E> – устанавливаемое время окончания действия ключа, задаётся в виде HH:MM:SS, где: HH – часы, принимает значение [0..23]; MM – минуты, принимает значение [0 .. 59]; SS – секунды, принимает значение [0 .. 59]. <DAY_E> – день месяца окончания действия ключа, принимает значения [1..31]; <MONTH_E> – месяц окончания действия ключа, принимает значения [January/February/March/April/May/June/July/August/September/October /November/December]; <YEAR_E> – год окончания действия ключа, принимает значения [2001..2037]. |
| 2.2.5 | Установить период времени, в течение которого данный ключ может использоваться для аутентификации входящих пакетов (необязательно). | esr(config-keychain-key)# accept-lifetime <TIME_B> <DAY_B> <MONTH_B> <YEAR_B> <TIME_E> <DAY_E> <MONTH_E> <YEAR_E> | <TIME_B> – устанавливаемое время начала действия ключа, задаётся в виде HH:MM:SS, где: HH – часы, принимает значение [0..23]; MM – минуты, принимает значение [0 .. 59]; SS – секунды, принимает значение [0 .. 59]. <DAY_B> – день месяца начала действия ключа, принимает значения [1..31]; <MONTH_B> – месяц начала использования ключа, принимает значения [January/February/March/April/May/June/July/August/September/October/November/December]; <YEAR_B> – год начала использования ключа, принимает значения [2001..2037]; <TIME_E> – устанавливаемое время окончания действия ключа, задаётся в виде HH:MM:SS, где: HH – часы, принимает значение [0..23]; MM – минуты, принимает значение [0 .. 59]; SS – секунды, принимает значение [0 .. 59]. <DAY_E> – день месяца окончания действия ключа, принимает значения [1..31]; <MONTH_E> – месяц окончания действия ключа, принимает значения [January/February/March/April/May/June/July/August/September/October /November/December]; <YEAR_E> – год окончания действия ключа, принимает значения [2001..2037]. |
| 2.2.6 | Вернуться в общий режим конфигурирования и привязать ранее созданную связку ключей к сервису SLA. | esr(config)# ip sla key-chain <KEYCHAIN> | <KEYCHAIN> – идентификатор связки ключей, задается строкой длиной до 16 символов. |
| 2.2.7 | Перейти в режим конфигурирования ранее созданного SLA-теста и установить необходимый ключ из связки ключей, указав его номер. | esr(config-sla-test)# control-phase authentication key-id <NUM> | <NUM> – номер-идентификатор ключа в связке ключей, может принимать значение [1..255]. |
| 3 | Указать порт, на который будут направляться пакеты для аутентификации в ходе контрольной фазы (необязательно). | esr(config-sla-test)# control-phase destination-port <PORT> | <PORT> – номер UDP-порта, может принимать значение [1..65535]. |
| 4 | Указать порт, с которого будут отправляться пакеты для аутентификации в ходе контрольной фазы (необязательно). | esr(config-sla-test)# control-phase source-port <PORT> | <PORT> – номер UDP-порта, может принимать значение [1..65535]. |
| 5 | Установить периодичность попыток повторного прохождения контрольной фазы в случае её неудачи. | esr(config-sla-test)# control-phase retry <TIME> | <TIME> – интервал между попытками, может принимать значение [1..86400] секунд. |
| 6 | Установить максимальное время ожидания ответного пакета аутентификации от удаленной стороны в ходе контрольной фазы. | esr(config-sla-test)# control-phase timeout <TIME> | <TIME> – время ожидания, может принимать значение [1..86400] секунд. |
| Далее необходимо симметрично настроить параметры аутентификации на удаленном маршрутизаторе (принимающая сторона). | |||
| 7 | Перейти в режим конфигурирования сервиса SLA-responder. | esr(config)# ip sla responder [ vrf <VRF> ] | <VRF> – имя экземпляра VRF, задаётся строкой длиной до 31 символа. При указании данного параметра, SLA-responder включается в указанном VRF. |
| 8 | Установить максимальное время ожидания следующего тестового пакета (необязательно). | esr(config-sla-responder)# timeout <TIME> | <TIME> – время ожидания следующего пакета, может принимать значение [1..4294967295] миллисекунд. |
| 9 | Установить тип алгоритма, который будет использоваться при хешировании ключей аутентификации. | esr(config-sla-responder)# authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм хеширования, принимает значения [sha-256, hmac-sha-256]. |
| 10 | Задать ключ, который будет использоваться для аутентификации приходящих запросов от SLA-agent. Может быть использован один из двух видов ключей аутентификации: ключ-строка, указываемая непосредственно в режиме конфигурирования SLA-responder, и предварительно сконфигурированная связка ключей (key-chain). | ||
| 10.1 | При использовании ключ-строки установить ее непосредственно в режиме конфигурирования SLA-responder. | esr(config-sla-responder)# authentication key-string ascii-text { <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> } | <CLEAR-TEXT> – строка длиной от 8 до 16 символов; <ENCRYPTED-TEXT> – зашифрованный пароль размером от 8 байт до 16 байт (от 16 до 32 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...). |
| 10.2.1 | При использовании связки ключей необходимо вернуться в общий режим конфигурирования, а затем создать новую связку ключей. Процесс создания повторяет создание связки на тестирующем маршрутизаторе и описан в рамках шагов 2.2.1 - 2.2.5 данного алгоритма. | ||
| 10.2.2 | Привязать ранее созданную связку ключей к SLA-responder. | esr(config-sla-responder)# authentication key-chain <KEYCHAIN> | <KEYCHAIN> – идентификатор связки ключей, задается строкой длиной до 16 символов. |
| Scroll Pagebreak |
|---|
Пример конфигурации UDP-теста с аутентификацией по ключ-строке
...
- Оба узла (SLA-пробер и ответчик) должны быть синхронизованы по NTP;
- Суммарное отклонение от NTP на обоих узлах не должно превышать значение двухсторонней характеристики;
- Значение односторнней характеристики не дожно быть меньше 0, а также превышать значение двухсторонней характеристики.
Scroll Pagebreak
Только при соблюдении данных критериев можно ожидать корректное вычисление всех характеристик канала передачи данных.
...