IPV6 簡單總結

1. 轉帖別人的內容

來源:https://www.2cto.com/net/201112/114937.html

2. 本地用IPV6單播地址 (包括鏈路本地單播地址 和 站點本地單播地址)

2.1 ?鏈路本地單播地址

規定了鏈路本地和站點本地兩種類型的本地使用單播地址。鏈路本地地址用在單鏈路上,

而站點本地地址用在單站點上。

鏈路本地地址格式表示如下:

\

注意此地址就是以FE80::x:x:x:x開頭的IPV6地址

設計鏈路本地地址的目的是為了用于諸如自動地址配置、鄰居發現或無路由器存在的單鏈路的尋址。

路由器不能將帶有鏈路本地源地址或目的地址的任何包轉發到其他鏈路上去。

?

2.2 ?站點本地地址具有下面的地址格式:

\

16進制表示為: FEC0::X:X:X:X:X

站點本地地址的設計目的是為了用于無需全球前綴的站點內部尋址。路由器不應轉發站點外具有站點本地源或

目的地址的任何包?

?

然后查看自己機器

?

?

單播地址能自動尋找。

?

接口地址的換算方法

IPv6 接口標識
IPv6 地址的最后 64 位是對于 IPv6 地址的 64 位前綴而言唯一的接口標識。確定接口標識的方法如下:

  • RFC 2373 聲明,所有使用前綴 001 到 111 的單播地址,必須使用由“擴展唯一標識 (EUI) - 64”地址派生的 64 位接口標識。?
  • RFC 3041 描述了隨時間變化而隨機生成的接口標識,以提供某種程度的匿名。?
  • 將在有狀態的地址自動配置(例如,通過 DHCPv6)過程中指派接口標識。DHCPv6 標準目前正在定義中。用于 Windows Server 2003 家族產品和 Windows XP 的 IPv6 協議不支持有狀態地址配置或 DHCPv6。?
  • 手動配置的接口標識。



基于 EUI-64 的IPv6 接口標識(Interface ID)

64 位 EUI 64 地址是由電氣和電子工程師協會 (IEEE) 定義的。將 EUI-64 地址指派給網絡適配器,或從 IEEE802 地址派生得到該地址。
在IPv6無狀態地址自動配置過程以及接口下生成的Link-local鏈路本地地址的過程中,一般是根據EUI-64規則來生成接口ID部分:也就是IPv6地址128位長度中的后64位部分。

IEEE 802 地址

用于網絡適配器的傳統接口標識可使用稱為 IEEE 802 地址的 48 位地址。此地址由 24 位公司 ID(也稱為制造商 ID)和 24 位擴展 ID(也稱為底板 ID)組成。公司 ID(唯一指派給每個網絡適配器的制造商)和底板 ID(在裝配時唯一指派給每個網絡適配器)的組合,即可生成全局唯一的 48 位地址。這個 48 位地址也稱為物理地址、硬件地址或媒體訪問控制 (MAC) 地址。

IEEE 802 地址中的已定義位如下:

  • 全局/本地 (U/L)?

    U/L 位是第一個字節的第七位,用于確定該地址是全局管理的還是本地管理的。如果將 U/L 位設置為 0,那么通過分配唯一的公司 ID,IEEE 已對地址進行了管理。如果 U/L 位被設置為 1,則地址是本地管理的。網絡管理員已覆蓋制造地址,并指定其他地址。
  • 個人/組 (I/G)?

    I/G 位是第一個字節的最低位,用來確定地址是個人地址(單播)還是組地址(多播)。設置為 0 時,地址是單播地址。設置為 1 時,地址是多播地址。對于典型的 802.x 網絡適配器地址,U/L 和 I/G 位均設置為 0,對應于全局管理的單播 MAC 地址。



IEEE EUI-64 地址

IEEE EUI-64 地址代表網絡接口尋址的新標準。公司 ID 仍然是 24 位長度,但擴展 ID 是 40 位,從而為網絡適配器制造商創建了更大的地址空間。EUI-64 地址使用 U/L 和 I/G 位的方式與 IEEE 802 地址相同。


將 IEEE 802 的MAC地址映射到 EUI-64 地址

要從 IEEE 802 的MAC地址創建 EUI-64 地址,則 16 位的 11111111 11111110 (0xFFFE) 將被插入到公司 ID 和擴展 ID 之間的 IEEE 802 地址中。
如下圖中所示:


將 EUI-64 地址映射到 IPv6 接口標識

要獲取用于 IPv6 單播地址的 64 位接口標識,EUI-64 地址中的 U/L 位將進行求反(如果是 1,則被設置為 0;如果是 0,則被設置為 1)。如下圖中所示:


IEEE 802 地址轉換示例

