系统管理指南:网络服务

第 5 部分 串行网络主题

本节主要讲述串行网络,其中提供了有关 PPP 和 UUCP 的概述、任务和参考信息。

第 15 章 Solaris PPP 4.0(概述)

本节介绍串行联网主题。串行联网是指使用串行接口(如 RS-232 或 V.35 端口)连接两台或更多计算机,以便进行数据传送。与 LAN 接口(如以太网)不同,这些串行接口用于连接相距很远的系统。PPP(Point-to-Point Protocol,点对点协议)和 UUCP(UNIX-to-UNIX CoPy,UNIX 对 UNIX 复制)是可用于实现串行联网的独特技术。为联网配置串行接口之后,多个用户可以按照几乎与使用任何其他网络接口(如以太网)相同的方法使用该接口。

本章介绍 Solaris PPP 4.0。利用此版本的 PPP,可以使位于不同物理位置的两台计算机能够在多种介质上使用 PPP 来相互通信。从 Solaris 9 发行版开始,Solaris PPP 4.0 将作为基本安装的一部分。

本章将讨论以下主题:

Solaris PPP 4.0 基础

Solaris PPP 4.0 实现点对点协议 (Point-to-Point Protocol, PPP),此协议为数据链路协议,是 TCP/IP 协议集的成员之一。PPP 说明通过通信介质(如电话线路)在两台端点计算机之间传输数据的方式。

自 20 世纪 90 年代初以来,PPP 已广泛用作通过通信链路发送数据报的 Internet 标准。PPP 标准由 Internet 工程任务组 (Internet Engineering Task Force, IETF) 的点对点工作组在 RFC 1661 中说明。当远程计算机呼叫配置用于接收传入呼叫的 Internet 服务提供商 (Internet service provider, ISP) 或公司服务器时,通常使用 PPP。

Solaris PPP 4.0 基于公开的澳大利亚国立大学 (Australian National University, ANU) PPP–2.4 并实现 PPP 标准。支持异步和同步 PPP 链路。

Solaris PPP 4.0 兼容性

在整个 Internet 社区中可以获取各种版本的标准 PPP,并且正在广泛使用这些版本。ANU PPP-2.4 广泛用于 Linux、Tru64 UNIX,以及 BSD 的三种最主要变体:

Solaris PPP 4.0 为运行 Solaris 操作系统的计算机带来了 ANU PPP-2.4 的高可配置特性。在运行 Solaris PPP 4.0 的计算机上可以轻易地设置连接到任何运行标准 PPP 实现的计算机的 PPP 链路。

不基于 ANU 但却能成功地与 Solaris PPP 4.0 进行交互操作的 PPP 实现包括:

要使用的 Solaris PPP 版本

从 Solaris 9 发行版开始,Solaris PPP 4.0 是受支持的 PPP 实现。Solaris 9 发行版和 Solaris 10 发行版不包括早期的异步 Solaris PPP (asppp) 软件。有关更多信息,请参阅以下内容:

为什么使用 Solaris PPP 4.0?

如果您当前使用的是 asppp,可以考虑迁移到 Solaris PPP 4.0。请注意这两种 Solaris PPP 技术之间的以下差别:

Solaris PPP 4.0 升级路径

如果要将现有 asppp 配置转换为 Solaris PPP 4.0,可以使用此发行版附带的转换脚本。有关完整说明,请参阅如何从 asppp 转换为 Solaris PPP 4.0

其他可获取更多 PPP 信息的渠道

可利用印刷材料和联机文档等多种资源获取更多有关 PPP 的信息。以下几个小节给出了一些建议。

有关 PPP 的专业参考书籍

有关广泛使用的 PPP 实现(包括 ANU PPP)的更多信息,请参阅以下书籍:

有关 PPP 的 Web 站点

要获取有关 PPP 的常规信息,请访问以下 Web 站点:

有关 PPP 的请求注解文档 (Requests for Comments, RFC)

有关 PPP 的一些有用的 Internet RFC 包括:

要获取 PPP RFC 的副本,请在 http://www.ietf.org/rfc.html 的 IETF RFC Web 页上指定 RFC 的编号。

有关 PPP 的手册页

有关 Solaris PPP 4.0 实现的技术层面的详细信息,请参阅以下手册页:

此外,还可以参见 pppdump(1M) 的手册页。可使用 man 命令找到与 PPP 有关的手册页。

PPP 配置和术语

本节介绍 PPP 配置,还将介绍本指南中使用的术语。

Solaris PPP 4.0 支持许多配置。

图 15–1 PPP 链路的各部分

图中显示了基本 PPP 链路的各部分,将在下面的内容中进一步说明。

上图显示了基本 PPP 链路。该链路包含以下部分:

拨号 PPP 概述

最常用的 PPP 配置是拨号链路。在拨号链路中,本地对等点向远程对等点拨号以建立连接并运行 PPP。在拨号过程中,本地对等点呼叫远程对等点的电话号码以启动该链路。

常见拨号情况包括呼叫 ISP 的对等点(配置用于接收传入呼叫)的家庭计算机。另外一种情况是公司站点,此站点中的本地计算机基于 PPP 链路向另一建筑内的对等点传输数据。

在本指南中,启动拨号连接的本地对等点称为拨出计算机。接收传入呼叫的对等点称为拨入服务器。此计算机实际上是拨出计算机的目标对等点,它可能是一台真实服务器也可能不是。

PPP 不是客户机/服务器协议。一些 PPP 文档使用术语“客户机”和“服务器”表示电话呼叫的建立。拨入服务器与文件服务器或名称服务器类似,不是一台真实的服务器。拨入服务器成为广泛使用的 PPP 术语是因为拨入计算机通常为多台拨出计算机提供网络访问“服务”。不过,拨入服务器是拨出计算机的目标对等点。

拨号 PPP 链路的各部分

请参见下图。

图 15–2 基本模拟拨号 PPP 链路

图中显示了位置 1 和位置 2 之间的基本拨号链路,将在下面的上下文中对其进行说明。

位置 1(链路的拨出端)的配置由以下元素组成:

位置 2(链路的拨入端)的配置由以下元素组成:

使用拨出计算机上的 ISDN 终端适配器

外部 ISDN TA 具有比调制解调器更快的速度,但可以按照基本相同的方法配置 TA。配置 ISDN TA 的主要差别在于聊天脚本,该脚本需要使用特定于 TA 制造商的命令。有关 ISDN TA 的聊天脚本的信息,请参阅外部 ISDN TA 的聊天脚本

拨号通信期间发生的操作

拨出和拨入对等点上的 PPP 配置文件包含用于设置链路的指令。启动拨号链路时将发生以下过程。

  1. 拨出计算机上的用户或进程运行 pppd 命令以启动链路。

  2. 拨出计算机读取其 PPP 配置文件。然后,拨出计算机基于串行线路将指令(包括拨入服务器的电话号码)发送到其调制解调器。

  3. 调制解调器拨打电话号码,以与拨入服务器上的调制解调器建立电话连接。

    拨出计算机发送到调制解调器和拨入服务器的一系列文本字符串包含在称为聊天脚本的文件中。如有必要,拨出计算机可发送命令到拨入服务器以调用该服务器上的 PPP。

  4. 连接到拨入服务器的调制解调器开始与拨出计算机上的调制解调器进行链路协商。

  5. 完成调制解调器对调制解调器协商后,拨出计算机上的调制解调器将报告 “CONNECT”。

  6. 两个对等点上的 PPP 都将进入建立阶段,此阶段中链路控制协议 (Link Control Protocol, LCP) 协商基本链路参数和验证的使用。

  7. 如有必要,对等点相互验证。

  8. PPP 的网络控制协议 (Network Control Protocol, NCP) 协商网络协议(如 IPv4 或 IPv6)的使用。

然后,拨出计算机对通过拨入服务器可访问的主机运行 telnet 或类似命令。

租用线路 PPP 概述

硬连线的租用线路 PPP 配置包括通过链路连接的两个对等点。该链路由从提供商处租用的交换式或非交换式数字服务组成。Solaris PPP 4.0 基于任何全双工、点对点租用线路介质工作。通常,公司从网络提供商租用硬连线的链路以连接到 ISP 或其他远程站点。

拨号链路与租用线路链路的比较

拨号链路和租用线路链路都包括通过通信介质连接的两个对等点。下表概述了两种链路类型之间的差别。

租用线路 

拨号线路 

始终处于连接状态,除非系统管理员断开租用线路的连接或由于停电而断开连接。 

根据需要在用户尝试呼叫远程对等点时启动。 

使用同步和异步通信。对于异步通信,通常使用长通信距离调制解调器。 

使用异步通信。 

从提供商处租用。 

使用现有电话线路。 

需要同步设备。 

使用低成本的调制解调器。 

需要大多数 SPARC 系统中常见的同步端口。但是,同步端口在 x86 系统和较新的 SPARC 系统中不常见。 

使用大多数计算机中附带的标准串行接口。 

租用线路 PPP 链路的各部分

请参见下图。

图 15–3 基本租用线路配置

图中显示了租用线路链路的各部分,将在下面的内容中说明。

租用线路链路包含以下部分:

租用线路通信期间发生的操作

在大多数类型的租用线路中,对等点实际上不相互拨号。相反,公司购买租用线路服务在两个固定位置之间显式建立连接。有时,位于租用线路两端的两个对等点处于同一公司的不同物理位置。另外一种情况是公司在租用线路上设置用于连接到 ISP 的路由器。

尽管硬连线的链路更容易设置,但租用线路通常没有拨号链路使用广泛。硬连线的链路不需要聊天脚本。租用线路时,由于两个对等点可相互识别,通常不使用验证。两个对等点启动基于链路的 PPP 之后,该链路将保持活动状态。如果线路未失败,或任何一个对等点未显式终止租用线路链路,该链路将会一直保持活动状态。

租用线路上运行 Solaris PPP 4.0 的对等点使用与定义拨号链路相同的大多数配置文件。

启动基于租用线路的通信时,将发生以下过程:

  1. 每台对等计算机都在引导过程中或在其他管理脚本中运行 pppd 命令。

  2. 对等点读取其 PPP 配置文件。

  3. 对等点协商通信参数。

  4. IP 链路建立。

PPP 验证

验证是检验用户是否是其声明的身份的过程。UNIX 登录序列是一种简单形式的验证:

  1. login 命令提示用户键入名称和口令。

  2. 然后,login 尝试在口令数据库中查找所键入的用户名和口令以验证该用户。

  3. 如果数据库中包含该用户名和口令,则用户将通过验证并得到访问系统的权限。如果数据库中不包含该用户名和口令,则将拒绝用户访问系统。

缺省情况下,Solaris PPP 4.0 在未指定缺省路由的计算机上不要求验证。因此,不包含缺省路由的本地计算机不会验证远程呼叫者。相反,如果计算机定义了缺省路由,则计算机会始终验证远程呼叫者。

对于设置连接到您计算机的 PPP 链路的呼叫者,可以使用 PPP 验证协议来检验其身份。相反,如果本地计算机必须呼叫会验证呼叫者的对等点,则必须配置 PPP 验证信息。

验证者和被验证者

由于呼叫者必须向远程对等点证明其身份,所以 PPP 链路上的呼叫计算机被视为被验证者。对等点被视为验证者。验证者将在安全协议的相应 PPP 文件中查找呼叫者的身份,然后确定是否对呼叫者进行验证。

通常为拨号链路配置 PPP 验证。开始呼叫时,拨出计算机是被验证者。拨入服务器是验证者。服务器中包含一个机密文件形式的数据库。此文件列出了被授予可设置连接到服务器的PPP 链路权限的用户。这些用户被视为可信赖呼叫者

一些拨出计算机要求远程对等点在响应拨出计算机的呼叫时提供验证信息。然后,它们的角色将互换:远程对等点成为被验证者,而拨出计算机成为验证者。


注 –

PPP 4.0 不阻止租用线路对等点的验证,但租用线路链路中通常不使用验证。租用线路合同的性质通常表示,线路两端的参与者可相互识别。两端的参与者通常是可信赖的。但是,由于 PPP 验证并不难于管理,所以应认真考虑实现租用线路的验证。


PPP 验证协议

PPP 验证协议包括口令验证协议 (Password Authentication Protocol, PAP) 和质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP)。对于允许链接到本地计算机的每个呼叫方,每一种协议都使用包含呼叫方的标识信息(或称为安全凭证)的机密数据库。有关 PAP 的详细说明,请参见口令验证协议 (Password Authentication Protocol, PAP)。有关 CHAP 说明,请参见质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP)

为什么使用 PPP 验证?

在 PPP 链路上提供验证是可选操作。此外,尽管验证会检验对等点是否可信赖,但 PPP 验证不提供数据的机密性。为了保密,请使用加密软件,如 IPsec、PGP、SSL、Kerberos 和 Solaris 安全 Shell。


注 –

Solaris PPP 4.0 未实现 RFC 1968 中说明的 PPP 加密控制协议 (Encryption Control Protocol, ECP)。


请考虑在下列情况下实现 PPP 验证。

通过 PPPoE 支持 DSL 用户

许多网络提供商和在家工作的个人使用数字用户线路 (Digital Subscriber Line, DSL) 技术提供快速的网络访问。为了支持 DSL 用户,Solaris PPP 4.0 包括了基于以太网的 PPP (PPP over Ethernet, PPPoE) 功能。借助 PPPoE 技术,多个主机可以通过一个指向一个或多个目标的以太网链路来运行 PPP 会话。

如果您的情况符合下列之一,则应使用 PPPoE:

本节介绍与 PPPoE 关联的术语和基本 PPPoE 拓扑的概述。

PPPoE 概述

PPPoE 是 RedBack Networks 的专有协议。PPPoE 为搜索协议,而不是标准 PPP 的另一个版本。在 PPPoE 情况中,启动 PPP 通信的计算机必须首先查找(或称为搜索)运行 PPPoE 的对等点。PPPoE 协议使用以太网广播包来查找对等点。

在搜索过程之后,PPPoE 通过启动主机(或称为 PPPoE 客户机)设置连接到对等点(PPPoE 访问服务器)的基于以太网的通道。建立通道是在一种协议顶端运行另一种协议的做法。 使用 PPPoE,Solaris PPP 4.0 可建立基于以太网 IEEE 802.2 的 PPP 通道,这两种协议都是数据链路协议。产生的 PPP 连接就像是 PPPoE 客户机和访问服务器之间的专用连接。有关 PPPoE 的详细信息,请参见创建 PPPoE 通道以支持 DSL

PPPoE 配置的各部分

PPPoE 配置中包括三个参与者:使用者、电话公司和服务提供商,如下图所示。

图 15–4 PPPoE 通道中的参与者

图中显示了企业、电话公司和服务提供商如何实现 PPPoE。

PPPoE 使用者

作为系统管理员,您可以帮助使用者配置其 PPPoE。一种常见类型的 PPPoE 使用者是需要基于 DSL 线路运行 PPPoE 的个人。另外一种 PPPoE 使用者是购买 DSL 线路的公司,员工可以通过该线路运行 PPPoE 通道,如上图所示。

公司使用者使用 PPPoE 的主要原因是通过高速的 DSL 设备向大量的主机提供 PPP 通信。通常,单独一台 PPPoE 客户机具有一个 DSL 调制解调器。或者,集线器上的一组客户机可以共享一个 DSL 调制解调器,该调制解调器也通过以太网线路连接到集线器。


注 –

从技术上讲,DSL 设备是网桥而不是调制解调器。但是,由于常见做法将这些设备称为调制解调器,所以本指南使用术语“DSL 调制解调器”。


PPPoE 通过连接到 DSL 调制解调器的以太网线路上的通道运行 PPP。该线路连接到分路器,而分路器又连接到电话线。

电话公司的 PPPoE

电话公司是 PPPoE 方案的中间层。电话公司使用称为数字用户线路访问多路复用器 (Digital Subscriber Line Access Multiplexer, DSLAM) 的设备,对通过电话线路接收的信号进行分路。DSLAM 将信号分离到独立的线路,模拟线路用于电话服务,数字线路用于 PPPoE。通过 DSLAM,数字线路将基于 ATM 数据网络的通道扩展到 ISP。

服务器提供商的 PPPoE

ISP 通过基于网桥的ATM 数据网络接收 PPPoE 传输。在 ISP 位置,运行 PPPoE 的访问服务器充当 PPP 链路的对等点。访问服务器在功能上与图 15–2 中介绍的拨入服务器非常类似,但访问服务器不使用调制解调器。访问服务器将单个 PPPoE 会话转换为常规 IP 流量,如 Internet 访问。

如果您是 ISP 的系统管理员,可能负责配置和维护访问服务器。

PPPoE 通道的安全性

PPPoE 通道实际上并不安全。您可以使用 PAP 或 CHAP 为基于通道运行的 PPP 链路提供用户验证。

第 16 章 规划 PPP 链路(任务)

设置 PPP 链路涉及一组独立的任务,其中包括规划任务以及与 PPP 无关的其他活动。本章介绍如何规划最常见的 PPP 链路、如何规划验证以及 PPPoE。

第 16 章,规划 PPP 链路(任务)后面的任务章节使用配置样例说明如何设置特定链路。本章中介绍了这些配置样例。

具体包含以下主题:

整体 PPP 规划(任务列表)

在实际设置链路之前,PPP 需要对任务进行规划。此外,如果要使用 PPPoE 通道,还必须首先设置 PPP 链路,然后提供通道。以下任务列表列出了本章中讨论的大型规划任务。您可能只需使用针对要配置的链路类型的常规任务。或者,可能需要执行针对链路、验证或 PPPoE 的任务。

表 16–1 PPP 规划的任务列表

任务 

说明 

参考 

规划拨号 PPP 链路 

收集设置拨出计算机或拨入服务器需要的信息 

规划拨号 PPP 链路

规划租用线路链路 

收集设置租用线路上的客户机需要的信息 

规划租用线路链路

规划 PPP 链路上的验证 

收集在 PPP 链路上配置 PAP 或 CHAP 验证需要的信息 

规划链路上的验证

规划 PPPoE 通道 

收集设置可以运行 PPP 链路的 PPPoE 通道需要的信息 

规划 PPPoE 通道上的 DSL 支持

规划拨号 PPP 链路

拨号链路是最常用的 PPP 链路。本节包含以下信息:

通常,只需配置拨号 PPP 链路一端的计算机:拨出计算机或拨入服务器。有关拨号 PPP 的介绍,请参阅拨号 PPP 概述

设置拨出计算机之前

配置拨出计算机之前,请收集下表中列出的信息。


注 –

本节中的规划信息不包括要收集的有关验证或 PPPoE 的信息。有关验证规划的详细信息,请参阅规划链路上的验证。有关 PPPoE 规划的信息,请参阅规划 PPPoE 通道上的 DSL 支持


表 16–2 拨出计算机的信息

信息 

操作 

调制解调器最大速度 

请参阅调制解调器制造商提供的文档。 

调制解调器连接命令(AT 命令) 

请参阅调制解调器制造商提供的文档。 

用于链路另一端的拨入服务器的名称 

创建有助于标识拨入服务器的任何名称。 

拨入服务器所需的登录序列 

与拨入服务器的管理员联系或参阅 ISP 文档(如果拨入服务器属于 ISP)。 

设置拨入服务器之前

配置拨入服务器之前,请收集下表中列出的信息。


注 –

本节中的规划信息不包括要收集的有关验证或 PPPoE 的信息。有关验证规划的详细信息,请参阅规划链路上的验证。有关 PPPoE 规划的信息,请参阅规划 PPPoE 通道上的 DSL 支持


表 16–3 拨入服务器的信息

信息 

操作 

调制解调器最大速度 

请参阅调制解调器制造商提供的文档。 

允许呼叫拨入服务器的人员的用户名 

在设置预期用户的起始目录之前,获取这些用户的名称,如如何配置拨入服务器的用户中所述。

用于 PPP 通信的专用 IP 地址 

从您公司中负责分派 IP 地址的个人获取地址。  

拨号 PPP 配置示例

第 17 章,设置拨号 PPP 链路(任务)中将介绍的任务可满足一家小型公司的需求,即允许员工在一周内有几天在家工作。某些员工需要在其家庭计算机上安装 Solaris OS。这些员工还需要远程登录到公司内联网中的工作计算机。

这些任务可设置具有以下特性的基本拨号链路:

下图显示了第 17 章,设置拨号 PPP 链路(任务)中设置的链路。

图 16–1 拨号链路样例

该图显示了拨号任务中要使用的链路样例。下面的上下文将对链路样例进行说明。

在此图中,某台远程主机使用电话线通过调制解调器拨叫 Big Company 的内联网。另一台主机已配置为拨叫 Big Company,但当前处于不活动状态。远程用户的呼叫按与 Big Company 中的拨入服务器相连的调制解调器的接收顺序进行应答。对等点之间建立了 PPP 连接。这样,拨出计算机就可以远程登录到内联网中的主机。

有关拨号 PPP 的更多参考信息

请参阅以下内容:

规划租用线路链路

设置租用线路链路涉及配置从提供商处租用的交换式或非交换式服务的一端中的对等点。

本节包含以下信息:

有关租用线路链路的介绍,请参阅租用线路 PPP 概述。有关设置租用线路的任务,请参见第 18 章,设置租用线路 PPP 链路(任务)

设置租用线路链路之前

如果您的公司租用网络提供商的租用线路链路,则通常只需配置您所在链路端的系统。链路另一端的对等点由其他管理员维护。此管理员可以是公司远程位置的某个系统管理员,也可以是 ISP 的系统管理员。

租用线路链路需要的硬件

除链路介质外,您所在链路端还需要以下硬件:

某些网络提供商的用户驻地设备 (customer premises equipment, CPE) 中包括路由器、同步接口和 CSU/DSU。但是,必需设备随提供商和您所在地区的政府限制的不同而变化。如果所需设备未随租用线路一起提供,则网络提供商可以提供此设备的相关信息。

要收集的租用线路链路信息

配置本地对等点之前,可能需要收集下表中列出的各项。

表 16–4 规划租用线路链路

信息 

操作 

接口的设备名称 

请参阅接口卡文档。 

同步接口卡的配置说明 

请参阅接口卡文档。配置 HSI/P 接口时需要此信息。可能不需要配置其他类型的接口卡。 

(可选)远程对等点的 IP 地址 

请参阅服务提供商文档。或者,与远程对等点的系统管理员联系。仅当 IP 地址未在两个对等点之间协商时,才需要此信息。 

(可选)远程对等点的名称 

请参阅服务提供商文档。或者,可与远程对等点的系统管理员联系。  

(可选)链路的速度 

请参阅服务提供商文档。或者,可与远程对等点的系统管理员联系。  

(可选)远程对等点使用的压缩 

请参阅服务提供商文档。或者,可与远程对等点的系统管理员联系。  

租用线路链路配置示例

第 18 章,设置租用线路 PPP 链路(任务)中的任务说明如何实现一个中型组织 (LocalCorp) 为其员工提供 Internet 访问的目标。当前,员工的计算机连接到公司的专用内联网。

LocalCorp 需要快速处理和访问 Internet 上的许多资源。该组织与服务提供商 Far ISP 签订合同,以允许 LocalCorp 设置其自己的连接到 Far ISP 的租用线路。然后,LocalCorp 从一家电话公司 Phone East 租用 T1 线路。Phone East 使用租用线路连接 LocalCorp 与 Far ISP。然后,Phone East 为 LocalCorp 提供已配置的 CSU/DSU。

这些任务可设置具有下列特征的租用线路链路。

图 16–2 租用线路配置示例

该图显示要在租用线路任务中使用的链路示例。下面的上下文将对链路样例进行说明。

在上图中,在 LocalCorp 中设置了一台路由器以实现 PPP。该路由器通过其 hme0 接口与公司内联网相连。第二个连接是通过计算机的 HSI/P 接口 (hihp1) 连接至 CSU/DSU 数字单元。然后,CSU/DSU 连接至已安装的租用线路。LocalCorp 管理员配置 HSI/P 接口和 PPP 文件。然后,该管理员键入 /etc/init.d/pppd 以启动 LocalCorp 与 Far ISP 之间的链路。

有关租用线路的更多参考信息

请参阅以下内容:

规划链路上的验证

本节包含有关提供 PPP 链路上验证的规划信息。第 19 章,设置 PPP 验证(任务)包含在您的站点中实现 PPP 验证的任务。

PPP 提供两种类型的验证:PAP(详见口令验证协议 (Password Authentication Protocol, PAP))和 CHAP(详见质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP))。

在链路上设置验证之前,必须选择最符合您站点的安全策略的验证协议。然后,为拨入计算机或呼叫者的拨出计算机(或者两种类型的计算机)设置机密文件和 PPP 配置文件。有关为您的站点选择合适的验证协议的信息,请参见为什么使用 PPP 验证?

本节包含以下信息:

有关设置验证的任务,请参见第 19 章,设置 PPP 验证(任务)

设置 PPP 验证之前

在您的站点设置验证应该作为 PPP 整体策略的一个不可或缺部分。实现验证之前,应组装硬件、配置软件并测试链路。

表 16–5 配置验证之前的先决条件

信息 

参考 

配置拨号链路的任务 

第 17 章,设置拨号 PPP 链路(任务)

测试链路的任务 

第 21 章,修复常见的 PPP 问题(任务)

您站点的安全要求 

您公司的安全策略。如果没有安全策略,则可通过设置 PPP 验证来创建安全策略。 

有关在您的站点中使用 PAP 还是使用 CHAP 的建议 

为什么使用 PPP 验证?。有关这些协议的更多详细信息,请参阅验证链路上的呼叫者

PPP 验证配置示例

本节介绍要在第 19 章,设置 PPP 验证(任务)的过程中使用的验证方案示例。

使用 PAP 验证的配置示例

配置 PAP 验证中的任务说明如何在 PPP 链路上设置 PAP 验证。这些过程使用为拨号 PPP 配置示例中虚构的 "Big Company"创建的 PAP 方案作为示例。

Big Company 希望其用户能够在家工作。系统管理员则希望为连接到拨入服务器的串行线路提供一种安全解决方案。使用 NIS 口令数据库的 UNIX 样式登录已在过去为 Big Company 的网络提供了良好的服务。系统管理员希望对通过 PPP 链路进入网络的呼叫使用类似于 UNIX 的验证方案。因此,管理员可实现使用 PAP 验证的以下方案。

图 16–3 PAP 验证方案示例(在家工作)

该图显示任务的 PAP 验证方案示例,如下文中所述。

系统管理员可创建一个专用的拨入 DMZ,它通过路由器与公司网络的其余部分隔开。术语 DMZ 来自军事术语“非军事化区”。DMZ 是为了安全而设置的一个隔离网络。DMZ 通常包含公司为公众提供的资源,如 Web 服务器、匿名 FTP 服务器、数据库和调制解调器服务器。一般情况下,网络设计者会将 DMZ 放置在防火墙与公司的 Internet 连接之间。

