天天看點

《DNS與BIND(第5版)》——10.14 IPv6尋址入門

本節書摘來自異步社群《dns與bind(第5版)》一書中的第10章,第10.14節,作者: 【美】joseph davies 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

在介紹接下來的兩個主題(包括如何将域名解析為ipv6位址,以及将ipv6位址逆向解析為域名)之前,最好先了解一下ipv6位址的表示方法和結構。ipv6位址的長度為128位(128bit),其最佳表示方法是使用冒号分隔的8組數字,每組數字由4個十六進制數構成;例如:

《DNS與BIND(第5版)》——10.14 IPv6尋址入門

https://yqfile.alicdn.com/618065b62109d0e6d20b49c27553246d293455ed.png" >

第一組十六進制數(本例中是2001)代表此ipv6位址中最高的16位(16bit)。

在每組數字中,起始的一個或多個0可以被省略,是以可以将上面的位址寫成:

《DNS與BIND(第5版)》——10.14 IPv6尋址入門

https://yqfile.alicdn.com/a23ec6f738678bd74bc89f8530f8692ccd369e52.png" >

除非使用::标記,否則每組數字中必須包含至少一個十六進制數。::标記用來壓縮連續幾組全0的數字。當僅需要指定ipv6位址字首(prefix)時,該标記會非常有用。例如:

《DNS與BIND(第5版)》——10.14 IPv6尋址入門

https://yqfile.alicdn.com/249c0a47063a69e7a3a6a97445d4ef077b23caf1.png" >

用來指定ipv6位址起始的64位為2001:db80:dead:beef,而剩下的64位全為0。

還可以在ipv6位址的開頭使用::标記來指定其字尾(suffix)。例如,ipv6的loopback(環回)位址通常寫成:

《DNS與BIND(第5版)》——10.14 IPv6尋址入門

https://yqfile.alicdn.com/65088127517033ecf5c0593038983d1c103ed4fb.png" >

或者寫成127個0後接着一個1。甚至可以在ipv6位址的中間使用::标記,用來簡寫連續幾組全0的數字:

《DNS與BIND(第5版)》——10.14 IPv6尋址入門

在一個ipv6位址中隻能使用一個::标記,因為多于一個::标記會造成混淆,無法确定每個::标記代表的0的位數。

ipv6位址字首的表示方法類似于ipv4的cidr表示法。作為字首的有效位(significant bit)使用标準的ipv6表示法表示,後面跟着一個斜杠(/)以及一個表示字首确切個數的十進制數。是以,以下3種字首表示方法是等價的(雖然簡潔程度明顯不同):

《DNS與BIND(第5版)》——10.14 IPv6尋址入門

https://yqfile.alicdn.com/3406a2fb146a8f51e14c02e0e294e9f70469e4c5.png" >

ipv6與ipv4網絡号等價的部分,被稱為全球路由字首(global routing prefix)。該字首由ipv6位址的高位(high-order bit)組成,長度可變,用來識别一個特定的網絡。所有全球單點傳播位址(global unicast address)都具有以二進制數001為起始位的全球路由字首。這些位址由位址注冊機構或internet服務提供商(isp)進行配置設定。全球路由字首本身是階層化的,位址注冊機構負責将較低位(lower-order bit)配置設定給各個isp,再由isp負責将最低位(lowest-order bit)配置設定給其客戶。

在全球路由字首之後,ipv6位址包含另一個由若幹位組成的長度可變的數字,用來識别網絡中的特定子網,稱之為子網id(subnet id)。位址中其餘的位用來識别特定的網絡接口,并被稱之為接口id(interface id)。

下面的圖表來自于rfc 3513,展示了這三部分的組合方式:

|    n位      |   m位   |    128-n-m位   |

|  全環路由字首   |   子網id   |   接口id      |

根據rfc 3177的建議,ipv6位址應該以如下方式配置設定給網站。

家庭網絡使用者應該配置設定一個/48的字首。

小型和大型企業應該配置設定一個/48的字首。

超大型使用者應該配置設定一個/47或更短的字首。

上一篇: 測試
下一篇: Hadoop

繼續閱讀