Device discovery in a network environment

According to one configuration, during a first phase of discovery, a discovery engine (such as computer processor hardware and/or software) generates communications to multiple network addresses to detect presence of multiple network devices in a network. During a second phase discovery, such as subsequent to detecting the presence of the network devices, the discovery engine communicates with each of the detected network devices to learn of respective interconnectivity amongst the network devices. The discovery engine derives network topology information based on the detected presence and learned interconnectivity of the network devices. The network topology information indicates attributes and interconnectivity of the multiple network devices. The discovery engine stores the network topology information in a repository. The network topology information can be used for any suitable reason such as tracking an inventory of network devices, auditing of network devices, fault analysis of network devices, etc.

BACKGROUND

Conventional techniques of discovering network devices and respective network topology have advanced over the years. For example, the SNMP (Simple Network Management Protocol) is an application—layer protocol for exchanging management information between network devices. It is a part of the Transmission Control Protocol/Internet Protocol (TCP/IP) protocol suite.

In general, SNMP is a widely implemented protocol to manage and monitor network elements. An SNMP agent is a program that is packaged within a network element. The SNMP agent performs operations such as collecting management information about its local environment, storing and retrieving management information, signaling events to a corresponding manager, etc.

BRIEF DESCRIPTION OF EMBODIMENTS

There are deficiencies associated with conventional ways of collecting management information. For example, conventional collection of management information such as using SNMP agents and managers provides only limited details of a network and corresponding interconnected devices.

Embodiments herein provide novel ways of providing enhanced discovery of network devices and corresponding attributes.

More specifically, in accordance with other embodiments, during a first phase of discovery, a discovery engine (such as computer processor hardware and/or software) generates communications to each network address in a range of multiple network addresses to detect presence of multiple network devices assigned a respective address within the monitored range. The discovery engine initially may or may not be aware of which network addresses in the range are assigned to a respective network devices in the network. Based on first phase discovery and respective responses, the discovery engine tracks which, if any, network devices are present in the network environment. In certain instances, the discovery engine has access to configuration information indicating devices known to be present in a network being discovered. In such an instance, the configuration information serves as a good starting point from which to discover other network devices or confirm attributes of those devices already known to be present in a network.

During a second phase of discovery, such as subsequent to detecting the presence of the network devices, the discovery engine communicates with each of the detected network devices to learn of additional information such as respective interconnectivity amongst the network devices. For example, in one embodiment, the discovery engine derives network topology information based on the detected presence (of network devices) and learned interconnectivity of the network devices.

In one embodiment, the discovery engine or other suitable resource generates the network topology information to indicate attributes and interconnectivity of the multiple network devices.

In accordance with further embodiments, during the first phase of discovery, for each respective network address in the range, the discovery engine transmits communications to multiple different socket port numbers of the respective address being tested to learn of attributes associated with a corresponding network device assigned the respective network address. Via the communications to the different socket port numbers, the discovery engine tracks which of the network addresses in the range are assigned to corresponding network devices in the network as well as respective services provided by the network devices is learned from communicating with different socket port numbers.

In accordance with further embodiments, during the second phase of discovery, for each tracked network address assigned to a corresponding network device, the discovery engine communicates with the corresponding network device to retrieve respective connectivity data indicating interconnectivity of the corresponding network device amongst the multiple network devices. In one embodiment, the respective connectivity data indicates physical port-to-port connectivity of the corresponding network device to at least one other network device in the network.

As a further example of first phase discovery, the discovery engine communicates with a first network device in the network to learn of a network address assigned to a second network device communicatively coupled to the first network device; the discovery engine utilizes the network address of the second device to communicate with the second network device to learn of a network address assigned to a third network device communicatively coupled to the second network device; and so on. In this discovery example, the discovery engine produces the network topology information to indicate that the second network device is communicatively coupled to the first network device in response to receiving connectivity data from the first network device that the second network device is communicatively coupled to the first network device; the discovery engine produces the network topology information to indicate that the third network device is communicatively coupled to the second network device in response to receiving connectivity data from the second network device that the third network device is communicatively coupled to the first network device; and so on.

In accordance with further embodiments, subsequent to detecting presence of the multiple network devices and corresponding attributes, as well as generating the network topology information, the discovery engine stores the network topology information in a repository. The network topology information can be used for any suitable reason such as tracking an inventory of network devices in a network, auditing of network devices in a network, fault analysis of network devices and corresponding network, etc.

