FTP對IPv6和NAT的擴展 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協議能夠運行在不同的網絡協議這上了。 |
RFC2428--FTP對IPv6和NAT的擴展
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.