When trying to discover devices, interfaces of type other(1) and softwareLoopback(24) are not being discovered.
DX NetOps Performance Management Data Aggregator fails to discover interfaces on a device. The interfaces are set to use the other(1) ifType value. Others missing are using the softwareLoopback(24)
DX NetOps Performance Management: All supported releases
Affected interfaces are configured to use either ifType other(1) or softwareLoopback(24).
By default discovery of other and loopback(24) interfaces are disabled. It is not generally recommended to enable their discover.
A better solution is redefining the interface configuration to utilize a more appropriate ifType.
When allowing discovery of these interface ifTypes we have observed consolidation issues in the NetOps Portal when devices have a primary or secondary IP address of 127.0.0.1.
You can enable them following this process. The extension ability can be used in the typecatalog to extend the Out Of The Box (OOTB) vendor certifications for the various OOTB interface vendor certifications.
Here is an example of what extension looks like for OOTB Interface vendor certification that removes the filter for other but leaves loopback
If you wish to remove the (ifType!=24) to discover loopback addresses, we have seen Portal consolidation issues if devices that have a primary or secondary IP address of 127.0.0.1.
So if you wish to discover loopback interfaces, you should use a filter to not discover interfaces with 127.0.0.1 as an IP address.
==========================
Detailed steps:
1. Go to http://<DA_HOST>:8581/typecatalog/certifications/snmp/IfXTableMib
2. Copy the Expressions, ExpressionGroup, and Filter lines to a new file for later use. Find the Expression line for ifType and copy that line also. Example:
a. <Expressions>
b. <ExpressionGroup destCert="{http://im.ca.com/normalizer}NormalizedPortInfo" name="PortNRMDS">
c. <Filter>(ifType!=24) && (ifType!=1)</Filter>
d. <Expression destAttr="Type">ifType</Expression>
<Expressions>
<ExpressionGroup destCert="{http://im.ca.com/normalizer}NormalizedPortInfo" name="PortNRMDS">
<Filter>(ifType!=24) && (ifType!=1)</Filter>
<Expression destAttr="Descriptions">ifDescr</Expression>
3. Do a REST GET of http://<DA_HOST>:8581/typecatalog/certifications/snmp/extension/IfXTableMib
4. Copy the contents into your REST client's body (You may have a different version, depending on the PM version).
<!-- Auto-generated by the type catalog local manager. -->
<DataModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace="http://im.ca.com/certifications/snmp" xsi:noNamespaceSchemaLocation="SNMPCertificationFacet.xsd">
<Author>CA</Author>
<Version>2.3</Version>
<FacetType name="IfXTableMib" descriptorClass="com.ca.im.core.datamodel.certs.CertificationFacetDescriptorImpl">
<FacetOf namespace="http://im.ca.com/core" name="Item"/>
</FacetType>
</DataModel>
5. Increase the Version value (In my example, I increased to 2.4 as the previous version was 2.3).
<Version>2.4</Version>
6. Take the Expressions, ExpressionGroup, Filter, and Expression lines previously saved off and place after the <FacetOf...> line. And also replace the first line with the example below. See the example below:
<?xml version="1.0" encoding="UTF-8"?>
<DataModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace="http://im.ca.com/certifications/snmp" xsi:noNamespaceSchemaLocation="SNMPCertificationFacet.xsd">
<Author>CA</Author>
<Version>2.4</Version>
<FacetType name="IfXTableMib" descriptorClass="com.ca.im.core.datamodel.certs.CertificationFacetDescriptorImpl">
<FacetOf namespace="http://im.ca.com/core" name="Item"/>
<Expressions>
<ExpressionGroup destCert="{http://im.ca.com/normalizer}NormalizedPortInfo" name="PortNRMDS">
<Filter>(ifType!=24) && (ifType!=1)</Filter>
<Expression destAttr="Descriptions">ifDescr</Expression>
</FacetType>
</DataModel>
7. Change the Filter to only: <Filter>(ifType!=24)</Filter>
<?xml version="1.0" encoding="UTF-8"?>
<DataModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace="http://im.ca.com/certifications/snmp" xsi:noNamespaceSchemaLocation="SNMPCertificationFacet.xsd">
<Author>CA</Author>
<Version>2.4</Version>
<FacetType name="IfXTableMib" descriptorClass="com.ca.im.core.datamodel.certs.CertificationFacetDescriptorImpl">
<FacetOf namespace="http://im.ca.com/core" name="Item"/>
<Expressions>
<ExpressionGroup destCert="{http://im.ca.com/normalizer}NormalizedPortInfo" name="PortNRMDS">
<Filter>(ifType!=24)</Filter>
<Expression destAttr="Descriptions">ifDescr</Expression>
</FacetType>
</DataModel>
8. Add after Expression line, the closing </ExpressionGroup> and </Expressions> lines. See the final example below:
<?xml version="1.0" encoding="UTF-8"?>
<DataModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace="http://im.ca.com/certifications/snmp" xsi:noNamespaceSchemaLocation="SNMPCertificationFacet.xsd">
<Author>CA</Author>
<Version>2.4</Version>
<FacetType name="IfXTableMib" descriptorClass="com.ca.im.core.datamodel.certs.CertificationFacetDescriptorImpl">
<FacetOf namespace="http://im.ca.com/core" name="Item"/>
<Expressions>
<ExpressionGroup destCert="{http://im.ca.com/normalizer}NormalizedPortInfo" name="PortNRMDS">
<Filter>(ifType!=24)</Filter>
<Expression destAttr="Descriptions">ifDescr</Expression>
</ExpressionGroup>
</Expressions>
</FacetType>
</DataModel>
9. Send the contents via REST PUT to http://<DA_HOST>:8581/typecatalog/certifications/snmp/extension/IfXTableMib
Use any RESTful client to send the PUT.
10. Do a REST GET to http://<DA_HOST>:8581/typecatalog/certifications/snmp/extension/IfXTableMib to confirm your changes are there.
11. During the next change detection, it will discover the 'other' interfaces. Or you can click on Update Metric Family to run discover on-demand.
You should now see the FortiExtender interface: