《DNS与BIND(第5版)》——10.14 IPv6寻址入门

简介:

本节书摘来自异步社区《DNS与BIND(第5版)》一书中的第10章,第10.14节,作者: 【美】Joseph Davies 更多章节内容可以访问云栖社区“异步社区”公众号查看。

10.14 IPv6寻址入门

在介绍接下来的两个主题(包括如何将域名解析为IPv6地址,以及将IPv6地址逆向解析为域名)之前,最好先了解一下IPv6地址的表示方法和结构。IPv6地址的长度为128位(128bit),其最佳表示方法是使用冒号分隔的8组数字,每组数字由4个十六进制数构成;例如:


<a href=https://yqfile.alicdn.com/618065b62109d0e6d20b49c27553246d293455ed.png" >

第一组十六进制数(本例中是2001)代表此IPv6地址中最高的16位(16bit)。

在每组数字中,起始的一个或多个0可以被省略,因此可以将上面的地址写成:


<a href=https://yqfile.alicdn.com/a23ec6f738678bd74bc89f8530f8692ccd369e52.png" >

除非使用::标记,否则每组数字中必须包含至少一个十六进制数。::标记用来压缩连续几组全0的数字。当仅需要指定IPv6地址前缀(prefix)时,该标记会非常有用。例如:


<a href=https://yqfile.alicdn.com/249c0a47063a69e7a3a6a97445d4ef077b23caf1.png" >

用来指定IPv6地址起始的64位为2001:db80:dead:beef,而剩下的64位全为0。

还可以在IPv6地址的开头使用::标记来指定其后缀(suffix)。例如,IPv6的loopback(环回)地址通常写成:


<a href=https://yqfile.alicdn.com/65088127517033ecf5c0593038983d1c103ed4fb.png" >

或者写成127个0后接着一个1。甚至可以在IPv6地址的中间使用::标记,用来简写连续几组全0的数字:


eb14dfc674aada61f00c07646bf85f8cc749ea6c

在一个IPv6地址中只能使用一个::标记,因为多于一个::标记会造成混淆,无法确定每个::标记代表的0的位数。

IPv6地址前缀的表示方法类似于IPv4的CIDR表示法。作为前缀的有效位(significant bit)使用标准的IPv6表示法表示,后面跟着一个斜杠(/)以及一个表示前缀确切个数的十进制数。因此,以下3种前缀表示方法是等价的(虽然简洁程度明显不同):


<a href=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或更短的前缀。

相关文章
|
12月前
|
存储 索引 Python
Python入门:6.深入解析Python中的序列
在 Python 中,**序列**是一种有序的数据结构,广泛应用于数据存储、操作和处理。序列的一个显著特点是支持通过**索引**访问数据。常见的序列类型包括字符串(`str`)、列表(`list`)和元组(`tuple`)。这些序列各有特点,既可以存储简单的字符,也可以存储复杂的对象。 为了帮助初学者掌握 Python 中的序列操作,本文将围绕**字符串**、**列表**和**元组**这三种序列类型,详细介绍其定义、常用方法和具体示例。
Python入门:6.深入解析Python中的序列
|
12月前
|
存储 Linux iOS开发
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
|
11月前
|
Web App开发 移动开发 前端开发
React音频播放器样式自定义全解析:从入门到避坑指南
在React中使用HTML5原生&lt;audio&gt;标签时,开发者常面临视觉一致性缺失、样式定制局限和交互体验割裂等问题。通过隐藏原生控件并构建自定义UI层,可以实现完全可控的播放器视觉风格,避免状态不同步等典型问题。结合事件监听、进度条拖拽、浏览器兼容性处理及性能优化技巧,可构建高性能、可维护的音频组件,满足跨平台需求。建议优先使用成熟音频库(如react-player),仅在深度定制需求时采用原生方案。
487 12
|
11月前
|
Java 关系型数据库 数据库连接
Javaweb之Mybatis入门程序的详细解析
本文详细介绍了一个MyBatis入门程序的创建过程,从环境准备、Maven项目创建、MyBatis配置、实体类和Mapper接口的定义,到工具类和测试类的编写。通过这个示例,读者可以了解MyBatis的基本使用方法,并在实际项目中应用这些知识。
287 11
|
11月前
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
|
机器学习/深度学习 数据采集 数据挖掘
Python编程语言的魅力:从入门到进阶的全方位解析
Python编程语言的魅力:从入门到进阶的全方位解析
|
网络协议 大数据 云栖大会
2024云栖大会 预告:IPv6与DNS基础资源专场
2024云栖大会 预告:IPv6与DNS基础资源专场
2024云栖大会 预告:IPv6与DNS基础资源专场
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
493 3
|
网络协议 网络安全
基于bind软件部署DNS服务器
关于如何使用bind软件部署DNS服务器的教程,包括DNS服务器的类型、基于bind软件的部署步骤、验证DNS服务器可用性的指导,以及如何进行DNS正向解析的实现。
615 2
基于bind软件部署DNS服务器
|
XML 存储 网络安全
ROS入门(二):launch文件解析
该文章是关于ROS入门的第二篇教程,详细解析了ROS中的launch文件,包括其运行方式、XML格式规范、标签使用、参数替代、条件属性以及通过简单和复杂案例来演示launch文件的使用,最后介绍了如何在参数服务器上设置参数。
ROS入门(二):launch文件解析

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS