[CentOS] making a route sticky

Fri Aug 5 15:34:25 UTC 2005
Feizhou <feizhou at graffiti.net>

Aleksandar Milivojevic wrote:
> Is it possible to have a route stick in the kernel, even if device it points to
> goes to roller coaster up and down drive.
> 
> For example.  I have an ADSL modem and am doing VPN over it.  There's a route
> needed for VPN added like this:
> 
> ip route add 192.168.1.0/24 via 1.2.3.4 src 192.168.2.1
> 
> There are two problems with it:
> 
> a) if ADSL link is down when above command is executed, the route command will
> fail (ppp0 is down, so there's no 1.2.3.4)
> 
> b) if ADSL link is up when above command is executed, but it goes down (and up
> again) later, the route is removed from kernel routing tables
> 
> So, if there are any problems with ADSL link, I need to manually reset my VPN
> setup.
> 
> I could write some monitoring script (and call it from cron) that would check if
> route is present and attempt to readd it if needed, but I'd rather be able to
> have the route either sticky (not removed when interface goes down) or
> automatically reenabled by the kernel when interface goes up again.

no need.

create /etc/ppp/ip-up.local and /etc/ppp/ip-down.local to handle these.

When ADSL goes up, the pppd daemon can run ip-up.local to setup the 
routes needed and when it goes down, the pppd daemon can run 
ip-down.local to fix things or remove those routes.

However, ADSL and VPN may imply move than one ppp interface (pptp based 
vpns) and if that is the case you want to add logic to differentiate 
whether you are handling the ADSL ppp interface or the VPN interface.