These and other more specific additional embodiments are disclosed herein as further discussed below.

Any of the resources as discussed herein can include one or more computerized devices, mobile communication devices, servers, base stations, wireless communication equipment, communication management systems, workstations, handheld or laptop computers, or the like to carry out and/or support any or all of the method operations disclosed herein. In other words, one or more computerized devices or processors can be programmed and/or configured to operate as explained herein to carry out the different embodiments as described herein.

One embodiment includes a computer readable storage medium and/or system having instructions stored thereon to facilitate control of a device. The instructions, when executed by computer processor hardware, cause the computer processor hardware (such as one or more processor devices) to: generate communications to a range of multiple network addresses to detect presence of multiple network devices in a network; subsequent to detecting the presence, communicate with each of the multiple network devices to learn of an interconnectivity amongst the multiple network devices; produce network topology information based on the detected presence and learned interconnectivity, the network topology information indicating attributes and interconnectivity of the multiple network devices; and store the network topology information in a repository.

The ordering of the steps above has been added for clarity sake. Note that any of the processing steps as discussed herein can be performed in any suitable order.

As discussed herein, techniques herein are well suited for use in the field of managing a network environment of multiple network elements. However, it should be noted that embodiments herein are not limited to use in such applications and that the techniques discussed herein are well suited for other applications as well.

Also, note that this preliminary discussion of embodiments herein (BRIEF DESCRIPTION OF EMBODIMENTS) purposefully does not specify every embodiment and/or incrementally novel aspect of the present disclosure or claimed invention(s). Instead, this brief description only presents general embodiments and corresponding points of novelty over conventional techniques. For additional details and/or possible perspectives (permutations) of the invention(s), the reader is directed to the Detailed Description section (which is a summary of embodiments) and corresponding figures of the present disclosure as further discussed below.

DETAILED DESCRIPTION AND FURTHER SUMMARY OF EMBODIMENTS

According to one configuration, during a first phase of discovery, a discovery engine (such as computer processor hardware and/or software) generates communications to a range of multiple network addresses to detect presence of multiple network devices in a network environment. During a second phase discovery, such as subsequent to detecting presence of one or more network devices, the discovery engine communicates with each of the detected network devices to learn of additional information such as respective interconnectivity amongst the network devices. In one embodiment, the second phase of discovery requires authentication of the discovery engine to learn of interconnectivity.

Based on the discovered information such as the detected presence and learned interconnectivity of the network devices, the discovery engine derives network topology information. In one embodiment, the network topology information indicates attributes and interconnectivity of the multiple network devices. The discovery engine stores the network topology information in a repository. The network topology information can be used for any suitable reason such as tracking an inventory of network devices, auditing of network devices, fault analysis of network devices, etc. These and additional embodiments are further discussed below.

Now, more specifically,FIG. 1is an example diagram illustrating a network device discovery system according to embodiments herein.

In one embodiment, as its name suggests, the discovery engine140discovers presence of (and configuration attributes of) network devices120in network190. Note that no part, all, or a less-than-all part of a respective network may be discovered prior to the discovery engine140proceeding with further discovery of network190. In other words, in one instance, it may not be pre-known whether any devices are present in a network environment. In such an instance, network discovery is more challenging because no information is available about previously discovered devices or their attributes.

Alternatively, the discovery engine140can be configured to make connections to databases, API's (Application Programming Interfaces), alternate sources, etc., to identify pre-existing connections amongst network devices, learn device attribute information, etc., prior to performing the lower level discovery as further described herein. For example, one or more repositories (potentially disparately located with respect to each other) may store configuration information152indicating devices and corresponding device attribute information of devices previously discovered by the discovery engine140or devices that are known to be present in the network based on information from other sources. Accessing the pre-known discovery information provides the discovery engine140a good starting point from which to perform further discovery of devices and corresponding attributes associated with the network190.

As previously discussed, the discovery engine140can be configured to implement a multi-phase discovery algorithm to identify new devices (and corresponding device attributes) or confirm presence of devices already known to be present in the network190. More specifically, during a first phase of discovery, discovery engine140(such as computer processor hardware and/or software) generates communications to each of multiple network addresses within a network address range to detect presence (and respective attributes) of multiple network devices120within the monitored range.

In one embodiment, via use of a respective network address, the discovery engine140communicates with each of the network devices120to retrieve device attribute information160associated with the network devices120. The discovery engine140stores the device attribute information160in repository180-2.