主機 A 的以太網 MAC 地址是 00-AA-00-3F-2A-1C。首先,通過在第三個和第四個字節之間插入 FF-FE 將其轉換為 EUI-64 格式,其結果是 00-AA-00-FF-FE-3F-2A-1C。然后,對 U/L 位(第一個字節中的第七位)求反。第一個字節的二進制形式為 00000000。將第七位求反后,變為 00000010 (0x02)。最后的結果是?02-AA-00-FF-FE-3F-2A-1C,當轉換為冒號十六進制符號時,成為接口標識?2AA:FF:FE3F:2A1C。結果是,對應于 MAC 地址 00-AA-00-3F-2A-1C 的網絡適配器的鏈接本地地址是 FE80::2AA:FF:FE3F:2A1C。
注意:

  • 對 U/L 位求反時,如果 EUI-64 地址是全局管理的,則第一個字節將加 0x2,而如果 EUI-64 地址是本地管理的,則從第一個字節減去 0x2。



在路由器設備上查看該接口的網卡MAC地址:

  1. Router# show interface f0/0
  2. FastEthernet0/0 is up, line protocol is down
  3. ??Hardware is Gt96k FE, address is 0012.7feb.6b40 (bia 0012.7feb.6b40)
復制代碼

我們再查看根據該地址與EUI-64生成的鏈路本地地址與全球單播地址:

  1. Router(config)# interface f0/0
  2. Router(config-if)# ipv6 address 2001:db8::/64 eui-64
  3. Router(config-if)# do show ipv6 interface f0/0
  4. FastEthernet0/0 is up, line protocol is down
  5. ??IPv6 is enabled, link-local address is FE80::212:7FFF:FEEB:6B40 [TEN]
  6. ??No Virtual link-local address(es):
  7. ??Global unicast address(es):
  8. ? ? 2001:DB8::212:7FFF:FEEB:6B40, subnet is 2001:DB8::/64 [EUI/TEN]
復制代碼

/***********************************************************/

IPv6無狀態地址自動配置
以太網接口的接口標識(Interface Identifier)是基于EUI-64(64-bit extended unique identifier)標識的。而該網卡的EUI-64標識是由網卡內建的48位IEEE802地址擴展的。下面先介紹EUI-64的構造方法。
以太網地址的OUI(Organizationally Unique Identifier)部分(即前3個字節)構成EUI-64的company_id部分(即前3字節),EUI的第四、第五個字節是固定的16進制值FFFE。以太網地址的最后3個字節構成EUI-64的最后3個字節。
接口標識是通過將EUI-64的“全球/本地”("Universal/Local")位取反得到的。該位是EUI-64的第一個字節的次低位。由于網卡的內建地址是全球統一管理分配的,因此得到的標識也是全球唯一的。IEEE802或者EUI-64地址的該位為0,而全球唯一的IPv6接口標識的該位為1。
例如一塊網卡的MAC地址為:34-56-78-9A-BC-DE,那么其對應的接口標識應該為:36-56-78-FF-FE-9A-BC-DE。
對于手工設置的或者軟件設置的網卡地址,不應該用來構造接口標識。如果一定要使用這類地址來構造接口標識,那么應該在“U/L”位上反映出該地址是否全球唯一。
用來對一塊以太網卡進行無狀態自動配置的IPv6地址前綴(IPv6 address prefix)的長度必須是64位。

Link-Local Address
以太網卡的IPv6 Link-Local Address是通過該接口的接口標識來構造的。構造方法是:最高的10位為“1111111010”,之后的54位為全0,最后64位為該接口的接口標識。
例如接口標識為:36-56-78-FF-FE-9A-BC-DE,那么對應的IPv6 Link-Local Address為:FE80::3656:78FF:FE9A:BCDE。

臨時地址接口標識
在當今基于 IPv4 的 Internet 中,通常 Internet 用戶連接到 Internet 服務提供商 (ISP),并通過使用點對點協議 (PPP) 和 Internet 協議控制協議 (IPCP) 獲取 IPv4 地址。用戶每次連接時,可能獲得不同的 IPv4 地址。因此,根據 IP 地址很難跟蹤用戶在 Internet 上的通信。

對于基于 IPv6 的撥號連接,通過路由器發現和無狀態地址自動配置建立連接之后,將給用戶指派一個 64 位前綴。如果接口標識總是基于 EUI-64 地址(從靜態 IEEE 802 地址派生得到),就可以標識指定節點的通信,而不用考慮其前綴,從而輕松跟蹤指定用戶及其使用 Internet 的情況。為了解決這個問題并提供某種程度的匿名,在 RFC 3041 中描述了一種備用的 IPv6 接口標識,它是隨機生成的,并且隨時間變化而變化。

