System Administration Guide: Resource Management and Network Services

Tools for Troubleshooting PPP

PPP links generally have three major areas of failure:

The easiest way to find out if PPP works is to run a command, such as ping or traceroute, to a host on the peer's network, and observe the results. However, to monitor performance of a link that has been established or to troubleshoot a problematic link, you need to use PPP and UNIX debugging tools.

This section explains how to obtain diagnostic information from pppd and its associated log files. The remaining sections in this chapter describe common problems with PPP that you can discover and fix with the aid of the PPP troubleshooting tools.

How to Obtain Diagnostic Information From pppd

The next procedure shows how to view the current operation of a link on the local machine.

  1. Become superuser on the local machine.

  2. Run pppd with the serial device configured for PPP as the argument:


    # pppd /dev/ttyname debug updetach
    
    The next examples show the resulting displays for a dial-up link and a leased-line link when pppd runs in the foreground. If you run pppd debug in the background, the output produced is sent to the /etc/ppp/connect-errors file.


    Example 35-1 Output From a Properly Operating Dial-up Link


    # pppd /dev/cua/b debug updetach
    have route to 0.0.0.0/0.0.0.0 via 172.21.0.4
    serial speed set to 230400 bps
    Using interface sppp0
    Connect: sppp0 <--> /dev/cua/b
    sent [LCP ConfReq id=0x7b <asyncmap 0x0> <magic 0x73e981c8> <pcomp> <accomp>]
    rcvd [LCP Ident id=0x79 magic=0x0 "ppp-2.4.0b1 (Sun Microsystems, Inc., Dec  6 
    	2000 09:36:22)"]
    Peer Identification: ppp-2.4.0b1 (Sun Microsystems, Inc., Dec  6 2000 09:36:22)
    	rcvd [LCP ConfRej id=0x7b <asyncmap 0x0>]
    sent [LCP Ident id=0x7c magic=0x0 "ppp-2.4.0b1 (Sun Microsystems, Inc., Nov 15 
    	2000 09:38:33)"
    sent [LCP ConfReq id=0x7d <magic 0x73e981c8> <pcomp> <accomp>]
    rcvd [LCP ConfAck id=0x7d <magic 0x73e981c8> <pcomp> <accomp>]
    rcvd [LCP ConfAck id=0x78 <magic 0xdd4ad820> <pcomp> <accomp>]
    sent [LCP ConfAck id=0x78 <magic 0xdd4ad820> <pcomp> <accomp>]
    sent [LCP Ident id=0x7e magic=0x73e981c8 "ppp-2.4.0b1 (Sun Microsystems, Inc., 
    	Nov 15 2000 09:38:33)"]
    sent [IPCP ConfReq id=0x3d <addr 0.0.0.0> <compress VJ 0f 01>]
    rcvd [LCP Ident id=0x7a magic=0xdd4ad820 "ppp-2.4.0b1 (Sun Microsystems, Inc., 
    	Dec  6 2000 09:36:22)"]
    Peer Identification: ppp-2.4.0b1 (Sun Microsystems, Inc., Dec  6 2000 09:36:22)
    rcvd [IPCP ConfReq id=0x92 <addr 10.0.0.1> <compress VJ 0f 01>
    sent [IPCP ConfAck id=0x92 <addr 10.0.0.1> <compress VJ 0f 01>
    rcvd [IPCP ConfNak id=0x3d <addr 10.0.0.2>]]
    sent [IPCP ConfReq id=0x3e <addr 10.0.0.2> <compress VJ 0f 01>]
    rcvd [IPCP ConfAck id=0x3e <addr 10.0.0.2> <compress VJ 0f 01>]
    local  IP address 10.0.0.2
    remote IP address 10.0.0.1


    Example 35-2 Output From a Properly Operating Leased-Line Link


    # pppd /dev/se_hdlc1 default-asyncmap debug updetach
    pppd 2.4.0b1 (Sun Microsystems, Inc., Oct 24 2001 07:13:18) started by root, uid 0
    synchronous speed appears to be 0 bps
    init option: '/etc/ppp/peers/syncinit.sh' started (pid 105122)
    Serial port initialized.
    synchronous speed appears to be 64000 bps
    Using interface sppp0
    Connect: sppp0 <--> /dev/se_hdlc1
    sent [LCP ConfReq id=0xe9 <magic 0x474283c6><pcomp> <accomp>]
    rcvd [LCP ConfAck id=0xe9 <magic 0x474283c6><pcomp> <accomp>]
    rcvd [LCP ConfReq id=0x22 <magic 0x8e3a53ff><pcomp> <accomp>]
    sent [LCP ConfReq id=0x22 <magic 0x8e3a53ff><pcomp> <accomp>]
    sent [LCP Ident id=0xea magic=0x474283c6 "ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 
    	22 2001 14:31:44)"]
    sent [IPCP ConfReq id=0xf7 <addr 0.0.0.0> <compress VJ Of o1>]]
    sent [CCP ConfReq id=0x3f <deflate 15> <deflate(old#) 15> <bsd v1 15>]
    rcvd [LCP Ident id=0x23 magic=0x8e3a53ff "ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 
    	22 2001 14:31:44)"]
    Peer Identification: ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 22 2001 14:31:44)
    rcvd [IPCP ConfReq id=0x25 <addr 10.0.0.1> <compress VJ Of 01>]
    sent [IPCP ConfAck id=0x25 <addr 10.0.0.1> <compress VJ Of 01>]
    rcvd [CCP ConfReq id=0x3 <deflate 15> <deflate(old#) 15 <bsd v1 15>]
    sent [CCP ConfAck id=0x3 <deflate 15> <deflate(old#) 15 <bsd v1 15>]
    rcvd [IPCP ConfNak id=0xf8 <addr 10.0.0.2>]
    rcvd [IPCP ConfReq id=0xf7 <addr 10.0.0.2> <compress VJ Of 01>]
    rcvd [CCP ConfAck id=0x3f <deflate 15> <deflate(old#) 15 <bsd v1 15>]
    Deflate (15) compression enabled
    rcvd [IPCP ConfAck id=0xf8 <addr 10.0.0.2> <compress VJ Of 01>]
    local  IP address 10.0.0.2
    remote IP address 10.0.0.1

How to Turn on PPP Debugging

The next task shows how to use the pppd command to obtain debugging information.


Note -

You only need to perform step 1 through step 3 once for each host. Thereafter, you can proceed to step 4 to turn on debugging for the host.


  1. Create a log file to hold output from pppd.


    % touch /var/log/pppdebug
    

  2. Add the following syslog facilities for pppd in /etc/syslog.conf.


    daemon.debug;local2.debug       /var/log/pppdebug
    

  3. Restart syslogd.


    % pkill -HUP -x syslogd
    

  4. Turn on debugging for calls to a particular peer by using the following syntax of pppd.


    % pppd debug call peer-name 
    

    peer-name must be the name of a file in the /etc/ppp/peers directory.

  5. View the contents of the log file.


    % tail -f /var/log/pppdebug
    

    For an example of a log file, see Example 35-3.