系统管理指南:网络服务

第 22 章 Solaris PPP 4.0(参考)

本章介绍有关 Solaris PPP 4.0 的详细概念信息。具体包括以下主题:

在文件和命令行中使用 PPP 选项

Solaris PPP 4.0 包含可用于定义 PPP 配置的一个大型选项集。您可以在 PPP 配置文件或命令行中使用这些选项,或者组合使用这些文件和命令行选项。本节包含有关在配置文件中使用 PPP 选项以及将这些选项用作 PPP 命令参数的详细信息。

定义 PPP 选项的位置

Solaris PPP 4.0 配置非常灵活。您可以在以下位置中定义 PPP 选项:

下表列出了 PPP 配置文件和命令。

表 22–1 PPP 配置文件和命令汇总

文件或命令  

定义 

参考 

/etc/ppp/options

包含缺省应用于系统中所有 PPP 链路的特征(例如,计算机是否要求对等点对其本身进行验证)的文件。如果不存在此文件,则将禁止非超级用户使用 PPP。

/etc/ppp/options 配置文件

/etc/ppp/options.ttyname

说明基于串行端口 ttyname 的所有通信特性的文件。

/etc/ppp/options.ttyname 配置文件

/etc/ppp/peers

通常包含有关拨出计算机连接到的对等点信息的目录。此目录中的文件与 pppd 命令的 call 选项一起使用。

指定与拨入服务器通信的信息

/etc/ppp/peers/peer-name

包含远程对等点 peer-name 的特征的文件。典型的特征包括远程对等点的电话号码和用于与对等点协商链路的聊天脚本。

/etc/ppp/peers/peer-name 文件

/etc/ppp/pap-secrets

包含进行口令验证协议 (Password Authentication Protocol, PAP) 验证必需的安全凭证的文件。 

/etc/ppp/pap-secrets 文件

/etc/ppp/chap-secrets

包含进行质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP) 验证必需的安全凭证的文件。 

/etc/ppp/chap-secrets 文件

~/.ppprc

PPP 用户的起始目录中的文件,通常与拨入服务器一起使用。此文件包含有关每个用户的配置的特定信息。 

在拨入服务器上配置 $HOME/.ppprc

pppd options

用于启动 PPP 链路并说明其特征的命令和选项。 

如何处理 PPP 选项

有关 PPP 文件的详细信息,请参阅 pppd(1M) 手册页。 pppd (1M) 还包含 pppd 命令可用的所有选项的完整说明。/etc/ppp 中提供了所有 PPP 配置文件的样例模板。

如何处理 PPP 选项

所有 Solaris PPP 4.0 操作都由 pppd 守护进程处理,它在用户运行 pppd 命令时启动。用户呼叫远程对等点时,将会发生以下操作:

  1. pppd 守护进程解析以下文件:

    • /etc/ppp/options

    • $HOME/.ppprc

    • /etc/ppp/options$HOME/.ppprc 中的 filecall 选项打开的任何文件

  2. pppd 扫描命令行以确定正在使用的设备。守护进程此时不会解释遇到的任何选项。

  3. pppd 尝试使用以下条件搜索要使用的串行设备:

    • 如果在命令行或先前处理的配置文件中指定了串行设备,则 pppd 将使用该设备的名称。

    • 如果未命名任何串行设备,则 pppd 将在命令行中搜索 nottyptysocket 选项。如果指定了这其中某个选项,则 pppd 将假定不存在设备名称。

    • 或者,如果 pppd 发现标准输入连接到某个 tty,则将使用该 tty 的名称。

    • 如果 pppd 仍然找不到串行设备,则 pppd 将终止连接并发出错误。

  4. pppd 然后检查是否存在 /etc/ppp/options.ttyname 文件。如果找到该文件,则 pppd 将对其进行解析。

  5. pppd 处理命令行中的任何选项。

  6. pppd 协商链路控制协议 (Link Control Protocol, LCP) 以设置链路。

  7. (可选)如果需要验证,则 pppd 将读取 /etc/ppp/pap-secrets/etc/ppp/chap-secrets 以对另外一个对等点进行验证。

pppd 守护进程在命令行或其他配置文件中遇到选项 call peer-name 时,将读取文件 /etc/ppp/peers/peer-name

PPP 配置文件权限如何工作

Solaris PPP 4.0 配置包括权限概念。权限确定配置选项的优先级,尤其是当多个位置调用同一选项时。从权限源调用的选项优先于从非权限源调用的同一选项。

用户权限

唯一的特权用户是 UID 为零的超级用户 (root)。所有其他用户都不拥有权限。

文件权限

以下配置文件拥有权限,无论它们归谁所有:

文件 $HOME/.ppprc 由用户拥有。只有调用 pppd 的用户是 root 时,从 $HOME/.ppprc 和命令行中读取的选项才拥有权限。

file 选项后面的参数拥有权限。

选项权限的影响

一些选项要求调用用户或调用源拥有权限才起作用。命令行中调用的选项被指定正在运行 pppd 命令的用户的权限。只有调用 pppd 的用户为 root 时,这些选项才拥有权限。

选项 

状态 

说明 

domain

拥有权限 

要求拥有权限才能使用。 

linkname

拥有权限 

要求拥有权限才能使用。 

noauth

拥有权限 

要求拥有权限才能使用。 

nopam

拥有权限 

要求拥有权限才能使用。 

pam

拥有权限 

要求拥有权限才能使用。 

plugin

拥有权限 

要求拥有权限才能使用。 

privgroup

拥有权限 

要求拥有权限才能使用。 

allow-ip addresses

拥有权限 

要求拥有权限才能使用。 

name hostname

拥有权限 

要求拥有权限才能使用。 

plink

拥有权限 

要求拥有权限才能使用。 

noplink

拥有权限 

要求拥有权限才能使用。 

plumbed

拥有权限 

要求拥有权限才能使用。 

proxyarp

如果指定了 noproxyarp,则拥有权限。

无法由非特权用户覆盖。 

defaultroute

如果 nodefaultroute 选项在特权文件中设置,或由特权用户设置,则该选项将拥有权限。

无法由非特权用户覆盖。 

disconnect

如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 

无法由非特权用户覆盖。 

bsdcomp

如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 

非特权用户指定的代码大小不能大于特权用户指定的大小。 

deflate

如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 

非特权用户指定的代码大小不能大于特权用户指定的大小。 

connect

如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 

无法由非特权用户覆盖。 

init

如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 

无法由非特权用户覆盖。 

pty

如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 

无法由非特权用户覆盖。 

welcome

如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 

无法由非特权用户覆盖。 

ttyname

如果该选项在特权文件中设置,则拥有权限 

如果在非特权文件中设置,则不拥有权限 

无论谁调用 pppd,都将使用超级用户权限打开。

使用调用 pppd 的用户的权限打开。

/etc/ppp/options 配置文件

使用 /etc/ppp/options 文件可为本地计算机上的所有 PPP 通信定义全局选项。/etc/ppp/options 是特权文件。/etc/ppp/options 应由超级用户拥有,但 pppd 不会强制实施此规则。/etc/ppp/options 中定义的选项优先于所有其他文件和命令行中定义的相同选项。

/etc/ppp/options 中可以使用的典型选项包括:


注 –

Solaris PPP 4.0 软件不包括缺省 /etc/ppp/options 文件。pppd 不需要 /etc/ppp/options 文件也可以正常工作。 如果计算机上没有 /etc/ppp/options 文件,则只有 root 可以在该计算机上运行 pppd


必须使用文本编辑器创建 /etc/ppp/options,如如何定义串行线路上的通信中所示。如果计算机不需要全局选项,则可以创建空的 /etc/ppp/options 文件。然后,root 和常规用户都可以在本地计算机上运行 pppd

/etc/ppp/options.tmpl 模板

/etc/ppp/options.tmpl 包含有关 /etc/ppp/options 文件的有用注释和全局 /etc/ppp/options 文件的三个常用选项。


lock

nodefaultroute

noproxyarp

选项 

定义 

lock

启用 UUCP 样式的文件锁定 

nodefaultroute

指定未定义任何缺省路由。 

noproxyarp

禁止 proxyarp

要将 /etc/ppp/options.tmpl 用作全局选项文件,请将 /etc/ppp/options.tmpl 重命名为 /etc/ppp/options。然后,根据您的站点的需要修改文件内容。

可找到 /etc/ppp/options 文件示例的位置

要查找 /etc/ppp/options 文件的示例,请参阅以下内容:

/etc/ppp/options.ttyname 配置文件

您可以在 /etc/ppp/options.ttyname 文件中配置串行线路上的通信特性。/etc/ppp/options.ttyname 是特权文件,由 pppd 在解析任何现有 /etc/ppp/options$HOME/.ppprc 文件之后读取。或者,pppd 在解析 /etc/ppp/options 之后读取 /etc/ppp/options.ttyname

ttyname 用于拨号链路和租用线路链路。ttyname 表示可能连接了调制解调器或 ISDN TA 的计算机上的特定串行端口(如 cua/acua/b)。

命名 /etc/ppp/options.ttyname 文件时,将设备名称中的斜杠 (/) 替换为点 (.)。例如,设备 cua/boptions 文件应命名为 /etc/ppp/options.cua.b


注 –

Solaris PPP 4.0 不需要 /etc/ppp/options.ttyname 文件也可以正常工作。您的服务器可能只有一条用于 PPP 的串行线路。此外,服务器需要的选项很少。在此情况下,可以在另外一个配置文件或在命令行中指定所需要的任何选项。


使用拨入服务器上的 /etc/ppp/options.ttyname

对于拨号链路,可以选择为连接了调制解调器的拨入服务器上的每个串行端口创建一个 /etc/ppp/options.ttyname 文件。典型选项包括:

使用拨出计算机上的 /etc/ppp/options.ttyname

对于拨出系统,可以为连接到调制解调器的串行端口创建 /etc/ppp/options.ttyname 文件,或者选择不使用 /etc/ppp/options.ttyname


注 –

Solaris PPP 4.0 不需要 /etc/ppp/options.ttyname 文件也可以正常工作。拨出计算机可能只有一条用于 PPP 的串行线路。此外,拨出计算机需要的选项可能很少。可以在另外一个配置文件或在命令行中指定所需要的任何选项。


options.ttya.tmpl 模板文件

/etc/ppp/options.ttya.tmpl 文件包含有关 /etc/ppp/options.tty-name 文件的有用注释。该模板包含 /etc/ppp/options.tty-name 文件的三个常用选项。


38400 

asyncmap 0xa0000 

:192.168.1.1 

选项 

定义 

38400

对端口 ttya 使用此波特率。 

asyncmap 0xa0000

为 asyncmap 指定值 0xa0000,以使本地计算机与中断的对等点通信。 

:192.168.1.1

将 IP 地址 192.168.1.1 指定给链路中呼叫的所有对等点。 

要在您的站点中使用 /etc/ppp/options.ttya.tmpl,请将 /etc/ppp/options.tmpl 重命名为 /etc/ppp/options.ttya-name。将 ttya-name 替换为调制解调器的串行端口的名称。然后,根据您的站点的需要修改文件内容。

可找到 /etc/ppp/options.ttyname 文件示例的位置

要查找 /etc/ppp/options.ttyname 文件的示例,请参阅以下内容:

配置特定于用户的选项

本节包含有关在拨入服务器上设置用户的详细信息。

在拨入服务器上配置 $HOME/.ppprc

$HOME/.ppprc 文件适用于要配置首选 PPP 选项的用户。作为管理员,您也可以为用户配置 $HOME/.ppprc

$HOME/.ppprc 中的选项只有在调用该文件的用户拥有权限时才拥有权限。

呼叫者使用 pppd 命令启动呼叫时,.ppprc 文件是由 pppd 守护进程检查的第二个文件。

有关在拨入服务器上设置 $HOME/.ppprc 的说明,请参见设置拨入服务器的用户

在拨出计算机上配置 $HOME/.ppprc

在拨出计算机上,Solaris PPP 4.0 不需要 $HOME/.ppprc 文件也可以正常工作。此外,除了特殊情况,拨出计算机上无需具有 $HOME/.ppprc 文件。如果要执行以下操作,请创建一个或多个 .ppprc 文件:

由于 .ppprc 文件通常在配置拨入服务器时使用,要获取有关 .ppprc 的配置说明,请参阅如何配置拨入服务器的用户

指定与拨入服务器通信的信息

要与拨入服务器通信,需要收集有关该服务器的信息,然后编辑几个文件。最重要的是,必须配置拨出计算机需要呼叫的所有拨入服务器的通信要求。您可以在 /etc/ppp/options.ttyname 文件中指定有关拨入服务器的选项,如 ISP 电话号码。但是,配置对等点信息的最佳位置是在 /etc/ppp/peers/peer-name 文件中。

/etc/ppp/peers/peer-name 文件


注 –

在拨出计算机上,Solaris PPP 4.0 不需要 /etc/ppp/peers/peer-name 文件也可以正常工作。


使用 /etc/ppp/peers/peer-name 文件可提供与特定对等点通信的信息。/etc/ppp/peers/peer-name 允许普通用户调用不允许其设置的预先选择的权限选项。

例如,如果在 /etc/ppp/peers/peer-name 文件中指定了 noauth,则非特权用户无法覆盖 noauth 选项。假定用户要设置指向 peerB 的链路,而该对等点不提供验证凭证。作为超级用户,您可以创建一个包括 noauth 选项的/etc/ppp/peers/peerB 文件。noauth 指示本地计算机将不验证来自 peerB 的呼叫。

pppd 遇到以下选项时,pppd 守护进程将读取 /etc/ppp/peers/peer-name


call  peer-name

可以为拨出计算机需要与其通信的每个目标对等点创建一个 /etc/ppp/peers/peer-name 文件。此做法对于允许普通用户调用特殊拨出链路特别方便,无需拥有超级用户权限。

可以在 /etc/ppp/peers/peer-name 中指定的典型选项包括:

有关可以应用于特定目标对等点的更多选项,请参见 pppd(1M) 手册页。

/etc/ppp/peers/myisp.tmpl 模板文件

/etc/ppp/peers/myisp.tmpl 文件包含有关 /etc/ppp/peers/peer-name 文件的有用注释。该模板总结了可用于 /etc/ppp/peers/peer-name 文件的常用选项:


connect "/usr/bin/chat -f /etc/ppp/myisp-chat" 

user myname             

remotename myisp        

noauth                 

noipdefault             

defaultroute            

updetach                

noccp                   

选项 

定义 

connect "/usr/bin/chat -f /etc/ppp/myisp-chat"

使用聊天脚本 /etc/ppp/myisp-chat 呼叫对等点。

user myname

对本地计算机使用此帐户名。myname 是对等点的 /etc/ppp/pap-secrets 文件中此计算机的名称。

remotename myisp

myisp 识别为本地计算机的 /etc/ppp/pap-secrets 文件中对等点的名称。

noauth

不要求呼叫对等点提供验证凭证。 

noipdefault

不使用本地计算机的缺省 IP 地址。 

defaultroute

使用为本地计算机指定的缺省路由。 

updetach

在 PPP 日志文件而不是标准输出中记录错误。 

noccp

不使用 CCP 压缩。 

要在您的站点中使用 /etc/ppp/peers/myisp.tmpl,请将 /etc/ppp/peers/myisp.tmpl 重命名为 /etc/ppp/peers/.peer-name。将 peer-name 替换为要调用的对等点的名称。然后,根据您的站点的需要修改文件内容。

可找到 /etc/ppp/peers/peer-name 文件的示例的位置

要查找 /etc/ppp/peers/peer-name 文件的示例,请参阅以下内容:

配置拨号链路的调制解调器速度

调制解调器配置的主要问题是指定调制解调器运行的速度。以下指导适用于与 Sun Microsystems 计算机配合使用的调制解调器:

对于拨出计算机,调制解调器的速度可在 PPP 配置文件(如 /etc/ppp/peers/peer-name)中设置,或者通过将速度指定为 pppd 的选项来设置。

对于拨入服务器,需要使用 ttymon 工具或 Solaris Management Console 设置速度,如配置拨入服务器上的设备中所说明。

定义拨号链路上的会话

拨出计算机及其远程对等点通过协商和交换各种指令在 PPP 链路中通信。配置拨出计算机时,需要确定本地和远程调制解调器要求的指令。然后,创建一个包含这些指令,名为聊天脚本的文件。本节将讨论有关配置调制解调器和创建聊天脚本的信息。

聊天脚本的内容

拨出计算机需要连接到的每个远程对等点可能要求使用独立的聊天脚本。


注 –

聊天脚本通常仅在拨号链路上使用。租用线路链路不使用聊天脚本,除非链路包括要求进行启动配置的异步接口。


聊天脚本的内容由调制解调器型号或 ISDN TA 和远程对等点的要求确定。这些内容显示为 Expect-send(期待发送)字符串集。 拨出计算机及其远程对等点以交换字符串作为通信启动过程的一部分。

expect 字符串包含拨出主机期望从远程对等点接收以启动会话的字符。send 字符串包含拨出计算机在接收 expect 字符串之后发送到远程对等点的字符。

聊天脚本中的信息通常包括以下内容:

聊天脚本示例

本节包含一些聊天脚本,创建自己的聊天脚本时可以以此为参考。调制解调器制造商的指导和来自 ISP 及其他目标主机的信息包含调制解调器和目标对等点的聊天要求。此外,很多的 PPP 网站都有聊天脚本样例。

基本调制解调器聊天脚本

以下是一个基本聊天脚本,创建自己的聊天脚本时可以此为模板。


ABORT   BUSY

ABORT   'NO CARRIER'

REPORT  CONNECT

TIMEOUT 10

"" AT&F1M0&M5S2=255

SAY     "Calling myserver\n"

TIMEOUT 60

OK      "ATDT1-123-555-1212"

ogin: pppuser

ssword: \q\U

% pppd

下表说明了聊天脚本的内容。

脚本内容 

说明 

ABORT BUSY

如果调制解调器从对应对等点收到此消息,则中止传输。 

ABORT 'NO CARRIER'

如果调制解调器在拨号时报告 ABORT 'NO CARRIER',则中止传输。出现此消息通常是因为拨号或调制解调器协商故障。

REPORT CONNECT

从调制解调器收集 CONNECT 字符串。列显该字符串。

TIMEOUT 10

将初始超时设置为 10 秒。调制解调器会立即作出响应。 

"" AT&F1M0&M5S2=255

M0-连接过程中关闭扬声器。

&M5-使调制解调器要求进行错误控制。

S2=255-禁用 TIES "+++" 中断序列。

SAY "Calling myserver\n"

在本地计算机上显示消息 Calling myserver

TIMEOUT 60

将超时重置为 60 秒,以允许有更多的时间进行链路协商。 

OK "ATDT1-123-555-1212"

使用电话号码 123-555-1212 呼叫远程对等点。 

ogin: pppuser

使用 UNIX 样式的登录来登录到对等点。提供用户名 pppuser

ssword: \q\U

\q-如果使用 -v 选项调试,则不记录日志。

\U-在此位置插入命令行中指定的 -U 之后的字符串内容。 通常,该字符串包含口令。

% pppd

等待 % shell 提示,并运行 pppd 命令。

/etc/ppp/myisp-chat.tmpl 聊天脚本模板

Solaris PPP 4.0 包括 /etc/ppp/myisp-chat.tmpl 模板,可以修改该模板以便在您的站点上使用。/etc/ppp/myisp-chat.tmpl 与基本调制解调器聊天脚本类似,不同的是该模板不包括登录序列。


ABORT   BUSY

ABORT   'NO CARRIER'

REPORT  CONNECT

TIMEOUT 10

""      "AT&F1"

OK      "AT&C1&D2"

SAY     "Calling myisp\n"

TIMEOUT 60

OK      "ATDT1-123-555-1212"

CONNECT \c

脚本内容 

说明 

ABORT BUSY

如果调制解调器从对应对等点收到此消息,则中止传输。 

ABORT 'NO CARRIER

如果调制解调器在拨号时报告 ABORT 'NO CARRIER',则中止传输。出现此消息通常是因为拨号或调制解调器协商故障。

REPORT CONNECT

从调制解调器收集 CONNECT 字符串。列显该字符串。

TIMEOUT 10

将初始超时设置为 10 秒。调制解调器会立即作出响应。 

"" "AT&F1"

将调制解调器重置为出厂缺省值。 

OK "AT&C1&D2"

重置调制解调器,以便对于 &C1,来自调制解调器的 DCD 位于载波之后。如果远程端由于某种原因而挂起,则 DCD 将被丢弃。  

对于 &D2,DTR 高到低转换可能会使调制解调器“挂起”。 

SAY "Calling myisp\n"

在本地计算机上显示消息 "Calling myisp"。 

TIMEOUT 60

将超时重置为 60 秒,以允许有更多的时间进行链路协商。 

OK "ATDT1-123-555-1212"

使用电话号码 123-555-1212 呼叫远程对等点。 

CONNECT \c

等待来自对应对等点的调制解调器的 CONNECT 消息。

用于呼叫 ISP 的调制解调器聊天脚本

使用以下聊天脚本作为从带有 U.S. Robotics Courier 调制解调器的拨出计算机呼叫 ISP 的模板。


ABORT   BUSY

ABORT   'NO CARRIER'

REPORT  CONNECT

TIMEOUT 10

"" AT&F1M0&M5S2=255

SAY     "Calling myisp\n"

TIMEOUT 60

OK      "ATDT1-123-555-1212"

CONNECT \c

\r \d\c

SAY "Connected; running PPP\n"

下表说明了聊天脚本的内容。

脚本内容 

说明 

ABORT BUSY

如果调制解调器从对应对等点收到此消息,则中止传输。 

ABORT 'NO CARRIER'

如果调制解调器从对应对等点收到此消息,则中止传输。 

REPORT CONNECT

从调制解调器收集 CONNECT 字符串。 列显该字符串。

TIMEOUT 10

