PPP Troubleshooting

This section mentions some tips and ideas for determining why a ppp connection is not working.

If the modem is not dialing, make sure it is on, the phone line is plugged into it, and the modem serial cable is plugged into the B serial port on the back of the workstation. If the B port does not work, try the A port.

Daemon Debugging

If the modem dials and a modem answers but no connection is established, then it might be helpful to get more information from aspppd. As root, edit the file /iss/etc/asppp.cf, and change the debug_level 1 line to debug_level 9. This will increase the amount of information logged to /var/adm/log/asppp.log. Run pppreset so the new setting takes effect, then as root watch the messages appended to the log file:

iss1# pppreset
iss1# tail -f /var/adm/log/asppp.log

In another terminal window, run the usual commands to bring up the connection, and log messages should appear in the asppp.log window. Of course, the log file can always be checked directly for log messages after a connection attempt. A normal sequence of log messages, beginning with the startup of the link manager by a pppreset, appears below.

20:06:37 Link manager (787) started 03/25/99
20:06:37 parse_config_file: Successful configuration
20:06:59 process_ipd_msg: ipdptp0 needs connection
conn(isp)
Trying entry from '/etc/uucp/Systems' - device type Sportster.
Device Type Sportster wanted
Trying device entry 'cua/b' from '/etc/uucp/Devices'.
processdev: calling setdevcfg(ppp, Sportster)
fd_mklock: ok
fixline(10, 19200)
gdial(usrv32-nec) called
Trying caller script 'usrv32-nec' from '/etc/uucp/Dialers'.
expect: ("")
got it
sendthem (DELAY
APAUSE
TE1V1X1Q0S2=255S12=255&A0&H1&M0&B0^M<NO CR>)
expect: (OK^M)
ATE1V1X1Q0S2=255S12=255&A0&H1&M0&B0^M^M^JOK^Mgot it
sendthem (ECHO CHECK ON
A^JATTDDTT1177115577662211550044^M^M<NO CR>)
expect: (CONNECT)
^M^JCONNECTgot it
STTY crtscts,crtsxoff
getto ret 10
expect: ("")
got it
expect: (ogin:)
^M^J^M^Jlogin:got it
sendthem (Pp1553^M)
expect: (word:)
 Pp1553^M^JPassword:got it
sendthem (Srtry8Yze^M)
call cleanup(0)
20:07:37 000001 ipdptp0 RECEIVE {Unescaped characters: 0a 0d } PPP ASYNC 89 Octe
ts {BAD FCS} NB (AP) {Unrecognized protocol:    d 0a 50 50 50 20 73 65 73 73 69 
6f 6e 20 66 72 6f 6d 20 28 34 ..... } 
20:07:37 000002 ipdptp0 SEND PPP ASYNC 23 Octets LCP Config-Req  ID=00 LEN=18 MR
U=1500 MAG#=7432077c ProtFCOMP AddrCCOMP 
20:07:37 000003 ipdptp0 RECEIVE PPP ASYNC 23 Octets NB LCP Config-ACK  ID=00 LEN
=18 MRU=1500 MAG#=7432077c ProtFCOMP AddrCCOMP 

The conn(isp) line indicates that the link manager is trying to connect using the isp system entry from the Systems file. After exchanging setup commands with the modem, the link manager sends the dial command and waits for a CONNECT message from the modem:

sendthem (ECHO CHECK ON
A^JATTDDTT1177115577662211550044^M^M<NO CR>)
expect: (CONNECT)

Once the connection is established, the authorization exchange begins with the link manager waiting for a login prompt to appear. For each of the login and password prompts the link manager sends the appropriate response, as set in the Systems file.

expect: (ogin:)
^M^J^M^Jlogin:got it
sendthem (Pp1553^M)
expect: (word:)
 Pp1553^M^JPassword:got it
sendthem (Srtry8Yze^M)

Once finished with the debugging output from aspppd, do not forget to set the debug_level in /iss/etc/asppp.cf back down to 1, then run pppreset.

One possible problem is a mismatch with the login prompt expected from the server. If the link manager never sees a login prompt which matches any of the patterns set in the Systems file, authorization will fail. See the instructions below, Manual Logins with Kermit, to check the server's authorization prompts directly.

If the link fails with messages such as shown below, then likely the serial device is in some kind of inconsistent state. Try cycling the power on the modem, but likely you will need to just reboot the machine.

processdev: calling setdevcfg(ppp, Sportster)
timed out
generic open timeout
set interface UNIX
getto ret -1
Call Failed: CAN'T ACCESS DEVICE

Manual Logins with Kermit

Sometimes it is helpful to attempt to log into the ppp server manually, to verify that the phone number, username, and password are correct and valid, and to check whether the server prompts match the expected patterns. The example below shows the steps to log in with the kermit terminal program.

2 iss1:/home/root# kermit -c -l /dev/cua/b -b 19200
Connecting to /dev/cua/b, speed 19200.
The escape character is Ctrl-\ (ASCII 28, FS)
Type the escape character followed by C to get back,
or followed by ? to see other options.
at
OK
atdt17157621504
CONNECT 19200/ARQ

login: Pp1553
Password: xxxxx
PPP session from (4.19.162.8) to 4.19.162.203 beginning....

If kermit appears to hang without printing the Connecting to message, then the problem may be the hung serial device mentioned above. If there is no OK response to the at command, then something is wrong in the modem connection, either with the cabling or with the modem itself. Otherwise, you should be able to hear the modem dial up the ISP and connect, the CONNECT message should appear, and the server should present the authorization prompts. If the server's login prompt does not match any of the patterns in /iss/etc/uucp/Systems, then that field of the isp system entry needs to be changed to match the server. For example, if for some reason the server asks

Who are you:
just change the pattern to you: in the isp line:
isp Any Sportster 19200 7621504 "" P_ZERO you: Pucar123  word: pwd123

PPP Resources

These are valuable resources for PPP information, compiled by Charlie Martin for his memo on PPP configuration: