目錄
- 前言
- IPV6概述
- IPV4的不足和缺點(diǎn)
- IP地址空間危機(jī)
- IP地址性能問題
- IP安全性問題
- 配置問題
- NAT技術(shù)存在局限
- IPV6對(duì)IPV4的改進(jìn)
- 擴(kuò)展地址
- 取消了廣播地址
- 簡(jiǎn)化的包頭
- 多擴(kuò)展和選項(xiàng)支持的改進(jìn)
- 流標(biāo)記
- 身份驗(yàn)證和保密
- IPv6數(shù)據(jù)包結(jié)構(gòu)
- 分片
- 擴(kuò)展頭
- IPv6的尋址
- IPv6的安全性
前言
主要參照清華大學(xué)出版社-羅軍周主編的《TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù)》的結(jié)構(gòu)進(jìn)行學(xué)習(xí)帘不。
本篇主要參考第十五章:《IPV6》
IPV6概述
盡管IPV4非常成功與強(qiáng)壯雹有、但在互聯(lián)網(wǎng)飛速發(fā)展的當(dāng)下已經(jīng)顯露出很多不足裸燎。
IPV6應(yīng)運(yùn)而生:更多的地址、更安全的傳輸。
IPV4的不足和缺點(diǎn)
1.地址空間的局限性
IP地址空間的危機(jī)由來已久、是升級(jí)的主要?jiǎng)恿Α?br> 2. 性能
盡管IPV4表現(xiàn)不錯(cuò)。但一些70年代的設(shè)計(jì)還能夠及進(jìn)一步改進(jìn)信殊。
3.安全性
安全性一直以來都被網(wǎng)絡(luò)層之上的層負(fù)責(zé)、但I(xiàn)PV6已經(jīng)可以發(fā)揮作用汁果。
4.配置
IPV4的配置一直比較復(fù)雜。
-
IP地址空間危機(jī)
IPV4地址共有32位玲躯、總計(jì)40多億個(gè)据德。
但導(dǎo)致IP地址耗盡的主要原因不在于IP地址的長(zhǎng)度、而在于IP地址的結(jié)構(gòu)
跷车、也就是分為網(wǎng)路號(hào)和主機(jī)號(hào)(一個(gè)C類地址有256個(gè)地址棘利、但可能只連了幾臺(tái)主機(jī))。
但如果不使用這種結(jié)構(gòu)朽缴、雖然可以使地址的利用率更加高效善玫、但也將導(dǎo)致很多網(wǎng)絡(luò)功能不可行(比如根據(jù)網(wǎng)絡(luò)號(hào)進(jìn)行路由)。
盡管人們采用了子網(wǎng)掩碼和無域間路由等技術(shù)減少了地址的消耗密强、但并沒有從根本上解決問題茅郎。
還有一個(gè)原因是由于TCP/IP協(xié)議誕生之初、通訊協(xié)議百家爭(zhēng)鳴或渤。沒有人會(huì)想到如今使用IP地址的人有如此之多系冗。
在起初的IP分配上、也出現(xiàn)了很大程度的浪費(fèi)薪鹦、很多A類地址被分配給了一些機(jī)構(gòu)和公司
17.0.0.0/8:蘋果
18.0.0.0/8:MIT
19.0.0.0/8:福特汽車而一個(gè)A類地址掌敬、就可以占有一千六百多萬個(gè)實(shí)體IP惯豆。
反觀很多國家、全國都沒有一個(gè)完整的A類地址段奔害。
我國的也一樣楷兽、雖然有A類地址但是只是一整段中的一小部分。
教育網(wǎng)也僅僅擁有一些B類地址而已华临。
具體可以參閱《到底誰霸占了A類的IP地址》
————————
-
IP地址性能問題
IPV4已經(jīng)可以異種網(wǎng)絡(luò)間進(jìn)行數(shù)據(jù)的可靠芯杀、高效和健壯的傳輸提供最佳的機(jī)制。
而在當(dāng)下银舱、IPV6主要考慮最大傳輸單元
瘪匿、最大包長(zhǎng)
、IP頭部設(shè)計(jì)
寻馏、校驗(yàn)和的使用
棋弥、IP選項(xiàng)的應(yīng)用
等改進(jìn)。
————————
-
IP安全性問題
當(dāng)初IPV4的側(cè)重點(diǎn)是科研機(jī)構(gòu)诚欠、安全性并不是一個(gè)主要的課題顽染。
而現(xiàn)在、網(wǎng)絡(luò)安全越來越被人們所重視轰绵。
————————
-
配置問題
IP協(xié)議早起粉寞、絕大部分使用IP協(xié)議接入internet的計(jì)算機(jī)都是大型計(jì)算機(jī)、他們與internet的鏈接基本是靜態(tài)的左腔。而且使用計(jì)算機(jī)的人員都是專業(yè)研究院唧垦、現(xiàn)在看來接入程序則要復(fù)雜很多。
即使使用DHCP來動(dòng)態(tài)配置液样、但主機(jī)仍然依賴與到網(wǎng)絡(luò)的單點(diǎn)連接振亮。
————————
-
NAT技術(shù)存在局限
這個(gè)我感覺是最重要的問題、因?yàn)镹AT在很大程度上堪稱神技了鞭莽、畢竟讓IPV4的地址多活了十幾年坊秸。
雖然NAT技術(shù)可以很大程度上的緩解IP地址匱乏的問題、但終究存在缺陷澎怒。
比如無法由外部進(jìn)行訪問(雖然可以通過靜態(tài)彌補(bǔ)但很復(fù)雜)褒搔、端口號(hào)搶占(被NAT的多個(gè)服務(wù)器需要使用公網(wǎng)80端口)。
所以總是有人需要使用實(shí)體的公網(wǎng)IP喷面、雖然慢但總會(huì)耗盡星瘾。
更多可以查閱《知乎》、《NAT無法取代遷移到IPv6的必要性》
IPV6對(duì)IPV4的改進(jìn)
-
擴(kuò)展地址
IPv6的地址結(jié)構(gòu)中除了把32位
地址空間擴(kuò)展到128位
惧辈、一共將會(huì)有2^128≈340萬億
個(gè)地址死相、有人很形象的舉例說可以把地球上的每粒沙子都分配一個(gè)IP地址(不過25年過去了、地球上的沙子也沒有來申請(qǐng)IP地址)咬像。
-
取消了廣播地址
以任意點(diǎn)播地址代替算撮。但I(xiàn)Pv4中用于指定一個(gè)網(wǎng)絡(luò)接口的單播地址和用于指定一個(gè)或多個(gè)主機(jī)的多播地址基本不變生宛。
-
簡(jiǎn)化的包頭
IPv4則包含12個(gè)字段、長(zhǎng)度在無選項(xiàng)時(shí)為20字節(jié)肮柜、最高可達(dá)60個(gè)字節(jié)陷舅。
- IPv6包含8個(gè)字段。
- 使用固定格式的包頭減少了需要檢查和處理的字段數(shù)量审洞、提高了路由效率莱睁。
- 包頭長(zhǎng)度統(tǒng)一、不需要包頭長(zhǎng)度這個(gè)字段
- 去掉了校驗(yàn)和芒澜、將其交由上層協(xié)議負(fù)責(zé)仰剿。
-
多擴(kuò)展和選項(xiàng)支持的改進(jìn)
IPv4的擴(kuò)展放在包頭尾部。
IPv6則將選項(xiàng)放在單獨(dú)的擴(kuò)展頭中痴晦、只有在有必要時(shí)才會(huì)檢查和處理南吮。
-
流標(biāo)記
IPv4中對(duì)所有的IP數(shù)據(jù)包都同等對(duì)待。
IPv6中加入了流標(biāo)記的概念誊酌。流指從特定源地址
到特地目的地址
的包序列部凑、源點(diǎn)希望中間的路由器對(duì)這些包進(jìn)行特殊處理。
-
身份驗(yàn)證和保密
最初的IP協(xié)議是沒有任何的安全措施的碧浊。IP數(shù)據(jù)報(bào)含有諸如源地址涂邀,目的地址,版本箱锐,長(zhǎng)度比勉,生存周期,承載協(xié)議驹止,承載數(shù)據(jù)等字段敷搪。雖然其擁有“首部校驗(yàn)和”這樣的字段來提供極其簡(jiǎn)易的完整性功能,但無力抗拒對(duì)數(shù)據(jù)的意外或者故意修改幢哨,也無法阻止信息的泄露等問題。
IPv6使用兩種安全性擴(kuò)展:
- IP身份驗(yàn)證頭(AH)
(1). 數(shù)據(jù)完整性驗(yàn)證嫂便,通過使用Hash函數(shù)(如MD5)產(chǎn)生的驗(yàn)證碼來實(shí)現(xiàn)捞镰;
(2). 數(shù)據(jù)完整性時(shí)加入一個(gè)共享的會(huì)話密鑰來實(shí)現(xiàn);
(3). 防重放攻擊毙替,在AH報(bào)頭中加入序列號(hào)可以防止重放攻擊岸售。 - 數(shù)據(jù)加密(ESP)
發(fā)送方計(jì)算數(shù)據(jù)包摘要并將其放入AH頭中、接收方對(duì)數(shù)據(jù)包摘要進(jìn)行重新計(jì)算并與AH對(duì)比厂画。
ESP則可以對(duì)某些數(shù)據(jù)進(jìn)行加密凸丸。
也可以加密整個(gè)數(shù)據(jù)包后以隧道方式傳輸。
隧道傳輸意味著在對(duì)整個(gè)IP數(shù)據(jù)包進(jìn)行加密后袱院、并由一個(gè)安全網(wǎng)關(guān)
系統(tǒng)將其封裝在另一個(gè)數(shù)據(jù)包中向另一個(gè)安全網(wǎng)關(guān)
進(jìn)行傳輸屎慢,這樣加密的IP包中所有數(shù)據(jù)都被隱藏起來瞭稼。
IPv6數(shù)據(jù)包結(jié)構(gòu)
先貼一個(gè)IPv4的數(shù)據(jù)包做對(duì)比
然后是IPv6的
版本
4位。IPv6填6腻惠。主要為了與IPv4兼容环肘。通信量等級(jí)
8位。表示數(shù)據(jù)包所屬類別集灌、路由器會(huì)根據(jù)不同的類別給予不同的服務(wù)悔雹。允許源路由器以及中間路由器在包上加上標(biāo)記。
一般可以根據(jù)鏈路的開銷欣喧、帶寬腌零、延遲等進(jìn)行特殊處理。流標(biāo)記
20位唆阿。用于標(biāo)識(shí)屬于同一業(yè)務(wù)流的數(shù)據(jù)包益涧。
IPv4中數(shù)據(jù)包的傳輸默認(rèn)是根據(jù)兩個(gè)IP地址進(jìn)行尋路、有可能前后兩個(gè)包的傳輸路徑會(huì)不同酷鸦、原因則是每次都會(huì)進(jìn)行重新尋路饰躲。
IPv6中同一個(gè)流標(biāo)記的數(shù)據(jù)包只要第一個(gè)進(jìn)行尋路、后面的數(shù)據(jù)包就可以跟隨其進(jìn)行傳輸臼隔。有效負(fù)荷長(zhǎng)度
16位嘹裂。包頭+數(shù)據(jù)區(qū)+擴(kuò)展頭。下一報(bào)頭
8位摔握。類似IPv4的協(xié)議字段寄狼、可以用來指明上層協(xié)議。
也可以指明該IPv6數(shù)據(jù)包是否有擴(kuò)展頭的存在氨淌。跳限制
8位泊愧。類似IPv4中的TTL字段。但并不代表時(shí)間含義盛正、對(duì)數(shù)據(jù)包超時(shí)的判斷交由上層協(xié)議完成删咱。源地址
128位目的地址
128位
-
分片
IPv4中采用的是逐跳分片的方式、當(dāng)物理鏈路的MTU過小是才會(huì)分片豪筝、最后在目的地址重組痰滋。過程中存在著一些問題:
- 丟失一個(gè)分片就需要整包重傳。
- 在傳輸過程中的分片越來越多续崖。
- 對(duì)數(shù)據(jù)包的分片消耗了沿途以及目的路由器的時(shí)間敲街。
- 沿途處理IP數(shù)據(jù)包的標(biāo)識(shí)、分片偏移等信息都會(huì)代理額外的開銷严望。
IPv6的分片只能由源節(jié)點(diǎn)和目的節(jié)點(diǎn)進(jìn)行
- 路徑MTU發(fā)現(xiàn)
源路由器可以向目的路由器發(fā)送一個(gè)數(shù)據(jù)包來報(bào)告該路由器上鏈路的MTU值多艇。如果包到達(dá)了一個(gè)必須對(duì)其分片的鏈路、則通過CIMP協(xié)議回送像吻。這種過程可以重復(fù)峻黍、知道確定路徑的最小MTU為止复隆。 - 要求所有支持IP的鏈路必須能夠處理一些合理的最小長(zhǎng)度數(shù)據(jù)包。
如果一個(gè)鏈路最小的MTU為20奸披、那么所有節(jié)點(diǎn)都必須準(zhǔn)備生產(chǎn)可觀數(shù)量的分片包昏名。
通過將最小MTU設(shè)置為允許包長(zhǎng)的最小值、可以消滅分片阵面。
-
擴(kuò)展頭
- 逐跳選項(xiàng)頭
此擴(kuò)展頭必須緊隨在IPv6頭之后轻局。
包含路徑上每個(gè)節(jié)點(diǎn)必須檢查的數(shù)據(jù)、由每個(gè)轉(zhuǎn)發(fā)路由器進(jìn)行檢查样刷。 - 路由頭
指明中途需要經(jīng)過哪些節(jié)點(diǎn)仑扑。 - 分段頭
一個(gè)分段的偏移值、一個(gè)“更多段”標(biāo)志和一個(gè)標(biāo)識(shí)符字段置鼻。 - 目的地選項(xiàng)頭
代替IPv4選項(xiàng)字段镇饮、需要為64位的整數(shù)倍 - 身份驗(yàn)證(AH)頭
對(duì)IPV6頭、擴(kuò)展頭和數(shù)據(jù)的某些部分進(jìn)行加密的校驗(yàn)和的計(jì)算箕母。 - 封裝安全性數(shù)據(jù)(ESP)頭
本身不加密储藐、指明剩余的數(shù)據(jù)已經(jīng)加密。并為已獲得授權(quán)的目的節(jié)點(diǎn)提供解密信息嘶是。
IPv6的尋址
-
基本表示
將128位二進(jìn)制地址表示成8段钙勃、每段4位16進(jìn)制整數(shù)(IPv4為3位8禁止整數(shù)
)。
例如1080:0000:0000:0000:0008:0800:200C:417A
聂喇、不過也可以簡(jiǎn)化成1080:0:0:0:8:800:200C:417A
在混合使用的情況下辖源、可以用最低的32位表示IPv4地址:
0:0:0:0:0:0:192.168.1.1
、當(dāng)然也同樣可以寫作::192.168.1.1
關(guān)于子網(wǎng)掩碼:1080:0000:0000:0000:0008:0800:200C:417A/60
則表示網(wǎng)絡(luò)號(hào)為前60位希太。
-
地址類型
單播地址(Unicast)用于單個(gè)接口的標(biāo)識(shí)符克饶,發(fā)送到此地址的數(shù)據(jù)包被傳遞給標(biāo)識(shí)的接口。通過高序位八位字節(jié)的值來將單播地址與多路廣播地址區(qū)分開來誊辉,多路廣播地址的高序列八位字節(jié)具有十六進(jìn)制值 FF矾湃,此八位字節(jié)的任何其他值都標(biāo)識(shí)單播地址。
任播地址(Anycast)也叫泛播地址堕澄,一組接口的標(biāo)識(shí)符(通常屬于不同的節(jié)點(diǎn))邀跃,發(fā)送到此地址的數(shù)據(jù)包被傳遞給該地址標(biāo)識(shí)的所有接口(根據(jù)路由走最近的路線)、并由里源主機(jī)最近的一個(gè)負(fù)責(zé)響應(yīng)奈偏。任播地址類型代替 IPv4廣播地址。
泛播地址被分配在正常的IPv6單播地址空間以外躯护。因?yàn)榉翰サ刂吩谛问缴吓c單播地址無法區(qū)分開惊来,一個(gè)泛播地址的每個(gè)成員,必須顯式地加以配置棺滞,以便識(shí)別泛播地址裁蚁。
-
組播地址(Multicast)
IPv6中的組播在功能上與IPv4中的組播類似矢渊,表現(xiàn)為一組接口對(duì)看到的流量都很感興趣。
IPv6多播地址有 1111 1111 的格式前綴枉证。IPv6 地址很容易區(qū)分為多播地址矮男,因?yàn)樗偸且?FF 開始。多播地址不能被用作源地址室谚。
具體可以參考《IPv6多播地址基礎(chǔ)知識(shí)》
-
一些常見的IPv6地址或者前綴
:/128 即0:0:0:0:0:0:0:0毡鉴,只能作為尚未獲得正式地址的主機(jī)的源地址,不能作為目的地址秒赤,不能分配給真實(shí)的網(wǎng)絡(luò)接口
::1/128 即0:0:0:0:0:0:0:1猪瞬,回環(huán)地址,相當(dāng)于ipv4中的localhost(127.0.0.1)入篮,ping locahost可得到此地址
2001::/16 全球可聚合地址陈瘦,由 IANA 按地域和ISP進(jìn)行分配,是最常用的IPv6地址
2002::/16 6 to 4 地址潮售,用于6to4自動(dòng)構(gòu)造隧道技術(shù)的地址
3ffe::/16 早期開始的IPv6 6bone試驗(yàn)網(wǎng)地址
注:上面三類屬于單播地址痊项,都是目前互聯(lián)網(wǎng)上廣泛應(yīng)用的IPv6地址
fe80::/10 本地鏈路地址,用于單一鏈路酥诽,適用于自動(dòng)配置鞍泉、鄰機(jī)發(fā)現(xiàn)等,路由器不轉(zhuǎn)發(fā)ff00::/8 組播地址
::A.B.C.D 其中<A.B.C.D>代表ipv4地址盆均,兼容IPv4的IPv6地址塞弊。自動(dòng)將IPv6包以隧道方式在IPv4網(wǎng)絡(luò)中傳送的IPv4/IPv6節(jié)點(diǎn)將使用這些地址
::FFFF:A.B.C.D 其中<A.B.C.D>代表ipv4地址,例如 ::ffff:202.120.2.30 泪姨,是IPv4映射過來的IPv6地址游沿,它是在不支持IPv6的網(wǎng)上用于表示IPv4節(jié)點(diǎn)
IPv6的安全性
-
總體來說有三個(gè)目標(biāo)
- 身份驗(yàn)證
能夠可靠的確定收到的數(shù)據(jù)與發(fā)送的數(shù)據(jù)一致、并且確保發(fā)送該數(shù)據(jù)的實(shí)體與其所宣稱的身份一致肮砾。 - 完整性
數(shù)據(jù)不被修改 - 機(jī)密性
保證數(shù)據(jù)只能被預(yù)期的接受者讀取
IPv6的AH以及ESP頭部都有助于實(shí)現(xiàn)上述目標(biāo)
AH為源節(jié)點(diǎn)提供了在包上進(jìn)行
數(shù)字簽名
的機(jī)制诀黍。
AH之后的數(shù)據(jù)包都是文本格式、可能被攻擊者截取仗处。但是在目的節(jié)點(diǎn)接收之后眯勾、可以使用AH包含的數(shù)據(jù)來進(jìn)行身份驗(yàn)證
。ESP為數(shù)據(jù)內(nèi)容進(jìn)行加密
ESP之后所有的數(shù)據(jù)都進(jìn)行了加密婆誓、ESP頭為接收者提供了足夠的數(shù)據(jù)以對(duì)包的其余部分進(jìn)行解密吃环。