网络文件系统服务认证方法

文档序号:7590966阅读:142来源:国知局
专利名称:网络文件系统服务认证方法
技术领域
本发明涉及一种服务器认证方法,特别是涉及一种网络文件系统服务认证方法。
背景技术
网络文件系统(Network File System,NFS)是一种在网络中的机器间共享文件的方式,文件就如同位于客户的本地硬盘驱动器上一样,这意味着它可以把文件系统导出给其它系统,也可以挂载(Mount)从其它机器上导入的文件系统。
NFS对于在同一网络中的多个用户间共享目录很有用途。譬如,一组致力于同一工程项目的用户可以通过使用NFS文件系统(通常被称作NFS共享)中的一个挂载为/myproject的共享目录来存取该工程项目的文件。要存取共享的文件,用户进入各自机器上的/myproject目录。这种方法既不用输入口令又不用记忆特殊命令,就仿佛该目录位于用户的本地机器上一样。
NFS使我们能够在Linux/Unix下共享文件。它的设计是为了在不同的系统间使用,所以它的通信协议设计与主机及操作系统无关。当使用者想用远程文件时,只要用mount命令就可把远程的文件系统挂接在自己的文件系统之下,使得远程的文件使用上和本地机器的文件一样。NFS实际上就是使服务器上的文件能被其它的机器挂载,而达到资源共享的目的,挂载并且使用这些共享文件的机器就可称为客户机。
NFS服务器所共享(export)的目录都记录在用户文件中,文件中记录了export的目录,并且记录了有权使用该目录的客户机和该客户机所具有的权限等信息,我们可以通过编辑这个文件来指定一个目录可以被哪个客户机访问,并且指定其权限。
每一个目录的格式为

例如/shares/dirl 10.190.6.236(rw)/shares/dirl remotehost(ro)表示IP地址为10.190.6.236的客户机可以使用服务器上的/shares/dirl目录,具有读写权限;主机名为remotehost的客户机可以使用/shares/dirl目录,具有只读权限。
当我们启动NFS服务器时,Server会启动exportfs这个程序,读取用户文件,解析每一条记录,处理后记录到系统文件,然后客户机发来请求时,mountd这个守护进程会检索系统文件以确定该客户机的请求是否可以通过认证。
如果我们修改了用户文件后,要手工执行exportfs这个程序或者重新启动NFS服务器以更新系统文件,使得我们的修改发生作用。
请参阅图1,为先前技术中exportfs这个命令解析用户文件并且生成系统文件的过程。首先步骤101读取用户文件;然后步骤102读取该文件的一条记录;步骤103查询DNS(Domain Name System,域名系统),取得主机名称;如果成功,则步骤104把目录名称、主机名称、权限写入系统文件;步骤105判断用户文件是否结束;如果没有结束,则返回步骤102,再读取下一条记录,如果文件结束,则退出。
由图1可以看出,每读取一条记录,都要去查询DNS,以获得该条记录的主机名称,并且把主机名称、目录、权限等按照规定格式记录到系统文件中,如果查询失败,则忽略该记录,继续下一条直到文件结束。
在实际使用中,会出现这样一个问题,如果网络状况不好,或者DNS的设置存在错误的,例如设置了一个不存在的DNS服务器,那么查询DNS会很慢。尤其是后者,查询DNS会暂时得不到响应,直到超时返回,这个过程大概需要30~60秒,甚至更长时间,如果需要解析成百上千条记录,那么等待时间是不能忍受的,每次在修改用户文件或者NFS服务启动时,NFS都要进行这个操作,管理员需要等待很长时间,甚至认为NFS服务发生错误。
请参阅图2,为先前技术中当客户机发来请求时,服务器的认证过程示意图。首先步骤201接收到客户机发出的访问请求;步骤202服务器读取系统文件;然后步骤203读取该文件的一条记录;然后步骤204根据记录中的主机名称查DNS,获取IP地址;如果成功,则步骤205将其添加到一个链表中;然后步骤206判断文件是否结束,如果没有结束,则返回步骤203,读取下一条记录,如果文件已经结束,则步骤207走访(traversal)该链表,搜索和客户机IP地址以及目录相匹配的项;如果找到比配项,则步骤208登录成功;如果没有匹配项,则步骤209登录失败。
经过图1流程的转换,系统文件中记录的是主机名称,而客户机发来的请求包含的是客户机的IP地址,因此服务器对每一条记录都要查询DNS以获得IP,进行后面的比较。
可以看出,频繁的查询DNS会造成效率的低下。而且这个过程同样存在上面的问题,如果DNS设置存在问题,其表现就是客户机发出请求后,等待很长时间没有响应,直到超时,此时,服务器根本无法访问。

发明内容
本发明所要解决的技术问题是提供一种网络文件系统服务认证方法,用以改善因频繁查询DNS而造成的启动缓慢问题,提高NFS服务认证的效率。
为达到上述目的,本发明提供了一种网络文件系统服务认证方法,其特点在于,通过认证流程的改变而减少查询域名系统DNS的次数,提高网络文件系统NFS的认证效率,包括读取用户文件;将该文件的记录写入系统文件;根据客户机的访问请求读取该系统文件中的记录,并将其存为一个链表;走访该链表,搜索与该客户机的IP地址与目录相匹配的项;将发出请求的客户机的IP地址转换为主机名;及根据该主机名走访该链表,搜索和该客户机主机名与目录匹配的项。
上述的网络文件系统服务认证方法,其特点在于,搜索与该客户机的IP地址与目录相匹配的项的步骤,如果搜索到匹配项,则认证成功;否则认证失败。
上述的网络文件系统服务认证方法,其特点在于,搜索与该客户机的主机名与目录相匹配的项的步骤,如果搜索到匹配项,则认证成功;否则认证失败。
上述的网络文件系统服务认证方法,其特点在于,该客户机的请求包含了该客户机的IP地址及其要访问的目录。
上述的网络文件系统服务认证方法,其特点在于,该读取系统文件中的记录的步骤,是将其中每一条记录作为一个节点,节点中保存相关项,相关项中包括有地址和目录,并填充到一个链表中。
上述的网络文件系统服务认证方法,其特点在于,该走访链表并搜索与该客户机的IP地址与目录相匹配的项的步骤,如果没有与请求目录相匹配的项,则直接返回认证失败。
上述的网络文件系统服务认证方法,其特点在于,如果该客户机的IP地址及转换后的主机名与该链表中项皆不匹配时,将该客户机的IP地址记入一个先入先出队列,该客户机下次发出请求时,则根据查询该队列记录的结果,直接返回认证失败。
上述的网络文件系统服务认证方法,其特点在于,该先入先出队列中,对每一条记录,还包括一插入队列中的时间记录。
上述的网络文件系统服务认证方法,其特点在于,该查询先入先出队列时,设定一超时值,每次访问该队列前,删除在队列中记录的插入时间与当前时间之差已经大于该超时值的记录。
上述的网络文件系统服务认证方法,其特点在于,该将客户机IP地址转换为主机名的步骤,还进一步包括如下步骤在先出先出队列中查询客户机IP地址记录;如果有与该客户机IP地址相匹配的项,则根据该记录的插入时间判断是否该记录已经超时;如果没有超时,则直接返回认证失败,如果已经超时,则删除该条记录及插入时间更早的所有记录;查询DNS以获取该客户机IP地址代表的主机名称;及如果查询DNS失败,则将该客户机IP地址及当前时间作为一条新的记录放在该先出先出队列尾。
本发明的技术效果在于本发明通过改变系统文件的生成流程,不需查询DNS,能够解决DNS异常时不能实时更新该文件,以及由此引起的NFS启动缓慢的问题,而且还改变了mountd认证客户机请求的流程,减少查询DNS的次数,提高效率,同时,在内部维护一个队列,如果DNS不能够返回客户机地址,就将该地址和当前时间记录到队列,下一次该客户机发来的请求就不必查询DNS,直接返回认证失败,大大体高了相应速度。
下面结合附图进一步详细说明本发明的具体实施例。


