cyberfan's blog

正其谊不谋其利,明其道不计其功

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  15 随笔 :: 489 文章 :: 44 评论 :: 0 Trackbacks
配置PPP点对点协议(Point to Point Protocol)

PPP 协议是SLIP ( 串行协议网际协议)的后继,PPP变成了异步网络通信的工业标准。

PPP的特点:

l 允许IP数据包在串行或电话线上传输

l 知道如何对modem拨号来实现拨输出连接请求,绾斡Υ?/span>modem来实现拨入连接请求

l 可被配置为监督线路,当一段时间内没有数据包发送时挂断线路

l 提供网络管理的许多便利

配置UUCP文件

配置PPP 之前,首先要配置UUCP 文件。因动态拨出(dynamic outgoing) PPP连接使用UUCP工具来选择正确的modem,对其设置并拨号,以与远端系统建立连接。动态拨入(dynamic incoming) PPP连接使用UUCP工具来设置modem以接收拨入呼叫。

配置UUCP 文件方法:

1. UNIX 的工具

# mkdev modem 设置 Devices文件

# scoadmin -- networks -- ppp 设置Systems 文件

2. 可用vi命令对文件进行编辑

3. 可用/etc/uuinstall工具来配置或修改文件。

1. Devices文件

UUCP软件在文件/usr/lib/uucp/Devices中列出了可用于与远端系统建立连接的所有设备。该文件为文本文件,包括以下两类项:

l 连接到机器上的modem列表

l 与其它机器直连的串行线

为设置动态PPP连接,通常使用modem,如不考虑项的类别,文件中的每一项都包含以下五个域:

type 为通过modem建立PPP,该域必须为"ACU",即

automatic call unit。

Ttylin 指定modem所连的串口名字。例如,如果modem

在第二个标准的PC串口上,则该域为/dev/tty2A。

Dialerline 如果modem不能自己拨号,可在此域指定电话拨

号器所在串口的名字,现代modem都能拨号,故

该域为"-",表示无另外的拨号器。

speed 在该域填写modem和串口共同支持的最高速率,并不一定等于modem

远端系统相连接的速率。

dialer-token 为通过modem建立PPP,该域必须为拨号器程序的绝对路径名,拨号器

序知道如何发送相应的代码到modem以进行拨号并解释结果。SCO在

/usr/lib/uucp目录中提供了许多常用的modem的拨号器程序,这些程序以

dial或atdial开头。

#mkdev modem

2. Systems文件

UUCP系统使用文件/usr/lib/uucp/Systems列出与本地主机通过直连线或modem相连的远端系统的名字。每一项包括:

l 所建立连接的类型(modem或直连线)

l 连接的速率

l 如为modem连接,所拨的电话号码

对于动态拨入(dynamic incoming) PPP连接,不需在该文件中建立对应项,而对于动态拨出(dynamic outgoing) PPP连接,则需建立。各项的格式为:

sitename 被呼叫的机器名字,即在远端主机上使于带-n标志的uname命

时所报告的文字。

schedule 对于拨出(outgoing) PPP连接,将该域设为"Any"。

device 对于动态PPP拨出,该域为"ACU",表示为modem,如果通过

直连串行线实现动态PPP连接,该域为串口设备的名字。

speed 与远端系统相连所使用的速率,该速率值应与预先建立的Devices

文件中相应项的速率兼容。

phone 所连机器的电话号码。

login-script 该域用于与远端系统协商登录。它包括你希望远端系统发给你的

一系列提示符,如login:,和你希望作为对这些提示符的响应,发

给远端系统的信息,如nppp。

#scoadmin --- networks --- ppp

3. 使用uuinstall (ADM)和对UUCP设置进行测试

正如前面所提到的,你可以使用菜单驱动的uuinstall命令来建立Devices文件和Systems文件。uuinstall命令:

l 允许你选择所修改的文件

l 提示你每个域的值

l 检查无效的项,并对你提出警告

l 一旦Devices和Systems中的项被建立,允许通过菜单选择Test connection with remote site来测试连接。

  如果呼叫失败,指出并修改问题所在,然后再次测试。也可通过以下命令行来进行测试:

/usr/lib/uucp/uutry -r system

system为你所测试的连接的远端系统名。

4 建立PPP接口

一旦UUCP文件已被建立以支持PPP,你可以运行scoadmin命令并执行以下步骤来配置实际的PPP接口:

步骤 Networks -- Network Configuration Manager --

Add new WAN connection -SCO TCP/IP PPP driver -- 从PPP

connection Type中选择PPP连接类型,并单击OK按钮。

