36 FreeBSD连载:PPP协议( 三 )


delete all指出删除不必要的路由配置,add 0 0 HISADDR指出将缺省路由设为对方的地址,由于使用动态IP时,在建立连接前对方的IP是未知的,因此使用HISADDR代替 。如果已知拨号服务器的IP地址,也可以直接填上这个IP地址 。也可以不将拨号服务器作为缺省路由,而只将它作为对某个子网的路由,那么在这个配置中就不可以使用0作为IP地址和网络掩码,必须使用正确的IP地址和子网掩码进行设置 。例如add 192.168.1.0 255.255.255.0 HISADDR,就将对方作为通向192.168.1子网的路由器 。事实上这些设置路由的指令等价于执行对应的route指令,以设置路由,如route add 192.168.1.0 HISADDR -netmask 255.255.255.0 。
然而对于动态分配IP的情况,问题在于在ppp进行拨号的时候,对方的IP地址HISADDR还没有确定,因此这些设置路由的指令往往不能正确执行 。必须在拨号完成,建立了PPP连接之后,HISADDR才能确定,因此设置路由的命令应该放在更合适的位置:ppp连接建立之后立即执行的文件ppp.linkup中 。
MYADDR:
delete 0
add 0 0 HISADDR
192.168.1.98:
add 192.168.1.0 0 HISADDR
chinanet:
delete ALL
add 0 0 HISADDR
!bg /etc/ppp/ppp.fetchemailppp.linkup文件格式与ppp.conf文件相同,它在PPP连接建立后执行,执行与拨号使用的标签相同的项,以及客户获得的地址为标签的项 。通常使用MYADDR表示本机得到的IP地址,因此这个标签下的内容都将执行;而192.168.1.98项表示获得这个地址时增加下面的路由,最后一项以chinanet为标签,与ppp.conf相同,表示进行这个chinanet拨号后执行的相关动作,其中包括在后台执行的取邮件的脚本ppp.fetchmail 。
如果拨号服务器要求使用PAP或CHAP认证,而不是普通的登录认证方式,则要在ppp.conf中的使用不同的配置选项:
chinanet:
set phone 163
set login
set authname pppuser
set authkey key123
set timeout 120
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
delete ALL
add 0 0 HISADDR使用authname和authkey来定义PAP或CHAP认证方式下的用户名和口令,就能连接到使用PAP或CHAP的拨号服务器,而具体使用哪种认证方式则由拨号服务器决定 。
进行拨号连接
设置了针对具体拨号连接的配置之后,拨号就非常方便了,直接使用该拨号服务的标签进行操作 。
# ppp
ppp > dial chinanet
PPP >使用ppp的dial命令发起连接之后,ppp连接被建立,提示符也由原来的小写ppp>变为大写PPP>,这就表示PPP连接已经正确设立了 。这个时候如果使用ifconfig进行查看,就可以看到网络界面tun0已经设置正确,并可以使用了 。
当要结束连接时,使用close或quit命令关闭连接 。结束连接时将执行/etc/ppp目录下的ppp.linkdown脚本 。ppp.linkdown脚本和ppp.linkup格式相同,都会依据相同的标签执行操作 。
如果使用者租用了一条模拟专线,专门用于Internet连接 。这样就不希望每次传输时都重新进行连接,而希望建立一条永久连接,ppp在后台自动拨号连接到Internet上,并一直维护这个连接 。这样就可以使用-ddial参数启动ppp 。
# ppp -ddial chinanet-ddial参数使得ppp立即使用相应参数对应标签设置的拨号连接建立永久连接,而不管有没有实际的数据传输 。而绝大多数情况下,使用者并没有租用专线,还是希望在有数据传输时才建立网络连接,在没有数据传输时断开网络连接,以减少电话连接时间 。这样就可以使用-auto参数启动ppp 。
# ppp -auto chinanet这样启动的ppp将一直停留在后台,但并不立即进行连接,而是在应用程序发出网络请求时才进行拨号,这个网络请求的目的地址应该在chinanet标签定义的网络地址范围内 。而如果一段时间内没有任何数据传输,就断开连接(这个时间由set timeout命令设置,单位为秒) 。

推荐阅读