Irix PPP Installation and Configuration Guide

PPP (Point to Point Protocol) is a way of extending a TCP/IP network over point-to-point links (like phone lines). Point-to-point links can be configured as dialout only, dialin only, or bidirectional (the union of dialin and dialout). These instructions are designed for Irix PPP in Irix 5.2 and later. If you are running 4.0.5 and want to run PPP, you will need to follow the instructions to install and configure MorningStar PPP.

Prior to IRIX-6.3, there is little GUI (visual tool) support for configuring modems, and much less configuring PPP. Even so, the tool does not adequately handle all cases. Therefore, this document will only discuss configuration using a shell, and these instructions presume at least limited familiarity with text editors, such as vi or jot. You need to be familiar with the shell method to do debugging, even with the GUI tool.

Verifying Software Installation Status

Before you attempt to configure your PPP software, you must make sure that the software is properly installed. You must have the standard but nondefault Irix subsystems eoe.sw.uucp and eoe.sw.ppp ( for releases prior to 6.2: eoe2.sw.uucp and eoe1.sw.ppp) installed. You can check whether they are installed with the versions command.

Type the following to verify software installation:

   % versions  eoe{1,2}.\*.{uucp,ppp}
The following is displayed (in IRIX-5.3) if the software is installed:

I = Installed, R = Removed

   Name                 Date      Description

I  eoe2                 03/24/95  IRIX Execution Environment 2, 5.3 with XFS
I  eoe2.man             03/24/95  IRIX Execution Environment Man Pages
I  eoe2.man.ppp         03/24/95  Point-to-Point Protocol Man Pages
I  eoe2.man.uucp        03/24/95  UNIX-to-UNIX Copy Man Pages
I  eoe2.sw              03/24/95  IRIX Execution Environment Software
I  eoe2.sw.ppp          03/24/95  Point-to-Point Protocol Software
I  eoe2.sw.uucp         03/24/95  UUCP Utilities
Other OS releases will show slightly different output.

Modem Selection and Installation

The next step in getting PPP running is modem installation and configuration.

IP Address Selection

IP address selection and routing are intimately connected. You cannot discuss one without at least mentioning the other. Routing is how the packets know where to go in the network. Using an incorrect IP address can cause routing problems for more than just the machine with the incorrect IP address. In the worst case it can cause the whole network to fail!

You must have an IP address before you can finish your PPP configuration. The page on IP address selection can help you determine how to assign (or request) an IP address, and how to determine how to route packets (on a server).

Terminology

Throughout this document, I refer to a server host as one that provides the service of a connection to the larger network. Similarly, a client host is one that uses the service. It is unrelated to which host does the dialing and which host answers, although the most common configuration is that the client dials ("dialout") and the server answers ("dialin").

Setting the Dialout Configuration

This involves modifying several configuration files. The information needed to perform the configuration includes:

The edits are organized by configuration file:

/etc/hosts
Really only needs 3 or 4 entries, since all others can be obtained from the nameserver after a connection is made. The hosts file could look like (with appropriate substitutions):
127.0.0.1   localhost loghost
xx.yy.zz.ww myname.sub.domain myname
aa.bb.cc.dd remote.sub.domain remote
224.0.0.0   multicast
~uucp/Devices (/usr/lib/uucp in IRIX-4, /etc/uucp in IRIX-5)
Common for all versions to allow the use of cu for debugging connection problems. Make all additions and changes at the bottom of the file to simplify future updates. Use this example for port tty2:
Direct ttyd2 - Any direct
Direct ttym2 - Any direct
Direct ttyf2 - Any direct
In order to use cu for testing or configuring your modem, you must (as root) change the ownership of the ports to uucp:
chown uucp.uucp /dev/tty[dmf]2
Note that if you do this on a host on the LAN (or WAN), that anyone who can rlogin to your machine can use cu to call out on your modem. Since these additions are only used for debugging connections, you can delete them once your connection is working.

~uucp/Devices (/etc/uucp/Devices in IRIX-5.x)
The file entries are based upon the modem type. This example assumes a ZyXEL U-1496E modem running at 38400bps on port tty2. Add the following to the bottom of the file for each dialout modem. If all modems are "equivalent" (any modem to any destination), then use the same label for each modem (ACUslip), otherwise you'll need to make different labels for each class of modem. Make sure that the last field (zy1496 in this example) is in your dialers file, or PPP will fail "mysteriously"!
ACUslip ttyf2 null 38400 212 x zy1496
~uucp/Systems (/etc/uucp/Systems in IRIX-5)
This is the "smarts" for dialing the modem and logging into the server (to start PPP). This is a "standard" chat script, modifications may be made in some circumstances. Put all entries at the end of the Systems file. There may be more than one line with the same remote name if you are using either a different modem or a different phone number (or both). Each entry should be made on a single line (this one is split to make it fit in the window better -- make sure that there is a space between the two joined parts):
Premote Any ACUslip 38400 phone_number "" \r\c \
     ogin:--ogin: login_name assword: password framing
Irix PPP sends out a message with the framing name ("starting PPP") before actually starting the protocol; adding a final match of "PPP" ensures that the login really succeeded. Other server systems send out a similar string when starting PPP (but you need to check!). It is a good idea to have the chat script match that informational string to ensure that the login succeeded. I make the convention or prefixing remote with "P" for PPP, followed by the hostname.

Starting a PPP Connection

There are several ways to start a PPP connection. All of the options are put in the file /etc/ppp.conf. See `man ppp` for details and instructions; mostly the defaults are fine. Probably the most important options are "in" for a dialin-only server, and "quiet" for the autodial client and bi-directional dial server. A startup file would look similar to the SLIP example. This example also shows adding a chkconfig option check. Note that "rmt" is only a label in /etc/ppp.conf and in fact is the loginname (userid) for a dialin host.

#!/bin/sh
# ppp boot startup script
case $1 in
   start)
       /etc/killall ppp
       if /etc/chkconfig ppp && test -x /usr/etc/ppp -a -s /etc/ppp.conf
       then
           /usr/etc/ppp -r rmt &
       fi
       ;;
   stop)
       /etc/killall -TERM ppp
       ;;
   *)
       echo "usage: $0 {start|stop}"
       ;;
esac
The entry in /etc/ppp.conf for this situation might look like the following:
rmt quiet remotehost=rmt localhost=client
       uucp_name=Prmt active_timeout=300 inactive_timeout=30
       add_route
Where "localhost=client" specifies the IP address of the local end of the PPP link, if different from the hostname. Prior to Irix-5.3 patch517 this keyword was the less logical "lochost=client", but it is still accepted for compatibility. Note that the entry in /etc/ppp.conf can cover multiple lines. The first line must start in the first column, the continuation lines must not.

For any dynamically dialed setup (IRIX-5 or 6 PPP with "quiet" option), you can start a link via a ping or rlogin or almost anything that wants to go over the link. The connection times out and hangs up the phone after a programmable idle time, then re-dials when the traffic resumes. This can save a lot of money if you are connecting long distance! The idle times are configurable (see the ppp man page). Note that it takes about 30 seconds for the first packet to get through when starting an idle line, so active timeouts much less than a couple of minutes are more frustrating than useful.

Most ISPs want to use server-assigned IP addresses. This saves IP address numbers, and reduces routing problems for them. While you can do this in quiet mode, it is neither recommended nor reliable. You need to run in out mode, and PPP must be manually started and stopped each time. A typical /etc/ppp.conf entry might look like:

rmt out remotehost=0,0 localhost=0,0
        uucp_name=Prmt add_route
Where, as usual, rmt is some name you assign to specify that connection. It is most common to call it the name of the service (eg: joeISP), but it must be one word (but I don't know the length limit).

If the other machine you are connecting to is not an SGI machine, you may have to add the -mp -ccp keywords to get PPP to connect (you may also need to add this if one of the hosts is running IRIX-6.2). Some PPP implementations do not handle the negotiation correctly, and this can cause the negotiation to fail, thus causing the connection to fail.

Accessing the Larger Network

Because of the limitations of the slow link, there are some changes to the host configuration to make it easier to access your local internet. The following links discuss configuration changes, and give some hints for more efficient access.

Setting the Dialin Configuration

A PPP server is easier to configure than a PPP client, but security is far more important, since it is required to have dialable modems. There are three parts to configuring a server:
  1. Setting up the modem (or modems). Basically the same as for dialout.
  2. Setting up the security on the machine. Important!
  3. Adding the support for PPP client(s) to dial in.
It is very important that you not use the bare add_route option in a server's /etc/ppp.conf! This can seriously screwup your network!

Security Issues

Security is a significant issue with PPP connections to a private internet. I have provided detailed information on dialup security to assist you.

Enabling PPP Client Dialin

The information in the Adding Clients document provides the configuration instructions necessary for adding clients and enabling client dialin.

Debugging Your Installation

Things don't always work the way you expect or want them to. Sometimes things either don't work to start with or they stop working for no apparent reason. Refer to the Debugging document for suggestions you can try in these situations.


Scott Henry <scotth@sgi.com>
Last modified: Sun Feb 1 13:59:00 1998