IPv6簡介和結構以及IPv4到IPv6的過渡技術
IPv6是Internet Protocol Version 6的縮寫,其中Internet Protocol譯為“網際網路協議”。IPv6是IETF(網際網路工程任務組,Internet Engineering Task Force)設計的用於替代現行版本IP協議(IPv4)的下一代IP協議
由於IPv4最大的問題在於網路地址資源有限,嚴重製約了網際網路的應用和發展。IPv6的使用,不僅能解決網路地址資源數量的問題,而且也解決了多種接入裝置連入網際網路的障礙
推動IPv6發展的主要問題是IPv4地址空間即將耗盡。IPv6也提供了一些新的特性和和改善措施:
1、設計迴歸簡潔、透明,提高實現效率,減少複雜性
2、為新出現的移動業務提供支援
3、重新引入端到端安全和QoS
Ipv6的優點
- 128位地址結構,提供充足的地址空間
- 層次化的網路結構,提高了路由效率
- IPv6報文頭簡潔,靈活,效率更高,易於擴充套件
IPv6和IPv4相比,去除了IHL、Identification、Flags、Fragment Offset、Header Checksum、Options、Paddiing域,只增了流標籤域Flow Label域,另外,IPv6為了更好支援各種選項處理,提出了擴充套件頭的概念
(4)支援自動配置,即插即用
(5)支援端到端安全(IPSec)
(6)支援移動特性
(7)新增流標籤功能,更利於支援QoS
IPv6地址結構
1、IPv6地址表示
IPv6地址包括128位元,由使用由冒號分隔的16位元的十六進位制數表示。
另外,對於中間位元連續為0的情況,還提供了簡易表示方法―――把連續出現的0省略掉,用::代替(注意::只能出現一次,否則不能確定到底有多少省略的0)
1080:0:0:0:8:800:200C:417A 等價於 1080::8:800:200C:417A
FF01:0:0:0:0:0:0:101 等價於 FF01::101
1080:0:0:0:8:0:0:417A 等價於1080::8:0:0:417A
2、IPv6地址字首表示
ipv6-address/prefix-length
2001:cdba:0000:0000:0000:0000:3257:9652/64
首碼 介面識別字 首碼長度
ipv6-address為16進製表示的128位元地址;prefix-length為10進製表示的地址字首長度。
3、IPv6地址分類
RFC2373中定義了多種IPv6地址型別
IPv6地址分為單播地址、泛播地址、多播地址。和IPv4相比,取消了廣播地址型別,以更豐富的多播地址代替,同時增加了泛播地址型別
3.1、IPv6單播地址
所有格式字首不是多播格式字首(1111 1111)的IPv6地址都是IPv6單播格式(泛播和IPv6單播格式相同)目前廣泛使用的是可聚合全球單播地址、站點本地地址和鏈路本地地址。
IPv6單播地址由子網字首和介面ID兩部分組成,子網字首由IANA、ISP和各組織分配。介面識別符號目前定義為64位元,可以由本地鏈路標識生成或採用隨機演算法生成以保證唯一性
IPv6單播地址有以下六種型別:
1-Aggregate Global Unicast Address 2xxx:xxxxx/3 – 3FFF: :FFFF
2001::/16 IPV6因特網地址
2002::/16 6to4過渡地址
2-Link Local Address FE80::/10 (前10位以FE80開頭)
3-Site Local Address (Private) FEC0::/10
4-Unspecified Address 0:0:0:0:0:0:0:0/128 => ::/128
5-Loopback Address 0:0:0:0:0:0:0:1/128 => ::1/128
6-IPv4 Compatible Address ::192.168.30.1 => ::C0A8:1E01
3.2、IPv6泛播地址
IPv6泛播地址格式和IPv6單播地址相同,用來標識一組介面的地址。一般這些介面屬於不同的節點。發往泛播地址的報文被送到這組介面中與其最近的介面
3.3、IPv6多播地址(組播)
字首:FF00::/8 佔用了0.38%的IPV6地址空間
Flags域
標誌位為0000表示是永久保留的組播地址,分配給各種技術使用
標誌位為0001表示是使用者可使用的臨時組播地址
Scope域
範圍段定義了組播地址的範圍,其定義如下:
二進位制 十六進位制 範圍型別
0001 1 本地介面範圍
0010 2 本地鏈路範圍
0011 3 本地子網範圍
0100 4 本地管理範圍
0101 5 本地站點範圍 類似組播的私網地址
1000 8 組織機構範圍
1110 E 全球範圍 類似組播的公網地址
group ID域
標識多播組(可能是永久的,也可能是臨時的,範圍由scope定義)
下面是一些組播指定地址:
(1) 保留的多播地址:
FF00::~FF0F:: (共16個地址)
(2) 所有節點的地址
FF01:0:0:0:0:0:0:1 (節點本地)
FF02:0:0:0:0:0:0:1 (鏈路本地)
(3) 所有路由器地址
FF01:0:0:0:0:0:0:2 (節點本地)
FF02:0:0:0:0:0:0:2 (鏈路本地)
FF05:0:0:0:0:0:0:2 (站點本地)
(4) 被請求節點的地址
FF02:0:0:0:0:1:FFXX:XXXX
以下IPV6地址比較特殊:
■::/96 即0:0:0:0:0:d:d:d:d 相容IPV4地址
■::/128 即0:0:0:0:0:0:0:0:0 不確定地址。它不能分配給任何節點。它的一個應用示例是初始化主機時,在主機未取得自己的地址以前,可在它傳送的任何IPv6包的源地址欄位放上不確定地址。不確定地址不能在IPv6包中用作目的地址,也不能用在IPv6路由頭中
■::1/128 即0:0:0:0:0:0:0:0:1 迴環地址。節點用它來向自身傳送IPv6包。它不能分配給任何物理介面。功能很像我們熟悉的127.0.0.1
■2001:db8::/32 即2001:db8:0:0:0:d:d:d:d 可以理解為保留地址,共特殊目的使用。
■ ff01::1/128(或者只是ff01::1)。介面本地作用域的所有節點多播地址。
■ ff02::1/128(或者只是ff02::1)。鏈路本地作用域的所有節點多播地址,與IPv4中的廣播地址類似。
■ ff02::2/128(或者只是ff02::2)。鏈路本地作用域的所有路由器多播地址。
■ ff05::2/128(或者只是ff05::2)。站點本地作用域的所有路由器多播地址。
■ 2002::/16。該字首用於6to4定址。
■ ff00::/8。用於多播地址。
■ fe80::/64。鏈路本地地址,它是一種自動分配的IP地址,類似於在IPv4中的自動專用IP地址(APIPA)。如果看到介面分配了一個這樣的地址,表示DHCPv6伺服器不可用。更多資訊可參看本小節的”鏈路本地地址”部分。
■ fc00::/8或fd00::/8。ULA可以在Intranet上路由,不能在Internet上路由。ULA在功能上與私有IPv4網路(10.0.0.0/8,172.16.0.0/12和192.168.0.0/16)類似,因為它們允許建立複雜的內部網路,並且無需分配公共地址空間。
IPv6全球單播地址空間分配
因特網分配地址權威機構(IANA)負責IPv6地址空間的分配。目前IANA從整個可聚合全球單播地址空間(格式字首為001)中取2001::/16進行分配。
RFC2450中描述了推薦的地址分配策略。
上圖可聚合全球單播的推薦分配方式
l FP:格式字首,對於可聚合全域性單播固定為001。
l TLA ID:頂級聚合識別符號。此域由IANA分配給指定的註冊機構。
l Sub-TLA:次頂級聚合識別符號。此域由向IANA註冊的機構為滿足一定條件的組織分配。這些組織一般是具有一定規模的ISP。
l NLA ID:下一級聚合識別符號。此域由地址註冊機構或其下分配了Sub-TLA的組織分配。
l SLA ID:站點級聚合識別符號。此域一般為組織或企業內部進行子網劃分使用。
IANA指定的註冊機構則從地址空間2001::/16分配/23字首,具體如下:
l 2001:0200::/23 到 2001:0C00::/23 分配給亞太地區(APNIC)
l 2001:0400::/23 分配給美國(ARIN)
l 2001:0600::/23到2001:0800::/23 分配給歐洲和中東(RIPE NCC)
這些註冊機構再從IANA得到的地址空間分配/32字首給IPv6 ISP,IPv6 ISP再從/32字首中分配/48字首給每個客戶。/48字首的地址空間還可以進一步分為/64字首的子網。這樣每個客戶最大可以有65535個子網。
IPv6基本功能
IPv6基本功能包括IPv6鄰居發現協議(鄰居發現、路由器發現、無狀態地址自動配置、重定向)、IPv6路徑MTU發現以及IPv6域名解析。其中路由器發現和無狀態地址自動配置是IPv6的新增功能,鄰居發現功能類似於IPv4 ARP,但做了改進和增強。
Ipv6的安全性(IPsec)
IPv6規範中對兩個安全載荷的描述:身份驗證頭(AH)和封裝安全載荷。一個擴充套件頭提供身份驗證,該過程使得分組的接收方可以相信源地址通過身份驗證處理,而且分組在傳輸過程中沒有被篡改,另外一個擴充套件頭保證只有合法的接收方能夠閱讀報文內容。這兩個機制都是基於安全關聯的概念。
IPv6經過身份驗證和加密的分組都能傳達一個安全引數 (SPI),
SPI一般是作為祕鑰交換過程中的一部分商定。
SPI 由這個接收方進行選定。
多播發送一組接受時,SPI對該組成員有效,成員把組地址和SPI的結合跟祕鑰、演算法和其他引數相關聯。
IPv4向IPv6過渡技術
當前,大量的網路是IPv4網路,隨著IPv6的部署,很長一段時間是IPv4與IPv6共存的過渡階段。通常將IPv4向IPv6過渡分為3個階段:
初始階段 – 共存階段 – 主導階段
過渡階段所採用的過渡技術主要包括:
雙棧技術:雙棧節點與IPv4節點通訊時使用IPv4協議棧,與IPv6節點通訊時使用IPv6協議棧。
隧道技術:提供了兩個IPv6站點之間通過IPv4網路實現通訊連線,以及兩個IPv4站點之間通過IPv6網路實現通訊連線的技術。
IPv4/IPv6協議轉換技術:提供了IPv4網路與IPv6網路之間的互訪技術。
IPv6/IPv4雙協議棧
l 雙棧
l DSTM
隧道(tunnel)是指一種協議封裝到另外一種協議中的技術。隧道技術只要求隧道兩端(也就是兩種協議邊界的相交點)的裝置支援兩種協議。IPv6穿越IPv4隧道技術提供了利用現有的IPv4網路為互相獨立的IPv6網路提供連通性,IPv6報文被封裝在IPv4報文中穿越IPv4網路,實現IPv6報文的透明傳輸。
用於IPv6穿越IPv4網路的隧道技術有:
l IPv6手工配置隧道
l IPv4相容地址自動隧道
l 6to4自動隧道
l ISATAP自動隧道
l IPv6 over IPv4 GRE隧道
l 隧道代理技術
l 6over4隧道
l BGP隧道
l Teredo隧道
IPv6與IPv4互通技術
IPv6穿越IPv4技術是為了實現IPv6節點之間的互通,而IPv6/IPv4互通技術是為了實現不同協議之間的互通。也就是使IPv6主機可以訪問IPv4主機,IPv4主機可以訪問IPv6主機。相關的技術有:
l SIIT(Stateless IP/ICMP Translation)
l NAT-PT
l DSTM(Dual Stack Transition Mechanism)
l SOCKs64
l 傳輸層中繼(TRT)
l BIS(Bump in the Stack)
l BIA(Bump in the API)