During a second phase of discovery, such as subsequent to the first phase of detecting the presence of the network devices and communicating with the network devices120to retrieve respective device attribute information160, the discovery engine140communicates with each of the detected network devices120in network190(over a secured communication link) to learn of respective interconnectivity amongst the network devices120. In one embodiment, the second phase of discovery requires authentication of the discovery engine140in order to communicate with the network devices120and learn of the interconnectivity. Based on the information learned during the second phase, the discovery engine140creates respective connectivity information170for storage in repository180-2.

In accordance with further embodiments, the discovery engine140uses the device attribute information160and the connectivity information170to derive network topology information153. In one embodiment, the network topology information153indicates attributes (such as device type, provided services, etc.) and interconnectivity (such as port to port connectivity from one network device to another) of the multiple network devices.

The network topology information153, device attribute information160, connectivity information170, etc., can be used for any suitable purpose.

For example, in one embodiment, such information is used to detect and learn implementation of new services, computers, network components as they appear or become available in the network190. In accordance with further embodiments, such information can be used for taking inventory and classifying the network devices in network190, auditing of network190, performing a fault analysis of network190, etc.

In accordance with further embodiments, the discovery engine140is configured to periodically, occasionally, on demand (that is, in response to receiving a command), etc., perform automated discovery with respect to network devices120.

FIG. 2is an example diagram illustrating a first network device according to embodiments herein.

As shown, the network device120-1is assigned network address 192.168.1.1. Discovery engine140uses the network address 192.168.1.1 as a destination address in which to communicate with the network device120-1. In one embodiment, the network device120-1includes multiple communication interfaces including communication interface220-1and communication interface221-1.

As previously discussed, the discovery engine140communicates with the network device120-1during a first phase to retrieve information such as device attribute information160-1. For example, the discovery engine140communicates a request (addressed to network address 192.168.1.1) to communication interface220-1to retrieve device attribute information160-1. The network device120-1is operable to provide the device attribute information160-1to the discovery engine140without requiring authentication (such as receipt of an appropriate password) of the discovery engine140.

As further discussed below, the discovery engine140attempts communication to one or more Internet socket ports (such as 22, 23, 24, 25, etc.) of the network device120-1to retrieve the device attribute information160-1. For example, in one embodiment, each port of the network device120-1is assigned to provide specific information for a respective service, if available, from the network device120-1.

Accordingly, via communications215-1, the discovery engine140initiates retrieval of the device attribute information160-1from the network device120-1.

As its name suggests, the device attribute information160-1indicates attributes of network device120-1. For example, the network device120-1may be a server, router, switch, terminal computer device, etc. Via retrieval of the device attribute information160-1, the discovery engine140learns of capabilities, device type, and/or services associated with or provided by the network device120-1.

Further in this example embodiment, assume that the discovery engine140retrieves device attribute information160-1indicating that the network device120-1is a router.

During the second portion of discovery, via communications216-1over network190and corresponding authenticated communication session between the discovery engine140and the communication interface221-1, the discovery engine140retrieves connectivity information170-1. In one embodiment, the connectivity information170-1is not available to an inquiring network device unless the respective network device provides appropriate authentication information to authentication manager250-1of the network device120-1to establish the corresponding authenticated communication session.

More specifically, assume in this example embodiment that the discovery engine140provides appropriate authentication information (such as a login, corresponding password, etc.) through the communication interface221-1(such as port80) to the authentication manager250-1. In such an instance, after authentication by the authentication manager250-1, the authentication manager250-1of network device120-1provides the discovery engine140access to the connectivity information170-1. In other words, subsequent to authentication, the communication interface221-1forwards the connectivity information170-1to the discovery engine140.

FIG. 3is an example diagram illustrating a first network device according to embodiments herein.

As shown, the network device120-2is assigned network address 192.168.1.3. Discovery engine140uses the network address 192.168.1.3 as a destination address in which to communicate with the network device120-2over multiple communication interfaces including communication interface220-2and communication interface221-2.

As previously discussed, the discovery engine140communicates with the network device120-2during a first phase to retrieve device attribute information160-2. In such an instance, the discovery engine140communicates a request (addressed to destination network address 192.168.1.3) to communication interface220-2to retrieve device attribute information160-2. The network device120-2is operable to provide the device attribute information160-2without requiring authentication of the discovery engine140.

