Linux PPP 怎么办
Robert Hart, hartr@interweft.com.au
v3.0, 31 March 1997

中文翻译者:宫敏 1997年11月
 

这份文件说明如何将您的Linux PC与PPP服务器相连,如何用PPP将两个局域网
连在一起和如何将您的Linux计算机设置成一个PPP服务器。如果您的PPP工作
不正常,本文档也能提供帮助。

版权

本文档是按GPL(GNU Public License)规定发行的。

发行

一旦本文档有新的版本发行将被贴到comp.os.linux.answers新闻组。
(中文翻译本将被贴到news://news.freesoft.cei.gov.cn/chinese.comp.linux)
本文档的英文本也有HTML格式版本可以在一下URL找到:

Linux Howto Index <http://sunsite.unc.edu/mdw/linux.html#howto>
PPP-HOWTO <http://www.interweft.com.au/other/ppp-howto/ppp-howto.html>

其它格式(SGML, ASCII, postscript, DVI)可以在
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats中找到。

中文版本在:
ftp://freesoft.cei.gov.cn/pub/freesoft.sic/Linux/doc/cn/HOWTO/ppp-HOWTO.gb

因为sunsite.unc.edu的线路负载很重,请使用离您最近的镜像点。
 

致谢

有不断增加的人对我准备这分文档提供帮助。我要特别感谢Al Longyear,感谢
他对我在PPP方面的指导(如果有什么错误的话那是我的不是他的),Greg
Hankins(Linux Howtow系统的维护者)和MaximumAccess.com的Debi Tackett
关于文章风格的有益建议和内容的顺序以及解释的逻辑清晰性方面的帮助。

最后,我要感谢那些通过电子邮件和我联系并对本文进行评论的人们。向所有
“怎么办”的作者一样,大家的满意是我们得到的所有报酬,而这就足够了。
撰些这份“怎么办”我偿还了一点儿我所欠的债——我和所有Linux的使用者们
欠那些编写和维护我们所选用的操作系统的人们的债。
 

1, 引言

PPP(点对点协议)是在直接连接的串行链路上(例如空调制解调器电缆)上创建
和运行IP(网际网协议)和其他网络协议的一个方案。一个直接连接的串行链路
包括通过telnet建立的链路或者是一个用调制解调器和电话线路(当然也包括诸
如ISDN之类的数字线路)链路。

通过PPP您可以将您的Linux PC和一个PPP服务器联接并进入该服务器所联接的网
络资源(大致上)就好象您直接连上了那个网络一样。

您也可以将您的Linux PC设置成为一个PPP服务器,使得其他计算机可以拨号进入
您的计算机并使用您的计算机或者网络。

因为PPP是端对端系统,您也可以使用两台Linux PC通过PPP将两个网络连接在一
起,例如一个车域网和一个广域网。

PPP和以太网的一个主要区别在于速度,一个标准的以太网的速度是10兆比特而
模拟调制解调器的速度的上限是56千比特。

译者注:

  更主要的区别在于以太网是广播设备,可以连接多于两个设备。PPP能
  且只能连接两个设备。

并且,取决于PPP连接的的类型,对于某些应用和业务来说,PPP可能存在某些
局限性。

1.1.  客户和服务器

PPP是严格的端对端协议;从技术角度说拨号的机器和接受拨号的机器没有任何
区别。然而为了能简单的描述清楚不妨考虑客户和服务器的名词。

当您为建立PPP连接而拨号进入一个站点,您就是客户。那台接受您拨号的机器
就是服务器。

当您设置一台机器接受和处理PPP连接时,您在设置一个PPP服务器。

如果您有多于一个串行接口并有那种要求的话任何一个Linux PC都可以同时作为
PPP服务器和客户。如上所述,对于PPP来说一旦连接完成,在客户和服务器之间
没有任何区别。

本文档将把主动发起呼叫(也就是进行拨号的机器)称为“客户”而将那些接受
呼叫、进行许可验证(用户名、口令可能还有其它)的机器称为“服务器”。

用PPP作为客户来连接一个以上的机器从某地进入网际网可能是大多数人所感兴趣
的事情。也就是说用他们的Linux PC作为客户。

本文档所描述的过程将使得您能够建立网际网连接并使这个过程自动化。

本文档也将指导您将您的Linux PC设置为一个PPP服务器和怎么样将两个局域网
通过PPP连在一起并且具有完全的路由功能,这也就是通常所说的广域网。

1.2.  不同Linux发行版(Distribution)间的差别

有很多不同的Linux发行版,对于同一件事它们有着各自的不同思路和做法。

实际上有两中不同的Linux启动和接口设备的配置方案——BSD初始化方案和系统
V初始化方案。有时候在有关UNIX的新闻组中会见到这两种初始化方案之间的宗教
战争式的斗嘴。如果您觉得这种事情有意思,您尽管可以浪费您的带宽加入战斗!

被最为广泛使用的可能是:

   Slackware    使用BSD风格初始化

   Red Hat (and its former associate Caldera)
           使用系统V初始化(做了轻微的改动)

   Debian      使用系统V初始化

BSD风格初始化通常将初始化文件放在/etc/...中,这些文件是:-

______________________________________________________________________
          /etc/rc
          /etc/rc.local
          /etc/rc.serial
         (可能还有别的文件)
______________________________________________________________________

最近一些BSD系统的初始化方案使用/etc/rc.d...目录来存放起动文件,而不是将
它们统统放在/etc目录下。

译者注:

    Slackware好象是这种情况。

系统V风格的初始化是将初始化文件放在/etc...或/etc/rc.d/...的目录以及数个
子目录中。如下:

 ______________________________________________________________________
  drwxr-xr-x   2 root     root         1024 Jul  6 15:12 init.d
  -rwxr-xr-x   1 root     root         1776 Feb  9 05:01 rc
  -rwxr-xr-x   1 root     root          820 Jan  2  1996 rc.local
  -rwxr-xr-x   1 root     root         2567 Jul  5 20:30 rc.sysinit
  drwxr-xr-x   2 root     root         1024 Jul  6 15:12 rc0.d
  drwxr-xr-x   2 root     root         1024 Jul  6 15:12 rc1.d
  drwxr-xr-x   2 root     root         1024 Jul  6 15:12 rc2.d
  drwxr-xr-x   2 root     root         1024 Jul 18 18:07 rc3.d
  drwxr-xr-x   2 root     root         1024 May 27  1995 rc4.d
  drwxr-xr-x   2 root     root         1024 Jul  6 15:12 rc5.d
  drwxr-xr-x   2 root     root         1024 Jul  6 15:12 rc6.d
  ______________________________________________________________________
 

如果您试图向下跟踪您的以太网设备和实际配置的相关的网络路由,您需要通过这些
文件来追踪,并找出真正进行配置的命令。

1.3  发行版所特有的PPP配置工具

某些发行版(例如Red Hat和Caldera),有通过X视窗配置的PPP拨号系统。本文档不
涉及这些发行版特有的工具。如果您对那些东西有问题就直接找发行者!

Red Hat 4.x的用户们:现在有Red Hat PPP-TIP文档。见:

<http://www.interweft.com.au>(Linux resources区)和
<http://www.redhat.com>(support区)

2.   IP 号(Internet Protocol Number,网际网协议号)

每一个连到网际网的设备必需有一个它自己的唯一的网际网协议号。这号是由有关
当局分配的。

如果您将一个局域网接到网际网上,您_必须_使用您所分配到的网络范围来连接您
局域网中的所有计算机和其它设备。您_绝对不可以_随便捡起一些IP号来用。会引
起严重问题的。

请注意,在本文档中除了某些例外,当提到IP号时所指的都是非连接网络号。这些
网络号是为那些不和网际网相连的网络所保留的。

  一个A类网络地址
     10.0.0.0 (网络掩码 255.0.0.0)

  十六B类网络地址
     172.16.0.0 - 172.31.0.0 (网络掩码 255.255.0.0)

  二百五十六个C类网络地址
     192.168.0.0 - 192.168.255.0 (网络掩码 255.255.255.0)

译者注:

  非连接网络号在rfc文档中被最早在1994年3月由 rfc1597所记载,后经1996年
  2月份 rfc1918所更新,但至今不是标准。对rfc1597的批判见rfc1627等。
  使用者当心!

如果您的局域网没被有正式分配的网际网地址,那么您应当使用上述的网络地址。
上述网络地址绝不能用于网际网上。

然而它们可以被用于本地以太网的机器上,而该机器接在网际网上。这是因为IP地址
实际上是分给网络设备而不是计算机的。因此譬如说,您的以太网接口的地址可以是
10.0.0.1,当您通过PPP接入网际网时,您的PPP接口会从服务器得到一个有效的IP号。
这时候这台机器就可以使用网际网了,但是您局域网上的其它机器却不能。

但是使用具有IP冒充(IP Masquerade,也称之为NAT,网络地址翻译)能力的Linux
和ipfwadm软件,您可以将您的没有有效IP号的局域网接入Internet(有某些业务的
限制性)。

详细情况请参阅《Linux IP 冒充小型“怎么办”》
  <http://sunsite.unc.edu/mdw/HOWTO/mini/IP-Masquerade>

对大多数只是想将一台计算机通过网际网业务提供者(ISP)使用网际网的用户来说
是不需要了解IP冒充技术的。

如果您想将一个小型的局域网接入网际网的话,很多网际网业务提供者可以给您提供
一个属您专用的子网(一片连续的IP号)。作为另一种选择,您也可以使用IP冒充。

大多数网际网业务提供者向将单一PC接入网际网的人提供动态IP。也就是说,作为连
接过程的一部分,您所连接的PPP服务器会告诉您的机器,您的PPP设备将使用什么IP
号。一般来说每次接入都会从您的网际网业务提供者得到不同的IP号。

动态IP的用户每次接入都会从您的网际网业务提供者得到不同的IP号,意味着您的服
务器类型的应用程序会有很多困难,例如:sendmail, ftpd, httpd等等。这类服务
通常要求提供服务的服务器总是出现在相同的IP号上(或者,至少使用完全合格的域
名。至少从域名到IP的正向解析存在。

由动态IP分配所引起的业务限制和可能的绕行办法将在本文后面讨论。

3.   本文档的目的

3.1. 建立一个PPP客户

本文档的对那些想用Linux和PPP拨号进入PPP服务器并通过PPP建立IP连接的人提供一
个指导。本文档假设PPP已经在您的机器上被成功的编译和安装了。(虽然包含一个
关于重新配置和编译内核的简要介绍)

虽然用于建立SLIP连接的DIP可以用于建立PPP连接,但是一般讲DIP的脚本相当复杂。
由于这个原因,本文将不包括使用DIP建立PPP连接的内容。

本文将描述标准的Linux PPP软件——chat/pppd组合。
 

3.2. 用PPP连接两个局域网或者将一个局域网接入网际网

本文档提供关于用PPP连接两个局域网或者将一个局域网接入网际网的基本信息。

3.3. 建立PPP服务器

本文档指导如何让其他人拨号进入您的Linux PC并建立PPP连接,从而使得您的
Linux PC变成为一个PPP服务器。

您应该注意到将Linux PC变成PPP服务器的方法非常多。本文档所介绍的方法曾被作
者用于建立数个小型PPP服务器,每个小型PPP服务器有16个调制解调器。

这个方法已知是好的,但并不见得是最好的方法。

3.4. 在直接连接的零调制解调器上建立PPP

本文档简单介绍如何用PPP将两台通过零调制解调器电缆Linux PC连在一起。这方法
也可以用于将其他操作系统与Linux相连,但您同时需要参考其它操作系统的资料。

3.5. 本文档目前所不包括的内容……

如何编译PPP守护神。关于这个问题请参考您要用的pppd所带的文档。

关于如何为Linux连接和配置调制解调器的详细解释。这方面的资见《串口怎么办》
具体到某种特定调制解调器的问题请参考:
<http://www.in.net/info/modems/index.html>

如何使用DIP建立PPP连接——改用chat就行了。

如何使用socks或者IP冒充,
关于这方面的问题已经有完美的文档了。

如何使用diald建立自动化的连接,
参见diald的文档。

如何将两个调制解调器,两条电话线用EQL困在一起建立一个PPP链路。

关于发行版专有的PPP连接方法(例如RedHat 4.x的网络配置工具)参见相应的文档。

译者注:
  虽然不包括发行版专有的PPP连接方法,但本文所描述的通用方法同样适用。

关于数目不断增加的PPP自动化设置工具,参见相应的文档。

4.   涉及到的版本

这分“怎么办”假设您使用Linux 1.2.x系列的内核配以PPP 2.1.2软件,或者
Linux 2.0.x系列的内核配以PPP 2.2软件。

译者注:
  版本很重要,不能混用。

在撰写本文时,用于Linux的PPP软件最后的正式版本是ppp-2.2f。新的ppp-2.3版本
还处于测试阶段。

将PPP 2.2.0用于1.2.13版本的内核是可能的,但要求内核补钉(patch)。建议
1.2.13版本内核的用户采用ppp-2.2因为它改了些毛病并有功能的增强。

您必须特别注意,一定不能够将ppp-2.1.2软件用于Linux-2.0.x系列内核。

请注意,本文档不包含可能由Linux-2.0.x系列内核的可加载模块所引起的问题。
参阅《kerneld mini-HOWTO》和/usr/src/linux/Documentation/...

译者注:
  kerneld是内核守护神,在用到时自动加载某个模块,一段时间不用后自动从内
存中卸载。

本文档是为帮助新手设计的,极力推荐使用已知稳定工作的内核于PPP软件的组合。
 

5.   其它有用和重要的文档

建议读者阅读下列文档:-

嘿嘿,宫敏先生翻译到这儿就没下文了,不过看看后面的文章基本上能解决大部分问题了.

本文转自中文Linux论坛