Thanks for the info!
So if if I understand netreport... I'd have to have a background process for each eth interface in question which calls 'netreport -r' and then waits for a SIGIO signal meaning that the interface's state has changed. I guess that seems a bit complicated, but doable.
This is really easy on Debian/Ubuntu. You can just add one-liners to /etc/network/interfaces that get run when an specific interface goes up or down. Here's an example. Is there anything simple like that I can do on RHEL?
iface eth0:2 inet static
up /etc/network/scripts/static-nat up 172.18.202.2 220.127.116.11
down /etc/network/scripts/static-nat down 172.18.202.2 18.104.22.168
Thanks again for the help.