图 16–3 中,唯一的 DMZ 占用者是拨入服务器 myserver 和路由器。设置链路时,拨入服务器要求呼叫者提供 PAP 凭证,包括用户名和口令。此外,拨入服务器还会使用 PAP 的 login 选项。因此,呼叫者的 PAP 用户名和口令必须与其在拨入服务器口令数据库中的 UNIX 用户名和口令完全相符。

建立 PPP 链路之后,呼叫者的包将转发到路由器。然后,路由器将传输内容转发到其在公司网络或 Internet 上的目标。

使用 CHAP 验证的配置示例

配置 CHAP 验证中的任务说明如何设置 CHAP 验证。这些过程使用要为租用线路链路配置示例中介绍的虚构 LocalCorp 创建的 CHAP 方案作为示例。

LocalCorp 通过连接到 ISP 的租用线路提供与 Internet 的连接。LocalCorp 中的技术支持部门会产生巨大的网络通信流量。因此,技术支持部门需要拥有自己的隔离专用网络。该部门的现场技术人员经常到处出差,他们需要从远程位置访问技术支持部门的网络以获取解决问题的信息。为了保护专用网络数据库中的敏感信息,必须对远程呼叫者进行验证方可授予登录权限。

因此,系统管理员可对拨号 PPP 配置实现以下 CHAP 验证方案。

图 16–4 CHAP 验证方案示例(呼叫专用网络)

该图显示任务的 CHAP 验证方案示例,如上下文中所述。

技术支持部门网络与外界的唯一链路是连接到拨入服务器所在链路端的串行线路。系统管理员可配置每位现场服务代表的膝上型计算机,以实现具有 CHAP 安全性(包括 CHAP 机密)的 PPP。在拨入服务器的 chap-secrets 数据库中,包含允许呼入技术支持部门网络的所有计算机的 CHAP 凭证。

有关验证的更多参考信息

请选择以下内容:

规划 PPPoE 通道上的 DSL 支持

某些 DSL 提供商要求您为站点设置 PPPoE 通道,以便通过提供商的 DSL 线路和高速数字网络运行 PPP。有关 PPPoE 的概述,请参见通过 PPPoE 支持 DSL 用户

PPPoE 通道包括三个参与者:使用者、电话公司和 ISP。您可以为您公司的 PPPoE 客户机使用者、家中的使用者或 ISP 服务器的使用者配置 PPPoE。

本节包含有关在客户机和访问服务器上运行 PPPoE 的规划信息。具体包括以下主题:

有关设置 PPPoE 通道的任务,请参见第 20 章,设置 PPPoE 通道(任务)

设置 PPPoE 通道之前

预配置活动取决于您是配置通道的客户端还是服务器端。无论哪种情况,您或您的组织都必须与电话公司签订合同。电话公司为客户机提供 DSL 线路,以及为访问服务器提供某种形式的桥接并可能提供 ATM 管道。在大多数合同中,电话公司都会在您的站点组装其设备。

配置 PPPoE 客户机之前

PPPoE 客户机实现通常包含以下设备:

根据用户或公司的需求以及提供商提供的服务,可以使用许多不同的 DSL 配置。

表 16–6 规划 PPPoE 客户机

信息 

操作 

如果为个人或您自己设置家庭 PPPoE 客户机,请获取 PPPoE 范围之外的任何设置信息。 

请求电话公司或 ISP 提供所需的任何设置过程。 

如果在公司站点中设置 PPPoE 客户机,请收集被指定 PPPoE 客户机系统的用户的名称。如果配置远程 PPPoE 客户机,则您可能要负责提供有关添加家庭 DSL 设备的用户信息。 

请求公司中的管理人员提供已授权用户的列表。 

查找 PPPoE 客户机上的可用接口。 

在每台计算机上运行 ifconfig -a 命令,以列出接口名称。

(可选)获取 PPPoE 客户机的口令。 

请求用户提供其首选口令。或者,为用户指定口令。请注意,此口令用于链路验证,而不用于 UNIX 登录。 

配置 PPPoE 服务器之前

规划 PPPoE 访问服务器涉及与电话公司合作,用于提供与其数据服务网络的连接。电话公司将在您的站点上安装其线路(通常为 ATM 管道),并为访问服务器提供某种形式的桥接。您需要配置以太网接口以访问公司提供的服务。例如,您需要配置用于访问 Internet 的接口,以及电话公司网桥的以太网接口。

表 16–7 规划 PPPoE 访问服务器

信息 

操作 

用于数据服务网络中的线路的接口 

运行 ifconfig -a 命令以标识接口。

PPPoE 服务器提供的服务类型 

请求管理人员和网络规划者提出要求和建议。 

(可选)为使用者提供的服务类型 

请求管理人员和网络规划者提出要求和建议。 

(可选)远程客户机的主机名和口令 

询问网络规划者和您站点中负责合同协商的其他人。主机名和口令用于 PAP 或 CHAP 验证,而不用于 UNIX 登录。 

PPPoE 通道配置示例

本节包含 PPPoE 通道示例,用于说明第 20 章,设置 PPPoE 通道(任务)中的任务。虽然下图中显示了通道的所有参与者,但您只管理其中一端:客户端或服务器端。

图 16–5 PPPoE 通道示例

该图显示了任务中要使用的 PPPoE 通道示例,如下文中所述。

在该示例中,MiddleCo 希望为其员工提供高速 Internet 访问。MiddleCo 从 Phone East 处购买 DSL 包,而 Phone East 又与服务提供商 Far ISP 签订合同。Far ISP 为从 Phone East 处购买 DSL 的客户提供 Internet 和其他 IP 服务。

PPPoE 客户机配置示例

MiddleCo 从为站点提供一条 DSL 线路的 Phone East 处购买包。该包包含一条连接到 MiddleCo 的 PPPoE 客户机 ISP 的已验证专用连接。系统管理员用电缆将预期的 PPPoE 客户机与集线器相连。然后,Phone East 的技术人员用电缆将集线器连接到其 DSL 设备。

PPPoE 服务器配置示例

为了实现 FarISP 与 Phone East 之间的业务安排,FarISP 的系统管理员需要配置访问服务器 dslserve。此服务器具有以下四个接口:

有关 PPPoE 的更多参考信息

请选择以下内容:

第 17 章 设置拨号 PPP 链路(任务)

本章介绍配置最常见的 PPP 链路(即拨号链路)的任务。主要主题如下:

设置拨号 PPP 链路的主要任务(任务列表)

您可通过配置调制解调器、修改网络数据库文件以及修改表 22–1 中描述的 PPP 配置文件来设置拨号 PPP 链路。

下表列出了配置拨号 PPP 链路两端的主要任务。通常,您只需配置该链路的一端,拨出计算机或拨入服务器。

表 17–1 设置拨号 PPP 链路的任务列表

任务 

说明 

参考 

1. 收集预配置信息 

设置链路之前,收集所需数据,例如对等主机名、目标电话号码和调制解调器速度。 

规划拨号 PPP 链路

2. 配置拨出计算机 

在通过该链路进行呼叫的计算机上设置 PPP。 

表 17–2

3. 配置拨入服务器 

在接收传入呼叫的计算机上设置 PPP。 

表 17–3

4. 呼叫拨入服务器 

键入 pppd 命令以启动通信。

如何呼叫拨入服务器

配置拨出计算机

本节中的任务说明如何配置拨出计算机。这些任务以图 16–1 中介绍的从家中拨入方案为例。您可以在将计算机提供给预期用户之前,在公司执行这些任务。或者,可以指导有经验的用户设置其家庭计算机。设置拨出计算机的任何用户都必须对该计算机具有超级用户权限。

配置拨出计算机的任务(任务列表)

表 17–2 设置拨出计算机的任务列表

任务 

说明 

参考 

1. 收集预配置信息 

设置链路之前,收集所需数据,例如对等主机名、目标电话号码和调制解调器速度。 

规划拨号 PPP 链路

2. 配置调制解调器和串行端口 

设置调制解调器和串行端口。  

如何配置调制解调器和串行端口(拨出计算机)

3. 配置串行线路通信 

配置串行线路的传输特征。 

如何定义串行线路上的通信

4. 定义拨出计算机与对等点之间的会话 

收集创建聊天脚本时使用的通信数据。 

如何创建用于呼叫对等点的指令

5. 配置有关特定对等点的信息 

配置用于呼叫单个拨入服务器的 PPP 选项。 

如何定义与单个对等点的连接

6. 呼叫对等点 

键入 pppd 命令以启动通信。

如何呼叫拨入服务器.

拨号 PPP 模板文件

Solaris PPP 4.0 提供了模板文件。每个模板都包含特定 PPP 配置文件的公用选项。下表列出了可用于设置拨号链路的样例模板以及与其等效的 Solaris PPP 4.0 文件。

模板文件 

PPP 配置文件 

参考 

/etc/ppp/options.tmpl

/etc/ppp/options

/etc/ppp/options.tmpl 模板

/etc/ppp/options.ttya.tmpl

/etc/ppp/options.ttyname

options.ttya.tmpl 模板文件

/etc/ppp/myisp-chat.tmpl

采用所选名称且用以包含聊天脚本的文件 

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

/etc/ppp/peers/myisp.tmpl

/etc/ppp/peers/peer-name

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

如果您决定使用其中一个模板文件,请务必将该模板重命名为与其等效的 PPP 配置文件。但聊天文件模板 /etc/ppp/myisp-chat.tmpl 例外。您可以为聊天脚本选择任何名称。

配置拨出计算机上的设备

设置拨出 PPP 计算机的第一个任务是配置串行线路中的设备:调制解调器和串行端口。


注 –

适用于调制解调器的任务通常适用于 ISDN TA。


执行下一过程之前,必须完成下列操作。

有关规划信息,请参见表 16–2

Procedure如何配置调制解调器和串行端口(拨出计算机)

  1. 对调制解调器进行编程。

    虽然存在多种类型的调制解调器,但大多数调制解调器出厂时都具有正确的 Solaris PPP 4.0 设置。以下列出了使用 Solaris PPP 4.0 的调制解调器的基本参数设置。

    • DCD -遵照载体说明

    • DTR -设置得较低,以便调制解调器挂起,并使调制解调器处于挂机状态

    • 流控制 -设置为 RTS/CTS,以便进行全双工硬件流控制

    • 注意序列-禁用

    如果在设置链路时遇到问题,并且怀疑调制解调器出现故障,请首先参阅调制解调器制造商所提供的文档。此外,许多 Web 站点都提供了有关调制解调器编程方面的帮助。最后,您可以从如何诊断调制解调器问题中获得一些解决调制解调器问题的建议。

  2. 将调制解调器电缆与拨出计算机的串行端口以及电话插口相连。

  3. 成为拨出计算机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  4. 《系统管理指南:高级管理》中的“使用串行端口工具设置终端和调制解调器(概述)”中所述,运行 /usr/sadm/bin/smc 命令。此命令用于打开 Solaris Management Console。

    使用 Solaris Management Console 可执行以下操作。

    1. 选择与调制解调器相连的端口。

    2. 将调制解调器方向指定为仅拨出。

      您可以将调制解调器设置为双向。但是,选择仅拨出更安全,这样可以阻止可能的侵入者。


    注 –

    您可以通过 /usr/sadm/bin/smc 设置波特率和超时。但是,pppd 守护进程将忽略这些设置。


  5. 单击“确定”应用更改。

配置拨出计算机的通信

本节中的各个过程说明如何配置拨出计算机串行线路上的通信。使用这些过程之前,必须首先对调制解调器和串行端口进行配置,如如何配置调制解调器和串行端口(拨出计算机)中所述。

以下任务说明如何启用拨出计算机,以成功启动与拨入服务器的通信。通信是按照 PPP 配置文件中的选项所定义的方式启动的。需要创建以下文件:

Solaris PPP 4.0 提供了 PPP 配置文件模板,您可以根据需要自定义这些模板。有关这些文件的详细信息,请参阅拨号 PPP 模板文件

Procedure如何定义串行线路上的通信

  1. 成为拨出计算机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 使用以下项创建称作 /etc/ppp/options 的文件:


    lock
    

    /etc/ppp/options 文件由本地计算机用来定义适用于所有通信的全局参数。lock 选项启用 UUCP 样式锁定,格式为 /var/spool/locks/LK.xxx.yyy.zzz


    注 –

    如果拨出计算机没有 /etc/ppp/options 文件,则只有超级用户才能运行 pppd 命令。但是,/etc/ppp/options 可以为空。


    有关 /etc/ppp/options 的完整说明,请参阅/etc/ppp/options 配置文件

  3. (可选的)创建称为 /etc/ppp/options.ttyname 的文件,用于定义从特定串行端口启动通信的方式。

    以下示例显示了设备名称为 /dev/cua/a 的端口的 /etc/ppp/options.ttyname 文件。


    # cat /etc/ppp/options.cua.a
    
    crtscts

    PPP 选项 crtscts 指示 pppd 守护进程针对串行端口 a 打开硬件流控制。

    有关 /etc/ppp/options.ttyname 文件的更多信息,请转至/etc/ppp/options.ttyname 配置文件

  4. 按照如何设置调制解调器速度中所述,设置调制解调器速度。

Procedure如何创建用于呼叫对等点的指令

在拨出计算机启动 PPP 链路之前,必须收集有关将成为对等点的拨入服务器的信息。然后,使用此信息创建聊天脚本,用于描述拨出计算机与对等点之间的实际会话。

  1. 确定拨出计算机的调制解调器所需的运行速度。

    有关更多信息,请参见配置拨号链路的调制解调器速度

  2. 从拨入服务器的站点获取以下信息:

    • 服务器的电话号码

    • 使用的验证协议(如果适用)

    • 对于聊天脚本对等点所需的登录序列

  3. 获取拨入服务器站点中的名称服务器的名称和 IP 地址。

  4. 在聊天脚本中,提供用于启动呼叫特定对等点的指令。

    例如,可以创建以下聊天脚本 /etc/ppp/mychat,以呼叫拨入服务器 myserver


    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

    该脚本包含用于呼叫需要登录序列的 Solaris 拨入服务器的指令。有关每条指令的说明,请参阅用于 UNIX 样式登录的增强基本聊天脚本。有关创建聊天脚本的完整详细信息,请阅读定义拨号链路上的会话一节。


    注 –

    不要直接调用该聊天脚本,而应将聊天脚本的文件名用作 chat 命令的参数来调用该脚本。


    如果对等点运行 Solaris 或类似操作系统,请考虑将上述聊天脚本用作拨出计算机的模板。

Procedure如何定义与单个对等点的连接

  1. 成为拨出计算机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 通过创建以下 /etc/resolv.conf 文件来更新 DNS 数据库:


    domain bigcompany.com
    
    nameserver 10.10.111.15
    
    nameserver 10.10.130.8
    
    domain bigcompany.com

    指定对等点的 DNS 域为 bigcompany.com

    nameserver 10.10.111.15nameserver 10.10.130.8

    列出 bigcompany.com 中的名称服务器的 IP 地址。

  3. 编辑 /etc/nsswitch.conf 文件,指示首先在 DNS 数据库中搜索主机信息。


    hosts:      dns [NOTFOUND=return] files 
  4. 为对等点创建文件。

    例如,可以创建以下文件来定义拨入服务器 myserver


    # cat /etc/ppp/peers/myserver
    
    /dev/cua/a
    
    57600
    
    noipdefault
    
    defaultroute
    
    idle 120
    
    noauth
    
    connect "chat -U 'mypassword' -T 1-123-555-1213 -f /etc/ppp/mychat"
    /dev/cua/a

    指定应将设备 /dev/cua/a 用作呼叫 myserver 的串行接口。

    57600

    定义链路的速度。

    noipdefault

    指定对于使用对等点 myserver 的事务,拨出计算机的初始 IP 地址为 0.0.0.0。myserver 会为每个拨号会话的拨出计算机分配一个 IP 地址。

    idle 120

    指示链路在空闲 120 秒之后必须超时。

    noauth

    指定对等点 myserver 在与拨出计算机协商连接时,无需提供验证凭证。

    connect "chat -U 'mypassword' -T 1-123-555-1213 -f /etc/ppp/mychat"

    指定 connect 选项及其参数,包括对等点的电话号码以及带有呼叫指令的聊天脚本 /etc/ppp/mychat

另请参见

以下列出了相关的参考信息。

配置拨入服务器

本节中的任务用于配置拨入服务器。拨入服务器是一台通过 PPP 链路接收拨出计算机的呼叫的对等计算机。这些任务说明如何配置图 16–1 中介绍的拨入服务器 myserver

配置拨入服务器的任务(任务列表)

表 17–3 设置拨入服务器的任务列表

任务 

说明 

参考 

1. 收集预配置信息 

设置链路之前,收集所需数据,例如对等主机名、目标电话号码和调制解调器速度。 

规划拨号 PPP 链路

2. 配置调制解调器和串行端口 

设置调制解调器和串行端口。 

如何配置调制解调器和串行端口(拨入服务器)

3. 配置呼叫对等点信息 

为允许呼叫拨入服务器的每台拨出计算机设置用户环境和 PPP 选项。 

如何配置拨入服务器的用户

4. 配置串行线路通信 

配置串行线路的传输特性。 

如何定义串行线路上的通信(拨入服务器)

配置拨入服务器上的设备

以下过程说明如何配置拨入服务器的调制解调器和串行端口。

执行下一过程之前,必须在对等拨入服务器上完成下列活动:

Procedure如何配置调制解调器和串行端口(拨入服务器)

  1. 按照调制解调器制造商所提供的文档中的说明,对调制解调器进行编程。

    有关其他建议,请参阅如何配置调制解调器和串行端口(拨出计算机)

  2. 连接调制解调器和拨入服务器上的串行端口。

  3. 成为拨入服务器的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  4. 使用 Solaris Management Console 的 /usr/sadm/bin/smc 命令配置串行端口,如《系统管理指南:高级管理》中的“使用串行端口工具设置终端和调制解调器(概述)”中所述。

    使用 Solaris Management Console 可执行以下操作:

    1. 选择与调制解调器相连的串行端口。

    2. 将调制解调器方向指定为仅拨入。


      注 –

      Solaris PPP 4.0 支持调制解调器进行双向通信。


    3. 单击“确定”应用更改。

Procedure如何设置调制解调器速度

下一过程说明如何设置拨入服务器的调制解调器速度。有关 Sun Microsystems 计算机使用的速度的建议,请参见配置拨号链路的调制解调器速度

  1. 登录到拨入服务器。

  2. 使用 tip 命令访问调制解调器。

    有关使用 tip 设置调制解调器速度的说明,请参阅 tip(1) 手册页。

  3. 将调制解调器配置为固定 DTE 速率。

  4. 使用 ttymon/usr/sadm/bin/smc 将串行端口锁定为该速率,如《系统管理指南:高级管理》中的“使用串行端口工具设置终端和调制解调器(概述)”中所述。

另请参见

以下列出了相关的参考信息。

设置拨入服务器的用户

设置拨入服务器的过程中涉及配置有关每个已知远程呼叫者的信息。

开始本节中的过程之前,必须完成以下操作:

Procedure如何配置拨入服务器的用户

  1. 成为拨入服务器的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 在拨入服务器上为每个远程 PPP 用户创建一个新帐户。

    可以使用 Solaris Management Console 来新建用户。/usr/sadm/bin/smc 命令用于打开 Solaris Management Console。有关通过 Solaris Management Console 创建新用户的说明,请参见《系统管理指南:基本管理》中的“设置用户帐户(任务图)”

  3. 使用 Solaris Management Console 为新用户指定参数。

    例如,下表显示了拨出计算机 myhomeuser1pppuser 帐户的参数。

    参数 

    值 

    定义 

    用户名 

    pppuser

    远程用户的用户帐户名。此帐户名应与聊天脚本登录序列中指定的帐户名相符。例如,pppuser如何创建用于呼叫对等点的指令的聊天脚本中的帐户名。

    登录 Shell 

    /usr/bin/pppd

    远程用户的缺省登录 Shell。登录 Shell /usr/bin/pppd 最初会将呼叫者限制到专用 PPP 环境。

    创建起始目录路径 

    /export/home/pppuser

    当呼叫者成功登录到拨入服务器时,将设置起始目录 /export/home/pppuser

  4. 为每个呼叫者创建一个 $HOME/.ppprc 文件,用于包含各种特定于用户 PPP 会话的选项。

    例如,可为 pppuser 创建以下 .ppprc 文件。


    # cat /export/home/pppuser/.ppprc
    
    noccp

    noccp 用于禁用链路上的压缩控制。

另请参见

以下列出了相关的参考信息。

配置拨入服务器的通信

以下任务说明如何启用拨入服务器以打开与任何拨出计算机的通信。以下 PPP 配置文件中定义的选项可确定如何建立通信。

有关这些文件的详细信息,请参阅在文件和命令行中使用 PPP 选项

继续之前,应完成以下操作:

Procedure如何定义串行线路上的通信(拨入服务器)

  1. 成为拨入服务器的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 使用以下项创建 /etc/ppp/options 文件。


    nodefaultroute
    

    nodefaultroute 表明如果没有 root 权限,则本地系统上的任何 pppd 会话都无法建立缺省路由。


    注 –

    如果拨入服务器没有 /etc/ppp/options 文件,则只有超级用户才能运行 pppd 命令。但是,/etc/ppp/options 文件可以为空。


  3. 创建文件 /etc/options.ttyname,以定义如何处理通过串行端口 ttyname 接收的呼叫。

    以下 /etc/options.ttya 文件定义了拨入服务器的串行端口 /dev/ttya 处理传入呼叫的方式。


    :10.0.0.80
    
    xonxoff
    
    :10.0.0.80

    为通过串行端口 ttya 呼入的所有对等点指定 IP 地址 10.0.0.80

    xonxoff

    允许串行线路在启用了软件流控制的情况下处理来自调制解调器的通信

另请参见

如果按照本章中的所有过程进行操作,则至此已完成拨号链路配置。以下列出了相关的参考信息。

呼叫拨入服务器

通过指示拨出计算机呼叫拨入服务器,可建立拨号 PPP 链路。您可通过在本地 PPP 配置文件中指定 demand 选项,指示拨出计算机呼叫服务器。但是,建立该链路的最常用方法是让用户在拨出计算机上运行 pppd 命令。

继续执行下面的任务之前,应完成下面的一个或两个操作:

Procedure如何呼叫拨入服务器

  1. 使用常规用户帐户而不是 root 登录到拨出计算机。

  2. 通过运行 pppd 命令来呼叫拨入服务器。

    例如,以下命令将启动拨出计算机与拨入服务器 myserver 之间的链路:


    % pppd 57600 call myserver
    
    pppd

    通过调用 pppd 守护进程来启动呼叫

    57600

    设置主机与调制解调器之间的线路速度

    call myserver

    调用 pppd. pppdcall 选项,然后读取在如何定义与单个对等点的连接中创建的 /etc/ppp/peers/myserver 文件中的选项

  3. 与服务器网络中的某台主机联系,例如,图 16–1 中所示的主机 lindyhop


    ping lindyhop
    

    如果链路未正常工作,请参阅第 21 章,修复常见的 PPP 问题(任务)

  4. 终止 PPP 会话:


    % pkill -x pppd
    
另请参见

如果按照本章中的所有过程进行操作,则至此已完成拨号链路配置。以下列出了相关的参考信息:

第 18 章 设置租用线路 PPP 链路(任务)

本章介绍如何配置在对等点之间使用租用线路的 PPP 链路。主要章节包括:

设置租用线路(任务列表)

与设置拨号链路相比,设置租用线路链路相对比较容易。在大多数情况下,您都无需配置 CSU/DSU、拨号服务或验证。如果您确实需要配置 CSU/DSU,请参阅制造商所提供的文档以获取有关此复杂任务的帮助。

下面的任务列表中介绍了与基本租用线路链路设置有关的所有任务。


注 –

某些类型的租用线路确实需要 CSU/DSU,才能对另外一个对等点的地址进行“拨号”。例如,帧中继使用交换式虚拟电路 (Switched Virtual Circuit, SVC) 或交换式 56 服务。


表 18–1 设置租用线路链路的任务列表

任务 

说明 

参考 

1. 收集预配置信息 

设置链路之前,收集所需数据。 

表 16–4

2. 设置租用线路硬件 

组装 CSU/DSU 和同步接口卡。 

如何配置同步设备

3. 如果需要,配置接口卡 

配置启动租用线路时要使用的接口脚本。 

如何配置同步设备

4. 配置有关远程对等点的信息 

定义本地机器和远程对等点之间的通信的工作方式。 

如何配置租用线路上的计算机

5. 启动租用线路 

作为引导过程的一部分,将计算机配置为在租用线路上启动 PPP。 

如何配置租用线路上的计算机

配置租用线路上的同步设备

本节中的任务涉及配置租用线路链路配置示例中介绍的租用线路拓扑所需的设备。连接租用线路需要的同步设备包括接口和调制解调器。

设置同步设备的先决条件

执行下一过程之前,必须具有下列各项:

Procedure如何配置同步设备

  1. 如有必要,将接口卡物理安装在本地机器中。

    按照制造商所提供的文档说明进行操作。

  2. 将 CSU/DSU 电缆连接到接口。

    如有必要,将 CSU/DSU 电缆连接到租用线路插口或类似连接器。

  3. 根据制造商或网络提供商所提供的文档说明配置 CSU/DSU。


    注 –

    提供租用线路的提供商可能会为您的链路提供和配置 CSU/DSU。


  4. 如有必要,按照接口文档的说明配置接口卡。

    配置接口卡涉及为接口创建启动脚本。在图 16–2 所示的租用线路配置中,位于 LocalCorp 的路由器使用 HSI/P 接口卡。

    以下脚本 hsi-conf 用于启动 HSI/P 接口。


    #!/bin/ksh
    
    /opt/SUNWconn/bin/hsip_init hihp1 speed=1536000 mode=fdx loopback=no \
    
    nrzi=no txc=txc rxc=rxc txd=txd rxd=rxd signal=no 2>&1 > /dev/null
    hihp1

    指示使用的同步端口为 HSI/P

    speed=1536000

    设置该项以指示 CSU/DSU 的速度

另请参见

要配置租用线路上的本地机器,请参阅如何配置租用线路上的计算机

配置租用线路上的计算机

本节中的任务说明如何设置路由器,以使其在租用线路的末端(您所在的一端)充当本地对等点。该任务以租用线路链路配置示例中介绍的租用线路为例。

配置租用线路上的本地机器的先决条件

执行下一过程之前,必须完成下列操作:

Procedure如何配置租用线路上的计算机

  1. 成为本地机器(路由器)的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 在路由器的 /etc/hosts 文件中,为远程对等点添加项。


    # cat /etc/hosts
    
    #
    
    # Internet host table
    
    #
    
    127.0.0.1       localhost
    
    192.168.130.10  local2-peer        loghost
    
    192.168.130.11  local1-net
    
    10.0.0.25       farISP
    

    /etc/hosts 文件示例适用于虚构的 LocalCorp 中的本地路由器。请注意服务提供商的远程对等点 farISP 的 IP 地址和主机名。

  3. 创建文件 /etc/ppp/peers/ peer-name,以保留有关提供商对等点的信息。

    在以下租用线路链路示例中,将创建文件 /etc/ppp/peers/farISP


    # cat /etc/ppp/peers/farISP
    
    init '/etc/ppp/conf_hsi'
    
    local
    
    /dev/hihp1
    
    sync
    
    noauth
    
    192.168.130.10:10.0.0.25
    
    passive
    
    persist
    
    noccp
    
    nopcomp
    
    novj
    
    noaccomp

    下表对 /etc/ppp/peers/farISP 中使用的各个选项和参数进行了说明。

    选项 

    定义 

    init '/etc/ppp/conf_hsi'

    启动链路。然后,init 使用脚本 /etc/ppp/conf_hsi 中的参数配置 HSI 接口。

    local

    指示 pppd 守护进程不要更改数据终端就绪 (Data Terminal Ready, DTR) 信号的状态。此外,还指示 pppd 忽略数据载波检测 (Data Carrier Detect, DCD) 输入信号。

    /dev/hihp1

    指定同步接口的设备名称。 

    sync

    为链路建立同步编码。

    noauth

    确定本地系统不需要求从其对等点进行验证。但是,对等点仍会要求验证。

    192.168.130.10:10.0.0.25

    定义本地对等点和远程对等点的 IP 地址,并用冒号分隔。 

    passive

    指示本地机器上的 pppd 守护进程在发出最大数目的 LCP 配置请求后保持静默,并等待对等点启动。

    persist

    指示 pppd 守护进程在连接终止后尝试重新启动链路。

    noccp, nopcomp, novj, noaccomp

    分别禁用压缩控制协议 (Compression Control Protocol, CCP)、协议字段压缩、Van Jacobson 压缩以及地址和控制字段压缩。这些形式的压缩可加快拨号链路上的传输,但可能会降低租用线路的速度。 

  4. 创建称作 demand 的初始化脚本,以作为引导过程的一部分创建 PPP 链路。


    # cat /etc/ppp/demand
    
    #!/bin/sh
    
    if [ -f /var/run/ppp-demand.pid ] &&
    
       /usr/bin/kill -s 0 `/bin/cat /var/run/ppp-demand.pid`
    
    then
    
            :
    
    else
    
            /usr/bin/pppd call farISP
    
    fi

    demand 脚本包含用于建立租用线路链路的 pppd 命令。下表对 $PPPDIR/demand 的内容进行了说明。

    代码样例 

    说明 

    if [ -f /var/run/ppp-demand.pid ] && /usr/bin/kill -s 0 `/bin/cat /var/run/ppp-demand.pid`

    这些行用于检查 pppd 是否正在运行。如果 pppd 正在运行,则无需启动它。

    /usr/bin/pppd call farISP

    此行用于启动 pppdpppd/etc/ppp/options 读取选项。此外,命令行中的 call farISP 选项也会使其读取 /etc/ppp/peers/farISP

    作为 Solaris 引导过程的一部分,Solaris PPP 4.0 启动脚本 /etc/rc2.d/S47pppd 会调用 demand 脚本。/etc/rc2.d/S47pppd 中的以下行用于搜索是否存在称为 $PPPDIR/demand 的文件。


        if [ -f $PPPDIR/demand ]; then
    
                    . $PPPDIR/demand
    
            fi
    
            

    如果找到该文件,则执行 $PPPDIR/demand。在执行 $PPPDIR/demand 过程中,将建立链路。


    注 –

    要访问本地网络以外的计算机,请指示用户运行 telnetftprsh 或类似命令。


另请参见

如果您已按照本章中的所有过程进行操作,则至此已完成租用线路链路的配置。以下列出了相关的参考信息。

第 19 章 设置 PPP 验证(任务)

本章介绍设置 PPP 验证的任务,具体包含以下主题:

这些过程说明如何基于拨号链路实现验证,因为与租用线路链路相比,配置拨号链路进行验证的可能性更大。如果公司的安全策略要求基于租用线路进行验证,则可以配置该验证。可使用本章中的任务来指导租用线路验证。

如果要使用 PPP 验证,但又不能确定应使用的协议,请查看为什么使用 PPP 验证?一节。有关 PPP 验证的更多详细信息,请参阅 pppd(1M) 手册页和验证链路上的呼叫者

配置 PPP 验证(任务列表)

本节包含有助于您快速访问 PPP 验证过程的任务列表。

表 19–1 常规 PPP 验证的任务列表

任务 

说明 

参考 

配置 PAP 验证 

使用这些过程在拨入服务器和拨出计算机上启用 PAP 验证。 

设置 PAP 验证(任务列表)

配置 CHAP 验证 

使用这些过程在拨入服务器和拨出计算机上启用 CHAP 验证。 

设置 CHAP 验证(任务列表)

配置 PAP 验证

本节中的任务说明如何使用口令验证协议 (Password Authentication Protocol, PAP) 在 PPP 链路上实现验证。这些任务使用PPP 验证配置示例中的示例来说明拨号链路的 PAP 工作方案。请根据这些说明在您的站点上实现 PAP 验证。

执行后续过程之前,必须完成下列操作:

设置 PAP 验证(任务列表)

使用下面的任务列表,可快速访问拨入服务器中与 PAP 相关的任务和拨出计算机上的可信赖呼叫者。

表 19–2 PAP 验证的任务列表(拨入服务器)

任务 

说明 

参考 

1. 收集预配置信息 

收集验证所需的用户名和其他数据。 

规划链路上的验证

2. 如有必要,更新口令数据库 

确保所有可能的呼叫者均位于服务器的口令数据库中。 

如何创建 PAP 凭证数据库(拨入服务器)

3. 创建 PAP 数据库 

/etc/ppp/pap-secrets 中为所有预期呼叫者创建安全凭证。

如何创建 PAP 凭证数据库(拨入服务器)

4. 修改 PPP 配置文件 

将特定于 PAP 的选项添加到 /etc/ppp/options/etc/ppp/peers/peer-name 文件中。

如何将 PAP 支持添加到 PPP 配置文件(拨入服务器)

表 19–3 PAP 验证的任务列表(拨出计算机)

任务 

说明 

参考 

1. 收集预配置信息 

收集验证所需的用户名和其他数据。 

规划链路上的验证

2. 为可信赖呼叫者的计算机创建 PAP 数据库 

/etc/ppp/pap-secrets 中为可信赖呼叫者创建安全凭证,如有必要,还为呼叫拨出计算机的其他用户创建安全凭证。

如何为可信赖呼叫者配置 PAP 验证凭证

3. 修改 PPP 配置文件 

将特定于 PAP 的选项添加到 /etc/ppp/options/etc/ppp/peers/peer-name 文件中。

如何将 PAP 支持添加到 PPP 配置文件(拨出计算机)

在拨入服务器上配置 PAP 验证

要设置 PAP 验证,必须执行以下操作:

Procedure如何创建 PAP 凭证数据库(拨入服务器)

此过程修改 /etc/ppp/pap-secrets 文件,该文件包含用于对链路上的呼叫者进行验证的 PAP 安全凭证。PPP 链路上的两台计算机中必须都存在 /etc/ppp/pap-secrets

图 16–3 中介绍的 PAP 配置样例使用了 PAP 的 login 选项。如果计划使用此选项,则可能还需要更新网络的口令数据库。有关 login 选项的更多信息,请参阅使用带有 login 选项的 /etc/ppp/pap-secrets

  1. 汇编包含所有可能的可信赖呼叫者的列表。可信赖呼叫者是将被授予从其远程计算机呼叫拨入服务器的权限的人员。

  2. 检验每个可信赖呼叫者在拨入服务器的口令数据库中是否已具有 UNIX 用户名和口令。


    注 –

    对于使用 PAP 的 login 选项对呼叫者进行验证的 PAP 配置样例,这种检验尤其重要。如果选择不实现 PAP 的 login 选项,则呼叫者的 PAP 用户名不必与其 UNIX 用户名相符。有关标准 /etc/ppp/pap-secrets 的信息,请参阅 /etc/ppp/pap-secrets 文件


    如果某个可能的可信赖呼叫者没有 UNIX 用户名和口令,请执行以下操作:

    1. 向您不认识的呼叫者的管理者确认其是否具有访问拨入服务器的权限。

    2. 在公司安全策略的指导下,为这些呼叫者创建 UNIX 用户名和口令。

  3. 成为拨入服务器的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  4. 编辑 /etc/ppp/pap-secrets 文件。

    Solaris PPP 4.0 在 /etc/ppp 中提供了一个 pap-secrets 文件,该文件包含有关如何使用 PAP 验证的注释,但不包含任何选项。可以在注释末尾添加以下选项。


    user1      myserver        ""          *
    
    user2      myserver        ""          *
    
    myserver   user2           serverpass  *
    

    要使用 /etc/ppp/pap-secretslogin 选项,必须键入每个可信赖呼叫者的 UNIX 用户名。只要第三个字段中出现一组双引号 (““),就会在服务器的口令数据库中查找该呼叫者的口令。

    myserver * serverpass * 项包含拨入服务器的 PAP 用户名和口令。在图 16–3 中,可信赖呼叫者 user2 需要从远程对等点进行验证。因此,myserver/etc/ppp/pap-secrets 文件包含与 user2 建立链路时要使用的 PAP 凭证。

另请参见

以下列出了相关的参考信息。

修改 PPP 配置文件以进行 PAP 验证(拨入服务器)

本节中的任务说明如何更新任何现有 PPP 配置文件,以支持在拨入服务器上进行 PAP 验证。

Procedure如何将 PAP 支持添加到 PPP 配置文件(拨入服务器)

此过程以如何定义串行线路上的通信(拨入服务器)中介绍的 PPP 配置文件为例。

  1. 以超级用户身份登录到拨入服务器或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 将验证选项添加到 /etc/ppp/options 文件中。

    例如,将以粗体显示的选项添加到现有 /etc/ppp/options 文件中,以实现 PAP 验证:


    lock
    
    auth
    
    login
    
    nodefaultroute
    
    proxyarp
    
    ms-dns 10.0.0.1
    
    idle 120
    
    
    auth

    指定服务器必须在建立链路之前对呼叫者进行验证。

    login

    指定应使用标准 UNIX 用户验证服务对远程呼叫者进行验证。

    nodefaultroute

    表明如果没有 root 权限,则本地系统上的任何 pppd 会话都无法建立缺省路由。

    proxyarp

    在系统的地址解析协议 (Address Resolution Protocol, ARP) 表中添加项,用于指定对等点的 IP 地址和系统的以太网地址。使用此选项,对等点看起来位于其他系统的本地以太网中。

    ms-dns 10.0.0.1

    启用 pppd 以便为客户机提供域名服务器 (Domain Name Server, DNS) 地址 10.0.0.1

    idle 120

    指定将在两分钟后断开空闲用户的连接。

  3. /etc/ppp/options.cua.a 文件中,为 cua/a 用户添加以下地址。


    :10.0.0.2
  4. /etc/ppp/options.cua.b 文件中,为 cua/b 用户添加以下地址。


    :10.0.0.3
  5. /etc/ppp/pap-secrets 文件中,添加以下项。


    *     *     	""     *
    

    注 –

    如前所述,login 选项提供必需的用户验证。/etc/ppp/pap-secrets 文件中的此项是使用 login 选项启用 PAP 的标准方法。


另请参见

有关如何为拨入服务器的可信赖呼叫者配置 PAP 验证凭证,请参阅为可信赖呼叫者配置 PAP 验证(拨出计算机)

为可信赖呼叫者配置 PAP 验证(拨出计算机)

本节包含在可信赖呼叫者的拨出计算机上设置 PAP 验证的任务。作为系统管理员,在将 PAP 凭证分发给预期呼叫者之前,可在系统上设置 PAP 验证。或者,如果远程呼叫者已经有自己的计算机,则可以指导这些呼叫者完成本节中的任务。

为可信赖呼叫者配置 PAP 涉及两个任务:

Procedure如何为可信赖呼叫者配置 PAP 验证凭证

此过程说明如何为两个可信赖呼叫者设置 PAP 凭证,其中一个可信赖呼叫者需要来自远程对等点的验证凭证。此过程中的步骤假定,作为系统管理员的您要在可信赖呼叫者的拨出计算机上创建 PAP 凭证。

  1. 成为拨出计算机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

    使用图 16–3 中介绍的 PAP 配置样例,并假定拨出计算机属于 user1

  2. 修改呼叫者的 pap-secrets 数据库。

    Solaris PPP 4.0 提供了一个包含有用注释但不包含任何选项的 /etc/ppp/pap-secrets 文件。可以将以下选项添加到此 /etc/ppp/pap-secrets 文件中。


    user1    myserver  pass1    *
    

    请注意,user1 的口令 pass1 以可读的 ASCII 格式在链路中传递。myserver 是呼叫者 user1 的对等点名称。

  3. 成为另一台拨出计算机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

    使用 PAP 验证示例,并假定此拨出计算机属于呼叫者 user2

  4. 修改呼叫者的 pap-secrets 数据库。

    可以将以下选项添加到现有 /etc/ppp/pap-secrets 文件的末尾。


    user2     myserver   pass2       *
    
    myserver  user2      serverpass  *
    

    在此示例中,/etc/ppp/pap-secrets 有两个项。第一个项包含 user2 传递给拨入服务器 myserver 以进行验证的 PAP 安全凭证。

    作为链路协商的一部分,user2 需要拨入服务器的 PAP 凭证。因此,/etc/ppp/pap-secrets 的第二行中还包含期望来自 myserver 的 PAP 凭证。


    注 –

    由于大多数 ISP 不提供验证凭证,因此要与 ISP 进行通信,上述方案可能不切实际。


另请参见

以下列出了相关的参考信息。

修改 PPP 配置文件以进行 PAP 验证(拨出计算机)

以下任务说明如何更新现有 PPP 配置文件,以支持在可信赖呼叫者的拨出计算机上进行 PAP 验证。

此过程使用以下参数在属于图 16–3 中介绍的 user2 的拨出计算机上配置 PAP 验证。user2 要求传入呼叫者对呼叫(包括来自拨入服务器 myserver 的呼叫)进行验证。

Procedure如何将 PAP 支持添加到 PPP 配置文件(拨出计算机)

此过程以如何定义串行线路上的通信中介绍的 PPP 配置文件为例。此过程将配置属于 user2 的拨出计算机,如图 16–3 中所示。

  1. 以超级用户身份登录到拨出计算机。

  2. 修改 /etc/ppp/options 文件。

    以下 /etc/ppp/options 文件包含 PAP 支持选项,如粗体所示。


    # cat /etc/ppp/options
    
    lock
    
    name user2
    
    auth
    
    require-pap
    
    name user2

    user2 设置为本地计算机上用户的 PAP 名称。如果使用 login 选项,则 PAP 名称必须与口令数据库中该用户的 UNIX 用户名相同。

    auth

    说明拨出计算机在建立链路之前必须对呼叫者进行验证。


    注 –

    虽然大多数拨出计算机不要求从其对等点进行验证,但此拨出计算机要求这样做。可使用任意一种方法。


    require-pap

    要求来自对等点的 PAP 凭证。

  3. 为远程计算机 myserver 创建 /etc/ppp/peers/peer-name 文件。

    以下示例说明如何将 PAP 支持添加到如何定义与单个对等点的连接中创建的现有 /etc/ppp/peers/myserver 文件。


    # cat /etc/ppp/peers/myserver
    
    /dev/cua/a
    
    57600
    
    noipdefault
    
    defaultroute
    
    idle 120
    
    user user2
    
    remotename myserver
    
    connect "chat -U 'mypassword' -f /etc/ppp/mychat"

    以粗体显示的新选项用于添加对等点 myserver 的 PAP 要求。

    user user2

    user2 定义为本地计算机的用户名

    remotename myserver

    myserver 定义为要求来自本地计算机的验证凭证的对等点

另请参见

以下列出了相关的参考信息。

配置 CHAP 验证

本节中的任务说明如何使用质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP) 在 PPP 链路上实现验证。这些任务使用图 16–4 中的示例来说明进行专用网络拨号的 CHAP 工作方案。请根据这些说明在您的站点上实现 CHAP 验证。

执行后续过程之前,必须完成下列操作:

设置 CHAP 验证(任务列表)

表 19–4 CHAP 验证的任务列表(拨入服务器)

任务 

说明 

参考 

1. 将 CHAP 机密指定给所有可信赖呼叫者 

创建呼叫者的 CHAP 机密,或指示呼叫者创建自己的 CHAP 机密。 

如何创建 CHAP 凭证数据库(拨入服务器)

2. 创建 chap-secrets 数据库 

将所有可信赖呼叫者的安全凭证添加到 /etc/ppp/chap-secrets 文件中。

如何创建 CHAP 凭证数据库(拨入服务器)

3. 修改 PPP 配置文件 

将特定于 CHAP 的选项添加到 /etc/ppp/options/etc/ppp/peers/peer-name 文件中。

如何将 CHAP 支持添加到 PPP 配置文件(拨入服务器)

表 19–5 CHAP 验证的任务列表(拨出计算机)

任务 

说明 

参考 

1. 为可信赖呼叫者的计算机创建 CHAP 数据库 

/etc/ppp/chap-secrets 中为可信赖呼叫者创建安全凭证,如有必要,还为呼叫拨出计算机的其他用户创建安全凭证。

如何创建 CHAP 凭证数据库(拨入服务器)

2. 修改 PPP 配置文件 

将特定于 CHAP 的选项添加到 /etc/ppp/options 文件中。

如何将 CHAP 支持添加到 PPP 配置文件(拨出计算机)

在拨入服务器上配置 CHAP 验证

设置 CHAP 验证的第一个任务是修改 /etc/ppp/chap-secrets 文件。此文件包含用于对链路上的呼叫者进行验证的 CHAP 安全凭证(包括 CHAP 机密)。


注 –

UNIX 或 PAM 验证机制对 CHAP 无效。例如,不能按如何创建 PAP 凭证数据库(拨入服务器)中所述的内容使用 PPP login 选项。如果验证方案需要 PAM 或 UNIX 样式的验证,请改为选择 PAP。


以下过程为专用网络中的拨入服务器实现 CHAP 验证。PPP 链路是与外界的唯一连接。网络管理员(可能包括系统管理员)已对可访问网络的那些呼叫者授予权限。

Procedure如何创建 CHAP 凭证数据库(拨入服务器)

  1. 汇编包含所有可信赖呼叫者的用户名的列表。可信赖呼叫者包括所有已授予呼叫专用网络权限的人员。

  2. 为每个用户指定 CHAP 机密。


    注 –

    务必选择不易猜出的可靠 CHAP 机密。CHAP 机密的内容无任何其他限制。


    指定 CHAP 机密的方法取决于站点的安全策略。或者由您负责创建机密,或者呼叫者必须创建自己的机密。如果您不负责指定 CHAP 机密,则务必获取由每个可信赖呼叫者创建的、或为每个可信赖呼叫者创建的 CHAP 机密。

  3. 成为拨入服务器的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  4. 修改 /etc/ppp/chap-secrets 文件。

    Solaris PPP 4.0 提供了一个包含有用注释但不包含任何选项的 /etc/ppp/chap-secrets 文件。可以在现有 /etc/ppp/chap-secrets 文件的末尾为服务器 CallServe 添加以下选项。


    account1  CallServe   key123   *
    
    account2  CallServe   key456   *
    

    key123 是可信赖呼叫者 account1 的 CHAP 机密。

    key456 是可信赖呼叫者 account2 的 CHAP 机密。

另请参见

以下列出了相关的参考信息。

修改 PPP 配置文件以进行 CHAP 验证(拨入服务器)

本节中的任务说明如何更新现有 PPP 配置文件,以支持在拨入服务器上进行 CHAP 验证。

Procedure如何将 CHAP 支持添加到 PPP 配置文件(拨入服务器)

  1. 以超级用户身份登录到拨入服务器。

  2. 修改 /etc/ppp/options 文件。

    添加以粗体显示的 CHAP 支持选项。


    # cat /etc/ppp/options
    
    lock
    
    nodefaultroute
    
    name CallServe
    
    auth
    
    name CallServe

    CallServe 定义为本地计算机(在此实例中为拨入服务器)上用户的 CHAP 名称

    auth

    使本地计算机在建立链路之前对呼叫者进行验证

  3. 创建其他 PPP 配置文件以支持可信赖呼叫者。

    请参见如何配置拨入服务器的用户如何定义串行线路上的通信(拨入服务器)

另请参见

要为可信赖呼叫者配置 CHAP 验证凭证,请参阅如何创建 CHAP 凭证数据库(拨入服务器)

为可信赖呼叫者配置 CHAP 验证(拨出计算机)

本节包含在可信赖呼叫者的拨出计算机上设置 CHAP 验证的任务。根据站点的安全策略,可以由您或可信赖呼叫者负责设置 CHAP 验证。

在远程呼叫者配置 CHAP 的情况下,应确保该呼叫者的本地 CHAP 机密与拨入服务器的 /etc/ppp/chap-secrets 文件中该呼叫者的等效 CHAP 机密匹配。然后,指示这些呼叫者执行本节中的任务以配置 CHAP。

为可信赖呼叫者配置 CHAP 涉及两个任务:

Procedure如何为可信赖呼叫者配置 CHAP 验证凭证

此过程说明如何为两个可信赖呼叫者设置 CHAP 凭证。此过程中的步骤假定,作为系统管理员的您要在可信赖呼叫者的拨出计算机上创建 CHAP 凭证。

  1. 成为拨出计算机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

    使用使用 CHAP 验证的配置示例中的 CHAP 配置样例,并假定拨出计算机属于可信赖呼叫者 account1

  2. 修改呼叫者 account1 的 chap-secrets 数据库。

    Solaris PPP 4.0 提供了一个包含有用注释但不包含任何选项的 /etc/ppp/chap-secrets 文件。可以将以下选项添加到现有 /etc/ppp/chap-secrets 文件中。


    account1  CallServe   key123   *
    

    CallServeaccount1 要尝试访问的对等点的名称。key123 是将用于 account1CallServer 之间的链路的 CHAP 机密。

  3. 成为另一台拨出计算机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

    假定此计算机属于呼叫者 account2

  4. 修改呼叫者 account2 的 /etc/ppp/chap-secrets 数据库。


    account2  CallServe   key456   *
    

    现在,account2 将机密 key456 作为在指向对等点 CallServe 的链路上使用的 CHAP 凭证。

另请参见

以下列出了相关的参考信息。

将 CHAP 添加到配置文件(拨出计算机)

要了解有关 CHAP 验证的更多信息,请参阅质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP)。下一任务将配置属于在使用 CHAP 验证的配置示例中介绍的呼叫者 account1 的拨出计算机。

Procedure如何将 CHAP 支持添加到 PPP 配置文件(拨出计算机)

  1. 以超级用户身份登录到拨出计算机。

  2. 确保 /etc/ppp/options 文件包含以下选项。


    # cat /etc/ppp/options
    
    lock
    
    nodefaultroute
  3. 为远程计算机 CallServe 创建 /etc/ppp/peers/peer-name 文件。


    # cat /etc/ppp/peers/CallServe
    
    /dev/cua/a
    
    57600
    
    noipdefault
    
    defaultroute
    
    idle 120
    
    user account1
    
    connect "chat -U 'mypassword' -f /etc/ppp/mychat"

    选项 user account1account1 设置为指定给 CallServe 的 CHAP 用户名。有关以上文件中其他选项的说明,请参见如何定义与单个对等点的连接中类似的 /etc/ppp/peers/myserver 文件。

另请参见

要通过呼叫拨入服务器来测试 CHAP 验证,请参阅如何呼叫拨入服务器

第 20 章 设置 PPPoE 通道(任务)

本章介绍在 PPPoE 通道的任何一端设置参与者(PPPoE 客户机和 PPPoE 访问服务器)的任务。包含以下特定主题:

这些任务以规划 PPPoE 通道上的 DSL 支持中介绍的方案为例。有关 PPPoE 概述,请参阅通过 PPPoE 支持 DSL 用户

设置 PPPoE 通道的主要任务(任务列表)

下表列出了配置 PPPoE 客户机和 PPPoE 访问服务器的主要任务。要在您的站点实现 PPPoE,只需设置您所在的 PPPoE 通道的一端(客户端或访问服务器端)。

表 20–1 设置 PPPoE 客户机的任务列表

任务 

说明 

参考 

1. 配置 PPPoE 接口 

定义要用于 PPPoE 通道的以太网接口。 

如何配置 PPPoE 客户机接口

2. 配置有关 PPPoE 访问服务器的信息 

为 PPPoE 通道的服务提供商端的访问服务器定义参数。 

如何定义 PPPoE 访问服务器对等点

3. 设置 PPP 配置文件 

定义客户机的 PPP 配置文件(如果尚未定义)。 

如何定义串行线路上的通信

4. 创建通道 

呼叫访问服务器。 

如何定义 PPPoE 访问服务器对等点

表 20–2 设置 PPPoE 访问服务器的任务列表

任务 

说明  

参考 

1. 设置 PPPoE 访问服务器 

定义要用于 PPPoE 通道的以太网接口以及访问服务器提供的服务。 

如何设置 PPPoE 访问服务器

2. 设置 PPP 配置文件 

定义客户机的 PPP 配置文件(如果尚未定义)。 

配置拨入服务器的通信

3. (可选)限制接口的使用 

使用 PPPoE 选项和 PAP 验证,将特定的以太网接口限制为仅某些客户机可使用。 

如何将接口限制为仅特定客户机可使用

设置 PPPoE 客户机

要通过 DSL 为客户机系统提供 PPP,必须首先在与相应调制解调器或集线器相连的接口上配置 PPPoE。然后,需要更改 PPP 配置文件,以便在 PPPoE 的另外一端定义访问服务器。

设置 PPPoE 客户机的先决条件

设置 PPPoE 客户机之前,必须完成下列操作:

Procedure如何配置 PPPoE 客户机接口

