1. 程式人生 > >FTP主動模式和被動模式在VRP上實現(實驗、報文和理論解析)

FTP主動模式和被動模式在VRP上實現(實驗、報文和理論解析)

理解 客戶 warning 簡述 查看 inf 要求 sep mac

嗯~點關註不迷路

1.簡述主動模式的FTP建立連接的主要步驟

技術分享圖片
圖1-19 FTP主動模式示意圖
基本原理
FTP(文件傳輸協議)的特殊性:
大多數的TCP服務是使用單個的連接,一般是客戶向服務器的一個周知端口發起連接,然後使用這個連接進行通訊。但是,FTP協議卻有所不同,它使用雙向的多個連接,而且使用的端口很難預計。一般,FTP連接包括:
一個控制連接(control connection) ,它使用服務器的21端口,生存期是整個FTP會話時間;另外一個傳輸數據為工作在端口20的連接
主動模式
PORT模式即主動模式,工作原理以及步驟:1)FTP客戶端連接到FTP服務器的21端口,發送用戶名和密碼登錄;2)登錄成功後使用命令查看或者準備索取數據;3)客戶端隨機開放一個端口(1024以上),發送 PORT命令到FTP服務器,告訴服務器客戶端采用主動模式並開放端口;4)FTP服務器收到PORT主動模式命令和端口號後,通過服務器的20端口和客戶端開放的端口連接,發送數據。該工作工程如圖1-19所示。在華為設備上實現FTP也是該模式,我們在華為設備上實現一個基本的FTP文件傳輸(很多時候用於備份或者升級VRP系統文件的場景,本位置拓撲可參考圖1-13)

服務器端(地址為12.1.1.2):

ftp server enable
aaa
 local-user ftp1 password cipher %$%$h;oSNQ<7#B2!>vNyIO;T7Ucl%$%$
 local-user ftp1 privilege level 15
 local-user ftp1 ftp-directory flash:
 local-user ftp1 service-type ftp
客戶端測試:
<AR1>ftp 12.1.1.2
Trying 12.1.1.2 ...
Press CTRL+K to abort
Connected to 12.1.1.2.
220 FTP service ready.
User(12.1.1.2:(none)):ftp1
331 Password required for ftp1
Enter password:
230 User logged in.

[AR1-ftp]
[AR1-ftp]get ssl***.zip #從R2下載文件

如上的例子我們可以查看報文可以清晰的看到FTP21端口的控制命令和FTP 20端口的FTP數據傳輸
技術分享圖片
圖1-20 FTP主動模式工作在端口21的控制連接
技術分享圖片
圖1-21 FTP主動模式工作在端口20的數據傳輸
小技巧:FTP的主動模式是傳統的FTP方式。在此,考生可以參考圖解向考官表明該過程。另外給大家分享一個乾頤堂作業體系中一名學員針對FTP作業的故事:FTP的21端口號就像員工的老大,老大讓做什麽就做什麽,而FTP的20端口號就像下面的員工一樣,照做就是。這也是一個很生動的例子
為了保持完整性,我們在此也簡要描述一下FTP的被動模式,即PASV模式,是Passive的縮寫,工作原理:FTP客戶端連接到FTP服務器的21端口,發送用戶名和密碼登錄,登錄成功後要list列表或者讀取數據時,發送PASV命令到FTP服務器, 服務器在本地隨機開放一個端口(1024以上),然後把開放的端口告訴客戶端, 客戶端再連接到服務器開放的端口進行數據傳輸。區別就在於是服務器開放了一個隨機端口(而非20)。

2.簡述被動FTP的主要步驟

實際上FTP的主動模式或者被動模式可以在FTP軟件定義
一個華為VRP上被動FTP的例子

[R1]ftp server enable  //服務器地址10.0.0.1
aaa
 local-user ender password cipher %$%$BdT"SX\el/M~v\YVt;%%C1D{%$%$
 local-user ender privilege level 15
 local-user ender ftp-directory flash:
 local-user ender service-type ftp
客戶端測試(客戶端地址10.0.0.3)
<SW1>ftp 10.0.0.1
Trying 10.0.0.1 ...
Press CTRL+K to abort
Connected to 10.0.0.1.
220 FTP service ready.
User(10.0.0.1:(none)):ender
331 Password required for ender.
Enter password:
230 User logged in.

[ftp]
[ftp]
[ftp]
[ftp]pass
[ftp]passive //切換到被動模式
Info: Succeeded in switching passive on.

[ftp]dir 
227 Entering Passive Mode (10,0,0,1,198,23).
125 ASCII mode data connection already open, transfer starting for *.
drwxrwxrwx   1 noone    nogroup         0 Sep 28 12:46 dhcp
-rwxrwxrwx   1 noone    nogroup    121802 May 26  2014 portalpage.zip
-rwxrwxrwx   1 noone    nogroup      2263 Sep 28 12:44 statemach.efs
-rwxrwxrwx   1 noone    nogroup    828482 May 26  2014 ssl***.zip
drwxrwxrwx   1 noone    nogroup         0 Sep 28 12:46 .
226 Transfer complete.
[ftp]get  statemach.efs
Warning: The size of file statemach.efs is as same as the remote one. Overwrite it? [Y/N]:y
227 Entering Passive Mode (10,0,0,1,194,182).
125 ASCII mode data connection already open, transfer starting for statemach.efs.
226 Transfer complete.
FTP: 2263 byte(s) received in 11.830 second(s) 191.29byte(s)/sec.

[ftp]quit

主動方式是指在建立數據連接時由服務器主動發起連接請求,並要求客戶端和服務器端同時打開端口以建立連接;被動方式是指在建立數據連接時由客戶端主動發起連接請求,且只要求服務器端產生一個連接相應端口的進程
通過報文理解被動模式
技術分享圖片

FTP主動模式和被動模式在VRP上實現(實驗、報文和理論解析)