Hi,
I found the following problem with ppp after upgrading to 8.1
I am using ppp -ddial -nat ... over pppoe. The entry in ppp.conf has
these lines (plus others not relevant here):
my-provider:
set line PPPoE:nfe0
...
add default HISADDR
Up to 7.2 this sufficed to establish a route using 'tun0' as the device
Destination Gateway Flags Refs Use Netif Expire
default 81.174.0.1 UGS 0 1885 tun0
With the upgrade to 8.1R the default route points to 'nfe0', i.e. the
device used to talk pppoe, instead of tun0.
This causes a number of failures which prevent operation.
I am not sure though whether the bug is in PPP or in the kernel,
and why ppp now uses the wrong device to install the route entry.
A functional workaround is the following (note you need all three lines!):
add default HISADDR
shell route delete default
shell route add default -interface INTERFACE
where the first line installs the bogus entry but supplies a default
address for outgoing packets, and the other two entries fix
the interface.
I tried to remove the 'add default HISADDR' but it does not seem
to work -- tcpdump shows outgoing packets carrying 0.0.0.0 as src-ip,
which prevents replies from coming back.
I'll submit a PR later, but would be curious to know if someone
has ideas on what could be a proper fix.
cheers
luigi
Luigi Rizzo <rizzo@iet.unipi.it> wrote:
> Hi,
> I found the following problem with ppp after upgrading to 8.1
>
> I am using ppp -ddial -nat ... over pppoe. The entry in ppp.conf has
> these lines (plus others not relevant here):
>
> my-provider:
> set line PPPoE:nfe0
> ...
> add default HISADDR
>
> Up to 7.2 this sufficed to establish a route using 'tun0' as the
device
>
> Destination Gateway Flags Refs Use Netif
Expire
> default 81.174.0.1 UGS 0 1885 tun0
>
> With the upgrade to 8.1R the default route points to 'nfe0', i.e.
the
> device used to talk pppoe, instead of tun0.
> This causes a number of failures which prevent operation.
That's strange ... I have a simuilar setup on my router
which was upgraded from FreeBSD 6.x to 8.x recently.
I don't have any routing problems. So maybe it is a
problem with your configuration, not a FreeBSD bug.
My rc.conf contains:
ifconfig_fxp0="up"
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="pppoe_myisp"
gateway_enable="YES"
And ppp.conf looks like this (few things omitted for brevity):
default:
set ifaddr 10.0.0.1/0 10.0.0.2/0
set server /var/run/ppp.ctl "" 0177
nat enable yes
pppoe_myisp:
set device PPPoE:fxp0
set authname myauthname
set authkey myauthkey
set dial
set login
add default HISADDR
enable dns
resolv readonly
The default route is set correctly:
$ route get default
route to: default
destination: default
mask: default
gateway: gateway.myisp.net
interface: tun0
flags: <UP,GATEWAY,DONE,STATIC>
recvpipe sendpipe ssthresh rtt,msec mtu weight expire
0 0 0 0 1492 1 0
Best regards
Oliver
--
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606, Gesch?ftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht M?n-
chen, HRB 125758, Gesch?ftsf?hrer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd
Blogging: Never before have so many people
with so little to say said so much to so few.
Michael BlackHeart
2010-Aug-12 16:00 UTC
8.1R: ppp default route uses wrong Netif (with pppoe)
As I understand this isn't a bug but a mistype or misunderstand of config ( see man ppp.conf ) I'm running myself 8.0, 8.1 and currently 8.STABLE with pppoe in this way and never have a problem as many peolpe do. Look in listing> my-provider: > set line PPPoE:nfe0Here's some "set line" and should be "set device" like this:> pppoe_myisp: > set device PPPoE:fxp0I think that's the clue.