图1为先前技术中exportfs命令解析用户文件文件并且生成系统文件的流程图;图2为先前技术中当客户机发来请求时,服务器的认证流程示意图;图3为本发明之网络文件系统服务认证方法流程图;图4为本发明解析用户文件文件并且生成系统文件的流程图;图5为本发明之处理客户机请求的流程图;图6为本发明利用超时值来转换IP地址的流程图。
其中,附图标记说明如下步骤101读取用户文件步骤102读取该文件的一条记录步骤103查询DNS,取得主机名称步骤104把目录名称、主机名称、权限写入系统文件步骤105判断用户文件是否结束步骤201接收到客户机发出的访问请求步骤202服务器读取系统文件步骤203读取该文件的一条记录步骤204根据记录中的主机名称查DNS,获取IP地址步骤205添加到一个链表中步骤206判断文件是否结束步骤207走访该链表,搜索和客户机IP地址以及目录相匹配的项步骤208登录成功步骤209登录失败步骤301读取用户文件步骤302将该文件的记录写入系统文件步骤303根据客户机的访问请求读取系统文件中的记录,并将其存为一个链表步骤304走访该链表,搜索与该客户机的IP地址与目录相匹配的项步骤305将目录匹配但IP地址不匹配的客户机IP地址转换为主机名步骤306根据该主机名走访该链表,搜索和客户机主机名与目录匹配的项步骤401 exportfs程序打开用户文件步骤402读取文件中的一条记录,直接写入该文件步骤403判断文件是否结束步骤501客户机发来请求步骤502保存地址和目录以及其它相关项,填充到一个链表步骤503读取所有记录后走访链表,查看每一个节点的地址项和目录项是否和客户机请求中的IP和目录匹配步骤504是否发现有某个节点的目录项和客户请求的目录相同步骤505把客户机IP地址转换为主机名称步骤506判断转换是否成功步骤507主机名称是否匹配步骤508认证成功步骤509认证失败步骤601在队列记录中搜寻客户机IP步骤602获取当前系统时间,减去记录中的时间项,得出该记录存在时间步骤603是否大于超时值步骤604将该条记录以及之前的记录删除步骤605查询DNS获取主机名称步骤606查询成功步骤607获取当前时间,用IP和时间产生一条新的记录放在队列尾步骤608转换失败步骤609转换成功具体实施方式
请参阅图3,为本发明的网络文件系统服务认证方法流程图,首先步骤301读取用户文件;步骤302将该文件的记录写入系统文件;接着步骤303根据客户机的访问请求读取该系统文件中的记录,并将其存为一个链表;然后步骤304走访该链表,搜索与发出请求的客户机的IP地址与目录相匹配的项;步骤305将发出请求的客户机的IP地址转换为主机名;最后步骤306根据该主机名走访该链表,搜索和该客户机主机名与目录匹配的项。
在上述流程中,与先前技术相比,本发明针对传统的如图1及图2所示的两个流程分别做了改进。
首先请参阅图4,为本发明解析用户文件并且生成系统文件的流程图,首先步骤401exportfs程序打开用户文件;然后步骤402读取文件中的一条记录,不做改动,按照etab文件的要求直接写入该文件;步骤403判断文件是否结束,直到读取所有记录;完成文件操作。与原来的流程相比,这个过程没有查询DNS的操作。
再请参阅图5,为本发明的处理客户机请求的流程图。首先步骤501客户机发来请求,请求中包含了要访问的目录以及本机器的IP地址;步骤502,这个请求是被NFS服务的mountd处理的,mountd读取系统文件,把其中的每一条记录作为一个节点,节点中保存地址和目录以及其它相关项,填充到一个链表;步骤503读取所有记录后走访链表,查看每一个节点的地址项和目录项是否和客户机请求中的IP和目录匹配;如果发现有节点符合,则步骤508返回认证成功,给予客户机对应权限。如果没有找到,步骤504判断一下比较过程中是否发现有某个节点的目录项和客户请求的目录相同;没有则步骤509说明客户请求访问的目录不存在或者没有被输出(export),直接返回认证失败。由于本发明在图4中的流程中,没有把主机名称转换为IP地址,因此节点中的地址项存储的可能是主机名称也可能是IP地址,所以匹配不成功可能是因为地址项存储的是主机名称,因此需要再比较一次。需要步骤505把客户机IP地址转换为主机名称;然后步骤506判断转换是否成功;如果转换失败,步骤509返回认证失败。成功步骤507再走访链表,比较目录匹配的节点中,主机名称是否匹配;没有找到则步骤509返回认证失败,找到则步骤508返回认证成功。
如果DNS异常,那么客户机第一次发来请求时,服务器会查询DNS,结果当然是失败,此时可以把该客户机IP地址记入一个先入先出队列,下次发来的请求就不再查询DNS,直接返回认证失败。但是为了避免出现DNS设置发生改变,该客户机可以被正确解析,而列表中仍然记录该地址的情况,设定了一个超时值,每次查询队列时会清除超时的记录。
本发明的实施例里使用了一个先入先出的队列,队列的每一条记录主要包括两项内容IP和插入到队列的时间,例如下表所示

