leave the real user ID as the user's now
[ppp.git] / README.linux
index 569d05fe905b8d5b6f971444e28f2841a6e0502a..c43c3e7e0776b658d48ba4c6f563da4bc69c6492 100644 (file)
@@ -1,16 +1,16 @@
-PPP for Linux                                             Version 2.2.0
+PPP for Linux                                             Version 2.3.6
 =============                                                  based on
 =============                                                  based on
-                                                              ppp-2.2.0
-                                                               Mar 1995
+                                                              ppp-2.3.6
+                                                          February 1999
 
 Michael Callahan    callahan@maths.ox.ac.uk
 Al Longyear         longyear@netcom.com
 
 Michael Callahan    callahan@maths.ox.ac.uk
 Al Longyear         longyear@netcom.com
+Paul Mackerras      Paul.Mackerras@cs.anu.edu.au
+Nick Walker         nickwalker@email.com
 
   Contents:
     INTRODUCTION
     CREDITS
 
   Contents:
     INTRODUCTION
     CREDITS
-    CHANGES FROM THE PREVIOUS VERSION
-    FUTURE PLANS
     INSTALLATION
     PROBLEMS WHICH MAY OCCUR WHILE BUILDING THE KERNEL
        A REFERENCE TO UNDEFINED _mod_use_count_
     INSTALLATION
     PROBLEMS WHICH MAY OCCUR WHILE BUILDING THE KERNEL
        A REFERENCE TO UNDEFINED _mod_use_count_
@@ -33,8 +33,9 @@ INTRODUCTION
 This file is substantially derived from the previous version for the
 pppd process 2.2.0, which itself was derived from earlier works by
 Michael Callahan. This particular version was written, modified,
 This file is substantially derived from the previous version for the
 pppd process 2.2.0, which itself was derived from earlier works by
 Michael Callahan. This particular version was written, modified,
-hacked, changed, whatever, by Al Longyear. If you find errors in this
-document, they are probably mine and not Michael's.
+hacked, changed, whatever, by Al Longyear and Paul Mackerras. If you
+find errors in this document, they are probably ours and not
+Michael's.
 
 This is a PPP driver for Linux.  It has been used by many people and
 seems to be quite stable.  It is capable of being used either as a
 
 This is a PPP driver for Linux.  It has been used by many people and
 seems to be quite stable.  It is capable of being used either as a
@@ -63,13 +64,13 @@ the link down, when it negotiates a graceful disconnect.
 
 CREDITS
 
 
 CREDITS
 
-I (MJC) wrote the original kernel driver from scratch.  Laurence
-Culhane and Fred van Kempen's slip.c was priceless as a model (a
-perusal of the files will reveal that I often mimicked what slip.c
-did).  Otherwise I just implemented what pppd needs, using RFC1331 as
+Michael Callahan wrote the original kernel driver from scratch.
+Laurence Culhane and Fred van Kempen's slip.c was priceless as a model
+(a perusal of the files will reveal that he often mimicked what slip.c
+did).  Otherwise he just implemented what pppd needs, using RFC1331 as
 a guide.  For the most part, the Linux driver provides the same
 interface as the free 386BSD and SunOS drivers.  The exception is that
 a guide.  For the most part, the Linux driver provides the same
 interface as the free 386BSD and SunOS drivers.  The exception is that
-Linux has no support for asynchronous I/O, so I hacked an ioctl into
+Linux had no support for asynchronous I/O, so he hacked an ioctl into
 the PPP kernel module that provides a signal when packets appear and
 made pppd use this instead.
 
 the PPP kernel module that provides a signal when packets appear and
 made pppd use this instead.
 
@@ -79,58 +80,19 @@ the kernel driver and the OS-independent part of pppd.  His
 contributions to Linux PPP have been immense, and so this release
 is being distributed over both our names.
 
 contributions to Linux PPP have been immense, and so this release
 is being distributed over both our names.
 