将初始超时设置为 10 秒。调制解调器会立即作出响应。 

"" AT&F1M0M0M0M0&M5S2=255

M0-连接过程中关闭扬声器。

&M5-使调制解调器要求错误控制。

S2=255-禁用 TIES "+++" 中断序列。

SAY "Calling myisp\n"

在本地计算机上显示消息 Calling myisp

TIMEOUT 60

将超时重置为 60 秒,以允许有更多的时间进行链路协商。 

OK "ATDT1-123-555-1212"

使用电话号码 123-555-1212 呼叫远程对等点。 

CONNECT \c

等待来自对应对等点的调制解调器的 CONNECT 消息。

\r \d\c

一直等到 CONNECT 消息结束。

SAY “Connected; running PPP\n” 

在本地计算机上显示提示性消息 Connected; running PPP

用于 UNIX 样式登录的增强基本聊天脚本

以下聊天脚本是为呼叫远程 Solaris 对等点或其他 UNIX 类型的对等点而增强的基本脚本。此聊天脚本在如何创建用于呼叫对等点的指令中使用。


        SAY "Calling the peer\n"

        TIMEOUT 10

        ABORT BUSY

        ABORT 'NO CARRIER'

        ABORT ERROR

        REPORT CONNECT

        "" AT&F1&M5S2=255

        TIMEOUT 60

        OK ATDT1-123-555-1234

        CONNECT \c

        SAY "Connected; logging in.\n"

        TIMEOUT 5

        ogin:--ogin: pppuser

        TIMEOUT 20

        ABORT 'ogin incorrect'

        ssword: \qmypassword

        "% " \c

        SAY "Logged in.  Starting PPP on peer system.\n" 

        ABORT 'not found'

        "" "exec pppd"

        ~ \c

下表说明了该聊天脚本的参数。

脚本内容 

说明 

TIMEOUT 10

将初始超时设置为 10 秒。调制解调器会立即作出响应。 

ABORT BUSY

如果调制解调器从对应对等点收到此消息,则中止传输。 

ABORT 'NO CARRIER'

如果调制解调器从对应对等点收到此消息,则中止传输。 

ABORT ERROR

如果调制解调器从对应对等点收到此消息,则中止传输。 

REPORT CONNECT

从调制解调器收集 CONNECT 字符串。列显该字符串。

"" AT&F1&M5S2=255

&M5-使调制解调器要求进行错误控制。

S2=255-禁用 TIES "+++" 中断序列。

TIMEOUT 60

将超时重置为 60 秒,以允许有更多的时间进行链路协商。 

OK ATDT1-123-555-1234

使用电话号码 123-555-1212 呼叫远程对等点。 

CONNECT \c

等待来自对应对等点的调制解调器的 CONNECT 消息。

SAY "Connected; logging in.\n"

显示提示性消息 Connected; logging in 以指出用户状态。

TIMEOUT 5

更改超时以便快速显示登录提示。 

ogin:--ogin: pppuser

等待登录提示。如果未收到提示,则发送 RETURN 并等待。然后,将用户名 pppuser 发送到对等点。随后的序列被大多数 ISP 称为 PAP 登录。 但是,PAP 登录与 PAP 验证毫不相关。

TIMEOUT 20

将超时更改为 20 秒,从而允许以较慢的速度进行口令检验。 

ssword: \qmysecrethere

等待来自对等点的口令提示。收到提示时,发送口令 \qmysecrethere\q 阻止将口令写入系统日志文件。

"% " \c

等待来自对等点的 shell 提示。聊天脚本使用 C shell。如果用户喜欢使用其他 shell 登录,可以更改此值。 

SAY "Logged in. Starting PPP on peer system.\n"

显示提示性消息 Logged in. Starting PPP on peer system 以指出用户状态。

ABORT 'not found'

如果 shell 遇到错误,则中止传输。 

"" "exec pppd"

在对等点上启动 pppd

~ \c

等待在对等点上启动 PPP。 

紧接CONNECT \c 之后启动 PPP 通常被 ISP 称为 PAP 登录,但 PAP 登录实际上不属于 PAP 验证的一部分。

短语 ogin:--ogin: pppuser 指示调制解调器发送用户名 pppuser 以响应来自拨入服务器的登录提示。pppuser 是为拨入服务器上的远程 user1 创建的特殊 PPP 用户帐户名。有关在拨入服务器上创建 PPP 用户帐户的说明,请参阅如何配置拨入服务器的用户

外部 ISDN TA 的聊天脚本

以下聊天脚本用于从使用 ZyXEL omni.net ISDN TA 的拨出计算机进行呼叫。


        SAY "Calling the peer\n"

        TIMEOUT 10

        ABORT BUSY

        ABORT 'NO CARRIER'

        ABORT ERROR

        REPORT CONNECT

        "" AT&FB40S83.7=1&K44&J3X7S61.3=1S0=0S2=255

        OK ATDI18882638234

        CONNECT \c

        \r \d\c

        SAY "Connected; running PPP\n"

下表说明了该聊天脚本的参数。

脚本内容 

说明 

SAY "Calling the peer"

在拨出计算机的屏幕上显示此消息。 

TIMEOUT 10

将初始超时设置为 10 秒。 

ABORT BUSY

如果调制解调器从对应对等点收到此消息,则中止传输。 

ABORT 'NO CARRIER'

如果调制解调器从对应对等点收到此消息,则中止传输。 

ABORT ERROR

如果调制解调器从对应对等点收到此消息,则中止传输。 

REPORT CONNECT

从调制解调器收集 CONNECT 字符串。列显该字符串。

"" AT&FB40S83.7=1&K44&J3X7S61.3=1S0=0S2=255

此行中的字母具有以下含义: 

  • &F-使用出厂缺省值

  • B40-执行异步 PPP 转换

  • S83.7=1-使用“通过语音承载传输数据”

  • &K44-启用 CCP 压缩

  • &J3-启用 MP

  • X7-报告 DCE 端速率

  • S61.3=1-使用包分段

  • S0=0-无自动应答

  • S2=255-禁用 TIES 转义

OK ATDI18882638234

进行 ISDN 呼叫。对于多链路,会对同一电话号码进行二次呼叫,通常大多数 ISP 要求这样做。如果远程对等点要求第二个电话号码不同,请附加 "+nnnn"。nnnn 表示第二个电话号码。

CONNECT \c

等待来自对应对等点的调制解调器的 CONNECT 消息。

\r \d\c

一直等到 CONNECT 消息结束。

SAY "Connected; running PPP\n"

在拨出计算机的屏幕上显示此消息。 

有关聊天脚本的选项说明和其他详细信息,请参阅 chat(1M) 手册页。有关 expect-send(期待发送)字符串的说明,请参阅/etc/uucp/Systems 文件中的聊天脚本字段

更多聊天脚本示例

很多网站提供用于创建聊天脚本的聊天脚本样例和帮助。例如,请参见 http://ppp.samba.org/ppp/index.html

调用聊天脚本

您可以使用 connect 选项来调用聊天脚本。可以在任何 PPP 配置文件或在命令行中使用 connect "chat ..."

聊天脚本不可执行,但 connect 调用的程序必须可执行。您可以使用聊天实用程序作为 connect 将调用的程序。在此情况下,如果通过 -f 选项将聊天脚本存储在外部文件中,则聊天脚本文件将不可执行。

chat(1m) 中说明的 chat 程序执行实际聊天脚本。无论 pppd 何时遇到 connect "chat ..." 选项,pppd 守护进程都将调用 chat 程序。


注 –

您可以使用任何外部程序(如 PerlTcl)来创建高级聊天脚本。Solaris PPP 4.0 提供了方便的 chat 实用程序。


Procedure如何调用聊天脚本(任务)

  1. 将聊天脚本创建为 ASCII 文件。

  2. 使用以下语法调用任何 PPP 配置文件中的聊天脚本:


    connect 'chat  -f /etc/ppp/chatfile'

    -f 标志指示后面将跟一个文件名。/etc/ppp/chatfile 表示聊天文件的名称。

  3. 将外部聊天文件的读取权限授予运行 pppd 命令的用户。


    注意 – 注意 –

    聊天程序始终使用用户的权限运行,即使从权限源调用 connect 'chat ...' 选项也是如此。因此,使用 -f 选项读取的独立聊天文件必须可被调用用户读取。如果该聊天脚本包含口令或其他敏感信息,则此权限可能会引起安全问题。



示例 22–1 内置聊天脚本

可将整个聊天脚本会话放置在一行中,与以下类似:


connect 'chat "" "AT&F1" OK ATDT5551212 CONNECT "\c"'

完整的聊天脚本紧接在 chat 关键字之后。该脚本以 "\c"' 终止。您可以在任何 PPP 配置文件或命令行中使用此格式作为 pppd 的参数。


外部文件中的聊天脚本

如果特定对等点需要的聊天脚本比较长或很复杂,可以考虑将该脚本作为一个独立文件创建。外部聊天文件易于维护和记录。您可以通过在注释前加上井 (#) 号来对聊天文件添加注释。

如何创建用于呼叫对等点的指令过程说明了如何使用外部文件中包含的聊天脚本。

创建可执行的聊天文件

您可以创建一个聊天文件,它是可以在启动拨号链路时自动运行的可执行脚本。因此,在链路启动过程中,除了可运行包含在传统聊天脚本中的命令之外,还可以运行其他命令,如用于进行奇偶校验设置的 stty

此可执行聊天脚本登录到旧式 UNIX 系统(要求 7 位,包含偶校验)。 运行 PPP 时,系统将更改为不包含奇偶校验的 8 位。


#!/bin/sh

chat "" "AT&F1" OK "ATDT555-1212" CONNECT "\c"

stty evenp

chat ogin: pppuser ssword: "\q\U" % "exec pppd"

stty -evenp

Procedure如何创建可执行聊天程序

  1. 使用文本编辑器创建可执行聊天程序,如前面的示例所示。

  2. 使聊天程序可执行。


    # chmod +x /etc/ppp/chatprogram
    
  3. 调用该聊天程序。


    connect /etc/ppp/chatprogram
    

    聊天程序无需位于 /etc/ppp 文件系统中。您可以将聊天程序存储在任何位置。

验证链路上的呼叫者

本节将说明 PPP 验证协议如何工作并介绍与验证协议关联的数据库。

口令验证协议 (Password Authentication Protocol, PAP)

PAP 验证在操作方面与 UNIX login 程序有些类似,但 PAP 不对用户授予 shell 访问权限。PAP 使用 /etc/ppp/pap-secrets 文件格式的 PPP 配置文件和 PAP 数据库进行验证设置。PAP 还使用 /etc/ppp/pap-secrets 定义 PAP 安全凭证。这些凭证包括对等点名称、PAP 用语中的“用户名”和口令。PAP 凭证还包含允许链接到本地计算机的每个呼叫者的相关信息。PAP 用户名和口令可以与口令数据库中的 UNIX 用户名和口令相同,也可以不同。

/etc/ppp/pap-secrets 文件

PAP 数据库在 /etc/ppp/pap-secrets 文件中实现。要成功地验证,PPP 链路两端的计算机必须在其 /etc/ppp/pap-secrets 文件中对 PAP 凭证进行正确配置。呼叫者(被验证者)在 /etc/ppp/pap-secrets 文件的 userpassword 列中或过时的 +ua 文件中的提供凭证。服务器(验证者)通过 UNIX passwd 数据库或在 PAM 工具,对比 /etc/ppp/pap-secrets 中的信息来验证这些凭证。

/etc/ppp/pap-secrets 文件具有以下语法。


myclient ISP-server mypassword *

这些参数的含义如下:

myclient

呼叫者的 PAP 用户名。通常,此名称与呼叫者的 UNIX 用户名相同,特别是在拨入服务器使用 PAP 的 login 选项时。

ISP-server

远程计算机(通常为拨入服务器)的名称。

mypassword

呼叫者的 PAP 口令。

*

与呼叫者关联的 IP 地址。使用星号 (*) 表示任何 IP 地址。

创建 PAP 口令

PAP 口令在链路中以明文(即可读的 ASCII 码)形式发送。对于呼叫者(被验证者),PAP 口令必须以明文形式存储在以下任何位置中:

在服务器(验证者)中,可以通过执行以下某个操作来隐藏 PAP 口令:

PAP 验证期间发生的操作

PAP 验证按以下顺序进行。

图 22–1 PAP 验证过程

以下内容说明了流程图中所示的顺序。

  1. 呼叫者(被验证者)呼叫远程对等点(验证者),并在链路协商过程中提供其 PAP 用户名和口令。

  2. 对等点在其 /etc/ppp/pap-secrets 文件中检验呼叫者的身份。如果对等点使用 PAP 的 login 选项,则对等点将在其口令数据库中检验呼叫者的用户名和口令。

  3. 如果验证成功,则对等点将继续与呼叫者进行链路协商。如果验证失败,则该链路将被丢弃。

  4. (可选)如果呼叫者验证来自远程对等点的响应,则远程对等点必须将自己的 PAP 凭证发送给呼叫者。因此,远程对等点成为被验证者,而呼叫者成为验证者。

  5. (可选)原始呼叫者读取其自己的 /etc/ppp/pap-secrets 以检验远程对等点的身份。


    注 –

    如果原始呼叫者确实要求远程对等点的验证凭证,则步骤 1 和步骤 4 将同时发生。


    如果对等点通过验证,则协商将继续。否则,将丢弃该链路。

  6. 呼叫者和对等点之间的协商会一直继续,直到成功建立链路。

使用带有 login 选项的 /etc/ppp/pap-secrets

可以将用于验证 PAP 凭证的 login 选项添加到任何 PPP 配置文件中。例如,在 /etc/ppp/options 中指定 login 时,pppd 将检验呼叫者的 PAP 凭证在 Solaris 口令数据库中是否存在。以下说明了包含 login 选项的 /etc/ppp/pap-secrets 文件的格式。


joe    *  ""  *

sally  *  ""  *

sue    *  ""  *

这些参数具有以下含义。

呼叫者

joesallysue 为授权的呼叫者的名称。

服务器

星号 (*),指示任何服务器名称都将有效。PPP 配置文件中不需要 name 选项。

口令

双引号,指示任何口令都将有效。

如果此列有口令,则来自对等点的口令必须与 PAP 口令和 UNIX passwd 数据库匹配。

IP 地址

星号 (*),指示允许使用任何 IP 地址。

质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP)

CHAP 验证使用质询响应的概念,这表示呼叫者(验证者)会质询呼叫者(被验证者)以证明其身份。质询包括一个随机数和一个由验证者生成的唯一 ID。呼叫者必须使用 ID、随机数及其 CHAP 安全凭证来生成要发送到对等点的正确响应(握手)。