使用此过程可定义要用于 PPPoE 通道的以太网接口。

  1. 成为 PPPoE 客户机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 将连接到 DSL 的以太网接口名称添加到 /etc/ppp/pppoe.if 文件中。

    例如,对于将 hme0 用作连接到 DSL 调制解调器的网络接口的 PPPoE 客户机,将以下项添加到 /etc/ppp/pppoe.if 中。


    hme0
    

    有关 /etc/ppp/pppoe.if 的更多信息,请转至/etc/ppp/pppoe.if 文件

  3. 为使用 PPPoE 配置接口。


    # /etc/init.d/pppd start
    
  4. (可选的)检验是否现在已对 PPPoE 接口进行检测。


    # /usr/sbin/sppptun query
    
    hme0:pppoe
    
    hme0:pppoed

    此外,也可以使用 /usr/sbin/sppptun 命令,手动检测 PPPoE 接口。有关说明,请参阅/usr/sbin/sppptun 命令

Procedure如何定义 PPPoE 访问服务器对等点

您可以在 /etc/ppp/peers/peer-name 文件中定义访问服务器。用于访问服务器的许多选项也可用于定义拨号方案中的拨入服务器。有关 /etc/ppp/peers.peer-name 的详细说明,请参阅/etc/ppp/peers/peer-name 文件

  1. 成为 PPPoE 客户机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. /etc/ppp/peers/peer-name 文件中,定义服务提供商的 PPPoE 访问服务器。

    例如,以下文件 /etc/ppp/peers/dslserve 定义PPPoE 通道配置示例中介绍的 Far ISP 的访问服务器 dslserve


    # cat /etc/ppp/peers/dslserve
    
    sppptun
    
    plugin pppoe.so
    
    connect "/usr/lib/inet/pppoec hme0"
    
    noccp
    
    noauth
    
    user Red
    
    password redsecret
    
    noipdefault
    
    defaultroute

    有关此文件中的选项定义,请转至用于定义访问服务器对等点的 /etc/ppp/peers/peer-name 文件

  3. 修改 PPPoE 客户机的其他 PPP 配置文件。

    1. 按照配置拨出计算机中配置拨出计算机的说明中所述,配置 /etc/ppp/options

    2. 创建 /etc/ppp/options.sppptun 文件。/etc/ppp/options.sppptun 可为检测的 PPPoE 接口所连接到的串行端口定义 PPP 选项。

      您可以使用可用于/etc/ppp/options.ttyname 配置文件中所述的 /etc/ppp/options. ttyname 文件的所有选项。由于 sppptunpppd 配置中的指定设备名称,因此必须为文件 /etc/ppp/options.sppptun 命名。

  4. 确保所有用户都可以在客户机上启动 PPP。


    # touch /etc/ppp/options
    
  5. 测试 PPP 是否可在 DSL 线路上运行。


    % pppd debug updetach call dslserve
    

    dslserve 是指定给PPPoE 通道配置示例中所示的 ISP 访问服务器的名称。debug updetach 选项则使调试信息显示在终端窗口中。

    如果 PPP 正常运行,终端输出将显示处于活动状态的链路。如果 PPP 仍未运行,请尝试以下命令以查看服务器是否正常运行:


    # /usr/lib/inet/pppoec -i hme0
    

    注 –

    已配置的 PPPoE 客户机的用户可以通过键入以下命令,在 DSL 线路上开始运行 PPP:


    % pppd call ISP-server-name
    

    然后,用户便可以运行应用程序或服务。


另请参见

以下列出了相关的参考信息。

设置 PPPoE 访问服务器

如果您的公司是服务提供商,则可以为通过 DSL 连接访问您站点的客户机提供 Internet 服务和其他服务。该过程包括确定服务器中哪些接口与 PPPoE 通道有关,以及定义哪些服务可供用户使用。

Procedure如何设置 PPPoE 访问服务器

使用此过程可定义要用于 PPPoE 通道的以太网接口,以及配置访问服务器提供的服务。

  1. 成为访问服务器的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 将 PPPoE 通道专用的以太网接口名称添加到 /etc/ppp/pppoe.if 文件。

    例如,对于PPPoE 通道配置示例中所示的访问服务器 dslserve,可以使用以下 /etc/ppp/pppoe.if 文件。


    # cat /etc/ppp/pppoe.if
    
    hme1
    
    hme2
    
  3. /etc/ppp/pppoe 文件中定义访问服务器提供的全局服务。

    在以下 /etc/ppp/pppoe 文件中,列出了图 16–5 中所示的访问服务器 dslserve 提供的服务。


    
    device hme1,hme2
    
    service internet
    
        pppd "proxyarp 192.168.1.1:"
    
    service debugging
    
        pppd "debug proxyarp 192.168.1.1:"
    

    在该文件示例中,对于 dslserve 的以太网接口 hme1hme2,宣布支持 Internet 服务。在这些以太网接口上,对 PPP 链路启用了调试功能。

  4. 采用与设置拨入服务器相同的方法设置 PPP 配置文件。

    有关更多信息,请参阅为呼叫者创建 IP 寻址方案

  5. 启动 pppoed 守护进程。


    # /etc/init.d/pppd start
    

    pppd 还会检测 /etc/ppp/pppoe.if 中列出的接口。

  6. (可选的)检验是否已检测服务器上的 PPPoE 接口。


    # /usr/sbin/sppptun query
    
    hme1:pppoe
    
    hme1:pppoed
    
    hme2:pppoe
    
    hme2:pppoed

    以上样例表明,当前正在检测 PPPoE 接口 hme1hme2。此外,也可以使用 /usr/sbin/sppptun 命令,手动检测 PPPoE 接口。有关说明,请参阅/usr/sbin/sppptun 命令

Procedure如何修改现有 /etc/ppp/pppoe 文件

  1. 成为访问服务器的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 根据需要修改 /etc/ppp/pppoe

  3. 使 pppoed 守护进程识别新服务。


    # pkill -HUP pppoed
    

Procedure如何将接口限制为仅特定客户机可使用

以下过程说明如何将接口限制为仅一组 PPPoE 客户机可使用。执行此任务之前,需要获取指定给该接口的客户机的实际以太网 MAC 地址。


注 –

某些系统允许您更改以太网接口的 MAC 地址。您应将此功能视为一种便利因素,而非一种安全措施。


使用PPPoE 通道配置示例中所示的示例,这些步骤说明如何为 MiddleCo 中的客户机保留 dslserve 的接口之一 hme1

  1. 配置访问服务器接口并定义服务,如如何设置 PPPoE 访问服务器中所示。

  2. 在服务器的 /etc/ethers 数据库中创建客户机项。

    以下是客户机 Red、Blue 和 Yellow 的项样例。


    8:0:20:1:40:30 redether
    
    8:0:20:1:40:10 yellowether
    
    8:0:20:1:40:25 blueether

    该样例将符号名称 redetheryellowetherblueether 指定给客户机 Red、Yellow 和 Blue 的以太网地址。为 MAC 地址指定符号名称为可选操作。

  3. 通过在 /etc/ppp/pppoe.device 文件中定义以下信息,限制特定接口上提供的服务。

    在此文件中,device 为要定义的设备的名称。


    # cat /etc/ppp/pppoe.hme1
    
    service internet
    
         pppd "name dslserve-hme1"
    
         clients redether,yellowether,blueether

    dslserve-hme1 是访问服务器的名称,该名称用于匹配 pap-secrets 文件中的项。clients 选项将接口 hme1 限制为以太网符号名称为 redetheryellowetherblueether 的客户机可使用。

    如果未在 /etc/ethers 中为客户机的 MAC 地址定义符号名称,则可将数字地址用作 clients 选项的参数。允许使用通配符。

    例如,可以指定数字地址 clients 8:0:20:*:*:*。通过使用通配符,可接受 /etc/ethers 中的所有匹配地址。

  4. 为访问服务器创建 /etc/ppp/pap-secrets 文件:


    Red         dslserve-hme1   redpasswd     *
    
    Blue        dslserve-hme1   bluepasswd    *
    
    Yellow      dslserve-hme1   yellowpassd   *
    

    这些项为允许在 dslservehme1 接口上运行 PPP 的客户机的 PAP 名称和口令。

    有关 PAP 验证的更多信息,请参见配置 PAP 验证

另请参见

以下列出了相关的参考信息。

第 21 章 修复常见的 PPP 问题(任务)

本章包含对 Solaris PPP 4.0 的常见问题进行疑难解答的有关信息,具体包含以下主题:

此外,在 James Carlson 的《PPP Design, Implementation, and Debugging》以及澳大利亚国立大学的网站中,也提供了详细的 PPP 疑难解答建议。有关更多信息,请参见有关 PPP 的专业参考书籍有关 PPP 的 Web 站点

解决 PPP 问题(任务列表)

使用以下任务列表可快速访问有关常见 PPP 问题的建议和解决方案。

表 21–1 PPP 疑难解答任务列表

任务 

定义  

参考 

获取有关 PPP 链路的诊断信息 

使用 PPP 诊断工具获取用于疑难解答的输出。 

如何从 pppd 获取诊断信息

获取 PPP 链路的调试信息 

使用 pppd debug 命令生成用于疑难解答的输出。

如何启用 PPP 调试功能

对网络层常见问题进行疑难解答 

使用一系列检查来确定并修复与网络相关的 PPP 问题。 

如何诊断网络问题

对常见的通信问题进行疑难解答 

确定并修复影响 PPP 链路的通信问题。 

如何诊断和修复通信问题

对配置问题进行疑难解答 

确定并修复 PPP 配置文件的问题 

如何诊断 PPP 配置问题

对与调制解调器相关的问题进行疑难解答 

确定并修复调制解调器问题。 

如何诊断调制解调器问题

对与聊天脚本相关的问题进行疑难解答 

确定并修复拨出计算机的聊天脚本问题。 

如何获取聊天脚本的调试信息

对串行线路速度问题进行疑难解答 

确定并修复拨入服务器的线路速度问题。 

如何诊断和修复串行线路速度问题

对租用线路的常见问题进行疑难解答 

确定并修复租用线路的性能问题。 

修复租用线路问题

对与验证相关的问题进行疑难解答 

确定并修复与验证数据库相关的问题。 

诊断和修复验证问题

对 PPPoE 问题范围进行疑难解答 

使用 PPP 诊断工具获取用于确定并修复 PPPoE 问题的输出。 

如何获取 PPPoE 的诊断信息

PPP 疑难解答工具

PPP 链路通常出现以下三种主要故障:

确定 PPP 工作与否的最简单方法是在链路上运行命令。请对对等点网络中的主机运行 pingtraceroute 等命令,然后观察结果。但是,您应使用 PPP 和 UNIX 调试工具来监视所建立链路的性能,或排除有问题链路的故障。

本节说明如何从 pppd 及其关联的日志文件获取诊断信息。本章的其余各节将介绍借助 PPP 疑难解答工具可以发现和修复的 PPP 常见问题。

Procedure如何从 pppd 获取诊断信息

以下过程说明如何在本地计算机上查看链路的当前操作。

  1. 成为本地计算机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 将为 PPP 配置的串行设备作为参数,运行 pppd


    # pppd cua/b debug updetach
    

    以下示例说明了当 pppd 在前台运行时,生成的拨号链路和租用线路链路显示内容。如果在后台运行 pppd debug,生成的输出将发送到 /etc/ppp/connect-errors 文件。


示例 21–1 正常运行的拨号链路的输出


# pppd /dev/cua/b debug updetach

have route to 0.0.0.0/0.0.0.0 via 172.21.0.4

serial speed set to 230400 bps

Using interface sppp0

Connect: sppp0 <--> /dev/cua/b

sent [LCP ConfReq id=0x7b <asyncmap 0x0> <magic 0x73e981c8> <pcomp> <accomp>]

rcvd [LCP Ident id=0x79 magic=0x0 "ppp-2.4.0b1 (Sun Microsystems, Inc., Oct  6 

	2004 09:36:22)"]

Peer Identification: ppp-2.4.0b1 (Sun Microsystems, Inc., Oct  6 2004 09:36:22)

	rcvd [LCP ConfRej id=0x7b <asyncmap 0x0>]

sent [LCP Ident id=0x7c magic=0x0 "ppp-2.4.0b1 (Sun Microsystems, Inc., Sep 15 

	2004 09:38:33)"

sent [LCP ConfReq id=0x7d <magic 0x73e981c8> <pcomp> <accomp>]

rcvd [LCP ConfAck id=0x7d <magic 0x73e981c8> <pcomp> <accomp>]

rcvd [LCP ConfAck id=0x78 <magic 0xdd4ad820> <pcomp> <accomp>]

sent [LCP ConfAck id=0x78 <magic 0xdd4ad820> <pcomp> <accomp>]

sent [LCP Ident id=0x7e magic=0x73e981c8 "ppp-2.4.0b1 (Sun Microsystems, Inc., 

	Sep 15 2004 09:38:33)"]

sent [IPCP ConfReq id=0x3d <addr 0.0.0.0> <compress VJ 0f 01>]

rcvd [LCP Ident id=0x7a magic=0xdd4ad820 "ppp-2.4.0b1 (Sun Microsystems, Inc., 

	Oct  6 2004 09:36:22)"]

Peer Identification: ppp-2.4.0b1 (Sun Microsystems, Inc., Oct  6 2004 09:36:22)

rcvd [IPCP ConfReq id=0x92 <addr 10.0.0.1> <compress VJ 0f 01>

sent [IPCP ConfAck id=0x92 <addr 10.0.0.1> <compress VJ 0f 01>

rcvd [IPCP ConfNak id=0x3d <addr 10.0.0.2>]]

sent [IPCP ConfReq id=0x3e <addr 10.0.0.2> <compress VJ 0f 01>]

rcvd [IPCP ConfAck id=0x3e <addr 10.0.0.2> <compress VJ 0f 01>]

local  IP address 10.0.0.2

remote IP address 10.0.0.1


示例 21–2 正常运行的租用线路链路的输出


# pppd /dev/se_hdlc1 default-asyncmap debug updetach

pppd 2.4.0b1 (Sun Microsystems, Inc., Oct 24 2004 07:13:18) started by root, uid 0

synchronous speed appears to be 0 bps

init option: '/etc/ppp/peers/syncinit.sh' started (pid 105122)

Serial port initialized.

synchronous speed appears to be 64000 bps

Using interface sppp0

Connect: sppp0 <--> /dev/se_hdlc1

sent [LCP ConfReq id=0xe9 <magic 0x474283c6><pcomp> <accomp>]

rcvd [LCP ConfAck id=0xe9 <magic 0x474283c6><pcomp> <accomp>]

rcvd [LCP ConfReq id=0x22 <magic 0x8e3a53ff><pcomp> <accomp>]

sent [LCP ConfReq id=0x22 <magic 0x8e3a53ff><pcomp> <accomp>]

sent [LCP Ident id=0xea magic=0x474283c6 "ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 

	22 2004 14:31:44)"]

sent [IPCP ConfReq id=0xf7 <addr 0.0.0.0> <compress VJ Of o1>]]

sent [CCP ConfReq id=0x3f <deflate 15> <deflate(old#) 15> <bsd v1 15>]

rcvd [LCP Ident id=0x23 magic=0x8e3a53ff "ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 

	22 2004 14:31:44)"]

Peer Identification: ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 22 2004 14:31:44)

rcvd [IPCP ConfReq id=0x25 <addr 10.0.0.1> <compress VJ Of 01>]

sent [IPCP ConfAck id=0x25 <addr 10.0.0.1> <compress VJ Of 01>]

rcvd [CCP ConfReq id=0x3 <deflate 15> <deflate(old#) 15 <bsd v1 15>]

sent [CCP ConfAck id=0x3 <deflate 15> <deflate(old#) 15 <bsd v1 15>]

rcvd [IPCP ConfNak id=0xf8 <addr 10.0.0.2>]

rcvd [IPCP ConfReq id=0xf7 <addr 10.0.0.2> <compress VJ Of 01>]

rcvd [CCP ConfAck id=0x3f <deflate 15> <deflate(old#) 15 <bsd v1 15>]

Deflate (15) compression enabled

rcvd [IPCP ConfAck id=0xf8 <addr 10.0.0.2> <compress VJ Of 01>]

local  IP address 10.0.0.2

remote IP address 10.0.0.1

Procedure如何启用 PPP 调试功能

以下任务说明如何使用 pppd 命令获取调试信息。


注 –

对于每台主机,只需执行一次步骤 1 到步骤 3。此后,可以继续执行步骤 4 以便为主机打开调试功能。


  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 创建日志文件以保存 pppd 的输出。


    # touch /var/log/pppdebug
    
  3. /etc/syslog.conf 中,为 pppd 添加以下 syslog 功能。


    daemon.debug;local2.debug       /var/log/pppdebug
    
  4. 重新启动 syslogd


    # pkill -HUP -x syslogd
    
  5. 使用以下 pppd 语法,为呼叫特定对等点打开调试功能。


    # pppd debug call peer-name 
    

    peer-name 必须是 /etc/ppp/peers 目录中的文件的名称。

  6. 查看日志文件的内容。


    # tail -f /var/log/pppdebug
    

    有关日志文件示例,请参见步骤 3

解决与 PPP 和 PPPoE 相关的问题

有关如何解决与 PPP 和 PPPoE 相关的问题的信息,请参阅以下各节。

Procedure如何诊断网络问题

如果 PPP 链路处于活动状态,但远程网络上几乎没有可以访问的主机,则表明可能存在网络问题。以下过程将说明如何确定并修复影响 PPP 链路的网络问题。

  1. 成为本地计算机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 关闭有问题的链路。

  3. 在配置文件中,通过为 PPP 配置添加以下选项以禁用所有可选协议:


    noccp novj nopcomp noaccomp default-asyncmap

    这些选项可提供最简单的、未被压缩的可用 PPP。请尝试在命令行上将这些选项作为 pppd 的参数进行调用。如果可以访问先前无法访问的主机,请在以下任一位置添加这些选项。

    • /etc/ppp/peers/peer-namecall 选项之后

    • /etc/ppp/options,确保这些选项可全局应用

  4. 呼叫远程对等点,然后启用调试功能。


    % pppd debug call peer-name
    
  5. 使用 chat-v 选项,获取聊天程序的详细日志。

    例如,在任何 PPP 配置文件中使用以下格式:


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

    /etc/ppp/chatfile 表示聊天文件的名称。

  6. 使用 Telnet 或其他应用程序访问远程主机,以尝试重新生成该问题。

    观察调试日志。如果仍然无法访问远程主机,则 PPP 问题可能与网络相关。

  7. 检验远程主机的 IP 地址是否为已注册的 Internet 地址。

    某些组织会指定在本地网络内已知、但无法路由至 Internet 的内部 IP 地址。如果远程主机位于您公司内,则必须设置名称到地址转换 (name-to-address translation, NAT) 服务器或代理服务器,才能访问 Internet。如果远程主机位于您公司外,则应向远程组织报告该问题。

  8. 检查路由表。

    1. 检查本地计算机和对等点上的路由表。

    2. 检查位于从对等点到远程系统的路径中的所有路由器的路由表。另外,检查返回对等点的路径中的所有路由器的路由表。

      请确保中间路由器的配置正确。通常,在返回对等点的路径中,可能会发现问题。

  9. (可选的)如果该计算机为路由器,请检查可选功能。


    # ndd -set /dev/ip ip_forwarding 1
    

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

    在 Solaris 10 发行版中,可以使用 routeadm(1M) 来代替 ndd(1M)。


    # routeadm -e ipv4-forwarding -u
    

    注 –

    ndd 命令没有持久性。使用该命令设置的值将在重新引导系统时丢失。routeadm 命令则具有持久性。使用该命令设置的值将在重新引导系统后保留。


  10. 检查通过 netstat -s 和类似工具获取的统计信息。

    有关 netstat 的完整详细信息,请参阅 netstat(1M) 手册页。

    1. 在本地计算机上运行统计信息。

    2. 呼叫对等点。

    3. 观察 netstat -s 生成的新统计信息。有关更多信息,请参阅影响 PPP 的常见网络问题

  11. 检查 DNS 配置。

    错误的名称服务配置会因无法解析 IP 地址而使应用程序出现故障。

影响 PPP 的常见网络问题

您可以使用 netstat -s 生成的消息,来修复下表中所示的网络问题。相关过程信息,请参阅如何诊断网络问题

表 21–2 影响 PPP 的常见网络问题

消息 

问题 

解决方案 

IP packets not forwardable

本地主机缺少路由。 

在本地主机的路由表中添加缺失的路由。 

ICMP input destination unreachable

本地主机缺少路由。 

在本地主机的路由表中添加缺失的路由。 

ICMP time exceeded

两个路由器正在互相转发同一目标地址,从而使包来回传递,直到超出生存时间 (time-to-live, TTL) 值。 

使用 traceroute 查找路由循环的原因,然后与出现错误的路由器的管理员联系。有关 traceroute 的信息,请参阅 traceroute(1M) 手册页。

IP packets not forwardable

本地主机缺少路由。 

在本地主机的路由表中添加缺失的路由。 

ICMP input destination unreachable

本地主机缺少路由。 

在本地主机的路由表中添加缺失的路由。 

Procedure如何诊断和修复通信问题

两个对等点无法成功建立链路,则表明出现了通信问题。有时,这些问题实际上是由于聊天脚本配置错误而导致的协商问题。以下过程说明如何清除通信问题。有关清除由于聊天脚本错误而导致的协商问题,请参见表 21–5

  1. 成为本地计算机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 呼叫对等点。

  3. 呼叫远程对等点,然后启用调试功能。


    % pppd debug call peer-name
    

    为修复某些通信问题,可能需要从对等点获取调试信息。

  4. 在生成的日志中检查通信问题。有关更多信息,请参阅影响 PPP 的常见通信问题

影响 PPP 的常见通信问题

下表介绍了与如何诊断和修复通信问题过程的日志输出有关的症状。

表 21–3 影响 PPP 的常见通信问题

症状 

问题 

解决方案 

too many Configure-Requests

一个对等点无法接收另一个对等点的信息。 

检查以下问题: 

  • 计算机或调制解调器的布线可能出错。

  • 调制解调器配置的位设置可能不正确。或者,该配置可能中断了流量控制。

  • 聊天脚本可能出现故障。 在这种情况下,请参见表 21–5

pppd debug 输出显示 LCP 已启动,但更高级别的协议失败或显示出现 CRC 错误。

异步控制字符映射 (asynchronous control character map, ACCM) 的设置不正确。 

使用 default-async 选项将 ACCM 设置为标准的 FFFFFFFF 缺省值。首先,尝试在命令行上将 default-async 用作 pppd 的选项。如果该问题已解决,则将 default-async 添加到 /etc/ppp/options,或添加到 call 选项之后的 /etc/ppp/peers/peer-name

pppd debug 输出显示,IPCP 在启动后立即终止。

IP 地址配置可能不正确。 

  1. 检查聊天脚本以检验该脚本的 IP 地址是否正确。

  2. 如果聊天脚本正确,则请求对等点的调试日志,然后检查对等点日志中的 IP 地址。

链路显示性能很差。 

调制解调器的配置不正确,并出现流量控制配置错误、调制解调器设置错误以及 DTE 日志配置错误。 

检查调制解调器配置。 如有必要,调整该配置。 

Procedure如何诊断 PPP 配置问题

某些 PPP 问题可以追溯到 PPP 配置文件的问题。以下过程说明如何确定并修复常见的配置问题。

  1. 成为本地计算机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 呼叫远程对等点,然后启用调试功能。


    % pppd debug call peer-name
    
  3. 在生成的日志中检查配置问题。有关更多信息,请参阅常见的 PPP 配置问题

常见的 PPP 配置问题

下表介绍了与如何诊断 PPP 配置问题过程的日志输出有关的症状。

表 21–4 常见的 PPP 配置问题

症状 

问题 

解决方案 

pppd debug 输出包含错误消息 Could not determine remote IP address

/etc/ppp/peers/peer-name 文件未包含对等点的 IP 地址。对等点在链路协商期间没有提供 IP 地址。

在 pppd 命令行或 /etc/ppp/peers/peer-name 中,使用以下格式为对等点提供 IP 地址:

:10.0.0.10 

pppd debug 输出显示 CCP 数据压缩失败。该输出还指示链路被丢弃。

对等点的 PPP 压缩配置可能出现冲突。  

通过在 /etc/ppp/options 中添加 noccp 选项,对其中一个对等点禁用 CCP 压缩。

Procedure如何诊断调制解调器问题

调制解调器问题可能是拨号链路的主要问题。调制解调器配置问题的最常见指示是对等点没有响应。但是,在确定链路问题是否确实为调制解调器配置问题所致时,可能会遇到问题。

有关调制解调器疑难解答的基本建议,请参阅《系统管理指南:高级管理》中的“解决终端和调制解调器问题”。此外,调制解调器制造商所提供的文档和网站也提供了有关其特定设备问题的解决方案。以下过程有助于确定调制解调器配置错误是否会导致链路问题。

  1. 按照如何启用 PPP 调试功能中的说明,呼叫已打开调试功能的对等点。

  2. 显示生成的 /var/log/pppdebug 日志,以检查调制解调器配置是否错误。

  3. 使用 ping 在链路上发送各种大小的包。

    有关 ping 的完整详细信息,请参阅 ping(1M) 手册页。

    如果收到较小的包,而较大的包被丢弃,则表明调制解调器存在问题。

  4. 检查接口 sppp0 上的错误:


    % netstat -ni
    
    Name  Mtu  Net/Dest   Address      Ipkts    Ierrs Opkts    Oerrs Collis Queue 
    
    lo0   8232 127.0.0.0  127.0.0.1    826808   0     826808   0     0      0     
    
    hme0  1500 172.21.0.0 172.21.3.228 13800032 0     1648464  0     0      0     
    
    sppp0 1500 10.0.0.2   10.0.0.1     210      0     128      0     0      0
    

    如果接口错误随时间而增加,则调制解调器配置可能存在问题。

故障排除

显示生成的 /var/log/pppdebug 日志时,输出中出现以下症状可以表明调制解调器配置出现错误。本地计算机可以接收对等点的信息,而对等点却无法接收本地计算机的信息。

Procedure如何获取聊天脚本的调试信息

以下过程用于从 chat 获取调试信息和清除常见问题的建议。有关更多信息,请参阅常见的聊天脚本问题

  1. 成为拨出计算机的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 编辑要呼叫的对等点的 /etc/ppp/peers/peer-name 文件。

  3. -v 作为参数添加到 connect 选项中指定的 chat 命令。


    connect "/usr/bin/chat -v -f /etc/ppp/chat-script-name"
  4. 查看 /etc/ppp/connect-errors 文件中的聊天脚本错误。

    以下是使用 chat 出现的主要错误。


    Oct 31 08:57:13 deino chat[107294]: [ID 702911 local2.info] expect (CONNECT)
    
    Oct 31 08:57:58 deino chat[107294]: [ID 702911 local2.info] alarm
    
    Oct 31 08:57:58 deino chat[107294]: [ID 702911 local2.info] Failed

    该示例表明在等待 (CONNECT) 字符串时超时。如果 chat 失败,将从 pppd 获取以下消息:


    Connect script failed

常见的聊天脚本问题

聊天脚本是拨号链路中容易出现问题的地方。下表列出了常见的聊天脚本错误,并提供了用于修复这些错误的建议。有关过程信息,请参阅如何获取聊天脚本的调试信息

表 21–5 常见的聊天脚本问题

症状 

问题 

解决方案 

pppd debug 输出包含 Connect script failed

聊天脚本提供了用户名和口令。 


ogin: user-name

ssword: password

但是,您计划与之连接的对等点却没有提示此信息。 

  1. 从聊天脚本中删除登录名和口令。

  2. 再次尝试呼叫对等点。

  3. 如果仍然出现该消息,请致电 ISP。 然后,要求 ISP 提供正确的登录序列。

/usr/bin/chat -v 日志包含 "expect (login:)" alarm read timed out

聊天脚本提供了用户名和口令。 


ogin: pppuser

ssword: \q\U

但是,您计划连接到的对等点却没有提示此信息。 

  1. 从聊天脚本中删除登录名和口令。

  2. 再次尝试呼叫对等点。

  3. 如果仍然出现该消息,请致电 ISP。然后,要求 ISP 提供正确的登录序列。

pppd debug 输出包含 possibly looped-back

本地计算机或其对等点正在命令行上挂起,并且未运行 PPP。聊天脚本中包含未正确配置的登录名和口令。 

 

  1. 从聊天脚本中删除登录名和口令。

  2. 再次尝试呼叫对等点。

  3. 如果仍然出现该消息,请致电 ISP。 然后,要求提供正确的登录序列。

pppd debug 输出显示 LCP 已激活,但之后链路很快终止。

聊天脚本中的口令可能不正确。 

 

  1. 确保您持有正确的本地计算机口令。

  2. 检查聊天脚本中的口令。 如果不正确,请修复该口令。

  3. 再次尝试呼叫对等点。

  4. 如果仍然出现该消息,请致电 ISP。然后,要求 ISP 提供正确的登录序列。

对等点的文本以波浪号 (~) 开头。 

聊天脚本提供了用户名和口令。 


ogin: pppuser

ssword: \q\U

但是,您计划与之连接的对等点却没有提示此信息。 

 

  1. 从聊天脚本中删除登录名和口令。

  2. 再次尝试呼叫对等点。

  3. 如果仍然出现该消息,请致电 ISP。然后,请求正确的登录序列。

调制解调器挂起。 

聊天脚本使用以下行来强制本地计算机等待来自对等点的 CONNECT 消息:


CONNECT ”

如果您希望聊天脚本等待来自对等点的 CONNECT 消息,请使用以下行: 


CONNECT \c

聊天脚本以 ~ \c 结尾。

pppd debug 输出包含 LCP: timeout sending Config-Requests

聊天脚本使用以下行来强制本地计算机等待来自对等点的 CONNECT 消息:


CONNECT ”

如果您希望聊天脚本等待来自对等点的 CONNECT 消息,请使用以下行: 


CONNECT \c

聊天脚本以 ~ \c 结尾。

pppd debug 输出包含 Serial link is not 8-bit clean

聊天脚本使用以下行来强制本地计算机等待来自对等点的 CONNECT 消息:


CONNECT ”

如果您希望聊天脚本等待来自对等点的 CONNECT 消息,请使用以下行: 


CONNECT \c

聊天脚本以 ~ \c 结尾。

pppd debug 输出包含 Loopback detected

聊天脚本使用以下行来强制本地计算机等待来自对等点的 CONNECT 消息:


CONNECT ”

如果您希望聊天脚本等待来自对等点的 CONNECT 消息,请使用以下行: 


CONNECT \c

聊天脚本以 ~ \c 结尾。

pppd debug 输出包含 SIGHUP

聊天脚本使用以下行来强制本地计算机等待来自对等点的 CONNECT 消息:


CONNECT ”

如果您希望聊天脚本等待来自对等点的 CONNECT 消息,请使用以下行: 


CONNECT \c

聊天脚本以 ~ \c 结尾。

Procedure如何诊断和修复串行线路速度问题

拨入服务器可能会因速度设置冲突而出现问题。以下过程有助于您确定引起串行线路速度产生冲突的链路问题。

下列行为可导致速度问题:

由于 pppd 将初始设置的线路速度更改为通过 /bin/loginmgetty 设置的速度, 因此线路出现故障。

  1. 登录到拨入服务器。呼叫启用了调试功能的对等点。

    如果需要说明,请参见如何启用 PPP 调试功能

  2. 显示生成的 /var/log/pppdebug 日志。

    在该输出中检查有无以下消息:


    LCP too many configure requests

    此消息表明,为 PPP 配置的串行线路速度可能会出现冲突。

  3. 检查是否已通过 /bin/login 等程序调用 PPP,并检查设置的线路速度。

    在这种情况下,pppd 会将初始配置的线路速度更改为 /bin/login 中指定的速度。

  4. 检查用户是否已通过 mgetty 命令启动 PPP 并无意中指定了位速率。

    该操作还会导致串行线路速度冲突。

  5. 按如下所示,修复串行线路速度冲突问题:

    1. 锁定调制解调器的 DTE 速率。

    2. 不使用自动波特。

    3. 配置后不更改线路速度。

Procedure如何获取 PPPoE 的诊断信息

您可以使用 PPP 和标准的 UNIX 实用程序来确定 PPPoE 问题。如果您怀疑链路问题是由于 PPPoE 所致,请使用以下诊断工具获取疑难解答信息。

  1. 成为运行 PPPoE 通道的计算机(PPPoE 客户机或 PPPoE 访问服务器)的超级用户。

  2. 按照如何启用 PPP 调试功能过程中的说明,打开调试功能。

  3. 查看日志文件 /var/log/pppdebug 的内容。

    以下示例显示了使用 PPPoE 通道生成的部分链路日志文件。


    Sep  6 16:28:45 enyo pppd[100563]: [ID 702911 daemon.info] Plugin 
    
      pppoe.so loaded.
    
    Sep  6 16:28:45 enyo pppd[100563]: [ID 860527 daemon.notice] pppd 
    
      2.4.0b1 (Sun Microsystems, Inc.,
    
    Sep  5 2001 10:42:05) started by troot, uid 0
    
    Sep  6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.debug] connect option:
    
       '/usr/lib/inet/pppoec 
    
    -v hme0' started (pid 100564)
    
    Sep  6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.info] Serial connection established.
    
    Sep  6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.info] Using interface sppp0
    
    Sep  6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.notice] Connect: sppp0
    
       <--> /dev/sppptun
    
    Sep  6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.debug] /etc/ppp/pap-secrets
    
      is apparently empty
    
    Sep  6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.debug] /etc/ppp/chap-secrets
    
      is apparently empty
    
    Sep  6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.debug] sent 
    
      [LCP ConfReq id=0xef <mru 1492> 
    
    asyncmap 0x0 <magic 0x77d3e953><pcomp><acomp>
    
    Sep  6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.debug] rcvd 
    
      [LCP ConfReq id=0x2a <mru 1402>
    
    asyncmap 0x0 <magic 0x9985f048><pcomp><acomp 

    如果通过该调试输出无法确定问题,请继续执行此过程。

  4. 获取 PPPoE 的诊断消息。


    # pppd connect "/usr/lib/inet/pppoec -v interface-name"
    

    pppoec 将诊断信息发送到 stderr。如果您在前台运行 pppd,输出将显示在屏幕上。如果在后台运行 pppd,输出将发送到 /etc/ppp/connect-errors

    以下示例显示了协商 PPPoE 通道时生成的消息。


    Connect option: '/usr/lib/inet/pppoec -v hme0' started (pid 100564)
    
    /usr/lib/inet/pppoec: PPPoE Event Open (1) in state Dead (0): action SendPADI (2)
    
    /usr/lib/inet/pppoec: Sending PADI to ff:ff:ff:ff:ff:ff: 18 bytes
    
    /usr/lib/inet/pppoec: PPPoE State change Dead (0) -> InitSent (1)
    
    /usr/lib/inet/pppoec: Received Active Discovery Offer from 8:0:20:cd:c1:2/hme0:pppoed
    
    /usr/lib/inet/pppoec: PPPoE Event rPADO+ (5) in state InitSent (1): action SendPADR+ (5)
    
    /usr/lib/inet/pppoec: Sending PADR to 8:0:20:cd:c1:2: 22 bytes
    
    /usr/lib/inet/pppoec: PPPoE State change InitSent (1) -> ReqSent (3)
    
    /usr/lib/inet/pppoec: Received Active Discovery Session-confirmation from
    
       8:0:20:cd:c1:2/hme0:pppoed
    
    /usr/lib/inet/pppoec: PPPoE Event rPADS (7) in state ReqSent (3): action Open (7)
    
    /usr/lib/inet/pppoec: Connection open; session 0002 on hme0:pppoe
    
    /usr/lib/inet/pppoec: PPPoE State change ReqSent (3) -> Convers (4)
    
    /usr/lib/inet/pppoec: connected

    如果通过该诊断消息无法确定问题,请继续执行此过程。

  5. 运行 snoop。 然后将跟踪保存到文件。

    有关 snoop 的信息,请参阅 snoop(1M) 手册页。


    # snoop -o pppoe-trace-file
    
  6. 查看 snoop 跟踪文件。


    # snoop -i pppoe-trace-file -v pppoe

    ETHER: ----- Ether Header -----
    
    ETHER:
    
    ETHER: Packet 1 arrived at 6:35:2.77
    
    ETHER: Packet size = 32 bytes
    
    ETHER: Destination = ff:ff:ff:ff:ff:ff, (broadcast)
    
    ETHER: Source      = 8:0:20:78:f3:7c, Sun
    
    ETHER: Ethertype = 8863 (PPPoE Discovery)
    
    ETHER:
    
    PPPoE: ----- PPP Over Ethernet -----
    
    PPPoE:
    
    PPPoE: Version = 1
    
    PPPoE: Type = 1
    
    PPPoE: Code = 9 (Active Discovery Initiation)
    
    PPPoE: Session Id = 0
    
    PPPoE: Length = 12 bytes
    
    PPPoE:
    
    PPPoE: ----- Service-Name -----
    
    PPPoE: Tag Type = 257
    
    PPPoE: Tag Length = 0 bytes
    
    PPPoE:
    
    PPPoE: ----- Host-Uniq -----
    
    PPPoE: Tag Type = 259
    
    PPPoE: Tag Length = 4 bytes
    
    PPPoE: Data = Ox00000002
    
    PPPoE:
    
    .
    
    .
    
    .
    
    ETHER: ----- Ether Header -----
    
    ETHER:
    
    ETHER: Packet 5 arrived at 6:35:2.87
    
    ETHER: Packet size = 60 bytes
    
    ETHER: Destination = 8:0:20:78:f3:7c, Sun)
    
    ETHER: Source      = 0:2:fd:39:7f:7, 
    
    ETHER: Ethertype = 8864 (PPPoE Session)
    
    ETHER:
    
    PPPoE: ----- PPP Over Ethernet -----
    
    PPPoE:
    
    PPPoE: Version = 1
    
    PPPoE: Type = 1
    
    PPPoE: Code = 0 (PPPoE Session)
    
    PPPoE: Session Id = 24383
    
    PPPoE: Length = 20 bytes
    
    PPPoE:
    
    PPP: ----- Point-to-Point Protocol -----
    
    PPP:
    
    PPP-LCP: ----- Link Control Protocol -----
    
    PPP-LCP:
    
    PPP-LCP: Code = 1 (Configure Request)
    
    PPP-LCP: Identifier = 80
    
    PPP-LCP: Length = 18