-The pppd program comes from the free distribution of PPP for Suns and
-386BSD machines, maintained by Paul Mackerras.  This package lists
-"thanks to" Brad Parker, Greg Christy, Drew D. Perkins, Rick Adams and
-Chris Torek.
-
-Jim Freeman added the code to support a ppp module and to dynamically
-extend the number of ppp devices. All ppp devices listed in the Space.c
-will be unlinked when the kernel is loaded. This feature makes the use
-of '16 channel' support obsolete.
-
-
-
-CHANGES FROM THE PREVIOUS VERSION
-
-- The kernel debug value has changed. Previously it was a level. It is now
-  a bit map with various bits meaning certain types of debug information.
-
-     0 - No debug information is generated
-     1 - Debug messages
-     2 - Log incoming packets
-     4 - Log outgoing packets
-     8 - Log tty output buffers
-    16 - Log tty input buffers
-
-  If you wish to use any combination, add the values together. For example,
-  '7' will log debug messages and incoming packages and outgoing packets.
-
-  The default setting is 0.
-
-  The simple IP trace which ppp.c performed when 'kdebug' was greater than
-  127 has been removed. You should use tcpdump for this type of trace
-  actions.
-
-- Support is added for compression control protocol. At the present time
-  the BSD-Compress and 'deflate' compression protocols are supported. A
-  testing version of the predictor-1 compression protocol was developed but
-  it is not included in this package due to unfortunate Motorola patent
-  considerations.
-
-
-FUTURE PLANS
-
-These are to be determined.
+Paul Mackerras rewrote and restructured the code for improved
+performance and to make a cleaner separation between the
+network-interface and async TTY parts of the ppp driver.
 
 
 
 
+Nick Walker added the code to query the peer for DNS server addresses.
 
 INSTALLATION
 
 
 INSTALLATION
 
-This version of PPP has been tested on kernel version 1.3.100. It will
-probably not work on kernels much earlier than this due to earlier problems
-with the kernels. If you have an earlier kernel, please upgrade to the 2.0
-kernel (when it is available).
+This version of PPP has been tested on various Linux kernel versions
+(most recently 2.0.36 and 2.2.1). It will not work on kernels before
+2.0.0. If you have an earlier kernel, please upgrade to the latest 2.0
+or 2.2 kernel.
 
 joining the PPP channel of linux-activists:
 
 
 joining the PPP channel of linux-activists:
 
@@ -190,9 +152,6 @@ The installation procedure has been totally revised for this
 version. Due to feedback from other users, it was felt that a more
 automated installation procedure be performed.
 
 version. Due to feedback from other users, it was felt that a more
 automated installation procedure be performed.
 
-Use the following procedure for all kernel versions. There are six steps
-numbered one through six. Please do them in order and not skip one.
-
 
 1. Issue the command:
 
 
 1. Issue the command:
 
@@ -204,7 +163,15 @@ set of symbolic links to the makefiles. They should link 'Makefile' to
 'Makefile.linux' in each of the directories.
 
 
 'Makefile.linux' in each of the directories.
 
 
-2. Issue the command:
+2. Update the kernel sources.
+
+If you are using a 2.2.x kernel (or a recent 2.1.x kernel), you do not
+need to do this step.  If your kernel is already configured for PPP,
+then you only need to do steps 5 and 6.  Otherwise, continue at step 3.
+
+If you are using a 2.0.x kernel, you need to update the kernel ppp
+driver to the version in this package.  You will need a copy of the
+kernel source tree to do this.  Issue the command:
 
 make kernel
 
 
 make kernel
 
@@ -256,20 +223,17 @@ not been changed.
 
 3. Build the kernel.
 
 
 3. Build the kernel.
 
