Brian J. Murrell wrote:
> I'm using shorewall[-lite] 4.0.5 on an OpenWRT Kamikaze(ish) platform.
> As you all probably already know, I have multiple ISP uplinks.  One is
> DHCP based and the other PPP[oE] based.  I also use track and balance on
> both interfaces and do some tc based routing.
> 
> I'm finding an interesting phenomena with this set up.  If the PPPoE
> connection ever drops, my weighted default route(s) go away.  To
> illustrate, before a PPP line drop I have:
> 
> default 
>         nexthop via 67.193.44.1  dev eth0.1 weight 1
>         nexthop via 192.168.200.1  dev ppp0 weight 1
> 
> Which is about right for a track and balanced MultiISP Shorewall
> configuration.
> 
> However, if I go pull the phone plug on the PPPoE interface the result
> is that I have no default route at all.  I suspected that somewhere some
> script was doing a "route delete default ..." because of the PPPoE
> interface down event but I've been through the whole process of scripts
> that get called on this event and there is no such event.  Additionally,
> OpenWRT has a config switch one can use to prevent default route
> updating and I have that selected and for good measure I added
> "nodefaultroute" to the /etc/ppp/options file.
> 
> Most of the above is really an aside to a real problem and could
> probably be worked around by simply executing
> an /etc/init.d/shorewall-lite restart on an interface down event.
> Except... and here is the real bug...
> 
In /etc/ppp/ip-down(.local) you could source the other provider's 
routing table, replace the default gateway in the main table with such 
info, adjust routing rules if required and flush the routing tables.

> Now that the (weighted) default route(s) entry is gone, shorewall-lite
> can't figure out how to restore them (when the providers table specifies
> "detect" for GATEWAY) because it (apparently) consults the routing table
> to find the default route for DHCP (or more accurately, broadcast
> network) interfaces.
> 
No, it's looking for preexisting gateways in the main table which were 
removed with the network scripting.

> Two (well, only one really workable) solutions come to mind.  The first
> is only a solution if the default gateway has been set up already once,
> before the main table is copied to the providers tables.  If this is
> true, then the provider table can be consulted for the default route.
> Even with no (weighted or otherwise) default routes in my main table, my
> provider table still shows:
> 
> default via 67.193.44.1 dev eth0.1 
> 
> This seems to me like it will not always work -- i.e. if the provider
> table is not set up yet, etc.
> 
> The second solution seems to be to allow a specification other than
> "detect" for the gateway that somehow still results in shorewall[-lite]
> figuring it out.  Perhaps a (i.e. shell) code fragment can be used
> instead of "detect" that results in the gateway's IP address.
> 
> On OpenWRT (Kamikaze) for example I can do:
> 
> # uci get "/var/state/network.wan0.gateway"
> 67.193.44.1
> 
> To get the gateway's address.
> 
> Thots?
> 
So, can't you use that in params?

Third option, fix the network scripts.

Jerry


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Shorewall-users mailing list
Shorewall-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/shorewall-users

Reply via email to