修复租用线路问题

租用线路的最常见问题是性能差。在大多数情况下,您需要与电话公司共同来修复该问题。

表 21–6 常见的租用线路问题

症状 

问题 

解决方案 

链路未启动。 

可能是因为 CSU 双极违规 (CSU biopolar violation, CSU BPV)。链路一端设置用于 AMI 线路。而另一端设置用于 ESF 位–8 零替换 (bit–8 zero substitute, B8Z)。 

如果您位于美国或加拿大,则可以直接通过 CSU/DSU 的菜单修复此问题。有关详细信息,请查看 CSU/DSU 制造商所提供的文档。

如果位于其他地区,则提供商可能会负责修复 CSU BPV。 

链路性能差。 

当链路中有持续通信流时,pppd debug 输出显示发生了 CRC 错误。您的线路可能存在计时问题,这是由于电话公司和您的网络之间的配置错误所致。

联系电话公司以确保正在使用“循环计时”。 

在某些非结构化的租用线路上,可能必须提供计时。北美用户应使用循环计时。 

 

诊断和修复验证问题

下表介绍了常见验证问题的解决方案。

表 21–7 常见验证问题

症状 

问题 

解决方案 

pppd debug 输出显示消息:Peer is not authorized to use remote address address

您正在使用 PAP 验证,但远程对等点的 IP 地址不在 /etc/ppp/pap-secrets 文件中。

/etc/ppp/pap-secrets 文件中,在对等点的项后添加一个星号 (*)。

pppd debug 输出显示,LCP 启动,但在启动后很快终止。

对于特定的安全协议,数据库中的口令可能不正确。 

/etc/ppp/pap-secrets/etc/ppp/chap-secrets 文件中,检查对等点的口令。

第 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 客户机。

第 23 章 从异步 Solaris PPP 迁移到 Solaris PPP 4.0(任务)

早期版本的 Solaris OS 实现另外一种 PPP,即异步 Solaris PPP (asppp)。如果要将运行 asppp 的对等点转换为较新的 PPP 4.0,则需要运行转换脚本。本章介绍 PPP 转换的以下主题:

本章使用一个 asppp 配置样例来说明如何完成 PPP 转换。有关 Solaris PPP 4.0 和 asppp 之间的差别的说明,请转至要使用的 Solaris PPP 版本

转换 asppp 文件之前

您可以使用转换脚本 /usr/sbin/asppp2pppd 来转换组成标准 asppp 配置的文件:

有关 asppp 的更多信息,请参见 Solaris 8 System Administration Collection, Volume 3(网址为 http://docs.sun.com)。

/etc/asppp.cf 配置文件示例

如何从 asppp 转换为 Solaris PPP 4.0 中所示的过程使用以下 /etc/asppp.cf 文件。


#

ifconfig ipdptp0 plumb mojave gobi up



path

 inactivity_timeout 120     # Approx. 2 minutes

	interface ipdptp0

	peer_system_name Pgobi    # The name we log in with (also in

				                     # /etc/uucp/Systems

该文件包含以下参数。

ifconfig ipdptp0 plumb mojave gobi up

运行 ifconfig 命令,以配置从本地计算机 mojave 的 PPP 接口 ipdptp0 到远程对等点 gobi 的链路

inactivity_timeout 120

若不活动时间达到两分钟,则终止该线路

interface ipdptp0

在拨出计算机上为异步 PPP 配置接口 ipdptp0

peer_system_name Pgobi

指定远程对等点 Pgobi 的名称

/etc/uucp/Systems 文件示例

如何从 asppp 转换为 Solaris PPP 4.0 中所示的过程使用以下 /etc/uucp/Systems 文件。


#ident  "@(#)Systems	1.5  92/07/14 SMI"  /* from SVR4 bnu:Systems 2.4 */

#



# .

# .

Pgobi Any ACU 38400 15551212 in:--in: mojave word: sand

该文件包含以下参数:

Pgobi

使用 Pgobi 作为远程对等点的主机名。

Any ACU

通知拨出计算机 mojave 上的调制解调器,可在一天内的任何时间与 Pgobi 上的调制解调器建立链路。Any ACU 表示“在 /etc/uucp/Devices 文件中查找 ACU”。

38400

将链路的最大速度设置为 38400。

15551212

指定 Pgobi 的电话号码。

in:—in: mojave word: sand

定义 Pgobi 需要用来对拨出计算机 mojave 进行验证的登录脚本。

/etc/uucp/Devices 文件示例

如何从 asppp 转换为 Solaris PPP 4.0 中所示的过程使用以下 /etc/uucp/Devices 文件。


#ident  "@(#)Devices  1.6  92/07/14 SMI"  /* from SVR4 bnu:Devices 2.7 */



.

.

#



TCP,et - - Any TCP -

.

.

#

ACU cua/b - Any hayes

# 0-7 are on a Magma 8 port card

Direct cua/0 - Any direct

Direct cua/1 - Any direct

Direct cua/2 - Any direct

Direct cua/3 - Any direct

Direct cua/4 - Any direct

Direct cua/5 - Any direct

Direct cua/6 - Any direct

Direct cua/7 - Any direct

# a is the console port (aka "tip" line)

Direct cua/a - Any direct

# b is the aux port on the motherboard

Direct cua/b - Any direct

# c and d are high speed sync/async ports

Direct cua/c - Any direct

Direct cua/d - Any direct

此文件支持连接到串行端口 cua/b 的任何 Hayes 调制解调器。

/etc/uucp/Dialers 文件示例

如何从 asppp 转换为 Solaris PPP 4.0 中所示的过程使用以下 /etc/uucp/Dialers 文件。


#

#<Much information about modems supported by Solaris UUCP>





penril	=W-P	"" \d > Q\c : \d- > s\p9\c )-W\p\r\ds\p9\c-) y\c : \E\TP > 9\c OK

ventel	=&-%	"" \r\p\r\c $ k\c ONLINE!

vadic	=K-K	"" \005\p *-\005\p-*\005\p-* D\p BER? \E\T\e \r\c LINE

develcon ""	"" \pr\ps\c est:\007 \E\D\e \n\007

micom	""	"" \s\c NAME? \D\r\c GO

direct

#

#

#

#   Hayes Smartmodem -- modem should be set with the configuration

#   switches as follows:

#

#       S1 - UP		S2 - UP		S3 - DOWN	S4 - UP

#       S5 - UP		S6 - DOWN	S7 - ?		S8 - DOWN

#

hayes	=,-,	"" \dA\pTE1V1X1Q0S2=255S12=255\r\c OK\r \EATDT\T\r\c CONNECT



<much more information about modems supported by Solaris UUCP>

此文件包含所有类型调制解调器的聊天脚本,包括 /etc/uucp/Dialers 文件中支持的 Hayes 调制解调器。

运行 asppp2pppd 转换脚本(任务)

/usr/sbin/asppp2pppd 脚本将 /etc/asppp.cf 和与 PPP 相关的 UUCP 文件中的 PPP 信息复制到 Solaris PPP 4.0 文件中的相应位置。

任务先决条件

在执行下一任务之前,必须完成以下操作:

Procedure如何从 asppp 转换为 Solaris PPP 4.0

  1. 启动转换脚本。


    # /usr/sbin/asppp2pppd
    

    将启动转换过程,并显示以下屏幕输出。


    This script provides only a suggested translation for your existing aspppd
    
    configuration.  You will need to evaluate for yourself whether the translation
    
    is appropriate for your operating environment.
    
    Continue [Yn]? 
  2. 键入 "Y" 以继续。

    将显示以下输出。


    Chat cannot do echo checking; requests for this removed.
    
    Adding 'noauth' to /etc/ppp/options
    
    
    
    Preparing to write out translated configuration:
    
        1 chat file:
    
            1.  /etc/ppp/chat.Pgobi.hayes
    
        2 option files:
    
            2.  /etc/ppp/peers/Pgobi
    
            3.  /etc/ppp/options
    
        1 script file:
    
            4.  /etc/ppp/demand

    新的 Solaris PPP 4.0 文件已生成。

Procedure如何查看转换结果

您可以在转换过程结束时查看由 /usr/sbin/asppp2pppd 转换脚本创建的 Solaris PPP 4.0 文件。该脚本显示以下选项列表。


Enter option number:

        1 - view contents of file on standard output

        2 - view contents of file using /usr/bin/less

        3 - edit contents of file using /usr/bin/vi

        4 - delete/undelete file from list

        5 - rename file in list

        6 - show file list again

        7 - escape to shell (or "!")

        8 - abort without saving anything

        9 - save all files and exit (default)

Option:
  1. 键入 1 以查看屏幕上文件的内容。

    脚本会要求提供所要查看的文件的编号。


    File number (1 .. 4):

    这些编号表示转换过程中列出的已转换文件,如前面的步骤 2 中所示。

  2. 键入 1 以查看聊天文件 /etc/ppp/chat.Pgobi.hayes


    File number (1 .. 4):  1
    
    "" \d\dA\p\pTE1V1X1Q0S2=255S12=255\r\c
    
    OK\r ATDT\T\r\c
    
    CONNECT \c
    
    in:--in: mojave
    
    word: sand

    聊天脚本包含 /etc/uucp/Dialers 文件样例的 hayes 行中显示的调制解调器“聊天”信息。/etc/ppp/chat.Pgobi.hayes 还包含 /etc/uucp/Systems 文件样例中显示的 Pgobi 的登录序列。聊天脚本现在已位于 /etc/ppp/chat.Pgobi.hayes 文件中。

  3. 键入 2 以查看对等点文件 /etc/ppp/peers/Pgobi


    File number (1 .. 4):  2
    
    /dev/cua/b
    
    38400
    
    demand
    
    idle 120
    
    connect "/usr/bin/chat -f /etc/ppp/chat.Pgobi.hayes -T '15551212'"
    
    user NeverAuthenticate
    
    mojave:gobi

    串行端口信息 (/dev/cua/b) 来自 /etc/uucp/Devices 文件。链路速度、空闲时间、验证信息和对等点名称来自 /etc/asppp.cf 文件。"demand" 表示 "demand" 脚本,将在拨出计算机尝试连接到对等点 Pgobi 时调用。

  4. 键入 3 以查看为拨出计算机 mojave 创建的 /etc/ppp/options 文件。


    File number (1 .. 4):  3
    
    #lock
    
    noauth

    /etc/ppp/options 中的信息来自 /etc/asppp.cf 文件。

  5. 键入 4 以查看 demand 脚本的内容。


    File number (1 .. 4):  4
    
    /usr/bin/pppd file /etc/ppp/peers/Pgobi

    调用此脚本时将运行 pppd 命令,接着此命令将读取 /etc/ppp/peers/Pgobi 以启动 mojavePgobi 之间的链路。

  6. 键入 9 以保存已创建的文件。然后退出转换脚本。

第 24 章 UUCP(概述)

本章介绍 UNIX 对 UNIX 复制程序 (UNIX-to-UNIX Copy Program, UUCP) 及其守护进程。具体包含以下主题:

计算机可以通过 UUCP 来传输文件和彼此交换邮件,还可以通过该程序参与大型网络,如 Usenet。

Solaris OS 提供基本网络实用程序 (Basic Network Utilities, BNU) 版本的 UUCP,该版本 UUCP 也称为 HoneyDanBer UUCP。UUCP 一词可以表示组成系统的所有文件和实用程序,而程序 uucp 只是其中的一部分。从用于在计算机之间复制文件的那些实用程序(uucpuuto)到用于远程登录和执行命令的那些实用程序(cuuux),都属于 UUCP 实用程序。

UUCP 硬件配置

UUCP 支持以下硬件配置:

直接链路

通过在两台计算机上的串行端口之间连接 RS-232 电缆,可以在彼此之间创建直接链路。当两台计算机定期通信且彼此之间的实际距离在 50 英尺以内时,直接链路非常有用。可以使用有限距离调制解调器来略微增大此距离。

电话线

计算机可使用高速调制解调器等自动呼叫装置 (Automatic Call Unit, ACU),通过标准电话线与其他计算机进行通信。调制解调器将拨打 UUCP 请求的电话号码。接收端计算机具有的调制解调器必须能够应答传入的呼叫。

网络

UUCP 还可以通过运行 TCP/IP 或其他协议系列的网络进行通信。将计算机设立为网络上的主机后,该计算机即可与连接至网络的任何其他主机进行联络。

本章假设已组装并配置了 UUCP 硬件。如果需要设置调制解调器,请参阅《系统管理指南:基本管理》和调制解调器附带的手册以获取帮助。

UUCP 软件

运行 Solaris 安装程序并选择完整分发时,将自动引入 UUCP 软件。或者,可以使用 pkgadd 命令来添加 UUCP 软件。可以将 UUCP 程序分成三个类别:守护进程、管理程序和用户程序。

UUCP 守护进程

UUCP 系统具有四个守护进程:uucicouuxqtuuschedin.uucpd。这些守护进程可以处理 UUCP 文件传输和命令执行。如果必要,您还可以从 shell 手动运行这些守护进程。

uucico

选择用于链路的设备、建立通往远程计算机的链路,并执行所需的登录步骤和权限检查。另外,uucico 还可以传输数据文件、执行文件以及日志结果,并通过邮件通知用户传输完成。uucico 作为 UUCP 登录帐户的“登录 shell”。当本地 uucico 守护进程调用远程计算机时,它将在会话期间与远程 uucico 守护进程直接进行通信。

创建所有必需的文件后,uucpuutouux 程序将执行 uucico 守护进程,以便与远程计算机联络。uuschedUutry 都将执行 uucico。有关详细信息,请参见 uucico(1M) 手册页。

uuxqt

执行远程执行请求。此守护进程将搜索假脱机目录以找到从远程计算机发送的执行文件(始终命名为 X.file)。 找到 X.file 文件后,uuxqt 会将其打开,以获取执行所需的数据文件列表。随后 uuxqt 将检查以了解所需的数据文件是否可用且可访问。如果文件可用,uuxqt 将检查 Permissions 文件以确认该文件有权执行请求的命令。uuxqt 守护进程由 uudemon.hour shell 脚本执行,该脚本由 cron 来启动。有关详细信息,请参见 uuxqt(1M) 手册页。

uusched

调度假脱机目录中排队的工作。uusched 最初是在引导时通过 uudemon.hour shell 脚本运行的,该脚本由 cron 来启动。有关详细信息,请参见 uusched(1M) 手册页。启动 uucico 守护进程之前,uusched 会对调用远程计算机的顺序进行随机化处理。

in.uucpd

支持通过网络的 UUCP 连接。只要建立了 UUCP 连接,远程主机上的 inetd 就会调用 in.uucpd。随后 uucpd 将提示您输入登录名。调用主机上的 uucico 必须使用登录名来做出响应。随后 in.uucpd 将提示您输入口令(除非不需要口令)。有关详细信息,请参见 in.uucpd(1M) 手册页。

UUCP 管理程序

大多数 UUCP 管理程序都位于 /usr/lib/uucp 中。大多数基础数据库文件都位于 /etc/uucp 中。唯一的例外是 uulog,它位于 /usr/bin 中。uucp 登录 ID 的起始目录为 /usr/lib/uucp。通过 sulogin 运行管理程序时,请使用 uucp 用户 ID。该用户 ID 拥有程序和假脱机数据文件。

uulog

