Skip to content
Oliver Gorwits edited this page Oct 27, 2020 · 8 revisions

Introduction

This page helps explain the many expiry settings which are available in Netdisco configuration, and how they work together.

Description of the Process

When a node (end system such as a workstation or printer) disappears from a port on your network, Netdisco first works out whether it has gone completely or if it has moved to another device (switch) port.

If the node reappears elsewhere, its old entry (port mapping) is "archived" and a new record created for its new location. You can ask to see archived records in the web interface when searching for nodes or viewing device ports.

Similarly, if the node disappears completely from the network and a different one replaces it on the port, the node record is also archived.

However, if the node disappears but is not replaced, Netdisco’s behaviour is to allow it to remain active and in place on the port. This is because the node might just be snoozing (switched off), and Netdisco is only able to track the active nodes.

According to configration, archived or disappeared nodes are eventually removed from the database to save space. The settings described below will control the time when archiving takes place (or not) and the time when deletion (known as expiry) takes place.

One complication is that Netdisco tracks nodes separately from IP addresses, because of course a node may have multiple addresses, and the addresses may also move between nodes (such as with DHCP).

Similarly to nodes, when an IP address moves between hosts, the old MAC-IP record is marked as archived, and then after some more time, removed from the database.

Configuration Settings

node_freshness

(number of minutes)

This setting is all about the "snoozing" nodes - how long a node is assumed to still be on a vacant port when it’s no longer in the network device (switch) tables.

The default behaviour (set to "0") is to keep the node alive/active on the port until the expire_nodes time is reached. This means they skip the "archive" state and are removed from the database after expire_nodes days.

One other common value for this setting is the same number of minutes as the macsuck job interval (60). It means if a node isn’t seen during macsuck it is immediately "archived". The record is finally removed from the database after expire_nodes_archive days.

expire_nodes

After this number of days without being refreshed, a node record in the database will be deleted. The record may be for an active node (if "snoozing") or for an archived node entry.

The default configuration is 90 days of "snoozing" active nodes (and also cleans up any archived records which were not captured by expire_nodes_archive).

expire_nodes_archive

After this number of days, archived nodes and their associated IP address mappings are deleted from the database.

The default configuration is 60 days of archive records.

expire_nodeip_freshness

(number of days)

Sometimes it happens that a node uses one IP address and then later on, another address is used. For example a laptop moving around on campus and accessing different DHCP pools.

In this case, the first MAC-IP mapping stored by netdisco needs to be archived and the second is active. After some time, that first mapping also needs to be removed from the database - even if the node is still active using another IP.

The default for this setting is indeed to remove that first MAC-IP mapping, based on the expire_nodes or expire_nodes_archive times (whichever is reached first).

However you can also set this to "0" which means all MAC-IP mappings for the node will hang around as long as the node is also in the database. You could also have a middle ground, setting to something longer than standard node expiry but shorter than "forever" (0).

It’s a necessary setting for auditing (NAT logs, for example) but will result in a large database size, so take care.

expire_devices

Devices that have not been refreshed in this number of days will be removed. All nodes connected to this device will also be removed (NOT archived).

expire_jobs

Jobs which entered the job queue more than this many days ago will be removed from the queue during the scheduled expiry job (regardless of whether they were ever run).

expire_userlog

Logs of user activity (kept in the database) older than this number of days will be deleted during the scheduled expiry job.

Clone this wiki locally