Subject: Re: Problems with pppd and route
To: Ian Zagorskih <ianzag@megasignal.com>
From: Mike M. Volokhov <mishka@apk.od.ua>
List: tech-net
Date: 05/27/2004 09:22:45
On Thu, 27 May 2004 03:11:27 +0700
Ian Zagorskih <ianzag@megasignal.com> wrote:
>
> In short: can i change routing tables inside ip-up/ip-down pppd scripts or
> not ?
Yes. On all my systems it works perfectly in the same manner as you
described. What OS you've used?
>
> In details, the scheme looks like this:
>
> ppp -> GPRS -> Internet -> server
>
> I.e. i connect with PPP/GPRS to the ISP and want to access some server inside
> Internet. I know server's IP address and it's supposed to be fixed and
> unchanged.
>
> When i connect to the ISP with PPP/GPRS all works really fine and finally i
> got two addresses for ppp0 interface: local and remote. Usually local address
> is like 10.0.a.b and remote is almost always 10.0.0.1 and i use it as a
> gateway to access Inet through PPP.
>
> When i use "defaultroute" option with pppd or when after connection is
> established i manually add an entry in the routing table like "route add
> <server> 10.0.0.1" i can ping the server and so on.
Hmm... I think "defaultroute" should be enough, except you need this
GPRS connection to server only.
>
> Ok, but looks like i can add this entry into routing table only when ppp0
> interface is configured and there is known route for 10.0.0.1 itself. The
> same i don't need this entry in the table when i disconnect from ISP and ppp0
> goes down.
>
> So i decided to add and remove this fixed routing entry from /etc/ppp/ip-up
> and ip-down scripts. Like below:
>
> ---ip up---
> #!/bin/sh
> remote=$5
> route add server $remote
> ---ip up---
>
> ---ip down---
> #!/bin/sh
> route delete server
> ---ip down---
>
> Both scripts are called fine by pppd and i can see that pppd passes correct
> remote host IP address. Same as i'm sure that route is called too. Scripts
> are running as root, as expected.
How you check this?
>
> The problem is that ip-up script doesn't actually change the routing table. It
> stays unchanged regardless to "route add" request ! Only when ip-up script
> terminates and pppd goes online i can execute the same "route add" command
> with success. But this isn't what i want to do :(
Does that scripts have execution bit set (i.e. "chmod +x /etc/ppp/ip-*")?
>
> My question is - how to automatically fix routing tables after pppd daemon
> enters/leaves online state ?
>
> Any ideas and what I'm doing wrong ?
If all setups is correct, may be it will be helpful ran pppd with debug
options or even via ktrace.
--
Mishka.