Enhanced Linkd (Enlinkd) has been designed to discover connections between nodes using data generated by various link discovery protocols and accessible via SNMP. Enlinkd gathers this data on a regular interval and creates a snapshot of a device’s neighbors from its perspective. The connections discovered by Enlinkd are called Links. The term Link, within the context of Enlinkd, is not synonymous with the term "link" when used with respect to the network OSI Layer 2 domain, whereby a link only indicates a Layer 2 connection. A Link in context of Enlinkd is a more abstract concept and is used to describe any connection between two OpenNMS HORIZON Nodes. These Links are discovered based on information provided by an agent’s understanding of connections at the OSI Layer 2, Layer 3, or other OSI layers.

The following sections describe the Enlinkd daemon and its configuration. Additionally, the supported Link discovery implementations will be described as well as a list of the SNMP MIBs that the SNMP agents must expose in order for EnLinkd to gather Links between Nodes. FYI: Detailed information about a node’s connections (discovered Links) and supporting link data can be seen on the Node detail page within the OpenNMS HORIZON Web-UI.

Enlinkd Daemon

Essentially Enlinkd asks each device the following question: "What is the network topology from your point of view". From this point of view this will only provide local topology discovery features. It does not attempt to discover global topology or to do any correlation with the data coming from other nodes.

For large environments the behavior of Enlinkd can be configured. During the Link discovery process informational and error output is logged to a global log file.

Table 1. Global log and configuration files for Enlinkd
File Location Description

enlinkd-configuration.xml

$OPENNMS_HOME/etc

Global configuration for the daemon process

enlinkd.log

$OPENNMS_HOME/logs

Global Enlinkd log file

log4j2.xml

$OPENNMS_HOME/etc

Configuration file to set the log level for Enlinkd

Configuration file for Enlinkd
<?xml version="1.0" encoding="ISO-8859-1"?>
<enlinkd-configuration threads="5"
                     initial_sleep_time="60000"
                     rescan_interval="86400000"
                     use-cdp-discovery="true"
                     use-bridge-discovery="true"
                     use-lldp-discovery="true"
                     use-ospf-discovery="true"
                     use-isis-discovery="true"
                     />
Table 2. Descriptione for global configuration parameter
Attribute Type Default Description

threads

Integer

5

Number of parallel threads used to discover the topology.

initial_sleep_time

Integer

60000

Time in milliseconds to wait for discovering the topology after OpenNMS HORIZON is started.

rescan_interval

Integer

86400000

Interval to rediscover and update the topology in milliseconds.

use-cdp-discovery

Boolean

true

Enable or disable topology discovery based on CDP information.

use-bridge-discovery

Boolean

true

Enable or disable algorithm to discover the topology based on the Bridge MIB information.

use-lldp-discovery

Boolean

true

Enable or disable topology discovery based on LLDP information.

use-ospf-discovery

Boolean

true

Enable or disable topology discovery based on OSPF information.

use-isis-discovery

Boolean

true

Enable or disable topology discovery based on IS-IS information.

If multiple protocols are enabled, the links will be discovered for each enabled discovery protocol. The topology WebUI will visualize Links for each discovery protocol. For example if you start CDP and LLDP discovery, the WebUI will visualize a CDP Link and an LLDP Link.