本文檔的Copyleft歸yfydz所有,使用GPL發(fā)布,可以自由拷貝,轉載,轉載時(shí)請保持文檔的完整性,嚴禁用于任何商業(yè)用途。
msn: yfydz_no1@hotmail.com
來(lái)源:http://yfydz.cublog.cn
0. 概述
IPv6是下一代IP協(xié)議標準,雖然目前還都只是實(shí)驗階段,但IPv6取代IPv4是不可避免的。
- 1. IPv6中的“6”的由來(lái)
- 說(shuō)法一:
- 4:已經(jīng)被IPv4使用
- 5:保留用于流協(xié)議 (STP, RFC 1819 / Internet Stream Protocol Version 2),但該協(xié)議從未正式應用,下一個(gè)空閑數即為 6
- 說(shuō)法二:
- 由于IPv4地址4個(gè)字節,版本號為“4”;IPv6地址是128位,即16字節,故版本號取其個(gè)位為“6”
-
- 2. IPv4與IPv6協(xié)議格式
-
- 2.1 RFC791定義的IPv4頭
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- |Version| IHL |Type of Service| Total Length |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Identification |Flags| Fragment Offset |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Time to Live | Protocol | Header Checksum |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Source Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Destination Address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Options | Padding |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- IPv4的不足
- 地址空間有限:32位地址只能支持42億多個(gè)地址的空間,以目前情況看根本不夠用;
- 安全性:本身無(wú)安全性考慮,真正的安全性需要上層協(xié)議支持,IP層不支持;
- 性能、QoS:自身支持不足,也需上層協(xié)議支持;
- 自動(dòng)配置:BOOTP、DHCP等相對較煩瑣;
- 另外IPv4頭部結構復雜,參數過(guò)多,而且IPv4選項部分對系統性能和安全性都有影響。
-
- 2.2 IPv6協(xié)議
-
- 2.2.1 RFC1883定義的IPv6頭
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- |Version| Prio. | Flow Label |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Payload Length | Next Header | Hop Limit |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- + +
- | |
- + Source Address +
- | |
- + +
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- + +
- | |
- + Destination Address +
- | |
- + +
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- RFC1883說(shuō)明:
- Version: 4位協(xié)議號,值為6
- Prio.: 4位數據優(yōu)先級.
- Flow Label: 24位,流標簽,主要用于QoS
- Payload Length: 16位,載荷長(cháng)度
- Next Header: 8位,下一個(gè)頭,類(lèi)似于IPv4的Protocol字段,但不完全相同
- Hop Limit: 8位跳數限制,類(lèi)似IPv4中的TTL
- Source Address: 128位源地址
- Destination Address: 128位目的地址
- RFC1883已經(jīng)被RFC2460取代,主要是RFC1883中Prio字段只有4位,而IPv4中的TOS字段為8位,兩者不能完全兼容。
-
- 2.2.2 RFC2460定義的IPv6頭
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- |Version| Traffic Class | Flow Label |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Payload Length | Next Header | Hop Limit |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- + +
- | |
- + Source Address +
- | |
- + +
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- + +
- | |
- + Destination Address +
- | |
- + +
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- RFC2460格式說(shuō)明:
- Version: 4位協(xié)議號,值為6;
- Traffic Class: 8位傳輸類(lèi)別,相對1883中的4位prio能更好支持QoS,在源端或中間轉發(fā)端用來(lái)區分不同類(lèi)型和優(yōu)先權的IPv6包,和IPv4的TOS字段一樣是8位,這樣有利于設計IPv4/IPv6兼容的QoS標準;
- Flow Label: 20位流標簽,用于源端標記IPv6包順序,供路由器特別處理,用來(lái)滿(mǎn)足某些特殊服務(wù),如QoS和實(shí)時(shí)信息
- Payload Length: 16位負載長(cháng)度;
- Next Header: 8位,下一個(gè)頭,類(lèi)似于IPv4的Protocol字段,但不完全相同
- Hop Limit: 8位跳數限制,類(lèi)似IPv4中的TTL
- Source Address: 128位源地址
- Destination Address: 128位目的地址
- 其中Traffic Class字段在RFC 2460中未明確定義,后來(lái)在在RFC 2474中定義為:
- 0 1 2 3 4 5 6 7
- +---+---+---+---+---+---+---+---+
- | DSCP | CU |
- +---+---+---+---+---+---+---+---+
- DSCP: differentiated services codepoint
- CU: currently unused
-
- 2.2.3 IPv6的擴展頭類(lèi)型
- IPv6中取消了IP選項,對于IPv4中需要IP選項完成的功能,在IPv6中使用IPv6擴展頭來(lái)實(shí)現:
- Hop-by-Hop Options:nh=0,選項信息
- Routing:nh=43,路由信息
- Fragment:nh=44,分片信息
- Destination Options:nh=60,目的端要檢查的特殊信息
- Authentication:nh=51,AH協(xié)議頭,RFC4302
- Encapsulating Security Payload:nh=50,ESP協(xié)議頭,RFC4303
- Nh=59: No Next Header
-
- 舉例:一個(gè)最完整的IPv6頭包括IPv6頭和各種擴展頭:
- IPv6 header (next header=0)
- Hop-by-Hop Options header (next header=60)
- Destination Options header (next header=43)
- Routing header (next header=44)
- Fragment header (next header=51)
- Authentication header (next header=50)
- Encapsulating Security Payload header (next header=60)
- Destination Options header (next header=upper-layer protocol)
- upper-layer header
-
- 多個(gè)擴展頭的使用從協(xié)議本身角度是方便性提高,但對于防火墻等設備來(lái)說(shuō)來(lái)說(shuō)就必須跟蹤到最后一個(gè)擴展頭才知道上層是什么協(xié)議,不象IPv4可以在固定位置處就能檢查協(xié)議。
-
- 2.2.4 上層協(xié)議計算校驗和時(shí)用到的偽IPv6頭
-
- 和IPv4一樣,在計算TCP、UDP等的校驗和時(shí)需要用到IP頭部部分信息,用到部分數據稱(chēng)為偽IP頭,除需要的字段外其他字段值置0。
-
- IPv6的偽頭格式:
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- + +
- | |
- + Source Address +
- | |
- + +
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- + +
- | |
- + Destination Address +
- | |
- + +
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Upper-Layer Packet Length |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | zero | Next Header |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- 2.3 IPv6相對IPv4優(yōu)點(diǎn)
-
- 地址范圍擴大:地址范圍從2^32擴大到2^128,基本可視為無(wú)限,可以不再需要NAT
- 地址類(lèi)型強化和提高:簡(jiǎn)化了地址自動(dòng)配置,設備自己的硬件地址直接對應IPv6地址,可以不用配置;增強了多播路由功能;新增“anycast”(泛播)地址類(lèi)型,取消了廣播類(lèi)型以防止廣播風(fēng)暴;
- 頭部格式簡(jiǎn)化:頭部長(cháng)度固定,數據項也精簡(jiǎn),路由設備處理起來(lái)更加容易;
- 增強頭部的擴展和選項支持:通過(guò)“next header”項將各種擴展頭串起來(lái)
- 性能提高:使用流標簽,使數據具備“流”的概念,而不僅僅是IPv4中的單獨的“包”的概念;
- 認證和安全性提高:IPSec將不再是象IPv4那樣是“突?!钡夭迦隝P協(xié)議,而稱(chēng)為IP協(xié)議中自然的組成部分。
-
- 3. IPv6地址
-
- 3.1 書(shū)寫(xiě)格式
- 基本格式:X:X:X:X:X:X:X:X,X:16位數
- 縮寫(xiě)格式:對于連續的0,可以用“::”代替,但只能代替一次
- 兼容V4格式:X:X:X:X:X:X:a.b.c.d
-
- 3.2 IPv4到IPv6的格式轉換:
- IPv4-compatible IPv6 address, v6的低32位地址同v4,高96位地址為0
- | 80 bits | 16 | 32 bits |
- |0000...............0000|0000| IPv4 address |
-
- IPv4-mapped IPv6 address,v6的低32位地址同v4,33-48位為1,高80位地址為0
- | 80 bits | 16 | 32 bits |
- |0000...............0000|FFFF| IPv4 address |
-
- 3.3 IPv6地址空間和類(lèi)型
-
- 3.3.1 地址空間分配
- Unspecified 00...0 (128 bits) ::/128
- Loopback 00...1 (128 bits) ::1/128
- Multicast 11111111 FF00::/8
- Link-local unicast 1111111010 FE80::/10
- Site-local unicast 1111111011 FEC0::/10
- Global unicast (everything else)
-
- 3.3.2 地址類(lèi)型(廣播類(lèi)型地址不再存在):
-
- 單播:unicast,每個(gè)設備的ID號成為地址的一部分,包括以下三類(lèi):
- Link local:用于單一連接,不可路由
- | 10bits | 54 bits | 64 bits |
- |1111111010| 0 | interface ID |
-
- Site local:用于內部網(wǎng)絡(luò ),網(wǎng)絡(luò )外不可路由
- | 10bits | 54 bits | 64 bits |
- |1111111011| subnet ID | interface ID |
-
- Global unicast:全局地址
- | n bits | m bits | 128-n-m bits |
- | global routing prefix | subnet ID | interface ID |
-
- 組播:multicast, FF00::/8,v4中的廣播在v6中用組播代替。
-
- 泛播:anycast,地址空間和單播地址空間相同,一個(gè)unicast地址設置到多個(gè)網(wǎng)絡(luò )接口后就可成為anycast地址,需要指明anycast屬性。泛播包只被路由到最近的具有該地址的網(wǎng)絡(luò )接口,通常用于DNS等服務(wù)。
-
- 4. 從IPv4到IPv6升級需要修改的協(xié)議
- 鏈路層:以太網(wǎng)相對修改較小,IPv6協(xié)議號0x86DD,比較大的修改部分應該是為MTU發(fā)現處理;對于A(yíng)TM網(wǎng)絡(luò )可能修改量較大
- ARP/RARP:需要支持v6地址到MAC的變換
- 網(wǎng)絡(luò )層:ICMPv4需要升級為ICMPv6, IGMP也需要升級
- 傳輸層:需要網(wǎng)絡(luò )層信息的所有協(xié)議都必須修改,如TCP/UDP的校驗和計算都用到了IP偽頭信息
- 應用層:所有使用IP地址信息的協(xié)議都需要修改,特別是有子連接的協(xié)議
- 路由協(xié)議:RIP、OSPF、…全部需要更新
- 文本地址表示協(xié)議:如FTP、SIP等,修改相對簡(jiǎn)單
- 數值地址表示協(xié)議:如DNS、DHCP、BOOTP、H.323等,修改相對復雜
- 用戶(hù)界面:要支持IPv6地址格式
- 簡(jiǎn)化部分:IPSec,在IPv6中實(shí)現IPSec相對比較簡(jiǎn)單,因為在設計IPv6時(shí)就把IPSec作為一個(gè)部分考慮進(jìn)去了,而設計IPv4時(shí)根本還不存在IPSec概念,IPSec是后來(lái)硬塞進(jìn)IPv4中的。
-
- 5. IPv4與IPv6共存方式
- V6 over V4:IPv6包封裝在IPv4包中傳輸
- V4 over V6:IPv4包封裝在IPv6包中傳輸
- 對于網(wǎng)絡(luò )中的服務(wù)器,路由交換設備,都需要支持同時(shí)IPv4、IPv6,因此需要實(shí)現雙棧。
-
- 6. 實(shí)施IPv6障礙
- 目前實(shí)施IPv6有以下幾個(gè)障礙,第一,目前沒(méi)有一項應用是必須使用IPv6才能完成的,所有協(xié)議IPv4均能完成;第二,由于NAT和 CIDR的使用,使IPv4地址分配速度減慢,使得IPv6需求不是那么迫切;第三,IPv6標準的不成熟性,表現在新RFC不斷廢除老RFC,這樣抑制了廠(chǎng)商的生產(chǎn)積極性,使得相關(guān)產(chǎn)品總是屬于實(shí)驗室產(chǎn)品。
-
- 7. 結論
-
- 第一,IPv4升級到IPv6是大勢所趨,因為IPv4地址總會(huì )在可見(jiàn)時(shí)間內分配完,為了支持IPv6,需要從底層到應用層的協(xié)議進(jìn)行全面修改;第二,IPv4即使在地址分配完后仍然會(huì )存在,IPv4和IPv6會(huì )共存相當長(cháng)時(shí)間,單純只支持IPv6的網(wǎng)絡(luò )設備是沒(méi)有市場(chǎng)的。
-
- 8. IPv6相關(guān)網(wǎng)站
- http:
- http:
- http:
- http:
- http:
- http:
- http:
- http:
-
- 9. IPv6相關(guān)RFC
- 以下是我整理的和IPv6相關(guān)的RFC,同時(shí)也是本文的相關(guān)參考文獻,括號表示新RFC取代老RFC,可看到有些協(xié)議標準的RFC甚至被廢除了兩次。
-
- 協(xié)議標準:
- IPv6: 1883(2460)
- Addressing Architecture: 1884(2373(3513))
- testing address: 1897(2471(3701))
- address format: 2073(2374(3587))
- multicast address: 2375, 3307
- Unicast-Prefix-based IPv6 Multicast Addresses: 3306, 3956
- reserved subnet anycast: 2526
- literal address in URL: 2396/2732(3986)
- Flow Label: 3595, 3697
- Mobility: 3775, 3776
- Scoped address architecture: 4007
- unique local ipv6 unicast address: 4193
-
- 物理層:
- ipv6 over ethernet: 1972(2464)
- ipv6 over fddi: 2019(2467)
- ipv6 over token ring: 2470
- ipv6 over PPP: 2472
- ipv6 over NBMA: 2491
- ipv6 over ATM: 2492
- ipv6 over ARCnet: 2497,1201
- ipv6 over frame relay: 2590
- ipv6 over IEEE 1394 Networks: 3146
- ipv6 over fibre channel: 3831
- 3G: 4215
-
- 網(wǎng)絡(luò )傳輸層:
- neight discovery: 1970(2461), 3122
- address autoconfig: 1971(2462), 3041
- DHCPv6: 3315, 3633, 3646, 3736, 3898
- ipv6 over ipv4: 2529
- IPv6 Domains via IPv4 Clouds: 3056
- ICMP6: 1885(2463)
- IGMP: 2236(3376)
- TCP/UDP: 2147(2675)
- tunneling:2473
- DiffServ: 1455/1349(2474,3168,3260)
- Multicast Listener Discovery (MLD) for IPv6: 2710, 3590, 3810
- Transition Mechanisms for IPv6 Hosts and Routers: 1933(2893(4213))
-
- 應用層:
- SNTPv4: 2030
- RIPng: 2080
- MIB for ipv6: 2465, 2466
- BGP-4 for ipv6: 2545
- OSPF: 2328, 2740
- FTP: 2428
- DNS: 2535, 2874, 3152, 3226, 3363, 3364, 3596, 3901, 4033, 4034, 4035
- Router renumbering: 2894
- Service Location Protocol Modifications for IPv6: 3111
- Radius: 3162
- RSVP: 3175
- SDP: 2327, 3266
- MLDv2: 2710, 3810
- HMIPv6: 4140
-
- 編程接口:
- socket interface extension: 2133 (2553 (3493) )
- socket api: 2292(3542)
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。