显示指定计算机的日志文件的内容。系统将为与您的计算机进行通信的每台远程计算机创建日志文件。日志文件记录 uucpuutouux 的每一项用途。有关详细信息,请参见 uucp(1C) 手册页。

uucleanup

清除假脱机目录。uucleanup 通常是通过 uudemon.cleanup shell 脚本执行的,该脚本由 cron 来启动。有关详细信息,请参见 uucleanup(1M) 手册页。

Uutry

测试调用处理功能并执行适度调试。Uutry 将调用 uucico 守护进程以便在您的计算机与指定的远程计算机之间建立通信链路。有关详细信息,请参见 Uutry(1M) 手册页。

uucheck

检查 UUCP 目录、程序和支持文件是否存在。uucheck 还可以检查 /etc/uucp/Permissions 文件的某些部分是否存在明显的语法错误。有关详细信息,请参见 uucheck(1M) 手册页。

UUCP 用户程序

UUCP 用户程序位于 /usr/bin 中。使用这些程序不需要特殊权限。

cu

将您的计算机连接到远程计算机,以便可以同时登录这两台计算机。使用 cu,可以在其中任意一台计算机上传输文件或执行命令,而不必删除初始链路。有关详细信息,请参见 cu(1C) 手册页。

uucp

用于将文件从一台计算机复制到另一台计算机。uucp 将创建工作文件和数据文件,对要传输的作业进行排队,并调用 uucico 守护进程,随即该守护进程将尝试与远程计算机进行联络。有关详细信息,请参见 uucp(1C) 手册页。

uuto

将文件从本地计算机复制到远程计算机上的公共假脱机目录 /var/spool/uucppublic/receiveuucp 用于将文件复制到远程计算机上的任何可访问目录中,与之不同的是,uuto 将文件置于适当的假脱机目录中,并指示远程用户使用 uupick 来选取该文件。有关详细信息,请参见 uuto(1C) 手册页。

uupick

使用 uuto 将文件传输到计算机时在 /var/spool/uucppublic/receive 中检索文件。请参见 uuto(1C) 手册页。

uux

创建在远程计算机上执行命令所需的工作、数据和执行文件。有关详细信息,请参见 uux(1C) 手册页。

uustat

显示请求传输(uucpuutouux)的状态。uustat 还提供控制排队传输的方式。有关详细信息,请参见 uustat(1C) 手册页。

UUCP 数据库文件

UUCP 设置的主要部分是组成 UUCP 数据库的文件的配置。 这些文件位于 /etc/uucp 目录中。需要编辑这些文件,才能在您的计算机上设置 UUCP 或 asppp。这些文件包括:

Config

包含变量参数的列表。可以手动设置这些参数以配置网络。

Devconfig

用于配置网络通信。

Devices

用于配置网络通信。

Dialcodes

包含在 Systems 文件项的电话号码字段中可以使用的拨号代码缩写。尽管不需要,但 Dialcodes 仍可由 asppp 和 UUCP 使用。

Dialers

包含与调制解调器协商以便与远程计算机建立连接所需的字符串。Dialersasppp 和 UUCP 使用。

Grades

定义作业等级,以及与每个作业等级关联的权限,用户可以指定针对远程计算机对作业进行排队的权限。

Limits

定义允许在计算机上同时执行的 uucicouuxqtuusched 的最大数量。

Permissions

定义为试图在您的计算机上传输文件或执行命令的远程主机授予的访问权限级别。

Poll

定义系统将要轮询的计算机以及轮询时间。

Sysfiles

uucicocu 使用的不同文件或多个文件指定为 SystemsDevicesDialers 文件。

Sysname

用于为计算机定义唯一的 UUCP 名称(除了定义其 TCP/IP 主机名以外)。

Systems

包含 uucico 守护进程 cuasppp 建立通往远程计算机的链路所需的信息。此信息包括:

  • 远程主机的名称

  • 与远程主机关联的连接设备的名称

  • 可访问主机的时间

  • 电话号码

  • 登录 ID

  • 口令

可以将多个其他文件作为支持数据库的一部分,但这些文件并不直接参与创建链路和传输文件。

配置 UUCP 数据库文件

UUCP 数据库由UUCP 数据库文件中显示的文件组成。但是,基本 UUCP 配置仅包含以下关键文件:

由于 asppp 会使用某些 UUCP 数据库,因此,如果您计划配置 asppp,应至少应了解这些关键数据库文件。配置这些数据库之后,UUCP 管理就会非常简单。一般应先编辑 Systems 文件,然后编辑 Devices 文件。通常,可以使用缺省的 /etc/uucp/Dialers 文件(除非您计划添加缺省文件中不包含的拨号程序)。此外,您可能还需要使用以下文件来执行基本的 UUCP 和 asppp 配置:

由于这些文件彼此联系紧密,因此在进行任何更改之前,您应该先了解其全部内容。 对某个文件中的一项进行更改可能要求对其他文件中的相关项也进行更改。UUCP 数据库文件 中列出的其他文件之间没有密切关系。


注 –

asppp 仅使用本节中介绍的文件。asppp 不使用其他 UUCP 数据库文件。


第 25 章 管理 UUCP(任务)

本章介绍在修改与计算机相关的数据库文件之后如何启动 UUCP 操作。本章包含有关在运行 Solaris OS 的计算机上设置和维护 UUCP 的过程和疑难解答的信息,如下所示:

UUCP 管理(任务列表)

下表除了提供本章中包含的每个过程的简短说明外,还提供了指向这些过程的链接。

表 25–1 UUCP 管理的任务列表

任务 

说明 

参考 

允许远程计算机访问您的系统 

编辑 /etc/passwd 文件以添加用于标识计算机的项,将允许这些计算机访问您的系统。

如何添加 UUCP 登录

启动 UUCP 

使用所提供的 shell 脚本启动 UUCP。 

如何启动 UUCP

启用 UUCP 以使用 TCP/IP 

编辑 /etc/inetd.conf/etc/uucp/Systems 文件以激活将使用 TCP/IP 的 UUCP。

如何针对 TCP/IP 激活 UUCP

解决一些常见的 UUCP 问题 

使用诊断步骤检查有故障的调制解调器或 ACU。 

如何检查有故障的调制解调器或 ACU

 

使用诊断步骤调试传输。  

如何调试传输

添加 UUCP 登录

要正确处理来自远程计算机的传入 UUCP (uucico) 请求,每台计算机都必须登录到您的系统中。

Procedure如何添加 UUCP 登录

要允许远程计算机访问您的系统,需要按照以下步骤向 /etc/passwd 文件中添加项:

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 编辑 /etc/passwd 文件并添加用于标识计算机的项,以允许该计算机访问您的系统。

    对于允许使用 UUCP 连接访问您的系统的远程计算机,放入 /etc/passwd 文件中的项通常为:


    Ugobi:*:5:5:gobi:/var/spool/uucppublic:/usr/lib/uucp/uucico 

    根据约定,远程计算机的登录名是前面带有大写字母 U 的计算机名。请注意,名称不应超过八个字符。否则,可能需要截断或缩写该名称。

    上面的项说明,Ugobi 请求的登录由 /usr/lib/uucp/uucico 回答。起始目录为 /var/spool/uucppublic。口令从 /etc/shadow 文件中获取。您必须与远程计算机的 UUCP 管理员协调口令和登录名。然后,远程管理员必须将包含登录名和未加密的口令的相应项添加到远程计算机的 Systems 文件中。

  3. 与其他系统的 UUCP 管理员协调您的计算机名。

    同样,必须与希望通过 UUCP 访问的所有计算机的 UUCP 管理员协调您的计算机名和口令。

启动 UUCP

UUCP 包含执行以下操作的四种 shell 脚本:轮询远程计算机、重新安排传输、清除旧的日志文件和不成功的传输。这些脚本如下所示:

这些 shell 脚本应定期执行以确保 UUCP 运行正常。如果选择完全安装,则在 Solaris 安装期间,会自动在 /usr/lib/uucp/uudemon.crontab 中创建用于运行这些脚本的 crontab 文件。否则,该文件将在安装 UUCP 软件包时创建。

您也可以手动运行 UUCP shell 脚本。以下是可以针对特定计算机进行调整的原型 uudemon.crontab 文件:


#

#ident  "@(#)uudemon.crontab    1.5     97/12/09 SMI"

#

# This crontab is provided as a sample. For systems

# running UUCP edit the time schedule to suit, uncomment 

# the following lines, and use crontab(1) to activate the

# new schedule.

#

#48 8,12,16 * * * /usr/lib/uucp/uudemon.admin

#20 3 * * * /usr/lib/uucp/uudemon.cleanup

#0 * * * * /usr/lib/uucp/uudemon.poll

#11,41 * * * * /usr/lib/uucp/uudemon.hour

注 –

缺省情况下,UUCP 操作被禁用。要启用 UUCP,请在 uudemon.crontab 文件中编辑时间安排并取消对相应行的注释。


Procedure如何启动 UUCP

要激活 uudemon.crontab 文件,请执行以下操作:

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 根据需要,编辑 /usr/lib/uucp/uudemon.crontab 文件并更改相应项。

  3. 通过发出以下命令激活 uudemon.crontab 文件:


    crontab < /usr/lib/uucp/uudemon.crontab
    

uudemon.poll Shell 脚本

缺省 uudemon.poll shell 脚本每小时读取一次 /etc/uucp/Poll 文件。如果安排轮询 Poll 文件中的所有计算机,则会将工作文件 (C.sysnxxxx) 放在 /var/spool/uucp/nodename 目录中。nodename 表示计算机的 UUCP 节点名称。

安排 shell 脚本在 uudemon.hour 之前每小时运行一次,以便在调用 uudemon.hour 时工作文件处于正确位置。

uudemon.hour Shell 脚本

缺省 uudemon.hour shell 脚本执行以下操作:

缺省情况下,uudemon.hour 每小时运行两次。如果预计远程计算机调用失败率比较高,则可能需要更频繁地运行 uudemon.hour

uudemon.admin Shell 脚本

缺省 uudemon.admin shell 脚本执行以下操作:

uudemon.cleanup Shell 脚本

缺省 uudemon.cleanup shell 脚本执行以下操作:

运行基于 TCP/IP 的 UUCP

要在 TCP/IP 网络中运行 UUCP,需要按照本节中的说明进行一些修改。

Procedure如何针对 TCP/IP 激活 UUCP

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 编辑 /etc/uucp/Systems 文件以确保项中具有以下字段:

    System-Name Time TCP Port networkname Standard-Login-Chat

    典型项与以下内容类似:


    rochester Any TCP - ur-seneca login: Umachine password: xxx

    请注意,networkname 字段允许您显式指定 TCP/IP 主机名。此功能对于一些站点很重要。在上面的示例中,该站点具有 UUCP 节点名称 rochester,该名称与 TCP/IP 主机名 ur-seneca 不同。此外,完全不同的计算机可以轻易运行 UUCP 并具有 TCP/IP 主机名 rochester

    Systems 文件中的 Port 字段应具有项 -。此语法等效于将该项列为 uucp。几乎在所有情况下,networkname 都与系统名相同,并且 Port 字段为 -,这表示将使用 services 数据库中的标准 uucp 端口。in.uucpd 守护进程期望远程计算机发送其登录名和口令以进行验证,并且 in.uucpd 会提示输入登录名和口令,这与 gettylogin 很相似。

  3. 编辑 /etc/inet/services 文件以设置 UUCP 端口:


    uucp    540/tcp    uucpd        # uucp daemon

    您不需要更改项。但是,如果计算机运行的是 NIS 或 NIS+ 名称服务,则应更改 /etc/services/etc/nsswitch.conf 项以便先检查 files,然后检查 nisnisplus

  4. 验证是否已启用 UUCP。


    # svcs network/uucp
    

    UUCP 服务由服务管理工具管理。要查询此服务的状态,可以使用 svcs 命令。有关服务管理工具的概述,请参阅《系统管理指南:基本管理》中的第 14  章 “管理服务(概述)”

  5. (可选的)如果需要,请通过键入以下内容来启用 UUCP:


    # inetadm -e network/uucp
    

UUCP 安全和维护

设置 UUCP 之后,很显然需要进行维护。本节介绍与安全、维护和疑难解答有关的各项 UUCP 任务。

设置 UUCP 安全

缺省 /etc/uucp/Permissions 文件可最大程度地确保 UUCP 链路的安全。缺省 Permissions 文件不包含任何项。

可以为每台远程计算机设置其他参数以定义以下内容:

典型 Permissions 项如下所示:


MACHINE=datsun LOGNAME=Udatsun VALIDATE=datsun 

COMMANDS=rmail REQUEST=yes SENDFILES=yes

此项允许向“标准”UUCP 目录(而非系统中的任何位置)发送文件,或从该目录接收文件。此项还将使 UUCP 用户名在登录时得到验证。

定期 UUCP 维护

UUCP 不需要很多维护工作。但是,必须确保 crontab 文件位于如何启动 UUCP一节中所述的位置。您应关注邮件文件和公共目录大小的增加。

UUCP 电子邮件

UUCP 程序和脚本生成的所有电子邮件都将发送到用户 ID uucp。如果不经常以该用户身份登录,可能不会意识到邮件不断地增加并占用了磁盘空间。要解决此问题,请在 /etc/mail/aliases 中创建一个别名,并将此类电子邮件重定向到 root 或您自己以及负责维护 UUCP 的其他人员。修改 aliases 文件之后,请记住运行 newaliases 命令。

UUCP 公共目录

目录 /var/spool/uucppublic 是每个系统中缺省情况下 UUCP 可以复制文件的位置。每个用户都具有转至 /var/spool/uucppublic 并读写该目录中的文件的权限。但是,该目录的 Sticky 位已设置,目录的模式为 01777。因此,用户不能删除已复制到该目录中的文件和属于 uucp 的文件。只有您(以 rootuucp 身份登录的 UUCP 管理员)可以删除该目录中的文件。要防止该目录中的文件毫无控制地增加,应确保定期删除其中的文件。

如果用户不方便进行此维护,建议使用 uutouupick,而不要删除出于安全原因而设置的 Sticky 位。有关使用 uutouupick 的说明,请参见 uuto(1C) 手册页。也可以将目录的模式限制为仅适用于某组用户。如果不希望出现某用户将磁盘填满的情况,甚至可以拒绝 UUCP 访问磁盘。

UUCP 疑难解答

这些过程介绍如何解决常见 UUCP 问题。

Procedure如何检查有故障的调制解调器或 ACU

可以使用多种方法检查调制解调器或其他 ACU 工作是否正常。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 通过运行以下命令获取联系失败的计数和原因:


    # uustat -q
    
  3. 通过特定线路呼叫并尝试列显调试信息。

    必须在 /etc/uucp/Devices 文件中将该线路定义为 direct。如果要将该线路连接至自动拨号器,必须在命令行的结尾添加电话号码,否则必须将该设备设置为 direct。请键入:


    # cu -d -lline
    

    line/dev/cua/a

Procedure如何调试传输

如果无法联系特定计算机,可以使用 Uutry uucp 检查与该计算机的通信。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 尝试联系:


    # /usr/lib/uucp/Uutry -r machine
    

    machine 替换为无法联系的计算机的主机名。此命令执行以下操作:

    • 启动包含调试的传送守护进程 (uucico)。如果您是 root,则可以获取更多调试信息。

    • 将调试输出定向到 /tmp/machine

    • 通过发出以下命令将调试输出列显到终端:


      # tail -f
      

      按 Ctrl-C 组合键以终止输出。如果要保存输出,可以从 /tmp/machine 中复制输出。

  3. 如果 Uutry 未确定该问题,请尝试将作业排队:


    # uucp -r file machine\!/dir/file
    
    file

    使用要传送的文件的名称。

    machine

    使用要复制到的计算机的名称。

    /dir/file

    指定其他计算机的文件的位置。

  4. 发出以下命令:


    # Uutry
    

    如果仍然无法解决问题,可能需要联系当地的支持代表。请保存可以帮助诊断问题的调试输出。


    注 –

    也可以通过 -x n 选项来降低或升高 Uutry 提供的调试级别。n 表示调试级别。Uutry 的缺省调试级别为 5。

    调试级别 3 提供有关建立连接的时间和方式的基本信息,而不提供很多关于传输的信息。但是,调试级别 9 会提供有关传输过程的详细信息。请注意,调试在传送开始和结束时都将进行。如果要对中等大小的文本使用高于 5 的级别,可以联系其他站点的管理员以决定更改该级别的时间。


检查 UUCP /etc/uucp/Systems 文件

如果在联系特定计算机时出现问题,请验证 Systems 文件中是否具有最新的信息。对于某个计算机而言,可能过期的信息包括:

检查 UUCP 错误消息

UUCP 有两种类型的错误消息:ASSERTSTATUS

检查基本信息

可以使用多个命令检查基本联网信息:

第 26 章 UUCP(参考)

本章提供有关使用 UUCP 的参考信息。具体包含以下主题:

UUCP /etc/uucp/Systems 文件

/etc/uucp/Systems 文件包含 uucico 守护进程与远程计算机建立通信链路所需的信息。/etc/uucp/Systems 是配置 UUCP 时需要编辑的第一个文件。

Systems 文件中的每个项都代表一台与您的主机进行通信的远程计算机。某台特定主机可以对应多个项。附加的项代表按顺序尝试的备用通信路径。此外,缺省情况下 UUCP 阻止 /etc/uucp/Systems 中未包含的任何计算机登录您的主机。

可以使用 Sysfiles 文件定义多个要用作 Systems 文件的文件。有关 Sysfiles 的说明,请参见UUCP /etc/uucp/Sysfiles 文件

以下是 Systems 文件中项的语法:


System-Name    Time    Type    Speed    Phone    Chat Script

请参见以下示例了解 Systems 文件中的项。


示例 26–1 /etc/uucp/Systems 中的项


Arabian     Any  ACUEC 38400 111222  ogin: Puucp ssword:beledi

Arabian

对应系统名称字段的项。有关更多信息,请参见/etc/uucp/Systems 文件中的系统名称字段

Any

对应时间字段的项。有关更多信息,请参见/etc/uucp/Systems 文件中的时间字段

ACUEC

对应类型字段的项。有关更多信息,请参见/etc/uucp/Systems 文件中的类型字段

38400

对应速度字段的项。有关更多信息,请参见/etc/uucp/Systems 文件中的速度字段

111222

对应电话字段的项。有关更多信息,请参见/etc/uucp/Systems 文件中的电话字段

ogin: Puucp ssword:beledi

对应聊天脚本字段的项。有关更多信息,请参见/etc/uucp/Systems 文件中的聊天脚本字段

/etc/uucp/Systems 文件中的系统名称字段

此字段包含远程计算机的节点名。在 TCP/IP 网络上,此名称可以是计算机的主机名,也可以是特别通过 /etc/uucp/Sysname 文件为 UUCP 通信创建的名称。请参见UUCP /etc/uucp/Systems 文件。在示例 26–1 中,系统名称字段包含代表远程主机 Arabian 的项。

/etc/uucp/Systems 文件中的时间字段

此字段指定可呼叫远程计算机的周日期和时间。时间字段的格式如下:

daytime[;retry]

时间字段的 day 部分

day 部分可以是包含以下某些项的列表。

Su Mo Tu We Th Fr Sa

对应于各个周日期。

Wk

对应于任意工作日。

Any

对应于任意一天。

Never

您的主机永远不会启动对远程计算机的呼叫。呼叫必须由远程计算机启动。随后,您的主机工作在被动模式下。

时间字段的 time 部分

示例 26–1 中的时间字段为 Any,它指示可以随时呼叫主机 Arabian

time 部分应该是以 24 小时表示法指定的时间范围,例如 0800-1230 表示从 8:30 a.m. 到 12:30 p.m.。如果未指定 time 部分,则假设允许在一天的任何时间执行呼叫。

允许跨 0000 的时间范围。例如,0800-0600 表示允许在 6 a.m. 到 8 a.m. 之外的任何时间执行呼叫。

时间字段的 retry 部分

可以在 retry 子字段中指定尝试失败后重试之前的最短时间(以分钟为单位)。缺省等待时间为 60 分钟。该子字段分隔符为分号 (;)。例如,Any;9 解释为可随时执行呼叫,但出现故障后至少要等待 9 分钟才可重试。

如果未指定 retry 项,则会使用指数补偿算法。这意味着 UUCP 将以缺省等待时间开始,并且该等待时间会随失败尝试次数的增加而不断增加。例如,假设初始重试时间为 5 分钟。如果没有任何响应,则下一次重试将在 10 分钟后进行。接下来的重试将在 20 分钟后进行,依此类推直至达到最长重试时间 23 小时为止。如果指定了 retry,则指定的值始终为重试时间。否则,将使用补偿算法。

/etc/uucp/Systems 文件中的类型字段

此字段包含与远程计算机建立通信链路所应使用的设备类型。此字段中使用的关键字应与 Devices 文件项的第一个字段匹配。


示例 26–2 类型字段中的关键字


Arabian    Any    ACUEC, g    38400    1112222    ogin: Puucp ssword:beledi

通过在类型字段中添加协议,可以定义与系统联系时采用的协议。上例显示如何将协议 g 附加到设备类型 ACUEC 中。有关协议的信息,请参见/etc/uucp/Devices 文件中的协议定义

/etc/uucp/Systems 文件中的速度字段

此字段(也称为类字段)指定建立通信链路时所使用设备的传输速度。UUCP 速度字段可以包含字母和速度(如 C1200D1200)以区分拨号器的类。请参阅/etc/uucp/Devices 文件中的类字段

某些设备可以在任何速度下使用,因此可以使用关键字 Any。此字段必须与关联的 Devices 文件项中的类字段匹配。


示例 26–3 速度字段中的项


eagle    Any    ACU, g    D1200    NY3251    ogin: nuucp ssword:Oakgrass

如果不需要为此字段指定信息,请使用短横线 (-) 作为此字段的占位符。

/etc/uucp/Systems 文件中的电话字段

使用此字段,可以指定供自动拨号装置(称为端口选定器)使用的远程计算机的电话号码(称为令牌)。电话号码包含可选的字母缩写和数字部分。如果使用缩写,则必须在 Dialcodes 文件中列出缩写。


示例 26–4 电话字段中的项


nubian    Any    ACU       2400    NY555-1212    ogin: Puucp ssword:Passuan

eagle     Any    ACU, g    D1200   NY=3251       ogin: nuucp ssword:Oakgrass

电话字段中,等号 (=) 指示 ACU 等待二次拨号音响起后再拨打其余的数字。字符串中的短横线 (-) 指示 ACU 暂停四秒后再拨打下一个数字。

如果您的计算机与端口选定器相连,您便可以访问与该选定器连接的其他计算机。这些远程计算机的 Systems 文件项不应在电话字段中包含电话号码。此字段应包含将传递给交换机的令牌。这样,端口选定器即可了解主机要与其进行通信的远程计算机,通常只需了解系统名称。关联的 Devices 文件项的结尾应该有 \D,从而确保不使用 Dialcodes 文件来转换此字段。

/etc/uucp/Systems 文件中的聊天脚本字段

此字段(也称为登录字段)包含称为聊天脚本的字符串。聊天脚本包含本地和远程计算机必须在其初始会话中传递给对方的字符。聊天脚本具有以下格式:

expect send [expect send] ....

expect 表示本地主机为启动会话而期待从远程主机接收的字符串。send 是本地主机在从远程主机接收 expect 字符串后发送的字符串。聊天脚本可以具有多个 expect-send(期待发送)序列。

基本聊天脚本可能包含以下内容:

expect 字段可以包含的子字段形式如下:

expect[-send-expect]...

如果未成功读取前一个 expect,则会发送 -send。-send 后的 -expect 是下一个期待字符串。

例如,如果字符串为 login-login,则本地主机上的 UUCP 将期待 login。如果 UUCP 从远程计算机接收到 login,则 UUCP 将转至下一个字段。如果 UUCP 未收到 login,UUCP 将发送回车,然后再次查找 login。如果本地计算机最初不期待任何字符,请在 expect 字段中使用字符 ""(代表 NULL 字符串)。除非 send 字符串以 \c 结束,否则所有 send 字段发送时都将附加一个回车。

以下是使用 expect-send 字符串的 Systems 文件项的示例:


sonora Any ACUEC 9600 2223333 "" \r \r ogin:-BREAK-ogin: Puucpx ssword:xyzzy

本示例指示本地主机上的 UUCP 发送两个回车并等待 ogin:(对应于 Login:)。如果未收到 ogin:,则发送 BREAK。收到 ogin: 时,将发送登录名 Puucpx。收到 ssword:(对应于 Password:)时,将发送口令 xyzzy

下表列出了一些有用的转义符。

表 26–1 Systems 文件的聊天脚本字段中使用的转义符

转义符 

含义 

\b

发送或期待退格字符。 

\c

如果位于字符串结尾,则取消通常发送的回车。否则应忽略。 

\d

延迟 1 至 3 秒,然后再发送更多字符。 

\E

启动回显检查。从此刻开始,无论何时传输字符,UUCP 都会等待接收到字符后才继续执行检查。 

\e

取消回显检查。  

\H

忽略某一挂起。对回拨调制解调器使用此选项。 

\K

发送 BREAK 字符。 

\M

启用 CLOCAL 标志。

\m

禁用 CLOCAL 标志。

\n

发送或期待换行符。 

\N

发送 NULL 字符 (ASCII NUL)。 

\p

暂停大约 1/4 至 1/2 秒。 

\r

发送或期待回车。 

\s

发送或期待空格字符。 

\t

发送或期待制表符。 

EOT

发送 EOT,随后带有两次换行。 

BREAK

发送 BREAK 字符。 

\ddd

发送或期待八进制数字 (ddd) 表示的字符。

通过聊天脚本启用回拨

某些公司设置了拨入服务器以处理来自远程计算机的呼叫。例如,您的公司可能已具有配备了回拨调制解调器的拨入服务器,员工可以从其家用计算机对该服务器进行呼叫。拨入服务器识别远程计算机后,便会断开与远程计算机的链路,然后再回叫远程计算机。随后将重新建立通信链路。

Systems 文件聊天脚本中应进行回拨的位置使用 \H 选项可以简化回拨。在希望拨入服务器挂起的位置包含 \H(作为期待字符串的一部分)。

例如,假设呼叫拨入服务器的聊天脚本包含以下字符串:


INITIATED\Hogin:

本地计算机上的 UUCP 拨号设备期待从拨入服务器接收字符 INITIATED。与字符 INITIATED 匹配后,拨号设备就会刷新它所接收的所有后续字符,直到拨入服务器挂起为止。随后,本地拨号设备将等待,直到从拨入服务器接收到期待字符串的下一部分(即字符 ogin:)为止。接收到 ogin: 后,拨号设备随后会继续处理聊天脚本。

