New in version 2017.7.0.
A runner to find network details easily and fast. It's smart enough to know what you are looking for.
Minion (proxy) config
To have the complete features, one needs to add the following mine configuration in the minion (proxy) config file:
mine_functions: net.ipaddrs: [] net.lldp: [] net.mac: [] net.arp: [] net.interfaces: []Which instructs Salt to cache the data returned by the NAPALM-functions. While they are not mandatory, the less functions configured, the less details will be found by the runner.
How often the mines are refreshed, can be specified using:
mine_interval: <X minutes>
Master config
By default the following options can be configured on the master. They are not necessary, but available in case the user has different requirements.
- target:
*
From what minions will collect the mine data. Default:
*
(collect from all minions).- expr_form:
glob
Minion matching expression form. Default:
glob
.- ignore_interfaces
A list of interfaces name to ignore. By default will consider all interfaces.
- display:
True
Display on the screen or return structured object? Default:
True
(return on the CLI).- outputter:
table
Specify the outputter name when displaying on the CLI. Default:
table
.Configuration example:
runners: net.find: target: 'edge*' expr_form: 'glob' ignore_interfaces: - lo0 - em1 - jsrv - fxp0 outputter: yaml
Search in all possible entities (Interfaces, MAC tables, ARP tables, LLDP neighbors), using the following mine functions:
net.mac
net.arp
net.lldp
net.ipaddrs
net.interfaces
This function has the advantage that it knows where to look, but the output might become quite long as returns all possible matches.
Optional arguments:
True
Return only the best match with the interfaces IP networks when the saerching pattern is a valid IP Address or Network.
True
Display on the screen or return structured object? Default: True
(return on the CLI).
CLI Example:
$ sudo salt-run net.find 10.10.10.7
Output Example:
Details for all interfaces that include network 10.10.10.7/32 - only best match returned
________________________________________________________________________________________________________________________
| Device | Interface | Interface Description | UP | Enabled | Speed [Mbps] | MAC Address | IP Addresses |
________________________________________________________________________________________________________________________
| edge01.flw01 | irb | | True | True | -1 | 5C:5E:AB:AC:52:B4 | 10.10.10.1/22 |
________________________________________________________________________________________________________________________
ARP Entries for IP 10.10.10.7
_____________________________________________________________________________
| Device | Interface | MAC | IP | Age |
_____________________________________________________________________________
| edge01.flw01 | irb.349 [ae0.349] | 2C:60:0C:2A:4C:0A | 10.10.10.7 | 832.0 |
_____________________________________________________________________________
Search for entries in the ARP tables using the following mine functions:
net.arp
Optional arguments:
Return interface data from a certain device only.
Return data selecting by interface name.
Search using a specific MAC Address.
Search using a specific IP Address.
True
Display on the screen or return structured object? Default: True
, will return on the CLI.
CLI Example:
$ sudo salt-run net.findarp mac=8C:60:0F:78:EC:41
Output Example:
ARP Entries for MAC 8C:60:0F:78:EC:41
________________________________________________________________________________
| Device | Interface | MAC | IP | Age |
________________________________________________________________________________
| edge01.bjm01 | irb.171 [ae0.171] | 8C:60:0F:78:EC:41 | 172.172.17.19 | 956.0 |
________________________________________________________________________________
Search in the MAC Address tables, using the following mine functions:
net.mac
Optional arguments:
Return interface data from a certain device only.
Return data selecting by interface name.
Search using a specific MAC Address.
Search using a VLAN ID.
True
Display on the screen or return structured object? Default: True
, will return on the CLI.
CLI Example:
$ sudo salt-run net.findmac mac=8C:60:0F:78:EC:41
Output Example:
MAC Address(es)
_____________________________________________________________________________________________
| Device | Interface | MAC | VLAN | Static | Active | Moves | Last move |
_____________________________________________________________________________________________
| edge01.bjm01 | ae0.171 | 8C:60:0F:78:EC:41 | 171 | False | True | 0 | 0.0 |
_____________________________________________________________________________________________
Search for interfaces details in the following mine functions:
net.interfaces
net.ipaddrs
Optional arguments:
Return interface data from a certain device only.
Return data selecting by interface name.
Return interfaces that contain a certain pattern in their description.
Return interfaces whose IP networks associated include this IP network.
True
When ipnet
is specified, this argument says if the runner should return only the best match
(the output will contain at most one row). Default: True
(return only the best match).
Display on the screen or return structured object? Default: True
(return on the CLI).
Display a custom title for the table.
CLI Example:
$ sudo salt-run net.interfaces interface=vt-0/0/10
Output Example:
Details for interface xe-0/0/0
_________________________________________________________________________________________________________________
| Device | Interface | Interface Description | UP | Enabled | Speed [Mbps] | MAC Address | IP Addresses |
_________________________________________________________________________________________________________________
| edge01.bjm01 | vt-0/0/10 | | True | True | 1000 | | |
_________________________________________________________________________________________________________________
| edge01.flw01 | vt-0/0/10 | | True | True | 1000 | | |
_________________________________________________________________________________________________________________
| edge01.pos01 | vt-0/0/10 | | True | True | 1000 | | |
_________________________________________________________________________________________________________________
| edge01.oua01 | vt-0/0/10 | | True | True | 1000 | | |
_________________________________________________________________________________________________________________
Search in the LLDP neighbors, using the following mine functions:
net.lldp
Optional arguments:
Return interface data from a certain device only.
Return data selecting by interface name.
Return LLDP neighbors that have contain this pattern in one of the following fields:
Remote Port ID
Remote Port Description
Remote System Name
Remote System Description
Search using a specific Chassis ID.
True
Display on the screen or return structured object? Default: True
(return on the CLI).
True
Display on the screen or return structured object? Default: True
(return on the CLI).
Display a custom title for the table.
CLI Example:
$ sudo salt-run net.lldp pattern=Ethernet1/48
Output Example:
Pattern "Ethernet1/48" found in one of the following LLDP details
_________________________________________________________________________________________________________________________________________________________________________________________
| Device | Interface | Parent Interface | Remote Chassis ID | Remote Port ID | Remote Port Description | Remote System Name | Remote System Description |
_________________________________________________________________________________________________________________________________________________________________________________________
| edge01.bjm01 | xe-2/3/4 | ae0 | 8C:60:4F:3B:52:19 | | Ethernet1/48 | edge05.bjm01.dummy.net | Cisco NX-OS(tm) n6000, Software (n6000-uk9), |
| | | | | | | | Version 7.3(0)N7(5), RELEASE SOFTWARE Copyright |
| | | | | | | | (c) 2002-2012 by Cisco Systems, Inc. Compiled |
| | | | | | | | 2/17/2016 22:00:00 |
_________________________________________________________________________________________________________________________________________________________________________________________
| edge01.flw01 | xe-1/2/3 | ae0 | 8C:60:4F:1A:B4:22 | | Ethernet1/48 | edge05.flw01.dummy.net | Cisco NX-OS(tm) n6000, Software (n6000-uk9), |
| | | | | | | | Version 7.3(0)N7(5), RELEASE SOFTWARE Copyright |
| | | | | | | | (c) 2002-2012 by Cisco Systems, Inc. Compiled |
| | | | | | | | 2/17/2016 22:00:00 |
_________________________________________________________________________________________________________________________________________________________________________________________
| edge01.oua01 | xe-0/1/2 | ae1 | 8C:60:4F:51:A4:22 | | Ethernet1/48 | edge05.oua01.dummy.net | Cisco NX-OS(tm) n6000, Software (n6000-uk9), |
| | | | | | | | Version 7.3(0)N7(5), RELEASE SOFTWARE Copyright |
| | | | | | | | (c) 2002-2012 by Cisco Systems, Inc. Compiled |
| | | | | | | | 2/17/2016 22:00:00 |
_________________________________________________________________________________________________________________________________________________________________________________________
Execute multiple search tasks. This function is based on the find function. Depending on the search items, some information might overlap.
Optional arguments:
True
Return only the best match with the interfaces IP networks when the saerching pattern is a valid IP Address or Network.
True
Display on the screen or return structured object? Default: True (return on the CLI).
CLI Example:
$ sudo salt-run net.multi_find Ethernet1/49 xe-0/1/2
Output Example:
Pattern "Ethernet1/49" found in one of the following LLDP details
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Device | Interface | Parent Interface | Remote Chassis ID | Remote Port Description | Remote Port ID | Remote System Description | Remote System Name |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| edge01.oua04 | xe-0/1/2 | ae1 | DE:AD:BE:EF:DE:AD | Ethernet1/49 | | Cisco NX-OS(tm) n6000, Software (n6000-uk9) | edge07.oua04.dummy.net |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Details for interface xe-0/1/2
-----------------------------------------------------------------------------------------------------------------------
| Device | Interface | Interface Description | IP Addresses | Enabled | UP | MAC Address | Speed [Mbps] |
-----------------------------------------------------------------------------------------------------------------------
| edge01.oua04 | xe-0/1/2 | ae1 sw01.oua04 | | True | True | BE:EF:DE:AD:BE:EF | 10000 |
-----------------------------------------------------------------------------------------------------------------------
LLDP Neighbors for interface xe-0/1/2
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Device | Interface | Parent Interface | Remote Chassis ID | Remote Port Description | Remote Port ID | Remote System Description | Remote System Name |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| edge01.oua04 | xe-0/1/2 | ae1 | DE:AD:BE:EF:DE:AD | Ethernet1/49 | | Cisco NX-OS(tm) n6000, Software (n6000-uk9) | edge07.oua04.dummy.net |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------