IPV6


謝希仁的第七版《計算機網絡》+高校的課程視頻。

王海霖翻譯的第三版《深入解析IPv6》

沙斐翻譯的《IPv6詳解》

陳勇勛第二版的《Linux 網絡安全技術與實現》

華為培訓課程

(書本,源碼,畫圖,思路)

一、IPv6的特性與優勢

1、地址空間巨大。為什么會有IPv6,主要原因IPv4地址不夠用,所以IPv6地址容量大,有128位,地址分成8組,每組兩個字節,用冒號隔開每一組。

2、精簡報文格式。

全新的數據包頭部格式,簡化了頭部信息,沒有校驗位,新增可擴展頭部。目的提高處理頭部信息的速度。頭部得到簡化路由器處理效率提高。

IPv6中包括總長為40字節的8個字段(其中兩個是源地址和目的地址)。

它與IPv4包頭的不同在於,IPv4中包含至少12個不同字段,且長度在沒有選項時為20字節,但在包含選項時可達60字節。

IPv6使用了固定格式的包頭並減少了需要檢查和處理的字段的數量,這將使得路由效率更高。

包頭的簡化使得IP的某些工作方式發生了變化。一方面,所有包頭長度統一,因此不再需要包頭長度字段。

此外,通過修改包分段的規則可以在包頭中去掉一些字段。IPv6中的分段只能由源節點進行:該包所經過的中間路由器不能再進行任何分段。

最后,去掉IP頭校驗和不會影響可靠性,這主要是因為頭校驗和將由更高層協議(UDP和TCP)負責。

3、實現自動配置和重新編址。無狀態和有狀態的地址配置,實現即插即用。無狀態配置沒有DHCPv6服務器情況下自動配置IPv6地址。

4、支持端對端安全。必須支持IPSec頭部,需要進一步了解

5、更好的QOS。對於按照優先級傳輸的支持更加完善。數據流通過8位的“traffic class”字段進行排序,類似IPv4的DSCP。通過流標簽“flow label”字段路由器能夠識別並進行特殊處理某個流的數據包。由於控制流量的信息在頭部中,負載加密了也能正常處理。

6、支持層次化網絡結構。IANA機構統一分配地址。IPv6地址是分級和可匯總的,因此它的路由表會更小,所以查找路由條目更快,路由效率跟高。IPv6地址分配一開始就遵循聚類(AggregaTIon)原則,這使得路由器能在路由表中用一條記錄表示一片子網,大大減小了路由器中路由表的長度,提高了路由器轉發數據包的速度。

7、IPv4由於地址不夠使用NAT技術,IPv6直接端到端通訊,不需要執行地址轉換/發現,所以更快。

8、支持移動特性。

9、鄰居節點交互協議,ICMPv6。

10、流標記。

11、擴展頭:

逐跳選項頭。此擴展頭必須緊隨在IPv6頭之后。它包含包所經路徑上的每個節點都必須
檢查的選項數據。由於它需要每個中間路由器進行處理,逐跳選項只有在絕對必要的時
候才會出現。到目前為止,已經定義了兩個選項:巨型凈荷選項和路由器提示選項。巨
型凈荷選項指明包的凈荷長度超過IPv6的16位凈荷長度字段。只要包的凈荷超過65535
字節(其中包括逐跳選項頭),就必須包含該選項。如果節點不能轉發該包,則必須回送
一個ICMPv6出錯報文。路由器提示選項用來通知路由器,IPv6數據報中的信息希望能
夠得到中間路由器的查看和處理,即使這個包是發給其他某個節點的(例如,包含帶寬
預留協議信息的控制數據報)。
•選路頭。此擴展頭指明包在到達目的地途中將經過哪些節點。它包含包沿途經過的各節
點的地址列表。IPv6頭的最初目的地址是路由頭的一系列地址中的第一個地址,而不是
包的最終目的地址。此地址對應的節點接收到該包之后,對IPv6頭和選路頭進行處理,
並把包發送到選路頭列表中的第二個地址。如此繼續,直到包到達其最終目的地。
•分段頭。此擴展頭包含一個分段偏移值、一個“更多段”標志和一個標識符字段。用於
源節點對長度超出源端和目的端路徑MTU的包進行分段。
•目的地選項頭。此擴展頭代替了IPv4選項字段。目前,唯一定義的目的地選項是在需要
時把選項填充為64位的整數倍。此擴展頭可以用來攜帶由目的地節點檢查的信息。
•身份驗證頭(AH)。此擴展頭提供了一種機制,對IPv6頭、擴展頭和凈荷的某些部分進行
加密的校驗和的計算。
•封裝安全性凈荷(ESP)頭。這是最后一個擴展頭,不進行加密。它指明剩余的凈荷已經
加密,並為已獲得授權的目的節點提供足夠的解密信息。

12、分段 
IPv6的分段只能由源節點和目的節點進行,這樣就簡化了包頭並減少了用於選路的開銷。

目前有兩種方法可以減少或消除對於分段的需求。

第一種方法可用在IPv4中,它使用一種叫做“路徑MTU發現”的方法。

通過這種方法,路由器可以向目的地發送一個包來報告該路由器上鏈路的MTU值。如果包到達了一條必須對其進行分段的鏈路,

負責分段的路38第二部分IPv6細節下載由器將使用ICMP回送一個報文來指出分段路由器上鏈路的MTU值。

這種過程可以重復進行直到路由器確定路徑MTU為止。

另一種減少分段需求的方法是要求所有支持 I P的鏈路必須能夠處理一些合理的最小長度的包。
 

二、IPv4與IPv6的區別。主要對比/分析報文頭。

