Interface discovery fails when ifType is other or softwareLoopback
search cancel

Interface discovery fails when ifType is other or softwareLoopback

book

Article ID: 31742

calendar_today

Updated On:

Products

CA Performance Management - Usage and Administration DX NetOps

Issue/Introduction

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)

Environment

DX NetOps Performance Management: All supported releases

Cause

Affected interfaces are configured to use either ifType other(1) or softwareLoopback(24).

Resolution

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.

Additional Information

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

<?xml version="1.0" encoding="UTF-8"?>
<DataModel namespace="http://im.ca.com/certifications/snmp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SNMPCertificationFacet.xsd">
  <Author>CA</Author>
  <Version>2.05</Version>
  <FacetType name="IfTableMib" 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="Type">ifType</Expression>
      </ExpressionGroup>
    </Expressions>
  </FacetType>
</DataModel>
 
Note: The XSD requires an Expression (or one of the other 2 options) in an ExpressionGroup, the ifType expression has been provided again even though it did not change from OOTB.
  1. Go to http://<DA_HOST>:8581/typecatalog/certifications/snmp/<VC Name>
  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>
  3. Do a REST GET of http://<DA_HOST>:8581/typecatalog/certifications/snmp/extension/<VC Name>
  4. Copy the contents into your REST client's body.
  5. Increase the Version value.
  6. Take the Expressions, ExpressionGroup, Filter, and Expression lines previously saved off and place after the <FacetOf...> line.  See final example above.
  7. Change the Filter to only:  <Filter>(ifType!=24)</Filter>
  8. Add after Expression line, the closing </ExpressionGroup> and </Expressions> lines.
  9. Send the contents via REST PUT to http://<DA_HOST>:8581/typecatalog/certifications/snmp/extension/<VC Name>
  10. Do a REST GET to http://<DA_HOST>:8581/typecatalog/certifications/snmp/extension/<VC Name> to confirm your changes are there.
  11. During next change detection, it will discover the 'other' interfaces.

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: