{{ picto_ipdiscoverydatamodel.png}}
====== IP Discovery Data model ======
---- dataentry summary ----
name : IP Discovery Data model
description_wiki : Models IP Discovery Applications that drive the usage of the IP Discovery Data collector
index_hidden : yes
level_hidden : 1
collector_hidden : no
version : 3.2.0
release_dt : 2024-06-26
TeemIp : 3.1+
iTop : 3.1+
code : teemip-ip-discovery
localization : English, French, German
state : stable
diffusion_hidden : TeemIp wiki
product_hidden : Included
module-lists_hidden :
keyword_tags : discovery, ping, lookup, scan
dependencies_s : teemip-ip-mgmt, teemip-ipv6-mgmt, teemip-network-mgmt
download_wiki : [[https://sourceforge.net/projects/teemip/files/teemip%20-%20extensions/IP%20Discovery/IP%20Discovery%20-%20Extension/3.2.0/teemip-ip-discovery-3.2.0-304.zip/download|teemip-ip-discovery-3.2.0-304.zip]]
github_wiki : [[https://github.com/TeemIp/teemip-ip-discovery|teemip-ip-discovery]]
php-max : 8.3
----
TeemIp IP Discovery Data model represents the TeemIp side of TeemIp IP Discovery solution. It defines the discovery parameters and allows discovery results to be fed back and displayed.
Vocabulary: by "TeemIp solution" or "TeemIP", it should be understood: TeemIp standalone or the iTop solution on top of which TeemIp as a module has been installed.
===== Revision History =====
^ Version ^ Release Date ^ Status ^ iTop \\ Min ^ IPAM for iTop \\ Min ^ Comments ^
| **3.2.0** | 2024-06-26 | Supported | 3.1.0 | 3.1.0 | - Adds the item 'discovered' to the status list of IPObject class |
| 3.1.1 | 2023-12-11 | Supported | 3.0.0 | 3.0.0 | - Add Chinese (simplified) translation |
| 3.1.0 | 2023-06-21 | Obsolete | 3.0.0 | 3.0.0 | - XML structure has moved to 3x |
| 3.0.1 | 2022-09-01 | Obsolete | 2.7.0 | 2.7.1 | - Adopt 3.x icon style \\ - Report number of discovered IPs at subnet level \\ - Allow DHCP ranges to be skipped during discovery \\ - Explode FQDN of discovered IPs into short name and domain name |
| 1.0.0 | 2021-04-01 | Obsolete | 2.7.0 | 2.7.1 | - Align extension structure with new guidelines |
| 0.6.0 | 2020-10-20 | Obsolete | 2.6.0 | 2.5.0 | - Enhance discovery reporting - consider "connection refused" for scans |
| 0.5.1 | 2020-04-14 | Obsolete | 2.6.0 | 2.5.0 | - Move IP Application menu under the new Tools shortcut |
| 0.4.0 | 2019-10-11 | Obsolete | 2.6.0 | 2.5.0 | - Enable / disable discovery of subnet attached to an IP Discovery application |
| 0.3.0 | 2019-08-29 | Obsolete | 2.5.0 | 2.4.0 | - Move generic methods to IP Application level |
| 0.2.2 | 2019-02-09 | Obsolete | 2.5.0 | 2.4.0 | - Initial production release |
===== Features =====
TeemIp IP Discovery provides a solution to TeemIp administrators to discover or scan their IP networks and to document within TeemIp the results of these discoveries and scans.
The solution is made of 2 components:
* a [[collectors:teemip-ip-discovery-collector|discovery engine]], called the IP Discovery Data collector or the IP Discovery Application, that discovers IPs through pings, DNS reverse lookups and port scanning,
* a [[extensions:teemip-ip-discovery|TeemIp extension]], called the IP Discovery Data model, that adapts TeemIp's standard data model to store the discovery outputs and enables communication between a TeemIp instance and the different discovery engines deployed on the network.
{{ ipdiscoveryprinciples3x.png?0x550 }}
The IP Discovery extension, which is described in this page, is installed on a TeemIp instance. It models the IP Discovery applications that are connected to TeemIp and display the output provided by these applications.
Each instance of a remote IP Discovery Application defines:
* what discovery method to use (ping and / or IP lookup and / or port scanning),
* what subnets to discover.
A given subnet can only be discovered by one remote application and the functions to be used for its discovery can be restricted: ie deny ping, IP lookup or scan if these have been enabled globally.
===== Licensing =====
TeemIp IP Discovery extension is licensed under the terms of the GNU Affero General Public License Version 3 as published by the Free Software Foundation. This gives you legal permission to copy, distribute and/or modify TeemIp IP Discovery under certain conditions. Read the ’license.txt’ file in the distribution. TeemIp IP Discovery is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
The nice binocular icon attached to the IP Discovery Application in TeemIp has been found on [[https://www.iconfinder.com/|IconFinder]] and [[http://http://www.icons-land.com/|Icons Land]].
===== Limitations =====
Discovery of IPv6 networks is not handled at this stage.
===== Requirements =====
The extension doesn't require anything more than what is necessary to install and run TeemIp.
===== Installation =====
When adding the extension on an TeemIp standalone or iTop application, just use the [[https://wiki.openitop.org/doku.php?id=extensions:installation|standard installation process]].
===== Configuration =====
No specific configuration is required in TeemIp's configuration file or in IP configs for that extension.
===== IP Objects =====
The extension adds a new value to the **Status** attribute of IP Objects: **Discovered**. This enables objects that are newly identified by the [[collectors:teemip-ip-discovery-collector|IP Discovery Data Collector]] to be reported with a status that is different from the standard ones (Reserved, Allocated, Unassigned and Released).
* The status to be set at discovery time is defined in the data collector itself.
* Because it is defined at the IP Object level, the Discovered status can be used by all Blocks, Subnet, Ranges and Addresses classes.
===== IP Discovery menu =====
Once installed, the extension will alter the IP Management menu by adding a sub menu group under the Tools section.
{{ details_menu_ipdiscovery3x.png?0x700 }}
==== IP Discovery menu ====
It provides statistics on IP addresses and discovery results.
{{ ipdiscovery_dashboard3x.png }}
Clicking on the count figure next to an IP Discovery application provides the list of subnets discovered by the given application.
==== Listing IP Discovery applications ====
The IP Discovery applications shorcut displays all the applications that belong to the selected organization.
{{ classlist_ipdiscovery3x.png }}
===== IP Discovery applications =====
{{icons8-binoculars-48.png }}
These objects define the remote applications that actually perform the discovery work. They enable these remote applications to communicate with TeemIp, list the subnets to be discovered and define how they should be discovered.
==== Properties ====
^ Name ^ Type ^ Mandatory? ^
| **General Information** |||
| Name | Alphanumeric string | Yes |
| Organization | Foreign key to a(n) Organization | Yes |
| Status | Possible values: implementation, production, obsolete | No |
| Business criticality | Possible values: medium, high, low | No |
| Location | Foreign key to a(n) Location | No |
| Description | Multiline character string | No |
| Requestor | Foreign key to a(n) Person | No |
| Move to production date | Date (year-month-day) | No |
| UUID | Alphanumeric string | Read Only |
| **Operations** ||
| DHCP ranges discovery enabled | Possible values: yes, no | No |
| Last discovery date | Date (year-month-day hours:minutes:seconds) | Read Only |
| Duration | Time ( hours:minutes:seconds) | Read Only |
| **Ping Function** |||
| Ping enabled | Possible values: yes, no| No |
| Ping timeout (s) | Integer | No |
| **IP lookup Function** |||
| IP lookup enabled | Possible values: yes, no| No |
| DNS server #1 | Alphanumeric string | No |
| DNS server #2 | Alphanumeric string | No |
| **Scan Function** |||
| Scan enabled | Possible values: yes, no| No |
| Port number | Integer | No |
| Protocol | Possible values: tcp, udp, both | No |
| Scan timeout (s) | Integer | No |
| Consider "connection refused" as valid | Possible values: yes, no| No |
==== Tabs ====
^ Tab ^ Description ^
| Contacts | All the contacts for this application |
| Documents | All the documents linked to this object |
| Managed IPv4 subnets | All the IPv4 subnets that the application must discover |
==== Creating a new IP Discovery application ====
From the listing view, click on the “New…” menu to display the creation form.
{{ classcreate_ipdiscovery3x.png }}
* UUID attribute uniquely identifies the remote IP Discovery application and must be unique across TeemIp, regardless the organization it belongs to. UUID is automatically generated by TeemIp when the application is created.
* Ping, IP Lookup and Scan functions can be enabled or disabled globally for the application. If enabled, these function can be disabled individually for each subnets to be scanned.
* DNS Server #1 and #2 can either be an IP address or a domain name.
For a given Discovery Application, the UUID defined in TeemIp MUST match the discovery_application_uuid parameter defined in the configuration file of the remote application.
===== Subnets =====
{{icons8-subnet-48.png }}
The extension enhances the IP Subnet datamodel so that an IP discovery application can look after them. For that purpose, the following attributes are added:
==== Properties ====
^ Name ^ Type ^ Mandatory? ^
| **Discovery: application parameters** |||
| IP Discovery application | Foreign key to a(n) IP Discovery application | No |
| IP discovery DHCP ranges discovery enabled | Possible values: yes, no | Read only |
| IP discovery ping enabled | Foreign attribute of the application | Read only |
| IP discovery IP lookup enabled | Foreign attribute of the application | Read only |
| IP discovery scan enabled | Foreign attribute of the application | Read only |
| IP discovery considers scan "connection refused" as valid | Foreign attribute of the application | Read only |
| **Discovery: subnet parameters** |||
| Discovery activated | Possible values: yes, no | No |
| DHCP ranges discovery enabled for subnet | Possible values: yes, no | No |
| Ping enabled for subnet | Possible values: yes, no | No |
| IP lookup enabled for subnet | Possible values: yes, no | No |
| Scan enabled for subnet | Possible values: yes, no | No |
| Considers scan "connection refused" as valid | Possible values: yes, no | No |
| **Discovery: statistics** |||
| Last discovery date | Date and time (year-month-day hh:mm:ss) | Read only |
| Ping duration | Time it took to ping the subnet | Read only |
| Ping # | Number of IPs discovered by ping | Read only |
| IP lookup duration | Time it took to lookup the whole subnet | Read only |
| IP lookup # | Number of IPs discovered by IP lookup | Read only |
| Scan duration | Time it took to scan the whole subnet | Read only |
| Scan # | Number of IPs discovered by scan | Read only |
==== Details of an IPv4 subnet ====
IP discovery attributes alter the subnet detailed page as follows:
{{ classdetails_ipv4subnet3x_ipdiscovery.png }}
The 3 attributes Ping, IP lookup and Scan enabled for subnet may change the way the subnet's IP discovery application will discover the subnet:
* If one of these 3 discovery functions is enabled at the application level, it may be denied at the subnet level.
* However, if a function is disabled at the application level, it cannot be enabled at the subnet one.
Though attached to a discovery application, you may activate or deactivate the subnet's discovery with the parameter "Discovery activated".
===== View results in TeemIp =====
The IP Discovery Module alters the standard TeemIp datamodel so that discovery results can be visualized at both the subnet and the IP address levels.
==== Subnets ====
From the detailed display of a subnet, selecting 'List & Pick' under 'Other Actions' menu will show:
{{ classlistips_ipv4subnet_ipdiscovery3x.png }}
The following image may appear next to each IP of the subnet:
* {{ipmini-ping-xs.png}} indicates that an IP pings,
* {{ipmini-scan-xs.png}} indicates that an answer is received when IP is scanned,
* {{ipmini-lookup-xs.png}} indicates that a DNS entry exists for that IP and DNS output is provided just after the icon.
These flags reflects the latest status provided by the remote application. If an IP was pinging in the past and if the latest discovery finds out that this IP doesn't ping anymore, then the ping image will not be shown anymore.
Discovery flags ({{ipmini-ping-xs.png}}, {{ipmini-scan-xs.png}}, {{ipmini-lookup-xs.png}}) will never appear next to an IP that doesn't exist within TeemIp. This is due to the default behaviour of the application: newly discovered IPs that don't exist in TeemIp are automatically created with the status "**unassigned**".
==== IP Addresses ====
{{icons8-rj45-48.png }}
The IP Discovery Module alters as well the IPAddress datamodel so that discovery informations related to IP addresses can be displayed at their level. The following attributes are added:
=== Properties ===
^ Name ^ Type ^ Can be edited? ^
| **Discovery Information** |||
| IP Discovery application name | Alphanumeric string | Read only |
| Last date of discovery | Date (year-month-day hours:minutes:seconds) | Read only |
| Responds to ping | Possible values: yes, no | Read only |
| Responds to IP lookup| Possible values: yes, no | Read only |
| FQDN from IP lookup |Alphanumeric string | Read only|
| Responds to scan | Possible values: yes, no | Read only |
=== Details of an IP address ===
IP discovery attributes alter the address details screen as follows:
{{ classdetails_ipv4address_ipdiscovery3x.png }}
* The IP discovery application is inherited from the subnet that that IP belongs to.
* All IP discovery parameters are, of course, **read only** as they are the result of the discovery process.
=== Explode discovered FQDN ===
In the case where IP lookup has been enabled for a subnet, discovery operations may return FQDN for IPs and it may happen that these FQDNs differs from the registered one. In such case, the "Other Actions" menu offers the possibility to explode this FQDN into a short name and a domain name and to register them as IP attributes. This action is highlighted in the red circle of the image above.
When the action is launched, TeemIp will try to best match a registered domain name within the FQDN. If found, the preceding characters in the FQDN will be considered as the IP's short name, as long as it complies with the hostname format. Our above example will give:
{{ classdetails_ipv4address_ipdiscovery3x_nomenu.png }}
* The **Explode discovered FQDN** menu is available at Subnet, IP range and IP levels... as long as the IP Lookup has been authorized in the discovery parameters of the related subnet.
* When applied at Subnet or IP range level, all IPs contained in them will have their discovered FQDN exploded, if feasible.
The **Explode discovered FQDN** menu will not appear if there is no domain name that can match with the discovered FQDN !