IPv6地址類型介紹 ipv6是什么意思

如下圖所示,IPv6地址分為單播、組播和任播三種類型

IPv6地址類型介紹 ipv6是什么意思

文章插圖
  • 單播地址(Unicast Address):標識一個接口,目的地址為單播地址的報文會被送到被標識的接口 。在IPv6中,一個接口擁有多個IPv6地址是非常常見的現象 。
  • 組播地址(Multicast Address):標識多個接口,目的地址為組播地址的報文會被送到被標識的所有接口 。只有加入相應組播組的設備接口才會偵聽發往該組播地址的報文 。
  • 任播地址(Anycast Address):任播地址標識一組網絡接口(通常屬于不同的節點) 。目標地址是任播地址的數據包將發送給其中路由意義上最近的一個網絡接口 。
IPv6單播地址全球單播地址
全球單播地址是帶有全球單播前綴的IPv6地址 , 其作用類似于IPv4中的公網地址 。這種類型的地址允許路由前綴的聚合,從而限制了全球路由表項的數量 。其具體格式如下圖所示:
IPv6地址類型介紹 ipv6是什么意思

文章插圖
  • 全局路由前綴:由提供商指定給一個組織機構,一般至少為48bit 。目前已經分配的全局路由前綴的前3bit均為001 。因此前綴為2000::/3 。
  • 子網:組織機構可以用子網ID來構建本地網絡(Site),與IPv4中的子網號作用相似 。子網ID通常最多分配到第64位 。
  • 主機位:用來標識一個設備(Host),與IPv4中的主機ID作用相似 。
鏈路本地地址
鏈路本地地址是IPv6中的應用范圍受限制的地址類型 , 只能在連接到同一本地鏈路的節點之間使用 。它使用了特定的本地鏈路前綴FE80::/10(最高10位值為1111111010),同時將接口標識添加在后面作為地址的低64比特 。
在一個節點啟動IPv6協議棧時,節點的每個接口會自動配置一個鏈路本地地址 。該地址專門用來和相同鏈路上的其他主機通信 。具體格式如下圖所示:
IPv6地址類型介紹 ipv6是什么意思

文章插圖
  • 只能在連接到同一本地鏈路的節點之間使用 , 廣泛應用于鄰居發現、無狀態地址等 。
  • 鏈路本地地址前綴FE80::/10,將接口ID添加在后面作為地址的低64位 。
  • 每一個IPv6接口都必須具備一個鏈路本地地址 。
唯一本地地址
為了代替站點本地地址的功能,又使這樣的地址具有唯一性 , 避免產生像IPv4的私有地址泄漏到公網而造成的問題,RFC4193定義了唯一本地地址 。
  • 唯一本地地址,概念上類似于IPv4中的私網地址,僅能夠在本地網絡使用,在IPv6 Internet上不可被路由 。
  • 唯一本地地址固定前綴FC00::/7 。它被分為兩塊 , 其中FC00::/8暫未定義,另一塊是FD00::/8,其格式如下:

IPv6地址類型介紹 ipv6是什么意思

文章插圖
字段解釋:
  • Prefix:前綴;固定為FC00::/7 。
  • L:L標志位;值為1代表該地址為在本地網絡范圍內使用的地址;值為0被保留,用于以后擴展 。
  • Global ID:全球唯一前綴;通過偽隨機方式產生(RFC4193) 。
  • Subnet ID:子網ID;劃分子網使用 。
  • Interface ID:接口標識 。
特殊地址
  • 未指定地址 。0:0:0:0:0:0:0:0/128 或者::/128 。該地址作為某些報文的源地址,比如作為重復地址檢測時發送的鄰居請求報文(NS)的源地址 , 或者DHCPv6初始化過程中客戶端所發送的請求報文的源地址 。
  • 環回地址 。0:0:0:0:0:0:0:1/128 或者::1/128 。與IPv4中的127.0.0.1作用相同,用于本地回環,發往::/1的數據包實際上就是發給本地,可用于本地協議棧回環測試 。
  • IPv4兼容地址 。在過渡技術中,為了讓IPv4地址顯得更加突出一些 , 定義了內嵌IPv4地址的IPv6地址格式 。在這種表示方法中,IPv6地址的部分使用十六進制表示,IPv4地址部分可用十進制格式 。該地址基本上已經不再使用 。
接口標識生成方法對于IPv6單播地址來說,如果地址的前三bit不是000,則接口標識必須為64位 , 如果地址的前三位是000,則沒有此限制 。
接口ID的長度為64bit,用于標識鏈路上的接口 。在每條鏈路上,接口ID必須唯一 。接口ID有許多用途,最常見的用于就是黏貼在鏈路本地地址前綴后面,形成接口的鏈路本地地址 ?;蛘咴跓o狀態自動配置中,黏貼在獲取到的IPv6全局單播地址前綴后面,構成接口的全局單播地址 。
接口ID可通過3種方法生成:手工配置、系統自動生成和IEEE EUI-64規范生成 。
  • 手工配置:建議在服務器和重要網絡設備上配置 。
  • 系統通過軟件自動生成:保護主機的私密性 。
  • IEEE EUI-64規范自動生成:最常用的方法 。
通過EUI-64規范根據MAC地址生成接口ID
采用EUI-64規范,接口可根據該MAC地址計算得到接口ID,由于MAC地址全局唯一,因此該接口ID也相應的具備全局唯一性 。
計算過程如下:將48bit的MAC地址對半劈開,然后插入“FFFE”,再對從左數起的第7位 , 也就是U/L位取反 , 即可得到對應的接口ID 。
IPv6地址類型介紹 ipv6是什么意思

文章插圖
說明
在單播MAC地址中,第1個Byte的第7bit是U/L(Universal/Local,也稱為G/L,其中G表示Global)位,用于表示MAC地址的唯一性 。如果U/L=0,則該MAC地址是全局管理地址,是由擁有OUI的廠商所分配的MAC地址;如果U/L=1,則是本地管理地址,是網絡管理員基于業務目的自定義的MAC地址 。
而在在EUI-64接口ID中 , 第7bit的含義與MAC地址正好相反,0表示本地管理,1表示全球管理,所以使用EUI-64格式的接口ID,U/L位為1 , 則地址是全球唯一的,如果為0,則為本地唯一 。
IPv6組播地址IPv6的組播與IPv4相同,用來標識一組接口,一般這些接口屬于不同的節點 。一個節點可能屬于0到多個組播組 。發往組播地址的報文被組播地址標識的所有接口接收 。
一個IPv6組播地址由前綴,標志(Flag)字段、范圍(Scope)字段以及組播組ID(Global ID)4個部分組成:
IPv6地址類型介紹 ipv6是什么意思

文章插圖
  • 前綴:IPv6組播地址的前綴是FF00::/8(1111 1111) 。
  • 標志字段(Flag):長度4bit,目前只使用了最后一個比特(前三位必須置0),當該位值為0時 , 表示當前的組播地址是由IANA所分配的一個永久分配地址;當該值為1時 , 表示當前的組播地址是一個臨時組播地址(非永久分配地址) 。
  • 范圍字段(Scop):長度4bit,用來限制組播數據流在網絡中發送的范圍 。
  • 組播組ID(Global ID):長度112bit,用以標識組播組 。目前,RFC2373并沒有將所有的112位都定義成組標識,而是建議僅使用該112位的最低32位作為組播組ID,將剩余的80位都置0 。
IPv6組播地址的MAC地址映射
組播IPv6報文的目的IP地址是組播IPv6地址,而目的MAC地址則必須是組播MAC地址,并且該地址必須與組播IPv6地址對應 。
33-33是專門為IPv6組播預留的MAC地址前綴,MAC地址的后32bit從對應的組播IPv6地址的后32bit拷貝而來 。
IPv6地址類型介紹 ipv6是什么意思

文章插圖
被請求節點組播地址
在IPv4中,當設備需要解析某個IP地址對應的MAC地址時,就會發送一個廣播ARP Request??,之所以要发送广播?。且蛭繁9悴ビ蚰謁薪詰愣寄蓯盞?。然而除了目標節點之外 , 該幀對于其他節點而言是個困擾,因為它們不得不去解析這個?。ㄒ恢苯馕齙紸RP載荷),這個動作將會浪費設備的資源 。
在IPv6中,ARP及廣播都被取消,當設備需要請求某個IPv6地址對應的MAC地址時,設備依然需要發送請求報文 , 但是該報文是一個組播報文,其目的IPv6地址是目標IPv6單播地址對應的被請求節點組播地址,而目的MAC地址則是該組播地址對應的組播MAC地址 。由于只有目標節點才會偵聽這個被請求節點組播地址,因此當其他設備收到該幀時,這些設備可以通過目的MAC地址、在網卡層面就判斷出不需要處理它并將幀丟棄 。
  • 當一個節點具有了單播或任播地址,就會對應生成一個與之相對應的被請求節點組播地址,并且加入這個組播組 。一個單播地址或任播地址對應一個被請求節點組播地址 。該地址主要用于地址解析、鄰居發現機制和地址重復檢測等功能 。
  • 被請求節點組播地址由固定前綴FF02::1:FF00:0/104和對應IPv6地址的最后24bit組成 。被請求節點組播地址的有效范圍為本地鏈路范圍

IPv6地址類型介紹 ipv6是什么意思

文章插圖
IPv6任播地址任播地址是IPv6特有的地址類型,用來標識一組網絡接口(通常屬于不同的節點) 。目標地址是任播地址的數據包將發送給其中路由意義上最近的一個網絡接口 。適合于“One-to-One-of-Many”(一對組中的一個)的通訊場合 。接收方只需要是一組接口中的一個即可,如移動用戶上網就需要因地理位置的不同,而接入離用戶最近的一個接收站,這樣才可以使移動用戶在地理位置上不受太多的限制 。
IPv6地址類型介紹 ipv6是什么意思

文章插圖
【IPv6地址類型介紹 ipv6是什么意思】任播地址從單播地址空間中進行分配 , 使用單播地址的任何格式 。因而,從語法上,任播地址與單播地址沒有區別 。被分配具有任播地址的節點必須得到明確的配置,從而知道它是一個任播地址 。