We have a very strange problem, where certain ports refuse to learn the mac addresses of their hosts. For example host A is connected to switch S1 on port 0/0/30.

Each packet to host A results in a unicast to all connected hosts of S1, because the mac address of A is missing from the table.

Strangely enough host A has an IPMI interface with a separate mac, which the switch learns dynamically without a problem (very strange).

I've researched all of the possible causes:

  • there are no mac table limits configured in the switch (not globally, not on the vlan level, not on the interface level)
  • the number of the mac addresses in the table is way below the maximum (less than 1%)
  • the vlan of the interface is configured properly
  • mac learning is enabled on the vlan level and on the interface level
  • the interface receives/sends packets properly
  • there are no loops and there is no mac flapping in the network
  • spanning tree protocol is disabled and thus the interface is not blocked
  • traffic on the interface is untagged, but set to the proper default vlan
  • there is no port security configured
  • the sticky mac feature is disabled

The most frustrating thing is that the same configuration of interface 0/0/12, for example, learns the mac of its host properly. Some of the switch interfaces learn properly and some do not, and all share the same configuration.

I've captured some packets on the problem interfaces and they all seem correct, i.e the source mac address is the correct one and the proper vlan tag is received.

Strangely enough, adding the mac statically does not resolve the situation - all packets to this mac result in a unicast to all connected hosts.

I went as far as checking the mac hashing functions and whether there might be collisions, but still no luck.

The connected hosts themselves have no problem seeing each other, i.e arping returns the proper mac addresses and all hosts are reachable within the local network. Arpcache seems fine.

I am thinking about resetting the switch, but this will lead to downtime.

Finally, all other switches (same configuration as S1) on the network have a similar problem, which inclines me to think that it is a configuration/setup issue.

Anyone dealt with something like this before? Can anyone recommend further diagnostics or courses of action to resolve the problem?

Model of the switch: Huawei s5700-48TP-SI-AC



If anybody stumbles upon this odd problem, in our case I suspect the following:

The switch has a hashing function, which hashes the macs and adds them to the mac table. Our hardware was bought in bulk and the mac addresses are quite close to each other. I suspect that the function produces collisions, i.e 2 macs receive the same hash and only one is learned as a consequence.

Enteprise models of this switch have an snmp object with data about collisions, but ours, unfortunately, doesn't have it. It is also not clear which algorithm exactly is used for hashing, so I can't prove this theory.

In any case changing the mac addresses of the hosts to completely random ones solved the issue.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.