Convolo has support for NIC failover which is modeled after Solaris's mpathd. Unfortunately, this only works in a clustered environment, so it may not be exactly what you're looking for.
You can't simply give two NICs the same address. You'll have to compile support into your kernel for channel bonding. Plus, the switch you're connected to has to support trunking.
So, the in-kernel channel bonding driver _does_ have support for two active paths, and claims to detect path failure and take corrective actions, but I have no experience with it.
Convolo has support for NIC failover which is modeled after Solaris's mpathd. Unfortunately, this only works in a clustered environment, so it may not be exactly what you're looking for.
You can't simply give two NICs the same address. You'll have to compile support into your kernel for channel bonding. Plus, the switch you're connected to has to support trunking.
So, the in-kernel channel bonding driver _does_ have support for two active paths, and claims to detect path failure and take corrective actions, but I have no experience with it.