As further discussed below, the discovery engine140attempts communication with any of one or more Internet socket ports (such as 22, 23, 24, 25, etc.) of the network device120-2to retrieve the device attribute information160-2associated with network device120-2. In one embodiment, each port is assigned to provide specific information for a respective service, if available, from the network device120-2.

Accordingly, via communications215-2, the discovery engine140initiates retrieval of the device attribute information160-2from the network device120-2.

As its name suggests, the device attribute information160-2indicates attributes of network device120-2. For example, the network device120-2may be a server, router, switch, terminal computer device, etc. Via retrieval of the device attribute information160-2, the discovery engine140learns of capabilities, device type, services, etc., associated with or provided by the network device120-2.

In this example embodiment, assume that the discovery engine140retrieves device attribute information160-2indicating that the network device120-2is a router.

During the second portion of discovery, via communications216-2and corresponding authenticated communication session between the discovery engine140and the communication interface221-2, the discovery engine140retrieves connectivity information170-2. In one embodiment, the connectivity information170-2associated with the network device120-2is not available to the discovery engine140unless the respective network device provides appropriate authentication information to authentication manager250-2to establish the corresponding authenticated communication session.

Assume in this example embodiment, that the discovery engine140provides appropriate authentication information (such as a login, corresponding password, etc.) over a respective communication link through the communication interface221-2(such as port80) to the authentication manager250-2. In such an instance, after authentication, the network device120-2provides the discovery engine140access to the connectivity information170-2. In other words, in one embodiment, subsequent to authentication, the communication interface221-2forwards the connectivity information170-2to the discovery engine140.

FIG. 4is an example diagram illustrating a first network device according to embodiments herein.

As shown, the network device120-3is assigned network address 192.168.1.4. Discovery engine140uses the network address 192.168.1.4 as a destination address in which to communicate with the network device120-3over multiple communication interfaces including communication interface220-3and communication interface221-3.

As previously discussed, the discovery engine140communicates with the network device120-3during a first phase to retrieve device attribute information160-3. In such an instance, the discovery engine140communicates a request (addressed to destination network address 192.168.1.3) to communication interface220-3to retrieve device attribute information160-3. The network device120-3is operable to provide the device attribute information160-3without requiring authentication of the discovery engine140.

As further discussed below, the discovery engine140attempts communication with one or more Internet socket ports (such as any of ports22,23,24,25, etc.) of the network device120-3to retrieve the device attribute information160-3. In one embodiment, each port is assigned to provide specific information for a respective service, if available, from the network device120-3.

Accordingly, via communications215-3, the discovery engine140initiates retrieval of the device attribute information160-3from the network device120-3.

As its name suggests, the device attribute information160-3indicates attributes of network device120-3. For example, the network device120-3may be a server, router, switch, terminal computer device, etc. Via retrieval of the device attribute information160-3, the discovery engine140learns of capabilities, device type, services, etc., associated with or provided by the network device120-3.

In this example embodiment, assume that the discovery engine140retrieves device attribute information160-3indicating that the network device120-3is a network switch.

During the second portion of discovery, via communications216-3and corresponding authenticated communication session between the discovery engine140and the communication interface221-3, the discovery engine140retrieves connectivity information170-3. In one embodiment, the connectivity information170-3is not available to the discovery engine140unless the respective network device provides appropriate authentication information to authentication manager250-3to establish the corresponding authenticated communication session.

Assume in this example embodiment that the discovery engine140provides appropriate authentication information (such as a login, corresponding password, etc.) through the communication interface221-3(such as port80) to the authentication manager250-3. In such an instance, after authentication, the network device120-3provides the discovery engine140access to the connectivity information170-3. In other words, subsequent to authentication, the communication interface221-3forwards the connectivity information170-3to the discovery engine140.

FIG. 5is an example diagram illustrating more details of a first phase of discovery according to embodiments herein.

As previously discussed, during the first phase of discovery, for each respective network address in the range, the discovery engine transmits communications to multiple different socket port numbers to learn of attributes associated with a corresponding network device assigned the respective network address. The discovery engine140tracks which of the network addresses in the range are assigned to corresponding network devices in the network as well as respective services provided by the network devices via communicating with different socket port numbers.

Assume that the network address range of the present example is 192.168.1.x, where X is an integer between 1 and 256.

As shown inFIG. 5, the discovery engine140communicates with a selected port of the network device120-1(IP network address 192.168.1.1) to retrieve any publicly available device attribute information.

