36 FreeBSD连载:PPP协议( 六 )


ttyd0"/usr/libexec/getty std.9600" unknownoff secure
ttyd1"/usr/libexec/getty std.9600" unknownoff secure
ttyd2"/usr/libexec/getty std.9600" unknownoff secure
ttyd3"/usr/libexec/getty std.9600" unknownoff securegetty的第一个参数std.9600指明了串口的各项参数,这个参数在/etc/gettytab中定义,定义了如波特率、校验方式、数据位、停止位以及流控方式等 。缺省使用9600,指明了连接速率为9600bps,现代串口连接通常使用的连接速率要比这个设置高,因此要根据自己的串口和modem的型号,选择gettytab中的更高速率,如std.19200或std.57600 。
更改系统之后,可以使用kill -1 1使FreeBSD重新读取ttys文件,或者重起计算机,才可以使用终端连接 。这时在连接在串口上的终端键盘上按下几次回车键后,字符终端将连接到计算机上,会出现登录提示 。如果没有出现提示,就说明终端设置和使用的gettytab文件中的设置项不匹配,可以更改终端设置或gettytab文件中的设置,使两者使用的校验、停止位、流控等设置选项保持一致 。
如果没有专用的字符终端设备,可以使用终端仿真软件,如Windows下的超级终端,Unix下的minicom等,都能通过串口登录到FreeBSD下 。
可以看到,使用串口连接,那么再加上modem和电话,就能够使得远程计算机能连接到这个FreeBSD系统上了 。对于提供登录服务的计算机来讲,并不会注意一个连接是从串口直接相连的,还是通过modem建立的 。然而这就要设置服务器的modem,必须设置为能进行应答,以接通客户计算机打入的电话来设定连接 。因此必须首先初始化modem,需要使用AT命令AT&C1&D2&S0=1&R2&W 。可以通过minicom或ppp的term模式,直接输入这个AT指令设置modem 。
当双方都配置好串口,连接设置好modem,并且连接上电话线之后,两台远程计算机相连接的准备工作就完成了 。这时可以使用通信软件,例如minicom或kermit,从一台计算机远程登录到另一台计算机上,除了需要拨号,与本地连接没有什么两样 。
设定PPP服务器
如果远程计算机能正常登录进入FreeBSD,那么说明拨号连接没有问题,那么下一步就是分别配置PPP客户端和服务器端 。事实上对于PPP来讲,建立连接之后,客户端和服务器端就没有区别了,区别在于建立连接的过程中,服务器要验证用户的登录并为其分配IP地址等 。
使用用户级PPP和内核级PPP均可实现PPP服务器,由于用户级PPP配置起来更为容易,因此更为常用 。同样,这也需要更改配置文件/etc/ppp/ppp.conf 。
dailserver:
allow users
enable proxy
set ifaddr 192.168.1.64 192.168.1.123以上是一个ppp程序做拨入服务器的设置例子,这个例子中允许普通可以启动这个ppp程序,并打开了代理ARP功能,使其他计算机能通过这个计算机同客户正常通信,为连接上的客户计算机分配IP地址 。
当ppp客户计算机连接到ppp服务器上之后,通过ppp服务器的路由能力,ppp客户就能和外部计算机通信了 。并且两个ppp客户机之间的通信也必须经过ppp服务器转发 。由于在每个ppp客户看来,其他的ppp客户是与它自己位于同一个网段内,因而它就广播ARP请求询问对方的Mac地址,以便进行直接通信 。而在事实上,ppp客户之间并没有物理连接,它们之间无法直接通信,因而广播的ARP请求也不可能传送给目的计算机 。此时,具备代理ARP能力的ppp服务器就能代替某个客户,回应发送ARP请求的客户 。此后这个客户就以为ppp客户的物理地址就为ppp服务器的物理地址,所有的数据包都先转发给ppp服务器,然后它再转发到另一个ppp客户机中 。这个代理内部的计算机回应ARP请求的功能就被称为Proxy ARP,它能够对外隐藏内部的网络结构,如内部子网或ppp连接 。

推荐阅读