In RME inventory, a device is aliased to another device only when the two are the same device and one is added with a different IP address or name than the existing one. However, if two different devices get aliased, there is a problem. This document discusses why this happens and how to solve the problem.
For more information on document conventions, see the Cisco Technical Tips Conventions.
Before using the information in this document, ensure that you understand what RME is and does. Refer to the online User Guide for CiscoWorks Resource Manager Essentials 4.3 (with LMS 3.2).
The information in this document is based on the software and hardware versions below.
The information presented in this document was created from devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If you are working in a live network, ensure that you understand the potential impact of any command before using it.
For information on background theory, refer to the white paper on Anycast RP and MSDP (Multicast Source Discovery Protocol)
In order to understand how two different devices get aliased, you must understand how aliasing logic works.
When a device is added into the inventory, whether through manual Add Devices or through sync from ANI, the system (the DIServerprocess) verifies that the new device is the same as an existing one. The checking criteria in RME 3.5 has been simplified to boost performance, and it now checks the following between the two devices:
Interface IP address
As long as it finds all three are identical, it claims the new device is the same as the existing one, and alias former to latter.
IP Anycast requires two RPs configured with the same IP address on the same loopback interface. If the two RPs are the same type of device (meaning sysObjectId is the same), then it satisfies the aliasing criteria, and RME claims RP1 is the same device as RP2, and aliases them together.
Why does the logic quit once it finds all three conditions are met? Why doesn't it check for other interface IP address differences? If the loopback0 IP address were changed, the next time the ANI synchronized it into RME, RME would claim this device as a new device and create a duplicate entry in the inventory. Therefore, even though the current aliasing logic does miss this corner situation, it is designed to cope with the majority of cases.
The solutions to this problem are explained in detail below.
This problem does not occur in RME 3.4 and earlier releases, because the aliasing logic was different before RME 3.5. Earlier versions of RME checked ifIndex, ifSpeed, ifDescr, and more, though it also took more time to perform. Fortunately, RME 3.5 DIServer provides an option to allow you to fallback to the previous version's logic. All you need to do is to add an option " -a" to DIServer's executable in the dmgtd config file.
Follow these steps:
To unregister DIServer, run command $NMSROOT\bin\pdreg -u DIServer where $NMSROOT is CiscoWorks install directory (by default it's C:\Program Files\CSCOpx).
To reregister it, run the command $NMSROOT\bin\pdreg -r DIServer -e $NMSROOT\objects\inventory\bin\DIServer.exe -f "-I -s -D 0x1 -d 0x1 -a" -d "EssentialsDbMonitor,EDS" .
Follow these steps:
cd to $NMSROOT/objects/dmgt/, and vi dmgtd.conf
Locate the line starting with DIServer
Change from DIServer -I -s -D 0x1 -d 0x1 to DIServer -I -s -D 0x1 -d 0x1 -a by appending -a at the end. Notice there is a space before the -a.
Stop CiscoWorks Daemon by issuing the /etc/init.d/dmgtd stop command
Restart CiscoWorks Daemon, /etc/init.d/dmgtd start