I attempted to use a line like this in /etc/shorewall/providers:
#NAME   NUMBER  MARK    DUPLIC. INTERFACE       GATEWAY OPTIONS
#
ISP1    1       -       -       eth0            detect  track,balance=1
but the "detect" didn't work.  I forget the error message, but you
don't need that because I found a fix.
I tracked it down to the detect_dynamic_gateway function in 
/usr/share/shorewall/lib.core, which was not handling the
${VARLIB}/dhcp/dhclient.${1}.leases file.
On my system (Debian 7.6 with isc-dhcp-client version 
4.2.2.dfsg.1-5+deb70u6), the file name is dhclient.eth0.leases, 
not dhclient-eth0.lease ("." instead of "-", and plural
"leases"
instead of singular "lease").  Also, the relevant line in the file 
looks like
 option routers 192.0.2.1;
with a trailing semicolon that needs to be removed when the
value is printed.
I attach a patch that should fix this issue.
--apb (Alan Barrett)
------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds