FacetWin Logo  
 
FacetCorp
 

FacetWin with PPP on SCO UNIX 3.2v4.2


With FacetWin your networked Win95 and NT users enjoy full terminal emulation along with file and printer sharing by accessing a common UNIX server for those resources. If you have a need for your remote or dial-up users to enjoy the same functionality (as if they were connected to an in-house network, only at a slower rate) then you should consider providing them with a PPP connection via a high-speed modem.

This document provides a working example and discusses this feature and things you should be aware of when configuring PPP on SCO UNIX 3.2v4.2. I will cover problems that I encountered when configuring my setup and will also recommend articles available on the WWW that you can download to become more familiar with this protocol. FacetCorp makes no claims about the accuracy of this document and we accept no liability for any errors that it may contain. Please provide us with your feedback to help us improve these notes for other FacetWin users' benefit.

What is PPP?

PPP stands for Point-to-Point Protocol. It should be used where an Ethernet or Token-Ring network connection is not practical. Although slower, it can be just as reliable as those hardwired solutions because of current modem technology which now contains improved error correction/detection and data compression techniques.

Many people use PPP today without even knowing it! It is currently the most popular method of accessing the WWW from your home PC. It basically provides a serial network connection (many times slower than a real network) by using your computer's modem and a telephone line. I recommend that you invest in as fast of a modem as your budget allows (28.8 kbps for example) for best results. When using a PPP connection your computer must transfer a larger amount of data via the serial line than it would with a plain (non-networked) serial connection.

What this Document Covers

This document describes a setup using one Windows 95 client, connecting to an SCO UNIX 3.2v4.2 server that is running FacetWin server software for file and printer resource sharing. I only discuss the client system dialing into the UNIX host system, this document does not cover outgoing PPP links from the host.

If you follow this example through you should be able to easily connect a Windows 95 PC to your SCO UNIX system via PPP and thereby have a working example from which to build. If your client system is NT or Win 3.11, the host section should not change, but the client side would have some minor differences.

What Other Documentation is Available?

Documentation for configuring PPP is pretty scarce. Be careful when acquiring information from outside sources because not all versions of PPP are configured the same, support the same options or have the same file formats. The PPP configuration files and protocol capabilities have changed considerably from SCO UNIX 3.2v4.2 to SCO UNIX 3.2v5.0, for example.

You should start by visiting the SCO Website and searching for online help documents that address configuring PPP for this specific version of UNIX. The following SCO documents in particular will be useful:

SCO TCP/IP 1.2.1 PPP Troubleshooting Guide, Fax

Configuring PPP: ping nslookup and traceroute work, telnet, rlogin and ftp hang

For these and others, try this keyword search of SCO's Database:

   

Also, a couple of useful magazine articles about configuring PPP for SCO UNIX 3.2v4.2 are in:

UNIX Review (Mar. 1996)

SysAdmin (Jan & Feb 1994)

You should also review the SCO UNIX man pages for:

ppp, pppd, ppphosts and pppstat.

Getting Started

Before starting this adventure of installing/configuring PPP, here are a few things you will need:
  1. A sense of humor!

    Installing, configuring and debugging a new installation of PPP is not a trivial matter for the faint of heart. Don't start this project at 4:00 PM on Friday unless you don't have a family life. I don't think it was an accident that the PPP gurus assigned the dedicated TCP/IP services port number to be 911.

  2. SCO UNIX 3.2v4.2 with TCP/IP and supporting utilities.

    You must be certain that you have release 1.2.1 of the TCP/IP utilities. You can check this by examining the file: /etc/perms/tcprt. Here is a sample from one of my systems:

    # @(#)tcprt  5.24.1.12 SCO Unix 3.2 TCP/IP/NFS source
    # SCCS IDENTIFICATION
    # Copyright (C) The Santa Cruz Operation, 1988.
    # This Module contains Proprietary Information of
    # The Santa Cruz Operation, and Lachman Associates Inc.
    # and should be treated as Confidential.
    #
    #prd=tcprt
    #typ=ku386
    #rel=1.2.1o
    #set="SCO TCP/IP Runtime System"
    #mnt=
    #ser="./etc/slink ./etc/telnetd ./etc/rlogind"
    
    If you do not have release 1.2.1 or greater (see "rel=" line above), search the SCO Website for the update or contact your distributor to get the necessary update. This update needs to be applied before proceeding to the next step. The following patch will not install on a TCP/IP release prior to 1.2.1.

  3. "NET382E" TCP/IP Patch.

    You must have the upgrade named "net382e" applied before PPP will function properly on this platform. You can get this from the SCO FTP site at ftp://ftp.sco.com if you don't currently have it. To check if your system has this patch applied, run custom and look for:

    "NET382E Enhanced TCP/IP 1.2.1 Drivers"

    When you install this update you will need to have your SCO serial number and activation key handy because this package requires it!

  4. FacetWin host support software.

    This will allow you to do file and printer sharing from your SCO UNIX system by providing an SMB server. You will also be able to use our world class terminal emulator via the PPP link thereby giving you incredible flexibility and power, all from one dial up connection!

  5. TCP/IP stack on your client PC.

    Win95 and NT have TCP/IP software included with these operating systems. If your client is Win 3.11, you will need to get the TCP/IP stack from Microsoft's web page before you can use this client. Visit their web page and search for a package that is called "Wolverine" or refer to our FacetWin Technical Application Note:

    Using DOS Clients with FacetWin UNIX Servers

  6. An active login port for your client to dial into.

    Make sure this works first by making a test connection. You'll need to be able to dial out of your PC, connect to your UNIX system, and login as a terminal user before continuing. If connecting to your UNIX host via direct serial line, instead of using a regular modem, you must use a null modem connection and configure your PC to bypass the modem dialing operation. The standard Win95 distribution does not include a "null modem connection" modem type but you can use the "MDMNULL.INF" null modem information file included in the FacetWin PC installation. To use this null modem file, you should first install the FacetWin Terminal Emulator to make the null modem file available, and then refer to the FacetWin Help section, Configuring a Null Modem for Use with a Direct Serial Connection, for detailed configuration instructions. Note, you can install the FacetWin Terminal on the PC either directly from the CDROM or by copying the "/usr/facetwin/fwt/setup.exe" file from the FacetWin UNIX host to your local PC hard-drive and then executing it from there.

  7. Hardware handshaking.

    To establish a reliable and efficient PPP connection you must use hardware handshaking. This requires having a modem that supports it, communication cables that are properly configured (see your modem manual for more details), and a serial port that supports hardware handshaking and modem control (ie., hang up signal processing). Some multiport products do not have this full capability so be very careful here.

Configuring the Host

You first need to add a new PPP interface to the configuration of the UNIX kernel. Do this with the SCO UNIX utility: "netconfig". I have included an example session of running "netconfig" at the end of this report. Here we use the names "ppphost0" to represent the SCO UNIX PPP host and "pppclient0" to represent the remote PPP PC client host name. Each interface must be assigned a new and unique IP address because this becomes a new and separate network interface for each system (host and client). Remember when assigning these new IP addresses these few key points:
  1. Never use the numbers: 0, 127, and 255 in an IP address. These are special numbers to TCP/IP.
  2. Each PPP connection must have two IP addresses assigned: one for the host system end and another for the remote PC client end.
  3. Each PPP interface that you configure will be a separate and unique interface.
  4. Each PPP connection should reside on its own network interface, e.g., for a Class A network:
Interface Local Address Remote Address
ppp0 220.220.220.100 220.220.220.101
ppp1 220.220.221.100 220.220.221.101
ppp2 220.220.222.100 220.220.222.101
etc.

Now that you have the necessary information to proceed, start by running the SCO UNIX utility "netconfig". This procedure will add a new PPP interface to your UNIX kernel configuration. Please see the example session of "netconfig" at the end of this document.

The "netconfig" utility will also create a new user account named "nppp". This is a generic user that can be used to make the initial PPP connection. When you login using this account name, the UNIX system will automatically start a PPP session and establish a network connection between the client and host. A password file entry will be created similar to:

   nppp:x:200:50:PPP Login:/usr/lib/ppp:/usr/lib/ppp/ppp
You then should manually edit the following PPP related files to customize and configure your interface on the UNIX host system:

/etc/tcp

You must manually add an "ifconfig" statement for your new PPP interface in the TCP startup script. Do this by first searching for any "ifconfig" statements that you have in your existing "/etc/tcp" file, for example:
   ifconfig lo0 localhost
Add the following new line after the above (note: it's just a single line, but wrapped here for readability):
   ifconfig ppp0 220.220.220.100 220.220.220.101
       -trailers netmask 255.255.255.0
This statement defines the new local IP address "220.220.220.100" for the host side and the remote IP address "220.220.220.101" for the client side of our new PPP interface. A word of warning here, this line may exceed 80 characters and wrap around the screen, keep it one long line, if you remove the PPP interface later with "netconfig" it won't be smart enough to remove more than one line out of this file on this command and your "tcp" script would then contain an error.

Also, add a default route command for the new remote system, place it after the "ifconfig" line:

   route add default 220.220.220.100 0

/etc/hosts

   # @(#)hosts 1.2 Lachman System V STREAMS TCP source
   #   SCCS IDENTIFICATION
   127.0.0.1       localhost

   [ ... ]

   220.220.220.100      ppphost0 ppphost0.sssi.com
   220.220.220.101      pppclient0 pppclient0.sssi.com
You should have two new entries similar to the above lines added by "netconfig" to your "/etc/hosts" file. These entries are created to map IP addresses to system names for TCP/IP.

/etc/ppphosts

   ###################################################
   *nppp - - idle=5 tmout=3
   220.220.220.101 - pppclient0  idle=5 tmout=3
This file will be created or updated by "netconfig" to include an entry for your new "nppp" account. Later you can add you own PPP accounts here so that you can use different account names. There is nothing special about the name "nppp" other than its startup configuration at login.

Your PPP session may not work properly with the default file that's made here by "netconfig". I made the following changes to mine before it would work with my configuration, and I disabled my dial out entry by commenting it out because I'll never have my host system calling my client system.

Example of the changes made to my "/etc/ppphosts" file:

   ###################################################
   # *nppp - - idle=5 tmout=3
   # 220.220.220.101 - pppclient0  idle=5 tmout=3
   *nppp - - idle=5 tmout=3 ipaddr VJ rtscts
With this setup, I have configured one incoming entry named "nppp". It will drop my dial up connection after 5 minutes of network inactivity ("idle=5"). If you don't want your connection to time out, leave this option out. The option "ipaddr" tells PPP to assign my client an IP number at connection. You need this function especially if you will be using more than one PPP interface at a time. The "VJ" option requests compressed TCP/IP packets. If you enable this option be sure to also enable software compression on your PC configuration. The last entry "rtscts" requests hardware handshaking to be enabled. The only other option for this is no handshaking (because XON/XOFF is not supported with PPP) and this would not be very reliable at high data speeds. Also, see the notes in the comments section of this file for other options that you may want to enable. This setup worked reliably for me.
Please refer to the FacetWin Windows Help file section, FacetWin Dial-up and Direct Serial Connections", for details about configuring the Windows 95 PPP Client PC.

Sample "netconfig" Session

As the "root" user, from a shell prompt, run:
   # netconfig

   Currently configured chains:

   1. nfs->sco_tcp
        nfs     SCO NFS Runtime System for SCO Unix
        sco_tcp SCO TCP/IP for UNIX
   2. sco_tcp->lo0
        sco_tcp SCO TCP/IP for UNIX
        lo0     SCO TCP/IP Loopback driver


   Available options:
      1. Add a chain
      2. Remove a chain
      3. Reconfigure an element in a chain
      q. Quit
   Select option: 1


   Num  Name    Description
     1. lmxc    SCO LAN Manager Client
     2. nfs     SCO NFS Runtime System for SCO Unix
     3. sco_ipx SCO IPX/SPX for UNIX
     4. sco_tcp SCO TCP/IP for UNIX
   Select top level of chain to Add or q to quit: 4


   Add chain : sco_tcp->
   Num  Name    Description
     1. e3A0    3Com 501 Ethernet driver, board 0
    ...
    16. ppp0    PPP Interface 0
    ...
    22. wwdu0   IBM Streamer Family Adapter driver, board 0
   Select next level of chain to Add or q to quit: 16


   Add chain sco_tcp->ppp0 (y/n): y

   Adding: sco_tcp->ppp0

   Configuring PPP Interface ppp0

   Installing the ppp driver into the link kit ... done.
   Installing the asyh driver into the link kit ... done.

   Installing SCO TCP/IP over ppp0
   Adding nppp account

   ...

   Please enter the following information in order to configure ppp0
   Enter the internet address of this interface: 220.220.220.100
   Enter the netmask for this interface (default: 255.255.255.0):
   Enter the internet address of the destination interface: 220.220.220.101
   Enter hostname of the destination interface: pppclient0

   Interface Address:              220.220.220.100
   Netmask:                        255.255.255.0
   Destination Address:            220.220.220.101
   Destination host name:          pppclient0

   Are these values correct? (y/n): y

   Enter local name for PPP connection or enter q to quit [sco_sv]: ppphost0

   Do you want PAP (Password Authentication) configured? (y/n) [n]
   Adding host ppphost0.sssi.com to /etc/hosts
   Adding host pppclient0 to /etc/hosts
   Updating /etc/ppphosts


   128 Pseudo ttys are currently configured, do you want to:

          1. Add Pseudo ttys
          2. Remove Pseudo ttys

   Select an option or enter q to quit [q]:


   256 TCP connections currently configured, do you want to:

          1. Add TCP Connections
          2. Remove TCP Connections

   Select an option or enter q to quit [q]:

   TCP/IP Configuration Complete.


   Currently configured chains:

   1. nfs->sco_tcp
        nfs     SCO NFS Runtime System for SCO Unix
        sco_tcp SCO TCP/IP for UNIX
   2. sco_tcp->ppp0
        sco_tcp SCO TCP/IP for UNIX
        ppp0    PPP Interface 0
   3. sco_tcp->lo0
        sco_tcp SCO TCP/IP for UNIX
        lo0     SCO TCP/IP Loopback driver


   Available options:
      1. Add a chain
      2. Remove a chain
      3. Reconfigure an element in a chain
      q. Quit
   Select option: q


   Do you want to relink the kernel now? y

       The UNIX Operating System will now be rebuilt.
       This will take a few minutes.  Please wait.

       Root for this system build is /.

       The UNIX Kernel has been rebuilt.

   Do you want this kernel to boot by default? (y/n) y
   Backing up /unix to /unix.old
   Installing new /unix

   The kernel environment includes device node files and /etc/inittab.
   The new kernel may require changes to /etc/inittab or device nodes.

   Do you want the kernel environment rebuilt? (y/n) y

   The kernel has been successfully linked and installed.
       To activate it, reboot your system.

Debugging Aides

When you are debugging your connection, examine your systems syslog file for error messages that may help you troubleshoot your problem. This file is usually located in "/usr/adm/syslog" but it could be relocated to another directory. See the file "/etc/syslog.conf" for relocation information and "man syslogd" for details.

After you get your connection established, try these sample commands to make sure you are communicating properly on the PPP network. Your output will not match mine exactly but it will give you an idea of what to expect.

From the Win95 PC client at a DOS prompt run:

   C:\>ping 220.220.220.100

   Pinging 220.220.220.100 with 32 bytes of data:

   Reply from 220.220.220.100: bytes=32 time=92ms TTL=255
   Reply from 220.220.220.100: bytes=32 time=95ms TTL=255
   Reply from 220.220.220.100: bytes=32 time=93ms TTL=255
   Reply from 220.220.220.100: bytes=32 time=96ms TTL=255

   C:\> telnet 220.220.220.100
The above commands should show that you can send and receive a simple network packet to the host system and get a telnet session established via the PPP connection. If "ping" does not work properly, try running "pppstat" on the host and see if any packets are being received. The field "correct packets received" should be incremented by one with each test packet sent from the client. Also, the field "packets sent" should be incremented when the packets are returned properly to the client.

Next, you should perform the same "ping" test from the host to the client so that you know that the host knows how to reach the client and that they can communicate in both directions.

From the SCO UNIX host system at a shell prompt:

Check your routing table with:
   # netstat -r

   Routing tables
   Destination  Gateway     Flags  Refs    Use  Interface
   localhost    localhost   UH        6      0  lo0
   ppphost0     localhost   UH        0      0  lo0
   pppclient0   ppphost0    UH        2    489  ppp0
   default      ppphost0    U         1     53  ppp0
From the UNIX host, also try:
   # ping 220.220.220.101
   PING 220.220.220.101 (220.220.220.101): 56 data bytes
   64 bytes from pppclient0 (220.220.220.101): icmp_seq=0 ttl=32 time=170 ms
   64 bytes from pppclient0 (220.220.220.101): icmp_seq=1 ttl=32 time=130 ms
   64 bytes from pppclient0 (220.220.220.101): icmp_seq=2 ttl=32 time=130 ms
   --- 220.220.220.101 ping statistics ---

   3 packets transmitted, 3 packets received, 0% packet loss
   round-trip min/avg/max = 130/143/170 ms
When you have this much working you're almost there! Now try to connect to the host FacetWin software via the PPP connection and the TCP/IP interface.

From the "Start" menu, go to the "Run" option and then at the "Open:" prompt enter, "\\220.220.220.100".

You should receive a new window containing a list of your host shares. You can then continue your integration by getting all this to work when using system names (ppphost0, etc.) in place of IP addresses by updating the "\windows\hosts" file to contain IP address to name mapping entries. At this point you can also define FacetWin terminal application connections that will give you terminal emulation sessions via your dial up PPP connection.

If your Windows 95 PC is the only system connecting to your UNIX host, you probably will not see the host listed in the Network Neighborhood server list. This problem occurs because of the way that browsing works and you shouldn't be too concerned. If this happens, to access to your host shares, from the "Start" menu, go to the "Find" option and then into "Find Computer". There enter your system name or IP Address. For example: "ppphost0" or "220.220.220.100". This will force a direct read of the host and provide you with a browse list of available shares.