Bug 114875 - no default route, no dial on demand
no default route, no dial on demand
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: rp-pppoe (Show other bugs)
3.0
i686 Linux
medium Severity medium
: ---
: ---
Assigned To: Ngo Than
Jay Turner
:
Depends On: 116921
Blocks:
  Show dependency treegraph
 
Reported: 2004-02-03 16:04 EST by Uwe Beck
Modified: 2015-01-07 19:07 EST (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2004-09-01 22:34:07 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
fix for problem with default route (4.43 KB, text/plain)
2004-02-03 16:09 EST, Uwe Beck
no flags Details
adsl-connect script debug (1.18 KB, text/plain)
2004-02-03 16:10 EST, Uwe Beck
no flags Details
adsl-connect patch for default route (5.29 KB, application/x-gzip)
2004-02-05 12:11 EST, Uwe Beck
no flags Details

  None (edit)
Description Uwe Beck 2004-02-03 16:04:26 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; de-AT; rv:1.4) Gecko/20030922

Description of problem:
With redhat-config-network you can configure ADSL in several kinds.
I see some problems.

1. Activate at boot, set as default route

ifcfg-T_DSL contains:

ONBOOT=yes
USERCTL=no
DEFROUTE=yes

If your system have already a default route on ethx, the pppd is not
able to replace the default route. I am not know, if ppp-2.4.1-14
should be able to do this (bug or not bug).

I see in the "ifup-ppp" script for modem:

if [ "${DEFROUTE}" != no ] ; then
  # pppd will no longer delete an existing default route
  # so we have to help it out a little here.
  DEFRT=`ip route list | awk '/^default / { print $3 }'`
  [ -n "${DEFRT}" ] && echo $DEFRT > /etc/default-route
  route del default >/dev/null 2>&1
  opts="$opts defaultroute"
fi

If your interface TYPE=xDSL then the script "/sbin/adsl-start" will
start before the default route test comes in the ifup-ppp scipt.

The problem with the default route can fixed only in
"/sbin/adsl-start". To replace an old default route interface goes
down a fix in /sbin/adsl-stop is required.

You can find my fix in attachment as patch and also the new scripts.

2. Dial on Demand do not work

ONBOOT=yes
USERCTL=no
DEFROUTE=yes
DEMAND=yes

After ifup starts the script "/sbin/adsl-connect" can not create the
interface.

/var/log/messages
adsl-connect: ADSL connection lost; attempting re-connection.

Debuging /sbin/adsl-connect with set -x (with help from Lars Herrmann,
herrmann@redhat.com):

/sbin/adsl-connect: line 317:  3493 "      $SETSID $PPPD pty
"$PPPOE_CMD" $PPP_STD_OPTIONS $DEMAND $PPPD_SYNC

For more details see attachment "adsl-connect-debug.txt.gz".

3. Synchron ppp
ONBOOT=yes
USERCTL=no
DEFROUTE=yes
SYNCHRONOUS=yes

If the rpm "kernel-unsupported" is installed, the kernel modules
"n_hdlc" and "ppp_synctty" are available. ADSL works, but I see errors
on ppp0.

ifconfig
ppp0      Protokoll:Punkt-zu-Punkt Verbindung
          inet Adresse:80.131.72.18  P-z-P:217.5.98.33 
Maske:255.255.255.255
          UP PUNKTZUPUNKT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:9794 errors:9807 dropped:0 overruns:0 frame:0
          TX packets:4979 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenl�nge:3
          RX bytes:14127209 (13.4 Mb)  TX bytes:259229 (253.1 Kb)

Every received packages caused an error!

All this kinds of configurations you can create with
redhat-config-network.


Version-Release number of selected component (if applicable):
rp-pppoe-3.5-4 ppp-2.4.1-14

How reproducible:
Always

Steps to Reproduce:
1.configure ADSL in several kinds
2.start the interface
3.
    

Actual Results:  - if you have a default route on LAN interface, ADSL
can not replace replace the default route
- pppd crashed with "Segmentation fault" on Dial on Demand
- errors with synchron ppp on ppp0 (o.k. the kernel modules are
unsupported)

Expected Results:  - set (replace) default route should work
- Dial on Demand should work
- no errors on ppp0 interface in synchron modus

Additional info:
Comment 1 Uwe Beck 2004-02-03 16:09:21 EST
Created attachment 97447 [details]
fix for problem with default route
Comment 2 Uwe Beck 2004-02-03 16:10:56 EST
Created attachment 97448 [details]
adsl-connect script debug
Comment 3 Uwe Beck 2004-02-04 18:23:03 EST
Sorry, please correct:

1. Activate at boot, set as default route

The problem with the default route can fixed only in
"/sbin/adsl-start".

with:

The problem with the default route can fixed only in
"/sbin/adsl-connect".

The fix is correct.
Comment 4 Uwe Beck 2004-02-04 18:40:45 EST
The /etc/resolv.conf will not set if the ppp0 interface comes up. This
is a problem of the new configfile name.

With ifcfg-T_DSL the /etc/resolv.conf will only set new, if no
/etc/ppp/resolv.conf file exist! This file is created new every time
the interface comes up, but is not copy to /etc.

Move ifcfg-T_DSL to ifcfg-ppp0 and the mechanismus for set the
/etc/resolv.conf with new DNS info if the ppp0 comes up work correct.
Also, if the interface goes down the old /etc/resolv.conf become activ.

Remember the ISDN problems, rename the ifcfg-* to the old convention
ifcfg-ippp0 and all works correct by ISDN.
Comment 5 Ngo Than 2004-02-05 11:07:28 EST
Uwe, your attachment is not readable. Could you please send the
changes to me  again?  Thanks
Comment 6 Uwe Beck 2004-02-05 12:11:03 EST
Created attachment 97492 [details]
adsl-connect patch for default route

I fond today the next error with setting the default route.
If there is an adsl reconnect you get a new dynamic ip addess. The pppd could
not repleace the default route before reconnect.
Comment 7 Uwe Beck 2004-02-25 16:43:37 EST
pppd crash during reconnect

ppd[10238]: ioctl(PPPIOCSASYNCMAP): Inappropriate ioctl for device(25)
pppd[10238]: tcflush failed: Input/output error
pppd[10238]: Couldn't release PPP unit: Invalid argument

cat /var/log/messages
Feb 19 22:41:10 adsl01 pppd[10238]: LCP terminated by peer
Feb 19 22:41:10 adsl01 pppoe[10239]: Session 7078 terminated
--received PADT from peer
Feb 19 22:41:11 adsl01 pppoe[10239]: Sent PADT
Feb 19 22:41:11 adsl01 pppd[10238]: ioctl(PPPIOCSASYNCMAP):
Inappropriate ioctl for device(25)
Feb 19 22:41:11 adsl01 pppd[10238]: tcflush failed: Input/output error
Feb 19 22:41:11 adsl01 pppd[10238]: Couldn't release PPP unit: Invalid
argument
Feb 19 22:41:11 adsl01 pppd[10238]: Exit.
Feb 19 22:41:11 adsl01 /etc/hotplug/net.agent: NET unregister event
not supported
Feb 19 22:41:12 adsl01 adsl-connect: ADSL connection lost; attempting
re-connection.

And now the ip-down.local script was running:

Feb 19 22:41:12 adsl01 firewall: Alle Chains entleeren: succeeded
Feb 19 22:41:12 adsl01 firewall: Benutzerdefinierte Chains entfernen:
succeeded
Feb 19 22:41:12 adsl01 firewall: Resetting to the default ACCEPT
policy succeeded
Feb 19 22:41:14 adsl01 squid[10615]: Squid Parent: child process 10617
exited with status 0


Feb 19 22:41:17 adsl01 pppd[12847]: pppd 2.4.1 started by root, uid 0
Feb 19 22:41:17 adsl01 pppd[12847]: Using interface ppp0
Feb 19 22:41:17 adsl01 pppd[12847]: Connect: ppp0 <--> /dev/pts/0
Feb 19 22:41:17 adsl01 /etc/hotplug/net.agent: assuming ppp0 is
already up
Feb 19 22:41:18 adsl01 pppoe[12848]: PPP session is 7188
Feb 19 22:41:18 adsl01 pppd[12847]: not replacing existing default
route to eth0 [192.168.253.2]
Feb 19 22:41:18 adsl01 pppd[12847]: local  IP address 80.131.76.15
Feb 19 22:41:18 adsl01 pppd[12847]: remote IP address 217.5.98.33
Feb 19 22:41:18 adsl01 pppd[12847]: primary   DNS address
62.225.251.16
Feb 19 22:41:18 adsl01 pppd[12847]: secondary DNS address 194.25.2.129
Feb 19 22:41:19 adsl01 firewall: Alle Chains entleeren: succeeded
Feb 19 22:41:20 adsl01 firewall: Benutzerdefinierte Chains entfernen:
succeeded
Feb 19 22:41:20 adsl01 firewall: Resetting to the default ACCEPT
policy succeeded
Feb 19 22:41:23 adsl01 firewall: Firewall was started: succeeded
Feb 19 22:41:24 adsl01 squid[13222]: Squid Parent: child process 13224
started

