RFC2428 FTP對IPv6和NAT的擴充套件

2021-04-14 13:45:01 字數 2343 閱讀 9661

ftp對ipv6和nat的擴充套件

1. 介紹

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

2. eprt命令

eprt考慮到資料連線的擴充套件位址問題,擴充套件位址必須包括網路協議以及網路和傳輸位址。格式如下:

eprt《空格》《網路協議》《網路位址》

eprt後要跟空格,空格後面必須是分隔符,分隔符必須在ascii的33到126範圍之內。推薦使用|,除非它已有它用。網路協議是乙個數字,它指出使用的是什麼協議。具體資料如下:

1=ipv4;2=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 進行擴充套件的被動模式

響應的格式如下:

《指示伺服器已經進入初擴充套件的被動模式》 /

() 包括在括號內的字串必須是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協議能夠執行在不同的網路協議這上了。  

對ipv6的一些理解

因為使用ppoe的網路的獲取的ipv4位址一向是10.開頭的私有ip,所以雖然有ipv6,還以為在公網是無 法訪問的,近來嘗試一翻,成功在手機流量訪問了nas的服務,下面總結一些理解。1 ipv6只有2 3開頭的位址才是可在公網訪問的,乙個介面卡可能有多個ipv6位址 2 ipv6分網路號段與主機段...

c 對ipv4和ipv6位址的相容處理

目前ipv6的應用越來越廣泛,慢慢將變成強制的標準,做網路應用開發的,在未來會越來越的要開始支援ipv6,但是ipv6肯定不是一下子就可以大範圍應用的,必然有一段時間ipv4與ipv6共存,要做到對ipv4和ipv6的同時支援。關於如何讓程式支援ipv6 可以參考 示例 見 這個文章只講如何相容ip...

沒證據表明美歐對發展IPv6不積極

關於全球 ipv6發展不 理想的原因,乙個流行的說法是 美歐發達國家因為 ipv4 位址資源充足,因此不積極。先進國家不積極,別人也沒法。ipbaobao 根據2009 底最新的 ipv4 和ipv6 關於ipv4 1 ipv4 位址擁有總量。top10 依次是 美國 中國 日本 德國 南韓 加拿大...