字符串不需要直接放在 \H 之前或之后,如前面的样例字符串所示。

/etc/uucp/Systems 文件中的硬件流控制

也可以使用伪发送 STTY=value 字符串设置调制解调器特性。例如,STTY=crtscts 可启用硬件流控制。STTY 接受所有的 stty 模式。有关完整的详细信息,请参见 stty(1)termio(7I) 手册页。

以下示例在 Systems 文件项中启用了硬件流控制:


unix Any ACU 2400 12015551212 "" \r ogin: Puucp ssword:Passuan "" \ STTY=crtscts

也可以在 Dialers 文件项中使用此伪发送字符串。

/etc/uucp/Systems 文件中设置奇偶校验

在某些情况下,由于您正在呼叫的系统会检查端口奇偶校验并删除错误的行,因此您必须重置奇偶校验。 expect-send(期待发送)对句 "" P_ZERO 将高序位(奇偶校验位)设置为 0。请参见以下示例中的期待发送对句:


unix Any ACU 2400 12015551212 "" P_ZERO "" \r ogin: Puucp ssword:Passuan

以下是可跟在 expect-send(期待发送)对句 "" P_ZERO 后的奇偶校验对句:

"" P_EVEN

将奇偶校验设置为偶校验(缺省值)

"" P_ODD

将奇偶校验设置为奇校验

"" P_ONE

将奇偶校验位设置为 1

可以将这些奇偶校验对句插入聊天脚本中的任何位置。奇偶校验对句适用于 expect-send(期待发送)对句 "" P_ZERO 后的聊天脚本中的所有信息。奇偶校验对句还可以用在 Dialers 文件的项中。以下示例包括奇偶校验对句 "" P_ONE


unix Any ACU 2400 12015551212 "" P_ZERO "" P_ONE "" \r ogin: Puucp ssword:Passuan

UUCP /etc/uucp/Devices 文件

/etc/uucp/Devices 文件包含可用于与远程计算机建立链路的所有设备的信息。这些设备包括 ACU(包括高速调制解调器)、直接链路和网络连接。

/etc/uucp/Devices 文件中的项具有以下语法:


Type   Line   Line2   Class   Dialer-Token-Pairs

以下是 Devices 文件中对应于与端口 A 连接且以 38,400 bps 速度运行的 U.S. Robotics V.32bis 调制解调器的项。


ACUEC   cua/a   -   38400   usrv32bis-ec
ACUEC

对应类型字段的项。有关更多信息,请参见/etc/uucp/Devices 文件中的类型字段

cua/a

对应线路字段的项。有关更多信息,请参见/etc/uucp/Devices 文件中的线路字段

-

对应线路 2 字段的项。有关更多信息,请参见/etc/uucp/Devices 文件中的线路 2 字段

38400

对应类字段的项。有关更多信息,请参见/etc/uucp/Devices 文件中的类字段

usrv32bis-ec

对应拨号器-令牌对字段的项。有关更多信息,请参见/etc/uucp/Devices 文件中的拨号器-令牌对字段

下一节将对每个字段加以介绍。

/etc/uucp/Devices 文件中的类型字段

此字段说明设备建立的链路类型。UUCP 类型字段可以包含下面各节中介绍的某个关键字。

Direct 关键字

Direct 关键字主要出现在 cu 连接的项中。此关键字指明链路是连接其他计算机或端口选定器的直接链路。请为通过 cu-l 选项引用的每一行单独创建一项。

ACU 关键字

ACU 关键字指明连接远程计算机的链路(无论通过 cu、UUCP、asppp 还是 Solaris PPP 4.0)是通过调制解调器建立的。可以将此调制解调器直接连接到您的计算机,也可以通过端口选定器间接连接到您的计算机。

端口选定器

端口选定器是类型字段中的变量,由端口选定器的名称替换。端口选定器是连接到网络的设备,用于提示输入呼叫调制解调器的名称,随后授予访问权限。文件 /etc/uucp/Dialers 包含仅用于 micomdevelcon 端口选定器的调用程序脚本。可以将您自己的端口选定器项添加到 Dialers 文件中。有关更多信息,请参见UUCP /etc/uucp/Dialers 文件

系统名称变量

此变量由类型字段中的计算机名称替换,它指明链路是连接此特定计算机的直接链路。可使用此命名方案将 Devices 项中的行与 /etc/uucp/Systems 中用于计算机 System-Name 的项进行关联。

Devices 文件和 Systems 文件中的类型字段

示例 26–5 显示 /etc/uucp/Devices 中的字段与 /etc/uucp/Systems 中的字段的比较。Devices 文件的类型字段中使用的关键字要与 Systems 文件项的第三个字段匹配。在 Devices 文件中,类型字段具有 ACUEC 项,指明本例中的自动呼叫装置为 V.32bis 调制解调器。此值与 Systems 文件中的类型字段(也包含 ACUEC 项)匹配。有关更多信息,请参见UUCP /etc/uucp/Systems 文件


示例 26–5 Devices 文件与 Systems 文件中的类型字段的比较

以下是 Devices 文件中的项的示例。



ACUEC cua/a - 38400 usrv32bis-ec

以下是 Systems 文件中的项的示例。


Arabian Any ACUEC 38400 111222 ogin: Puucp ssword:beledi

/etc/uucp/Devices 文件中的线路字段

此字段包含与 Devices 项关联的线路(称为端口)的设备名称。如果与特定项关联的调制解调器已连接到 /dev/cua/a 设备(串行端口 A),则输入此字段的名称将为 cua/a。在线路字段中可以使用可选调制解调器控制标志 M 来指明设备应该处于打开状态,而无需等待载体。例如:


cua/a,M

/etc/uucp/Devices 文件中的线路 2 字段

此字段为占位符。请始终使用连字符 (-)。 801 型拨号器(在 Solaris OS 中不受支持)使用线路 2 字段。非 801 拨号器通常不使用此配置,但仍要求在此字段中使用连字符。

/etc/uucp/Devices 文件中的类字段

如果在类型字段中使用关键字 ACUDirect,则类字段包含设备的速度。不过,类字段可以包含字母和速度(如 C1200D1200)以区分拨号器的类,如 Centrex 或 Dimension PBX。

由于许多大型办公室具有多种类型的电话网络,因此这种区分是必要的。一个网络可能专供内部办公室通信,而另一个网络用于处理外部通信。在这种情况下,必须区分内部通信应该使用的线路和外部通信应该使用的线路。

Devices 文件的类字段中使用的关键字应与 Systems 文件的速度字段匹配。


示例 26–6 Devices 文件中的类字段


ACU   cua/a   -   D2400  hayes

某些设备可以在任何速度下使用,因此可以在类字段中使用关键字 Any。如果使用 Any,则线路可以满足 Systems 文件的速度字段中请求的任何速度。如果此字段为 AnySystems 文件速度字段也为 Any,则缺省速度为 2400 bps。

/etc/uucp/Devices 文件中的拨号器-令牌对字段

拨号器-令牌对 (Dialer-Token-Pairs, DTP) 字段包含拨号器的名称及传递该名称的令牌。DTP 字段具有以下语法:

dialer token [dialer token]

dialer 部分可以是调制解调器和端口监视器的名称,也可以是直接链路设备的 directuudirect。您可以具有任意数目的拨号器-令牌对。如果 dialer 部分不存在,则可以从 Systems 文件的相关项中获取它。token 部分可以紧接在 dialer 部分之后提供。

最后一个拨号器-令牌对可能不存在,具体取决于关联的拨号器。在大多数情况下,最后一对仅包含 dialer 部分。token 部分可以从关联的 Systems 文件项的电话字段中获取。

dialer 部分中的有效项可以在 Dialers 文件中定义,也可以是几种特殊拨号器类型之一。这些特殊的拨号器类型被编译为软件,因此即使 Dialers 文件中不包含相应的项,也可以使用这些特殊的拨号器类型。以下列出了特殊的拨号器类型。

TCP

TCP/IP 网络

TLI

传输级别接口网络(不含 STREAMS)

TLIS

传输级别接口网络(含 STREAMS)

有关更多信息,请参见/etc/uucp/Devices 文件中的协议定义

/etc/uucp/Devices 文件中的拨号器-令牌对字段的结构

可以采用四种不同的方式构建 DTP 字段,具体视与项关联的设备而定。

以下是构建 DTP 字段的第一种方式:

直接连接的调制解调器-如果调制解调器直接连接至计算机上的端口,则关联的 Devices 文件项的 DTP 字段只有一对,通常是调制解调器的名称。此名称用于将特定的 Devices 文件项与 Dialers 文件中的项进行匹配。因此,拨号器字段必须与 Dialers 文件项的第一个字段匹配。


示例 26–7 直接连接的调制解调器的拨号器字段


Dialers   hayes =,-,  ""          \\dA\pTE1V1X1Q0S2=255S12=255\r\c 

                                  \EATDT\T\r\c CONNECT

请注意,Devices 文件项的 DTP 字段中仅存在 dialer 部分 (hayes)。这意味着将被传递给拨号器的 token(在本例中为电话号码)来自 Systems 文件项的电话字段。(\T 被隐含了,如示例 26–9 所示。)

以下是构建 DTP 字段的第二种和第三种方式:


示例 26–8 同一端口选定器上的计算机的 UUCP 拨号器字段


Dialers    develcon ,""   ""            \pr\ps\c est:\007 \E\D\e \007

如上所示,token 部分被保留为空。这指示从 Systems 文件中检索令牌。此计算机的 Systems 文件项的电话字段中包含令牌,电话字段通常是为计算机的电话号码而保留的。有关详细信息,请参阅 UUCP /etc/uucp/Systems 文件。此类 DTP 包含转义符 (\D),可确保电话字段的内容不被解释为有效的 Dialcodes 文件项。

以下是构建 DTP 字段的第四种方式:

连接至端口选定器的调制解调器-如果高速调制解调器连接至端口选定器,则计算机必须首先访问端口选定器交换机。该交换机将与调制解调器进行连接。此类项需要两个拨号器-令牌对。每一对的 dialer 部分(项的第五个和第七个字段)用于匹配 Dialers 文件项,如下所示。


示例 26–9 与端口选定器连接的调制解调器的 UUCP 拨号器字段


develcon ""     ""    \pr\ps\c  est:\007    \E\D\e      \007

ventel   =&-%   t""   \r\p\r\c  $           <K\T%\r>\c  ONLINE!

在第一对中,develcon 是拨号器,vent 是传递给 Develcon 交换机的令牌,用于告知该交换机与您的计算机连接的设备,如 Ventel 调制解调器。由于可以采用不同的方式来设置每个交换机,因此该令牌对于每个端口选定器都是唯一的。连接 Ventel 调制解调器后,即可访问第二对。Ventel 是拨号器,令牌来自 Systems 文件。

DTP 字段中可以出现两个转义符:

/etc/uucp/Devices 文件中的协议定义

可以定义 /etc/uucp/Devices 中的每个设备使用的协议。由于可以使用缺省协议,也可以使用正在调用的特定系统定义协议,因此该规范通常是不必要的。有关详细信息,请参阅 UUCP /etc/uucp/Systems 文件。如果确实要指定协议,则必须使用以下格式:


Type,Protocol [parameters]

例如,可以使用 TCP,te 来指定 TCP/IP 协议。

下表显示了 Devices 文件的可用协议。

表 26–2 /etc/uucp/Devices 中使用的协议

协议 

说明 

t

此协议通常用于通过 TCP/IP 和其他可靠连接的传输。t 采用无错传输。

g

此协议是 UUCP 的固有协议。g 速度较慢,但非常可靠且适用于通过噪音较大的电话线的传输。

e

此协议采用通过面向消息的无错通道进行的传输,面向消息的通道与面向字节流的通道(如 TCP/IP)相反。  

f

此协议用于通过 X.25 连接的传输。f 依赖于数据流的流控制,且对于通过(几乎)可保证无错的链路(特别是 X.25/PAD 链路)进行传输非常有意义。只能针对整个文件执行校验和。如果传输失败,接收方可以请求重新传输。

以下示例显示了设备项的协议名称:


TCP,te - - Any TCP - 

此示例指明,对于设备 TCP,应尝试使用 t 协议。如果传输的另一端拒绝,则使用 e 协议。

et 都不适合在调制解调器上使用。即使调制解调器能保证无错传输,数据仍然会在调制解调器与 CPU 之间丢失。

UUCP /etc/uucp/Dialers 文件

/etc/uucp/Dialers 文件包含常用调制解调器的拨号说明。您可能不需要在此文件中更改或添加项,除非计划使用非标准调制解调器或计划自定义您的 UUCP 环境。不过,您应该了解该文件的内容以及它与 SystemsDevices 文件之间的关系。

该文件中的内容指定在使用某条线路进行数据传输之前,必须先在该线路上进行的初始会话。此会话(称为聊天脚本)通常是传输和期待的 ASCII 字符串序列。聊天脚本通常用于拨打电话号码。

UUCP /etc/uucp/Devices 文件中的示例所示,Devices 文件项中的第五个字段是 Dialers 文件或特殊拨号器类型(如 TCPTLITLIS)的索引。uucico 守护进程尝试将 Devices 文件中的第五个字段与每个 Dialers 文件项的第一个字段进行匹配。此外,从第七个位置开始,每个奇数编号的 Devices 字段都会用作 Dialers 文件的索引。如果匹配成功,系统会解释 Dialers 项以执行拨号器会话。

Dialers 文件中的每个项都具有以下语法:


dialer   substitutions   expect-send

以下示例显示 U.S. Robotics V.32bis 调制解调器的项。


示例 26–10 /etc/uucp/Dialers 文件中的项


usrv32bis-e    =,-,  ""    dA\pT&FE1V1X1Q0S2=255S12=255&A1&H1&M5&B2&W\r\c OK\r 

                           \EATDT\T\r\c CONNECT\s14400/ARQ STTY=crtscts

usrv32bis-e

对应拨号器字段的项。拨号器字段与 Devices 文件中的第五个以及其他奇数编号的字段匹配。

=,-, ""

对应替换字段的项。替换字段是转换字符串。每一对字符中的第一个字符都被映射为该对的第二个字符。此映射通常用于将 =- 转换为拨号器“等待拨号音”和“暂停”所需的内容。

dA\pT&FE1V1X1Q0S2=255S12=255&A1&H1&M5&B2&W\r\c OK\r

expect-send(期待发送)字段中的项。expect-send(期待发送)字段是字符串。

\EATDT\T\r\c CONNECT\s14400/ARQ STTY=crtscts

更多 expect-send(期待发送)字段。

以下示例显示在安装 Solaris 期间,安装 UUCP 时分发的 Dialers 文件项的样例。


示例 26–11 /etc/uucp/Dialers 摘录


penril	=W-P "" \d > Q\c : \d- > s\p9\c )-W\p\r\ds\p9\c-) y\c : \E\TP > 9\c OK 

 

ventel	=&-%	"" \r\p\r\c $ <K\T%%\r>\c ONLINE! 

 

vadic	=K-K	"" \005\p *-\005\p-*\005\p-* D\p BER? \E\T\e \r\c LINE 

 

develcon	""	"" \pr\ps\c est:\007 

 

\E\D\e \n\007 micom	""	"" \s\c NAME? \D\r\c GO 

 

hayes	=,-,	"" \dA\pTE1V1X1Q0S2=255S12=255\r\c OK\r \EATDT\T\r\c CONNECT 

 

#   Telebit TrailBlazer 

tb1200	=W-,	"" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=2\r\c OK\r 

\EATDT\T\r\c CONNECT\s1200   

tb2400	=W-,	"" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=3\r\c OK\r 

\EATDT\T\r\c CONNECT\s2400   

tbfast	=W-,	"" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=255\r\c OK\r 

\EATDT\T\r\c CONNECT\sFAST 

 

# USrobotics, Codes, and DSI modems 

 

dsi-ec  =,-,    "" \dA\pTE1V1X5Q0S2=255S12=255*E1*F3*M1*S1\r\c OK\r \EATDT\T\r\c 

CONNECT\sEC STTY=crtscts,crtsxoff 

 

dsi-nec =,-,    "" \dA\pTE1V1X5Q0S2=255S12=255*E0*F3*M1*S1\r\c OK\r \EATDT\T\r\c CONNECT 

STTY=crtscts,crtsxoff 

 

usrv32bis-ec =,-,  "" \dA\pT&FE1V1X1Q0S2=255S12=255&A1&H1&M5&B2&W\r\c OK\r \EATDT\T\r\c 

CONNECT\s14400/ARQ STTY=crtscts,crtsxoff 

 

usrv32-nec =,-, "" \dA\pT&FE1V1X1Q0S2=255S12=255&A0&H1&M0&B0&W\r\c OK\r \EATDT\T\r\c 

CONNECT STTY=crtscts,crtsxoff 

 

codex-fast =,-, "" \dA\pT&C1&D2*MF0*AA1&R1&S1*DE15*FL3S2=255S7=40S10=40*TT5&W\r\c OK\r 

\EATDT\T\r\c CONNECT\s38400 STTY=crtscts,crtsxoff 

 

tb9600-ec =W-,  "" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=6\r\c OK\r 

\EATDT\T\r\cCONNECT\s9600 STTY=crtscts,crtsxoff 

 

tb9600-nec =W-, "" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=6S180=0\r\c OK\r \EATDT\T\r\c 

CONNECT\s9600 STTY=crtscts,crtsxoff

下表列出了 Dialers 文件的发送字符串中常用的转义符。

表 26–3 /etc/uucp/Dialers 的反斜杠字符

字符 

说明 

\b

发送或期待退格字符。 

\c

无换行符或回车。 

\d

延迟大约 2 秒。 

\D

未使用 Dialcodes 进行转换的电话号码或令牌。

\e

禁用回显检查。 

\E

对速度较慢的设备启用回显检查。 

\K

插入 Break 字符。  

\n

发送换行符。 

\nnn

发送八进制数字。UUCP /etc/uucp/Systems 文件一节中列出了可以使用的其他转义符。

\N

发送或期待 NULL 字符 (ASCII NUL)。 

\p

暂停大约 12–14 秒。 

\r

返回。  

\s

发送或期待空格字符。 

\T

使用 Dialcodes 进行转换的电话号码或令牌。

以下是 Dialers 文件中的 penril 项:


penril =W-P "" \d > Q\c : \d- > s\p9\c )-W\p\r\ds\p9\c-) y\c : \E\TP > 9\c OK 

首先,建立了电话号码参数的替换机制,以便将任何 = 替换为 W(等待拨号音),将任何 - 替换为 P(暂停)。

下面是该行的其余部分提供的握手情况:

启用 /etc/uucp/Dialers 文件中的硬件流控制

也可以使用伪发送 STTY=value 字符串设置调制解调器特性。例如,STTY=crtscts 可启用外发硬件流控制。STTY=crtsxoff 可启用传入硬件流控制。STTY=crtscts,crtsxoff 可同时启用外发和传入硬件流控制。

STTY 接受所有的 stty 模式。请参见 stty(1)termio(7I) 手册页。

以下示例在 Dialers 项中启用了硬件流控制:


dsi =,–, "" \dA\pTE1V1X5Q0S2=255S12=255*E1*F3*M1*S1\r\c OK\r \EATDT\T\r\c 

CONNECT\sEC STTY=crtscts 

也可以在 Systems 文件项中使用此伪发送字符串。

/etc/uucp/Dialers 文件中设置奇偶校验

在某些情况下,由于您正在呼叫的系统会检查端口奇偶校验并删除错误的行,因此您必须重置奇偶校验。expect-send(期待发送)对句 P_ZERO 将奇偶校验设置为零:


foo =,-, "" P_ZERO "" \dA\pTE1V1X1Q0S2=255S12=255\r\c OK\r\EATDT\T\r\c CONNECT 

以下是可跟在 expect-send(期待发送)对句后的奇偶校验对句:

"" P_EVEN

将奇偶校验设置为偶校验(缺省值)

"" P_ODD

将奇偶校验设置为奇校验

"" P_ONE

将奇偶校验设置为 1

也可以在 Systems 文件项中使用此伪发送字符串。

其他基本 UUCP 配置文件

执行基本的 UUCP 配置时,除了 SystemsDevicesDialers 文件,还可以使用本节中介绍的文件。

UUCP /etc/uucp/Dialcodes 文件

使用 /etc/uucp/Dialcodes 文件,可以定义在 /etc/uucp/Systems 文件的电话字段中使用的拨号代码缩写。可以使用 Dialcodes 文件提供有关由同一站点中的多个系统使用的基本电话号码的附加信息。

每个项都具有以下语法:


Abbreviation   Dial-Sequence
Abbreviation

此字段提供 Systems 文件的电话字段中使用的缩写。

Dial-Sequence

此字段提供访问特定的 Systems 文件项时传递给拨号器的拨号序列。

下面对这两个文件中的字段进行了比较。以下是 Dialcodes 文件中的字段。


Abbreviation   Dial-Sequence

以下是 Systems 文件中的字段。


System-Name   Time   Type   Speed   Phone   Chat Script

下表包含 Dialcodes 文件中字段的内容样例。

表 26–4 Dialcodes 文件中的项

缩写 

拨号序列 

NY

1=212

jt

9+847

在第一行中,NY 是出现在 Systems 文件的电话字段中的缩写。例如,Systems 文件可能具有以下项:

NY5551212

uucico 读取 Systems 文件中的 NY 时,uucico 将在 Dialcodes 文件中搜索 NY 并获取拨号序列 1=2121=212 是呼叫纽约市任何电话所需的拨号序列。此序列包括数字 1、表示暂停和等待二次拨号音的等号 (=),以及区号 212uucico 会将此信息发送给拨号器,然后返回 Systems 文件获取电话号码的其余部分:5551212

jt 9=847- 项将与 Systems 文件中的电话字段(如 jt7867)协同使用。当 uucico 读取 Systems 文件中包含 jt7867 的项时,uucico 会将序列 9=847-7867 发送给拨号器(如果拨号器-令牌对中的令牌为 \T)。

UUCP /etc/uucp/Sysfiles 文件

通过 /etc/uucp/Sysfiles 文件,可以将 uucpcu 使用的不同文件指定为 SystemsDevicesDialers 文件。有关 cu 的更多信息,请参见 cu(1C) 手册页。您可以针对以下文件使用 Sysfiles

Sysfiles 文件的语法如下:


service=w systems=x:x dialers=y:y devices=z:z 
w

表示 uucicocu 或这两个命令(以冒号分隔)

x

表示一个或多个要用作 Systems 文件的文件,每个文件名以冒号分隔且按照其出现的顺序读取

y

表示一个或多个要用作 Dialers 文件的文件

z

表示一个或多个要用作 Devices 文件的文件

假设每个文件名都相对于 /etc/uucp 目录(除非指定了全路径)。

以下样例 /etc/uucp/Sysfiles 除了定义标准的 /etc/uucp/Systems 文件以外,还定义了本地 Systems 文件 (Local_Systems):


service=uucico:cu systems=Systems :Local_Systems 

/etc/uucp/Sysfiles 包含此项时,uucicocu 将首先检查标准的 /etc/uucp/Systems。如果该文件中没有对应于被呼叫系统的项,或者该文件中的项出现问题,这两个命令将检查 /etc/uucp/Local_Systems

正如在前一项中指定的那样,cuuucico 将共享 DialersDevices 文件。

当为 uucicocu 服务定义了不同的 Systems 文件时,计算机会存储两个不同的 Systems 列表。可以使用 uuname 命令列显 uucico 列表,或者使用 uuname -C 命令列显 cu 列表。以下是该文件的另一个示例,说明了先检查备用文件,然后再检查缺省文件(如果必要)的情况:


service=uucico systems=Systems.cico:Systems   

  dialers=Dialers.cico:Dialers \ 

devices=Devices.cico:Devices   

  service=cu systems=Systems.cu:Systems \ 

dialers=Dialers.cu:Dialers \   

  devices=Devices.cu:Devices

UUCP /etc/uucp/Sysname 文件

使用 UUCP 的每一台计算机都必须具有标识名称,通常称为节点名。节点名随聊天脚本和其他标识信息一同包含在远程计算机的 /etc/uucp/Systems 文件中。通常,UUCP 使用的节点名与 uname -n 命令返回的节点名相同,TCP/IP 也使用该名称。

通过创建 /etc/uucp/Sysname 文件,可以指定与 TCP/IP 主机名完全无关的 UUCP 节点名。该文件有一个占据一行的项,其中包含系统的 UUCP 节点名。

UUCP /etc/uucp/Permissions 文件

/etc/uucp/Permissions 文件指定远程计算机在登录、访问文件和执行命令方面具有的权限。某些选项可限制远程计算机请求文件的能力及其接收本地计算机放入队列中的文件的能力。其他选项可用于指定远程计算机能够在本地计算机上执行的命令。

UUCP 结构化项

每项都是一个逻辑行,物理行以反斜杠 (\) 结尾以指示连续性。以空格分隔的选项组成了项。每个选项都是采用以下格式的名称-值对:

name=value

Values 可以是以冒号分隔的列表。指定的选项中不允许包含空格。

