Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Aug 2010 13:47:29 +0200
From:      Luigi Rizzo <rizzo@iet.unipi.it>
To:        stable@freebsd.org
Cc:        net@freebsd.org
Subject:   8.1R: ppp default route uses wrong Netif (with pppoe)
Message-ID:  <20100811114729.GA83355@onelab2.iet.unipi.it>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100811114729.GA83355>