初始接口標識通過使用隨機數字來生成。對于不能存儲歷史信息以便生成將來的接口標識的 IPv6 系統,每次初始化 IPv6 協議時都將隨機地生成一個新的接口標識。對于有存儲能力的 IPv6 系統,將存儲歷史值,在初始化 IPv6 協議時,通過以下進程創建新的接口標識:

  • 從存儲區中檢索歷史值,并根據適配器的 EUI-64 地址附加接口標識。?
  • 對步驟 1 中的數量計算“消息摘要 5 (MD5)”單向加密哈希。?
  • 將步驟 2 中計算的 MD5 哈希的最后 64 位另存為用于下次接口標識計算的歷史值。?
  • 提取步驟 2 中計算的 MD5 哈希的前 64 位,并將第七位設置為 0。第七位對應于 U/L 位,當設置為 0 時,表示本地管理接口標識。其結果即為該接口標識。



根據此隨機接口標識得到的 IPv6 地址就稱為臨時地址。臨時地址是為使用無狀態地址自動配置的公用地址前綴生成的。臨時地址用于降低下列有效生存期和首選生存期的值:

  • 生存期包括在收到的“路由器公告”消息中的“前綴信息”選項中。?
  • 有效生存期的本地默認值是 1 周,首選生存期的本地默認值是 1 天。



臨時地址的有效生存期過期之后,將生成新的接口標識和臨時地址。

默認情況下, Windows Server 2003 的 IPv6 協議不會為全局地址前綴創建臨時地址。可以使用?netsh interface ipv6 set privacy state=enabled?命令修改此默認設置。
而Windows XP既有公共(public)全局地址,又有臨時(temporary)全局地址,因為公共全局地址的接口標識部分是根據用戶網卡的硬件地址演化生成,可能會暴露用戶隱私,而臨時全局地址的接口標識部分是隨機生成的,且有時效限制,可以避免用戶隱私泄漏。所以,實際進行IPv6網絡連接時用到的是臨時全局地址。

IEEE相關標準與RFC文檔
也許大家會覺得我們為什么要插入0xFFFE,而且是插入IEEE 802的MAC地址中間?而地址還要進行U/L位的計算等?或者您是IPv6的協議棧開發人員、科研人員,可能對相關標準比較感興趣,那么大家可直接參考IEEE 上的文檔:
GUIDELINES FOR??64-BIT GLOBAL IDENTIFIER (EUI-64)? ?REGISTRATION AUTHORITY:
http://standards.ieee.org/regauth/oui/tutorials/EUI64.html
同時最初是在RFC 2373中進行相關定義,但后續RFC 2373又被RFC 3513所廢除,而IPv6的逐步發展中,RFC 3513又再次被RFC 4291所廢除。
因此目前最新的規范大家可查閱RFC4291,可適當了解各個RFC之間的繼承關系,可能部分書籍與資料也有所介紹相關的RFC編號,但隨著IETF對相關協議的更新與完善,協議標準相關最新的文檔編號也是有所變化的,也是IPv6相關開發或研究人員需要注意的。
http://www.rfc-editor.org/rfc/rfc4291.txt
同時在RFC 5952中也對RFC4291進行了部分更新:
http://www.rfc-editor.org/rfc/rfc5952.txt

?

來源:?http://www.ipv6bbs.cn/thread-210-1-1.html

轉載于:https://www.cnblogs.com/jinanxiaolaohu/p/9770368.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249316.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249316.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249316.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

源碼分析

https://blog.csdn.net/taifei/article/details/73546836

面向對象第一單元總結

一、對面向對象的理解 有位同學給java的面向對象做了一個形象生動的類比,我覺得很有道理,大概按我的理解如下: 結構的形成看圖之前,我們要先明白,世界上是先有了實體,才有了一步步抽象至以上的體系結構&…

理解HTML語義化

1、什么是HTML語義化&#xff1f; <基本上都是圍繞著幾個主要的標簽&#xff0c;像標題&#xff08;H1~H6&#xff09;、列表&#xff08;li&#xff09;、強調&#xff08;strong em&#xff09;等等> 根據內容的結構化&#xff08;內容語義化&#xff09;&#xff0c;…

maven上傳命令

mvn deploy:deploy-file -DgroupIdcom.oracle -DartifactIdojdbc8 -Dversion12.2.0.1 -Dpackagingjar -DfileC:\Users\Admin\Desktop\ojdbc8.jar -Durlhttp://116.247.107.83:8081/repository/maven-releases/ -DrepositoryIdmy-nexus-releases

cocos2dx 開啟控制臺

打開 SimulatorWin.cpp 把這句啟用&#xff1a; #define SIMULATOR_WITH_CONSOLE_AND_MENU 1 這句本來因為#define隱藏了轉載于:https://www.cnblogs.com/mingfuqishi/p/9774301.html

網頁編排規則

