diff --git a/docs/ru/docs/admin/reference/discovery/box/bfd.md b/docs/ru/docs/admin/reference/discovery/box/bfd.md index 0378971bc9f2569bcca6f3b445bcde5bd218c8ae..4d94e70aac2b9972099a86dc4d98cc7cd34c65f5 100644 --- a/docs/ru/docs/admin/reference/discovery/box/bfd.md +++ b/docs/ru/docs/admin/reference/discovery/box/bfd.md @@ -1,11 +1,12 @@ -# bfd check +# BFD - -!!! todo - Describe *bfd* check +`Bidirectional Forwarding Detection` применяется для отслеживания за ошибками связи путём установки сессии между двумя + `forwarding_engine`. По этой сессии возможно построение линка между устройствами. -## Requirements -* [get_bfd_sessions](../../../../dev/reference/scripts/get_bfd_sessions.md) -* [Network BFD](../../../../user/reference/caps/network/bfd.md) -* bfd check is enabled in [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md) +## Требования + +* Скрипт [get_bfd_sessions](../../../../dev/reference/scripts/get_bfd_sessions.md) +* Возможность [Network BFD](../../../../user/reference/caps/network/bfd.md) +* Опрос BFD включён в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +* Метод BFD в *Методах построения топологии* [Segment Profile](../../../../user/reference/concepts/network-segment-profile/index.md) diff --git a/docs/ru/docs/admin/reference/discovery/box/cdp.md b/docs/ru/docs/admin/reference/discovery/box/cdp.md index 57e90178b6be2f56a32d2bb1814a1bc587950637..7e17e47f2214a8c9e86cd9652c1b69f2bd315b01 100644 --- a/docs/ru/docs/admin/reference/discovery/box/cdp.md +++ b/docs/ru/docs/admin/reference/discovery/box/cdp.md @@ -1,11 +1,16 @@ # cdp check - -!!! todo - Describe *cdp* check +`Cisco Discovery Protocol`. Топологический протокол оборудования `Cisco`. +Также реализован у некоторых иных вендоров (`MikRotik`), но `ID` передаётся в каком-то своём формате поэтому построение линка, +зачастую, невозможно. -## Requirements +* Идентификатор оборудования: `FQDN`, `IP адрес` или серийный номер +* Идентификатор порта: имя -* [get_cdp_neighbors](../../../../dev/reference/scripts/get_cdp_neighbors) -* [Network CDP caps](../../../../user/reference/caps/network/cdp.md) -* CDP check is enabled in [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md) + +## Требования + +* Скрипт [get_cdp_neighbors](../../../../dev/reference/scripts/get_cdp_neighbors.md) +* Возможность (`Capabilities`) [Network | CDP](../../../../user/reference/caps/network/cdp.md) +* Опрос CDP включён в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +* Метод CDP в *Методах построения топологии* [Segment Profile](../../../../user/reference/concepts/network-segment-profile/index.md) diff --git a/docs/ru/docs/admin/reference/discovery/box/fdp.md b/docs/ru/docs/admin/reference/discovery/box/fdp.md index 4b617bbe4871234b23e541f21b6e7cbafee86aca..1e55170f0fbf4838678b8067f8169f2402f853db 100644 --- a/docs/ru/docs/admin/reference/discovery/box/fdp.md +++ b/docs/ru/docs/admin/reference/discovery/box/fdp.md @@ -1,11 +1,11 @@ -# fdp check +# FDP - -!!! todo - Describe *fdp* check +[`Foundry Discovery Protocol`](http://docs.ruckuswireless.com/fastiron/08.0.80/fastiron-08080-managementguide/GUID-4C951D0A-F050-4DC7-96AA-FDBEC3D20C09.html). Использовался на коммутаторах `Brocade`. +Ходят слухи что до сих пор используется и поддерживается некоторыми вендорами. -## Requirements +## Возможности -* [get_fdp_neighbors](../../../../dev/reference/scripts/get_fdp_neighbors.md) -* [Network FDP caps](../../../../user/reference/caps/network/fdp.md) -* FDP check is enabled in [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md) +* Скрипт [get_fdp_neighbors](../../../../dev/reference/scripts/get_fdp_neighbors.md) +* Возможность [Network FDP](../../../../user/reference/caps/network/fdp.md) +* Опрос FDP включён в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +* Метод FDP в *Методах построения топологии* [Segment Profile](../../../../user/reference/concepts/network-segment-profile/index.md) diff --git a/docs/ru/docs/admin/reference/discovery/box/huawei_ndp.md b/docs/ru/docs/admin/reference/discovery/box/huawei_ndp.md index 453c305407ca5271c6b1b7a14981e19e4d093630..df150e833a0b9ceb6d8fdeb02562c136b9454f15 100644 --- a/docs/ru/docs/admin/reference/discovery/box/huawei_ndp.md +++ b/docs/ru/docs/admin/reference/discovery/box/huawei_ndp.md @@ -1,12 +1,10 @@ -# huawei_ndp check +# Huawei NDP - -!!! todo - Describe *huawei_ndp* check +`Huawei Network (Topology) Discovery Protocol` . Клон `CDP` от Huawei (не путать с NDP из IPv6). Работает только между устройствами `Huawei`, есть режим совместимости с `CDP` -## Requirements - -* [get_huawei_ndp_neighbors](../../../../dev/reference/scripts/get_huawei_ndp_neighbors.md) -* [Huawei NDP caps](../../../../user/reference/caps/huawei/ndp.md) -* Huawei NDP check is enabled in [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md) +## Требования +* Скрипт [get_huawei_ndp_neighbors](../../../../dev/reference/scripts/get_huawei_ndp_neighbors.md) +* Возможность [Huawei NDP caps](../../../../user/reference/caps/huawei/ndp.md) +* Опрос `Huawei NDP` включён в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +* Метод `Huawei NDP` в *Методах построения топологии* [Segment Profile](../../../../user/reference/concepts/network-segment-profile/index.md) diff --git a/docs/ru/docs/admin/reference/discovery/box/ifdesc.md b/docs/ru/docs/admin/reference/discovery/box/ifdesc.md index 26492936cad0a5cb2d1776598292067fc6ff9c04..29e77f5ff4c20bbb856f0d43df844b1715e02927 100644 --- a/docs/ru/docs/admin/reference/discovery/box/ifdesc.md +++ b/docs/ru/docs/admin/reference/discovery/box/ifdesc.md @@ -1,9 +1,10 @@ -# ifdescr check +# ifDesc - -!!! todo - Describe *ifdescr* check +Используется для построения линков на основе дескрипшенов интерфейсов. +Также это второй метод после `NRI`, которому нет необходимости заходить на оборудование. ## Requirements * [get_interfaces](../../../../dev/reference/scripts/get_interfaces.md) +* Настроены регулярные выражения в `Учёт объектов (Inventory) -> (Настройки) Setup -> ifDesc Patterns` +* Опрос ifDecr включён в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) diff --git a/docs/ru/docs/admin/reference/discovery/box/lacp.md b/docs/ru/docs/admin/reference/discovery/box/lacp.md index d5f5456dd319badb232e6b7e8dce9843b0a8deed..988fe02ef05c5a402488cde69cc69095040afaad 100644 --- a/docs/ru/docs/admin/reference/discovery/box/lacp.md +++ b/docs/ru/docs/admin/reference/discovery/box/lacp.md @@ -1,11 +1,13 @@ -# lacp check +# LACP - -!!! todo - Describe *lacp* check +`Link Aggregation Control Protocol`. Протокол агрегации линков, также может быть использован для определения соседей. -## Requirements +## Требования -* [get_lacp_neighbors](../../../../dev/reference/scripts/get_lacp_neighbors.md) -* [Network LACP caps](../../../../user/reference/caps/network/lacp.md) -* LACP check is enabled in [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md) +* Скрипт [get_lacp_neighbors](../../../../dev/reference/scripts/get_lacp_neighbors.md) +* Возможность [Network LACP](../../../../user/reference/caps/network/lacp.md) +* Опрос LACP включён в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +* Метод LACP в *Методах построения топологии* [Segment Profile](../../../../user/reference/concepts/network-segment-profile/index.md) + +Возможен случай когда с одной стороны один порт находится в отключённом состоянии (обычно, это делается для `холодного резерва`). +В этом случае для построения линка необходимо активировать опцию `Разрешить соединение LAG<-> physical` (`Allow LAG Mismatch`) в профиле интерфейса (`Interface Profile`). diff --git a/docs/ru/docs/admin/reference/discovery/box/lldp.md b/docs/ru/docs/admin/reference/discovery/box/lldp.md index fba0eaa4716b61fd6e62c8e93a6fe21900d7ffbc..d98f45fa8b787f2890c3912ce9a14754e2a19909 100644 --- a/docs/ru/docs/admin/reference/discovery/box/lldp.md +++ b/docs/ru/docs/admin/reference/discovery/box/lldp.md @@ -1,11 +1,20 @@ -# lldp check +# LLDP - -!!! todo - Describe *lldp* check +`Low Level Discovery Protocol`. Топологический протокол стандарта `IEEE 802.1AB-2009`. +Благодаря своей независимости позволяет строить связи между оборудованием разных производителей. +Взамен получаем сложность и головоломность работы. В частности есть 7 форматов передачи `Chassis ID` и 7 форматов передачи интерфейса соседа. -## Requirements +Основная сложность в работе с LLDP - различные форматы представления ID порта. Например: -* [get_lldp_neighbors](../../../../dev/reference/scripts/get_lldp_neighbors.md) -* [Network LLDP caps](../../../../user/reference/caps/network/lldp.md) -* LLDP check is enabled in [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md) +1) Имя. Имя отображаемое по LLDP может отличаться от имени, используемого на оборудовании. +2) MAC адрес. Часто можно встретить ситуацию, когда интерфейсам устройства присвоен одинаковый MAC адрес (см. `DLink`), +что делает невозможным определение порта подключения. +В таких случаях система может попытаться соориентироваться по описанию (`description`) порта, но для этого он должен отличаться от остальных. +3) Локальный ID. Обычно, в этим случаях передаётся `snmp_index`. Поэтому в системе он должен быть заполнен для интерфейсов устройства + +## Требования + +* Скрипт [get_lldp_neighbors](../../../../dev/reference/scripts/get_lldp_neighbors.md) +* Возможность [Network LLDP caps](../../../../user/reference/caps/network/lldp.md) +* Опрос LLDP включён в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +* Метод LLDP в *Методах построения топологии* [Segment Profile](../../../../user/reference/concepts/network-segment-profile/index.md) diff --git a/docs/ru/docs/admin/reference/discovery/box/nri.md b/docs/ru/docs/admin/reference/discovery/box/nri.md index 9080ce69b8cfbeff473814fd1ebee3e51e0f51e3..2fcf4111402238555ae58d933d89e90f7ca93170 100644 --- a/docs/ru/docs/admin/reference/discovery/box/nri.md +++ b/docs/ru/docs/admin/reference/discovery/box/nri.md @@ -1,9 +1,10 @@ # nri check - -!!! todo - Describe *nri* check +Построение линков по информации из внешней системы. +Механизм интеграции с внешней системой [Remote System](../../../../user/reference/concepts/remote-system/index.md) позволяет выгружать информацию по линкам и по ней строить линки в НОКе. +Для этого необходимо реализация выгрузке в адаптере `ETL` и адаптеры маппинга портов (`portmapper`). ## Requirements -* asset check is enabled in [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md) +* Опрос NRI и `NRI Portmapper` включёны в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +* Реализованный `Pormapper` для внешней системы \ No newline at end of file diff --git a/docs/ru/docs/admin/reference/discovery/box/oam.md b/docs/ru/docs/admin/reference/discovery/box/oam.md index 749955976c06f7ad6a22eb72d8d2c63f15f9f517..17ee8444e4a602ef373f34fe52cd0229718a5b61 100644 --- a/docs/ru/docs/admin/reference/discovery/box/oam.md +++ b/docs/ru/docs/admin/reference/discovery/box/oam.md @@ -1,11 +1,10 @@ -# oam check +# OAM check - -!!! todo - Describe *oam* check +`Operation, Administration, and Maintenance (OAM)`. Стандарт по мониторингу состояния линков, включается в том числе позволяет определять соседей и строить топологию. -## Requirements +## Требования -* [get_oam_status](../../../../dev/reference/scripts/get_oam_status.md) -* [Network OAM](../../../../user/reference/caps/network/oam.md) -* OAM check is enabled in [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md) +* Скрипт [get_oam_status](../../../../dev/reference/scripts/get_oam_status.md) +* Возможность [Network OAM](../../../../user/reference/caps/network/oam.md) +* Опрос OAM включён в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +* Метод OAM в *Методах построения топологии* [Segment Profile](../../../../user/reference/concepts/network-segment-profile/index.md) diff --git a/docs/ru/docs/admin/reference/discovery/box/rep.md b/docs/ru/docs/admin/reference/discovery/box/rep.md index f1bfbec4611b91c42079746fde9f757cc0a8bfbc..70051da0be9afe9b3ad8301a9125e07a5b31cea2 100644 --- a/docs/ru/docs/admin/reference/discovery/box/rep.md +++ b/docs/ru/docs/admin/reference/discovery/box/rep.md @@ -1,11 +1,29 @@ -# rep check +# REP опрос - -!!! todo - Describe *rep* check +[Resilient Ethernet Protocol](https://www.cisco.com/c/en/us/support/docs/lan-switching/ethernet/116384-technote-rep-00.html). +Изобретение Cisco - протокол для замены `STP` в кольцевых топологиях. В выводе присутствуют все участники кольца с интерфейсами: + +``` +SwitchA#show rep topology +REP Segment 1 +BridgeName PortName edge Role +---------------- ---------- ---- ---- +SwitchA Fa0/2 Pri Alt +SwitchC Fa1/0/23 Open +SwitchC Fa1/0/2 Open +SwitchD Fa0/23 Open +SwitchD Fa0/2 Open +SwitchB Fa1/0/23 Sec Open +``` + +* Скрипт: `get_rep_neighbors` +* Возможность (`Capabilities`): `Network | REP` +* Опция `Object Profile` (Профиля объектов): REP +* Опция `Segment Profile` (Профиля сегмента): REP ## Requirements -* [get_rep_neighbors](../../../../dev/reference/scripts/get_rep_topology.md) -* [Network REP caps](../../../../user/reference/caps/network/rep.md) -* REP check is enabled in [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md) +* Скрипт [get_rep_neighbors](../../../../dev/reference/scripts/get_rep_topology.md) +* Возможность (`Capabilities`) [Network REP caps](../../../../user/reference/caps/network/rep.md) +* Опрос CDP включён в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +* Опция REP в *Методах построения топологии* [Segment Profile](../../../../user/reference/concepts/network-segment-profile/index.md) \ No newline at end of file diff --git a/docs/ru/docs/admin/reference/discovery/box/stp.md b/docs/ru/docs/admin/reference/discovery/box/stp.md index 3eb7d5af35131253de53e4f2ba1f148f034d07c3..a9a4114ffc23dd3d23c962c453e206654551d77c 100644 --- a/docs/ru/docs/admin/reference/discovery/box/stp.md +++ b/docs/ru/docs/admin/reference/discovery/box/stp.md @@ -1,11 +1,32 @@ -# stp check +# STP - -!!! todo - Describe *stp* check +`Spanning Tree Protocol`. Не топологический протокол, но при обмене информацией передаёт номер назначенного порта. +Это позволяет построить линк снизу вверх (в сторону рута). +Номер назначенного порта (`Desg. Port`) в выводе отдают не все устройства, в частности у `DLink` он отсутствует. -## Requirements +* Скрипт: `get_stp_neighbors` +* Возможность (`Capabilities`): `Network | STP` +* Опция `Object Profile` (Профиля объектов): STP +* Опция `Segment Profile` (Профиля сегмента): STP -* [get_spanning_tree](../../../../dev/reference/scripts/get_spanning_tree.md) -* [Network STP caps](../../../../user/reference/caps/network/stp.md) -* STP check is enabled in [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md) +Пример вывода с оборудования протоколу STP. Порт в сторону вышестоящей железки с `ID` `0025-9922-1122` и портом `26`. + +``` +----[Port25(XGigabitEthernet0/1/1)][FORWARDING]---- + Port Protocol :enabled + Port Role :Root Port + Port Priority :128 + Port Cost(Dot1T ) :Config=auto / Active=2000 + Desg. Bridge/Port :32768.0025-9922-1122 / 128.26 + Port Edged :Config=default / Active=disabled + Point-to-point :Config=auto / Active=true + Transit Limit :147 packets/hello-time + Protection Type :None +``` + +## Требования + +* Скрипт [get_spanning_tree](../../../../dev/reference/scripts/get_spanning_tree.md) +* Возможность [Network STP](../../../../user/reference/caps/network/stp.md) +* Опрос STP включён в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +* Метод STP в *Методах построения топологии* [Segment Profile](../../../../user/reference/concepts/network-segment-profile/index.md) diff --git a/docs/ru/docs/admin/reference/discovery/box/udld.md b/docs/ru/docs/admin/reference/discovery/box/udld.md index f5960decd32d4711948afe5e6b1259886d3ff4be..121d815a11a8d32cebffe6328d7ffc803cf13d79 100644 --- a/docs/ru/docs/admin/reference/discovery/box/udld.md +++ b/docs/ru/docs/admin/reference/discovery/box/udld.md @@ -1,11 +1,12 @@ -# udld check +# UDLD - -!!! todo - Describe *udld* check +`Unidirectional Link Detection`. Изобретение Cisco - протокол по контролю состояния линка. +Также позволяет видеть соседа (если сосед оборудование `Cisco`). -## Requirements -* [get_udld_neighbors](../../../../dev/reference/scripts/get_udld_neighbors.md) -* [Network UDLD caps](../../../../user/reference/caps/network/udld.md) -* UDLD check is enabled in [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md) +## Требования + +* Скрипт [get_udld_neighbors](../../../../dev/reference/scripts/get_udld_neighbors.md) +* Возможность [Network UDLD](../../../../user/reference/caps/network/udld.md) +* Опрос UDLD включён в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +* Метод UDLD в *Методах построения топологии* [Segment Profile](../../../../user/reference/concepts/network-segment-profile/index.md) diff --git a/docs/ru/docs/admin/reference/discovery/box/xmac.md b/docs/ru/docs/admin/reference/discovery/box/xmac.md new file mode 100644 index 0000000000000000000000000000000000000000..b39753574cc546321aa8986d2cbf9bdd5260885e --- /dev/null +++ b/docs/ru/docs/admin/reference/discovery/box/xmac.md @@ -0,0 +1,44 @@ +# xMAC + +`Extend MAC` Есть класс устройств по умолчанию не поддерживающий топологические протоколы, но о них можно сделать несколько утверждений: + +* Всё что мы можем знать об этих устройствах это `MAC` адрес +* Устройства не поддерживают последующее подключение к себе иных устройств (условно, обладают одним портом) +* Подключаются непосредственно к порту коммутатора + +```mermaid +flowchart TD + A[Current Device] -->|Downlink or Chained Downlink| B(Phone1) + B --> | Downlink| C[Host1] +``` +К таким устройствам относят: Клиентские CPE, Видеокамеры, Компьютеры, IP телефоны. Именно для них предназначен данный метод, т.к. он не **требует подтверждения линка с другой стороны** Для него требуется: + +Работает следующим образом. Мы создаём 2 профиля интерфейсов (`Interface Profile`): + +* `CPE. Downlink` - в нём настройку `Политика сбора MAC адресов` [MAC Discovery Policy](../../../../user/reference/concepts/interface-profile/index.md) выставляем в `Direct Downlink` +* `CPE. Uplink` - в нём настройку `Политика сбора MAC адресов` [MAC Discovery Policy](../../../../user/reference/concepts/interface-profile/index.md) выставляем в `Direct Uplink` + +Дальше профилем `CPE. Downlink` размечаем интерфейсы коммутаторов к которым подключены `CPE`, +а `CPE. Uplink` интерфейсы `CPE`, которые смотрят в сторону коммутатора. +Далее включаем в `Профиле объектов` (`Object Profile`) коммутатора протокол `xMAC` и опрос `MAC адресов`. +Если во время опроса за портом с `CPE. Downlink` обнаружится MAC адрес устройства, то запустится процедура соединения (`Linking`). +Интерфейс к которому подключаться снизу будет определён по профилю интерфейса `CPE. Uplink`. + + + +!!! Warning + Если на CPE обнаружится 2 интерфейса покрашенных профилем с выставленным `Direct Uplink`, то линк не построится, т.к. система не сможет определить к какому из интерфейсов подключаться! + + +Также в `Политика сбора MAC адресов` (`MAC Disovery Policy`) присутствует настройка `Chained Downlink`, +используется для случая когда 2 устройства подключены по цепочке: `Коммутатора -> IP Телефон -> Компьютер`. +Настройки делаются аналогично предыдущему пункту, но для устройства посередине порт в сторону конечной железки красится `профилем интерфейса` (`Interface Profile`) с +настройкой `Chained Downlink`. Если мы видим при опросе `2 MAC` адреса, то выстраиваем цепочку. + + +## Требования + +* Скрипт [get_chassis_id](../../../../dev/reference/scripts/get_chassis_id.md) для соседнего и [get_chassis_id](../../../../dev/reference/scripts/get_chassis_id.md) для текущего +* Опрос xMAC включён в профиле объектов [Managed Object Profile](../../../../user/reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +* Метод xMAC в *Методах построения топологии* [Segment Profile](../../../../user/reference/concepts/network-segment-profile/index.md) +* Настройки `Политика сбора MAC адресов` (`MAC Disovery Policy`) в `Профиле Интерфейса` (`Interface Profile`) diff --git a/docs/ru/docs/dev/reference/card/index.md b/docs/ru/docs/dev/reference/card/index.md index 48820a19206413286a0517b23af9b81072589e31..c5f8ed28d0afa88c78b537580093f3c7bc8efeee 100644 --- a/docs/ru/docs/dev/reference/card/index.md +++ b/docs/ru/docs/dev/reference/card/index.md @@ -45,41 +45,6 @@ class FirmwarePlanCard(BaseCard): ... -``` - -Шаблон `html` - -``` - - - - - - - - - - - - - - -{% if object.description %} - - - - -{% endif %} -{% if object.download_url %} - - - - -{% endif %} -
- Firmware: {%- if object.full_name -%}{{ object.full_name }}{%- else -%}{{ object.version }}{%- endif -%} -
{{ _("Vendor") }}{{ object.vendor.name }}
{{ _("Profile") }}{{ object.profile.name }}
{{ _("Description") }}{{ object.description }}
{{ _("URL") }}{{ object.download_url }}
- ``` Как видно в данной карточке выводится информация о конкретном инстансе. Это часто встречающаяся использование карточек. diff --git a/docs/ru/docs/user/background/topology/index.md b/docs/ru/docs/user/background/topology/index.md index fb001372b8f9b0058c54dc0f197d2f16cbd3a10b..7676a2fed55b94a325f474ec1a56dfe2763c4e74 100644 --- a/docs/ru/docs/user/background/topology/index.md +++ b/docs/ru/docs/user/background/topology/index.md @@ -1,6 +1,233 @@ -# Topology +# Топология -## Level +## Возможности работы НОКа с топологией + +Одним из ключевых компонентов НОКа это топология сети. Она представлена в виде графа связности оборудования (`ManagedObject`). +На его основе можно менять поведение системы, это предоставляет следующие возможности: + +* Строить L2 топологию по данным с оборудования и внешних систем (`Remote System`) +* Строить L2 связи между интерфейсами [Interface](../../reference/concepts/interface/index.md) устройства [ManagedObject](../../reference/concepts/managed-object/index.md). +* Показывать топологию на карте сети +* Определять причины аварии по топологии +* Производить поиск пути по топологии +* Строить отчёты на основании данных по топологии +* Предоставлять топологическую информацию через `API` - [Datastream](../../../dev/reference/api/datastream/managedobject.md) + + +L2 топология (`L2 Topology`) строится между интерфейсами [Interface](../../reference/concepts/interface/index.md) устройства [ManagedObject](../../reference/concepts/managed-object/index.md). +Помимо ручного создания связей (`Link`), через интерфейс пользователя, система может выстраивать связи на основе данных с оборудования. Можно выделить следующие этапы работы с топологией: + +* Построение связей между устройствами (вручную или по итогам опроса) +* Расчёт направления вверх (`Uplink`) +* Отображение схемы сети +* Построение пути по топологии + + +## Построение топологии + +При построении топологии важно помнить термины: + +* **Связь** (`Link`) - групп (традиционно 2) +* **Текущее устройство** - это устройство (`ManagedObject`) на котором запущен опрос +* **Соседнее устройство** (сосед) - устройства, соединенённые с текущим напрямую (не через иные устройства уровня L2). Они отображаются в таблице соседей устройства +* **Идентификатор устройства** - свойство, позволяющее найти соседнее устройство. В топологических протоколах используются следующие идентификаторы + * MAC адреса устройства (`Chassis ID`) + * Hostname устройства + * IP адес (`IP address`) + * Серийный номер (`Serial`) +* **Идентификатор порта устройства** - позволяется определить порт соседа к которому идёт связь. Например: + * Имя интерфейса (`Interface Name`) + * Описание (`Description`) + * MAC адрес интерфейса + * SNMP индекс (`ifindex`) + * Номер интерфейса + * Иные +* **Топологический метод** (`Topology Method`) - это способ с помощью которого система строит связь. Помимо обычных, совпадающих с топологическими протоколами, в системе присутствует несколько дополнительных. + +Для создания связи (`Link`) обязательно наличие интерфейса [Interface](../../reference/concepts/interface/index.md) на всех связанных устройствах. +Дальнейший список требования отличается в завимости от метода создания связи (`Link`). Рассмотри доступные. + +### Создание связи вручную + +Производится через панель инфтерфейс в форме устройства [ManagedObject](). Для этого выбираем интерфей текущего устройство и указываем интерфейс соседа, с которым будет создана связь. + + + +### Создание связи на основе протоколов соседства + +Для автоматического построения связи можно воспользоваться информацией о соседях с устройства. +В НОКе поддерживается достаточное большое число протоколов соседства - `LLDP`, `CDP`, ... но основные подходы в их работе не меняются: + +* Устройство должно поддерживать возможность показать список соседей с указанием их интерфейсов +* Идентификатор соседа из списка должен позволять найти устройство в системе +* Идентификатор порта соседа должен позволять найти порт соседа в системе +* В профилях [SA Profile](../../reference/concepts/sa-profile/index.md) устройств должны быть реализованы скрипты для получения информации о соседях + +### Процедура построений связи + +```mermaid + +flowchart TD + discovery_start[Запуск опроса] --> get_lo_neighbor[Запрос соседей с устройства]; + get_lo_neighbor --> find_lo_neighbor[Поиск соседа в Системе]; + find_lo_neighbor --> find_lo_neighbor_cond{Нашли соседа?}; + find_lo_neighbor_cond --> |Да| find_lo_neighbor_ri[Поиск интерфейса соседа в системе]; + find_lo_neighbor_ri --> find_lo_neighbor_ri_cond{Нашли интерфейс соседа?}; + find_lo_neighbor_ri_cond --> |Да| get_ri_neighbor[Запрос соседей соседа]; + get_ri_neighbor --> find_ro_neighbor[Поиск соседей соседа в Системе]; + find_ro_neighbor --> find_ro_neighbor_cond{Нашли текущее устройство?}; + find_ro_neighbor_cond --> |Да| find_ro_neighbor_ri[Поиск интерфейса текущего устройства в системе]; + find_ro_neighbor_ri --> find_ro_neighbor_ri_cond{Нашли локальный интерфейс?}; + find_lo_neighbor_ri_cond --> |Нет| next_condition{Есть ещё соседи?}; + find_lo_neighbor_cond --> |Нет| next_condition; + find_ro_neighbor_ri_cond --> |Нет| find_li_ri_cond{Найденный интерфейс совпадает с локальным?}; + find_ro_neighbor_ri_cond --> |Нет| next_condition; + find_li_ri_cond --> |Да| create_link[/Создать связь/]; + find_li_ri_cond --> |Нет| next_condition; + next_condition --> |Да| find_lo_neighbor; + next_condition --> |Нет| discoveryend[Окончание опроса]; + +``` + +#### Запрос соседей с устройства + +На первом этапе запускается опрос устройства по одному из методов. Система получает список соседей `текущего устройства` (на котором запускается опрос). В списке присутствуют: + +* `Идентификатор соседа` - зависит от протокола. Для случая `LLDP`, это может быть `MAC` адрес или `hostname`. +* `Локальный порт` - порт `текущего устройства`, за которым виден сосед +* `Порт соседа`. Указание за каким портом соседнего устройства видно текущее. Может приходить в виде имени, MAC адреса, или некоторого локального идентификатора (обычно `snmp_index`) + +Пример вывода на примере `LLDP` (для других протоколов он будет другой): + +```json +[ + { + "local_interface": "GigabitEthernet0/0/1", + "neighbors": [ + { + "remote_chassis_id_subtype": 4, + "remote_chassis_id": "00:0E:5E:11:22:77", + "remote_port_subtype": 5, + "remote_port": "port 25", + "remote_port_description": "TRUNK", + "remote_system_name": "782-swc1", + "remote_system_description": "ISCOM2128EA-MA-AC ROS_4.15.1365_20171229(Compiled Dec 29 2017, 15:40:31)", + "remote_capabilities": 4 + } + ] + }, + { + "local_interface": "XGigabitEthernet0/1/1", + "neighbors": [ + { + "remote_chassis_id_subtype": 4, + "remote_chassis_id": "08:19:A6:11:22:88", + "remote_port_subtype": 5, + "remote_port": "XGigabitEthernet0/1/2", + "remote_port_description": "\"link to WAN\"", + "remote_system_name": "70-swc71", + "remote_system_description": "S5328C-EI-24S", + "remote_capabilities": 20 + } + ] + } +] +``` + + +!!! note + Для уменьшения частоты захода на устройства есть возможность настроить кэш соседства + +#### Формирование списка кандидатов + +По полученному списку идентификаторов происходит поиск соседнего устройства [ManagedObject](../../reference/concepts/managed-object/index.md) +и его порта [Interface](../../reference/concepts/interface/index.md). +При успехе пара `текущее устройство -> порт, соседнее устройство -> соседний порт` добавляются в список кандидатов. +После формирования списка кандидатов начинается его проверка - система запрашивает таблицу соседей *соседнего устройства* +и проверяет что за указанным *соседним портом* находится *текущее устройство*. + + +В данном случае возможны следующие ошибки: ... + +#### Построение связи + +В случае подтверждения начинается процедура создания связи (`Link`). +Она регулируется настройкой `Политика при опросе` [Discovery Policy](../../reference/concepts/interface-profile/index.md) в профиле интерфейса (`Interface Profile`). Доступны опции: + +* `Ignored` (Игнорировать) - не создавать связь (`Link`) с этим портом +* `Create New` (Создавать новый) - не создавать связь, если таковая уже есть +* `Replace` (Заменять) - создать связь с портом +* `Cloud` (Облако) - добавть порт к существующей связи (образуется облако) + +Для самой процедуры могут быть следующие варианты: + +* **Новый связь** - когда на обоих интерфейсах отсутствуют линки. Просто создаётся (если не выставлена опция `Ignored`) и заполняется поле `first_discovered` временем создания. +* **Существующая связь** - между интерфейсами уже есть построенный линк. В этом случае происходит обновление поля `last_seen` (время когда система видела линк последний раз) +* **Другой линк** - когда на интерфейсе есть линк и новый ведёт в другую сторону. Если выставлена опция `Create New`, то линк разрываться не будет. Если же перелинковка (`Replace`) разрешена, поведение регулируется `приоритетом метода`. Если линк нашёл более приоритетный метод - он его перестраивает. Если менее, то остаётся построенный более высоким приоритетом. Приоритет выставляется на сегмент в `Профиле сегмента` (`Segment Profile`) + + +!!! note + При создании линка поле `first_discovered` заполняется временем создания. При повторном нахождении обновляется поле `last_seen`. + + + +!!! note + Удаление существующей связи производится если она не обнаружена на соседнем устройстве + +#### Удаление связей + +Если при проверке соседнего устройства текущее не обнаруживается в соседях и между ними есть связь (`Link`), то она разрывается. +При этом, если устройство выведено из эксплуатации или порты перестали быть задействованы, то связь становится *вечной*, +поскольку опрос не может обнаружить её отсутствие: по причине его отключения или отсутствия соседа. Не всегда это может быть удобным. + +Если требуются очищать связи не обновляемые в течении какого-то времени, можно воспользоваться аргументом `ttl_policy` +команды [./noc link](../../../admin/reference/man/link.md). + +### Методы построения связи + +Доступные методы построения линков: + +* Метод - метод построения связи +* Протокол (`Protocol`) - используемый методом протокол определения соседей +* Скрипт (`Script`) - необходимый скрипт в профиле для работы метода +* Возможность (`Capabilities`) необходимая для запуска опроса + + +| Метод | Протокол | Скрипт | Caps | +| --- | --- | --- | --- | +| [CDP](../../../admin/reference/discovery/box/cdp.md) | CDP | [get_cdp_neighbors](../../../dev/reference/scripts/get_cdp_neighbors.md) | `Network CDP` | +| [REP](../../../admin/reference/discovery/box/rep.md) | REP | [get_rep_topology](../../../dev/reference/scripts/get_rep_topology.md) | `Network REP` | +| [LLDP](../../../admin/reference/discovery/box/lldp.md) | LLDP | [get_lldp_neighbors](../../../dev/reference/scripts/get_lldp_neighbors.md) | `Network LLDP` | +| [STP](../../../admin/reference/discovery/box/stp.md) | STP | [get_spanning_tree](../../../dev/reference/scripts/get_spanning_tree.md) | `Network STP` | +| [UDLD](../../../admin/reference/discovery/box/udld.md) | UDLD | [get_udld_neighbors](../../../dev/reference/scripts/get_udld_neighbors.md) | `Network UDLD` | +| [OAM](../../../admin/reference/discovery/box/oam.md) | OAM | [get_oam_status](../../../dev/reference/scripts/get_oam_status.md) | `Network OAM` | +| [BFD](../../../admin/reference/discovery/box/bfd.md) | BFD | [get_bfd_sessions](../../../dev/reference/scripts/get_bfd_sessions.md) | `Network BFD` | +| [FDP](../../../admin/reference/discovery/box/fdp.md) | FDP | [get_fdp_neighbors](../../../dev/reference/scripts/get_fdp_neighbors.md) | `Network FDP` | +| [Huawei NDP (NTDP)](../../../admin/reference/discovery/box/huawei_ndp.md) | Huawei NDP | [get_huawei_ndp_neighbors](../../../dev/reference/scripts/get_huawei_ndp_neighbors.md) | `Network FDP` | +| [LACP](../../../admin/reference/discovery/box/lacp.md) | LACP | [get_lacp_neighbors](../../../dev/reference/scripts/get_lacp_neighbors.md) | `Network LACP` | +| [NRI](../../../admin/reference/discovery/box/nri.md) | - | - | - | +| [ifDesc](../../../admin/reference/discovery/box/ifdesc.md) | - | - | - | +| [xMAC](../../../admin/reference/discovery/box/xmac.md) | - | [get_mac_address_table](../../../dev/reference/scripts/get_mac_address_table.md) | - | + +[Segment](../../../admin/reference/discovery/segment/mac.md) - отдельный метод построения связей на основе таблицы MAC адресов (`FDB`). +В отличие от перечисленных в таблице он строит связи между устройствами одного сегмента и работает по расписанию сегмента. + + +## Расчёт направления вверх + +Обычный граф связности является ненаправленным: все узлы графа разнозначны друг другу. +Но в реальных условиях сети делятся на слабосвязанные между собой кластеры - сегменты [Network Segment](../../reference/concepts/network-segment/index.md). +Связь между кластерами осуществляется через выделенные узлы (обзываются агрегаторы, концентраторы и т.д.). +Информацию важно знать для правильной работы [RCA](../../../glossary.md#rca) - определения причины аварии по топологии. +Если связность кластера проходит через один узел, то её недоступность вызовет недоступность всех узлов кластера. + +В системе есть несколько подходов к вычислению направления вверх (`Uplink`) связи. Рассмотри их подробнее + +### Level + +Положение устройства по отношению к другим. Чем выше уровень, тем важнее устройство для сети. +Устройство выше уровнем текущего является вышестоящим и направление вверх считается через него. +В качестве примера можно указать уровни устройство сети в зависимости от их роли. | Role | Level | | ---------------------- | --------- | @@ -40,3 +267,67 @@ | MPLS PE | 84 | | MPLS P | 86 | | ASBR | 88 | + +### Иерархия сегментов + +В НОКе для устройства обязательно задаётся его сегмент [Network Segment](../../reference/concepts/network-segment/index.md). +Устройства, находящиеся в родительском сегменте по отношению к сегменту устройства, являются вышестоящими и направление вверх считается через них. + +### IP Адрес + +В качестве критерия можно использовать IP адрес устройства. Зачастую, вышестоящим устройствам (шлюзам) +назначают младший или старший IP адрес из диапазона IP сети. Это можно использовать + +## Настройки + +Настройки опроса по методам находятся на вкладке `Box` в разделe топология [Managed Object Profile](../../reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)). +Для активации метода необходимо поставить напротив него галочку. + +Требования по каждому из методов указаны в разделе. Необходимо учитывать следующие требования: + +* L2 связь строится между интерфейсами, по этой причине у устройства должен быть включён опрос инетерфейсов [Interface](../../../admin/reference/discovery/box/interface.md) +* Для запуска методов он должен поддерживаться на устройстве, так что необходимо включить опрос возможностей [Capabilities](../../../admin/reference/discovery/box/caps.md). Для методов `ifDesc`, `xMAC` и `NRI` не требуется. +* Часть методов производят поиск устройств по идентификатору, для них необходимо включить опрос [ID](../../../admin/reference/discovery/box/id.md) + +Помимо настройки опроса необходимо включить метод в приоритете методов. + +### Приоритет методов + +Настройка приоритетов расположена в Профиле сегмента [Network Segment Profile](../../reference/concepts/network-segment-profile/index.md) - `Методы построения топологии`. +Если устройство поддерживает несколько методов построения связи может возникнуть ситуация когда информация +от разных методов отличается. Например по описанию интерфейса (`ifDesc`) связь строится с одним устройством, а по `LLDP` с другим. +В это случае победит метод, расположенный выше по приоритету. + + +!!! note + Если метод отсутствует в списке приоритетов - опрос по нему не проводится + + +После прохождения опроса должны построиться связи. При возникновении ошибок они напишутся в лог. + + +### Кэш соседей + +Для построение связи обязательным условием является её подтверждение с двух сторон. Если у устройства достаточно большое число соседей +процедура подтверждения может привести к повышенной нагрузке (при опросе каждого соседа НОК будет заходить на устройство). +Для облегчения ситуации предусмотрен *Кэш соседей* (`Neighbor cache`). При его включении на указанное время (`TTL`) система +запоминает соседей устройства и при не заходит на него. По истечении времени кэш очищается и при опросе потребуется заход на устройство. + +Настройка расположена в Профиле объекта [Managed Object Profile](../../reference/concepts/managed-object-profile/index.md#Box(Полный_опрос)) +`Управление объектами` (`Service Activation`) -> `Настройки` (`Setup`) -> `Профиль объекта` (`ManagedObject Profile`) на вкладке `Box`. +По умолчанию выставлена в 0, т.е. отключено. Значение больше 0 определяет время в течении которого система **запоминает полученную с устройства информацию** и при поиске соседа обращается к ней, а не к устройству. +Использование соседей из кэша можно увидеть в логе опроса по записи: ` [discovery|box||lldp] Use neighbors cache`. + + +!!! warning + При включённом кэше соседей новые соседи устройства будут увидены системой только после истечения времени запоминания. Это может вводить в заблуждение. + + +## Работа с топологией + +* Схема сегмента +* Ттрассировка пути на верх из карточки +* Расчёт пути [path](../../../dev/reference/api/nbi/path.md) +* Расчёт RCA в авариях +* Отчёты по метрикам с учётом топологии + diff --git a/docs/ru/docs/user/reference/concepts/interface-profile/index.md b/docs/ru/docs/user/reference/concepts/interface-profile/index.md index a2065636f9648c6873427aae5c8eb73545c31faf..2d12702f46e1fa257412448f9195fd094cb302ff 100644 --- a/docs/ru/docs/user/reference/concepts/interface-profile/index.md +++ b/docs/ru/docs/user/reference/concepts/interface-profile/index.md @@ -14,7 +14,7 @@ * **Стиль** (`Style`) - стиль записи в таблице устройств (`Managed Object Grid`), в соответствии с ним оформляется строка в таблице * **События на интерфейсе** (`Link Events`) - действия по событиям `Event` на интерфейсе * Игнорировать `Ignore` - игнорировать события - * Логировать `Log` - логгировать события + * Логировать `Log` - логировать события * Поднимать аварию (`Raise`) - поднимать аварию * **Политика при опросе** (`Discovery Policy`) * Игнорировать (`Ignore`) @@ -23,16 +23,16 @@ * Облако (`Cloud`) * **Вес аварии** (`Alarm Weight`) * **Политика сбора MAC адресов** (`MAC Discovery Policy`) - * `Transit` - собирать MAC адреса на интерфейсе - * `Disable` - не собирать MAC адреса на интерфейсе - * `Management VLAN` - собирать MAC с `Management VLAN` - * (`Direct Downlink`) - (Настройка для `xMac`) порт в сторону оконечного устройства - * (`Chained Downlink`) - (Настройка для `xMac`) порт в сторону промежуточного устройства на пути к конечному + * `Transit` - собирать MAC адреса на интерфейсе (Настройка для опроса [MAC](../../../../admin/reference/discovery/periodic/mac.md)) + * `Disable` - не собирать MAC адреса на интерфейсе (Настройка для опроса [MAC](../../../../admin/reference/discovery/periodic/mac.md)) + * `Management VLAN` - собирать MAC с `Management VLAN` (Настройка для опроса [MAC](../../../../admin/reference/discovery/periodic/mac.md)) + * (`Direct Downlink`) - (Настройка для [xMac](../../../../admin/reference/discovery/box/xmac.md)) порт в сторону соседнего устройства + * (`Chained Downlink`) - (Настройка для [xMac](../../../../admin/reference/discovery/box/xmac.md)) порт в сторону промежуточного устройства на пути к конечному * (`Direct Uplink`) - порт в сторону `Direct Downlink` вышестоящего устройства * (`Cloud Downlink`) - порт в сторону нескольких `Direct Uplink` соединений, образующих облако * **Политика валидации** (`Validation Policy`) - ссылка на политику валидации конфигурации интерфейса (`Interface`) устройства * **Политика соединения LAG <-> physical** (`Allow LAG mismatch`) - разрешить связь (`Link`) агрегированного порта `LAG` к физическому -* **Опрос статуса интерфейса** (`Status Discovery`) - включить опрос статуса на интерфейсе +* **Опрос статуса интерфейса** (`Status Discovery`) - включить опрос статуса [Status Discovery](../../../../admin/reference/discovery/periodic/interfacestatus.md) на интерфейсе * **Уведомление об изменении статуса** (`Status Change Notification`) - ссылка на группу уведомлений, для отправки сообщения об изменении статуса порта (по информации опроса `Interface Status`) * **Пользовательский интерфейс** (`User Interface`) - `UNI`, признак пользовательского интерфейса. Может использовать для выборок пользовательских портов * **Разрешить автоматическую смену сегмента** diff --git a/docs/ru/docs/user/reference/concepts/managed-object-profile/index.md b/docs/ru/docs/user/reference/concepts/managed-object-profile/index.md index 43bfed0cbb8655f64bc6ba1d36b02913c4af7f91..e61205cc68163fe29c2e602d587e29e35b96d203 100644 --- a/docs/ru/docs/user/reference/concepts/managed-object-profile/index.md +++ b/docs/ru/docs/user/reference/concepts/managed-object-profile/index.md @@ -9,7 +9,7 @@ ### Common(Общие) * **Описание** (`Description`) - текстовое пояснение -* **Уровень** (`Level`) - числовое обозначение положения устройства в [топологической (`Topology`)](../../../background/topology/index.md) иерархии +* **Уровень** (`Level`) - числовое обозначение положения устройства в [топологической (`Topology`)](../../../background/topology/index.md#Level) иерархии * **Метки** (`Labels`) - набор [Меток](../label/index.md) профиля * **Стиль** (`Style`) - стиль записи в таблице устройств (`Managed Object Grid`), в соответствии с ним оформляется строка в таблице * **Изображение** (`Shape`) - иконка на топологической карте diff --git a/docs/ru/docs/user/reference/concepts/managed-object/index.md b/docs/ru/docs/user/reference/concepts/managed-object/index.md index 138b28c666ef89d7619fcbe3808c51025f4047e1..48c0fe042eb5079ca9ffe8dd3d1a76ef25deb5c4 100644 --- a/docs/ru/docs/user/reference/concepts/managed-object/index.md +++ b/docs/ru/docs/user/reference/concepts/managed-object/index.md @@ -21,3 +21,21 @@ answering particular question: See [Container](../container/index.md) Managed Object must belong to only one division of particular type + +## Uplinks + +Except in rare cases _Managed Objects_ should have one or more _Paths_ +to upper levels of network (to establish _Connectivity_ with all network) +or to the NOC's probes (to be monitored and managed at all). + +Those paths are called _Uplink Paths_ and all direct _Neighbors_ on the +_Uplink Paths_ are called _Uplinks_. The role of _Uplink_ is to provide +_Connectivity_ for its _Downlink_. For reserved topologies object's _Uplink_ may be +its _Downlink_ at the same time. + +_Uplinks_ are key concept for [RCA](../../../../glossary.md#rca). _Managed Object_ with all unavailable +uplinks looses _Connectivity_ and problem lies somewhere on the _Uplink Paths_. + +NOC perform automatic uplinks calculation on topology changes. The proccess +can be configured via [Network Segment Profiles](../network-segment-profile/index.md) +[Uplink Policy](../network-segment-profile/index.md#uplink-policy) setting. diff --git a/docs/ru/mkdocs.yml b/docs/ru/mkdocs.yml index b2e7f602865587154656e0bddf33da5617e189ce..420a74e056bbc1a886372f7ec1bdfc1fabf3add7 100644 --- a/docs/ru/mkdocs.yml +++ b/docs/ru/mkdocs.yml @@ -7,6 +7,7 @@ edit_uri: -/edit/master/docs/ru/docs copyright: 2007-2021, The NOC Project nav: - Home: index.md + - License: doc-license.md - User's Guide: - Overview: user/index.md - Get Started: @@ -14,9 +15,12 @@ nav: - How-to Guides: - Overview: user/howto/index.md - Loading GIS data with etl command: user/howto/fias/index.md + - FIAS Codes: user/howto/fias/fias_region_codes.md + - OKTMO Codes: user/howto/fias/oktmo_region_codes.md - Background: - Обзор: user/background/index.md - Работа с конфигурацией оборудования: user/background/configuration-management/index.md + - Работа с топологией: user/background/topology/index.md - Reference: - Overview: user/reference/index.md - Concepts: @@ -1420,6 +1424,7 @@ nav: - Huawei NDP: admin/reference/discovery/box/huawei_ndp.md - NRI: admin/reference/discovery/box/nri.md - HouseKeeping: admin/reference/discovery/box/hk.md + - xMAC: admin/reference/discovery/box/xmac.md - Periodic Discovery: - Overview: admin/reference/discovery/periodic/index.md - interfacestatus: admin/reference/discovery/periodic/interfacestatus.md