MAC addresses learned from ports directly on the switch occasionally disappear from the cam table. This is recoverable when you do a clear mac-address-table dynamic vlan x command. The MAC address learned on this vlan x appear in table again but the only thing that remains in the table are the MACs learned from other switches on a uplink port for this VLAN ID.
If you ping a device through the switch, it is successful. This can generate unnecessary amount of arp broadcasts.
In a scenario, when you turn on PC or Network Device, it does not register in the table arp table from gratuitous arp. Hence, the data in the MAC table and the ARP table does not synchronize. A gratuitous ARP is an ARP broadcast in which the source and destination MAC addresses are the same. It is used primarily by a host in order to inform the network about its IP address.
In order to synchronize the Layer 2 MAC address table entries across the Policy Feature Card (PFC) and all the Distributed Forwarding Cards (DFCs), use the mac-address-table synchronize command.
It is better to enable the mac-address-table synchronize command because it is specially designed after Cisco IOS Software Releases 12.2(18)SXE4 and later for many mac-address sync issues. After you enable it, it is possible to still see entries that are not present in PFC or DFC. But, the module has a way to learn it from others that use Ethernet Out of Band Channel (EOBC).
Note: If you enable the mac-address-table synchronize command, you should also disable routed MAC purging through the mac-address-table aging-time 0 routed-mac global command. This is to avoid periodic flooding of traffic.
Also, if the Gratuitous ARP packet does not conform to the RFC standard that Cisco uses, then the Target MAC address within the ARP packet must be the broadcast MAC address.