所謂大綱&#xff0c;簡單來說就是文檔中各內容區塊的結構編排。可以分為顯式編排和隱式編排2種方式。 顯式編排&#xff1a;明確使用section元素創建文檔結構&#xff0c;在每個內容區塊內使用標題 隱式編排&#xff1a;不明確使用section等元素&#xff0c;根據頁面中所書寫的…

基本動態規劃題集

觀察下面的數字金字塔。寫一個程序查找從最高點到底部任意處結束的路徑&#xff0c;使路徑經過數字的和最大。每一步可以從當前點走到左下方的點也可以到達右下方的點。 在上面的樣例中,從13到8到26到15到24的路徑產生了最大的和86。 【輸入】 第一個行包含R(1≤ R≤1000)&…

springboot項目間接口調用實現:RestTemplate

https://blog.csdn.net/zhanglf02/article/details/89842372

python入門學習的第三天

step 1 時間 Python有兩個模塊&#xff0c;time和calendar&#xff0c;它們可以用于處理時間和日期 首先 import time 導入時間模塊 然后 print time.time() 這個叫時間戳&#xff0c;它是從1970年1月1日午夜到現在時刻的秒數 print time.localtime(time.time()) print time.st…

JavaScript事件詳解

JavaScript與HTML之間的交互是通過事件來實現的。事件&#xff0c;就是文檔或瀏覽器窗口中發生的一些特定的交互瞬間。可以用偵聽器來預訂事件&#xff0c;以便事件發生的時候執行相應的代碼。 事件流 事件流描述了從頁面中接收事件的順序&#xff0c;包括事件冒泡和事件捕獲。…

JavaScript基礎01

JavaScript查漏補缺 JavaScript有幾種數據類型&#xff1f; 0. String(字符串) 1. Number(數值) 2. Boolean(布爾) 3. Null(空值) 4. Undefined(未定義) 5. Object(對象)前 5 種是基本類型 Null類型和Undefined類型的定義和區別&#xff1f; Null類型的值只有一個(null)&#…

.Net Core應用框架Util介紹(五)

上篇簡要介紹了Util在Angular Ts方面的封裝情況&#xff0c;本文介紹Angular封裝的另一個部分&#xff0c;即Html的封裝。 標準組件與業務組件 對于管理后臺這樣的表單系統&#xff0c;你通常會使用Angular Material或Ng-Zorro這樣的UI組件庫&#xff0c;它們提供了標準化的U…

SpringBoot中處理的轉發與重定向

https://blog.csdn.net/yubin1285570923/article/details/83796003

scrapy爬蟲系列之三--爬取圖片保存到本地

功能點&#xff1a;如何爬取圖片&#xff0c;并保存到本地 爬取網站&#xff1a;斗魚主播 完整代碼&#xff1a;https://files.cnblogs.com/files/bookwed/Douyu.zip 主要代碼&#xff1a; douyu.py import scrapy import json from Douyu.items import DouyuItemclass DouyuSp…

glup server 報錯 Task function must be specified

解決方案 今天像往常一樣&#xff0c;編寫文章&#xff0c;并使用gulp bulid壓縮代碼&#xff0c;但是一運行&#xff1a;gulp build 就出現了這個錯誤&#xff1a;AssertionError: Task function must be specified。 gulp項目需要全局安裝gulp和項目內安裝gulp&#xff0c;…

mybatis Example 使用方法

一、mapper接口中的方法解析 mapper接口中的函數及方法 方法 功能說明 int countByExample(UserExample example) thorws SQLException 按條件計數 int deleteByPrimaryKey(Integer id) thorws SQLException 按主鍵刪除 int deleteByExample(UserExample example) thorws SQLE…

gulp + browsersync實現頁面自動刷新

寫習慣了vue&#xff0c;特別喜歡vue的自動刷新功能&#xff0c;于是琢磨在node中如何自動刷新&#xff0c;使用過nodemon&#xff0c; 但是感覺效果差點&#xff0c;看到網上有gulp livereload的方案和gulp browsersync的方案&#xff0c;但都是褒貶不一&#xff0c;先簡單記…

[JZOJ5836] Sequence

Problem 題目鏈接 Solution 吼題啊吼題&#xff01; 首先如何求本質不同的子序列個數就是 \(f[val[i]]1\sum\limits_{j1}^k f[j]\) 其中 \(f[i]\) 表示的是以 \(i\) 結尾的子序列個數 先把原數列的不同子序列個數求出來&#xff0c;然后觀察一下這個轉移&#xff0c;貪心的發現…

numpy和pandas的基礎索引切片

Numpy的索引切片 索引 In [72]: arr np.array([[[1,1,1],[2,2,2]],[[3,3,3],[4,4,4]]]) In [73]: arr Out[73]: array([[[1, 1, 1],[2, 2, 2]],[[3, 3, 3],[4, 4, 4]]])In [74]: arr.nd…

mybatis的Example[Criteria]的使用

https://blog.csdn.net/u014756578/article/details/86490052