配置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命令可以改变核心参数的有效值,之后必须重新链接核心并重新启动以使改变生效。