Dynamic outgoing 动态拨出

Dynamic incoming 动态拨入

Dedicated 直连

Manual outgoing 手工拨出

对于单一的系统,每种类型可以有多个接口,每个接口在/etc/ppphosts文件中都会有对应的一项。

Local host name 到Destination IP address 各域

"Local host name", "Host IP address", "Destination name"和"Destination IP address"这四个域是互相联系的,并根据是否对链路的一端或两端使用动态IP地址而有所不同。

如果你希望链路的一端或两端使用动态IP地址,那么:

步骤1 将相应的"name"域留空。

步骤2 将相应的"IP address"域填为0.0.0.0。

如果你希望固定链路的一端或两端的IP地址,那么:

l 在PPP链路对应端的"name"域和"IP address"域中填入所期望的名字和IP地址。每个网络接口都应有唯一的名字和IP地址。

Network Configuration Manager将建议名字格式为ppp_machine, "machine"为主机名,另一种更常用的命名规则为将"_ppp#"添加到主机名后,这里#为PPP接口的序号。并不一定非要在"name"域填写,但最好填写。

l "name"域的值将成为该接口的名字,如使用DNS或NIS将需要在与接口相应的文件中手工创建数据项。

ppphosts文件包含系统中每个PPP链路相对应的项,每项的第一个域称为"link name"域,当按OK按钮以创建接口时,该域的内容被填入。

l "linkname"域的格式为:dest_name: local_name

l dest_name和local_name分别包含"Destination name"和"Local host name"域的值。

l 如果两个"name"域中有空,相应的IP地址将会代替name。

Netmask域

"Netmask"域设置该接口的网络掩码,如该域被设置,则/etc/ppphosts文件中将用"mask=网络掩码"的格式来记录,这里网络掩码以4个"点分十进制"字段来表示,即如用ifconfig命令时所看到的。如该域未设置,则缺省值255.255.255.0将被使用。

UUCP destination name域

"UUCP destination name"域指明/usr/lib/uucp/Systems文件中的哪一项被用来拨号并登录到远端系统。如该域被设置,则/etc/ppphosts文件中将以"uucp=系统名"的格式来记录,这里系统名与Systems文件中的一项相匹配。如该域未设置,则上述的"Destination IP Address"域的值将作为其缺省值来使用。

Number of UUCP retries域

"Number of UUCP retries"域指定UUCP系统在放弃连接尝试之前,应该被呼叫多少次以建立dynamic outgoing link。如该域被设置,则/etc/ppphosts文件使用"retry=次数"格式来记录,这里次数即为希望UUCP试图建立连接的次数。如该域未设置,则使用缺省值2。

Gateway 域

"Gateway"域允许你指明主机是否作为网关来工作。只有当你已经配置了另一个网络接口时,该域才会出现,将其设为Yes(缺省值)将会以inconfig命令来打开ipforwarding和ipsendredirects这两个核心参数。

下面是拨出的配置:

Attach name: ispname

Local hostname: scosysv

Host IP address: 192.168.88.102

Destination Name: ppp_server

Destination IP address: 192.168.88.200

Netmask : 255.255.255.0

UUCP Destination name :scolo

Numbers of UUCP retries: 5

Gateway: <> Yes <*> No

在 Advanced Options 中可选择 Debug level 为2 ,Line flow Control

为 rtscts , 即硬件流控。

5. 动态拨出链路(Dynamic outgoing links)

Dynamic outgoing links用于当你需要在数据包要求被发送到PPP链路的远端时,该链路能自动建立和挂断。Dynamic outgoing links可用于以下几种情况:

l 主机需要初始化一个以上的连接时

l 链路两边的IP地址都是固定的

其设置与Manual outgoing links的配置相似,但有以下几点不同:

l "Attach name"域不存在,这是因为当一个IP数据包要通过该链路发送时,由pppd守护进程来建立该链路。

l 如以前所讨论的,Dynamic outgoing links不支持动态IP地址,因此,表格中的所有"name"和"address"域必须填写。

6. 动态拨入链路(Dynamic incoming links)

当一个或更多的主机通过modem以PPP拨入你的主机时,需在你的主机上配置Dynamic incoming links。

其设置与Dedicated link相似,只是没有"TTY line for PPP"和"Baud rate"域,而多了"PPP login name"域。

"PPP login name"域的内容在/etc/ppphosts文件中作为"Link name"域(该项的起始域)来记录,格式为*login,这里login为该域所键入的文本。

当远端主机通过PPP登录进你的主机时,发生以下情况:

步骤1 远端主机给出帐户名,该帐户已在你的主机上创建,其shell为/usr/lib/ppp/ppp。