另外可以设定一个超时值,每次访问队列时,删除在队列中的时间大于超时值的记录,这个时间可以根据实际情况自己制定,例如设置为1800秒左右。
请参阅图6,为本发明利用超时值来转换IP地址的流程图,首先步骤601在队列记录中搜寻客户机IP;如果发现该IP存在,则说明该IP曾经被DNS解析失败,需要判断该记录是否超时失效,步骤602获取当前系统时间,减去记录中的时间项,得出该记录存在时间,步骤603判断是否大于超时值,如果没有超时,则步骤608直接返回失败,不再查询DNS;如果超时,由于是先进先出队列,因此之前的记录也一定超时,因此步骤604将该条记录以及之前的记录删除,然后步骤605查询DNS获取主机名称,并且步骤606判断是否成功;如果失败,步骤607获取当前时间,用IP和时间产生一条新的记录放在队列尾,然后步骤608返回转换失败,如果步骤606成功则由步骤609返回转换成功。
以上所述仅为本发明的较佳实施例,并非用来限定本发明的实施范围;凡是依本发明所作的等效变化与修改,都被本发明的专利范围所涵盖。
权利要求
1.一种网络文件系统服务认证方法,其特征在于,通过认证流程的改变而减少查询域名系统DNS的次数,提高网络文件系统NFS的认证效率,包括读取用户文件;将该文件的记录写入系统文件;根据客户机的访问请求读取该系统文件中的记录,并将其存为一个链表;走访该链表,搜索与该客户机的IP地址与目录相匹配的项;将发出请求的客户机的IP地址转换为主机名;及根据该主机名走访该链表,搜索和该客户机主机名与目录匹配的项。
2.根据权利要求1所述的网络文件系统服务认证方法,其特征在于,搜索与该客户机的IP地址与目录相匹配的项的步骤,如果搜索到匹配项,则认证成功;否则认证失败。
3.根据权利要求1所述的网络文件系统服务认证方法,其特征在于,搜索与该客户机的主机名与目录相匹配的项的步骤,如果搜索到匹配项,则认证成功;否则认证失败。
4.根据权利要求1所述的网络文件系统服务认证方法,其特征在于,该客户机的请求包含了该客户机的IP地址及其要访问的目录。
5.根据权利要求1所述的网络文件系统服务认证方法,其特征在于,该读取系统文件中的记录的步骤,是将其中每一条记录作为一个节点,节点中保存相关项,相关项中包括有地址和目录,并填充到一个链表中。
6.根据权利要求1所述的网络文件系统服务认证方法,其特征在于,该走访链表并搜索与该客户机的IP地址与目录相匹配的项的步骤,如果没有与请求目录相匹配的项,则直接返回认证失败。
7.根据权利要求1所述的网络文件系统服务认证方法,其特征在于,如果该客户机的IP地址及转换后的主机名与该链表中项皆不匹配时,将该客户机的IP地址记入一个先入先出队列,该客户机下次发出请求时,则根据查询该队列记录的结果,直接返回认证失败。
8.根据权利要求7所述的网络文件系统服务认证方法,其特征在于,该先入先出队列中,对每一条记录,还包括一插入队列中的时间记录。
9.根据权利要求7所述的网络文件系统服务认证方法,其特征在于,该查询先入先出队列时,设定一超时值,每次访问该队列前,删除在队列中记录的插入时间与当前时间之差已经大于该超时值的记录。
10.根据权利要求1所述的网络文件系统服务认证方法,其特征在于,该将客户机IP地址转换为主机名的步骤,还进一步包括如下步骤在先出先出队列中查询客户机IP地址记录;如果有与该客户机IP地址相匹配的项,则根据该记录的插入时间判断是否该记录已经超时;如果没有超时,则直接返回认证失败,如果已经超时,则删除该条记录及插入时间更早的所有记录;查询DNS以获取该客户机IP地址代表的主机名称;及如果查询DNS失败,则将该客户机IP地址及当前时间作为一条新的记录放在该先出先出队列尾。
全文摘要
本发明公开了一种网络文件系统服务认证方法,通过认证流程的改变而减少查询域名系统DNS的次数,提高网络文件系统NFS的认证效率,包括读取用户文件;将该文件的记录写入系统文件;根据客户机的访问请求读取该系统文件中的记录,并将其存为一个链表;走访该链表,搜索与该客户机的IP地址与目录相匹配的项;将发出请求的客户机的IP地址转换为主机名;根据该主机名走访该链表,搜索和该客户机主机名与目录匹配的项。本发明通过认证流程的改变而提高了网络文件系统的服务认证效率。
文档编号H04L12/24GK1684424SQ20041003105
公开日2005年10月19日 申请日期2004年4月12日 优先权日2004年4月12日
发明者刘文涵, 宋建福, 姚爱国 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1