home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-04-20 | 40.0 KB | 1,120 lines |
- Linux PPP HOWTO
- Al Longyear, longyear@netcom.com
- January 8, 1995.
-
- This document contains a list the most Frequently Asked Questions
- (FAQ) about PPP for Linux (and their answers). It is really not a
- HOWTO, but is in `classical' Question / Answer form. This is but one
- of the Linux HOWTO/FAQ documents. You can get the HOWTO's from sun-
- site.unc.edu:/pub/Linux/doc/HOWTO (this is the `official' place) or
- via WWW from the Linux Documentation home page
- (http://sunsite.unc.edu/mdw/linux.hmtl). You cannot rely on the
- HOWTO's being posted to comp.os.linux.answers, as some news feeds have
- complained about their size.
-
- 1. Please send any corrections to longyear@netcom.com. Preface
-
- Throughout this document, I have used the word `remote' to mean `the
- system at the other end of the modem link'. It is also called `peer'
- in the PPP documentation. Another name for this is called the
- `gateway' when the term is use for routing. Its IP address will show
- as the `P-t-P' address if you use ifconfig.
-
- Microsoft is a registered trademark of Microsoft Corporation. Morning
- Star is a registered trademark of Morning Star Technologies
- Incorporated. All other products mentioned are trademarks of their
- respective companies.
-
-
-
- 2. General information
-
- 2.1. A: PPP, or Point-to-Point Protocol, is a recognized `official'
- internet protocol. It is a protocol used to exchange IP frames (and
- others) over a serial link. The current RFC for PPP is 1661. There
- are many related ones. What is PPP?
-
- Contrary to what some people think, it does not mean "Peer to Peer
- Processing"; although you may do peer-peer communications using TCP/IP
- over a PPP link.
-
-
-
- 2.2. A: In general, no. A `classical' PPP implementation requires
- that you make changes to the routes and network devices supported by
- the operating system. This may mean that you will have to rebuild the
- kernel for the remote computer. My university (company) does not sup-
- port PPP. Can I use PPP?
-
- This is not a job for a general user. If you can convince your
- administration people that PPP is a `good thing' then you stand a
- chance of getting it implemented. If you can't, then you probably
- can't use PPP.
-
- However, if you are using a system which is supported by the people
- who are marketing the "TIA" (The Internet Adapter) package, then there
- is hope. I do not have much information on this package, however,
- from what I have found, they plan to support PPP in "the next
- version". (My information may be old. Contact them directly.
- Information on TIA is available at ftp.marketplace.com in the /pub/tia
- directory.)
-
- A Linux port is on their list.
-
- If your system is not supported by TIA and you can't convince the
- admin group to support PPP then you should use the `term' package.
- Some service providers will object to you running `term'. They have
- many different reasons, however the most common is `security
- concerns'.
-
-
-
- 2.3. A: It is in two parts. The first part is in the kernel. In the
- kernels from 1.1.13, the driver is part of the network system drivers.
- Where is PPP?
-
- Do not replace the driver in the kernel with a version from the pppd
- package!!!
-
- The second part is the `daemon' process, pppd. This is a required
- process. The source to it is in the file ppp-2.1.2b.tar.gz located on
- sunsite.unc.edu in the /pub/Linux/system/Networking/serial directory.
-
- It should also be somewhere on ftp.funet.fi.
-
- For kernels before 1.1.13, the necessary driver is included in the
- daemon code.
-
-
-
- 2.4. A: Read The Fine Material available. I just obtained PPP. What
- do I do with it?
-
- Start by reading the README file and then the README.linux file. The
- documentation sources are listed below.
-
-
-
- 2.5. (Where's the documentation? Is there a HOWTO?, etc.) Where are
- additional sources of information for PPP?
-
- A: There are several sources of information for the PPP protocol as
- implemented under Linux.
-
-
- o The README file in the source package.
-
- o The README.linux file in the source package.
-
- o The Net-2-HOWTO document.
-
- o The Network Administration Guide.
-
- o The pppd man page.
-
- o The ppp FAQ document. (This is not it, by the way.)
-
- The HOWTO file is stored in the usual place for the Linux HOWTOs.
- That is currently on sunsite.unc.edu in the directory
- /pub/Linux/docs/HOWTO.
-
- The Network Administration Guide is available in the docs/linux-doc-
- project/nag directory on sunsite. It is published by O'Riellly and
- Associates. So, if you want a really professional document, then buy
- a copy from your local bookstore.
-
- The `man' pages are included in the source package. You will probably
- have to move them to the normal man directory, /usr/man/man8 before
- the man command may find them. Alternately, you may use nroff and
- more to view them directly.
-
- The PPP faq document describes the PPP protocol itself and the various
- implementations. You will find the FAQ for the usenet news group,
- comp.protocols.ppp, archived on rtfm.mit.edu in the /usenet directory.
- It is in eight parts at the present time.
-
-
-
- 2.6. A: I would prefer that you post them to the comp.protocols.ppp
- group. That is its purpose. I recognize that most people tend to post
- things to the comp.os.linux.* groups first. You will usually get a
- response even if you use these wrong groups. However, it is better
- that you do ask in the proper group. Where should I post questions
- about PPP?
-
- Very few questions are related directly to the Linux port. Most of
- the questions are general use of the ppp package and are exactly
- applicable to the remainder of the pppd users.
-
- Please, if you must use usenet for PPP questions, use
- comp.protocols.ppp.
-
-
-
- 2.7. A: This is one of the most sickening questions. I realize that
- this is a plea for help. However, it is practically useless to post
- this message with no other information. I, and most others, will only
- ignore it. The PPP software doesn't work. HELP!!!
-
- Please see the question regarding errors which normally occur at the
- modem's disconnection. They are not the cause of a problem, only a
- symptom. Posting a message with only those errors is also meaningless.
-
- What is needed is the output of the system log (syslog) when you run
- the pppd program with the option `debug'. In addition, if you are
- using chat then please use the `-v' option to run the sequence with
- verbose output.
-
- Please include the output from the kernel's startup. This shows the
- various kernel hardware information such as your UART type, PPP
- version, etc.
-
- Please include all information that you can relating to the problem.
- However your system configuration, disk drive configuration, terminal
- type, mouse location and button status, etc. are irrelevant. What is
- important is the system to which your are trying to contact, the ppp
- (or terminal server) that they are using, the modem types and speed
- that you are using, etc.
-
- Take care and go through the output. Remove the references to the
- telephone number, your account name, and the password. They are not
- important to analyzing the problem and would pose a security risk to
- you if you published them to usenet. Also discard the lines which
- neither come from the kernel nor pppd.
-
- Do NOT run the pppd program with the option `kdebug 7' and post that!
-
- If the problem warrants examining the data stream, then you will be
- contacted by email and asked to mail the trace. Usenet already costs
- too much for too many people.
-
- Information is written to various levels. The debug information is
- written to the debug level. The informational messages are written to
- the info level. The errors are written to the error level. Please
- include all levels the the `local2' group which come from the pppd
- process.
-
- In addition, please do not delete the time stamp information. It is
- important.
- 2.8. server? A: Yes. The local address is not significant to the
- local system. You must have a unique remote IP address. The routing
- is performed based upon the remote IP address and not the local IP
- address. Can I use the same local IP address for all of the lines of
- my PPP
-
-
-
- 3. Other implementations
-
- 3.1. A: Check the PPP FAQ document mentioned above. Do you know of a
- implementation for PPP other than Linux?
-
- AIX is due to be supported in the 2.2 version of the pppd process.
- HP-UX is, to my knowledge, only supported by the Morning Star
- commercial package.
-
- If you don't find one listed then post to the comp.protocols.ppp group
- and not the Linux group.
-
- (Please don't mail me asking for "Do you know of a PPP package for
- ..."? These requests will now be `appropriately' filed. ;-))
-
-
-
- 3.2. A: Yes, we know. The dp package was considered very early in
- the development stage quite a few months back. It is nice. It sup-
- ports 'demand dial'. It also only works with systems which support
- streams. This is primarily the SunOS (Solaris) operating systems.
- Did you know that there is a program called `dp'?
-
- Linux, at the present time, does not supports streams.
-
- There are several other packages for PPP available on the `net'. The
- `portable ppp' package is very much like the TIA code. There is
- another package called simply `ppp'. There is code for PPP in the KA9Q
- package.
-
- Of all of the packages available, the pppd package was the closest to
- the requirements and functions of Linux to warrant the port.
-
- (If you want more information about these other packages, ask in the
- comp.protocols.ppp group!)
-
-
-
- 3.3. What RFCs describe the PPP protocol?
-
- A: The current implementation of PPP is a mixture of several. The
- major portion of the PPP code is written against the RFCs 1331 and
- 1332. These RFCs were later obsoleted. 1331 was replaced by 1548 and
- that, in turn, was obsoleted by 1661 six months later.
-
- Most implementations of PPP will be happy to talk to the Linux PPP
- code.
-
- A complete list is in the PPP faq.
-
- [to quote the FAQ document]:
-
-
- All of 1134, 1171, and 1172 (and 1055, for that matter :-)
- have been obsoleted. They're interesting only if you want
- to debug a connection with an ancient PPP implementation,
- and you're wondering why (e.g.) it asked you for IPCP
- option 2 with a length of only 4, and Compression-Type
- 0x0037.
-
- (There's a lot of that still running around - be careful out
- there.)
-
-
- Linux PPP will not support this.
-
-
-
- 4. Compatibility
-
- 4.1. A: No. SLIP works with SLIP. PPP works with PPP. Can PPP talk
- to a SLIP interface?
-
- Some vendors may offer products which work both as SLIP and PPP.
- However, they must be configured to run in one mode or the other.
- There is no present method to determine, based upon the protocol
- passed at the time of a connection, which combination of SLIP
- protocols or PPP is being requested.
-
-
-
- 5. Which is better?
-
- 5.1. A: IT DEPENDS UPON MANY FACTORS. The people who post this type
- of question have usually not read the Net-2-HOWTO document. Which is
- better? PPP or SLIP?
-
- A good technical discussion is available at Morning Star's www server,
- www.morningstar.com.
-
-
-
- 5.2. A: If you have the choice, use CHAP. Failing that, PAP is bet-
- ter than nothing. Is CHAP or PAP better for authentication?
-
-
-
- 6. Authentication files
-
- 6.1. /etc/ppp/pap-secrets file
-
- A: The PAP protocol is most often implemented as your user name and
- password. You need to include the name of the remote system, your
- account name, and the password. If the user on abbot wishes to call
- costello, the entry would be similar to the following.
-
-
-
- #remote account password IP address list
- * abbot firstbase
-
-
-
-
-
- 6.2. A: The most common problem is that people don't recognize that
- CHAP deals with a pair of secrets. Both computers involved in the
- link must have both secrets to work. /etc/ppp/chap-secrets file
-
- For example, if abbot wants to talk to costello, then abbot's file
- would have:
-
-
-
- #local remote secret IP address list
- abbot costello firstbase
- costello abbot who
-
-
-
-
- And costello's file would have:
-
-
-
- #local remote secret IP address list
- abbot costello firstbase
- costello abbot who
-
-
-
-
-
- 7. Construction problems
-
- 7.1. A: Did you edit the ppp.c file to reflect the settings for the
- kernel that you are using? There are two defines which must be set
- correctly if you are going to compile the code for PPP. I get compile
- errors when I try to compile the kernel
-
-
-
-
- ._____________________.__________________._________________________.
- | | | |
- | kernel version | NET02D | NEW_TTY_DRIVERS |
- |_____________________|__________________|_________________________|
- | | |
- | < 1.0.0 | UPGRADE!!! |
- |_____________________|__________________._________________________|
- | 1.0.0 - 1.0.* | defined | undefined |
- | 1.1.0 - 1.1.3 | defined | undefined |
- | 1.1.4 - 1.1.12 | undefined | undefined |
- |_____________________|__________________|_________________________|
- | | |
- | 1.1.13 | UPGRADE!!! |
- |_____________________|__________________._________________________|
- | | | |
- | 1.1.14 - ... NOTE | undefined | defined |
- |_____________________|__________________|_________________________|
-
-
-
-
- The third define near the top of the file is called
- OPTIMIZE_FLAG_TIME. This may or may not be set with any version of
- the kernel which supports PPP.
-
- Additional information is in the ppp.c file.
-
- NOTE: For kernels from 1.1.14, do not replace the ppp.c file in the
- drivers/net directory nor the ppp.h file in the /usr/include/linux
- directory. The drivers and the include file are the proper values for
- your kernel.
-
- So, from the above list, you will find that 1.1.8 kernel will need
- NET02D and NEW_TTY_DRIVERS both undefined. Likewise, the 1.1.18
- kernel will already have things configured for it. Do nothing
- special.
-
- 8. Problems running pppd
-
- 8.1. PPPD won't run unless you are root
-
- A: The pppd process needs to make changes to the networking system and
- this can only be done if you are the root user. If you wish to run
- pppd from other than the root user then the pppd program needs to be
- secured 'suid to root'.
-
-
-
- chown root pppd
- chmod 4755 pppd
-
-
-
-
- If you wish to control the pppd access to a select group of people,
- then make the pppd process owned by the group and do not permit all
- others to run the program.
-
-
- 8.2. A: Sorry, I goofed. You will have to forego the binaries and re-
- compile the code yourself. It is easy. Go to the pppd directory,
- delete the bad binary, and issue the command `make'. Go to the chat
- directory and do the same if you want a corrected chat program. The
- ppp-2.1.2b package says it needs the 4.6 libraries
-
- You must have the C language compiler and GNU make installed to
- rebuild the PPP software.
-
- It turns out that when I compiled the ppp-2.1.2b package, while I used
- the proper definitions, I used the 4.6 libraries. One of these days,
- Al may finally get his act together . . . .
-
- Or, you can get binaries from the Slackware 2.0.2 (or later) package.
- They are in the ppp.tgz file in the `n' series of disks.
-
- Please use the source in the ppp-2.1.2b to compile the code. The
- source has been corrected over the `a' package.
-
-
-
- 8.3. A: You need to create the directory /var/run. On earlier Slack-
- ware distributions, this was a symbolic link to the /etc directory.
- unable to create pid file: no such file or directory
-
- This is a warning. The ppp software will work normally in spite of
- this message. However, the ppp-off script depends upon this file. It
- is a good idea to create the directory or make the link to the
- appropriate location.
-
- The posix header, paths.h, defines the location for the pid file under
- the name "_VAR_RUN". If you wish to use a different directory for PPP
- and others, change the value for this define and rebuild the software.
-
-
-
- 8.4. A: You need to create the directory /etc/ppp and have a file
- called 'options' in that directory. It needs to be readable by the
- pppd process (root). /etc/ppp/options: no such file or directory
-
- The file may be empty. To make an empty file use the `touch' command.
-
- See the pppd man page, pppd.8, for a description of this file.
-
- 8.5. A: This happens with many configurations of the Telebit Net-
- blazer. The problem is not the terminal server, but the site which
- has not configured the terminal server with a set of IP addresses.
- Could not determine local IP address
-
- The Netblazer does not have your IP address. You do not have your IP
- address. The link will not work unless both IP addresses are known.
-
- You must have been given a piece of paper with both IP addresses
- written upon it. You must tell the Netblazer the IP addresses to be
- used. Use the local IP address and the remote IP address as a
- parameter to the pppd process.
-
- Use the pppd option format of:
-
-
-
- local_ip:remote_ip
-
-
-
-
- (That is the local IP address, a colon, and the remote IP address.)
-
-
-
- 8.6. A: See the previous question. Could not determine remote IP
- address.
-
-
-
- 8.7. A: There is a one in over four billion chance that the two sys-
- tems have chosen the same magic number. If you get a continual fail-
- ure about the magic number, the chances that this is a fluke will geo-
- metrically reduce. The magic number is always NAKed. It won't connect
-
- The two most common reasons for this failure are:
-
-
- o The modem has disconnected immediately upon making the connection
- and logging you on to the remote. Most modems are configured to
- echo the data sent to them and you are seeing the local echo from
- the modem.
-
-
- o The remote ppp software is not running when you think it is. Is
- the remote system configured to run PPP? Is the ppp process in the
- expected location? Is the privileges suitable so that you may run
- it?
-
- This would indicate that the shell is doing the local echo of the
- data.
-
-
- In either case, the Linux system is sending data to the remote which
- is being fed immediately back into the serial receiver. This is not
- an acceptable condition. You have what is called a "loop".
-
-
-
- 8.8. A: This usually occurs when you are trying to connect to a
- Xyplex terminal server. Version 5.1 of the Xyplex terminal server
- software, according to Xyplex, has numerous problems with PPP. It is
- strongly recommended that you update the Xyplex software to at least
- version 5.3. protocol reject for protocol fffb
-
- If you must use version 5.1, then use the pppd option "vj-max-slots 3"
- to limit the number of slots to three. The problem on the Xyplex
- server is that it will accept the request for the default 16 slots,
- but fail to operate beyond the third slot. It should have return a NAK
- frame with the limit, but it does not.
-
- Alternately, you can disable the Van Jacobson header compression with
- the option "-vj".
-
-
-
- 8.9. and then finally disconnects. A: Examine the system log when
- you use the "debug" option. (You will need the system log data anyway
- if you are going to ask for help.) If the trace shows that it is
- sending the LCP-request frame over and over again and the id number is
- not incrementing then you are not exchanging frames with the remote
- PPP software. The PPP software connects but just sends message after
- message
-
- Three common reasons for this are:
-
-
- o You don't have the ppp software running on the other end. You are
- sending the PPP frames to some other program which is probably
- saying "What is this #$%^ ?"
-
- Please make sure that you have the ppp software started on the
- other end before you enter the ppp protocol sequence. Try to use a
- normal modem program and go through the logon sequence that you
- would normally do. Do you see the ppp frames being sent to you?
-
- The ppp frames are fairly distinctive. They will be about 16
- characters in length and contain several { characters. They should
- not have a carriage return character after them and are sent out in
- a burst with a pause between the bursts.
-
-
- o The line is not "eight bit clean". This means that you need to
- have eight data bits, no parity, and one stop bit. The PPP link
- absolutely requires eight data bits.
-
- The pppd software will automatically put the line into eight data
- bits, no parity, and one stop bit. The remote must match this
- configuration or framing and parity errors may occur.
-
- PPP will escape characters. It is not possible for it to escape
- bits as kermit does. PPP will not work with a seven bit
- communications link.
-
- There is a compile option in the ppp.c driver (part of the kernel)
- called CHECK_CHARACTERS which will include additional code in the
- driver to provide additional checking on the input characters. It
- will be able to tell you if the parity was enabled or if the remote
- system always sent the characters as seven bits.
-
-
- o The remote is configured to require authentication such as PAP or
- CHAP. You have not configured the local system to use this
- feature. Therefore, the remote is discarding all of your frames
- until it sees a valid authentication frame from you. Since you are
- not configured to generate the frames, the IPCP frames which you
- send are being ignored.
-
- In this case, either configure the remote to not expect
- authentication or configure the local system to do authentication
- and supply the proper secrets.
- 8.10. A: Some users of the merit network have indicated that it needs
- PAP. Did you try PAP authentication? I can't connect to the merit
- network.
-
-
-
- 9. DIP
-
- 9.1. A: The current version of dip-uri supports PPP in that it will
- execute the pppd process when you execute `mode ppp'. However, there
- are many options which are needed for the proper operation of pppd.
- Since dip does not pass these to the program, they must be stored in
- the /etc/ppp/options file. DIP does not have support for PPP's mode
-
- The dip program controls the establishment of the SLIP link. It
- controls the SLIP link with the aid of slattach, ifconfig, and route.
- These programs may be used to establish a SLIP link. They are not
- useful for the establishment of a PPP link.
-
- The dip program may be used to dial the telephone and start the ppp
- software on the remote system. It is best used in this mode as the
- parameter to the `connect' option. However, you have the option to use
- dip to control the link. It is not important how pppd be executed to
- run the ppp link. It is only important that it be executed as it is a
- mandatory program for the PPP protocol.
-
-
-
- 10. Process termination
-
- 10.1. A: No. There is no `dip -k'. Is there a `dip -k' for PPP?
-
- In the chat directory, there is a `ppp-off' script. This will stop
- the ppp link in the same manner as the 'dip -k'.
-
- I have included it below. (Cut it out. Store it in its own file.
- Make the file executable with chmod.)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ______________________________________________________________________
- #!/bin/sh
- DEVICE=ppp0
- #
- # If the ppp0 pid file is present then the program is running. Stop it.
- if [ -r /var/run/$DEVICE.pid ]; then
- kill -INT `cat /var/run/$DEVICE.pid`
- #
- # If the kill did not work then there is no process running for this
- # pid. It may also mean that the lock file will be left. You may wish
- # to delete the lock file at the same time.
- if [ ! "$?" = "0" ]; then
- rm -f /var/run/$DEVICE.pid
- echo "ERROR: Removed stale pid file"
- exit 1
- fi
- #
- # Success. Let pppd clean up its own junk.
- echo "PPP link to $DEVICE terminated."
- exit 0
- fi
- #
- # The ppp process is not running for ppp0
- echo "ERROR: PPP link is not active on $DEVICE"
- exit 1
- ______________________________________________________________________
-
-
-
-
- 10.2. A: There are several reasons for this. PPP does not hangup the
- modem when it terminates
-
-
- o Did you use the pppd `modem' parameter? This parameter controls
- whether or not the pppd process is to control and honor the signals
- reflecting the modem status. This parameter is explained in the
- man page for pppd.
-
- o Do you have the modem presenting the DCD signal and honoring DTR?
- The Hayes sequence for this is usually "&C1". If you reset the
- modem during the connection sequence with "ATZ" then ensure that
- your modem is configured correctly.
-
- The DTR signal is generated by the computer and instructs the modem
- to disconnect. Hayes sequence for this is usually "&D1" or "&D2"
- with "&D2" being the preferred setting for PPP. Many manufacturers
- will ignore the DTR condition in their `factory defaults' setting.
-
-
- o Did you use a cheap cable which does not pass the DCD signal?
- Macintosh `classic' cables are notorious for this problem. That
- Macintosh does not use this signal.
-
- o For dial-in connections, did you exec the pppd process properly?
-
- The pppd process should be `exec'ed from the script rather than
- simply executed. If you attempt to simply run the pppd process
- then it will be the shell which will receive the SIGHUP hangup
- signal and not the pppd process.
-
- The `shell' script should have a format similar to the following:
-
-
-
-
- ___________________________________________________________________
- #!/bin/sh
- exec pppd -detach modem ...
- ___________________________________________________________________
-
-
-
-
- 11. Data Transfer related issues
-
- 11.1. correctly if I `get' a file. A: Do you have the flow control
- enabled? Flow control is set by the pppd option crtscts for RTS/CTS
- and xonxoff for XON/XOFF. If you don't enable the flow control then
- you will probably overrun the modem's buffers and this will prove to
- be disastrous with vj header compression. ftp transfers die when I do
- a `put' but they work
-
-
-
- 11.2. How do I use XON/XOFF for flow control?
-
- A: The better flow control is CTS/RTS. However, if you can not do the
- hardware flow control with the signals CTS and RTS, then use XON/XOFF.
- The following three steps need to be performed.
-
-
-
- o You need to specify the pppd option xonxoff. This tells the pppd
- process to configure the serial device for XON/XOFF flow control
- and to load the two characters into the tty driver.
-
- o You need to specify the XON and XOFF characters in the pppd
- parameter asyncmap. This tells the remote system that is should
- quote the XON and XOFF characters when it wishes to send them to
- you. It is normally specified as the pppd parameter `asyncmap
- a0000'.
-
- o Of course, don't forget to tell the modem to use XON/XOFF flow
- control. My ZyXEL modem uses a sequence `&R1&H4' to do this.
-
-
- 11.3. A: Put the desired rate as an option to the pppd process. If
- you don't put the rate, then pppd process will use whatever rate is
- set currently at the time. Not all programs will restore all of the
- parameters to the previous settings properly upon exit. This may lead
- to strange rates configured for the serial device. Modem never seems
- to connect at a the high rate
-
-
-
- 11.4. A: Use the ppp-2.1.2b.tar.gz package. The pppd process was
- erroneously compiled with the 1.1.8 kernel and it used Net-3 rather
- than Net-2 definitions. The proxyarp function fails to find the hard-
- ware address.
-
- Additionally, you should refer to the proxy-ARP mini-HOWTO about the
- requirements for using proxy-ARP.
-
-
-
- 11.5. A: Look at the boot messages when you boot the kernel. If it
- says "PPP version 0.1.2" then you have an old version of the ppp.c
- driver. ioctl(TIOCGETD): I/O error" or "ioctl(PPPIOCSINPSIG): I/O
- error".
-
-
- If it says "PPP version 0.2.7" then you have the current driver,
- however, it was not built with the same set of defines for the ioctl
- numbers. Ensure that you have only one file called "ppp.h". It
- should be located in the kernel's include/linux directory. Once you
- have done this, rebuild the kernel and the pppd process.
-
-
-
- 12. Routing and other problems
-
- 12.1. A: This is not a question for PPP. My route to the remote
- keeps disappearing!
-
- Hint: DON'T RUN routed!
-
-
-
- 12.2. A: Did you forget the `defaultroute' parameter to pppd? This
- parameter adds a default route into your routing system so that frames
- to all other IP addresses will be sent to the PPP device. I can only
- reach the remote server.
-
- The PPP software will not replace the default route if you have one
- already set when you run pppd. This is done to prevent people from
- destroying their default route to the ethernet routers by accident. A
- warning message is written to the system log if the defaultroute
- parameter is not performed for this reason.
-
-
-
- 12.3. A: The problem then is not with the local Linux system. It
- most likely is routing problem on the remote end. I have defaultroute
- can only reach the remote server.
-
- The remote system is not configured for `IP forwarding'. It is an RFC
- requirement that this option NOT be enabled by default. You must
- enable the option. For Linux systems, you will need to build the
- kernel and specify that you want IP forwarding/gatewaying.
-
- The remote computers need a route back to you just as you need a route
- to them. This may be accomplished by one of four methods. Each has
- advantages and limitations. You need to do one and only one of these.
-
-
- o Use a host route. At each host on the remote system, add a host
- route to your Linux IP address with the gateway being the terminal
- server that you use for your local access. This will work if you
- have a small number of host systems and a simple network without
- bridges, routers, gateways, etc.
-
- o Use a network route. Subdivide the remote IP addresses so that
- your local Linux IP address and the remote terminal server address
- and the remote terminal server's ethernet address is on the same IP
- domain. This will work if you have the IP addresses to spare. It
- will work very well if you have a Class-B IP domain and can afford
- to put the all of the remote addresses on the same IP domain. Then
- add a network route on each of the gateways and routers so that any
- address of the remote network is sent to the terminal server. Most
- configurations have many hosts but few routers. (At sii.com, we
- have over 300 active host systems with only 3 routers.)
-
- o Use gated on all of the gateways and on the terminal server. This
- will cause the terminal server to broadcast to the gateways that it
- can accept the frames for your IP address. Since the hosts will
- have a default route to one of the gateways, the gateways will
- generate the ICMP re-direct frame and the specific host will
- automatically add its host route.
-
- o Use proxy ARP on the terminal server. This will only work if your
- remote IP address is in the same IP domain as one of the domains
- for the network cards.
-
- There is no clear solution. You must choose one of these.
-
-
-
- 12.4. A: You are not able to do this because you don't have a route
- to the address. This is the normal operating environment. Don't try
- to ping the local IP address. I can not ping my local IP address
-
- If you wish to ping your own system then use the loopback address of
- 127.0.0.1.
-
- You may be able to ping the remote address. However, some terminal
- servers may not allow this as the address may be 'phony' to them. It
- depends upon their environment.
-
- In general, don't try to ping either address. Choose a third address
- which is well known to be available on the remote network such as the
- name server IP address.
-
-
-
- 13. Interactions with other PPP implementations
-
- 13.1. terminates. A: Trumpet does not like any VJ header compres-
- sion. Use the pppd option "-vj" to turn it off. Trumpet (for MSDOS)
- and the connection simply
-
-
-
- 13.2. nslookup. A: There is a bug in the 3.1.2 version of dp. Please
- get the 3.1.2a or later file from the dp ftp home site har-
- bor.ecn.purdue.ecu. Until you can put the patch into dp, disable the
- vj header compression. I am using dp-3.1.2 and can't do anything but
- ping and
-
-
-
- 13.3. A: Microsoft has chosen to support a non-standard authentica-
- tion protocol with Windows NT. That is their right to do so provided
- that they have registered the protocol number with the IANA. (They
- have.) If the `accept only Microsoft encrypted authentication' check
- box is set in the phone book entry, the connection will not complete.
- This setting mandates that the Daytona system only exchange PPP
- authentication with another Microsoft PPP implementation. I can not
- connect to/with my Windows NT code (a.k.a. 'Daytona')
-
- Linux does not support this authentication protocol.
-
- If you have the option of changing the settings on the Daytona system
- then go to the Daytona Phone Book settings, advanced, security
- settings and choose either `Accept any authentication including clear
- text' to allow execution without authentication, or `Use clear text
- terminal login only' for PAP authentication, or `Accept only encrypted
- authentication' to allow CHAP authentication.
-
- The Microsoft authentication sequence is a PAP style authentication
- with their encryption algorithm for the passwords. Normal PAP sends
- the passwords in clear text. This would violate their C2 security
- goals.
-
- 14. Other messages written to the system log
-
- 14.1. A: This is not a problem. It means that a timer has expired and
- timers are a necessary part of the protocol establishment phase.
- Alarm
-
-
-
- 14.2. A: The remote wishes to exchange Link Quality Reporting proto-
- col with the Linux system. This protocol is presently not supported.
- This is not an error. It is merely saying that it has received the
- request and will tell the remote that "I can't do this now. Don't
- bother me with this!" Unknown protocol (c025) received!.
-
- The Morning Star PPP package will always try to do LQR protocol. This
- is normal.
-
-
-
- 14.3. A: Use the ppp-2.1.2b.tar.gz package. This was a bug which was
- not caught before the `a' package was released. The connection fails
- with an ioctl(TIOCSCTTY) error.
-
-
-
- 14.4. "ioctl(TIOCSETD): I/O error" and "ioctl(TIOCNXCL): I/O error"
- A: The remote system has disconnected the telephone. The tty drivers
- will re-establish the proper tty discipline and these errors are the
- result of the pppd process trying to do the same thing. These are to
- be expected. ioctl(PPPIOCGDEBUG): I/O error",
-
-
-
- 14.5. Usually the ifconfig program reports information similar to the
- following: My ifconfig has strange output for PPP.
-
-
-
- ppp0 Link encap UNSPEC HWaddr 00-00-00-00-00-00-00 ...
- inet addr 192.76.32.2 P-t-P 129.67.1.65 Mask 255.255.255.0
- UP POINTOPOINT RUNNING MTU 1500 Metric 1
-
-
-
-
- A: The information is for display purposes only. If you are using a
- recent 1.1 kernel then update the nettools package with the current
- one on sunacm.swan.ac.uk in the directory
- /pub/Linux/networking/nettools.
-
-
-
- 14.6. The file /proc/net/dev seems to be empty
-
-
- A: Did you just issue the command "ls -l /proc/net" and are wondering
- why the size is zero? If so, this is normal. Instead, issue the
- command:
-
-
-
- cat /proc/net/dev
-
-
-
-
- You should not find the file empty. The size is always shown as zero,
- but that is the 'proc' file system. Don't believe the size. Do the
- command.
-
-
-
- 15. Network routing issues (using PPP as a `cheap' bridge)
-
- 15.1. with SLIP A: Do not use slattach and ifconfig with PPP. These
- are used for SLIP. The pppd process does these functions at the appro-
- priate time. These must occur after the LCP and IPCP protocols have
- been exchanged. Slattach and ifconfig don't work as they do
-
- You can not replace pppd with slattach and ifconfig. Most of the
- protocol support for PPP is in the pppd process. Only the IP (and IPX
- when it is completed) processing is in the kernel.
-
- The host route to the remote system will be automatically added by
- pppd. There is no option to NOT add the route. The pppd process will
- terminate if the route could not be added.
-
- The default route may or may not be added. This is controlled by the
- option `defaultroute'. If you have a default route, it will not be
- changed.
-
- If you must do routing for an entire network, then put the route
- command into the /etc/ppp/ip-up script. The parameters to the script
- are:
-
-
-
- $0 - name of the script (/etc/ppp/ip-up or /etc/ppp/ip-down)
- $1 - name of the network device (such as ppp0)
- $2 - name of the tty device (such as /dev/cua0)
- $3 - speed of the tty device in Bits Per Second (such as 38400)
- $4 - the local IP address in dotted decimal notation
- $5 - the remote IP address in dotted decimal notation
-
-
-
-
-
- 15.2. A: On sunsite there is a package called devinfo.tar.gz. It
- contains some useful little programs which will extract the data from
- the device and to do various things with the dotted IP addresses. I
- want the route to the network and not the route to the host.
-
- The documentation is in the man pages in the file.
-
- For example, if you want to route the entire IP domain to the remote,
- the following may be used in /etc/ppp/ip-up.
-
- Of course, if the values are not variable, then simply use the
- appropriate entry in the route command.
-
-
-
-
-
-
-
-
-
-
-
-
- ______________________________________________________________________
- # Obtain the netmask for the ppp0 (or whatever) device
- NETMASK = `devinfo -d $1 -t mask`
-
- # Obtain the IP domain (without the host address by removing the extra bits)
- DOMAIN = `netmath -a $5 $NETMASK`
-
- # Do the network route now that the IP domain is known
- route -net add $DOMAIN gw $5
- ______________________________________________________________________
-
-
-
-
- 16. Other features and protocols
-
- 16.1. A: Use the diald package. This is on sunsite in the same direc-
- tory as the ppp source, /pub/Linux/system/Network/serial. What about
- support for `demand dial'
-
-
-
- 16.2. A: There are no plans to put filtering into the PPP code. Run
- the ipfirewall code. It is on sunsite. Help the author debug that
- code. It will do the filtering that you want in a general solution.
- What about `filtering'
-
- The latest development kernels will include the patches to support
- filtering. (You will still need the ipfirewall code as the kernel
- only contains the patches which were in the ipfirewall code for the
- kernel.) Again, filtering is a network issue and not one specifically
- for PPP.
-
-
-
- 16.3. A: The addition of support for IPX is fairly straight forward.
- Work is underway to include the IPX protocol. How about IPX?
-
-
-
- 16.4. A: There is a netbios PPP protocol. However, your better solu-
- tion would be to use TCP/IP and the `samba' code. How about NETBIOS?
-
- Microsoft and others have used Netbios PPP protocol. This is usually
- a proprietary mixture and one vendor is not guaranteed to work with
- another.
-
- I'll leave the Netbios protocols for someone else. If a Microsoft
- employee wishes to donate to the public domain the specifications and
- the time to implement their Netbios over PPP, send the diffs to me.
- I'll make sure that they are put into the released product.
-
-
-
- 17. Extraneous
-
- 17.1. A: Huh? You have the wrong group if you want MSDOS. PPP has
- nothing to do with the mail user agent. All of the mail agents are
- compatible with PPP. Do you have a PPP compatible mail reader?
-
-
-
- 17.2. A: See above. How about a news reader?
-