Just a quick followup: I've finally figured out a workaround. A hack, to be sure, but a workaround nonetheless.

I've created a shell script called /etc/ppp/pppfix, which looks like this:

#!/bin/sh
# Fix up PPP routes
sleep 1;
logger -i -t ppp Fixing route: route change -host $1 $2 -ifp $3
route change -host $1 $2 -ifp $3

I invoke this from the relevant section of /etc/ppp.linkup with the line

!bg /etc/ppp/pppfix HISADDR MYADDR INTERFACE

Note that the "sleep" may not be absolutely necessary, but it seems like a good idea just in case there's a race condition.

I also added the following lines in the relevant section of ppp.linkdown:

iface clear
delete! HISADDR
delete! ALL
shell arp -d HISADDR
quit all

I found that if I did not do this, the modified route persisted after the connection terminated. The "arp -d HISADDR" should only be used if proxy arp is being done, and may not be strictly necessary; I wanted to make sure I tore down any residual proxy arp entry.

Of course, all of this is an awful hack and the relevant code in userland PPP still needs to be looked at.

--Brett Glass

Brett,

I've fixed these two issues with ppp(8), please check the PRs: bin/130159 and bin/131250.

If it works for you please let a note and maybe someone commit this.

Best regards,
Luiz
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to