Командная строка WANFleX
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 ------- --------------------------------------- ------------------ ------- --------- ------- --------- |
Так как на данном устройстве отсутствуют интерфейсы 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 GROUP 5 : 5 nodes : sent 0 GROUP 6 : 1 nodes : sent 0 |
Из вывода команды для интерфейса prf0 видим, что в рамках группы коммутации #5 происходит взаимодействие с 5 устройствами, в рамках группы коммутации #6 взаимодействие происходит только с коммутатором InfiMUX 1 и расположенным за ним ПК.
Просмотр таблицы маршрутизации
В предыдущем примере была рассмотрена логическая схема передачи трафика, для просмотра физической схемы передачи, необходимо обратиться к таблице маршрутизации, используя аргумент "full" команды "mint map".
InfiMUX_2#1> mint map full ------- -------------------------------- ------------------ --------- 12 Routes: |
Вывод команды для интерфейса 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" - сохраним запись Master#1>mint rf5.0 snap - выведем список записей Master#1>mint rf5.0 snap 4 diff - выполним сравнение без дополнительных опций 1 missing nodes, 0 new nodes - в сети пропало одно устройство Master#1>mint rf5.0 snap 4 diff cost - отобразим изменение стоимости маршрутов Master#1>mint rf5.0 snap 4 show - отобразим содержимое записи 000435051EAB "Smn Slave Sever 335531" 92 2 |
Удалённое выполнение команд
Устройства, поддерживающие протокол 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> mint rf5.0 rcmd -nt 00043522CBE6 "co ba" - проверим выполнение команды на одном из удалённых устройств |