NFS故障處理


NFS協議故障分析

前言

下面是最近我遠程在我們市某個高校機房處理的一則故障,我覺很有意思,分享一下。

此篇文章不過多解釋NFS的一些基礎操作,有關基本操作和基本概念請看我另一篇博文: https://www.cnblogs.com/yizhangheka/p/12079312.html

環境描述

NFS-SERVER 192.168.80.10
CLIENT 192.168.77.11
[root@nfs-server ~]# uname -r
3.10.0-957.el7.x86_64

[root@client ~]# uname -r
3.10.0-957.el7.x86_64

操作

服務器端的操作是現場的同事發給我的,我先貼出來,如下。

NFS-SERVER

//給NFS准備好專門的用戶www,是為了前后端統一用戶。
groupadd -g 666 www
useradd -g 666 -u 666 -M -s /sbin/nologin www

//准備好分享的目錄,並設置好權限
[root@nfs-server ~]# mkdir /data
[root@nfs-server ~]# chown www:www /data

//安裝nfs-utils並編寫配置文件
[root@nfs-server ~]# yum -y install nfs-utils
[root@nfs-server ~]# vim /etc/exports
/data 192.168.77.0/24(rw,all_squash,anonuid=666,anongid=666) 

//啟動nfs-server並驗證是否啟動成功,最后加入開機啟動
[root@nfs-server ~]# systemctl start nfs-server
[root@nfs-server ~]# systemctl enable nfs-server
[root@nfs-server ~]# systemctl status nfs-server | grep active
 Active: active (exited) since Fri 2020-04-03 10:37:23 CST; 15s ago

通過查看服務器端的配置,我發現我們現在的同事還是相當嚴謹的。

CLIENT

客戶端一直在報這個錯誤,無法掛載。

[root@client ~]# mount -t nfs 192.168.80.10:/data /cli_data/
mount.nfs: access denied by ……

但是,其它都是正常的,從客戶端到服務器的111端口、1234端口、2049端口全都是通的,並且showmount也能正常顯示,但就是無法掛載。

[root@client ~]# telnet 192.168.80.10 111
Trying 192.168.80.10...
Connected to 192.168.80.10.

[root@client ~]# telnet 192.168.80.10 1234
Trying 192.168.80.10...
Connected to 192.168.80.10.

[root@client ~]# telnet 192.168.80.10 2049
Trying 192.168.80.10...
Connected to 192.168.80.10.

[root@client ~]# showmount -e 192.168.80.10
Export list for 192.168.80.10:
/data 192.168.90.0/24

111端口通暢說明portmap正常、1234端口通暢說明mount正常、2049端口通暢說明nfs正常,也間接說明沒有防火牆攔截。

在掛載被拒絕的時候另開一個終端,通過tcpdump抓取NFS的數據包

[root@client ~]# tcpdump -i eth0 -w /tmp/nfs.cap

抓下來之后通過wireshark打開發現服務器端的IP是192.168.80.10沒有問題,但是客戶端的IP卻不是 192.168.77.11,而是192.168.80.11,這個80.11是哪些來的?我恍然大悟,兩個網站不在同一個網段,中間很有可能存在了S-NAT地址轉換,將客戶端的源地址192.168.77.11轉換成了192.168.80.11,但服務端卻不允許192.168.80.0網段掛載,只允許192.168.77.0網段掛載,所以掛載不上。

我把分析報文發給了現場的同事,他和客戶溝通了之后,果然證實了我的分析,最終把服務器和客戶端接到一個交換機下就正確掛載好了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM