*** empty log message ***
[ppp.git] / NeXT / INSTALL
1 Installation Instructions
2 =========================
3
4 Files, information, and an FAQ are available from:
5   http://www.thoughtport.com:8080/PPP/ 
6 Full source and an MAB installer package are available.  If you don't
7 currently have access to a WWW viewer, you may get the files from
8 ftp.thoughtport.com (199.171.224.105) in the directory /pub/next/ppp/.
9
10 If you have questions or problems, please mail
11 nextppp@listproc.thoughtport.com _before_ you go to usenet.
12
13 The procedure for an initial installation and for an upgrade are very
14 similar. However, if this is the first time you are installing PPP,
15 there are a few extra steps that you must do for the initial setup.
16 They will be described later in this document.
17
18 Making the source files
19 =========================
20
21 To install on a NeXT:
22
23  1) Read this file completely through before you start.
24
25  2) If you are on an HP-PA system, read the file
26     ./NeXT/hppa/README.hppa and install the serial
27     driver patch.  Successfull installation of this
28     patch will require a reboot of your machine.
29
30  3) If you have previously installed a SLIP package, comment out
31     the slip configuration code in /etc/rc.local and reboot your
32     machine.  SLIP and PPP _should_ interoperate but for initial
33     testing it is best to remove SLIP.
34
35  4) If you plan in using tcpdump to monitor packets, you must
36     enable the Berkley Packet Filter code.  Edit ./NeXT/Makefile
37     and make sure the '-DNBPFILTER' option is defined in DFLAGS.
38     WARNING: If you choose to use BPF, you must make sure that you
39     compile _AND LOAD_ the bpf_reloc LKS _BEFORE_ you load the
40     ppp_reloc LKS.  See the ./NeXT/bpf directory for more information.
41
42     If you don't want to compile in this code, please make sure that
43     '-DBPFILTER' is _not_ defined in the ./NeXT/Makefile DFLAGS.
44
45     Also, make sure you read the installation file in ./NeXT/bpf.  You
46     will need to create a few special device files in /dev/.
47
48  5) Type ./configure in the top level PPP directory.  This will set
49     up some necessary links.
50
51  6) If you have developer 3.2, you need to use the old version of
52     chat.c.  Perform:
53       a) cd to the chat directory
54       b) backup chat.c (mv chat.c chat.c.orig)
55       c) use the old chat (mv chat.c.3.2 chat.c)
56
57  7) Edit ./Makefile and set the installation directories.
58     If you change the ETCDIR you will need to modify pathnames in
59     pppd/pathnames.h. I recommend keeping it set to /etc/ppp. 
60     If you don't specifically like that directory, you may
61     also change the Makefile directory and put a link in /etc/ppp
62     that points to the proper place.
63
64     You will also want to set the -arch flags to the appropriate
65     architectures. 
66
67
68  8) Do a:
69       make 
70
71  9) If you are satisfied with the results, then as root, type:
72       make install
73
74
75 If you are performing an upgrade, you are done after successfully
76 making and installing the latest release.  All you need to do is to
77 reboot your machine so that the new loadable kernel server (LKS) is
78 loaded. Make sure you remember to edit /etc/rc.local and add the code
79 to load the bpf_reloc LKS (if you enabled BPF support).  You should be
80 able to start the upgraded PPP just like normal.  If this doesn't
81 work, see the "Troubleshooting" section later on.
82
83
84 Extra Steps for Initial Configuration 
85 =====================================
86
87 If this is the initial installation of PPP, there are several system
88 administration steps that must be performed.  These only need to be
89 done once.  These steps do not need to be re-performed for an upgrade.
90
91 1) Before PPP can successfully run, a module called the loadable
92    kernel server (LKS) must be linked into the system.  This is 
93    something that must be done each time the computer boots up.
94  
95    So that you don't have to do this by hand each time the machine
96    boots, you should modify a file called /etc/rc.local.  Since 
97    this is a system file, you must be root to perform the
98    modification.
99
100    This file contains code that is run each time the machine is
101    started.  This is the standard place where "local" modifications 
102    are made to the system.  First, make a backup copy of /etc/rc.local
103    (maybe named /etc/rc.local.prePPP).  It will be available in case
104    you accidentally mess up the file.  Then, using vi or your favorite
105    editor, place the following lines (not includeing the ==...==
106    separators ;) somewhere near the end of the file /etc/rc.local:
107  
108 ======================================================================
109 #
110 # Load the Berkley Packet Filter LKS
111 # This must be done before PPP.  Comment this out
112 # if you disabled BPF. If you use BPF, you _must_ 
113 # load it before the PPP LKS.  If you chaged pathnames
114 # in the Makefile, make sure the appropriate paths are
115 # used below.
116 #
117 if [ -f /usr/local/bpf/reloc/bpf_reloc ]; then
118        /usr/etc/kl_util -a /usr/local/bpf/reloc/bpf_reloc
119 fi
120
121
122 # Load the selected version of the PPP-2.2 loadable
123 # kernel server (LKS).
124 #     
125 if [ -f /usr/local/ppp/reloc/ppp_reloc ]; then
126         /usr/etc/kl_util -a /usr/local/ppp/reloc/ppp_reloc > /dev/console 2>&1
127         (echo -n ' ppp')        > /dev/console
128 fi
129 ======================================================================
130
131   This code will now be executed next time you reboot your
132   machine.  You can verify that this was executed by checking
133   the output of /usr/adm/messages upon a successful reboot.  There
134   should be a section of output that says the PPP-2.2 LKS was 
135   successfully loaded.
136
137
138 2) The default Makefile paths place PPP files  in a directory called
139    /usr/local/ppp.  There are several subdirectories under this
140    directory.  However, these directories are not part of the standard
141    UNIX Path.  The UNIX Path is a list of directories that UNIX searches 
142    when it is trying to find a command.  There are two solutions
143    to fix the problem.  You may either add specific PPP directories to
144    the current path (must be done for each individual user), or you
145    may add important files to a directory that is already in the
146    standard path.  I believe the second approach is the better
147    solution.  
148
149    This step is optional, but highly recommended.  As root,
150    execute the following commands to add important files
151    to directories that are already in the Standard UNIX path:
152
153    /bin/mkdirs -o root -g wheel -m 755 /usr/local/bin /usr/local/man/man8
154    ln -s /usr/local/ppp/bin/* /usr/local/bin
155    ln -s /usr/local/ppp/man/man8/* /usr/local/man/man8
156
157    Some or all of the 'mkdir' commands may fail if the directories
158    already exists.  This is OK.  Futher, to get the man program to
159    understand that you have added some pages to the /usr/local/man 
160    directory, you need to make sure that the environment variable
161    MANPATH includes the /usr/local/man entry.  In my .cshrc file
162    I have an entry that looks like:
163       setenv MANPATH "/usr/local/man:/usr/man:.:.."
164    See 'man man' for more information.
165
166    Once these commands are executed, the programs pppd, pppstats, and
167    chat (along with their respective man pages) will become available
168    to you from the command line.  However, before you can immediately
169    see them, you may need to log out and log back in.
170  
171
172 3) Once you start trying to make PPP connections, it is important
173    to have access to the logging information that PPP generates. This
174    will allow you to follow the progress of PPP and will aid in
175    diagnosing problems.  The user level process 'pppd' outputs
176    logging information by using the standard UNIX syslog facility.
177    Part of this facility allows you to select how much (i.e.
178    what level of verbosity) and where (i.e. to which file) this
179    information will be placed.  While the following step is optional,
180    it is highly recommended.
181
182    As root, make a backup copy of /etc/syslog.conf.  You may wish
183    to call it /etc/syslog.conf.prePPP.  If you run into problems with
184    the system logging error messages, you can replace /etc/syslog.conf
185    with the original, reboot, and then you should be back to normal.
186
187    Now, as root, use vi or your favorite editor to edit the file
188    /etc/syslog.conf.  You need to add the line:
189
190        local2.debug             /usr/adm/ppp2.2.log
191
192    It is _imperative_ that you place a <tab> character
193    between the level "local2.debug" and the file name
194    "/usr/adm/ppp2.2.log.  Do _not_ use spaces. If your
195    editor converts tab characters to spaces, you need to
196    use a different editor.  Also beware of cutting and pasting
197    between buffers.  Sometimes a tab will be converted to spaces
198    during that operation. Below is the actual contents of
199    my /etc/syslog.conf:
200
201 ======================================================================
202 local2.debug                                    /usr/adm/ppp2.2.log
203 *.err;kern.debug;auth.notice                    /dev/console
204 kern.debug;daemon,auth.notice;*.err;mail.crit   /usr/adm/messages
205 mark.debug,daemon.info                          /usr/adm/messages
206 lpr.debug                                       /usr/adm/lpd-errs
207 mail.info                                       /usr/spool/mqueue/syslog
208
209 *.alert;kern.err;daemon.err                     operator
210 *.alert                                         root
211
212 *.emerg                                         *
213 ======================================================================
214
215    Once you have modified /etc/syslog.conf, you then need to perform
216    one more step.  You need to actually create an empty logging file.
217    This step is necessary because if syslog does not see the file, it
218    will not create it.  So, removing the file is a handy way to turn
219    off the logging.  To create an empty logging file, as root execute:
220         touch /usr/adm/ppp2.2.log
221
222    Upon a successful reboot, logging will be enabled for pppd
223    (remember to specify the 'debug' option to pppd to get reasonable 
224    information sent to the logging file).
225
226
227 4) If you have a standalone machine, it is necessary for you to make
228    sure your system is configured to correctly support a network.  The
229    following steps will help in correctly configuring your machine.
230    Please note, if you do not have a standalone machine (i.e. you are
231    on a local network), you need to speak with your system
232    administrator to determine the proper configuration for your
233    machine.  The following only applies to standalone machines.
234
235    It is suggested that you reboot your machine _before_ you start 
236    these procedures.  This is to verify that you successfully
237    completed the previous steps and that your machine does indeed
238    reboot.  If it doesn't, you should replace /etc/rc.local with the
239    backup copy and reboot.  Then, determine why your modifications
240    failed.  After successfully rebooting, you are ready to move on to 
241    these steps.
242
243    As root, make a backup copy of /etc/iftab.  You might name it
244    /etc/iftab.prePPP.  Then, modify this file by adding the line:
245   
246     lo0     inet    127.0.0.1 netmask 0xff000000 -trailers up
247
248    right before the -1- entry that already exists in the file.  The
249    finished file should look similar to (minus the ---- separators):
250    ----------------------------------------------------------------------
251
252    lo0     inet    127.0.0.1 netmask 0xff000000 -trailers up
253    -1-     inet    -HOSTCONFIG-
254    *       inet    -AUTOMATIC- netmask -AUTOMATIC- -trailers up
255
256    ----------------------------------------------------------------------
257    Please note that the file  probably has a bunch of comments
258    at the top (lines that start with #).   I left those out in the
259    example above so I could save space.  They of course, can remain
260    in your copy.
261   
262    As root, make a backup copy of /etc/hostconfig.  You might
263    name it /etc/hostconfig.prePPP.  If, after the following steps, you
264    run into problems booting your machine, you may replace
265    /etc/hostconfig with the backup and you should be able to
266    successfully reboot.
267
268    Start up the HostManager.app (under /NextAdmin).  After
269    successfully entering the root password, you should get the
270    HostManager Menu.  Select the "Local..." menu option to get the
271    main window.  Modify it as follows: 
272
273            For "NetInfo Binding", select "use local domain only"
274            and make sure the box for "Readable only by local net" 
275            is checked.
276
277            For "Hostname", fill in your host name as appropriate.  Do
278            _not_ add the domain name.  For example, use "sidney"
279            rather than "sidney.cps.msu.edu". 
280
281            For "NIS Domain Name", select "None"
282
283            For "Internet Address", use the provided IP address
284            (probably 127.0.0.1) unless your system administrator has
285            assigned you your own unique IP address.  In this case,
286            reverify that you are a standalone machine.
287
288            For "Broadcast Address", select "Default"
289         
290            For "Time Standard", select "Ignore Network Time"
291
292            For "Netmask", select "Default"
293
294            For "Router", select "None"
295
296   When this is complete, click the "Set" button.   You will then have
297   the option to reboot or to skip the reboot.  Choose the appropriate 
298   action.  It is suggested that you reboot immediately and verify that
299   your system does indeed reboot (and behave as normal).  If it
300   doesn't, replace /etc/hostconfig with the backup copy and then
301   reboot.  Once you are back up, determine the problem with your
302   configuration. 
303
304   Please note that this description is generic and will work in most
305   cases.  There are lots of variations that people can and will need 
306   to make. Your network administrator will be able to provide you with
307   the correct details for your particular site.
308
309
310 Congratulations!  You have successfully installed PPP and are now
311 ready to start up a connection.  See the section "Initial Testing" for
312 steps to verify that PPP works on your system.  
313
314
315 Initial Testing
316 ===============
317
318 One of the most notoriously difficult portions of getting PPP links up
319 and running involves writing the script that automatically dials your
320 modem, connects to the peer, and starts the remote ppp process.  Once
321 you are connected to the peer, each PPP process will start
322 communications and things become much easier.
323
324 Before you dive into script writing, there is a simpler solution that
325 will allow you to test the ppp portion.  Once this works, getting the
326 dial scripts to work is a matter of sheer determination!
327
328 The mechanism is this... use a communications package (tip or kermit
329 are good choices) to manually dial the modem and log into the remote
330 server.  There, manually start up the pppd process (the remote
331 process, once started, will probably print some garbage on the screen.
332 You can ignore this). Once this is done, you can exit the
333 communications process (to free up the device it is using).  Then,
334 start your local pppd on the same device.  The pppd processes will
335 then start communicating.  The premise is that you manually perform
336 the operations that you would like your dial script to automatically
337 perform.  Once you _know_ ppp works, you can spend time on the dial
338 scripts.
339
340 Please note, you _must_ exit from your communications program before
341 you start your local pppd.  For example if you are in kermit and you
342 start the peer pppd process by hand, you must completely exit kermit
343 before you start pppd.  If you don't, the connection will not form.
344 Further, if you find that when you exit, your modem immediately hangs
345 up, you need to instruct the modem to ignore DTR.  There is an AT
346 command that will do this (AT&D on Supra), but you will need to check
347 your modem manual to determine the correct command.
348
349 If you are planning on using kermit, Stephane I. Matis
350 <petergun@vectrex.login.qc.ca>, has supplied this excellent definition
351 that you may place inside your .kermrc file to help with PPP testing:
352 ----------------------------------------------------------------------
353 set term byte 8
354
355 # define pppd 
356 define pppd -
357         !pppd < \v(line) > \v(line) defaultroute
358 ----------------------------------------------------------------------
359
360 To use this, add the above to your ~/.kermrc file (minus the '---...---'
361 separators).  Then start kermit.  After you have started the remote PPP
362 server by hand, return back to your local kermit prompt and execute
363 the command 'do pppd'.  In this particular circumstance, you will not
364 need to exit from kermit.
365
366 Before you start initial testing, you may want to read the pppd man
367 page.  This will allow you to familiarize yourself with the some of
368 the options available to you for starting your local pppd.
369
370 Of particular interest for most people is the 'defaultroute' option to
371 pppd.  If you have a standalone machine, then all your foreign traffic
372 must go to the peer.  Adding the 'defaultroute' option to pppd
373 instructs pppd to set your system up in such a manner.
374
375
376 Determining if the link is actually up
377 ======================================
378
379 There are several ways to determine if the link has actaully been
380 established.  I will go through some of them.
381
382 1) You may look at the pppd log file (typically
383    /usr/adm/ppp2.2.log).  If you see lines that look similar to:
384
385     Jan 11 23:13:38 sidney2b pppd[2141]: local  IP address 35.9.12.55
386     Jan 11 23:13:38 sidney2b pppd[2141]: remote IP address 35.9.10.13
387
388    You are probably up.
389
390 2) You may check the status of the PPP interface.  Using the command:
391      /usr/etc/ifconfig ppp0
392
393    You should see that the interface is UP and that there are valid
394    IP addresses assigned to it (0.0.0.0 is not valid).  Here is an
395    example of what you might see:
396
397         ppp0: flags=51<UP,POINTOPOINT,RUNNING>
398                 inet 35.9.12.104 --> 35.9.10.14 netmask ff000000 
399
400 3) You may check the routing.  When the connection comes up, you
401    should get at least one route to the new interface.  If you
402    specified 'defaultroute' to pppd, you should also see a default
403    route.  The command for checking routes is 'netstat -rn'.  Here
404    is an example of what you might see:
405
406         Routing tables
407         Destination      Gateway            Flags     Refs     Use  Interface
408         127.0.0.1        127.0.0.1          UH          2      558  lo0
409         35.9.10.14       35.9.12.104        UH          0        0  ppp0
410         default          35.9.10.14         UG          2       25  ppp0
411         192.42.172       192.42.172.1       U           6     1939  en0
412
413
414   In the above case, the peer is 35.9.10.14 and my local machine has
415   been assigned 35.9.12.104.  All foreign traffic goes through the
416   default route to the peer.
417
418   If you don't have an ethernet card installed on your system, you
419   will not have an 'en0' interface.
420    
421   
422 The routing issue is important.  Discussion of this issue is outside
423 the scope of these instructions, but I thought it might be beneficial
424 to list a few other important tools that may help you out.  The man
425 pages can give more details:
426   /usr/etc/ping           - send packets to an IP address or hostname
427   traceroute              - Show the route to a particular machine
428
429 The IP address that you use can be negotiated automatically in PPP.
430 Unlike SLIP, you do not have to specify an IP address when the link is
431 brought up.  If no address is specified as an argument to pppd, then
432 PPP will negotiate the address with the peer.  This is the preferred
433 mechanism of operation.  Probably the only time you should specify an
434 IP address as an argument to pppd is if you are assigned your own IP
435 address by your system administrator.  Otherwise, sit back and let PPP
436 do the work for you.
437
438
439 A Typical PPP Session
440 =====================
441
442 A tyipcal PPP session begins when you log into your system.  From a
443 terminal window, you will run your dial script by typing its name at
444 the prompt.  If you use the Workspace manager, you can double click on
445 the scripts icon.  This will start the chat process that will dial the
446 modem and log into the remote system.  It will then turn control over
447 to pppd.  If your script is successful (as described in the
448 "Determining if the link is actually up" section), you will be all
449 set.  All your apps, OmniWeb, FTP, telnet, etc should work.
450
451 Once you are through using the connection, you can close down the PPP
452 link by executing the ppp down script.  Again, this can be done by
453 typing the name of the pppdown script in a terminal window, or double
454 clicking on the appropriate icon in the Workspace manager.  At this
455 point, ppp will terminate the phone connection and pppd will die off.
456
457 You may start and kill the ppp session as many times as you like while
458 you are logged on.  However, if you do not kill the PPP session, it
459 will not die once you log out.  Thus your telephone will remain off
460 the hook and your computer will remain connected to the net until you
461 log back in and shut down the connection.  Turning off the computer
462 will obviously close the connection.
463
464
465 Name Resolution
466 ===============
467
468 Once you have a ppp connection up, you may notice that your machine
469 will not be able to resolve the names of machines to their IP
470 addresses.  You can check this by trying to telnet to a machine outside
471 your local domain.  If "telnet <IP address of machine>" is successful,
472 but "telnet <machinename>" is not, then your name resolution is not
473 configured correctly. The fix is to edit the file /etc/resolv.conf.
474 This file contains two important items.  The first is your domain
475 name.  This is the name that is automatically tacked on to a computer
476 name if you don't specify the complete name.  For example if my domain
477 is 'cps.msu.edu' and I say 'telnet sidney', the computer will try
478 'telnet sidney.cps.msu.edu' (although, it will not print this name on
479 the command line).
480
481 The second thing is a list of name servers.  These should be local to
482 your ppp provider.  Your network administrator will be able to provide
483 you with the appropriate addresses. There are default name servers to
484 use in case the local provider is not responding.  An example file
485 might look like:
486
487 ----------------------------------------------------------------------
488 domain cps.msu.edu
489
490 #
491 # Insert local name servers here
492 #
493
494
495 #
496 # MSU name servers 
497 #
498 nameserver 35.8.2.41
499 nameserver 35.8.2.41
500 nameserver 128.247.160.56
501
502 #
503 # Other servers -- hopefully something will work if needed
504 #shadooby.cc.umich.edu
505 nameserver 35.1.1.91
506 #ns.nasa.gov
507 nameserver 128.102.16.10
508 ----------------------------------------------------------------------
509
510 You will need to reboot your computer for the new nameservers to take
511 effect.
512
513
514 Making startup and shutdown scripts
515 ===================================
516
517 By this time, I'm assuming that PPP has been successfully installed.
518 However, there are a few more steps that you must perform so that
519 using PPP (now and with future upgrades) will be convenient and easy.
520 These steps are optional, but they are highly recommended.
521
522 Make scripts 'pppup' and 'pppdown' that bring up and shutdown PPP
523 connections.  There are a number of example scripts that you can copy
524 and modify.  Reading the man page for 'chat' will help you understand
525 these scripts. You should note that once these scripts are made, you
526 probably won't need to change them for future upgrades to PPP.
527
528 One note that you should be VERY careful about.  These file are shell
529 scripts.  This means that the contents are executed in a shell just as
530 if you had typed them in by hand.  You must make sure that any
531 characters that are treated specially by the shell (such as < > | \ )
532 are inside quotation marks ("").  Otherwise, they will be interpreted
533 by the shell in a manner that is probably to your dislike.  For
534 example, if your peer sends you a prompt like MSUnet> you must add it
535 to the chat portion of your script like "MSUnet>".
536
537 In order to ensure that these scripts are not removed or modified when
538 new versions of PPP are installed, you should copy all important
539 scripts into a new directory.  I suggest /usr/local/ppp/scripts.  This
540 directory will not be modified during installation. Further, as you
541 did earlier for the important binaries, you may want to add important
542 scripts to a directory that is in the default UNIX Search Path.  The
543 mechanism for doing this is as follows.  Suppose you have a script
544 'pppup' (found in /usr/local/ppp/scripts) that you want to be
545 available on your command line.  You could execute the commands:
546   /bin/mkdirs -o root -g wheel -m 755 /usr/local/bin
547   ln -s /usr/local/ppp/scripts/pppup /usr/local/bin
548
549 Once you log out and log back in, this script will be available.  If
550 you want to be able to call this script from a non-root account, you
551 need to modify the permission on the file to make it suid root.
552 Please note that this can be a potential security hazard.  See your
553 system administrator for more details.
554
555 As mentioned above, of particular interest for most people is the
556 'defaultroute' option to pppd.  If you have a standalone machine, then
557 all your foreign traffic must go to the peer.  Remember to add the
558 'defaultroute' option to pppd in your startup scripts if necessary (or
559 place it in the /etc/ppp/options file).
560
561 Troubleshooting
562 ===============
563
564 The NeXT port of ppp-2.2 is stable. However, the PD ppp-2.2 is
565 considered to be in alpha release.  If you have problem, please mail
566 me <perkins@cps.msu.edu> before you go to usenet.  I'm especially
567 interested in hearing your suggestions and comments about the package
568 and related documentation.
569
570 Any time that you have a bug report to send, please include your
571 hardware type and the LKS version number in all reports.  This number
572 may be found in the file /usr/adm/messages (once the LKS has been
573 installed). Also, for most questions, it is best to append a copy of
574 the /usr/adm/ppp2.2.log file.
575
576 There are some common problems that people have.  I have listed them
577 here:
578 ======================================================================
579 1) pppd bombs out with an error similar to:
580  Jan 26 14:46:25 localhost pppd[256]: Connected...
581  Jan 26 14:46:26 localhost pppd[256]: ioctl(PPPIOCGUNIT): Inappropriate ioctl for device
582  Jan 26 14:46:26 localhost pppd[256]: Exit.
583
584 This is typically the result of using the wrong LKS with pppd.  Some
585 versions of PPP installed the LKS (ppp_reloc) in
586 /usr/lib/kern_loader/ppp and some in /usr/local/ppp/reloc.  The second
587 is going to be the standard place for installation from now on.  Make
588 sure that your /etc/rc.local is loading the correct version of the LKS
589 and make sure you are really calling the correct pppd for use with the
590 LKS that you loaded.
591
592 ======================================================================
593
594 2) PPP works fine, but when the link is up, netinfo sleeps when you
595    try to print or send mail.
596
597 You'll see this problem if you don't have a route from your "hostname"
598 to localhost.  In essence, your host doesn't know how to "get back to
599 itself".  My guess is that you didn't follow the installation
600 instructions and you chose an IP address different than 127.0.0.1.
601 There is a fix! ;) Do this in your rc.local:
602
603 route add your_host_name localhost 0
604
605 (with the appropriate substitution of your_host_name) Without it,
606 netinfo will sleep when trying to connect to the local domain.  You
607 will need to reboot or perform this command manually (as root) for it
608 to take affect.
609
610 Many thanks to:
611   Scott Bender 
612   Pete French
613   Terence Parr   
614 for help on this one.
615
616 ======================================================================
617
618 3) People who are trying to set up a NeXT as a PPP server that
619    they dial into often complain that they can make a connection, but
620    the remote machine can only ping the server.  No other packets
621    work.
622
623 Check out the 'proxyarp' option to pppd.  Servers (connected to their
624 LAN) must proxyarp for the remote address (i.e. the address of the
625 machine dialing in).  Further, read the file ./NeXT/README.NeXT (not
626 this file) for more information on proxyarp.
627
628 ======================================================================
629
630 4) Your pppd/chat dials the modem but you cannot get a negotiation
631    to start.  The /usr/adm/ppp2.2.log file shows something similar
632    to:
633
634   Mar 13 12:02:41 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
635   Mar 13 12:02:44 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
636   Mar 13 12:02:47 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
637   Mar 13 12:02:51 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
638   Mar 13 12:02:54 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
639   Mar 13 12:02:57 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
640   Mar 13 12:03:00 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
641   Mar 13 12:03:03 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
642   Mar 13 12:03:06 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
643   Mar 13 12:03:09 crystal pppd[243]: sent [LCP ConfReq id=0x1 <pcomp> <accomp>]
644   Mar 13 12:03:12 crystal pppd[243]: LCP: timeout sending Config-Requests
645   Mar 13 12:03:12 crystal pppd[243]: Connection terminated.
646   Mar 13 12:03:12 crystal pppd[243]: Serial link is not 8-bit clean:
647   Mar 13 12:03:12 crystal pppd[243]: All received characters had bit 7 set to 0
648
649 This is a common problem.  It is typically the result of a failure to
650 properly start the remote PPP process.  Make sure you add the '-v'
651 option to chat (in your dial script) and then check the output of
652 /usr/adm/ppp2.2.log to see why chat failed to start the remote PPP
653 process.
654
655 ======================================================================
656
657 5) Your LCP sessions get into an infinite loop while trying to
658    negotiate the magic numer.  Alternately, every LCP echo you send
659    is accompanied with a message saying that "our own echo reply was
660    received".  I'm not sure why some systems have this trouble, but
661    the solution is to turn off magic number negotiation at your end. 
662    Add the '-mn' flag to pppd.
663
664 ======================================================================
665
666 6) NXHosting applications over PPP fails.  I don't know why this 
667    happens.  Rest assured, that I and others do have it working.
668    The most obvious things to check are that you have your system set
669    up as a public window server.  Also, make sure that you reset the
670    nmserver in /etc/ppp/ip-up (see the example ip-up file).  If it
671    still doesn't work, you might want to add your peer to your
672    /etc/hosts.equiv file.  I don't know if that has anything to do
673    with it or not, but I don't know why some people can't NXHost
674    and others can.
675
676
677 Updates
678 =======
679
680 You may also want to join the mailing list for PPP.  This will keep
681 you informed of new releases and will provide an arena for discussing
682 problems with the NeXT specific PPP port.  To add yourself to the list
683 (or for any other administrative requests), send an email message to:
684         listproc@listproc.thoughtport.com
685 with no subject and message body consisting of:
686         subscribe nextppp Stephen J. Perkins
687 (please use your own name ;). To send mail to all the participants on
688 the list, address your messages to:
689        nextppp@listproc.thoughtport.com
690
691 If you want announcements only, there is a second "announcements only"
692 list.  To subscribe to this, you may use the alternate body:
693         subscribe nextppp-announce Stephen J. Perkins
694 You don't need to subscribe to both.  All announcements are forwarded
695 to the regular list.
696
697 Security
698 ========
699
700 Security issues are not dealt with in this document.  Please
701 note that the pppd file is installed suid root.  This is a potential
702 security hazard.
703
704
705
706 Noted bugs
707 ==========
708
709 There have been various problems reported when trying to install LKSs
710 the way NeXT intended (i.e. placing them in /usr/lib/kern_loader/* and
711 modifying /etc/kern_loader.conf). The main problem seems to be that
712 after modifying /etc/iftab, /etc/rc.net (on NSFIP) will not correctly
713 configure the interfaces.  This means that booting under NSFIP will
714 hang. So, for the time, it is suggested that you install the package
715 manually and load the LKS in /etc/rc.local.
716
717
718 Modem Configuration
719 ===================
720
721 It is important to use hardware flow control if you use a high speed
722 modem. On my supra V.32bis modem, the command to use Hardware Flow
723 Control is 'AT&K3'.
724
725 Also, you will probably want to set your modem so that when the DTR is
726 dropped, the modem will disconnect.  On my modem the command is
727 'AT&D2' This setting disables auto-answer so if you want to allow
728 dialins, you must read your modem manual to determine the correct
729 setting.
730