Командная строка WANFleX

06

MINT-область

Зарегистрируйтесь
для учёта прогресса курса

Протокол MINT

MINT (Mesh Interconnection Network Technology - технология построения сетей с произвольными связями) - проприетарная технология компании "Инфинет", используемая на устройствах семейств InfiLINK 2x2, InfiMAN 2x2, InfiLINK Evolution и InfiMAN Evolution, обеспечивающая передачу данных между устройствами по беспроводным и проводным каналам связи. 

Рекомендуем изучить online курс "Коммутация MINT", где подробно описаны принципы работы протокола.

Маршрутизация MINT

Архитектура MINT поддерживает два основных способа передачи трафика - коммутацию и маршрутизацию. Каждый кадр, который будет передан через область MINT, в первую очередь проверяется на соответствие правилам коммутации. Настройка MINT-коммутации описана в уроке "3. Настройка коммутации и управления" данного курса. Если кадр соответствует правилам, то он будет передаваться внутри области MINT по правилам коммутации, если нет - кадр поступает в модуль маршрутизации, который принимает окончательное решение о его перенаправлении.

В процессе работы протокола в сети составляется таблица маршрутизации MINT, которая содержит все возможные маршруты до всех получателей сети MINT. По аналогии с OSPF каждому маршруту в таблице назначается своя стоимость, на стоимость оказывают влияние как значения параметров радио: SNR, RSSI, битрейт, уровень переповторов, загрузка канала и т.д, так и среда передачи. Так как показатели качества беспроводного канала связи могут непредсказуемо изменяться с течением времени, каждое устройство MINT с периодичностью 1-3 с пересчитывает значение стоимости соединений со своими соседями. Помимо анализа показателей радио, маршрутизация MINT отличается от классических протоколов маршрутизации построением таблицы и поиском по ней на основании MAC-адреса.

Устройства, находящиеся в едином радио сегменте, автоматически формируют единую MINT область. Для связи нескольких областей MINT в единую через проводной сегмент используется псевдо-радио интерфейс PRF.

 

Интерфейс PRF

Для обмена информацией в рамках протокола MINT между устройствами не имеющими соединения по радио был разработан интерфейс PRF. Соединение PRF устанавливается поверх проводного сегмента сети, родительским для такого интерфейса должен быть назначен порт Ethernet или другой логический интерфейс, созданный над физическим портом Ethernet. PRF соединение воспринимается устройством как соединение через радио.

Создание и активация PRF-интерфейса осуществляются командой "ifconfig prfN up", где N - порядковый номер интерфейса диапазоне от 0 до 7. Для настройки интерфейса предназначена команда "prf N". Параметр "parent IFNAME" позволяет назначить родительский интерфейс, через который будет физически осуществляться приём и отправка пакетов. Помимо родительского интерфейса необходимо установить номер канала от 0 до 3, соединение может быть установлено только между PRF-интерфейсами, номера каналов на которых совпадают. Для установки номера канала предназначен параметр "channel N". Удалить интерфейс позволяет параметр "clear".

Чтобы замкнуть область MINT в единое кольцо, необходимо выполнить объединение интерфейсов MINT в пределах одного устройства. Как правило, для беспроводных устройств необходимо объединение интерфейса радио с интерфейсом PRF, объединение нескольких PRF-интерфейсов для коммутаторов InfiMUX. Для такого объединения интерфейсов используется перемычка JOIN, конфигурация которой осуществляется командой "mint join IFNAME1 IFNAME2 ...". Интерфейсы, объединенные с помощью функции JOIN, начинают обрабатывать данные как единый интерфейс, поэтому при включении их в группу коммутации следует указывать только один (любой). Параметр "disjoin" позволяет отменить объединение интерфейсов.

Создадим интерфейс PRF, назначим Ethernet-интерфейс в качестве родительского, укажем номер канала 1. Объединим интерфейсы радио и PRF.

R5000-Omx#1> ifc prf1 up - создадим интерфейс PRF
R5000-Omx#1> prf 1 parent eth0 channel 1 - выполним настройку созданного интерфейса
R5000-Omx#1> mint join prf1 rf5.0 - выполним объединение интерфейсов
Complete list of joined interfaces:
mint join rf5.0 prf1
R5000-Omx#1> co sh prf - выведем конфигурацию интерфейса PRF
#Pseudo-RF parameters
prf 1 parent eth0 hwmtu 1514 channel 1 burst