More specifically, at time T11, the discovery engine140creates and transmits a TCP synchronization packet to initialize communication with port22of the network device120-1.

At time T12, the network device120-1responds with a TCP SYN, ACK packet.

At time T13, the discovery engine140replies to port22of the network device120-1with a TCP ACK packet.

At time T14, subsequent to establishing the bi-directional flow in the communication operations as previously discussed, the network device120-1forwards the device attribute information160-1, or appropriate portion thereof, to the discovery engine140.

The discovery engine140processes the received device attribute information160-1to learn and record attributes (such as application type, application version, operating system, vendor, etc.) associated with the network device120-1. As previously discussed, assume in this example embodiment that the device attribute information160-1indicates that the network device120-1is a server supporting one or more different corresponding types of applications (such as application1, application2, etc.) of a particular vendor type (such as a first vendor type).

At time T16, the discovery engine140terminates the communication connection via transmission of a reset commands to the network device120-1.

The discovery engine140repeats this process of communicating with each of multiple Internet socket ports of network device120-1to learn of further device attribute information associated with network device120-1.

FIG. 6is an example diagram further illustrating a first phase of discovery according to embodiments herein.

As previously discussed, during the first phase of discovery, for each respective network address in the range, the discovery engine transmits communications to multiple different socket port numbers to learn of attributes associated with a corresponding network device assigned the respective network address. The discovery engine140tracks which of the network addresses in the range are assigned to corresponding network devices in the network as well as respective services provided by the network devices via communicating with different Internet socket port numbers.

As previously discussed, assume that the network address range of the present example is 192.168.1.x, where X is an integer between 1 and 256.

As shown inFIG. 6, the discovery engine140communicates with a selected port of the network device120-2to retrieve any available device attribute information.

More specifically, at time T21, the discovery engine140creates and transmits a TCP synchronization packet to initialize communication with port22of the network device120-2.

At time T22, the network device120-2responds with a TCP SYN, ACK packet.

At time T23, the discovery engine140replies to port22of the network device120-2with a TCP ACK packet.

At time T24, subsequent to establishing the bi-directional flow in the communication operations as previously discussed, the network device120-1forwards the device attribute information160-2or appropriate portion thereof, to the discovery engine140. The discovery engine140processes the received device attribute information160-1to learn and record attributes (such as application type, application version, operating system, vendor, etc.) associated with the network device120-2.

As previously discussed, assume in this example embodiment that the device attribute information160-2indicates that the network device120-2is a server supporting one or more different corresponding types of applications (such as application1, application2, etc.) and is of a particular vendor type (such as a first vendor type).

At time T26, the discovery engine140terminates the communication connection via transmission of a reset command to the network device120-2.

The discovery engine140repeats this process of communicating with each of multiple Internet socket ports of network device120-2to learn of further device attribute information associated with network device120-2.

In a similar manner, the discovery engine140communicates to multiple ports for each network address in the range being tested for presence of network devices.

Assume in the present example that the discovery engine140determines presence and attributes of network device120-1, network device120-2, network device120-3, network device120-4, etc. As further discussed below, the discovery engine140is operable to communicate with each of the identified network devices in the network190to learn of specific interconnectivity of the network devices. That is, during the second phase of discovery, for each identified and tracked network address assigned to a corresponding network device, the discovery engine communicates with the corresponding network device to retrieve respective connectivity data indicating interconnectivity of the corresponding network device amongst the multiple network devices. In one embodiment, the respective connectivity data indicates physical port-to-port connectivity of the corresponding network device to at least one other network device in the network.

More specifically,FIG. 7is an example diagram illustrating a second phase of discovery according to embodiments herein.

As previously discussed, during the first discovery phase, the discovery engine140identifies which of one or more network devices are present in network environment100. To provide enhanced network discovery (via the second discovery phase) according to embodiments herein, the discovery engine140communicates with any network devices known to be present in the network environment100such as the network devices discovered during the first phase, network devices known to be present from a previous network discovery, etc., to determine interconnectivity amongst the detected network devices.

Note that, in certain instances, the discovery engine140may not identify every network device in the network environment100. In the second phase, the discovery engine140communicates with each of the network devices known to be present in the network environment100to learn of respective connectivity of the network devices amongst each other. The discovery engine140may discover new devices during the second phase that were not discovered during the first phase.

