NFS的原理

 NFS(network filesystem)是由sun公司開發的,其作用是在網絡當中可以將想要開發的目錄共享給別人,這樣使得訪問者訪問nfs服務器上的東西就像訪問本地的文件一樣,在將文件公開給別人的時候就會引起數據安全問題,但nfs有其權限管理機制。只要將權限管理做好,文件劃分清晰,對安全問題就高枕無憂了。

        NFS並不是單獨存在的,它和另外2個模塊共同存在,試想兩臺網絡當中的主機如何進行通訊,當然只有通過ip+port來發送數據。

        包括NFS在內,這三個模塊分別是NFS,RPC,PORTMAP。NFS只負責將數據通過以文件系統的方式共享出去,並進行登錄管理和權限管理,並不負責數據的傳輸,而數據的傳輸則有RPC來完成。試想遠程客戶端在進行鏈接的時候需要知道哪個端口可用,以便將可用的端口用於NFS數據傳輸(NFS的數據傳輸方式有端口來完成),而負責維護可用端口與遠程主機的映射關係則是有PORTMAP的完成的。

         NFS的兩個子模塊,登錄管理和權限管理分別是由rpc.nfsd和rpc.mountd這兩個子模塊來完成的。在nfs的啓動代碼當中可以看到這兩個程序的存在。
        
         不難想出,NFS的工作流程是,遠程客戶端進行nfs請求,RPC獲得請求,通知PORTMAP來獲取端口號,然後PORTMAP將可用的端口號傳給NFS、RPC,然後NFS模塊再進行權限檢驗,如果有足夠的權限,RPC就通過PORTMAP給出的端口進行數據傳輸,並通過該端口到達客戶端。

        nfs的幾個模塊大致是這樣協調的,具體的權限管理,模塊配置則可以通過具體的配置文件來完成,如/etc/exports,/var/lib/nfs/xtab等等。

        參考《鳥哥的linux私房菜》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章