-You must rebuild the kernel with this package. The driver is totally
-new and may not work with the older daemon and the newer daemon will
-not work with the older kernel driver. If you don't know how to build
-a kernel, then you should read the README file in the kernel source
-directory.
+You should rebuild the kernel with this package.  If you use the
+driver that comes with the current 2.0 kernels, it will not support
+Deflate compression or demand-dialling, but apart from that the pppd
+daemon should work.
 
 
-If you wish module support then you need to have the 'modules-1.1.87'
-package installed as the minimum version. Earlier versions of the module
-support will not work properly. All of the later ones will.
+If you don't know how to build a kernel, then you should read the
+README file in the kernel source directory.
 
 
-As of this time, the current version for the modules package is
-1.2.0. Even 1.1.87 is old. However, if you only have 1.1.87 then it
-will do as it permits the symbol table references. Please consider
-upgrading the module package however.
+If you want module support then you need to have the 'modules-2.0.0'
+package installed as the minimum version. Earlier versions of the
+module support will not work properly. All of the later ones will.
 
 Instructions on building the kernel with modules are given in the
 README.modules in the kernel source directory.
 
 Instructions on building the kernel with modules are given in the
 README.modules in the kernel source directory.
@@ -301,10 +265,10 @@ You may use the command
 
 make install
 
 
 make install
 
-to install the various programs. They will be installed into the
-/usr/sbin directory. You may not like this directory for the
-executables. The directory name is called BINDIR and is set in the
-file 'linux/Makefile.linux'.
+(as root) to install the various programs.  They will be installed
+into the /usr/sbin directory.  If you prefer to install the programs
+elsewhere, you can change the definition of BINDIR in the file
+linux/Makefile.top.
 
 Earlier versions of the pppd package used /usr/lib/ppp as the
 directory. This has been changed. If you still have code in
 
 Earlier versions of the pppd package used /usr/lib/ppp as the
 directory. This has been changed. If you still have code in
@@ -336,14 +300,10 @@ regard to any order with the BSD one. The idea is that the ppp.o code must
 be loaded to use the compressor and the VJ header compression code must be
 loaded to use ppp.o.
 
 be loaded to use the compressor and the VJ header compression code must be
 loaded to use ppp.o.
 
