36 FreeBSD连载:PPP协议( 五 )


pppd使用网络界面ppp0,当然可以在内核配置中增添配置值并重新编译核心,就可以根据需要增加可使用的ppp界面的数量 。例如将可以使用的ppp界面改变为3个,则内核配置文件应包括 “pseudo-deviceppp3”,这样在重新编译内核,建立相应的设备文件并重新启动后,就可以使用ifconfig命令来查看可以利用的网络界面:
# ifconfig -a
ppp0: flags=8010 mtu 1500
ppp1: flags=8010 mtu 1500
ppp2: flags=8010 mtu 1500
lo0: flags=8008 mtu 16384
inet 127.0.0.1 netmask 0xff000000内核还可以配置ppp界面在传输时对ppp数据进行压缩,事实上用户级ppp和内核级ppp都支持传输压缩,但内核级ppp多支持两种方式,一种是ppp的BSD压缩标准,另一种为delalte压缩标准 。一般都可以在内核配置中加上这两个选项,使ppp连接中可以使用这些选项,以提供更高的传输效率 。那么内核配置文件中的ppp相应配置应包括:
pseudo-deviceppp3
options PPP_BSDCOMP
options PPP_DEFLATE内核级ppp使用的配置文件也放在/etc/ppp目录下,文件名为options,此外各个用户可以使用自己的配置文件~/.ppprc 。
# cat /etc/ppp/options
defaultroute
domain example.com.cn
crtscts
modem
deflate 12,12
idle 300
lock defaultroute项将在ppp连接设定之后,将缺省网关设置为PPP服务器上;domain设置本机的域名;crtscts告诉ppp使用modem的硬件流量控制,如果硬件不支持这种方式,就只好使用另一种软件流量控制方式为xonxoff;modem行使ppp使用DCD信号来判断连接是否正常,有无掉线现象;deflate使pppd使用defalte压缩方式;idle设置了一个时间限制,当在300秒的时间内没有数据传送,就断开连接;lock则创建一个锁定文件,其他程序在发现存在这个文件后,就能得知相应的串口已经被使用 。
配置好配置文件之后,就可以使用pppd进行连接了:
# pppd /dev/cuaa1 57600 connect "chat -f /etc/ppp/chat.script" user pppuser缺省情况下,使用pppd命令立即进行拨号连接,在超过idle参数设定的时间内没有数据传送的条件下断开连接并退出 。然而在options文件中可以使用persist参数告诉pppd建立一条永久连接,或者使用demond参数告诉pppd停留在后台,监视网络数据,一旦有要求就立即进行连网,超时后就断开连接,但pppd仍然停留在后台等待下次数据传送 。这两种形式分别等价于ppp程序的ddial和auto模式 。
拨号访问FreeBSD
FreeBSD不但能够能通过PPP协议和远程拨号服务器相连接,也能够提供拨号服务,让其他计算机能够拨入本机 。事实上PPP协议本身,并不没有区分客户机和服务器,PPP服务器只需要比客户机多完成一些额外的工作,如用户认证、分配IP等 。然而PPP必须建立在已经设定好的连接上,而为了设定连接,拨号服务器和客户端的设置就有不同的地方 。首先在硬件上,服务器上的modem必须能接受连接,建立物理连接,然后服务器和客户软件要进行额外的验证过程,最后双方才启动ppp,设定ppp连接 。
接受拨号终端访问
早期的Unix使用字符终端访问主机,将字符终端通过串口连接到计算机上之后,就能通过这些终端登录进Unix系统了 。但是FreeBSD下缺省屏蔽了串口的终端登录过程,要完成这个任务,管理员还必须更改/etc/ttys文件,为串口指定一个getty进程,以监视串口,一旦发现有连接请求,便立即启动登录进程login接受用户的登录 。
在/etc/ttys中有下面的行是与串行端口相关的,对应于个人计算机的四个串口,使用getty进程进行监控,但缺省状态为off,并没有打开这个功能 。如果要使用某个串口进行终端连接,就需要改变相应行的设置为on,同时还可以改变第三列中的终端类型设置及最后一列的安全设置 。

推荐阅读