Hello,

I'm trying to resolve a SNMP issue with bonding. i've got some documentationm but myself and my team have a lack of snmp experience. And simply don't have the time to learn it. I'm hoping someoen can point me inthe right direction on this.

All of our linux builds have bonding, different modes, and some servers have multiple bonds. The bonding documentation notes a potential SNMP problem( I posted it below).

I understand the concept of the problem, but am lost as how to implement the resolution. Whether it's by using snmpd.conf or issuing commands on bootup.
Can someone please point me in the right direction of how to make the following change.




Linux Bonding HOWTO Excerpt:
-------------------------------------------

If running SNMP agents, the bonding driver should be loaded before any network drivers participating in a bond. This requirement is due to the interface index (ipAdEntIfIndex) being associated to the first interface found with a given IP address. That is, there is only one ipAdEntIfIndex for each IP address. For example, if eth0 and eth1 are slaves of bond0 and the driver for eth0 is loaded before the bonding driver, the interface for the IP address will be associated with the eth0 interface. This configuration is shown below, the IP address 192.168.1.1 has an interface index of 2 which indexes to eth0 in the ifDescr table (ifDescr.2).

interfaces.ifTable.ifEntry.ifDescr.1 = lo
interfaces.ifTable.ifEntry.ifDescr.2 = eth0
interfaces.ifTable.ifEntry.ifDescr.3 = eth1
interfaces.ifTable.ifEntry.ifDescr.4 = eth2
interfaces.ifTable.ifEntry.ifDescr.5 = eth3
interfaces.ifTable.ifEntry.ifDescr.6 = bond0
ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.10.10.10 .10 = 5
ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.192.168. 1.1 = 2
ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.10.74.20 .94 = 4
ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0. 1 = 1

This problem is avoided by loading the bonding driver before

any network drivers participating in a bond. Below is an example of loading the bonding driver first, the IP address 192.168.1.1 is correctly associated with ifDescr.2.

interfaces.ifTable.ifEntry.ifDescr.1 = lo
interfaces.ifTable.ifEntry.ifDescr.2 = bond0
interfaces.ifTable.ifEntry.ifDescr.3 = eth0
interfaces.ifTable.ifEntry.ifDescr.4 = eth1
interfaces.ifTable.ifEntry.ifDescr.5 = eth2
interfaces.ifTable.ifEntry.ifDescr.6 = eth3
ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.10.10.10 .10 = 6
ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.192.168. 1.1 = 2
ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.10.74.20 .94 = 5
ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.127.0.0. 1 = 1

While some distributions may not report the interface name in

ifDescr, the association between the IP address and IfIndex remains and SNMP functions such as Interface_Scan_Next will report that association.