Конфигурация некоторых параметров интерфейса PRF может быть выполнена командами "mint", "ifconfig" и "rfconfig" аналогично настройкам радио, описанным в уроке "5. Настройки радио".

В некоторых обстоятельствах, например, для предотвращения возникновения коммутационной петли, возникает необходимость разделить MINT-область на несколько частей. Такое разделение позволяет предотвратить распространение информации о группах коммутации и передачу данных пользователя, сохраняя все возможности протокола MINT (получение информации о MINT-сети, отправка удаленных команд и т.д.). Разграничение может быть активировано/деактивировано на интерфейсе MINT (prf или радио) параметром "-[no]swborder" команды "mint".

Стоимость соединений

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

Маршрутизация MINT выполняется в режиме “hop-by-hop”, основываясь на MAC-адресе шлюза, стоимость каждого пролёта суммируется. Как правило стоимость соединений PRF меньше, чем у соединений радио, поэтому приоритет при передаче отдаётся им. Система предусматривает управление стоимостью вручную, с использованием команды "mint":

  • Параметр "-extracost N" устанавливает добавочную стоимость для всех соединений на указанном интерфейсе. Это значение прибавляется к стоимости соединения, вычисленному автоматически протоколом MINT, либо установленному любым другим способом. Может быть только положительным. Значение 0 отменяет действие этого параметра.
  • Параметр "-fixedcost N" присваивает всем соединениям на этом интерфейсе (кроме join) фиксированное значение стоимости. Значение 0 отменяет действие этого параметра.
  • Параметр "joincost N" устанавливает стоимость всех соединений на этом интерфейсе, полученных с помощью функции "join" (по умолчанию 1). Значение 0 (ноль) отменяет действие этого параметра.

Информация о маршрутах

Для просмотра информации о текущих маршрутах устройства предназначен параметр "map" команды "mint". При отсутствии дополнительных аргументов параметр выводит информацию о соседних устройствах сети MINT для каждого интерфейса, участвующего в маршрутизации MINT. Для вывода более подробной информации по каждому из соседей может быть использован аргумент "detail".

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

R5000-Omx#1> mint map detail
==============================================================================
Interface rf5.0  TDM (5 ms DL/UL:Auto) (RSSI=-40 Dist=70) (Sync Off)
Node  00043514C93C  "R5000-Mmx", Id 13660, Nid 0, (Master)
Freq 5200, Band 40, Sid 10101011, autoBitrate 300000/30000, Noise -93(+5)

------- --------------------------------------- ------------------      -------      ---------       -------      ---------
  Id         Name                                   Node                 SNR     Bitrate      Retry    Options
----------------------------------------------- ------------------      rx/tx     rx/tx         rx/tx     -------
  03270 R5000-Lmn1                     00043522CBE6   45/46  300/300      0/0         /S/
        load 0/4, pps 0/0, cost 59
         pwr 10/10, rssi -50/-44, thr 18/18
         dist 0, evm -29/-27
         H11v2.1.53, up 5 days, IP=192.168.98.26
  37429 E5-ST1                       000435152615 43/52  300/300  3/1  /S/
        load 4/3, pps 1/0, cost 51
         pwr 10/9, rssi -50/-46, thr 17/24
         dist 0, evm -19/-49
         H22v0.9.8, up 27:21, IP=192.168.98.25
------- --------------------------------------- --------------------     -------       ---------    -------      ---------
2 active neighbors
Total load: 4/7 (rx/tx), 11 (sum) Kbps
Total nodes in area: 18
# Optimal tdma distance 2 km

Так как на данном устройстве отсутствуют интерфейсы PRF, вывод команды содержит информацию только о радио интерфейсе. В верхней части вывода содержится информация о параметрах интерфейса локального устройства, настроенных пользователем. Для каждого из соседей устройства доступна следующая информация, для двойных значений (указанных через "/"), первое число указывает значение показателя на приёмном тракте соседнего устройства, второе - на приёмнике локального устройства:

  • "Id" –  идентификатор сетевого интерфейса, по умолчанию соответствует последним цифрам серийного номера устройства.
  • "Name" –  имя сетевого интерфейса, назначенное пользователем.
  • "Node" –  MAC-адрес сетевого интерфейса.
  • "SNR" –  показатель уровня сигнала по отношению к шуму в дБ.
  • "Bitrate" –  текущая битовая скорость, используемая для передачи данных.
  • "Retry" –  отношение количества пакетов отправленных повторно к общему количеству пакетов в рамках скользящего окна, в %.
  • "Options" –  дополнительная информация о соседе:
    • "S" - данное устройство является ведомым;
    • "TM" - данное устройство является ведущим, на нём установлено ПО с поддержкой технологии TDMA;
    • "L" - пропускная способность устройства ограничена лицензией;
    • "F" - версия программного обеспечения более старая, чем на локальном устройстве.
    • "P" - на устройстве включен режим polling;
  • "load" –  загрузка канала связи в Кбит/с.
  • "pps" –  загрузка канала связи в пакетах/с.
  • "cost" –  стоимость соединения.
  • "pwr" –  мощность передатчика в дБ, установленную механизмом ATPC (если включен).
  • "rssi" –  показатель уровня сигнала в дБм.
  • "thr" –  уровень сигнала относительно чувствительности приёмника для текущей модуляции в дБ. Выбор текущей модуляции зависит помимо прочих факторов от значения показателя SNR, параметр "thr" показывает запас мощности над границей перехода на предыдущую модуляцию.
  • "dist" –  расчётное расстояние до устройства в км.
  • "evm" –  показатель качества сигнала в дБ.
  • "HXXvX.X.X" –  аппаратная платформа и установленная версия ПО.
  • "up" –  время непрерывной работы канала связи.
  • "IP=" –  основной IP-адрес устройства.

Обобщённая информация приведена под списком всех устройств. Помимо количества непосредственно подключенных устройств здесь отображено общее количество устройств в данной MINT-области, в нашем примере их 18.

Просмотр таблицы коммутации

Как было описано в уроке "3. Настройка коммутации и управления", передача трафика данных в рамках области MINT осуществляется в соответствии с концепцией групп коммутации только между интерфейсами устройств, включёнными в группы коммутации с идентичными номерами. Для просмотра информации об устройствах, входящих в те же группы коммутации, что и локальное устройство, предназначен аргумент "swg" команды "mint map". Для вывода информации обо всех группах коммутации всех устройств в данной области MINT необходимо добавить аргумент "full".

Рассмотрим следующую схему:

ПК1 и ПК2 связаны друг с другом двумя радиоканалами Master 1 - Slave 1 и Master 2 - Slave 2, точкой выхода из сети MINT в обоих случаях являются коммутаторы InfiMUX. Для управления на всех устройствах создана группа коммутации #5, все устройства объединены в единую область MINT. Передача трафика данных осуществляется в рамках группы коммутации #6, которая создана на обоих коммутаторах InfiMUX. Выведем информацию о принадлежности устройств к группам коммутации, подключившись к коммутатору InfiMUX 2.

InfiMUX_2#1> mint map swg full
==============================================================================
Interface prf0  (parent eth0)
Node  00900B55282E  "PRF_to_Slave 1", Id 06191, Nid 0, (Master)
=============  LOCAL   GROUPS =============

GROUP 5    : 5 nodes : sent 0
     (prf0 vlan5) => svi5
 00043512A514 "Master_2_PRF                "  5 hops, Cost 162, (alive 5)
 00043513FA93 "Slave_2_PRF                   "  2 hops, Cost  92, (alive 5)
 00043513FA94 "Slave_1_PRF                   "  1 hops, Cost  91, (alive 5)
 00043513FA95 "Master_1_PRF                "  4 hops, Cost 181, (alive 5)
 00900B5526BA "InfiMUX1_PRF1             "  7 hops, Cost 254, (alive 5)

GROUP 6    : 1 nodes : sent 0
     (eth5 prf0)
 00900B5526BA "InfiMUX1_PRF1             "  7 hops, Cost 254, (alive 5)

Из вывода команды для интерфейса prf0 видим, что в рамках группы коммутации #5 происходит взаимодействие с 5 устройствами, в рамках группы коммутации #6 взаимодействие происходит только с коммутатором InfiMUX 1 и расположенным за ним ПК.

Просмотр таблицы маршрутизации

В предыдущем примере была рассмотрена логическая схема передачи трафика, для просмотра физической схемы передачи, необходимо обратиться к таблице маршрутизации, используя аргумент "full" команды "mint map".

InfiMUX_2#1> mint map full
==============================================================================
Interface prf0  (parent eth0)
Node  00900B55282E  "PRF_to_Slave 1", Id 06191, Nid 0, (Master)

------- --------------------------------      ------------------           ---------
  Id         Name                             Node                       Options
------- --------------------------------      ------------------           ---------
  60756 Slave_1_PRF                  00043513FA94 prf   /M/
  06191 PRF_to_Slave 2             00900B55282F join
------- --------------------------------      ------------------           ---------
1 active neighbors, 1 join
Total load: 1/0 (rx/tx), 1 (sum) Kbps
Total nodes in area: 12

12 Routes:
---------
  03332: 00043512A514       ->   06191: 00900B55282F Cost=162  H=5  join
         Master_2_PRF                      PRF_to_Slave 2        
  03332: 00043522A514       ->   06191: 00900B55282F Cost=161  H=4  join
         Master_2_RF                        PRF_to_Slave 2        
  06191: 00900B55282E       ->   06191: 00900B55282E Cost=0    H=0 
         PRF_to_Slave 1                    PRF_to_Slave 1        
  06191: 00900B55282F       ->   06191: 00900B55282F Cost=1    H=1  /mon/ join
         PRF_to_Slave 2                    PRF_to_Slave 2        
  60755: 00043513FA93       ->   06191: 00900B55282F Cost=92   H=2  join
         Slave_2_PRF                         PRF_to_Slave 2        
  60755: 00043523FA93       ->   06191: 00900B55282F Cost=93   H=3  join
         Slave_2_RF                           PRF_to_Slave 2        
  60756: 00043513FA94       ->   60756: 00043513FA94 Cost=91   H=1 
         Slave_1_PRF                         Slave_1_PRF           
  60756: 00043523FA94       ->   60756: 00043513FA94 Cost=92   H=2 
         Slave_1_RF                           Slave_1_PRF           
  60757: 00043513FA95       ->   60756: 00043513FA94 Cost=181  H=4 
         Master_1_PRF                      Slave_1_PRF           
  60757: 00043523FA95       ->   60756: 00043513FA94 Cost=180  H=3 
         Master_1_RF                        Slave_1_PRF           
  06190: 00900B5526BA       ->   06191: 00900B55282F Cost=254  H=7  join
         InfiMUX1_PRF1                    PRF_to_Slave 2        
  06190: 00900B5526BB       ->   06191: 00900B55282F Cost=253  H=6  join
         InfiMUX1_PRF2                    PRF_to_Slave 2    

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

Отслеживание изменений

Протокол MINT позволяет сохранить информацию о соседних узлах в сети, для создания записи сохранения используется параметр "snap [N] save ["Comment"]", где "N" - порядковый номер записи от 1 до 8, ""Comment"" - произвольный комментарий. Удалить запись позволяет опция "snap [N] del". 

Для просмотра списка сохранённых записей необходимо выполнить команду "mint rf5.0 snap" без дополнительных опций. 

Для просмотра сохранённой записи используйте опцию "show".

При возникновении необходимости отследить изменения в количестве узлов и стоимости маршрутов в сети MINT воспользуйтесь параметром "diff". Без дополнительных опций команда "snap [N] diff" выведет информацию о добавленных и пропавших устройствах. Опционально могут быть выведены следующие данные:

  • "cost" – изменения стоимости маршрута;
  • "hops" – изменения количества хопов по кратчайшему маршруту;
  • "name" – изменения в именах узлов.

Сохраним запись о текущем состоянии сети под номером 7. Выведем список всех записей. Сравним текущее состояние сети с записью под номером 4. Отобразим содержимое записи под номером 4.

Master#1>mint rf5.0 snap 7 save "New entry" - сохраним запись
Snapshot #7 saved

Master#1>mint rf5.0 snap - выведем список записей
Snap #1: ---
Snap #2: rf5.0  <29-Sep-2022 17:25:55> "test network" (12 nodes)
Snap #3: ---
Snap #4: rf5.0  <22-Sep-2022 11:03:35> (12 nodes)
Snap #5: ---
Snap #6: ---
Snap #7: rf5.0  <29-Sep-2022 17:37:13> "New entry" (11 nodes)
Snap #8: ---

Master#1>mint rf5.0 snap 4 diff - выполним сравнение без дополнительных опций
rf5.0 Snapshot #4, 12 nodes
changes since <22-Sep-2022 11:03:35>
Missing nodes:
00043523F7DD "Slave"

1 missing nodes, 0 new nodes - в сети пропало одно устройство

Master#1>mint rf5.0 snap 4 diff cost - отобразим изменение стоимости маршрутов
rf5.0 Snapshot #4, 12 nodes
cost changes since <22-Sep-2022 11:03:35>
No changes, total nodes 12 - стоимость всех маршрутов осталась без изменений

Master#1>mint rf5.0 snap 4 show - отобразим содержимое записи
rf5.0 Snapshot #4, Date: Thu Sep 22 11:03:35 2022