-You may elect not to load the BSD compression module if you desire. There
-is a controversy regarding a Motorola software patent and while it is
-believed that this code does not infringe upon the patent, it is however
-an optional component.
-
-The deflate compressor has been stated by Morotola to not infringe upon
-their patent. However, it is also new. You may not find many systems which
-use this compressor.
+You may elect not to load the BSD compression module if you desire.
+The LZW compression algorithm (as used by BSD-Compress and the
+`compress' command) is claimed to be covered by a patent held by
+Unisys in the USA and other countries.
 
 In addition, if memory is a premium, do not run the compressors. It
 may take large amounts of memory (up to 2.6 meg) for high compression
 
 In addition, if memory is a premium, do not run the compressors. It
 may take large amounts of memory (up to 2.6 meg) for high compression
@@ -362,8 +322,7 @@ be loaded. BOTH systems must support the same compression protocols.
 
 PROBLEMS WHICH MAY OCCUR WHILE BUILDING THE KERNEL
 
 
 PROBLEMS WHICH MAY OCCUR WHILE BUILDING THE KERNEL
 
-At this time with the 1.3.100 and pre-2.0 series kernels, soon to have the
-2.0 series kernel, there should not be a problem with the compilation of the
+At this time there should not be a problem with the complication of the
 drivers.
 
 
 drivers.
 
 
@@ -428,6 +387,10 @@ the names 'hillarypc' and 'chelseapc'.  You can probably find out the
 right domain name to use and the IP numbers of nameservers from
 whoever's providing your PPP link.
 
 right domain name to use and the IP numbers of nameservers from
 whoever's providing your PPP link.
 
+Alternatively you may wish to use the option `usepeerdns' and then
+modify your `ip-up' and `ip-down' scripts to automate the process. Or 
+check your messages file to see if pppd recorded the DNS addresses
+supplied by the peer ppp server.
 
 
 CONNECTING TO A PPP SERVER
 
 
 CONNECTING TO A PPP SERVER
@@ -575,7 +538,7 @@ lo        Link encap Local Loopback
           TX packets 0 errors 0 dropped 0 overrun 0
 
 ppp0      Link encap Point-to-Point Protocol
           TX packets 0 errors 0 dropped 0 overrun 0
 
 ppp0      Link encap Point-to-Point Protocol
-          inet addr 192.76.32.2  P-t-P 129.67.1.165  Mask 255.255.255.0
+          inet addr 192.76.32.3  P-t-P 129.67.1.165  Mask 255.255.255.0
           UP POINTOPOINT RUNNING  MTU 1500  Metric 1
           RX packets 33 errors 0 dropped 0 overrun 0
           TX packets 42 errors 0 dropped 0 overrun 0
           UP POINTOPOINT RUNNING  MTU 1500  Metric 1
           RX packets 33 errors 0 dropped 0 overrun 0
           TX packets 42 errors 0 dropped 0 overrun 0
@@ -739,9 +702,9 @@ pieces of information:
 modem
 crtscts
 lock
 modem
 crtscts
 lock
-:192.1.2.23
+:192.1.2.33
 
 
-Here we will insist that the remote machine use IP address 192.1.2.23,
+Here we will insist that the remote machine use IP address 192.1.2.33,
 while the local PPP interface will use the IP address associated with
 this machine's hostname in /etc/hosts.  The '-detach' option is required
 for a server. It tells the pppd process not to terminate until the modem
 while the local PPP interface will use the IP address associated with
 this machine's hostname in /etc/hosts.  The '-detach' option is required
 for a server. It tells the pppd process not to terminate until the modem
@@ -775,7 +738,7 @@ to be on the local Ethernet segment and you should give the 'proxyarp'
 option to pppd on the server.  Suppose, for example, we have this
 setup:
 
 option to pppd on the server.  Suppose, for example, we have this
 setup:
 
- 192.1.2.23                        192.1.2.17
+ 192.1.2.33                        192.1.2.17
 +-----------+      PPP link       +----------+
 | chelseapc | ------------------- |  billpc  |
 +-----------+                    +----------+
 +-----------+      PPP link       +----------+
 | chelseapc | ------------------- |  billpc  |
 +-----------+                    +----------+
@@ -796,14 +759,14 @@ piece of information:
 modem
 crtscts
 lock
 modem
 crtscts
 lock
-192.1.2.17:192.1.2.23
+192.1.2.17:192.1.2.33
 proxyarp
 
 When the link comes up, pppd will enter a "proxy arp" entry for
 chelseapc into the arp table on billpc.  What this means effectively
 is that billpc will pretend to the other machines on the 192.1.2.x
 Ethernet that its Ethernet interface is ALSO the interface for
 proxyarp
 
 When the link comes up, pppd will enter a "proxy arp" entry for
 chelseapc into the arp table on billpc.  What this means effectively
 is that billpc will pretend to the other machines on the 192.1.2.x
 Ethernet that its Ethernet interface is ALSO the interface for
-chelseapc (192.1.2.23) as well as billpc (192.1.2.17).  In practice
+chelseapc (192.1.2.33) as well as billpc (192.1.2.17).  In practice
 this means that chelseapc can communicate just as if it was directly
 connected to the Ethernet.
 
 this means that chelseapc can communicate just as if it was directly
 connected to the Ethernet.
 
@@ -842,10 +805,10 @@ the system via ftp. You would not want Joe Hacker using the ppp account
 via ftp.
 
 2. Ensure that the directory /etc/ppp is owned by 'root' and permits
 via ftp.
 
 2. Ensure that the directory /etc/ppp is owned by 'root' and permits
-only write access to the root user.
+write access only to the root user.
 
 
-3. The files /etc/ppp/options must be owned by root and accessible only
-from that user. Never permit any other user access to this file.
+3. The files /etc/ppp/options must be owned by root and writable only
+by root.
 
 4. The files /etc/ppp/ip-up and /etc/ppp/ip-down will be executed by the
 pppd process while it is root. Ensure that these files are writable only
 
 4. The files /etc/ppp/ip-up and /etc/ppp/ip-down will be executed by the
 pppd process while it is root. Ensure that these files are writable only