FTP對IPv6和NAT的擴充

來源:互聯網
上載者:User

1. 介紹

FTP 僅僅提供了建立在IPv4上進行資料通訊的能力,它基於網路地址是32位這一假設。但是,當IPv6出現以後,地址就比32位長許多了。原來對FTP進行的擴充在多協議環境中有時會失敗。我們必須針對IPv6對FTP再次進行擴充。本文主要說明一種在非IPv4上傳送資訊的方法,我們熟悉的兩個FTP命令 PORT和PASV通過擴充後,我們稱它們為EPRT和EPSV。

2. EPRT命令

EPRT考慮到資料連線的擴充地址問題,擴充地址必須包括網路通訊協定以及網路和傳輸地址。格式如下:

EPRT<空格><d><網路通訊協定><d><網路地址><d><TCP連接埠><d>

EPRT後要跟空格,空格後面必須是分隔字元<d>,分隔字元必須在ASCII的33到126範圍之內。推薦使用|,除非它已有它用。網路通訊協定是一個數字,它指出使用的是什麼協議。具體資料如下:

1=IPv4;2=IPv6;

網路地址是在指定網路通訊協定下的相應地址,在IPv4和IPv6下地址分別如下格式:

IPv4=132.235.1.2;IPv6=1080::8:800:200C:417A

TCP連接埠指的是協議在哪一個TCP連接埠上偵聽資料連線。下面是兩個EPRT命令的例子:

EPRT |1|132.235.1.2|6275|

EPRT |2|1080::8:800:200C:417A|5282|

第一個命令在TCP連接埠6275上用IPv4開啟主機"132.235.1.2";第二個命令在TCP連接埠5282上用IPv6開啟主機"1080::8:800:200C:417A"。

在接收到合法的EPRT命令後,伺服器必須返回200(命令合法)。標準的錯誤碼500和501已經足夠處理大部分錯誤了,但是還需要一個錯誤碼,代碼522指定伺服器不支援要求的網路通訊協定,新錯誤碼的解釋如下:

5yz 交換資訊結束

x2z 串連

xy2 擴充座錯誤:未知的網路通訊協定

響應的文本部分必須說明伺服器啟動並執行協議是什麼,響應串的格式如下:

<說明不支援的網路的字串> /

(協議1,協議2,...,協議n)

上述的數字代碼和在括弧內的協議資訊由軟體自動控制接收響應;而在數字代碼和'('之間的內容供人類使用者處理。其後的協議表中的協議應該以逗號分隔。下面是兩個響應串的例子:

Network protocol not supported, use (1)

Network protocol not supported, use (1,2)

3. EPSV命令

EPSV 請求伺服器在一個資料連接埠上偵聽等待串連,它可以帶參數。對它的響應是TCP連接埠號碼。響應的格式與EPRT參數的很象。這對實現上有很大的方便。而且響應還留下了網路通訊協定和/或網路地址的空位,可以供以後使用。使用擴充地址進行被動模式的響應碼必須是229,對它的解釋如下:

2yz 主動完成

x2z 串連

xy9 進行擴充的被動模式

 

響應的格式如下:

 

<指示伺服器已經進入初擴充的被動模式> /

(<d><d><d><TCP連接埠><d>)

包括在括弧內的字串必須是EPRT開啟資料連線的連接埠。具體如上所未,這裡就不多說了。資料連線使用的協議必須和控制串連使用的協議和地址一致,下面是響應的一個例子:

Entering Extended Passive Mode (|||6446|)

標準錯誤代碼500和501對EPSV已經足夠了。在EPSV命令沒有使用參數時,伺服器會基於控制串連所使用的協議選擇資料連線使用的網路通訊協定。但是在有代理的情況下,這種機制可能不合適。因此客戶也需要能夠要求一個指定協議。如果伺服器返回說明它在指定連接埠不支援此協議,客戶必鬚髮送ABOR(放棄)命令使伺服器關閉串連,然後客戶再使用EPSV命令要求使用特定的網路通訊協定,具體格式如下:

EPSV<空格><網路通訊協定>

如果請求的網路通訊協定是伺服器支援的,那就必須使用此協議;如果不支援,則返回522。最後,EPSV命令可以使用參數"ALL"通過網路地址翻譯器,EPRT命令不再使用。下面是例子:

EPSV<空格>ALL

接收到此命令後,伺服器要拒絕除了EPSV以外所有建立串連的命令。在下一節我們將詳細說明此命令的功能。

4. 命令使用

對於所有在兩台相同機器間建立控制和資料連線的FTP傳輸來說,必須使用EPSV。使用它可以減少通過防火牆和網路地址翻譯器(NAT)對效率的影響。有些文章推薦在防火牆後使用被動命令,因此防火牆通常不允許主動串連。在本文中定義的EPSV命令不需要NAT在傳輸時對網路地址進行改變。如果使用 EPRT,NAT必須改變網路地址。如果客戶發送了"EPSV ALL"命令,NAT能夠將串連變為快速方式,只要再不使用EPRT,就不需要對資料區段的資料部分進行改變。如果客戶希望進行兩路FTP傳輸,應該使用這條命令,如果後來客戶需要建立三種FTP傳輸,必須新開啟了個FTP會話。

5. 安全

基本上看不出這樣的擴充對安全會的什麼樣的影響。

總的來說,這個擴充使FTP協議能夠運行在不同的網路通訊協定這上了。

 

From: http://www.longen.org/e-k/detaile-k/FfpExtendOnIPv6.htm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.