CHAP 安全凭证包括 CHAP 用户名和 CHAP“机密”。聊天机密是呼叫者和对等点在进行 PPP 链路协商之前可识别的任意字符串。可在 CHAP 数据库 /etc/ppp/chap-secrets 中配置 CHAP 安全凭证。

/etc/ppp/chap-secrets 文件

CHAP 数据库在 /etc/ppp/chap-secrets 文件中实现。要成功进行验证,PPP 链路两端的计算机必须在其 /etc/ppp/chap-secrets 文件中包含另一方的 CHAP 凭证。


注 –

与 PAP 不同,共享机密必须以明文形式保存在两个对等点中。不可以将 crypt、PAM 或 PPP 登录选项与 CHAP 一起使用。


/etc/ppp/chap-secrets 文件具有以下语法。


myclient myserver secret5748 *

这些参数具有以下含义:

myclient

呼叫者的 CHAP 用户名。此名称可以与呼叫者的 UNIX 用户名相同,也可以不同。

myserver

远程计算机(通常为拨入服务器)的名称。

secret5748

呼叫者的 CHAP 机密。


注 –

与 PAP 口令不同,CHAP 机密不通过链路发送。相反,CHAP 机密在本地计算机计算响应时使用。


*

与呼叫者关联的 IP 地址。使用星号 (*) 表示任何 IP 地址。

CHAP 验证期间发生的操作

CHAP 验证按以下顺序发生。

图 22–2 CHAP 验证顺序

以下内容说明了流程图中所示的顺序。

  1. 将要启动通信的两个对等点就用于在 PPP 链路协商期间验证的机密达成一致。

  2. 两台计算机的管理员将机密、CHAP 用户名和其他 CHAP 凭证添加到各自计算机的 /etc/ppp/chap-secrets 数据库中。

  3. 呼叫者(被验证者)呼叫远程对等点(验证者)。

  4. 验证者生成随机数和 ID,并将这些数据作为质询发送到被验证者。

  5. 被验证者在其 /etc/ppp/chap-secrets 数据库中查找对等点的名称和机密。

  6. 被验证者通过将 MD5 计算算法应用于机密和对等点的随机数质询来计算响应。然后,被验证者将结果作为响应发送到验证者。

  7. 验证者在其 /etc/ppp/chap-secrets 数据库中查找被验证者的名称和机密。

  8. 验证者通过将 MD5 应用于作为 /etc/ppp/chap-secrets 中被验证者的质询和机密生成的数字,来计算其自己的数字。

  9. 验证者将其结果与呼叫者的响应进行比较。如果两个数字相同,则对等点已成功对呼叫者进行验证,链路协商将继续。否则,将丢弃该链路。

为呼叫者创建 IP 寻址方案

考虑为所有传入呼叫创建一个或多个 IP 地址,而不要为每个远程用户指定一个唯一的 IP 地址。如果可能的呼叫者数超出拨入服务器上的串行端口和调制解调器数,则使用专用的 IP 地址特别重要。您可以根据站点的需要实现许多不同的方案。此外,多种方案不会相互排斥。

为呼叫者指定动态 IP 地址

动态寻址涉及为 /etc/ppp/options.ttyname 中定义每个呼叫者指定 IP 地址。动态寻址按串行端口进行。当呼叫通过串行线路到达时,呼叫者将会收到所呼叫的串行接口的 /etc/ppp/options. ttyname 文件中的IP 地址。

例如,假定拨入服务器具有为传入呼叫提供拨号服务的四个串行接口:

使用上面的寻址方案,串行接口 /dev/term/c 上的传入呼叫在呼叫期间将得到 IP 地址 10.1.1.3。第一个呼叫者挂起之后,通过串行接口 /dev/term/c 传入的后续呼叫也将得到 IP 地址 10.1.1.3。

动态寻址的优点包括:

为呼叫者指定静态 IP 地址

如果您的站点实现 PPP 验证,则可以为各个呼叫者指定特定的静态 IP 地址。在此情况下,每次拨出计算机呼叫拨入服务器时,呼叫者都将会收到相同的 IP 地址。

您可以在 pap-secrets 或 chap-secrets 数据库中实现静态地址。以下是定义静态 IP 地址的 /etc/ppp/pap-secrets 文件的示例。


joe    myserver  joepasswd   10.10.111.240

sally  myserver  sallypasswd 10.10.111.241

sue    myserver  suepasswd   10.10.111.242
呼叫者

joesallysue 为授权的呼叫者的名称。

服务器

myserver 表示服务器的名称。

口令

joepasswdsallypasswdsuepasswd 表示每个呼叫者的口令。

IP 地址

10.10.111.24010.10.111.24110.10.111.242 是为每个呼叫者指定的 IP 地址。

以下是定义静态 IP 地址的 /etc/ppp/chap-secrets 文件的示例。


account1 myserver secret5748  10.10.111.244

account2 myserver secret91011 10.10.111.245
呼叫者

account1account2 表示呼叫者的名称。

服务器

myserver 表示每个呼叫者的服务器的名称。

口令

secret5748secret91011 表示每个呼叫者的 CHAP 机密。

IP 地址

10.10.111.24410.10.111.245 是每个呼叫者的 IP 地址。

通过 sppp 单元编号指定 IP 地址

如果您使用 PAP 或 CHAP 验证,则可以通过 sppp 单元编号为呼叫者指定 IP 地址。以下显示了此用法的一个示例。


myclient ISP-server mypassword 10.10.111.240/28+

加号 (+) 表示已将单元编号添加到 IP 地址。请注意以下内容:

创建 PPPoE 通道以支持 DSL

使用 PPPoE,可以为使用一个或多个 DSL 调制解调器的多台客户机提供基于高速数字服务的 PPP。PPPoE 通过在以下三个参与者之间创建以太网通道来实现这些服务:企业、电话公司和服务提供商。

本节包含有关 PPPoE 命令和文件的详细信息,下表对这些信息进行了总结。

表 22–2 PPPoE 命令和配置文件

文件或命令  

说明 

参考 

/etc/ppp/pppoe

包含缺省情况下应用于所有通道的特征的文件,这些通道由系统中的 PPPoE 设置 

/etc/ppp/pppoe 文件

/etc/ppp/pppoe.device

包含特定接口的特征的文件,PPPoE 将该接口用于某通道 

/etc/ppp/pppoe.device 文件

/etc/ppp/pppoe.if

列出了以太网接口的文件,这些接口将运行由 PPPoE 设置的通道 

/etc/ppp/pppoe.if 文件

/usr/sbin/sppptun

用于配置 PPPoE 通道中涉及的以太网接口的命令 

/usr/sbin/sppptun 命令

/usr/lib/inet/pppoed

使用 PPPoE 设置通道的命令和选项 

/usr/lib/inet/pppoed 守护进程

用于配置 PPPoE 的接口的文件

只有首先对 PPPoE 通道任何一端使用的接口进行配置,该通道才能支持 PPP 通信。可使用 /usr/sbin/sppptun/etc/ppp/pppoe.if 文件进行此操作。必须使用这些工具在所有 Solaris PPPoE 客户机和 PPPoE 访问服务器上配置以太网接口。

/etc/ppp/pppoe.if 文件

/etc/ppp/pppoe.if 文件列出了主机上要用于 PPPoE 通道的所有以太网接口的名称。系统引导期间,当检测要用于 PPPoE 通道的所列出接口时,将会对此文件进行处理。