Further in this example embodiment, to learn of interconnectivity of network devices during the second phase, the discovery engine140communicates with each of the network devices120to retrieve secure information such as connectivity information170.

To communicate with the network device120-1, the discovery engine140retrieves appropriate authentication information from credential information145-1(such as username, password, etc.) and forwards it over a respective communication link to the communication interface221-1(such as port80of IP network address 192.168.1.1) to establish a secured communication link, tunnel, etc.

The network device120-1processes the received credential information145-1to authenticate the discovery engine140. Subsequent to authentication and establishing a secured communication link (such as over SSH or Secure SHell), the discovery engine140requests retrieval of connectivity information170-1over the established communication link.

In one embodiment, the connectivity information170-1is managed (such as collected, maintained, etc.) by the network device120-1and indicates information such as which other network devices the given network device120-1is communicatively coupled.

By way of non-limiting example, the connectivity information170-1can be or include so-called ARP (Address Resolution Protocol) data or any other suitable data (produced or gathered by the network device120-1) indicating connectivity data associated with the network device120-1assigned IP network address 192.168.1.1.

Assume in this example that the connectivity information170-1provided by the network device120-1indicates that the network device120-1is assigned a MAC address of XYZ1and that the port P1of the network device120-1is communicatively coupled via a communication link720to network device120-4(assigned IP network address 192.168.1.2). Because the network device120-4is known to be an end device (that is, there are no other devices connected to it), there may be no need for the discovery engine to perform further queries with respect to the network device120-4. Additionally or alternatively, note that the network device120-4may store information that requires authentication before forwarding to the discovery engine140. Accordingly, certain embodiments herein may include the discovery engine140communicating with the network device120-4to retrieve connectivity information or other information stored and/or produced by the network device120-4.

Additionally, assume in this example embodiment, that the connectivity information170-1further indicates that the port P2of the network device120-1is communicatively coupled to the port P1of the network device120-2(IP network address 192.168.1.3) via the communication link730.

Accordingly, via the connectivity information170-1, the discovery engine140learns of interconnectivity with respect to network device120-1and one or more other network devices.

FIG. 8is an example diagram illustrating a second phase of discovery according to embodiments herein.

Further in this example embodiment, to learn of interconnectivity of network devices during the second phase, and based on detecting that network device120-2is coupled to network device120-1as previously discussed inFIG. 7, the discovery engine140then communicates with the network device120-2to retrieve information such as connectivity information170-2associated with network device120-2(network address 192.168.1.3). The interconnectivity information170-2indicates devices coupled to network device120-2.

To communicate with the network device120-2(IP network address 192.168.1.3), the discovery engine140retrieves appropriate credential information145-2(authentication information needed to communicate with communication interface221-2) and forwards it over a respective communication link to the communication interface221-1(such as port80of IP network address 192.168.1.3) to establish a secured communication link. The authentication manager250-2of the network device120-2processes the received credential information145-2to authenticate the discovery engine140. Subsequent to authentication and establishing a secured communication link (such as over SSH a.k.a. Secure Shell or other suitable link) between the discovery engine140and network device120-2, the discovery engine140requests retrieval of connectivity information170-2associated with network device120-2.

In one embodiment, the connectivity information170-2is managed (such as collected, maintained, etc.) by the network device120-2and indicates information such as which other network devices the given network device120-2is communicatively coupled. By way of non-limiting example, the connectivity information170-2can be or include so-called ARP (Address Resolution Protocol) or any other suitable data (produced, stored, or gathered by the network device120-2) indicating connectivity associated with the network device120-2assigned IP network address 192.168.1.3 to one or more other network devices.

Assume in this example that the connectivity information170-2provided by the network device120-2indicates that the network device120-2is assigned a MAC address of XYZ3and that the port P1of the network device120-2is communicatively coupled via a communication link730to port P2of network device120-1(IP network address 192.168.1.1).

Additionally, assume in this example embodiment, that the connectivity information170-2further indicates that the port P5of the network device120-2is communicatively coupled to the port P1of the network device120-3(IP network address 192.168.1.4) via the communication link830.

Accordingly, via the connectivity information170-2, the discovery engine140learns of interconnectivity associated with network device120-2and other network devices in network environment100.

FIG. 9is an example diagram illustrating a second phase of discovery according to embodiments herein.

