本備忘錄的狀態
本備忘錄提供Internet通訊所需的信息,它并不指定Internet的某一方面的標準。本備
忘錄的發布不受任何限制。
版權聲明
Copyright(C)TheInternetSociety(2001).AllRightsReserved.
摘要
這個注釋的主要作用是使網絡現有的對32位ipv4地址空間的解釋更清楚,自從它最初
被定義后,它的意義已經發生了本質的改變。將有一小節介紹IPv6與IPv4地址的主要的相
似點和不同點。
目錄
1.介紹 2
2.術語 2
3.標準的屬性 3
4.縱覽IPv4地址空間的現狀 3
4.1.地址不再全局唯一定位 4
4.2.地址不再全是臨時唯一. 5
4.3.多播和廣播. 5
4.4.小結 6
5.IPv6討論 6
附錄: 7
對IPv4地址分配和路由的正確實踐。 7
安全性討論 8
鳴謝 8
參考書 8
作者地址 10
1.介紹
這個注釋的主要作用是使網絡現有的對32位IPv4地址空間的解釋更清楚,自從它最初
在1981年[RFC791]被定義后,它的意義已經發生了本質的改變。
這個解釋將有助于協議設計者,產品制造商,Internet服務提供商和用戶站點。它的目
的是隨著Internet近幾年的成指數級的增長所帶來的實質上的改變,避免大家對IP地址的誤
解。將有一小節介紹IPv6與IPv4地址的主要的相似點和不同點。
2.術語
在計算機網絡中,目錄,命名,網絡地址和路由的概念是顯然不同的,必須被獨立的分
析[RFC1498]。然而,“網絡地址”(從這里開始縮寫為“地址”)的定義可以被細分為至少
兩個的觀點也是很重要的,命名“標示”和“定位”,在rfc791出版以前這個可能是少為人
知的。
在這篇文檔中,術語“主機”指是產生或終止IPv4包的系統,“路由”指的是一些轉
發IPv4包從從一個主機或路由到其它主機或路由的系統。
就這篇文檔的目的,一個“identifier”是貫穿兩個主機之間一次交流會話的整個生存時
間的位串,去標示其中的一個主機就如討論的另一個一樣。一個標示用于驗證輸入包的源(主
機)對交流的另一方是真正毫無疑問的,例如:在偽TCP頭[RFC793]或在IP安全協會
[RFC1825]。習慣上,在每一個數據包中的源IPv4地址中都用于此目的。
注重有時另一個“identifier”的定義被使用。這篇文檔不著重討論。結束點標示符的一
些事情。
就這篇文檔而言,“locator”是一個位串,用于確認在什么地方一個特定的包必須不同。
例如:它的服務器在網絡拓撲結構中去定位可聯結目標主機的位置。習慣上,在每一個數
據包中的IPv4目標地址都用于此用途。IP路由協議說明了IPv4地址作為定位和路由表的
組成是基于那些分配路徑的(它們有自己的定位)要求去知道一條通往特定主機定位的路徑。
標示和定位都需要唯一性,但彼此的需要是不同的,一般認為標示必須在一系列互相交
流的主機中保持唯一,而定位必須在每一個互相交流的路由(我們叫它路由區域)中保持唯
一。同時定位必須在一個給定的路由區域中保持唯一,這種唯一性(不是可路由性)可以
擴展到更多的區域。這樣相對于一系列定位不唯一(復用)的區域,我們更輕易區分一系列
唯一定位的區域。
標示和定位都需要生存時間,但它們的需要是不同的。標示必須在兩個互相交流的主機
的最大生存時間內有效。定位只要在路由的機械設備需要的時候有效就可以(在一次通訊中
它可以比生存時間短或長一些)。
還有一個歷史的偶然的事實必須注重,在RFC791和RFC793中標示和定位在IP頭(源
和目的地址)中都用同樣的地址空間和字段表示,在傳統的Internet主機中,標示可以用定
位來表示,這正如空間的唯一性(單一的)和暫時的唯一性(永恒不變的)。
這些唯一性條件在路由(IPv4的定位可用的基礎)和傳輸協議(一些依靠IP進行連接
的)的設計和假設中起了很大的影響。一個地址的空間唯一性是說它為接口標示和一個主機
的標示服務,就好象要害字對路由表的作用。一個地址的暫時的唯一性是說對于TCP實現
來說不象IP地址一樣,需要保持關于遠端的狀態。所以IP地址可以被用于端到端的IP安
全性和綁定到上層會話。
一般來說,IPv4地址用做定位比用做標示更加重要,無論什么時候,在兩種使用之間
發生沖突時,定位的使用是主要的。也就是說,在分發一個數據包時它已經被認為更加有效。
接著該擔心提供一個不能被分發的數據包時如何去標示端點。換句話說,在路由協議中這將
是集中工作,在地址習慣用法的其它方面幾乎沒有什么具體的工作。
3.標準的屬性
無論上面提到的什么規范,很輕易理解標示和定位的標準的屬性。標示應該在一開始就
分配,永不改變,永不被重用。定位用于描述主機在網絡拓撲結構上的位置,無論什么時候
都可以隨著拓撲的改變而改變。
不幸的是沒有一個上述的標準可以在IPv4地址中看到。這篇文檔其余部分將對現在流
行的現狀做簡要介紹。
4.縱覽IPv4地址空間的現狀
事實上,IPv4地址不再是全局唯一的,也不是都有無限的生存時間。
4.1.地址不再全局唯一定位
RFC1918顯示公司的網絡是如何工作的,a.k.a.內部局域網,也許適當的重用一個
IPv4地址空間的子集來形成多路由區域是有必要的。在兩個(或更多)的路由區域邊
界,我們可以找到一個用于使區域之間的交流可用的設備的范圍。
在一個范圍的結尾是一個純粹的應用層網關(ALG),這樣的設備作為應用層數據
流的端點,對終端用戶是可見的。例如:當在路由區域A的終端用戶Ua想與在路由區
域B的終端用戶Ub交流的時候,Ua首先明確的同A與B之間交流的ALG建立連接,
只有經過這樣Ua可以和Ub建立通信。我們稱呼這樣的網關為“不透明的”ALG.
另一種形式的ALG與終端用戶的通訊是透明的。用上面的例子,在一個透明的
ALG,在開始和Ub通信前,Ua將不需要明確的和ALG建立連接。這樣將建立對Ua
透明的連接,使的Ua將只可以看到與Ub的連接。
為了完成的目的,注重經過ALG的通訊并不是導致網絡頭的改變的必要的原因,
一個ALG僅僅用于在一個會話開始時的認證,在離開ALG后,通訊將自然的繼續進
行。
不透明和透明的ALG都需要(通過定義)理解應用數據流的對象和語義。從網絡
層結構看來,ALG是很簡單的,在每一個區域中它們將表現為Internet主機,例如:它
們作為通訊的始端和終端。
在系列的另一方面是關于網絡地址轉換(NAT)[RFC1631]。在這個文檔中我們定
義NAT作為一個設備,它僅僅修改網絡層和傳輸層頭,但它不清楚應用層數據流的對
象/語義(用我們的術語也就是描述在RFC1631上的一個同時具有NAT和ALG的功
能設備。)。
作為一個標準,NAT被用在使用私有地址的公司網絡[RFC1918]和使用公用地址
的Internet之間,NAT改變發往Internet的數據包的源IPv4地址,也改變來自Internet
的數據包的目的IPv4地址。當一個NAT采用地址復用技術用在互相聯絡的路由區域
時,例如:在兩個內部網的直線連接時,NAT將修改雙方的IP頭中的地址。既然NAT
修改IP頭中的地址,NAT同樣也修改傳輸(例如:TCP,UDP)偽頭的效驗和。經過觀
察可以發現,當互相聯絡的路由區域采用地址復用時,在網絡和傳輸頭的一系列操作被
NAT完成同時做為一個透明的ALG完成在網絡層和傳輸層的一系列操作的子集。
通過定義,NAT不清楚一個應用數據流的對象和語義。因此,NAT不支持在應用
層傳輸IP地址的應用(例如:FTP的PORT或者PASV命令[RFC959])。另一方面,
NAT可以支持一些不在應用層傳輸IP地址的應用。比較而言,ALG只支持應用代碼。
可以斷定NAT和ALG都有自己的限制,這個可以限制它們的用處,把NAT和
ALG的功能合用在一個簡單的設備可以克服一些,但不是全部限制。這個設備可以用
NAT功能進行不傳輸IP地址的應用,當處理傳輸IP地址的應用時則依靠ALG功能。
例如:一個這樣的設備將用NAT功能去處理FTP數據連接,同時用ALG功能去處理
FTP控制連接。然而,這樣一個設備將不能完全處理一個傳輸IP地址的應用,當設備
不支持經過ALG功能的應用時,寧愿處理它用NAT功能。
通過ALG或NAT的通信也包括改變網絡頭(特指源和目的地址),同樣轉換傳輸
頭。既然IP安全認證頭假設在網絡頭的地址是被端到端的預先保留,通過ALG或NAT
我們不清楚在通信的一對主機中該如何支持基于安全的IP認證。既然IP是安全的,當
用于信任時加密端到端的整個傳輸層,還是不清楚ALG和NAT是如何根據它們的要求
修改加密數據包的。換句話說,在用于認證和信任時,ALG和NAT在兩個不同的IP
安全域中都被強制分界,除非設計了用于此目的非凡的增強的IP安全策略。
經過ALG和NAT進行中間連接的路由區域依靠DNS[RFC1035]。非凡的,對于
一個給定的(中間連接)路由區域,哪怕在整個系列中網絡層地址不再是唯一的,高質
量的域名服務需要唯一性的存在于整個系列中。然而,一個運行NAT和ALG的站點
可能需要兩個DNS服務器,一個是NAT或ALG內部的,一個是其外部的,對標示的
查詢給出不同的答案。更具體的討論看[kre]。DNS安全[RFC2065],同時假設動態
DNS更新[dns2]在NAT/ALG邊界不在有效,所以,我們必須假設外部的DNS服務器
通過其它的機器獲得了至少一部分的路由表。
作為總結,自從RFC1918,我們還沒有真正的改變過地址空間的唯一性,就好象
公認是有多個空間,例如:通過NAT或ALG(看上面的討論)每個空間一直是個路由
區域比如是個內部網,可能連接到別的內部網,或者是Internet,地址的暫時的唯一性
在RFC1918中仍沒有改變。
4.2.地址不再全是臨時唯一.
注重,一旦地址的意義在地址空間的某個地方改變,在每個地方都會有一些現象改
變。事實上這個已經發生了。
IPv4地址塊是為許多年分配的年代史,例如:在網絡拓撲更為有效。這個導致路
由表的持續的增長;難以伸縮。今天階級路由(CIDR[RFC1518],[RFC1519])作為一個
在路由區域中提高路由的伸縮性的設備。尤其是在Internet中。(附錄對CIDR有具體
的解釋)。
可伸縮性的CIDR基于地址分配對網絡拓撲的最大影響的假設,地址信息集合的邊
界不再需要用一個簡單的組織填充,--他們可能跨過多個組織(例如:提供者和他的用
戶)。因此,假如一個用戶改變他的供給者,然后可以避免在Internet路由系統中添加
附加的頭,用戶需要被重新編號。
改變提供者只是被重新編號的一個可能。信息文檔[RFC1900]顯示為什么重新編
號是一個不斷增長的事件。在DHCP[RFC154]和PPP[RFC]中升級了動態地址分配的
使用。
總而言之,隨著DHCP和PPP的發展和進化,而且重新編號好象是將成為一個一
般事件,IP地址的意義已經深深的被改變了。空間的唯一性也將一樣,只要地址一直
是有效的定位。不能再保證暫時的的唯一性,它可能非常的短,很有可能比一個TCP
連接時間還短。就這方面看,IP地址不再是一個好的標示。這將對端到端的安全有些
影響,而且將破壞通用的TCP形式。
4.3.多播和廣播.
既然我們討論多播[RFC1112],我們必須把對IP地址意義的爭論轉化為對源和目
標地址的意義的思考。一個目的多播地址(例如:一個拓撲中的的擴展到主機組的定位)
可以經過一個NAT,而且它不必限定在一個內部網(或者在公共Internet)。它的生存
時間也很短。
一個廣播地址的概念具有語義上定位任何施行相等的功能的一組系統的一個地
址。,它永遠不可能作為一個在本文定義的標示來服務,所以它不是唯一的標示主機。
就這一方面來說,暫時的的唯一性,或有用的生存時間對一個IP地址的影響將是比建
立一個TCP連接更短的時間。
在這里,我們已經用TCP簡單的描述了一個聯合的想法—許多基于應用的UDP
(或在IP之上的別的系統層)在接受或發送第一個數據包以前分配狀態,基于源和/
或目標。所有的都被暫時唯一性的存在所影響,而僅僅只有路由結構受空間唯一性改變
的影響。
4.4.小結
網絡的經常的重組取決于動態地址的分配和不斷的增長,IPv4地址的暫時的唯一
性將不再是全局授權,而只是將他們的使用作為標示放在服務請求中。空間在路由區域
中的唯一性根據內部網的增加來決定不再授權,中間路由區域經過ALG或者NAT而逐
漸完善。在這種規則下,這樣的相互連接比直接連接的內部網將有更少的功能。實踐中,
功能的不同可能是也可能不是什么事情,依靠于分散的環路。
5.IPv6討論
正如暫時的的唯一性的討論(好象標示的行為),IPv6的模型與IPv4的模型很相似,只
不過多了些。IP6將在IPv6主機中提供自動配置IPv6地址的機制。前綴的改變,需要全局
所有的主機的IPv6地址在一個給定的前綴下改變,這是可以想象的。因此,IPv6將擴大這
個存在的問題:去尋找穩定的標示用于端到端的安全和如TCP狀態會話綁定。
IAB感覺這是不幸運的,而且到IPv6的轉換將是提供端到端的暫時的唯一標示的高層
協議一個理想的原因。這些標識符的準確的天性要求更深的學習。
正如對空間唯一(好似定位的行為)關心,IPv6地址空間是如此的大以致于地址的短
缺,查詢接近于RFC1918的類似地址轉換,是難于想象的。雖然并不缺少IPv6地址,在
IPv6[RFC1884,第2.4.8節]仍然有一個定義好的機制去包容硬件-本地地址和網站-本地地
址。IPv6的這些屬性不能阻止從IPv6中分離路由區域,假如這樣描述(在多安全域的結果)。
在現有情形下,我們不能標示一個在多IPv6路由區域中將需要的原因,它也很難于給定一
個預先定義的答案對是否將只有一個,或者多于一個IPv6路由區域。假如假設將有多于一
個的IPv6路由區域,這種區域將通過ALG和NAT互相連接。考慮到在IPv4中,這樣ALG
和NAT表現為標示。
附錄:
對IPv4地址分配和路由的正確實踐。
初始化IP地址結構,同時IP路由將圍繞網絡數目分類的想法來設計(A/B/C類網)
[RFC790]。在Internet90年代早期的成長要求了兩個方面的重要性的改進,在Internet
路由系統的可伸縮性上,就好象對IP地址空間的利用。IP地址空間的類結構化和路由
按類分配導致相對需要得到不充分的結果,所以,在1992-1993年代,Internet接受了
無階級的內部域路由(CIDR)[RFC1380],[RFC1518],[RFC1519]。CIDR成就了一
個新的地址分配方案,新的路由協議,和一個新的IP地址結構。
CIDR通過在獨立子網和網絡的基礎上擴展了階級路由的想法來提高Internet路
由系統的伸縮性。答應路由信息的集合不只停留在獨立子網和網絡的層次上。同時在獨
立站點的層次上,就比如在ISP(Internet服務提供商)的層次上。所以一個組織(站
點)能在組織以內為所有目的充當一個集成者。同樣的,一個提供者在他的用戶內可以
成為所有的目標的集成者(建立到提供者的直接連接)。
擴展階級路由的想法到獨立的站點和提供者層次,答應站點和提供者作為路由信息
(需要改變地址分配過程)和路由協議的集成者。在早期的CIDR中,在獨立網絡數字
層的基礎上分配個站點地址時沒有對地址集成的需要做任何考慮,基于CIDR的地址分
配建議地址分配時應該這樣做:用站點和提供者去作為地址信息的集成者,這樣的分配
是“基于集成”。為了從“基于集成”的地址分配方案受益,CIDR介紹了一個中間域
路由協議(BGP-4)[RFC1771,RFC1772]在獨立站點和提供者層次上提供路由信息集
成的性能。
CIDR由消除網絡類的觀點改進地址空間利用,并且用連續的可變尺寸(2的力量)
的地址塊代替它。在需要大量的地址空間而且已經提供了大量的地址空間的情況下,
提供一個好的對比[RFC1466]。它也便于基于集合的地址分配。消除網絡分類的想法
需要在路由協議中建立新的兼容性(內部和外部域之間都是),IP轉發。非凡的CIDR
兼容的協議需要處理到達的用不同長度的地址前綴表示的(地址)信息,而且,轉發需
要實現最長長度的匹配”算法。在[RFC1817]中描述了CIDR對路由協議的影響。
CIDR的伸縮性基于地址分配對網絡拓撲的最大影響的假設,尤其是在站點層次
上,與提供者的相互連接,使得站點和提供者形成一個集合。假如一個站點改變它的提
供者,然后去避免在Internet路由系統添加附加的頭,站點需要去重新編號。同時,CIDR
不需要每一個站點通過改變它的提供者來實現重新編號,這一點反應很重要:假如沒有
一個改變它的提供者的站點重新編碼,Internet路由系統當處理大量需要處理的路由信
息時有可能崩潰。
包括“基于集合”的地址分配(升級路由系統的可伸縮性),和支持站點性能的需
要去改變它們的提供者(去完成升級)需要對重編站點來說要求實踐解決。在迅速增長
的Internet路由系統對包括頭的需要好象使重新編號越來越普遍[RFC1900]。
對Internet路由系統伸縮性的需要,和用CIDR作為伸縮性的主要機制,是對
Internet的地址分配和治理政策所作出的進一步結果。加上“借地址”政策的進化作為
一個可提供的“地址私有”政策的進一步結果[RFC2008]。
自從IP地址的第一次指定[RFC791],IP地址和路由不停的進化。一些地址和路由
規則已經遭到反對,一些規則已經被保留,同時新規則也被推出。現在的Internet路由
和地址(基于CIDR)是一個進化的步驟,趨向于使用層次去包括全球Internet路由表。
安全性討論
IP地址模型在安全方面的影響以在這篇文檔的4.1小節和第五節討論。
鳴謝
ThisdocumentwasdevelopedintheIAB.ConstrUCtivecommentswerereceivedfrom
RanAtkinson,JimBound,MattCrawford,TonyLi,MichaelA.Patton,JeffSchiller.Earlier
PRivatecommunicationsfromNoelChiappahelpedtoclarifytheconceptsoflocatorsand
identifiers.
參考書
[RFC791]Postel,J.,"InternetProtocol",STD5,RFC791,September1981.
[RFC790]Postel,J.,"AssignedNumbers",September1981.
[RFC959]Postel,J.,andJ.Reynolds,"FileTransferProtocol",STD9,RFC959,October
1985.
[RFC1035]Mockapetris,P.,"DomainNames-ImplementationandSpecification",STD
13,RFC1035,November1987.
[RFC1112]Deering,S.,"HostExtensionsforIpMulticasting",STD5,RFC1112,
September1989.
[RFC1380]Gross,P.,andP.Almquist,"IESGDeliberationsonRoutingandAddressing",
RFC1380,November1992.
[RFC1466]Gerich,E.,"GuidelinesforManagementofIpAddressSpace",RFC1466,
May1993.
[RFC1498]Saltzer,J.,"OntheNamingandBindingofNetworkDestinations",RFC
1498,August1993(originallypublished1982).
[RFC1518]Rekhter,Y.,andT.Li,"AnArchitectureforIpAddressAllocationwith
CIDR",RFC1518,September1993.
[RFC1519]Fuller,V.,Li,T.,Yu,J.,andK.Varadhan,"ClasslessInter-DomainRouting
(CIDR):anAddressAssignmentandAggregationStrategy",RFC1519,September
1993.
[RFC1541]Droms,R.,"DynamicHostConfigurationProtocol",RFC1541,October
1993.
[RFC1661]Simpson,W.,"ThePoint-to-PointProtocol(PPP)",STD51,RFC1661,July
1994.
[RFC1771]Rekhter,Y.,andT.Li,"ABorderGatewayProtocol4(BGP-4)",RFC1771,
March1995.
[RFC1772]Rekhter,Y.,andP.Gross,"applicationoftheBorderGatewayProtocolin
theInternet",RFC1772,March1995.
[RFC1817]Rekhter,Y.,"CIDRandClassfulRouting",RFC1817,September1995.
[RFC1825]Atkinson,R.,"SecurityArchitecturefortheInternetProtocol",RFC1825,
September1995.
[RFC1900]Carpenter,B.,andY.Rekhter,"RenumberingNeedsWork",RFC1900,
February1996.
[RFC1918]Rekhter,Y.,Moskowitz,B.,Karrenberg,D.,deGroot,G.J.,andE.Lear,
"AddressAllocationforPrivateInternets",RFC1918,February1996.
[RFC1933]Gilligan,R.,andE.Nordmark,"TransitionMechanismsforIPv6Hostsand
Routers",RFC1933,April1996.
[RFC2008]Rekhter,Y.,andT.Li,"ImplicationsofVariousAddressAllocation
PoliciesforInternetRouting",RFC2008,October1996.
[kre]Elz,R.,et.al.,"SelectionandOperationofSecondaryDNSServers",Workin
Progress.
[RFC2065]Eastlake,E.,andC.Kaufman,"DomainNameSystemSecurityExtensions",
RFC2065,January1997.
[dns2]Vixie,P.,et.al.,"DynamicUpdatesintheDomainNameSystem(DNS
UPDATE)",WorkinProgress.
作者地址
BrianE.Carpenter
ComputingandNetworksDivision
CERN
EuropeanLaboratoryforParticlePhysics
1211Geneva23,Switzerland
EMail:brian@dxcoms.cern.ch
JonCrowcroft
Dept.ofComputerScience
UniversityCollegeLondon
LondonWC1E6BT,UK
EMail:j.crowcroft@cs.ucl.ac.uk
YakovRekhter
Ciscosystems
170WestTasmanDrive
SanJose,CA,USA
Phone:+19145280090
Fax:+1408526-4952
EMail:yakov@cisco.com
新聞熱點
疑難解答