000435051EAB "Smn Slave Sever 335531" 92 2
000435151EAB "ST1" 93 3
000435052614 "E5-STE2" 92 2
000435152614 "E5-ST2" 93 3
000435152615 "E5-ST1" 650 5
00043504C93B "Master-10" 1 1
00043514C93B "CPE 1" 0 0
00043514C93C "R5000-Mmx" 599 4
00043502CBE6 "R5000-Lmn1" 92 2
00043522CBE6 "R5000-Lmn1" 93 3
00043523F7DD "Slave" 51 1
00043523FA96 "Slave2" 51 1

Удалённое выполнение команд

Устройства, поддерживающие протокол MINT, позволяют с одного узла сети отправлять команды для выполнения на другой или все устройства данной MINT области. Для удалённого выполнения команд предназначен параметр "rcmd" команды "mint". Выбрать устройство, на котором необходимо применить команду позволяет аргумент "-n ADDR", где ADDR - MAC-адрес устройства. При необходимости выполнить команду на соседях, подключенных по радио применяется аргумент "-l", на всех устройствах MINT-области - аргумент "-all".

Аргументы "-l" и "-all" предполагают выполнение команды только на удалённых устройствах, при необходимости выполнить команду и на локальном устройстве, необходимо добавить аргумент "-self[2]". В этом случае команда будет выполнена на локальном устройстве после завершения её выполнения на всех удалённых узлах. "2" – команда будет выполнена устройством, даже если один из удалённых узлов выполнение команды не подтвердил.

По умолчанию результаты вывода команд записываются в системный журнал устройства, при необходимости вывести информацию на экран возможно использование аргумента "[t]". Однако информация будет выведена только если запрос отправляется на определённое количество устройств, следовательно заранее известно количество ответов, которые должны поступить. Отключить журналирование выполнения команд позволяет аргумент "-q".

Команда, которую необходимо выполнить, заключается в кавычки и ставится в конце строки. Кроме того, существует возможность расположить текстовый файл с командой на сервере FTP и указать путь к нему аргументом "-file URL".

Сервер удалённого выполнения команд включен по умолчанию, при необходимости его отключить/включить воспользуйтесь параметром "-rcmdserver {disable | enable}". Для обеспечения дополнительной безопасности возможна установка пароля для выполнения команд на устройстве. Доступно две ступени доступа:

  • Гостевой ключ позволяет выполнять на узле только те команды, которые не изменяют его конфигурацию. Устанавливается аргументом "-guestKey STRING" параметра "-rcmdserver".
  • Ключ полного доступа к конфигурации. Устанавливается аргументом "-fullKey STRING".

Если на устройстве установлен ключ доступа, для выполнения команд на этом устройстве с удалённого узла параметром "rcmd", необходимо дополнительно указать ключ параметром "-key KEY".

Выполним команду "mint map swg" на радио интерфейсе устройства с MAC-адресом 00043522CBE6. Результат выполнения команды выведем на экран.

R5000-Omx#1> mint rf5.0 rcmd -nt 00043522CBE6 "mint map swg"
==============================================================================
Interface rf5.0  TDS
Node  00043522CBE6  "R5000-Lmn1", Id 03270, Nid 0, (Slave)
GROUP 26   : 0 nodes : sent 85
            (eth0 rf5.0) => svi1

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

R5000-Omx#1> mint rf5.0 rcmd -all -self "config backup save 3 test"
R5000-Omx#1> co ba - проверим выполнение команды на локальном устройстве
Configuration backup list
-------------------------
cfg-0  <21-Mar-2022 10:42:11>  "Undo backup (read-only)"
cfg-1  ---
cfg-2  ---
cfg-3  <01-Apr-2022 12:52:41>  "test"
cfg-4  <03-Mar-2022 13:06:43>  "Safe config"
cfg-5  ---
cfg-6  ---
cfg-7  <01-Jan-1970 05:00:00>  "td"
cfg-8  ---

R5000-Omx#1> mint rf5.0 rcmd -nt 00043522CBE6 "co ba" - проверим выполнение команды на одном из удалённых устройств
Configuration backup list
-------------------------
cfg-0  <23-Mar-2022 11:01:36>  "Undo backup (read-only)"
cfg-1  ---
cfg-2  ---
cfg-3  <01-Apr-2022 12:52:41>  "test"
cfg-4  ---
cfg-5  ---
cfg-6  ---
cfg-7  <24-Dec-2021 14:00:12>  "td"
cfg-8  ---

 

Назад Далее