AutoDiscovery Data Dictionary for Visio Enterprise Network Tools
This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.
Chris Wick and Jeff Yarnell
Microsoft Corporation
April 2002
Applies to:
Microsoft Visio Professional 2002
Microsoft Visio Enterprise Network Tools 2002
AutoDiscovery Database Schema Version 4.0
Summary: This AutoDiscovery Data Dictionary is intended to help users and administrators wishing to use the AutoDiscovery database with conventional relational database tools, such as query and report writing applications (24 printed pages).
Contents
Introduction
How AutoDiscovery and Layout Uses the Database
Data Dictionary
Examples
AutoDiscovery Database Schema Version 4.0
Introduction
Microsoft® Visio® Enterprise Network Tools provides an add-on networking template called AutoDiscovery and Layout that integrates with Visio 2002. This add-on solution performs network AutoDiscovery and stores information about network systems and topology in a pair of databases.
The Microsoft® AutoDiscovery database is designed to hold network and device configuration information, most of which is automatically obtained and stored in the database by the AutoDiscovery engine.
The AutoDiscovery Data Dictionary is intended to help users and administrators wishing to use the AutoDiscovery database with conventional relational database tools, such as query and report writing applications.
The database schema is designed to store a detailed representation of a network device across multiple tables. Such a network device is made up of many subcomponents, and the subcomponents themselves are also stored in many tables. For example, a router may be represented in the AutoDiscovery database as a chassis with several optional modules and many physical interfaces. In this case, the router and its modules and interfaces are all considered subcomponents.
The lifetime of layer-2 and layer-3 objects within the AutoDiscovery database are managed differently. The layer-3 information in the database is updated to reflect the current state of a discovered network device when network AutoDiscovery is performed. Therefore, as network device changes are discovered, their corresponding representation in the database is changed. Depending on the change, database records may be updated, added, or marked as deleted.
On the other hand, the layer-2 data within the database uses an AutoDiscovery session identifier to mark current records. When AutoDiscovery is performed, records are either added or updated so that their DiscoveryID value matches that of the current AutoDiscovery session. This session ID is incremented with each discovery. Therefore, layer-2 database records with a DiscoveryID value less than that of the highest DiscoveryID in the database should be considered as historical, out-of-date information.
Caution The AutoDiscovery and Layout solution depends upon the integrity of the database schema and contents. End users should not insert records into or delete records from the database.
Primary Keys
The AutoDiscovery database is made up of many tables. The subcomponents of a network device are then stored as rows in the database. Within most tables, the ID column (32-bit integer) uniquely identifies each subcomponent. The ID is the primary key for most tables in the database. Therefore, retrieving all of the properties for a particular network subcomponent requires a Structured Query Language (SQL) JOIN operation on two or more tables using the ID column.
The ID value for a new row in the database is automatically generated by the AutoDiscovery and Layout solution, and is guaranteed to be unique.
Foreign Keys
Relationships between network subcomponents are achieved using the identifier of one subcomponent within a row of data corresponding to another subcomponent. This foreign key relationship enables an association of one network subcomponent with others. In many cases, these are one-to-many relationships. For example, network interfaces are represented by data in the NetworkInterface table. The table's SubNetworkID column serves as an identifier for a row in the SubNetwork table, which represents the corresponding IP subnet to which an interface is attached.
Dates
Date fields in the AutoDiscovery database are stored using 32-bit numbers. A date value is represented as the number of seconds since January 1, 1970.
How AutoDiscovery and Layout Uses the Database
The AutoDiscovery and Layout solution uses the network topology information in the database to create network documentation featuring shapes from the Visio Network Equipment library, annotated with actual properties of the network devices.
Assigning Database Values
The AutoDiscovery engine uses standard network protocols to determine what devices are on the network, how they are configured, and how they are connected. This information is obtained by querying the network devices themselves, and then saved in the AutoDiscovery database. However, not all the AutoDiscovery database fields are automatically assigned (columns, for example). Some properties are either unable to be automatically discovered, or are intended to be assigned by users of the AutoDiscovery and Layout solution (AssetTrackingNumber, for example).
In some cases, two fields representing the same property are available. One field is for storing the discovered property value while the other is for a user-supplied value for the same property. The reason for this is that while some properties can be discovered and automatically assigned, the network device's management agent sometimes incorrectly represents them. Therefore, the AutoDiscovery and Layout solution for Visio gives precedence to the user-supplied property value. For example, the PhysicalInterface table includes the columns Speed and UserSpeed.
Network Object Model
The Network Object Model (NOM) is an object-oriented model for data networks. The object model is implemented so that the AutoDiscovery database provides a persistence mechanism for NOM objects. That is, NOM classes implement programming interfaces that enable individual objects to be saved and retrieved from the AutoDiscovery database. Therefore, NOM makes it possible to write an application using a programming language like Microsoft Visual Basic®, which uses the AutoDiscovery database without writing any SQL statements.
NOM objects are uniquely identified by a property named OID. The OID property of a given NOM object matches the ID column referred to in the section Primary Keys.
Deleting Records
The AutoDiscovery database includes a Deleted column in the ManagedSystemElement table. This field is used to mark network subcomponents as deleted without actually deleting them from the database. Consequently, the AutoDiscovery and Layout solution offers a recycle bin that contains network entities that have been marked as deleted in the database.
When querying the database for network devices, be sure to consider whether devices that are marked as deleted should be included and construct the query accordingly.
Data Dictionary
ManagedSystemElement
The ManagedSystemElement table contains an entry for every network element in the database, regardless of type.
Table 1. ManagedSystemElement table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a network element | Automatically assigned |
Description | Simple description of a network element | MIB-II (RFC1213) sysDescr, or MIB-II (RFC1213) ifDescr, depending on the object type |
DisplayName | User-assigned name of a network element | User |
Deleted | Flag indicating if an element has been marked as deleted | AutoDiscovery and Layout |
InstallDate | Date a network element was installed | Unused |
ObjectType | Enumerated integer identifying the type of a network element. Possible values include those shown below:
0 Invalid 1 Subnet 3 NetworkElement 4 PhysicalInterface 5 NetworkPort 6 Enterprise 12 NetworkInterface 25 FrameRelayEndPoint 29 Processor 32 FrameRelayCircuit |
AutoDiscovery engine |
DiscoveryID | Discovery iteration in which the device was found | AutoDiscovery engine |
NetworkElement
The NetworkElement table contains an entry for every network device that has been identified and queried by the AutoDiscovery engine.
Table 2. NetworkElement table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a network element | Automatically assigned |
DNSName | Network name of a device | Network naming services (for example, DNS or WINS) |
Name | Name for device assigned by network management | MIB-II (RFC1213) sysName |
Contact | Contact person associated with the device | MIB-II (RFC1213) sysContact |
Location | Device location | MIB-II (RFC1213) sysLocation |
DeviceAvailable | Boolean variable indicating network availability of device | Unused |
NetworkingSoftwareVersion | Network software version | Unused |
SysObjectID | Vendor-assigned identifier for device | MIB-II (RFC1213) sysObjectID |
Functions | Bitmask identifying roles played by device | AutoDiscovery and Layout |
TimeLastAccessed | Time device was last queried by AutoDiscovery engine | AutoDiscovery engine |
TimeLastSeen | Time device was identified on the network, but not fully queried by AutoDiscovery | AutoDiscovery engine |
DeviceClass | Category of device | AutoDiscovery and Layout |
DiscoveryAddress | Network address used to query device | AutoDiscovery engine |
DiscoveryAddressType | Network protocol of network address (for example, IP) | AutoDiscovery engine |
ReadCommunity | SNMP community for read access | AutoDiscovery engine |
WriteCommunity | SNMP community for write access | Unused |
PhysicalMemory | Amount of RAM on the device | WMI Win32_ComputerSystem\ TotalPhysicalMemory |
Dot1dBaseBridgeAddress | MAC Address that uniquely identifies this device | AutoDiscovery engine |
PhysicalElement
The PhysicalElement table contains entries for network subcomponents that are real physical (for example, hardware) entities. An expansion module and a chassis are examples of physical elements.
Table 3. PhysicalElement table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a physical element | Automatically assigned |
AssetTrackingNumber | Company asset number | Unused |
Model | Model name/number | Unused |
SerialNumber | Serial number | Unused |
Manufacturer | Hardware manufacturer | Unused |
Version | Hardware version | Unused |
PhysicalPackage
The PhysicalPackage table includes details about the size and weight of physical entities on the network. Because this information is user-supplied, units are unspecified.
Table 4. PhysicalPackage table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a physical package | Automatically assigned |
Depth | Depth of physical entity | Unused |
Height | Height of physical entity | Unused |
Width | Width of physical entity | Unused |
Weight | Weight of physical entity | Unused |
NetworkPackage
The NetworkPackage table serves to associate logical subcomponents of a network device with its corresponding physical subcomponents. The set of physical subcomponents that make up a network device can be thought of as being contained within a network package.
Table 5. NetworkPackage table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a network package | Automatically assigned |
NetworkElementID | ID of the associated network element | AutoDiscovery engine |
RackID | ID of the rack in which the network package is mounted | AutoDiscovery engine |
Chassis
The Chassis table contains information about network packages that are equipped with optional expansion modules.
Table 6. Chassis table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a chassis | Automatically assigned |
NumberOfCardSlots | Number of expansion slots | Unused |
NetworkPackageID | ID of the associated network package | AutoDiscovery engine |
Card
The Card table contains information about physical packages that are expansion modules or cards optionally installed in a chassis.
Table 7. Card table
Column | Description | Source |
---|---|---|
ID | Unique identifier of card | Automatically assigned |
NumberOfPorts | Number of ports available on card | Unused |
SlotNumber | Slot number the card is installed in | Unused |
ChassisID | ID of the associated chassis | AutoDiscovery engine |
FirmwareVersion | Version of firmware on the card | Unused |
SoftwareVersion | Version of software on the card | Unused |
PortSwitchIndex | Physical switch number that the card is on | AutoDiscovery engine |
Rack
The Rack table contains entries for each rack in the AutoDiscovery database. Because network equipment racks are not manageable or discoverable, the AutoDiscovery engine does not insert rack entries.
Table 8. Rack table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a rack | Automatically assigned |
PhysicalInterface
The PhysicalInterface table contains information about the interfaces for connecting a network device to other network devices.
Table 9. PhysicalInterface table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a physical interface | Automatically assigned |
IfIndex | Internal identifier of interface assigned by network device's management agent | MIB-II (RFC1213) ifIndex |
Speed | Speed, in bits per second, of the interface | MIB-II (RFC1213) ifSpeed |
MTU | Size, in octets, of the largest datagram that can be sent or received on the interface (maximum transmission unit) | MIB-II (RFC1213) ifMTU |
MACAddress | Interface's link layer address | MIB-II (RFC1213) ifPhysAddress |
Type | Interface type number | MIB-II (RFC1213) ifType (type values defined by Internet Assigned Numbers Authority. See http://www.iana.org) |
AdminStatus | Administrative status of the interface the last time the device was queried by AutoDiscovery | MIB-II (RFC1213) ifAdminStatus |
OperStatus | Operational status of the interface the last time the device was queried by AutoDiscovery | MIB-II (RFC1213) ifOperStatus |
Name | Name of the interface | IF-MIB ifName |
UserSpeed | User-specified speed, in bits per second, of the interface | User |
NetworkPackageID | ID of the associated network package | AutoDiscovery engine |
CardID | ID of the associated card | AutoDiscovery engine |
NetworkMediumID | ID of the associated network medium | AutoDiscovery engine |
FrameRelayEndPoint
The FrameRelayEndPoint table contains information about Frame Relay protocol end points, which are necessarily associated with a corresponding physical interface.
Table 10. FrameRelayEndPoint table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a Frame Relay protocol end point | Automatically assigned |
CIR | Maximum amount of data, in bits per second, the network provider agrees to transfer (Commited Information Rate) | Frame Relay MIB (RFC1315) frCircuitCommitedBurst |
DLCI | Identifier, assigned by the network provider, for the virtual circuit | Frame Relay MIB (RFC1315) frCircuitDlci |
EIR | Maximum amount of uncommitted data, in bits per second, the network provider will attempt to transfer (Excess Information Rate) | Frame Relay MIB (RFC1315) frCircuitExcessBurst |
UserCIR | User-specified CIR | User |
PhysicalInterfaceID | ID of the associated physical interface | AutoDiscovery engine |
FrameRelayCircuitID | ID of the associated Frame Relay circuit | AutoDiscovery engine |
NetworkPort
The NetworkPort table contains entries that provide a logical representation of a physical interface, often acting as a port in a bridged or switched environment.
Table 11. NetworkPort table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a port | Automatically assigned |
PortNumber | Port identifier which usually matches the port number label on exterior of device | Unused |
BridgePortNumber | Port identifier assigned by device's network management agent | Bridge MIB (RFC1286) dot1dBasePort |
PhysicalInterfaceID | ID of the associated physical interface | AutoDiscovery engine |
Duplex | The transmission duplex of the port (for example, half or full) | Various vendor-specific MIBs |
Dot1dBasePort | Device's unique identifier for this network port | MIB-II (RFC 1213) |
NetworkInterface
The NetworkInterface table contains information about the network layer protocol entity associated with a physical interface.
Table 12. NetworkInterface table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a network interface | Automatically assigned |
NetworkAddress | Network address assigned to a device interface | MIB-II (RFC1213) ipAdEntAddr |
NetworkMask | Subnet mask associated with the network address | MIB-II (RFC1213) ipAdEntNetMask |
NetworkAddressType | Network protocol of network address (for example, IP) | AutoDiscovery engine |
NetworkAddressNum | Numeric representation of network address | AutoDiscovery engine |
PhysicalInterfaceID | ID of the associated physical interface | AutoDiscovery engine |
SubNetworkID | ID of the associated subnet | AutoDiscovery engine |
SubNetwork
The SubNetwork table contains entries for each subnet on the enterprise network.
Table 13. SubNetwork table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a subnet | Automatically assigned |
NetworkAddress | Network address assigned to a device interface | AutoDiscovery engine |
NetworkMask | Subnet mask associated with the network address | AutoDiscovery engine |
NetworkAddressType | Network protocol of network address (for example, IP) | AutoDiscovery engine |
NetworkAddressNum | Numeric representation of network address | AutoDiscovery engine |
Type | Assumed network type based on the interface types on the subnet | AutoDiscovery engine |
ElementChange
The ElementChange table is used to record changes to a device's representation in the AutoDiscovery database. When the AutoDiscovery engine detects a change to a device, it updates the device's representation in the AutoDiscovery database to reflect its current state. A record is added to this table to describe the configuration change.
Table 14. ElementChange table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a change record | Automatically assigned by database engine |
ElementID | ID of the ManagedSystemElement that has been changed | AutoDiscovery engine |
Time | Date and time of the change to the ManagedSystemElement | AutoDiscovery engine |
Type | Change type | AutoDiscovery engine |
Description | Description of the change | AutoDiscovery engine |
ObjectIdentifier
The ObjectIdentifier table is used by the AutoDiscovery and Layout solution to uniquely identify one enterprise database from another.
Table 15. ObjectIdentifier table
Column | Description | Source |
---|---|---|
High | Number used by AutoDiscovery and Layout to generate unique identifiers for ID column of most tables | AutoDiscovery engine |
GUID | Globally Unique Identifier of an AutoDiscovery database for a given enterprise network | AutoDiscovery engine |
Revision | Database schema version | AutoDiscovery engine |
Description | Description of the database contents | AutoDiscovery engine |
Vlan
The Vlan table contains entries for each vlan on the enterprise network.
Table 16. Vlan table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a vlan | Automatically assigned |
DomainVlanID | Vlan identifier on the domain | Various vendor-specific MIBs |
Domain | Name of the vlan domain | Various vendor-specific MIBs |
Name | Name of the vlan | Various vendor-specific MIBs |
LocalVlanID | Vlan identifier on the associated device | Various vendor-specific MIBs |
VlanPort
The VlanPort table contains entries that represent the many-to-many relationship between vlans and network ports.
Table 17. VlanPort table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a vlan port | Automatically assigned |
VlanID | ID of the associated vlan | AutoDiscovery engine |
NetworkPortID | ID of the associated network port | AutoDiscovery engine |
SpanningTree
The SpanningTree table contains entries for each spanning tree on the enterprise network.
Table 18. SpanningTree table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a spanning tree | Automatically assigned |
RootPort | Port with least cost to root (0 if root) | MIB-II (RFC 1286) |
RootCost | Path cost to root from this bridge (0 if root) | MIB-II (RFC 1286) |
DesignatedRootID | Bridge ID of the root | MIB-II (RFC 1286) |
BridgeID | Bridge ID of this spanning tree | MIB-II (RFC 1286) |
VlanID | ID of the associated vlan | AutoDiscovery engine |
SpanningTreePort
The SpanningTreePort table contains entries that represent the many-to-many relationships between spanning tree ports and network ports.
Table 19. SpanningTreePort table
Column | Description | Source |
---|---|---|
ID | Unique identifier of a spanning tree port. | Automatically assigned |
PathCost | The assigned cost associated with this link in the network. | MIB-II (RFC 1213) |
DesignatedPort | The port identifier of the port on the designated bridge for this port's segment. | MIB-II (RFC 1286) |
DesignatedPortCost | The path cost of the designated port of the segment connected to this port. This value is compared to the root path cost field in received bridge PDUs. | MIB-II (RFC 1286) |
State | The port's current state as defined by application of the spanning tree protocol. This state controls what action a port takes on reception of a frame. If the bridge has detected a port that is malfunctioning, it will place that port into the broken (6) state. For ports, which are disabled, this object will have a value of disabled (1). | MIB-II (RFC 1286) |
DesignatedRootID | The unique bridge identifier of the bridge recorded as the root in the configuration BPDUs transmitted by the designated bridge for the segment to which the port is attached. | MIB-II (RFC 1286) |
DesignatedBridgeID | The bridge identifier of the bridge, which this port considers the designated bridge for this port's segment. | MIB-II (RFC 1286) |
SpanningTreeID | ID of the associate spanning tree. | AutoDiscovery engine |
NetworkPortID | ID of the associated network port. | AutoDiscovery engine |
Service
The Service table contains entries that represent all of the services on the enterprise network. Examples include a DHCP service and a time service.
Table 20. Service table
Column | Description | Source |
---|---|---|
ID | Unique identifier for a service | Automatically assigned |
Name | Name of the service | WMI Win32_Service\Name |
NetworkElementID | ID of the associated network element | AutoDiscovery engine |
SharedResource
The SharedResource table contains entries that represent all of the shared resources on the enterprise network. Examples of such objects include shared printers (that are not manageable) and shared drives on a network.
Table 21. SharedResource table
Column | Description | Source |
---|---|---|
ID | Unique identifier for a shared resource | Automatically assigned |
Name | Name of the shared resource | |
NetworkElementID | ID of the associated network element | AutoDiscovery engine |
OperatingSystem
The OperatingSystem table contains entries that represent all of the operating systems on the enterprise network.
Table 22. Operating System table
Column | Description | Source |
---|---|---|
ID | Unique identifier for the operating system | Automatically assigned |
Name | Name of the operating system | WMI Win32_OperatingSystem\CSName |
OSType | Type of the operating system. Possible values include:
0 = Unknown 1 = Other 2 = MACOS 3 = ATTUNIX 4 = DGUX 5 = DECNT 6 = Digital Unix 7 = OpenVMS 8 = HPUX 9 = AIX 10 = MVS 11 = OS400 12 = OS/2 13 = JavaVM 14 = MSDOS 15 = WIN3x 16 = WIN95 17 = WIN98 18 = WINNT 19 = WINCE 20 = NCR3000 21 = NetWare 22 = OSF 23 = DC/OS 24 = Reliant UNIX 25 = SCO UnixWare 26 = SCO OpenServer 27 = Sequent 28 = IRIX 29 = Solaris 30 = SunOS 31 = U6000 32 = ASERIES 33 = TandemNSK 34 = TandemNT 35 = BS2000 36 = LINUX 37 = Lynx 38 = XENIX 39 = VM/ESA 40 = Interactive UNIX 41 = BSDUNIX 42 = FreeBSD 43 = NetBSD 44 = GNU Hurd 45 = OS9 46 = MACH Kernel 47 = Inferno 48 = QNX 49 = EPOC 50 = IxWorks 51 = VxWorks 52 = MiNT 53 = BeOS 54 = HP MPE 55 = NextStep 56 = PalmPilot 57 = Rhapsody |
WMI Win32_OperatingSystem\OSType |
Version | The version of the operating system | WMI Win32_OperatingSystem\Version |
TotalVirtualMemory | The total virtual memory on the system | WMI Win32_OperatingSystem\TotalVirtualMemory |
PatchLevel | The current patch level of the operating system | WMI Win32_OperatingSystem\Major + "." + Win32_OperatingSystem\Minor |
SerialNumber | The serial number of the operating system | WMI Win32_OperatingSystem\SerialNumber |
NetworkElementID | ID of the associated network element | AutoDiscovery engine |
LogicalDisk
The LogicalDisk table contains entries that represent all of the logically assigned disks on the enterprise network.
Table 23. LogicalDisk table
Column | Description | Source |
---|---|---|
ID | Unique identifier for the logical disk | Automatically assigned |
FileSystem | File system of logical disk (for example, "NTFS") | WMI Win32_LogicalDisk\FileSystem |
Size | The size in bytes of the logical disk | WMI Win32_LogicalDisk\Size |
Removeable | A flag indicating if the logical disk is removable | True if Win32_LogicalDisk\DeviceID = 2,5, Also use Win32_LogicalDisk\MediaType to determine |
NetworkElementID | ID of the associated network element | AutoDiscovery engine |
Processor
The Processor table contains entries that represent the processors on the enterprise network.
Table 24. Processor table
Column | Description | Source |
---|---|---|
ID | Unique identifier for the processor | Automatically assigned |
NetworkPackageID | ID of the associated network package | AutoDiscovery engine |
ProcessorIndex | Internal identifier of a processor | AutoDiscovery engine |
Speed | Speed in Mhz of the processor | AutoDiscovery engine |
Index | Number of the processor (in the case of multiple-processor devices) | AutoDiscovery engine |
NetworkMedium
The NetworkMedium table contains entries that represent the network media on the enterprise network. A network medium represents a physical segment on the network.
Table 25. NetworkMedium table
Column | Description | Source |
---|---|---|
ID | Unique identifier for the network medium | Automatically assigned |
Type | Type of the physical connection | AutoDiscovery engine |
Examples
How many routers are on my network?
To answer the question, simply query the NetworkElement table that contains a row for each network device found by AutoDiscovery. The DeviceClass column is a number that represents the category of the device. Possible values include: router (1), hub (2), probe (3), switch (4), bridge (5), server (6), printer (7), and other (0).
SELECT COUNT(ID) AS Total
FROM NetworkElement
WHERE DeviceClass = 1
This simple query counts all records in the NetworkElement table where the DeviceClass column has the value 1 and returns the count as 'Total.'
Recall that the AutoDiscovery database schema includes a Deleted field, which is non-zero if a network subcomponent has been deleted by the AutoDiscovery and Layout solution. To get a total number of routers (excluding any that may have been marked as deleted), use the following query:
SELECT COUNT(NetworkElement.ID) AS Total
FROM NetworkElement INNER JOIN
ManagedSystemElement ON
NetworkElement.ID = ManagedSystemElement.ID
WHERE (NetworkElement.DeviceClass = 1) AND
{ManagedSystemElement.Deleted = 0)
How many devices from vendor X do I have on my network?
Identifying SNMP manageable devices from a particular vendor can be achieved by examining the SysObjectID field in the NetworkElement table. Every vendor has a unique number that is used in the seventh position of the SNMP object identifier named 'sysObjectID' in MIB-II. The numbers assigned to vendors are administered by the Internet Assigned Numbers Authority (IANA) and can be found at http://www.iana.org.
For example, Cisco's enterprise number is 9. Therefore, a query for the total number of Cisco devices would be:
SELECT COUNT(ID) AS TOTAL
FROM NetworkElement
WHERE (SysObjectID LIKE '1.3.6.1.4.1.9.%')
Show me the names and speeds of all interfaces on a specific router
Because network devices are represented by a collection of their logical and physical subcomponents, this query involves several tables.
SELECT PhysicalInterface.Name,
PhysicalInterface.Speed
FROM NetworkElement INNER JOIN
NetworkPackage ON
NetworkElement.ID = NetworkPackage.NetworkElementID INNER
JOIN
PhysicalInterface ON
NetworkPackage.ID = PhysicalInterface.NetworkPackageID
WHERE (NetworkElement.DNSName = 'gateway.adventureworks.com')
Obtaining the records from the PhysicalInterface table corresponding to the device with the specified DNSName requires joining an intermediate table, namely the NetworkPackage table.
Show me all IP interfaces on my network, sorted by IP address
All device interfaces are represented by rows in the PhysicalInterface and NetworkInterface tables. The NetworkInterface table is related to the PhysicalInterface table by its PhysicalInterfaceID column. The rest of the SQL Joins bring together the information about each row in the PhysicalInterface table from the NetworkElement and NetworkPackage tables. Notice that the query includes a SQL WHERE clause that excludes loopback and NULL addresses.
SELECT NetworkInterface.NetworkAddressNum,
NetworkInterface.NetworkAddress,
NetworkInterface.NetworkMask, PhysicalInterface.MACAddress,
NetworkElement.Name, PhysicalInterface.AdminStatus
FROM NetworkInterface INNER JOIN
PhysicalInterface INNER JOIN
NetworkPackage INNER JOIN
NetworkElement ON
NetworkElement.ID = NetworkPackage.NetworkElementID
ON
NetworkPackage.ID = PhysicalInterface.NetworkPackageID
ON
PhysicalInterface.ID = NetworkInterface.PhysicalInterfaceID
WHERE (NetworkInterface.NetworkAddress <> '127.0.0.1') AND
NetworkInterface.NetworkAddress <> '0.0.0.0') AND
NetworkInterface.NetworkAddress <> '127.0.0.2')
GROUP BY NetworkInterface.NetworkAddressNum,
NetworkInterface.NetworkAddress,
NetworkInterface.NetworkMask,
PhysicalInterface.MACAddress,
NetworkElement.Name, PhysicalInterface.AdminStatus
Show me the IP Interfaces on a specific subnet
This is another query involving the NetworkInterface and PhysicalInterface tables. However, this query's WHERE clause limits the results to only those rows in the NetworkInterface table that are related to an entry in the SubNetwork table with NetworkAddress 192.168.100.0.
SELECT NetworkInterface.NetworkAddressNum,
NetworkInterface.NetworkAddress,
NetworkInterface.NetworkMask, PhysicalInterface.MACAddress,
NetworkElement.Name,
ManagedSystemElement.Description
FROM SubNetwork INNER JOIN
NetworkInterface INNER JOIN
ManagedSystemElement INNER JOIN
PhysicalInterface INNER JOIN
NetworkPackage INNER JOIN
NetworkElement ON
NetworkElement.ID = etworkPackage.NetworkElementID
ON
NetworkPackage.ID = PhysicalInterface.NetworkPackageID
ON
PhysicalInterface.ID = ManagedSystemElement.ID ON
NetworkInterface.PhysicalInterfaceID = ManagedSystemElement.ID
ON
NetworkInterface.SubNetworkID = SubNetwork.ID
WHERE (NetworkInterface.NetworkAddress <> '127.0.0.1') AND
(NetworkInterface.NetworkAddress <> '0.0.0.0') AND
(NetworkInterface.NetworkAddress <> '127.0.0.2') AND
(ManagedSystemElement.Deleted = 0) AND
(SubNetwork.NetworkAddress = '192.168.100.0')
GROUP BY NetworkInterface.NetworkAddressNum,
NetworkInterface.NetworkAddress,
NetworkInterface.NetworkMask,
PhysicalInterface.MACAddress,
NetworkElement.Name,
ManagedSystemElement.Description
AutoDiscovery Database Schema Version 4.0
Figure 1. Click to view larger image, then right-click on the larger image and save to your desktop for better viewing.
Jeff Yarnell is a Software Design Engineer Lead in the Microsoft Network Central Group. Jeff has been developing network management software for ten years, and has been with the AutoDiscovery and Layout group for five years.
Christopher Wick is a Software Design Engineer in the Microsoft Network Central Group, working on AutoDiscovery. Chris helped design and implement the Network Object Model (NOM), and has been with Microsoft for four years.