[CentOS] ip route and nexthop: the "CentOS" way

Fri Feb 3 07:58:26 UTC 2012
Gordon Messmer <yinyang at eburg.com>

On 02/01/2012 11:03 AM, Nick wrote:
> I believe I can configure the routing table manually like this:
>   ip route default scope global \
>     nexthop via 192.168.1.1 dev eth1 weight 1 \
>     nexthop via 192.168.0.1 dev eth0 weight 2
>
> This kind of thing doesn't seem to fit into the scheme of
> /etc/sysconfig/network-scripts/route-eth? described there, since the route isn't
> "for" any single interface.

It doesn't really matter that the route isn't "for" a specific 
interface.  The route just has to be valid when the file is evaluated. 
You'd want to create route-eth1 and add a single line starting with 
"default" and containing the rest of the command you listed above.

> And how do I stop CentOS from trying to pick its own default gateway settings
> (since /etc/sysconfig/network likely won't have a GATEWAY parameter)?

If you're not specifying one elsewhere, the system won't "pick" one as 
far as I know.

Having said that, I don't think that the kernel will do automatic route 
detection failures.  IIRC, "weight" is used for load balancing, and 
connections will be pinned to whatever route is selected.

You probably don't want to do any of this.  Instead, you'd want to use a 
package that's set up to handle the routes and rules that are required 
for multiple ISP handling, and scripts that are written to detect link 
failure and adjust the system accordingly.  Consider:
http://www.shorewall.net/MultiISP.html#LinkMonitor