Further in this example embodiment, to learn of interconnectivity of network devices during the second phase, and based on detecting that network device120-3is coupled to network device120-2as previously discussed inFIG. 8, the discovery engine140then communicates with the network device120-3to retrieve information such as connectivity information170-3associated with network device120-3(IP network address 192.168.1.4). In this example embodiment, assume that the interconnectivity information170-3indicates that network device120-3is coupled to network device120-5and network device120-6.

To communicate with the network device120-3(network address 192.168.1.4), the discovery engine140retrieves appropriate credential information145-3(authentication information needed to communicate with communication interface221-3of network device120-3) and forwards it over a respective communication link to the communication interface221-3(such as port80of IP network address 192.168.1.4) to establish a secured communication link.

The network device120-3processes the received credential information145-3to authenticate the discovery engine140. Subsequent to authentication and establishing a secured communication link (such as over SSH a.k.a. Secure Shell or other suitable link), the discovery engine140requests retrieval of connectivity information170-3associated with network device120-3.

In one embodiment, the connectivity information170-3is managed (such as collected, maintained, etc.) by the network device120-3and indicates information such as which other network devices the given network device120-3is communicatively coupled. By way of non-limiting example, the connectivity information170-3can be or include so-called ARP (Address Resolution Protocol) or any other suitable data (produced or gathered by the network device120-3) indicating connectivity associated with the network device120-3assigned IP network address 192.168.1.4 to one or more other network devices.

Assume in this example that the connectivity information170-3provided by the network device120-3over communication link830indicates that the network device120-3is assigned a MAC address of XYZ4and that the port P1of the network device120-3is communicatively coupled via a communication link830to network device120-2(IP network address 192.168.1.3).

Additionally, assume in this example embodiment, that the connectivity information170-3further indicates that network device120-5is assigned a MAC address of XYZ5and that the port P2of the network device120-3is communicatively coupled to the port P2of the network device120-5(network address 192.168.1.5) via a communication link840.

Additionally, assume in this example embodiment, that the connectivity information170-3further indicates that network device120-6is assigned a MAC address of XYZ6and that the port P3of the network device120-3is communicatively coupled to the port P4of the network device120-6(IP network address 192.168.1.6) via the communication link850.

Thus, according to embodiments herein, the discovery engine140is operable to learn of a network address assigned to a first network device120-1. The discovery engine140communicates with the first network device120-1to learn of a network address assigned to a second network device120-2that is communicatively coupled to the first network device. The discovery engine utilizes the network address of the second device to communicate with the second network device and learn of a respective network address assigned to a third network device120-3communicatively coupled to the second network device120-2, and so on. In this way, the discovery engine140is able to iteratively detect attributes of and learn a connectivity topology of multiple network devices in a respective network environment100.

In this example embodiment, the discovery engine140produces network topology information153indicating attributes and connectivity of the network devices as obtained during first phase and second phase discovery.

FIG. 10is an example diagram illustrating generation of network topology information from discovered information according to embodiments herein.

In accordance with further embodiments, subsequent to detecting presence of the multiple network devices and retrieving corresponding attributes and connectivity information in a manner as previously discussed, the discovery engine140creates and stores the network topology information153in repository180-1. In other words, via the information collected as discussed above inFIGS. 5-9, the discovery engine140generates network topology information153as shown inFIG. 10.

Note again that the network topology information153can be used for any suitable reason such as tracking an inventory of network devices120in network190, auditing of network devices120in network190, fault analysis of network devices120in network190, installation of one or more new network devices in network190, etc.

FIG. 11is an example block diagram of a computer system for implementing any of the operations as discussed herein according to embodiments herein.

Any of the resources as discussed herein can be configured to include a processor and executable instructions to carry out the different operations as discussed herein.

As shown, computer system1150(such as a respective server resource) of the present example can include an interconnect1011that couples computer readable storage media1112such as a non-transitory type of media (i.e., any type of hardware storage medium) in which digital information can be stored and retrieved, a processor1113, I/O interface1114, and a communications interface1117.

Computer readable storage medium1112can be any hardware storage device such as memory, optical storage, hard drive, floppy disk, etc. In one embodiment, the computer readable storage medium1112stores instructions and/or data.

As shown, computer readable storage media1112can be encoded with discovery application140-1(e.g., including instructions) to carry out any of the operations as discussed herein.

During operation of one embodiment, processor1013accesses computer readable storage media1112via the use of interconnect1011in order to launch, run, execute, interpret or otherwise perform the instructions in discovery application140-1stored on computer readable storage medium1112. Execution of the discovery application140-1produces discovery process140-2to carry out any of the operations and/or processes as discussed herein.

