What is the best-practice for using HSRP with ECMP to prevent unknown unicast flooding?
Details / Background
We have a HSRP topology similar to the first diagram below for many of our facilities. Our Cisco WAN routers have equal-cost routes to all other sites; thus we can see asymmetric routing effects all the time. Normally we assign R1 to be the HSRP primary, but ECMP allow return traffic through either R1 or R2.
The issue is that when PC1 mounts a remote iSCSI drive across the WAN, the traffic leaves the site via R1, but could return via R2. As long as the iSCSI traffic returns via R1, there are no issues.
The problem occurs when PC1's traffic returns via R2. Assume the iSCSI session starts at 8:00:00, and both routers and both switches learn PC1's mac simultaneously. Between 8:00:00 and 8:00:05, there are no flooding problems because both switches still have PC1's mac-address in their CAM table.
Five minutes after the iSCSI session starts, S2's CAM entry for PC1's mac expires out of the CAM table and S2 floods PC1's traffic out all ports (in this case to Po1, Gi0/3 and Gi0/4). If PC1's iSCSI session consumes a lot of bandwidth, this unknown unicast flooding can suck non-trivial capacity from the links to PC3 and PC4.
Cisco IOS switches have a default CAM timer of 300 seconds...
S2# show mac address-table aging-time Vlan Aging Time ---- ---------- 1 300 17 300
However, Cisco IOS' default interface ARP timer is 4 hours...
R2# show interface gi0/0 GigabitEthernet0/0 is up, line protocol is up Hardware is AmdP2, address is 000a.dead.beef (bia 000a.dead.beef) Internet address is 172.17.1.252/24 MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) ARP type: ARPA, ARP Timeout 04:00:00 <--------------
Therefore, S2 starts flooding PC1's iSCSI traffic after five minutes.