BBS水木清华站∶精华区
发信人: asdchen.bbs@cis.nctu.edu.tw (Victor), 信区: Linux
标 题: LRG.LDTP.002
原始文件:PPP 2.1.2b - SETUP
档案叙述:点对点协定设定说明
文件编号:LRG.LDTP.002
翻译日期:1995/09/19
翻译维护:asdchen@pc2.hinet.net O
---------------------------------------------------------------X---
O
设立 PPP 连线
要在两台机器之间设立 PPP 连线包括几个步骤:
1. 准备好两台要连线的机器:
1A. 制作并安装 pppd, pppstats 以及 chat 程式。
1B. 将 ppp 驱动程式安装到核心里去。
在 README.* 档案里有这个步骤的细节。
2. 决定所要使用的 IP 位址以及各台机器验证要求的等级,并且依此设定
/etc/ppp 目录。
3. 设立两台机器之间的串列连线,并且在每一台机器上执行 pppd 。这两个
pppd's 接著就会彼此协商并设立连线。
有关步骤 1 的叙述在 README.bsd 以及 README.sun 里。其馀的步骤则叙述
在下面。步骤 1 跟 2 都只需要做一次;步骤 3 每次建立连线都要做一次。
选择 IP 位址
如果一台主机已经经由像乙太网路这类的区域网路连上 Internet 时,那麽它
至少已经拥有一个指定的 IP 位址,这个位址通常就是区域网路介面的位址。
在这种情况下,以这个位址当作这台主机上 PPP 介面的本地 IP 位址通常是
最方便的。这是可行的,因为 PPP 介面是点对点的介面。
如果一台主机并没有连上 Internet 时,那麽就需要指定一个 IP 位址给它。
如果 PPP 是用来将它连接到另一台已经连上 Internet 的主机,指定一个跟
远端主机在相同子网路上的 IP 位址通常是最方便的。如果另外一台主机也没
有连上 Internet 的话,那麽 IP 位址的选择就随便你了。
验证
验证要求的等级视情况而定,但是一般说来经由区域网路连上 Internet 的主
机应该要设定成 (a) 要求远端主机验证它们自己,并且 (b) 以它自己限制远
端主机对於 IP 位址的选择。另外还有一个可能是让远端主机扮演在本地子网
路上的另一台主机。(然而在你第一次安装 PPP 时,取消验证直到你能够成
功的建立连线大概会比较简单。)
设定 /etc/ppp
这个 /etc/ppp 目录里包含有 pppd 所使用的各种档案;它应该是在安装 PPP
的时候由系统管理人员所建立的。标准的内容包含下列档案:
chap-secrets CHAP 验证所使用的暗号
pap-secrets PAP 验证所使用的暗号
options 当 pppd 在执行的任何时候,系统管理人员希望应
用的选项
ppp<n>.pid 包含 ppp unit <n> 上 pppd 的 process ID 的档
案;由 pppd 所建立。
因为这个目录里面包含用来验证的暗号档案,它不应该放在能够被其他主机存
取到的分割区里(像是 exported by NFS )。
这个 `option' 档案包含所有系统管理人员想要让 pppd 在执行时使用的任何
选项。如果要求要做验证,它应该要包含 `auth' 以及 `usehostname' 选项。
如果要求网路遮罩选项,把它放在这里通常也是最方便的。如果 pppd 是在指
令列上以 -DREQ_SYSOPTIONS=1 旗标编译的,那麽 `option' 这个档案必须可
以被 pppd 读取,否则 pppd 会拒绝执行。
由 PAP (Password Authentication Protocol; 密码验证协定) 所使用的暗号
存放在 /etc/ppp/pap-secrets 档案里面;由 CHAP (Cryptographic
Authentication Protocol; 保密验证协定) 所使用的暗号则是存放在
/etc/ppp/chap-secrets 档案里面。这些档案具有相同的格式,而其所存放的
暗号可以用在验证其他主机以及对其他主机验证自己两方面。它的格式是每行
3 个或更多的字,代表:
客户端 - 要被验证的机器名称
伺服端 - 要求进行验证的机器名称
暗号 - 客户端与伺服端都知道的密码或 CHAP 暗号
IP 位址 - 零个或多个客户端可以使用(如果我们是伺服端)的 IP 位址。
举例来说,如果以一台区域网路连结的主机叫做 "worksun" 要求验证,而一
台叫做 "bsdbox" 的主机连接到这台主机并且以 CHAP 验证自己,那麽这两台
机器都应该要有 /etc/ppp/chap-secrets 这个档案,而档案里面应该要包含
像这样一行:
bsdbox worksun "an unguessable secret" bsdbox.my.domain
设定 syslog
pppd 是以 syslog 这个 daemon(或者是 local2 ,如果它编译时将除错功能
打开来的话)来记录讯息; chat 使用 local2 。从主控台查阅 priority 或
higher 的讯息是有用的。要查阅的话,找出 /etc/syslog.con 里面右手边有
/dev/console 的这一行,并且在左边加上 `daemon.notice' 。加上像这样一
行也是有用的:
daemon,local2.debug /etc/ppp/ppp-log
如果你这样做的话,你将需要建立一个空的 /etc/ppp/ppp-log 档案。
在修改了 syslog.conf 之後,你将需要送一个 HUP 信号给 syslogd(或重新
启动机器)
设立 PPP 连线
在两台机器之间建立 PPP 连线基本上包括设立串列连线以及在连线的两端执
行 pppd 。这要怎麽做则是依串列连线的本质而定。这个连线可能简单到像是
两台机器间的一条 null modem 接线,或者可能包括数据机,终端机伺服器,
telnet sessions 等等。通常的情形是你建立串列连线(像是用数据机拨接)
然後用它来签入一台在远端的机器。
下一个步骤是在远端机器上执行 pppd 。在这里不要提供串列设备的名字;
pppd 会使用 session's controlling terim
pppd passive
如果这台远端的机器经由区域网路连上 Internet 的话,加上 `proxyarp' 这
个选项通常会有用。如果这个串列连线并非是完全透通的话, `asyncmap' 这
个选项通常也是有用的;如果这个串列连线含有 telnet 的话,那麽
`asyncmap 200a0000' 是适当的。
有些人发现在远端机器上设定一个 'ppp' 使用者名称是方便的,不使用密码
并且以一个执行 pppd 的指令稿当作签入的 shell 来用。
下一个步骤是用像这样的指令在本地机器上执行 pppd 。
pppd /dev/ttya 19200
当你给了一个设备名称像是这一行指令以後, pppd 将会把他自己放到背景里
去。然後这两个 pppd's 接下来应该会彼此协商并且建起连线。如果你有照前
面所说的编辑 /etc/syslog.conf 的话,当成功的建立起连线时你将会看到由
pppd 所给讯息,这是连线的本地以及远端的 IP 位址。
如果本地机器与 Internet 没有其它的连线,你可以藉由对 pppd 指令加上
`defaultroute' 这个选项来要求 pppd 增加一个经由远端主机的预设递送路
径 (default route) 。
其它关於执行 pppd 的 random points:
- 如果你想要让 PPP 连线中的本地位址与这台主机有不同的 IP 位
址的话,你需要以一个冒号将你所希望的位址放在 pppd 指令列。
- 如果你减少两端的 MRU (maximum receive unit; 最大接收单位)
那麽效率可能会比较好; 296 这个数值不错。用 `mru 296' 这个
选项来做。
终止 PPP 连线
当你希望终止 PPP 连线时,你应该做的是传送一个 TERM 或是 INTR 讯号给
其中一个 pppd's ,像是用这样的指令:
kill `cat /etc/ppp/ppp0.pid`
这是在 SunOS 或 Ultrix 上用的,或者
kill `cat /var/run/ppp0.pid`
这是在 {386,Net,Free}BSD 上用的。
这个 pppd 会知会另一个 pppd 要终止了,然後它们两个都会清除并离开。
如果 pppd 是连到一个接上数据机的串列埠,那麽当数据机挂断时它应该要接
到一个 HUP 信号,这个信号会使它清除并离开。会不会传送这个信号视驱动
程式而定,而在 Suns 上是在於 `tty soft carrier' 旗标的设定,这个旗标
是以 /usr/etc/ttysoftcar 程式手动操作的(参阅 ttysoftcar(8))。
BBS水木清华站∶精华区