注释行以井号 (#) 开头,且占用整行,直到换行符。空白行将被忽略,即使是在多行项中。

Permissions 文件项的类型如下所示:

LOGNAME 项包含一个 LOGNAME 选项。MACHINE 项包含一个 MACHINE 选项。一个项可以同时包含这两个选项。

UUCP 注意事项

使用 Permissions 文件限制为远程计算机授予的访问权限级别时,应该考虑以下几点:

UUCP REQUEST 选项

远程计算机呼叫您的计算机并请求接收文件时,该请求可能会被授权,也可能会被拒绝。REQUEST 选项指定远程计算机是否可以请求从您的计算机建立文件传输。字符串 REQUEST=yes 指定远程计算机可以请求从您的计算机传输文件。字符串 REQUEST=no 指定远程计算机不能请求从您的计算机接收文件。如果未指定 REQUEST 选项,则将使用缺省值 REQUEST=noREQUEST 选项可以出现在 LOGNAME 项中(这样远程计算机就能呼叫您的计算机),也可以出现在 MACHINE 项中(这样您就可以呼叫远程计算机)。

UUCP SENDFILES 选项

远程计算机呼叫您的计算机并完成其工作后,即会尝试检索您的计算机针对远程计算机排入队列的工作。SENDFILES 选项指定您的计算机是否可以发送针对远程计算机排入队列的工作。

如果远程计算机使用 LOGNAME 选项中的一个名称进行登录,字符串 SENDFILES=yes 指定您的计算机可以发送针对远程计算机排入队列的工作。如果在 /etc/uucp/Systems 的时间字段中输入了 Never,则此字符串是必需的。Never 项将本地计算机设置为被动模式,但是不允许启动对此特定远程计算机的呼叫。有关更多信息,请参见UUCP /etc/uucp/Systems 文件

字符串 SENDFILES=call 指定仅当您的计算机呼叫远程计算机时才发送在您的计算机中排入队列的文件。call 值是 SENDFILES 选项的缺省值。此选项仅在 LOGNAME 项中有意义,因为将呼叫发送到远程计算机时将应用 MACHINE 项。如果该选项与 MACHINE 项结合使用,则会忽略该选项。

UUCP MYNAME 选项

使用此选项,除您的计算机的 TCP/IP 主机名(通过 hostname 命令返回)外,还可以指定其唯一的 UUCP 节点名。例如,如果您无意中为您的主机指定的名称与某个其他系统的名称相同,则可以设置 Permissions 文件的 MYNAME 选项。假设您希望将您的组织称为 widget。如果您的所有调制解调器都与主机名为 gadget 的计算机相连,则 gadgetPermissions 文件中的项如下:


service=uucico systems=Systems.cico:Systems   

  dialers=Dialers.cico:Dialers \ 

  devices=Devices.cico:Devices   

service=cu systems=Systems.cu:Systems \ 

  dialers=Dialers.cu:Dialers \   

  devices=Devices.cu:Devices

现在,系统 world 可以登录计算机 gadget,就像登录 widget 一样。为了在您呼叫计算机 world 时,也能使其通过别名 widget 识别您的计算机,可以定义如下项:


MACHINE=world MYNAME=widget

也可以使用 MYNAME 选项进行测试,因为此选项允许计算机呼叫其本身。但是,由于可能会使用此选项屏蔽计算机的实际标识,因此应使用UUCP VALIDATE 选项中介绍的 VALIDATE 选项。

UUCP READWRITE 选项

这些选项指定 uucico 可以读取或写入的文件系统的各个部分。可以在 MACHINELOGNAME 项中指定 READWRITE 选项。

READWRITE 选项的缺省值都为 uucppublic 目录,如以下字符串所示:


READ=/var/spool/uucppublic WRITE=/var/spool/uucppublic 

字符串 READ=/WRITE=/ 指定具有对“其他”权限的本地用户可访问的任何文件的访问权限。

这些项的值是以冒号分隔的路径名称的列表。READ 选项用于请求文件,而 WRITE 选项用于存储文件。其中的一个值必须是要进入或退出的文件的全路径名的前缀。要授予在 /usr/news 和公共目录中存储文件的权限,请对 WRITE 选项使用以下值:


WRITE=/var/spool/uucppublic:/usr/news 

如果使用 READWRITE 选项,则必须指定所有的路径名,因为系统不会将这些路径名添加到缺省列表中。例如,如果 /usr/news 路径名是 WRITE 选项中指定的唯一路径,则系统将拒绝在公共目录中存储文件的权限。

在设置可供远程系统进行读写访问的目录时需格外小心。例如,/etc 目录包含许多关键的系统文件。远程用户不应拥有在此目录中存储文件的权限。

UUCP NOREADNOWRITE 选项

NOREADNOWRITE 选项指定除 READWRITE 选项或缺省值之外的其他情况。以下项允许读取除 /etc 目录(及其子目录,请记住,这些选项是前缀)中的文件以外的任何文件。


READ=/ NOREAD=/etc WRITE=/var/spool/uucppublic 

此项只允许向缺省目录 /var/spool/uucppublic 中写入内容。NOWRITENOREAD 选项的工作方式相同。可以在 LOGNAMEMACHINE 项中使用 NOREADNOWRITE 选项。

UUCP CALLBACK 选项

可以在 LOGNAME 项中使用 CALLBACK 选项指定在回叫呼叫系统之前不执行任何事务。以下是设置 CALLBACK 的原因:

字符串 CALLBACK=yes 指定您的计算机必须回叫远程计算机,然后才能进行文件传输。

CALLBACK 选项的缺省值为 CALLBACK=no。如果将 CALLBACK 设置为 yes,则必须在对应于呼叫者的 MACHINE 项中指定影响其余会话的权限。请勿在 LOGNAME 或远程计算机针对您的主机设置的 LOGNAME 项中指定这些权限。


注 –

如果两个站点为彼此都设置了 CALLBACK 选项,则永远不会启动会话。


UUCP COMMANDS 选项


注意 – 注意 –

COMMANDS 选项可能会危及系统的安全性。使用此选项时应格外小心。


可以在 MACHINE 项中使用 COMMANDS 选项指定远程计算机可在您的计算机上执行的命令。uux 程序生成远程执行请求,并对要传输到远程计算机的请求进行排队。文件和命令将被发送到目标计算机进行远程执行,这对于仅在您的系统发出呼叫时才会应用 MACHINE 项而言,是一个例外。

请注意,不能在 LOGNAME 项中使用 COMMANDSMACHINE 项中的 COMMANDS 定义命令权限,无论是您呼叫远程系统还是远程系统呼叫您。

字符串 COMMANDS=rmail 指定远程计算机可在您的计算机上执行的缺省命令。如果在 MACHINE 项中使用命令字符串,则将覆盖缺省命令。例如,以下项将覆盖 COMMAND 缺省值,以使名为 owlravenhawkdove 的计算机可在您的计算机上立即执行 rmailrnewslp


MACHINE=owl:raven:hawk:dove COMMANDS=rmail:rnews:lp 

除以上指定的名称外,还可以指定命令的全路径名。例如,以下项指定命令 rmail 使用缺省搜索路径。


COMMANDS=rmail:/usr/local/rnews:/usr/local/lp 

UUCP 的缺省搜索路径为 /bin/usr/bin。远程计算机为要执行的命令指定 rnews/usr/local/rnews 时,则会执行 /usr/local/rnews,而无论缺省路径是什么。同样,/usr/local/lp 是要执行的 lp 命令。

在列表中包含 ALL 值意味着,系统将执行该项中指定的远程计算机的任何命令。如果使用此值,则将授予远程计算机对您的计算机的完全访问权限。


注意 – 注意 –

此值允许的访问权限远远多于普通用户拥有的访问权限。仅在两台计算机都位于同一个站点、紧密连接,且用户受信任时,才应使用此值。


以下是添加了 ALL 值的字符串:


COMMANDS=/usr/local/rnews:ALL:/usr/local/lp 

此字符串说明了两点:

只要指定了存在潜在危险的命令(如带有 COMMANDS 选项的 catuucp),就应使用 VALIDATE 选项。通过 UUCP 远程执行守护进程 (uuxqt) 执行命令时,读写文件的任何命令都对本地安全性造成潜在危险。

UUCP VALIDATE 选项

只要指定的命令对您的计算机的安全造成潜在危险,就应在使用 COMMANDS 选项的同时使用 VALIDATE 选项。尽管 VALIDATE 提供的命令访问权限比 ALL 更安全,但它也不过是在 COMMANDS 选项之上提高了安全性级别。

VALIDATE 通过交叉检查呼叫计算机的主机名与它使用的登录名,提供一定程度的呼叫者身份验证。以下字符串可确保在 widgetgadget 之外的任何计算机尝试以 Uwidget 身份进行登录时会拒绝连接。


LOGNAME=Uwidget VALIDATE=widget:gadget 

VALIDATE 选项要求拥有权限的计算机具有处理 UUCP 事务的唯一登录名和口令。此验证的重要特征是使与此项关联的登录名和口令受到保护。如果外界人员获取了该信息,便不能再将特定的 VALIDATE 选项视为安全选项。

请认真考虑要授予哪些远程计算机拥有处理 UUCP 事务权限的登录名和口令。为远程计算机提供具有文件访问和远程执行功能的特殊登录名和口令等同于为该计算机上的任何人提供访问您的计算机的普通登录名和口令。因此,如果您不信任远程计算机上的某个人,请勿为该计算机提供拥有权限的登录名和口令。

以下 LOGNAME 项指定,如果声明为 eagleowlhawk 的某个远程计算机登录了您的计算机,则它一定使用了登录名 uucpfriend


LOGNAME=uucpfriend VALIDATE=eagle:owl:hawk 

如果外界人员获取了 uucpfriend 登录名和口令,便很容易进行伪装。

但是,此项与 COMMANDS 选项有什么关系,MACHINE 项中仅包含什么内容呢?此项会将 MACHINE 项(和 COMMANDS 选项)与 LOGNAME 项(与拥有权限的登录名关联)相链接。由于登录远程计算机时不会运行执行守护进程,因此需要此链接。实际上,该链接是不知道哪个计算机发送执行请求的异步进程。因此,真正的问题是:您的计算机如何识别执行文件的来源?

每个远程计算机在您的本地计算机上都有其自己的假脱机目录。这些假脱机目录具有仅为 UUCP 程序提供的写入权限。远程计算机中的执行文件在传输到您的计算机后将被置于其假脱机目录中。uuxqt 守护进程运行时,即可使用假脱机目录名称在 Permissions 文件中查找 MACHINE 项并获取 COMMANDS 列表。或者,如果该计算机名称未出现在 Permissions 文件中,则将使用缺省列表。

以下示例显示 MACHINE 项与 LOGNAME 项之间的关系:


MACHINE=eagle:owl:hawk REQUEST=yes \ 

COMMANDS=rmail:/usr/local/rnews \ 

READ=/ WRITE=/ 

LOGNAME=uucpz VALIDATE=eagle:owl:hawk \ 

REQUEST=yes SENDFILES=yes \ 

READ=/ WRITE=/ 

COMMANDS 选项中的值表示,远程用户可以执行 rmail/usr/local/rnews

在第一项中,必须保证希望呼叫列出的某台计算机时,真正呼叫的是 eagleowlhawk。因此,eagleowlhawk 假脱机目录中的所有文件都是由这些计算机中的某一台放入的。如果远程计算机登录并声明它是这三台计算机中的某一台,则其执行文件将被置于拥有权限的假脱机目录中。因此,必须确认该计算机具有拥有权限的登录名 uucpz

OTHER 的 UUCP MACHINE

可以为特定的 MACHINE 项中未提到的远程计算机指定不同的选项值。当许多计算机呼叫您的主机,且命令集不断发生变化时,可能会产生这种需要。可将 OTHER 作为计算机名称用于此项,如以下示例所示:


MACHINE=OTHER \ 

COMMANDS=rmail:rnews:/usr/local/Photo:/usr/local/xp 

也可以针对其他 MACHINE 项中未提到的计算机设置 MACHINE 项的所有其他选项。

合并 UUCP 的 MACHINE 项和 LOGNAME

常用选项相同时,可以将 MACHINELOGNAME 项合并为一个项。例如,以下两组项具有相同的 REQUESTREADWRITE 选项。


MACHINE=eagle:owl:hawk REQUEST=yes \ 

READ=/ WRITE=/


LOGNAME=uupz REQUEST=yes SENDFILES=yes \ 

READ=/ WRITE=/

可以合并这些项,如下所示:


MACHINE=eagle:owl:hawk REQUEST=yes \ 

logname=uucpz SENDFILES-yes \ 

READ=/ WRITE=/

通过合并 MACHINELOGNAME 项,提高了 Permissions 文件的可管理性和有效性。

UUCP 转发

通过一系列计算机发送文件时,中间计算机在其 COMMANDS 选项中必须具有命令 uucp。如果键入以下命令,则仅在计算机 willow 允许计算机 oak 执行 uucp 程序时才执行转发操作。


% uucp sample.txt oak\!willow\!pine\!/usr/spool/uucppublic

计算机 oak 还必须允许您的计算机执行 uucp 程序。计算机 pine(指定的最后一个计算机)不必允许 uucp 命令,因为该计算机不会执行任何转发操作。通常情况下,不会以该方式设置计算机。

UUCP /etc/uucp/Poll 文件

/etc/uucp/Poll 文件包含轮询远程计算机所需的信息。Poll 文件中的每个项依次包含要呼叫的远程计算机的名称、制表符或空格以及应呼叫该计算机的时间点(小时)。Poll 文件中项的格式如下所示:

sys-name hour ...

例如,项 eagle 0 4 8 12 16 20 指示系统每四小时对计算机 eagle 轮询一次。

uudemon.poll 脚本负责处理 Poll 文件,但并不实际执行轮询。该脚本仅在假脱机目录中设置轮询工作文件(名称始终为 C.file)。uudemon.poll 脚本将启动调度程序,且调度程序将检查假脱机目录中的所有工作文件。

UUCP /etc/uucp/Config 文件

使用 /etc/uucp/Config 文件,可以手动覆盖某些参数。Config 文件中的每个项都具有以下格式:

parameter=value

有关可配置参数名称的完整列表,请参见随同系统提供的 Config 文件。

以下 Config 项将缺省协议排序设置为 Gge,并将 G 协议缺省值更改为 7 个窗口和 512 字节的包。


Protocol=G(7,512)ge

UUCP /etc/uucp/Grades 文件

/etc/uucp/Grades 文件包含作业等级的定义,将发送到远程计算机的作业排入队列时会使用作业等级定义。此文件还包含每个作业等级的权限。 此文件中的每一项都代表由管理员定义的作业等级的定义,用户将使用该定义将作业排入队列。

Grades 文件中的每一项都具有以下格式:

User-job-grade System-job-grade Job-size Permit-type ID-list

每一项包含的各字段间以空格分隔,最后一个字段所包含的子字段也以空格分隔。如果项占用多个物理行,则可以使用反斜杠以继续在下一行中输入内容。注释行以井号 (#) 开头,且占用整行。将始终忽略空行。

UUCP 用户作业等级字段

此字段包含管理员定义的用户作业等级名称,最多可含 64 个字符。

UUCP 系统作业等级字段

此字段包含用户作业等级映射到的单字符作业等级。有效的字符列表为 A–Z、a–z,A 的优先级最高,z 的优先级最低。

用户作业等级与系统作业等级之间的关系

可以将一个用户作业等级绑定到多个系统作业等级。请注意,系统将在 Grades 文件中按顺序查找用户作业等级。因此,应列出系统作业等级的多次出现情况,以符合对最大作业大小的限制。

虽然未限制用户作业等级的最大数目,但是系统作业等级允许的最大数目为 52。原因是可以将多个用户作业等级映射到一个系统作业等级,但是每个用户作业等级在文件中必须占用单独的一行。下面是一个示例:


mail N Any User Any netnews N Any User Any 

如果 Grades 文件中包含此配置,则这两个用户作业等级字段将共享同一个系统作业等级。由于作业等级的权限与用户作业等级关联,而不是与系统作业等级关联,因此两个用户作业等级可以共享同一个系统作业等级而具有两组不同的权限。

缺省等级

可以定义将缺省用户作业等级绑定到系统作业等级。必须将关键字 default 用作 Grades 文件的用户作业等级字段中的用户作业等级及其要绑定到的系统作业等级。应该将限制字段和 ID 字段定义为 Any,以便可以将任何用户和任何大小的作业排入此等级。下面是一个示例:


default a Any User Any 

如果未定义缺省用户作业等级,则将使用内置的缺省等级 Z。由于限制字段的缺省值为 Any,因此不会检查多次出现的缺省等级。

UUCP 作业大小字段

此字段指定可进入队列的最大作业大小。 作业大小以字节为单位,且可以是下述选项的列表。

nnnn

指定此作业等级的最大作业大小的整数

nK

表示多少 KB 的十进制数(K 是千字节的缩写)

nM

表示多少 MB 的十进制数(M 是兆字节的缩写)

Any

指定不存在最大作业大小的关键字

以下是一些示例:

UUCP 允许类型字段

此字段包含表示如何解释 ID 列表的关键字。下表列出了这些关键字及其含义。

表 26–5 允许类型字段

关键字 

ID 列表内容 

User

允许其使用此作业等级的用户的登录名 

Non-user

不允许其使用此作业等级的用户的登录名 

Group

允许其成员使用该作业等级的组名 

Non-group

不允许其成员使用该作业等级的组名 

UUCP ID 列表字段

此字段包含允许或拒绝排入此作业等级的登录名或组名的列表。名称列表以空格分隔,且以换行符终止。关键字 Any 表示允许任何人排入此作业等级。

其他 UUCP 配置文件

本节介绍三个影响 UUCP 设备的使用但很少修改的文件。

UUCP /etc/uucp/Devconfig 文件

使用 /etc/uucp/Devconfig 文件,可以按服务(uucpcu)来配置设备。Devconfig 项定义用于特定设备的 STREAMS 模块。这些项具有以下格式:

service=x device=y push=z[:z...]

x 可以是 cuuucico 或这两种服务(以冒号分隔)。y 是网络名称,而且必须与 Devices 文件中的项匹配。z 由 STREAMS 模块的名称替换(按这些模块推入流的顺序)。可以为 cuuucp 服务定义不同的模块和设备。

以下是适用于 STARLAN 网络且在该文件中最常使用的项:


service=cu       device=STARLAN     push=ntty:tirdwr 

service=uucico   device=STARLAN     push=ntty:tirdwr 

此示例将推送 ntty,然后推送 tirdwr

UUCP /etc/uucp/Limits 文件

/etc/uucp/Limits 文件控制在 uucp 网络中同时运行的 uucicouuxqtuusched 的最大数目。在大多数情况下 ,缺省值是可接受的,且不需要进行更改。但是,如果要更改缺省值,请使用任意文本编辑器。

Limits 文件的格式如下:

service=x max=y

x 可以是 uucicouuxqtuusched,而 y 是该服务所允许的限制。这些字段可以采用任何顺序且为小写形式。

以下项是 Limits 文件中最常用的项:


service=uucico max=5 

service=uuxqt max=5 

service=uusched max=2 

该示例允许在计算机上运行五个 uucico、五个 uuxqt 和两个 uusched

UUCP remote.unknown 文件

影响通信设备使用的另一文件是 remote.unknown 文件。此文件是在任何 Systems 文件启动会话的情况下找不到计算机时执行的二进制程序。此程序记录会话尝试并丢弃连接。


注意 – 注意 –

如果更改 remote.unknown 文件的权限使得该文件不能执行,则系统将接受来自任何系统的连接。


不存在于任何 Systems 中的计算机启动会话时,将执行此程序。该程序记录会话尝试,但无法建立连接。如果更改此文件的权限使得该文件不能执行 (chmod 000 remote.unknown),则系统将接受任何会话请求。这种更改非常严肃,必须有充分理由才应进行此更改。

UUCP 管理文件

接下来介绍 UUCP 管理文件。这些文件是在假脱机目录中创建的,用于锁定设备、保存临时数据或保留有关远程传输或执行的信息。

表 26–6 UUCP 锁定文件

文件名 

说明 

LCK.sys

sys 表示正在使用该文件的计算机的名称

LCK.dev

dev 表示正在使用该文件的设备的名称

LCK.LOG

LOG 表示锁定的 UUCP 日志文件

如果意外丢弃了通信链路(如在计算机崩溃时),这些文件可以保留在假脱机目录中。父进程不再处于活动状态后,锁定文件即被忽略(删除)。锁定文件包含创建锁定的进程的进程 ID。

UUCP 错误消息

本节列出了与 UUCP 关联的错误消息。

UUCP ASSERT 错误消息

下表列出了 ASSERT 错误消息。

表 26–7 ASSERT 错误消息

错误消息 

说明或操作  

CAN'T OPEN

open()fopen() 失败。

CAN'T WRITE

write()fwrite()fprint() 或类似的命令失败。

CAN'T READ

read()fgets() 或类似的命令失败。

CAN'T CREATE

creat() 调用失败。

CAN'T ALLOCATE

动态分配失败。  

CAN'T LOCK

尝试创建 LCK(锁定)文件失败。在某些情况下,此错误是致命的。

CAN'T STAT

stat() 调用失败。

CAN'T CHMOD

chmod() 调用失败。

CAN'T LINK

link() 调用失败。

CAN'T CHDIR

chdir() 调用失败。

CAN'T UNLINK

unlink() 调用失败。

WRONG ROLE

这是内部逻辑问题。  

CAN'T MOVE TO CORRUPTDIR

尝试将某些错误的 C.X. 文件移至 /var/spool/uucp/.Corrupt 目录失败。可能缺少该目录,或者模式或属主不正确。

CAN'T CLOSE

close()fclose() 调用失败。

FILE EXISTS

尝试创建 C.D. 文件,但该文件已存在。当序列文件访问发生问题时就会出现此错误,通常说明软件出现错误。

NO uucp SERVICE NUMBER

尝试 TCP/IP 调用,但是 /etc/services 文件中没有任何对应 UUCP 的项。

BAD UID

用户 ID 不在口令数据库中。请检查名称服务配置。 

BAD LOGIN_UID

与上一个说明相同。  

BAD LINE

Devices 文件中有错误的行。一行或多行中的参数不足。

SYSLST OVERFLOW

gename.c 中的内部表溢出。单个作业尝试与 30 多个系统对话。

TOO MANY SAVED C FILES

与上一个说明相同。  

RETURN FROM fixline ioctl

ioctl(2) 应该永远不会失败,但却失败了。系统驱动程序出现问题。

BAD SPEED

DevicesSystems 文件(类或速度字段)中出现错误的行速度。

BAD OPTION

Permissions 文件中有错误的行或选项。必须立即纠正此错误。

PKCGET READ

远程计算机可能已挂起。无需执行任何操作。  

PKXSTART

远程计算机以无法恢复的方式异常中止。通常可以忽略此错误。  

TOO MANY LOCKS

出现内部问题。请与系统供应商联系。  

XMV ERROR

某个文件或目录出现了问题。可能是假脱机目录造成的,因为尝试此进程之前假设已检查目标的模式。  

CAN'T FORK

尝试创建 forkexec 失败。不应丢失当前作业,稍后将尝试该操作 (uuxqt)。无需执行任何操作。

UUCP STATUS 错误消息

下表列出了最常见的 STATUS 错误消息。

表 26–8 UUCP STATUS 消息

错误消息 

说明/操作 

OK

状态是可接受的。 

NO DEVICES AVAILABLE

当前没有可呼叫的设备。请检查特定系统的 Devices 文件中是否包含有效设备。请在 Systems 文件中检查用于呼叫系统的设备。

WRONG TIME TO CALL

Systems 文件中指定的时间以外的其他时间对系统进行了呼叫。

TALKING

自解释  

LOGIN FAILED

登录特定计算机失败。原因可能是登录名或口令错误、编号错误、计算机速度较慢,或执行拨号器-令牌对脚本时发生故障。  

CONVERSATION FAILED

会话在成功启动后失败。此错误通常意味着:一端已关闭、程序异常中止或线路(链路)断开。  

DIAL FAILED

远程计算机始终无应答。原因可能是拨号器错误或电话号码错误。  

BAD LOGIN/MACHINE COMBINATION

呼叫计算机时使用的登录名/计算机名与 Permissions 文件中指定的不一致。此错误可能是由于有人试图通过伪装身份进行呼叫而造成的。

DEVICE LOCKED

要使用的呼叫设备当前已锁定且正在被其他进程使用。  

ASSERT ERROR

出现 ASSERT 错误。请检查 /var/uucp/.Admin/errors 文件中的错误消息,并参阅UUCP ASSERT 错误消息一节。

SYSTEM NOT IN Systems FILE

该系统不在 Systems 文件中。

CAN'T ACCESS DEVICE

尝试使用的设备不存在或模式错误。请检查 SystemsDevices 文件中的相应项。

DEVICE FAILED

无法打开设备。  

WRONG MACHINE NAME

被呼叫的计算机报告的名称与期待的名称不同。  

CALLBACK REQUIRED

被呼叫的计算机要求回叫您的计算机。  

REMOTE HAS A LCK FILE FOR ME

远程计算机具有针对您的计算机的 LCK 文件。远程计算机可能正在尝试呼叫您的计算机。如果远程计算机具有旧版本的 UUCP,则与您的计算机对话的进程可能已失败,但保留了 LCK 文件。如果远程计算机具有新版本的 UUCP 且未与您的计算机进行通信,则具有 LCK 文件的进程被挂起。

REMOTE DOES NOT KNOW ME

远程计算机的 Systems 文件中没有您的计算机的节点名。

REMOTE REJECT AFTER LOGIN

您的计算机登录时使用的登录名与远程计算机期待的登录名不一致。  

REMOTE REJECT, UNKNOWN MESSAGE

远程计算机因未知原因拒绝与您的计算机进行通信。远程计算机运行的可能不是标准版本的 UUCP。  

STARTUP FAILED

登录成功,但是初始握手失败。  

CALLER SCRIPT FAILED

此错误通常与 DIAL FAILED 相同。但是,如果经常出现此错误,则可能是 Dialers 文件中的调用程序脚本存在问题。请使用 Uutry 进行检查。

UUCP 数字错误消息

下表列出了 /usr/include/sysexits.h 文件产生的错误状态消息的退出代码编号。uucp 当前仅使用了部分代码编号。

表 26–9 按编号排列的 UUCP 错误消息

消息编号 

说明 

含义 

64

错误消息的基准值 

错误消息从该值开始。 

64

命令行用法错误 

命令使用不正确,例如参数数目错误、标志错误或语法错误。 

65

数据格式错误 

输入数据在某方面不正确。此数据格式只能应用于用户数据,不能用于系统文件。 

66

无法打开输入 

输入文件(不是系统文件)不存在或不可读。 此问题可能还包括诸如邮件程序“找不到邮件”等错误。 

67

地址未知 

指定的用户不存在。此错误用于邮寄地址或远程登录。 

68

主机名未知 

主机不存在。 此错误用于邮寄地址或网络请求。 

69

服务不可用 

服务不可用。 如果支持程序或文件不存在,就会出现此错误。 此消息也可能只是简单地指明出现了某些问题,但当前无法确定原因。 

70

内部软件错误 

检测到内部软件错误。 此错误应仅限于与非操作系统相关的错误(如果可能)。 

71

系统错误 

检测到操作系统错误。发生诸如“不能派生”、“不能创建管道”等情况时可能出现此错误。 例如,此错误包括 getuid 返回 passwd 文件中不存在的用户。

72

缺少关键的 OS 文件 

系统文件(如 /etc/passwd/var/admin/utmpx)不存在,无法打开,或包含错误(如语法错误)。

73

无法创建输出文件 

无法创建用户指定的输出文件。 

74

输入/输出错误 

对某个文件执行 I/O 操作时出现错误。 

75

临时故障。邀请用户重试 

临时故障并非是真正的错误。 例如,在 sendmail 中,这可能表示邮件程序无法创建连接,应在稍后重试请求。

76

协议中的远程错误 

远程系统在协议交换期间返回了不可能出现的内容。 

77

权限被拒绝 

您没有足够的权限执行此操作。 此消息不适用于文件系统问题(文件系统问题应使用 NOINPUTCANTCREAT),而适用于较高级别的权限。 例如,kre 使用此消息限制可发送邮件的学生。

78

配置错误 

系统检测到配置中有错误。 

79

找不到项 

找不到项。 

79

列出的最大值 

错误消息的最高值。