Having multiple equal-cost paths (Equal-Cost MultiPath) to a destination is nice, but you need to understand how it will work in a Cisco network.  By default, per-packet load balancing is disabled.  Anyone know why?  Leave replies in the comments section & I’ll pick the best answer.

It’s generally bad to per-packet load-balance, so IOS will hash on a few fields of the packet & ensure that subsequent packets in that ‘flow’ will take the same path.

In IOS, you can determine the exact path a packet will take through the use of the command “show ip cef exact-route“.  Of course, the Catalyst 6500 / 7600 line has a different command “show mls cef exact-route

Ivan Peplenjak has a good article on ECMP located here.

I was searching for an equivalent command on NX-OS and located the “show routing hash” command.  It works as advertised.