In accordance with different embodiments, note that computer system may be or included in any of various types of devices, including, but not limited to, a mobile computer, a personal computer system, a wireless device, base station, phone device, desktop computer, laptop, notebook, netbook computer, mainframe computer system, handheld computer, workstation, network computer, application server, storage device, a consumer electronics device such as a camera, camcorder, set top box, mobile device, video game console, handheld video game device, a peripheral device such as a switch, modem, router, set-top box, content management device, handheld remote control device, any type of computing or electronic device, etc. The computer system1050may reside at any location or can be included in any suitable resource in any network environment to implement functionality as discussed herein.

Functionality supported by the different resources will now be discussed via flowcharts inFIG. 12. Note that the steps in the flowcharts below can be executed in any suitable order.

FIG. 12is a flowchart1200illustrating an example method according to embodiments herein. Note that there will be some overlap with respect to concepts as discussed above.

In processing operation1210, the discovery engine140generates communications to a range of multiple network addresses to detect presence of multiple network devices120in network190.

In processing operation1220, subsequent to detecting the presence, the discovery engine140communicates with each of the multiple network devices120to learn of interconnectivity amongst the multiple network devices120.

In processing operation1230, the discovery engine140produces network topology information153based on the detected presence (device attribute information160) and learned interconnectivity (via connectivity information170). The network topology information153indicates device attributes160as well as interconnectivity of multiple network devices120.

In processing operation1240, the discovery engine140stores the network topology information153in repository180-1.

FIG. 13is a flowchart illustrating an example method according to embodiments herein. Note that there will be some overlap with respect to concepts as discussed above.

In processing operation1310of flowchart1300-1(FIG. 13), the discovery engine140generates communications to a range of multiple network addresses to detect presence of multiple network devices120in network190.

In processing operation1315, for each respective network address in the range, the discovery engine140transmits communications to multiple different IP socket port numbers to learn of attributes associated with a corresponding network device assigned the respective network address.

In processing operation1320, the discovery engine140tracks which of the network addresses in the range are assigned to corresponding network devices120in the network190.

In processing operation1330, subsequent to detecting the presence, the discovery engine140communicates with each of the multiple network devices120to learn of interconnectivity amongst the multiple network devices120.

In processing operation1340, for each tracked network address, the discovery engine140communicates with the corresponding network device to retrieve respective connectivity data indicating interconnectivity of the corresponding network device amongst the multiple network devices120.

In processing operation1350, the discovery engine140communicates with a first network device120-1in the network to learn of a network address assigned to a second network device120-2communicatively coupled to the first network device120-1.

In processing operation1360, the discovery engine140utilizes the network address of the second network device120-2to communicate with the second network device120-2to learn of a network address assigned to a third network device120-3communicatively coupled to the second network device120-2.

In processing operation1370of flowchart1370(inFIG. 14), the discovery engine140produces network topology information153based on the detected presence and learned interconnectivity, the network topology information153indicating attributes and interconnectivity of the multiple network devices120in network190.

In processing operation1380, the discovery engine140produces the network topology information153to indicate that the second network device120-2is communicatively coupled to the first network device120-1in response to receiving connectivity data from the first network device120-1that the second network device120-2is communicatively coupled to the first network device120-1.

In processing operation1390, the discovery engine140stores the network topology information153in a repository180-1.

FIG. 15is an example diagram illustrating discovery of a newly merged network into an existing network according to embodiments herein.

As shown, and as previously discussed, the discovery engine140monitors network190and produces respective network topology information153based on automated discovery of network devices during a first discovery phase and a second discovery phase.

In this example embodiment, assume that the previously discovered network190is newly merged with new network193and corresponding network devices. In such an instance, in a similar manner as previously discussed, the discovery engine140performs a first discovery phase and a second discovery phase to learn of attributes and interconnectivity of network devices in network193as well as connectivity between network devices in network193and network devices in network190.

In one embodiment, based on newly discovered network193, and respective merging with network190, the discovery engine140updates the network topology information153to include attributes of network devices in both network190and network193as well as interconnectivity of network devices between the networks.

Note again that techniques herein are well suited to discover presence of network devices and produce network topology information indicating connectivity of the network devices as well as their attributes. However, it should be noted that embodiments herein are not limited to use in such applications and that the techniques discussed herein are well suited for other applications as well.