1、ipv6頭是固定長度40個字節分為8個字段(物理加速較容易),ipv4中需要這個字段是因為它的包頭可能在20字節到60字節間變化。ipv4兩個長度(頭,頭+數據),TOS服務質量,中間三個字段報文分片。
2、IPv6 traffic class == ipv4  TOS。IPV4中間三個字段用來分片,IPV6的分片放在擴展包頭。IPV6 next header == ipv4 protocol。
 

 

 

三、IPv6編址

1 IPV6地址空間,128位長度,16個字節

IPv6 地址=前綴+接口標識 前綴:相當於 IPv4 地址中的網絡 ID 接口標識:相當於 IPv4 地址中的主機 ID

IEEE EUI-64規范:64 bit 的接口標識 ,可由 48 bit 的 MAC 地址轉化為 64bit 的接口標識。

第一個字節的第七位置1,中間插入fffe。

 

單播地址:標識一個接口

組播地址:標識多個接口,目的為組播地址的報文會被送到被標識的所有接口

任播地址:標識多個接口,目的為任播地址的報文會被送到最近的一個被標識接口,最近節點是由路由協議來定義的

全球單播地址(Aggregate Global Unicast Address)

2000::/3

2001:A304:101::E0:F726:4E58

鏈路本地地址(Link Local Address)

FE80::/10

未指定地址(Unspecified Address)

0:0:0:0:0:0:0:0 => ::

環回地址(Loopack address)

0:0:0:0:0:0:0:1 => ::1

組播地址前綴 FF00::/8

被請求節點組播地址

FF02::1:FF7F:3AFC

Well-know組播地址

FF02::1

FF02::2

FF02::16

 

 

 

1.2 IPV6地址語法

  IPv6前綴,前綴是地址的一部分,這部分的值或者是固定的,或者是路由或者子網標識。前綴標識方法:2001:DB8:2A0:2FB3::/64表示一個子網前綴,2001:DB8:2A0:2F::/48表示一個匯總的路由前綴。任何少於64位的前綴要么表示一條匯總的路有條目,要么是一段IPv6地址空間的地址范圍匯總(IPv4子掩碼)。IPv6沒有可變長度子網前綴的表示方法,IPv6地址的子網前綴和接口標識符長度是五五開。 

1.3IPv6地址類型,單播GUA(Global unicast address)

全球單播地址

 

 

 

 

1.4

 

鏈路本地地址 LLA  FE80::/10

與同一鏈路上的鄰居節點通信。

鄰居發現

無狀態地址

1.5

唯一的本地地址:ULA

 

 

 一種組織機構的私有地址(即不能再IPv6 Internet中路由),fd93:c7aa:da80::/48

 

 

1.6

特殊的IPv6地址

未指定的地址 ::/128

環回地址 ::1/128

1.7 組播

1.8 任播

1.9  接口標識符:

EUI-64:

 

 手工配置:

隨機生成:

 

2.1、 IPV6報文頭

 

通信流類別,或者說是優先級別

拓展頭部

 

 

2.2 ICMPV6:

 

  

 

 

 

 

 

 

 

 

 

路由器配置: dhcpv6=server,ra=server

這時候,odhcp6c可以獲取到兩個地址,一個dhcpv6分配的地址,一個通過RA協議自己算出的地址。

路由器也把dhcpv6和ra兩個服務器都開起來(ubuntu把isc-dhcp和radvd服務器都開起來)

這兩種都是用bai來為客戶端分配IPV6地址的。du
<1>radvd用於無狀態自動配置地址,客戶端通過網zhi絡接口接收路由器宣告的dao全局地址前綴,再結合接口ID形成全球單播地址,但是這種配置不能獲取DNS。
<2>dhcpv6用於有狀態自動配置地址,類似於ipv4的dhcp,客戶端從服務器的地址池中配置地址,可獲取到DNS。

 

談及IPv6, 常涉及這些名詞

  1. native ipv6 即純ipv6網絡,沒有IPv4地址的網絡。ipv6 Native模式,下流所有主機都是使用由ISP分配原生ipv6進行上網。我們使用relay,使下流主機直接通過ISP獲取ipv6。
  2. dual stack 即雙棧,比如設備一個接口同時有ipv6和ipv4地址。
  3. NAT64 即一台設備對IPv6進行地址轉換,以便訪問IPv4網絡。ipv6 nat6與ipv4 nat相似,內部建立nat局域網,公用一個原生ipv6進行上網。
    注意:如果你已經配置了relay,請恢復openwrt1806的默認情況下,在進行一下配置
  4. IPv6 over IPv4 即IPv6數據包被IPv4的數據包封裝。數據包最外層是ipv4的地址,里層是ipv6地址。
  5. DNS64 即當一台純IPv6設備訪問IPv4網站,DNS服務器將IPv4網站的IP合成一個IPv6地址給純IPv6設備。

 

openwrt配置ipv6:ipv6 Native模式與ipv6 nat6

https://blog.csdn.net/dengxinfa/article/details/103791465

 

小米路由器的ipv6不支持二級路由下發
也就是小米路由器必須連接光貓,你才能獲取公網的ipv6,否則就是一個內網的ipv6

比如:
光貓——A路由器(撥號)——小米路由器
這種情況你選native、nat6、靜態,都無法獲取外網ipv6
lan口只能分配“fe80:”開頭的內網地址
而我們要的是外網ipv6地址
國內一般是240e(電信)、2408(聯通)、2409(移動)開頭的
如果不是這個開頭的,等於還是沒公網ip

 

 

 

 

 參考書本:

深入解析IPv6(第三版)  [美]Joseph Davies 著   王海霖 譯 人民郵電出版社

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM