Package: ppp
Version: 2.4.3-20050321

Summary: The persist option does not work properly.


Scenario
********

I tried to use the pppd daemon as a child of the pptp daemon,
which gets started by an init script. (The init script is by
Klaus Triendl). A combination of pptp and pppd is required for
ADSL in Austria.

While the pptp connection is generally stable, a disconnect
of the phone cable (simulating a fall-off of the connection)
or a switch-off of the modem will lead to eventual death of
pppd, and consequently death of the controlling pptp daemon.

This is not good. On one hand, the phone line quality will
sometimes lead to similar disconnects, on the other hand,
the internet provider will typically disconnect after some
period of time.

I have tried to get things to work the other way around
(pppd calling pptp in a pty-keyword-setup) but that also
proved unstable.


How pppd dies
*************


Apparently pppd does not die immediately with the dead
connection; it dies while the next attempt to restart
the connection is made.


Here's an excerpt of the log:

<Switching off the modem>
Jun 15 22:39:41 hostname kernel: eth0: link down
Jun 15 22:40:14 hostname pptp[8340]: anon log[ctrlp_rep:pptp_ctrl.c:243]: Sent 
control packet type is 5 'Echo-Request' 
Jun 15 22:40:36 hostname pppd[8341]: No response to 5 echo-requests
Jun 15 22:40:36 hostname pppd[8341]: Serial link appears to be disconnected.
Jun 15 22:40:36 hostname pppd[8341]: Connect time 1.4 minutes.
Jun 15 22:40:36 hostname pppd[8341]: Sent 1412 bytes, received 328 bytes.
Jun 15 22:40:37 hostname postfix/postfix-script: refreshing the Postfix mail 
system
Jun 15 22:40:37 hostname postfix/master[4033]: reload configuration
Jun 15 22:40:42 hostname pppd[8341]: Connection terminated.
Jun 15 22:40:43 hostname pppd[8341]: Modem hangup
Jun 15 22:40:53 hostname ovpn-hostname[3486]: write UDPv4 []: Network is 
unreachable (code=101)
Jun 15 22:40:58 hostname pppd[8341]: Using interface ppp0
Jun 15 22:40:58 hostname pppd[8341]: Connect: ppp0 <--> /dev/pts/0
Jun 15 22:41:14 hostname pptp[8340]: anon log[ctrlp_rep:pptp_ctrl.c:243]: Sent 
control packet type is 12 'Call-Clear-Request' 
Jun 15 22:41:14 hostname pptp[8340]: anon log[pptp_conn_close:pptp_ctrl.c:425]: 
Closing PPTP connection
Jun 15 22:41:14 hostname pptp[8340]: anon log[ctrlp_rep:pptp_ctrl.c:243]: Sent 
control packet type is 3 'Stop-Control-Connection-Request' 
Jun 15 22:41:14 hostname pptp[8340]: anon log[call_callback:pptp_callmgr.c:77]: 
Closing connection
Jun 15 22:41:28 hostname pppd[8341]: LCP: timeout sending Config-Requests 
Jun 15 22:41:28 hostname pppd[8341]: Connection terminated.
Jun 15 22:41:28 hostname pppd[8341]: Using interface ppp0
Jun 15 22:41:28 hostname pppd[8341]: Connect: ppp0 <--> /dev/pts/0
Jun 15 22:41:29 hostname ntpd[4272]: sendto(131.130.253.2): Network is 
unreachable
Jun 15 22:41:34 hostname pppd[8341]: Connection terminated.
Jun 15 22:41:34 hostname pppd[8341]: tcflush failed: Bad file descriptor
Jun 15 22:41:34 hostname pppd[8341]: tcsetattr: Invalid argument (line 971)
Jun 15 22:41:35 hostname pppd[8341]: tcsetattr: Invalid argument (line 1010)
Jun 15 22:41:35 hostname pppd[8341]: Exit.
Jun 15 22:41:35 hostname pptp[8348]: anon warn[decaps_hdlc:pptp_gre.c:197]: 
short read (-1): Input/output error
Jun 15 22:41:35 hostname pptp[8348]: anon warn[decaps_hdlc:pptp_gre.c:209]: 
pppd may have shutdown, see pppd log
Jun 15 22:42:11 hostname ntpd[4272]: sendto(212.17.99.45): Network is 
unreachable
Jun 15 22:42:53 hostname kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
Jun 15 22:42:55 hostname pptp[8511]: anon log[main:pptp.c:243]: The synchronous 
pptp option is NOT activated 
Jun 15 22:42:56 hostname kernel: eth0: link down
Jun 15 22:42:58 hostname pptp[8513]: anon 
warn[open_inetsock:pptp_callmgr.c:311]: connect: No route to host
Jun 15 22:42:58 hostname pptp[8513]: anon 
fatal[callmgr_main:pptp_callmgr.c:123]: Could not open control connection to 
10.0.0.138
Jun 15 22:42:58 hostname pptp[8512]: anon fatal[open_callmgr:pptp.c:402]: Call 
manager exited with error 256
Jun 15 22:42:58 hostname pptp[8511]: anon fatal[main:pptp.c:286]: Child process 
died
<Here, pptp is apparently dead>


My provisoric solution
**********************

I have resorted to run "/etc/init.d/adsl start" through
a cron-script that checks if the pptp daemon has died.

This is for various reasons undesirable:
- it is an ad hoc solution that does not help others
- it produces unnecessary log entries
- it causes an unnecessary delay
- it cannot be nicely configured and parametrized
- it doesn't take into account whether adsl should
  run in the current run-level


This is a set-top machine (VIA processor) at my parents' place
and they have hardly a clue about computers, so it is imperative
that the ADSL daemons keep running under any circumstances.



Regards,

Claus


-- 
Claus Fischer <[EMAIL PROTECTED]>
http://www.clausfischer.com/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to