步骤2 远端主机给出相应的口令字。

步骤3 shell /usr/lib/ppp/ppp 被启动,以对所用的登录名称确认。

步骤4 当在/etc/ppphosts文件中找到该登录名时,以该文件中所列出的相应链路参数来建立链路。

在设置过程中,如果键入"PPP login name"域内的名称并不存在,则Network Configuration Manager将问你是否要建立该帐户,如果创建该帐户,将赋予正确的shell。

如果希望对应于不同的链路,使用不同的"非协商高级参数集",则需要为每个链路指定一个不同的登录名。同时远端主机需要使用不同的登录名来获取相应的参数。

配置Dynamic incoming link与配置其它类型的PPP最大的区别在于"name"域被如何记录。由于该类型包含登录名的配置,所以"name"域的值在/etc/ppphosts文件中以下列格式来记录:

local=lip_addr remote=rip_addr

这里lip_addr和rip_addr为"Local host name"和"Destination name"域的值,如果"name"域为空,则相应的"address"域的值将被使用。

注意:SCO OpenServer Release 5的PPP不能通过使用前面所讨论过的将IP地址设为全0的方法来实现Dynamic incoming link上的动态IP地址协商,而是通过使用2.6节的"ppppool文件"来实现。

ppppool文件

对于dynamic incoming连接,可以根据/etc/ppppool文件中列出的IP地址来设置连接两端的IP地址。为使一个PPP接口实现动态IP地址协商,/etc/ppphosts文件中相应的dynamic incoming项应该增加两个域:

noipaddr remote=+ "标识符"

该标识符指明/etc/ppppool文件中的一项,/etc/ppppool包含一组项,每一逻辑行为一项,每项的格式为:

tagname local: remote [local: remote...]

这里:tagname唯一地标识一个地址表

local和remote为IP地址对,两者以":"隔开。

逻辑行长度可以超越一个物理行,通过在物理行的结尾加入一个"\"来进行扩展。

当建立PPP连接时,pppd搜索/etc/ppppool文件中相应逻辑行的IP地址对,一旦找到一个未被使用的IP地址对,那么就把它们分配给链路的两端。

如果没有找到有效的IP地址,则PPP连接失败。

在我们的例子中,bardados可以在它的/etc/ppphosts文件中增加一项:

noipaddr remote=+inbound

并且它的/etc/ppppool文件中包含如下项:

inbound 200.100.50.100: 200.100.50.101 200.100.50.100:200.100.50.102\

200.100.50.100:200.100.50.103 200:100:50:100: 200.100.50.104

该项指定本地IP地址总为200.100.50.100,但远端地址可在200.100.50.101至200.100.50.104之间变化。

pppfilter文件

当两个LAN通过接口互连,并且其中一个LAN不是很安全时,好在两个LAN之间建立防火墙,在与ISP相连的情况下,尤其如此。

"包过滤"可以看作建立防火墙的一块砖,它使pppd守护进程能够选择哪些数据包可能通过PPP接口进行传输和接收:

l 导致一个PPP接口被建立

l 导致一个timeout计时器被启动以保持一个PPP连接

l "包过滤"基于:

² 传输协议

² 源或目标IP地址

² 源或目标端口号

² 数据包的长度或类型

"包过滤"可以针对每个PPP接口,配置为不同的情况。

在我们的例子中,barbados与Internet的PPP接口可以使用"包过滤",而其它普通的PPP接口的"包过滤"配置可以不同,甚至普通PPP接口可以不设置"包过滤",关于"包过滤"的其它讨论不在本课程范围之内。

3. 核心参数

当SCO主机上使用高速串行通信时(例如PPP运行于串行线路)有两个核心参数需要调整:

TTHOG 决定串行设备驱动器的raw输入队列的大小,它限制了在不丢失字符的情况下,输入队列中数据量的最大值。缺省为256,显然对于PPP是不够的,至少应为2048,可能需要4096或更高。

NCLIST 串行设备驱动器可用的64byte cblock的数量。并不是所有的串行接口卡驱动器都使用该参数,NCLIST的值可用下列公式计算:

NCLIST= old_NCLIST+

(TTHOG*number_of_fast_serial_ports/64)

以-y和-a参数来执行sar命令可以确定这两个参数是否过低。使用configure命令可以改变核心参数的有效值,之后必须重新链接核心并重新启动以使改变生效。
posted on 2005-08-15 14:58 cyberfan 阅读(395) 评论(0)  编辑 收藏 引用 所属分类: linux/unix
只有注册用户登录后才能发表评论。