1. 程式人生 > >IPv6簡介和結構以及IPv4到IPv6的過渡技術

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)