存储基础网络 及 FTP服务 详解
存储基础网络介绍
1、总概
DAS:Direct Attached Storage
# 接口类型:“block”,只有块接口能分区和格式化,挂载使用
# 设备:SATA,SAS;IDE,SCSI;USB
NAS:Network Attached Storage
# 接口类型:"file"
# 协议:CIFS(samba), NFS(Network File System)
# RPC: Remote Procedure Call(重要概念)
SAN:Storage Area Network
# 接口类型:"block"
# 协议:iSCSI(IP-SAN), FCSAN, FCoE, ...
应用层:
# ftp, ...
2、直接存储(Direct Attached Storage)
直接存储时,存储设备与主机的紧密相连。
- 管理成本较低,实施简单
- 储时直接依附在服务器上,因此存储共享受到限制
- CPU必须同时完成磁盘存取和应用运行的双重任务,所以不利于CPU的指令周期的优化,增加系统负担
3、网络连接存储(Network Attached Storage)
通过局域网在多个文件服务器之间实现了互联,基于文件的协议( FTP、NFS、SMB/CIFS等 ),实现文件共享。
- 集中管理数据,从而释放带宽、提高性能
- 可提供跨平台文件共享功能
- 可靠性较差,适用于局域网或较小的网络
4、存储区域网络(Storage Area Networks,SAN)
利用高速的光纤网络链接服务器与存储设备,基于SCSI,IP,ATM等多种高级协议,实现存储共享。
- 服务器跟储存装置两者各司其职
- 利用光纤信道来传输数据﹐以达到一个服务器与储存装置之间多对多的高效能、高稳定度的存储环境
- 实施复杂,管理成本高
什么是文件共享服务?
简单来说就是文件或存储块设备可以共享给大家使用。
1、实现共享服务常用的有三种
- ftp:属于应用层服务,可以跨平台使用(linux<->unix<->windows)
- Nfs:属于内核模式,不可以跨平台(linux<->linux)
- Samba:可以跨平台使用(linux<->unix<->windows)
2、实现存储设备域服务器连接的方式有三种
- DAS:连接的磁盘
- NAS:通过nfs/cifs协议实现网络文件共享(文件存储方式)电子邮件、网页服务器多媒体流服务、档案分享等就适用于NAS存储架构
- SAS:通过网线或光纤实现ISCSI和FCSAN将物理存储设备连接起来使用(块存储方式较底层,需要格式化并挂载当本地磁盘使用)数据库有关的应用适用于SAN存储架构
FTP
1、FTP 介绍
ftp:file transfer protocol
,文件传输协议。
2、FTP 两类连接介绍
- 命令连接:传输命令(ftp 服务器端用的是20号端口,客户端使用随机端口N)
- 数据连接:传输数据(ftp 在主动模式下服务器使用的是21号端口,客户端使用是随机端口N+1)(被动模式下是服务器端端口是随机的)
3、FTP 两种模式介绍
主动模式:PORT
Server: 20/tcp连接客户端的命令连接使用的端口向后的第一个可用端口
命令连接 # 客户端:随机port ---> 服务器:tcp21
数据连接 # 客户端:随机port <--- 服务器:tcp20
-
主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始 监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
-
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
被动模式:PASV
Server:打开一个随机端口,并等待客户端连接
# Server 通过 21 号端口告诉客户端,服务器端打开另外一个端口,你可以来进行连接,进行数据传输
命令连接 # 客户端:随机port ---> 服务器:tcp21
数据连接 # 客户端:随机port ---> 服务器:随机port
被动访问示例:
# 服务器会传递两个数字给客户端,可通过计算得出其服务器端口:
227 Entering Passive Mode (172,16,0,1,224,59)
# 服务器数据端口为:
224*256+59
示例:
03:16:54.409764 IP 172.16.141.252.21 > 172.16.141.99.63582: Flags [P.], seq 354:407, ack 97, win 227, options [nop,nop,TS val 610401588 ecr 2070474], length 53: FTP: 227 Entering Passive Mode (172,16,141,252,169,111).
0x0000: 28d2 4470 abbe e43a 6e0a 9b88 0800 4500 (.Dp...:n.....E.
0x0010: 0069 ec34 4000 4006 dad9 ac10 8dfc ac10 .i.4@.@.........
0x0020: 8d63 0015 f85e 8edd 20b0 83b5 cea2 8018 .c...^..........
0x0030: 00e3 5c9b 0000 0101 080a 2461 fd34 001f ..\.......$a.4..
0x0040: 97ca 3232 3720 456e 7465 7269 6e67 2050 ..227.Entering.P
0x0050: 6173 7369 7665 204d 6f64 6520 2831 3732 assive.Mode.(172
0x0060: 2c31 362c 3134 312c 3235 322c 3136 392c ,16,141,252,169,
0x0070: 3131 3129 2e0d 0a 111)...
[root@neo vsftpd]# ss -t
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 248 172.16.141.252:ssh 172.16.141.99:55025
ESTAB 0 0 ::ffff:172.16.141.252:ftp ::ffff:172.16.141.189:50701
ESTAB 0 0 ::ffff:172.16.141.252:ftp ::ffff:172.16.141.99:64168
-
为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。
-
当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
-
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求