您需要显式创建 /etc/ppp/pppoe.if。在每一行上键入要对 PPPoE 配置的一个接口的名称。

以下示例显示了为 PPPoE 通道提供三个接口的服务器的 /etc/ppp/pppoe.if 文件。


# cat /etc/ppp/pppoe.if

hme1

hme2

hme3

PPPoE 客户机通常仅有一个在 /etc/ppp/pppoe.if 中列出的接口。

/usr/sbin/sppptun 命令

您可以使用 /usr/sbin/sppptun 命令手动检测要用于 PPPoE 通道的以太网接口和解除对这些接口的检测。与此相反,系统引导期间 /etc/ppp/pppoe.if 仅被读取。这些接口应与 /etc/ppp/pppoe.if 中列出的接口相对应。

sppptun 以与 ifconfig 命令类似的方式检测 PPPoE 通道中使用的以太网接口。与 ifconfig 不同,因为涉及两个以太网协议编号,所以必须检测接口两次才能支持 PPPoE。

sppptun 的基本语法如下所示:


# /usr/sbin/sppptun plumb pppoed device-name

     device-name:pppoed

# /usr/sbin/sppptun plumb pppoe device-name

     device-name:pppoe

在此语法中,device-name 是要为 PPPoE 检测的设备的名称。

首次发出 sppptun 命令时,将会在接口上检测搜索协议 pppoed。第二次运行 sppptun 命令时,将会检测会话协议 pppoesppptun 将列显已检测的接口的名称。如果需要,可以使用此名称解除对接口的检测。

有关更多信息,请参阅 sppptun(1M) 手册页。

用于管理接口的 sppptun 命令的示例

以下示例说明如何使用 /usr/sbin/sppptun 手动检测用于 PPPoE 的接口。


# /usr/sbin/sppptun plumb pppoed hme0

hme0:pppoed

# /dev/sppptun plumb pppoe hme0

 hme0:pppoe

以下示例说明如何列出访问服务器上用于 PPPoE 的已检测的接口。


# /usr/sbin/sppptun query

hme0:pppoe

hme0:pppoed

hme1:pppoe

hme1:pppoed

hme2:pppoe

hme2:pppoed

以下示例说明如何解除对接口的检测。


# sppptun unplumb hme0:pppoed

# sppptun unplumb hme0:pppoe

PPPoE 访问服务器命令和文件

为客户提供 DSL 服务或支持的服务提供商可以使用正在运行 Solaris PPPoE 的访问服务器。PPPoE 访问服务器和客户机采用传统客户机/服务器关系进行工作。此关系与拨号链路上拨出计算机和拨入服务器的关系类似。一个 PPPoE 系统启动通信,一个 PPPoE 系统应答。与此相反,PPP 协议没有客户机/服务器关系的概念。 PPP 将两个系统视为相同的对等点。

可用于设置 PPPoE 访问服务器的命令和文件包括:

/usr/lib/inet/pppoed 守护进程

pppoed 守护进程接受来自预期的 PPPoE 客户机的服务广播。此外,pppoed 将协商 PPPoE 通道的服务器端,然后基于该通道运行 pppd(PPP 守护进程)。

可以在 /etc/ppp/pppoe/etc/ppp/pppoe.device 文件中配置 pppoed 服务。引导系统时,如果 /etc/ppp/pppoe 存在,则将会自动运行 pppoed。您也可以在命令行中通过键入 /usr/lib/inet/pppoed 来显式运行 pppoed 守护进程。

/etc/ppp/pppoe 文件

/etc/ppp/pppoe 文件说明访问服务器提供的服务,以及定义 PPP 如何通过 PPPoE 通道运行的选项。您可以为各个接口定义服务,或全局定义服务(即为访问服务器上的所有接口定义服务)。访问服务器发送 /etc/ppp/pppoe 文件中的信息以响应来自可能的 PPPoE 客户机的广播。

以下是 /etc/ppp/pppoe 的基本语法:


global-options

service service-name

    service-specific-options

    device interface-name

  

这些参数具有以下含义。

global-options

设置 /etc/ppp/pppoe 文件的缺省选项。这些选项可以是通过 pppoedpppd 使用的任何选项。有关这些选项的完整列表,请参见手册页 pppoed(1M)pppd(1M)

例如,您必须列出 PPPoE 通道可以使用的以太网接口,作为 global options 的一部分。如果未在 /etc/ppp/pppoe 中定义设备,则不会在任何接口上提供服务。

要将 devices 定义为全局选项,请使用以下格式:


device interface <,interface>

interface 指定服务将侦听可能的 PPPoE 客户机的接口。如果多个接口与服务关联,请使用逗号分隔各个名称。

service service-name

启动服务 service-name 的定义。service-name 是一个字符串,它可以是适用于所提供服务的任何短语。

service-specific-options

列出特定于此服务的 PPPoE 和 PPP 选项。

device interface-name

指定可以使用前面列出的服务的接口。

有关 /etc/ppp/pppoe 的其他选项,请参阅 pppoed(1M)pppd(1M) 手册页。

/etc/ppp/pppoe 文件通常与以下类似。


示例 22–2 基本 /etc/ppp/pppoe 文件


device hme1,hme2,hme3

service internet

   pppd "name internet-server"

service intranet

   pppd "192.168.1.1:"

service debug

   device hme1

   pppd "debug name internet-server"

在此文件中,以下值适用。

hme1,hme2,hme3

访问服务器上将要用于 PPPoE 通道的三个接口。

service internet

向预期的客户机通知称为 internet 的服务。提供该服务的提供商还确定定义 internet 的方式。例如,提供商可以将 internet 解释为表示各种 IP 服务和对 Internet 的访问。

pppd

设置呼叫者调用 pppd 时将使用的命令行选项。选项 "name internet-server" 将本地计算机(访问服务器)的名称指定为 internet-server

service intranet

向预期的客户机通知称为 intranet 的另一服务。

pppd "192.168.1.1:"

设置呼叫者调用 pppd 时将使用的命令行选项。呼叫者调用 pppd 时,192.168.1.1 将设置为本地计算机(访问服务器)的 IP 地址。

service debug

在定义用于 PPPoE 的接口上通知第三种服务(即调试)。

device hme1

将对 PPPoE 通道的调试限制为 hme1

pppd "debug name internet-server"

设置呼叫者调用 pppd 时将使用的命令行选项。在此例中,是对 internet-server(本地计算机)进行的 PPP 调试。

/etc/ppp/pppoe.device 文件

/etc/ppp/pppoe.device 文件说明 PPPoE 访问服务器的一个接口上提供的服务。/etc/ppp/pppoe.device 还包括定义 PPP 如何通过 PPPoE 通道运行的选项。/etc/ppp/pppoe.device 是一个可选文件,其运行方式与全局 /etc/ppp/pppoe 的运行方式完全相同。但是,如果为接口定义了 /etc/ppp/pppoe.device,则该接口的参数优先于 /etc/ppp/pppoe 中定义的全局参数。

/etc/ppp/pppoe.device 的基本语法如下所示:


service service-name

     service-specific-options

service another-service-name

      service-specific-options    

此语法与 /etc/ppp/pppoe 的语法的唯一差别是,您不能使用 /etc/ppp/pppoe 文件 中所示的 device 选项。

pppoe.so 插件

pppoe.so 是必须由 PPPoE 访问服务器和客户机调用的 PPPoE 共享对象文件。此文件将 MTU 和 MRU 限制为 1492,过滤驱动程序中的包,并与 pppoed 一起协商 PPPoE 通道。在访问服务器端,pppoe.sopppd 守护进程自动调用。

使用 PPPoE 和 PPP 文件配置访问服务器

本节包含用于配置访问服务器的所有文件样例。访问服务器为多宿主服务器。该服务器连接到三个子网:greenorangepurplepppoed 在服务器上缺省以 root 身份运行。

PPPoE 客户机可以通过接口 hme0hme1 访问 orangepurple 网络。客户机使用标准 UNIX 登录来登录到服务器。服务器使用 PAP 验证客户机。

green 网络不会向客户机通知。客户机可以访问 green 的唯一方法是直接指定 "green-net" 并提供 CHAP 验证凭证。此外,只有客户机 joemary 被允许使用静态 IP 地址访问 green 网络。


示例 22–3 访问服务器的/etc/ppp/pppoe 文件


service orange-net

     device hme0,hme1

     pppd "require-pap login name orange-server orange-server:"

service purple-net

     device hme0,hme1 

     pppd "require-pap login name purple-server purple-server:"

service green-net

     device hme1 

     pppd "require-chap name green-server green-server:"

     nowildcard

此样例说明访问服务器提供的服务。第一个服务部分说明 orange 网络的服务。


service orange-net

     device hme0,hme1

     pppd "require-pap login name orange-server orange-server:"

客户机通过接口 hme0hme1 访问 orange 网络。指定给 pppd 命令的选项将强制服务器要求可能的客户机提供 PAP 凭证。pppd 选项还将服务器的名称设置为 orange-server,与 pap-secrets 文件中所使用的相同。

purple 网络的服务部分与 orange 网络的服务部分相同,唯一不同的是网络和服务器名称。

下一部分说明 green 网络的服务:


service green-net

     device hme1 

     pppd "require-chap name green-server green-server:"

     nowildcard

此部分限制客户机访问接口 hme1。指定给 pppd 命令的选项将强制服务器要求预期的客户机提供 CHAP 凭证。pppd 选项还将服务器名称设置为 green-server,此名称将在 chap-secrets 文件中使用。nowildcard 选项指定将不向客户机通知 green 网络的存在。

对于上面讨论的访问服务器方案,可以设置以下 /etc/ppp/options 文件。


示例 22–4 访问服务器的/etc/ppp/options 文件


 	auth

 	proxyarp

 	nodefaultroute

 	name no-service	# don't authenticate otherwise

选项 name no-service 覆盖通常在 PAP 和 CHAP 验证期间搜索的服务器名称。服务器的缺省名称是由 /usr/bin/hostname 命令搜索到的名称。上一示例中的 name 选项将服务器的名称更改为 no-service。名称 no-service 可能不会出现在 papchap-secrets 文件中。此操作禁止随机用户运行 pppd 和覆盖在 /etc/ppp/options 中设置的 authname 选项。这样,由于找不到服务器名称为 no-service 的客户机的机密,pppd 将失败。

访问服务器方案使用以下 /etc/hosts 文件。


示例 22–5 访问服务器的/etc/hosts 文件


     172.16.0.1	orange-server

     172.17.0.1	purple-server

     172.18.0.1	green-server

     172.18.0.2	joes-pc

     172.18.0.3	marys-pc

以下是用于对尝试访问 orangepurple 网络的客户机进行 PAP 验证的 /etc/ppp/pap-secrets 文件。


示例 22–6 访问服务器的/etc/ppp/pap-secrets 文件


* orange-server "" 172.16.0.2/16+

* purple-server "" 172.17.0.2/16+

以下是用于 CHAP 验证的 /etc/ppp/chap-secrets 文件。请注意,该文件中只列出了 joemary 客户机。


示例 22–7 访问服务器的/etc/ppp/chap-secrets 文件


 joe green-server "joe's secret" joes-pc

mary green-server "mary's secret" marys-pc

PPPoE 客户机命令和文件

要通过 DSL 调制解调器运行 PPP,计算机必须成为 PPPoE 客户机。您必须检测用于运行 PPPoE 的接口,然后使用 pppoec 实用程序“搜索”是否存在访问服务器。这样,客户机可以创建通过 DSL 调制解调器的 PPPoE 通道,并运行 PPP。

PPPoE 客户机与传统客户机/服务器模型中的访问服务器相关。PPPoE 通道不是拨号链路,但配置和操作该通道的方式几乎相同。

可用于设置 PPPoE 客户机的命令和文件包括:

/usr/lib/inet/pppoec 实用程序

/usr/lib/inet/pppoec 实用程序负责协商 PPPoE 通道的客户机端。pppoec 与 Solaris PPP 4.0 chat 实用程序类似。不能直接调用 pppoec。相反,应将 /usr/lib/inet/pppoec 作为 pppdconnect 选项的参数启动。

pppoe.so 共享对象

pppoe.so 是 PPPoE 共享对象,它必须通过 PPPoE 装入,从而为访问服务器和客户机提供 PPPoE 功能。pppoe.so 共享对象将 MTU 和 MRU 限制为 1492,过滤驱动程序中的包,以及处理运行时 PPPoE 消息。

在客户机端,pppd 将在用户指定 plugin pppoe.so 选项时装入 pppoe.so

用于定义访问服务器对等点的 /etc/ppp/peers/peer-name 文件

定义要通过 pppoec 搜索的访问服务器时,可以使用应用于 pppoecpppd 守护进程的选项。访问服务器的/etc/ppp/peers/peer-name 文件需要以下参数:

/etc/ppp/peers/peer-name 文件中的其余参数应当应用于服务器上的 PPP 链路。使用将用于拨出计算机上的 /etc/ppp/peers/peer-name 的相同选项。尽量将 PPP 链路需要的选项数量限制为最小。

如何定义 PPPoE 访问服务器对等点中介绍了以下示例。


示例 22–8 用于定义远程访问服务器的/etc/ppp/peers/peer-name


# cat /etc/ppp/peers/dslserve

sppptun

plugin pppoe.so

connect "/usr/lib/inet/pppoec hme0"

noccp

noauth

user Red

password redsecret

noipdefault

defaultroute

此文件定义在设置 PPPoE 通道和指向访问服务器 dslserve 的 PPP 链路时要使用的参数。包括的选项如下所示。

选项 

说明 

sppptun

sppptun 定义为串行设备的名称。

plugin pppoe.so

指示 pppd 装入 pppoe.so 共享对象。

connect "/usr/lib/inet/pppoec hme0"

运行 pppoec 并将 hme0 指定为 PPPoE 通道和 PPP 链路的接口。

noccp

关闭链路上的 CCP 压缩。 


注 –

许多 ISP 仅使用专有的压缩算法。关闭公开的 CCP 算法可节省协商时间和避免偶然的互操作性问题。


noauth

禁止 pppd 要求访问服务器提供验证凭证。大多数 ISP 不向用户提供验证凭证。

user Red

将名称 Red 设置为客户机的用户名,访问服务器要求提供该名称以进行 PAP 验证。

password redsecret

redsecret 定义为要提供给访问服务器以进行 PAP 验证的口令。

noipdefault

将 0.0.0.0 指定为初始 IP 地址。 

defaultroute

指示 pppd 在 IPCP 协商之后安装缺省 IPv4 路由。当链路为指向 Internet 的系统链路时,应在 /etc/ppp/peers/peer-name 中包括 defaultroute,这也适用于 PPPoE 客户机。