zoukankan      html  css  js  c++  java
  • 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网段挂载,所以挂载不上。

    我把分析报文发给了现场的同事,他和客户沟通了之后,果然证实了我的分析,最终把服务器和客户端接到一个交换机下就正确挂载好了。

  • 相关阅读:
    网络层协议
    交换机原理
    复习
    网络布线和数据转换
    计算机网络参考模型
    Linux常用命令2
    Linux常用命令1
    服务器分类、硬盘分类
    TCP三次握手和断开四次挥手
    向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾。
  • 原文地址:https://www.cnblogs.com/yizhangheka/p/12625394.html
Copyright © 2011-2022 走看看