Bootstrap

Linux:NFS共享存储

目录

一、NFS基本概述

二、NFS共享文件实验

2.1、安装nfs和rpcbind软件

2.2、修改配置文件设置共享

2.3、创建共享目录

​编辑

2.4、开启服务

2.5、客户端验证共享目录可访问

三、tcpdump命令

3.1、概述

3.2、简单表达

3.3、过滤规则

​编辑

3.4、tcpdump常见参数


一、NFS基本概述

NFS是一种基于TCP/IP传输的网络文件系统协议,通过NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。

nfs 端口号 2049
RPC 端口号 111

特点:采用TCP/IP传输网络文件;安全性低;简单易操作;适合局域网环境等。

为什么使用共享存储:

实现多台服务器之间数据共享 ;实现多台服务器之间数据一致。

NFS实现原理 

1、假如访问的是NFS客户端,先调用不同的函数(例如Read()函数,读功能、Write()函数,写功能、

Create()函数,创建功能、Remove()函数、删除功能、Rename()函数,重命名功能)对数据进行处理。

2、调用完函数后,首先NFS客户端会建立TCP连接,通过TCP/IP的方式传递给NFS服务端,连上远端的

服务器。

3、接着NFS服务端接收到请求后,NFS服务器会做3步系列操作(环环相扣,先映射端口,然后验证是

否能登录服务器,最后验证文件使用权限),如下: 首先,调用portmap进程进行端口映射。

接着,调用Rpc.nfsd进程来验证NFS客户端是否拥有对应的权限连接NFS服务端。

最后,调用Rpc.mount进程来验证客户端是否拥有对应的文件使用权限;

4、Portmap进程实现用户映射和压缩

5、最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件。

二、NFS共享文件实验

2.1、安装nfs和rpcbind软件

客户端和服务端都要安装

2.2、修改配置文件设置共享

vim /etc/exports  #NFS 的配置文件为/etc/exports,文件内容默认为空(无任何共享)

常用选项:
rw     ## 表示允许读写
ro      ## 表示为只读 sync 表示同步写入到内存与硬盘中
no_root_squash   ## 表示当客户机以 root 身份访问时赋予本地 root 权限(默认是
root_squash
##如果不加那么客户端无法在里面编辑或写入文件,因为默认以 nfsnobody 的权限
root_squash
##表示客户机用root 用户访问该共享目录时,将 root 用户映射成匿名用户
其它常用选项:
all_squash      ## 所有访问用户都映射为匿名用户或用户组
async       ## 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据
subtree_check (默认) ##若输出目录是一个子目录,则 nfs 服务器将检查其父目录的权限
no_subtree_check
## 即使输出目录是一个子目录, nfs 服务器也不检查其父目录的权限,这样可 以提高效率

2.3、创建共享目录

2.4、开启服务

systemctl start rpcbind
 systemctl start nfs
 systemctl enable rpcbind
 systemctl enable nfs

2.5、客户端验证共享目录可访问

注意:

NFS 客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停

掉了,那么在客户端就会出现执行 df -h 命令卡死的现象。这个时候使用 umount 命令是无法直接卸载的,需要加上 -lf 才能卸载

-l 表示解除正在繁忙的文件系统,-f 表示强制。

三、tcpdump命令

3.1、概述

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的。TcpDump是Linux中强大的网络数据采集分析工具之一。

tcpdump可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具,windows平台有wireshark等工具,tcpdump可以将网络中传输的数据包的“包头”全部捕获过来进行分析,其支持网络层、特定的传输协议、数据发送和接收的主机、网卡和端口的过滤,并提供and、or、not等语句进行逻辑组合捕获数据包或去掉不用的信息。

3.2、简单表达

tcpdump    option        proto         dir                   type

                    选项         协议   数据的方向     抓取的数据类型

协议关键字:包括ip、arp、rarp、udp

数据传输方向的关键字: 包括src、dst、dst or src、dst and src,这些关键字指明了传输的方向;

关于数据类型的关键字: 包括host、port、net。

[root@localhost data]#tcpdump -i ens33

输出格式

11:53:55.288476 IP 192.168.91.1.47496 > localhost.localdomain.ssh: Flags [P.],

seq 261:313, ack 1688848, win 4106, length 52^C

输出格式讲解:

第一列:时分毫秒 11:53:55.288476

第二例:网络协议ip

第三列:发送方IP地址+端口号 ip地址:192.168.91.1 端口号:47496 >表示数据流向

第四列:主机名协议 主机名:localhost.localdomain 协议:ssh

第五列: seq号 ack号 win窗口长度 tcp的标志位

3.3、过滤规则

1.基于ip地址/网段过滤

host选项       dst 选项 目的地址       src 选项 源地址         net 选项

2.基于端口过滤

port 端口号 tcpdump port 80
3.基于协议

protocal

协议种类:ip arp icmp tcp udp

应用层协议不可以直接抓取

3.4、tcpdump常见参数

-i   ##指定监听网络监听端口

-w   ##将捕获信息保存到文件中,且不分析核打印在屏幕上

-r    ##读取上面存储的文件

-n    ##不把ip转换成域名,直接显示ip

-nn   ##直接显示ip和端口号

-t     ##在每行的输出中,不显示时间

-tt    ##输出一个时间戳

时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。

-ttt   ##每行之间的时间间隔

-tttt    ##详细日期

-v      ##产生详细的输出

-c     ##指定收取数据包的数量

-C     ##需要与w 配合使用 指定单个文件的大小 百万字节

-Q     ##过滤数据包的方向 in out inout

-q      ##简洁的输出

-D     ##显示所有可用的列表

-s      ##指定数据包的大小

;