ppp for HP/UX 


  I got so many questions by email and in comp.sys.hpux about ppp on a HP workstation that I decided to put this page together. As of today HP doesn't support ppp on their workstations, only SLIP.  The man pages for ppl do mention ppp, but it's not implemented yet.  (Note: These statements were true prior to the release of HP-UX 11.0 - Ed.)

There are two ways to get ppp for HP/UX. Morningstar provides an excellent commercial package, for HP/UX 9.x. Support for 10.x is in the works, according to their webpages. Progressive Systems has taken over the support for Morningstar's ppp. Visit them at http://www.Progressive-Systems.com. Visit Morningstar at http://www.morningstar.com.

The other option is to use iij-ppp. It's a freely available package which does a very good job. The rest of this webpage discusses iij-ppp.


NOTE: iij-ppp was *not* written by me, nor the port to HP/UX done by me. It was written by Toshiharu Ohno. The person that did the HP/UX port doesn't want to be contacted about it.

There's a big difference between HP/UX 9.x and HP/UX 10.x. Version 0.93 of iij-ppp runs on HP/UX 9.x systems only. I never tried that one, since I don't have a 9.x system at home. [Putting my HP hat on] You should upgrade to HP/UX 10.20 anyway, 9.x doesn't support HP's latest processor, the PA8000. [Taking it off] I did try, and succesfully run iij-ppp version 0.94 on my 715.

If you're using Netscape, hold down shift while left-clicking on the links below to download the files.

iij-ppp0.94beta2.hpux10.tar.gz This is iij-ppp version 0.94 for HP/UX 10.x. Includes source code and example configurations.

ppp-stat.tar.gz. This is the ppp statically linked executable of version 0.94 compiled for HP/UX 10.20. Download this statically linked binary if you don't have the ANSI C compiler. This might run on HP/UX 10.10 or 10.01, but I didn't try it.

ppp-dyn.tar.gz. This is the dynamically linked ppp executable of version 0.94 compiled for HP/UX 10.20. This one definitely only runs on HP/UX 10.20.

iij-ppp.0.93.hp.tar.gz This is iij-ppp version 0.93 for HP/UX 9.x.

iijppp-doc.ps.gz Postscript version of the documentation (in english) for version 0.94

iijppp-doc.tar.gz LaTex files of the documentation (in english) for version 0.94

iijppp-doc.pdf.gz PDF version of the above documentation. You'll need AcroRead version 3.0 or better. Thanks to Jim Gaynor.


Some useful links:

The comp.sys.hp.hpux FAQ

The HP/UX porting and archive centre

HP's Workstations Systems Division


HINTS, TIPS and ANSWERS to QUESTIONS


General setup instructions for iij-ppp

First of all, you'll need to get your modem going. On a series 700 computer a standard PC modem cable will work just fine. HP/UX 9.x limitsthe speed to 38k4. On HP/UX 10.x that limit is gone, it's at least 112K. It's not a hardware limitation, it's a software limitation.

Next, make sure you're reasonably up to date on the PTY/MUX patches. The easiest way to install a modem is to use SAM (as root) to do it. You can do it by hand using mknod, but it's more work. If you do don't forget to
enable RTS/CTS handshaking.

Use kermit to check if you can talk to the modem, forget cu. cu is a pain to use and to setup. Alternatively, you can use the terminal function in ppp to see if you can talk to the modem.

Download the right version of ppp for your system. Be sure to get the HP/UX 9.x or HP/UX 10.x version. iij-ppp supports both dynamic and static IP addresses. I am using a static IP address at the moment. Install the ppp binary somewhere convenient, and run it as root (or do a setuid). The three config files go in /etc/. These are ppp.conf, ppp.linkup andppp.secret. You don't really need the ppp.secret, only for PAP and CHAP. I am using the default ppp.linkup file. The linkup file will make sure the right stuff gets added to the routing tables, which you can check
with the netstat -rn command.

The iij-ppp documentation talks about a tunnel device needed to get it running. You don't need that for HP/UX. Under HP/UX ppp uses the niX (normally ni0) network device, which is compiled into the kernel by default for HP/UX 10.x. This you can check in SAM as well.

You'll also need to setup the right /etc/resolv.conf file and /etc/rc.config.d/netconf file.

Configuration of iij-ppp

If you get the source distribution of ppp for HP/UX 10.x (iij-ppp.0.94beta2.hpux10.tar.gz), read the README.hpux10 file. Also the HOWTO file in this distribution is a quick guide to get things going. A full explanation of all the ppp features is in iiijppp-doc.ps.gz file, on my website. If you really want to know all the details, read it. There are pre-compiled binaries for HP/UX 10.x on my website, both compiled statically and dynamically. The dynamically linked version should normally work. If you get some weird error, try the statically linked one.

Normally, in a dialup situation, your ISP will assign you an IP address on the fly. iij-ppp can deal with that. All you'll need to get ppp going is the IP address of the machine you'll dial into. The following is just an example, this is how I dial into my ISP, verinet communciations.

Add a ISP: session to the default /etc/ppp.conf file. In my case that is verinet.

# Default setup. Executed always when PPP is invoked.
#
default:
 set device /dev/ttyd1p0 (or whatever SAM told you your modem is at)
 set speed 115200        (or 38k4 for HP/UX 9.x)
 disable lqr
 deny lqr
 set debug phase chat
 set dial "ABORT BUSY ABORT NO\\sCARRIR TIMEOUT 5 \"\" AT OK-AT-OK
\\dATDT\\T TIMEOUT 40
CONNECT"
#
#################################
#### START of Verinet section ###
#################################
#
verinet:
 set phone 4160801
 set login "TIMEOUT 10 host:-\\r-host: ppp login-\\r-login: <my login
name  Password-\\r-Password: <password\\r\\ppppp"
 set ifaddr 204.144.246.213 204.144.246.2/24
 add 0 0 204.144.246.2

The 'set login' is an interactive script. It's explained in the iiijppp-doc manual. Basically, if it receives a host: it'll send a
return (-\\r-) then it'll expect host: again, if so it'll send ppp,  if it gets login: back it'll then send <my login name, then is it's get's password: it'll send the <password  do a carriage return (\\r) and wait 1.25 seconds \\ppppp. This login protocol might be different for your ISP!

set ifaddr 204.144.246.213 204.144.246.2/24

204.144.246.213 is the IP address of my machine. I use this because I have a static IP address (204.144.246.213). DO CHANGE THIS TO YOUR OWN IP ADDRESS, if you got a static one. If you don't have a static IP address, use the following:

 set ifaddr 0 204.144.246.2/24

This lets the computer you're dialing (204.144.246.2/24) define your IP address, by specifying 0 as your address.
The /24 behind the 204.144.246.2 address is a mask, and it defines the number of significant bits in the address. In this case 24 bits, counting from the left. This means that any address between 204.144.246.0 and 204.144.246.255 is a valid one ppp accepts. (204.144.246 is 24 bits). Of course you'll have to add the IP address of your ISP here!

 add 0 255.255.255.0 204.144.246.2

This adds a 'default' routing entry to the routing table (do a netstat -rn to see the current table). I didn't really need this, the default 'ppp.linkup' file in /etc worked for me. You might or might not need it, but some redundancy can't hurt.

To test if things work, type ppp. Then on the prompt type 'term':

ppp term

This will get you into terminal mode, you should be able to talk to your modem directly. Try it by typing ATI3, or a similar AT command. Type ~. to exit termimal mode. You can also dial manually in terminal mode (ATDT<phone number) and login manually. If things work, ppp will take over as soon as you're logged in and the prompt will change to caps, like PPP

In order to have ppp dial for you type ppp <return and on the ppp promt type 'dial verinet'. There you go! Everything should work. It's also possible to have ppp run as a daemon process that will dial automatically as soon as there is internet traffic. However, I found that it always dials, since any packet on the network triggers the auto dial function. It is possible to filter a whole bunch of packets out so that the autodial doesn't trigger, but I didn't bother trying that.

configuration of /etc/ppp.linkup

The default ppp.linkup will work just fine. Here it is. All it does is adding the right routing entries to the routing tables. Check with netstat -rn.

# If we are invked with an argument ``iij-demand'', then
# delete existing route entry and add peer as default gateway.
#
iij-demand:
 delete ALL
 add 0 0 HISADDR
#
# Otherwide, simply add peer as default gateway.
#
MYADDR:
 add 0 0 HISADDR

configuration of /etc/resolv.conf

Here is the resolv.conf I use. Basically add the domain name of your ISP and add one or two nameservers.

domain verinet.com
nameserver 204.144.246.3
nameserver 204.144.246.4

TIP: If you reboot your machine it'll take forever to get through the boot process, since it will try to do a nameserver lookup during boot. Because you're not connected at that time, this is a problem. To solve this, swap this resolv.conf file with one where the nameserver lines are commented out before rebooting:

domain verinet.com
#nameserver 204.144.246.3
#nameserver 204.144.246.4

Then, before connecting to your ISP, swap them back.

configuration of /etc/rc.config.d/netconf

All you really need to set is your hostname and IP address in this text file. The rest all deals with setting up your lan cards, not the niX devices.



 
 

Rev. December 1998



Questions? Don't ask me ! Check these links instead:

http://www.dutchworks.nl/htbin/hpsysadmin to query the hp-ux system administration mailing list archives, or
http://www.dejanews.com for USENET postings in "comp.sys.hp.hpux".