見:https://baike.baidu.com/item/IPv6/172297
-
IPv6
-
IPv6是Internet Protocol Version 6的縮寫,其中Internet Protocol譯為“互聯網協議”。IPv6是IETF(互聯網工程任務組,Internet Engineering Task Force)設計的用于替代現行版本IP協議(IPv4)的下一代IP協議,號稱可以為全世界的每一粒沙子編上一個網址[1]。
由于IPv4最大的問題在于網絡地址資源有限,嚴重制約了互聯網的應用和發展。IPv6的使用,不僅能解決網絡地址資源數量的問題,而且也解決了多種接入設備連入互聯網的障礙[1]。
地址配置協議
IPv6使用兩種地址自動配置協議,分別為無狀態地址自動配置協議(SLAAC)和IPv6動態主機配置協議(DHCPv6)。SLAAC不需要服務器對地址進行管理,主機直接根據網絡中的路由器通告信息與本機MAC地址結合計算出本機IPv6地址,實現地址自動配置;DHCPv6由DHCPv6服務器管理地址池,用戶主機從服務器請求并獲取IPv6地址及其他信息,達到地址自動配置的目的。
一、無狀態地址自動配置
無狀態地址自動配置的核心是不需要額外的服務器管理地址狀態,主機可自行計算地址進行地址自動配置,包括4個基本步驟:
1. 鏈路本地地址配置。主機計算本地地址。
2. 重復地址檢測,確定當前地址唯一。
3. 全局前綴獲取,主機計算全局地址。
4. 前綴重新編址,主機改變全局地址[8]。
無狀態地址自動配置的核心是不需要額外的服務器管理地址狀態,主機可自行計算地址進行地址自動配置,包括4個基本步驟:
1. 鏈路本地地址配置。主機計算本地地址。
2. 重復地址檢測,確定當前地址唯一。
3. 全局前綴獲取,主機計算全局地址。
4. 前綴重新編址,主機改變全局地址[8]。
二、IPv6動態主機配置協議
IPv6動態主機配置協議DHCPv6是由IPv4場景下的DHCP發展而來。客戶端通過向DHCP服務器發出申請來獲取本機IP地址并進行自動配置,DHCP服務器負責管理并維護地址池以及地址與客戶端的映射信息。
DHCPv6在DHCP的基礎上,進行了一定的改進與擴充。其中包含3種角色:DHCPv6客戶端,用于動態獲取IPv6地址、IPv6前綴或其他網絡配置參數;DHCPv6服務器,負責為DHCPv6客戶端分配IPv6地址、IPv6前綴和其他配置參數;DHCPv6中繼,它是一個轉發設備。通常情況下。DHCPv6客戶端可以通過本地鏈路范圍內組播地址與DHCPv6服務器進行通信。若服務器和客戶端不在同一鏈路范圍內,則需要DHCPv6中繼進行轉發。DHCPv6中繼的存在使得在每一個鏈路范圍內都部署DHCPv6服務器不是必要的,節省成本,并便于集中管理[9]。
IPv6動態主機配置協議DHCPv6是由IPv4場景下的DHCP發展而來。客戶端通過向DHCP服務器發出申請來獲取本機IP地址并進行自動配置,DHCP服務器負責管理并維護地址池以及地址與客戶端的映射信息。
DHCPv6在DHCP的基礎上,進行了一定的改進與擴充。其中包含3種角色:DHCPv6客戶端,用于動態獲取IPv6地址、IPv6前綴或其他網絡配置參數;DHCPv6服務器,負責為DHCPv6客戶端分配IPv6地址、IPv6前綴和其他配置參數;DHCPv6中繼,它是一個轉發設備。通常情況下。DHCPv6客戶端可以通過本地鏈路范圍內組播地址與DHCPv6服務器進行通信。若服務器和客戶端不在同一鏈路范圍內,則需要DHCPv6中繼進行轉發。DHCPv6中繼的存在使得在每一個鏈路范圍內都部署DHCPv6服務器不是必要的,節省成本,并便于集中管理[9]。
路由協議
與IPv4相同,IPv6路由協議同樣分成內部網關協議(IGP)與外部網關協議(EGP),其中IGP包括由RIP變化而來的RIPng,由OSPF變化而來的OSPFv3,以及IS-IS協議變化而來的IS-ISv6。EGP則主要是由BGP變化而來的BGP4+[11]。
一、RIPng
下一代RIP協議(RIPng)是對原來的RIPv2的擴展。大多數RIP的概念都可以用于RIPng。為了在IPv6網絡中應用,RIPng對原有的RIP協議進行了修改:
UDP端口號:使用UDP的521端口發送和接收路由信息。
組播地址:使用FF02::9作為鏈路本地范圍內的RIPng路由器組播地址。
路由前綴:使用128位的IPv6地址作為路由前綴。
下一跳地址:使用128位的IPv6地址。
下一代RIP協議(RIPng)是對原來的RIPv2的擴展。大多數RIP的概念都可以用于RIPng。為了在IPv6網絡中應用,RIPng對原有的RIP協議進行了修改:
UDP端口號:使用UDP的521端口發送和接收路由信息。
組播地址:使用FF02::9作為鏈路本地范圍內的RIPng路由器組播地址。
路由前綴:使用128位的IPv6地址作為路由前綴。
下一跳地址:使用128位的IPv6地址。
二、OSPFv3
RFC 2740定義了OSPFv3,用于支持IPv6。OSPFv3與OSPFv2的主要區別如下:
1. 修改了LSA的種類和格式,使其支持發布IPv6路由信息。
2. 修改了部分協議流程。主要的修改包括用Router-lD來標識鄰居,使用鏈路本地地址來發現鄰居等,使得網絡拓撲本身獨立于網絡協議,以便于將來擴展。
3. 進一步理順了拓撲與路由的關系。OSPFv3在LSA中將拓撲與路由信息相分離,在一、二類LSA中不再攜帶路由信息,而只是單純的拓撲描述信息,另外增加了八、九類LSA,結合原有的三、五、七類LSA來發布路由前綴信息。
4. 提高了協議適應性。通過引入LSA擴散范圍的概念進一步明確了對未知LSA的處理流程,使得協議可以在不識別LSA的情況下根據需要做出恰當處理,提高了協議的可擴展性。
RFC 2740定義了OSPFv3,用于支持IPv6。OSPFv3與OSPFv2的主要區別如下:
1. 修改了LSA的種類和格式,使其支持發布IPv6路由信息。
2. 修改了部分協議流程。主要的修改包括用Router-lD來標識鄰居,使用鏈路本地地址來發現鄰居等,使得網絡拓撲本身獨立于網絡協議,以便于將來擴展。
3. 進一步理順了拓撲與路由的關系。OSPFv3在LSA中將拓撲與路由信息相分離,在一、二類LSA中不再攜帶路由信息,而只是單純的拓撲描述信息,另外增加了八、九類LSA,結合原有的三、五、七類LSA來發布路由前綴信息。
4. 提高了協議適應性。通過引入LSA擴散范圍的概念進一步明確了對未知LSA的處理流程,使得協議可以在不識別LSA的情況下根據需要做出恰當處理,提高了協議的可擴展性。
三、BGP 4+
傳統的BGP 4只能管理IPv4的路由信息,對于使用其他網絡層協議(如IPv6等)的應用,在跨自治系統傳播時會受到一定的限制。為了提供對多種網絡層協議的支持,IETF發布的RFC2858文檔對BGP 4進行了多協議擴展,形成了BGP4+。
為了實現對IPv6協議的支持,BGP 4+必須將IPv6網絡層協議的信息反映到NLRl(Network Layer Reachable Information)及下一跳(Next Hop)屬性中。為此,在BGP4+中引入了下面兩個NLRI屬性。
MP_REACH_NLRI:多協議可到達NLRI,用于發布可到達路由及下一跳信息。
MP_UNREACH_NLRI:多協議不可達NLRI,用于撤銷不可達路由。
BGP 4+中的Next Hop屬性用IPv6地址來表示,可以是IPv6全球單播地址或者下一跳的鏈路本地地址。BGP 4原有的消息機制和路由機制沒有改變。
傳統的BGP 4只能管理IPv4的路由信息,對于使用其他網絡層協議(如IPv6等)的應用,在跨自治系統傳播時會受到一定的限制。為了提供對多種網絡層協議的支持,IETF發布的RFC2858文檔對BGP 4進行了多協議擴展,形成了BGP4+。
為了實現對IPv6協議的支持,BGP 4+必須將IPv6網絡層協議的信息反映到NLRl(Network Layer Reachable Information)及下一跳(Next Hop)屬性中。為此,在BGP4+中引入了下面兩個NLRI屬性。
MP_REACH_NLRI:多協議可到達NLRI,用于發布可到達路由及下一跳信息。
MP_UNREACH_NLRI:多協議不可達NLRI,用于撤銷不可達路由。
BGP 4+中的Next Hop屬性用IPv6地址來表示,可以是IPv6全球單播地址或者下一跳的鏈路本地地址。BGP 4原有的消息機制和路由機制沒有改變。
四、ICMPv6協議
ICMPv6協議用于報告IPv6節點在數據包處理過程中出現的錯誤消息,并實現簡單的網絡診斷功能。ICMPv6新增加的鄰居發現功能代替了ARP協議的功能,所以在IPv6體系結構中已經沒有ARP協議了。除了支持IPv6地址格式之外,ICMPv6還為支持IPv6中的路由優化、IP組播、移動IP等增加了一些新的報文類型[12]。
ICMPv6協議用于報告IPv6節點在數據包處理過程中出現的錯誤消息,并實現簡單的網絡診斷功能。ICMPv6新增加的鄰居發現功能代替了ARP協議的功能,所以在IPv6體系結構中已經沒有ARP協議了。除了支持IPv6地址格式之外,ICMPv6還為支持IPv6中的路由優化、IP組播、移動IP等增加了一些新的報文類型[12]。
IPv6不可能立刻替代IPv4,因此在相當一段時間內IPv4和IPv6會共存在一個環境中。要提供平穩的轉換過程,使得對現有的使用者影響最小,就需要有良好的轉換機制。這個議題是IETF ngtrans工作小組的主要目標,有許多轉換機制被提出,部分已被用于6Bone上。IETF推薦了雙協議棧、隧道技術以及網絡地址轉換等轉換機制:
一、IPv6/IPv4雙協議棧技術?
雙棧機制就是使IPv6網絡節點具有一個IPv4棧和一個IPv6棧,同時支持IPv4和IPv6協議。IPv6和IPv4是功能相近的網絡層協議,兩者都應用于相同的物理平臺,并承載相同的傳輸層協議TCP或UDP,如果一臺主機同時支持IPv6和IPv4協議,那么該主機就可以和僅支持IPv4或IPv6協議的主機通信。
雙棧機制就是使IPv6網絡節點具有一個IPv4棧和一個IPv6棧,同時支持IPv4和IPv6協議。IPv6和IPv4是功能相近的網絡層協議,兩者都應用于相同的物理平臺,并承載相同的傳輸層協議TCP或UDP,如果一臺主機同時支持IPv6和IPv4協議,那么該主機就可以和僅支持IPv4或IPv6協議的主機通信。
二、隧道技術?
隧道機制就是必要時將IPv6數據包作為數據封裝在IPv4數據包里,使IPv6數據包能在已有的IPv4基礎設施(主要是指IPv4路由器)上傳輸的機制。隨著IPv6的發展,出現了一些被運行IPv4協議的骨干網絡隔離開的局部IPv6網絡,為了實現這些IPv6網絡之間的通信,必須采用隧道技術。隧道對于源站點和目的站點是透明的,在隧道的入口處,路由器將IPv6的數據分組封裝在IPv4中,該IPv4分組的源地址和目的地址分別是隧道入口和出口的IPv4地址,在隧道出口處,再將IPv6分組取出轉發給目的站點。隧道技術的優點在于隧道的透明性,IPv6主機之間的通信可以忽略隧道的存在,隧道只起到物理通道的作用。隧道技術在IPv4向IPv6演進的初期應用非常廣泛。但是,隧道技術不能實現IPv4主機和IPv6主機之間的通信。
隧道機制就是必要時將IPv6數據包作為數據封裝在IPv4數據包里,使IPv6數據包能在已有的IPv4基礎設施(主要是指IPv4路由器)上傳輸的機制。隨著IPv6的發展,出現了一些被運行IPv4協議的骨干網絡隔離開的局部IPv6網絡,為了實現這些IPv6網絡之間的通信,必須采用隧道技術。隧道對于源站點和目的站點是透明的,在隧道的入口處,路由器將IPv6的數據分組封裝在IPv4中,該IPv4分組的源地址和目的地址分別是隧道入口和出口的IPv4地址,在隧道出口處,再將IPv6分組取出轉發給目的站點。隧道技術的優點在于隧道的透明性,IPv6主機之間的通信可以忽略隧道的存在,隧道只起到物理通道的作用。隧道技術在IPv4向IPv6演進的初期應用非常廣泛。但是,隧道技術不能實現IPv4主機和IPv6主機之間的通信。
三、網絡地址轉換技術?
網絡地址轉換(Network Address Translator,NAT)技術是將IPv4地址和IPv6地址分別看作內部地址和全局地址,或者相反。例如,內部的IPv4主機要和外部的IPv6主機通信時,在NAT服務器中將IPv4地址(相當于內部地址)變換成IPv6地址(相當于全局地址),服務器維護一個IPv4與IPv6地址的映射表。反之,當內部的IPv6主機和外部的IPv4主機進行通信時,則IPv6主機映射成內部地址,IPv4主機映射成全局地址。NAT技術可以解決IPv4主機和IPv6主機之間的互通問題[13]。
網絡地址轉換(Network Address Translator,NAT)技術是將IPv4地址和IPv6地址分別看作內部地址和全局地址,或者相反。例如,內部的IPv4主機要和外部的IPv6主機通信時,在NAT服務器中將IPv4地址(相當于內部地址)變換成IPv6地址(相當于全局地址),服務器維護一個IPv4與IPv6地址的映射表。反之,當內部的IPv6主機和外部的IPv4主機進行通信時,則IPv6主機映射成內部地址,IPv4主機映射成全局地址。NAT技術可以解決IPv4主機和IPv6主機之間的互通問題[13]。
一、IPv6具有更大的地址空間。IPv4中規定IP地址長度為32,最大地址個數為2^32;而IPv6中IP地址的長度為128,即最大地址個數為2^128。與32位地址空間相比,其地址空間增加了2^128-2^32個。
二、IPv6使用更小的路由表。IPv6的地址分配一開始就遵循聚類(Aggregation)的原則,這使得路由器能在路由表中用一條記錄(Entry)表示一片子網,大大減小了路由器中路由表的長度,提高了路由器轉發數據包的速度。
三、IPv6增加了增強的組播(Multicast)支持以及對流的控制(Flow Control),這使得網絡上的多媒體應用有了長足發展的機會,為服務質量(QoS,Quality of Service)控制提供了良好的網絡平臺。
四、IPv6加入了對自動配置(Auto Configuration)的支持。這是對DHCP協議的改進和擴展,使得網絡(尤其是局域網)的管理更加方便和快捷。
六、允許擴充。如果新的技術或應用需要時,IPV6允許協議進行擴充。
七、更好的頭部格式。IPV6使用新的頭部格式,其選項與基本頭部分開,如果需要,可將選項插入到基本頭部與上層數據之間。這就簡化和加速了路由選擇過程,因為大多數的選項不需要由路由選擇。
八、新的選項。IPV6有一些新的選項來實現附加的功能[14]。
原來的Internet安全機制只建立于應用程序級,如E-mail加密、SNMPv2網絡管理安全、接入安全(HTTP、SSL)等,無法從IP層來保證Internet的安全。IP級的安全保證分組的鑒權和私密特性,其具體實現主要由IP的AH(Authentication Header)和ESP(Encapsulating Security Payload)標記來實現。IPv6實現了IP級的安全。
一、安全協議套:是發送者和接收者的雙向約定,只由目標地址和安全參數索引(SPI)確定。
二、包頭認證:提供了數據完整性和分組的鑒權。
三、安全包頭封裝:ESP根據用戶的不同需求,支持IP分組的私密和數據完整性。 它既可用于傳送層(如TCP、UDP、ICMP)的加密, 稱傳送層模式ESP,同時又可用于整個分組的加密,稱隧道模式ESP。
四、ESPDES-CBC方式:ESP處理一般必須執行DES-CBC加密算法,數據分為以64位為單位的塊進行處理,解密邏輯的輸入是現行數據和先前加密數據塊的與或。
五、鑒權加私密方式:根據不同的業務模式,兩種IP安全機制可以按一定的順序結合,從而達到分組傳送加密的目的。按順序的不同,分為鑒權之前加密和加密之前鑒權[15]。