After ifdown ppp0 and ifup ppp0 by hand it works up to the next pppd
crash ....

Today the next crash:

Feb 25 16:56:41 adsl01 pppd[4807]: LCP terminated by peer
Feb 25 16:56:42 adsl01 pppoe[4808]: Session 4624 terminated --
received PADT from peer
Feb 25 16:56:42 adsl01 pppoe[4808]: Sent PADT
Feb 25 16:56:42 adsl01 pppd[4807]: ioctl(PPPIOCSASYNCMAP):
Inappropriate ioctl for device(25)
Feb 25 16:56:42 adsl01 pppd[4807]: tcflush failed: Input/output error
Feb 25 16:56:42 adsl01 pppd[4807]: Exit.
Feb 25 16:56:42 adsl01 /etc/hotplug/net.agent: NET unregister event
not supported
Feb 25 16:56:43 adsl01 adsl-connect: ADSL connection lost; attempting
re-connection

I am not know, is this a seperate bug for the ppp-2.4.1-14.rpm?
Comment 8 Ngo Than 2004-02-25 18:00:58 EST
Hi Uwe, this looks like a bug in pppd. Could you please add this in
correct component (pppd) please. Thanks
Comment 9 Ngo Than 2004-03-02 08:56:09 EST
ok, the problem with default route in DSL is already fixed in
rp-pppoe-3.5-11 or newer. It will be available in rawhide soon.
Comment 10 Ngo Than 2004-03-02 12:57:00 EST
if you don't want to wait, you could download from it from
ftp://people.redhat.com/than/rawhide
Comment 11 Uwe Beck 2004-03-02 19:58:59 EST
Here are the results with rp-pppoe-3.5-11.

1. Activate at boot, set as default route

Set the new default route after reconnect works now.

But, if you have on ethernet i.e. eth0 a default route before the adsl
starts, then the pppd can not replace this exist default route. In my
patch for the asdl-connect script I have also do this.

Why I do this?
In practice, after a kickstart installation it is normal to have a
default route on the ethernet interface i.e. eth0. I think it is
consequent to delete the default route when asdl-connect script is
start and the parameter DEFROUTE=yes is set in the config file.
What do you think about?

2. Dial on Demand do not work
ONBOOT=yes
USERCTL=no
DEFROUTE=yes
DEMAND=yes

> ulimit -c unlimited
> ifup ppp0
Now I have the core files. I will put them in Bug #116927, is this o.k.?

3. Synchron ppp
ONBOOT=yes
USERCTL=no
DEFROUTE=yes
SYNCHRONOUS=yes

Please tell me, is it relevant to test this again, if 2. is fixed?

Uwe
Comment 12 Ngo Than 2004-03-03 05:05:17 EST
there's a new rp-pppoe-3.5-11.1 on people.redhat.com. Could you please
test this again. I should fix this default route. thanks

> ulimit -c unlimited
> ifup ppp0
>Now I have the core files. I will put them in Bug #116927, is this >o.k.?

yes please, put them in correct component  Bug #116927, thanks

Comment 13 Uwe Beck 2004-03-03 19:58:18 EST
Here are the results with rp-pppoe-3.5-11.1.

First start after install the new rpm:
ifup ppp0 --> replace the exist default route correct
Now I break the adsl line for test the reconnect:
reconnect --> replace the exist default route correct
In 22 hours I see the real reconnect result.
I think, the default route problem is fixed.

Uwe
Comment 14 Ngo Than 2004-03-04 04:39:25 EST
Uwe, thank you very much for your reports and testing. I can now close
this bug ;-)
Comment 15 Uwe Beck 2004-03-04 18:24:50 EST
Reconnect after 24 hours (Mar  4 23:46:07 adsl01 pppd[21006]: LCP
terminated by peer) --> replace the exist default route correct.

rp-pppoe-3.5-11.1 can distribute in errata.

Uwe
Comment 16 Ngo Than 2004-06-21 05:33:43 EDT
i have built rp-pppoe-3.5-4.1 for U3, which now includes this patch.
Comment 17 Uwe Beck 2004-07-11 17:21:41 EDT
rp-pppoe-3.5-4.1.i386.rpm works correct and can distribute with U3.

Uwe
Comment 18 Jay Turner 2004-09-01 22:34:07 EDT
An errata has been issued which should help the problem 
described in this bug report. This report is therefore being 
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files, 
please follow the link below. You may reopen this bug report 
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2004-268.html

Note You need to log in before you can comment on or make changes to this bug.