IPv6知识概述 - IPv6地址

2023-11-10

IPv6知识概述 - IPv6地址

IPv6地址表示

根据RFC4291,IPv6地址有3中格式:首选格式,压缩表示和内嵌IPv4地址的IPv6地址表示。

首选格式

IPv6的地址长度是128位(bit),将这128位的地址按每16位划分为一个段,将每个段转换成十六进制数字,并用冒号隔开,格式如下:

x:x:x:x:x:x:x:x 	(x表示一个4位十六进制数) 

典型的例子如下所示:
2000:0000:0000:0000:0001:2345:6789:ABCD
IPv6地址每段中的前导0是可以去掉的,但是至少要保证每一段有一个数字。将不必要的前导0去掉后,上述地址可以表示为:
2000:0:0:0:1:2345:6789:ABCD

压缩表示

当一个或多个连续的段内各位全为0时,为了缩短地址长度,用::(双冒号)表示,但是一个IPv6地址中只允许用一次,例如下列地址:
2000::1:2345:6789:abcd
FF01::101
::1
::

内嵌IPv4地址的IPv6地址表示

这是IPv4向IPv6过渡的一种特殊表示方法,在这种表示方法中,IPv6地址的第一部分使用十六进制表示,而IPv4地址部分是十进制格式:

x:x:x:x:x:x:d.d.d.d (d表示IPv4地址中的一个十进制数)

IPv6地址分类

IPv6地址整体上分为三类:单播地址,任播地址,组播地址。
单播地址:一个单播地址对应一个接口,发往单播地址的数据包会被对应的接口接收;
任播地址:一个任播地址对应一组接口,发往任播地址的数据包会被这组接口的其中一个接收,被哪个接口接收由具体的路由协议确定;
组播地址:一个组播地址对应一组接口,发往组播地址的数据包会被这组的所有接口接收;
在这里插入图片描述

单播地址

单播地址只能分配给一个节点上的一个接口,即寻址到该单播地址的数据报文最终会被发送到一个唯一的接口。单播地址可以分为链路本地地址,站点本地地址,可聚合全球单播地址等。

单播地址结构

一个主机接口上的128位IPv6单笔地址一般可以被看做成一个整体来代表这台主机,而当要表示这个主机上的接口所连接的网络时,将这个128位IPv6单播地址分成两部分来表示:
在这里插入图片描述其中各字段的含义如下:

  • Subnet Prefix:n位子网前缀,表示接口所属的网络。
  • Interface ID:接口标识,用以区分连接在一条链路上的不同接口。

可聚合全球单播地址

IPv6公网地址,可聚合全球单播地址前缀的最高3位固定为001,其结构如下图所示:
在这里插入图片描述其中各字段的含义如下:

  • Global Routing Prefix:全球可路由前缀,表示了站点所得到的前缀值。全球可路由前缀是由IANA下属的组织分配给ISP或其他机构的,前3位时001。该部分包含有严格的等级结构,用以区分不同地区,不同等级的机构或者ISP,便于路由聚合。
  • Subnet ID:子网ID,表示全球可路由前缀所代表的站点内的子网。
  • Interface ID:接口标识,用于表示链路上不同的接口,并具有唯一性。接口ID可以有设备随机生成或手动配置,在以太网中还可以按EUI-64格式自动生成。

链路本地地址

链路本地地址的应用范围受限,只能在连接到同一本地链路的节点之间使用。在IPv6邻居节点之间的通信协议中广泛使用了该地址,如邻居发现协议,动态路由协议等。
链路本地地址有固定的格式,如下图所示:
在这里插入图片描述链路本地地址由一个特定的前缀和接口ID两部分组成,它使用了特定的链路本地前缀FE80::/64,同事将接口ID添加在后面作为地址的低64位。
当一个节点启动IPv6协议栈时,节点的每个接口会配置一个链路本地地址。这种机制使得两个连接到同一链路的IPv6节点不需要做任何配置就可以通信。链路本地地址使用固定的前缀FE80::/64,接口ID部分使用EUI-64地址。

站点本地地址

站点本地地址是另一种应用范围受限的地址,它只能在一个站点内使用。目前已被废弃,不再使用。

唯一本地地址

唯一本地赋值的结构如下图所示:
在这里插入图片描述其中各字段的含义如下:
1)固定前缀为FC00::/7
2)L:表示地址的范围,如果取值为1,表示本地范围,0保留
3)Global ID:全球唯一前缀,随机方式生成
4)Subnet ID:划分子网时使用

唯一本地地址具有以下特性:
1)具有全球唯一前缀
2)可用于构建VPN
3)具有众所知周的前缀,边界路由器可以很容易对其过滤
4)其地址与ISP分配的地址无关,任何人都可以随意使用
5)一旦出现路由泄露,不会与Internet路由产生冲突,因为其是全球唯一的
6)在应用中,上层协议将其当成全球单播地址对待,简化上层协议

特殊地址

特殊地址主要有两类:未指定地址和环回地址。

  • 未指定地址
    全0,表示某一地址不可用,特别时在报文中的源地址为指定时使用。未指定地址不能用于目的地址。
  • 环回地址
    与IPv4的127.0.0.1功能相同,只在节点内部有效。当路由器收到目的地址是其环回地址的报文时,不能再向链路上转发。

IEEE EUI-64接口ID

EUI-64接口ID时IEEE定义的一种64位的扩展唯一标识符。目前IPv6单播地址基本上都要求接口标识符为64位。IEEE EUI-64格式的接口标识符是从接口的链路层地址(MAC地址)变化而来的。IPv6地址中的接口标识符是64位,而MAC地址是48位,因此需要在MAC地址的中间位置(从高位开始的第24位后)插入十六进制数FFFE(1111111111111110)。为了确保这个从MAC地址得到的接口标识符是唯一的,还要将Universal/Local (U/L)位(从高位开始的第7位)设置为“1”。最后得到的这组数就作为EUI-64格式的接口标识符。如下图所示:
在这里插入图片描述

组播地址

组播地址基本机构

所谓组播,是指一个源节点发送的单个数据报文能被特定的多个目的节点接收到。在IPv6网络中,组播地址有特定的前缀FF::/8来标识,其结构如下图所示:
在这里插入图片描述其中各字段含义如下:
1)Flgs(标志):该段有4位,|0|R|P|T|

  • Flgs的高1位为保留位,必须设置为0;
  • T位如果为置0表示永久分配或者是well-known组播地址,如果置1表示临时分配动态的地址,不固定。
  • P位如果置1的话表示此组播地址是一个基于单播前缀的ipv6组播地址,默认为0,如果P位设置为1,那么T位必须为1。
  • R位如果置1的话表示此组播地址是一个内嵌RP地址的ipv6组播地址,默认为0。

2)Scop(范围):该字段占有4位,用来限制组播数据流在网络中发送的范围。

  • 0 reserved
  • 1 Interface-Local scope–节点本地范围
  • 2 Link-Local scope–链路本地范围
  • 3 reserved
  • 4 Admin-Local scope-管理本地范围
  • 5 Site-Local scope–站点本地范围
  • 6 (unassigned)
  • 7 (unassigned)
  • 8 Organization-Local scope-组织本地范围
  • 9 (unassigned)
  • A (unassigned)
  • B (unassigned)
  • C (unassigned)
  • D (unassigned)
  • E Global scope–全局范围的
  • F reserved

3)Group ID(组ID):该字段长度为112位,用以标识组播组。

被请求节点组播地址

在IPv6组播地址中,有一种特别的组播地址,被称为请求节点组播地址(Solicitted-node Address)。被请求节点组播地址时一种具有特殊用途的地址,主要用于在重复地址检测和获取邻居节点的链路层地址时,代替IPv4中使用的广播地址。
被请求节点组播地址由前缀FF02::1:FF00::/104和单播地址的最后24位组成,如下图所示:
在这里插入图片描述对于节点或路由器的接口上配置的每个单播和任播地址,都自动启用一个对应的被请求节点组播地址。被请求节点组播地址使用范围为链路本地。

众所周知的组播地址

IPv6具有一些众所周知的组播地址,他们具有特殊的含义,如下表所示:

组播地址 范围 含义 描述
FF01::1 节点 所有节点 在本地接口范围的所有节点
FF01::2 节点 所有路由器 在本地接口范围的所有路由器
FF02::1 链路本地 所有节点 在本地链路范围的所有节点
FF02::2 链路本地 所有路由器 在本地链路范围的所有路由器
FF02::5 链路本地 OSPF路由器 所有OSPF路由器组播地址
FF02::6 链路本地 OSPF DR路由器 所有OSPF的DR路由器组播地址
FF02::9 本地链路 RIP路由器 所有RIP路由器组播地址
FF02::13 本地链路 PIM路由器 所有PIM路由器组播地址
FF05::2 站点 所有路由器 在一个站点范围内的所有路由器

任播地址

IPv6特有的地址类型,用于标识一组网络接口。但是与组播地址不同,路由器会将目的地址为任播地址的数据报文,发送给距本路由器最近的一个网络即可。任播适合于“One-to-One-of-Many”的通信场合,接收方只要时一组接口中的任意一个即可。
任播地址从单播地址空间中进行分配,使用单播地址的格式。仅通过地址本身,节点时无法区分任播地址和单播地址的,所以,节点必须使用明确的配置而知名它是一个任播地址。目前,任播地址仅被用做目的地址,且仅分配给路由器。

接口上的IPv6地址

IPv6的一个优点就是在节点的一个接口上可以配置多个IPv6地址,包括单播地址,组播地址等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IPv6知识概述 - IPv6地址 的相关文章

  • 一个寒假能学会黑客技术吗?看完你就知道了

    一个寒假能成为黑客吗 资深白帽子来告诉你 如果你想的是学完去美国五角大楼内网随意溜达几圈 想顺走一点机密文件的话 劝你还是趁早放弃 但是成为一名初级黑客还是绰绰有余的 你只需要掌握好渗透测试 Web安全 数据库 搞懂web安全防护 SQL注
  • 掌握内网渗透之道,成为实战高手,看《内网渗透实战攻略》就够了

    文末送书 文末送书 今天推荐一本网络安全领域优质书籍 内网渗透实战攻略 文章目录 前言 如何阅读本书 目录 文末送书 前言 当今 网络系统面临着越来越严峻的安全挑战 在众多的安全挑战中 一种有组织 有特定目标 长时间持续的新型网络攻击日益猖
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群 很多朋友们接触安全都是通过书籍 网上流传的PDF 亦或是通过论坛里的文章 但可能经过了这样一段时间的学习 了解了一些常见漏洞的原理之后 对于漏洞挖掘还不是很清楚 甚至不明白如何下手 可能你通过 sql labs 初步掌握了sq
  • socket网络编程几大模型?看看CHAT是如何回复的?

    CHAT回复 网络编程中常见的有以下几种模型 1 阻塞I O模型 Blocking I O 传统的同步I O模型 一次只处理一个请求 2 非阻塞I O模型 Non blocking I O 应用程序轮询调用socket相关函数检查请求 不需
  • 网络安全基础知识面试题库

    1 基于路由器的攻击手段 1 1 源IP地址欺骗式攻击 入侵者从外部传输一个伪装成来自内部主机的数据包 数据包的IP是 内网的合法IP 对策 丢弃所有来自路由器外端口 却使用内部源地址的数据包 1 2 源路由攻击 入侵者让数据包循着一个不可
  • 在存储之前对用户的 IP 地址进行加密

    我在用着PHP http www php net and MySQL http www mysql com 我想将用户的IP地址存储到数据库中比较目的 例如 每个 IP 的线程仅允许一个标志 按下面的方法做可以吗 在 PHP 中检索它 ip
  • 静态综合实验

    1 IP地址划分 192 168 1 0 27 用于主干拆分 192 168 1 32 27 用于用户拆分 192 168 1 64 27 用于用户拆分 192 168 1 96 27 用于用户拆分 192 168 1 128 27 用于用
  • 为什么我强烈推荐大学生打CTF!

    前言 写这个文章是因为我很多粉丝都是学生 经常有人问 感觉大一第一个学期忙忙碌碌的过去了 啥都会一点 但是自己很难系统的学习到整个知识体系 很迷茫 想知道要如何高效学习 这篇文章我主要就围绕两点 减少那些罗里吧嗦的废话 直接上干货 CTF如
  • 【无标题】

    大家都知道该赛项的规程和样题向来都是模棱两可 从来不说具体的内容 导致选手在备赛时没有头绪 不知道该怎么训练 到了赛时发现题目和备赛的时候完全不一样 那么本文将以往年信息安全管理与评估赛项经验来解读今年2023年国赛的规程 帮助选手们指明方
  • Android 从主机名获取 ipv6 地址

    我正在尝试从 Android 设备上的主机名获取 IPv6 地址 我的设备是 Nexus 7 和 6 0 1 版本 下面是我使用的API InetAddress inets InetAddress getAllByName hostname
  • 如何判断IPv6地址是否私有?

    我试图确定给定的 IPv6 地址在 C 中是否是私有的 并且我很想简单地使用 IPAddress 类上的 IsIPv6SiteLocal 属性 然而 正如本节中所解释的comment https stackoverflow com ques
  • IPv6 地址的正则表达式

    我有一个 IPv6 地址的正则表达式 如下所示 IPV4ADDRESS t digit 1 3 3 digit 1 3 t x4 xdigit 1 4 xseq x4 x4 0 7 xpart xseq xseq xseq xseq IPV
  • 如何更改 IPV6 地址的字节顺序(从网络到主机,反之亦然)?

    我知道ntoh s l and hton s l 适用于 2 和 4 字节的整数 现在 我面临着转换 16 个字节长的 IPv6 地址的问题 是否有用于此目的的现成函数 TIA Jir 我不确定ntoh and hton与 IPv6 相关
  • 匹配有效 IPv6 地址的正则表达式

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我在编写匹配有效 IPv6 地址的正则表达式时遇到问题 包括压缩形式的地址 使用 或从每
  • Python 中的反向 DNS 查找

    如果我有一个类似 2001 4860 4860 8888 的 IP 地址 如何获得 foo ip6 arpa 格式的完全限定域名 编辑 到目前为止 两个解决方案都给了我 google public dns a google com 也许反向
  • 使用 boost asio 枚举我的卡的 ipv4 和 ipv6 地址

    我正在尝试枚举我的电脑的所有网卡 我有 2 张卡 的 ipv4 和 ipv6 地址 我正在使用以下代码来执行此操作 using boost asio ip tcp boost asio io service io service tcp r
  • Python 3:http.server 支持 ipv6 吗?

    Does http server http作为 Python 3 x 模块 支持 ipv6 例如 使用以下命令行代码 启动网络服务器 python m http server port 从 Python 3 8 开始 python m ht
  • 如何在iOS的Delphi程序中使用IPv6协议

    我尝试在我的移动程序中使用 IPv6 协议 我的服务器位于 NAT 后面的 LAN 内 在服务器上我使用IP端口3000 我已经组织了从路由器端口 45500 到服务器端口 3000 的虚拟服务器 端口转发 在服务器上 我运行 ipconf
  • IPV6 快速可达性

    我是 swift 和 xcode 的新手 并且我的应用程序因 IPV6 而被拒绝 性能 2 1 当我们执行以下操作时 您的应用程序会在运行 iOS 9 3 5 并连接到 IPv6 网络的 iPad 和 iPhone 上崩溃 具体来说 当我们
  • CreateUnicastIpAddressEntry 后无法获取UnicastIpAddressEntry

    背景 我正在尝试加快使用速度RFC7217 https www rfc editor org rfc rfc7217兼容的 ipv6 地址 为此 我编写了创建有效可路由 ipv6 地址的代码 例如2600 8806 2700 115 c4a

随机推荐

  • 用Linux搭建chrony服务器同步时间

    准备工作 在准备之前需要准备两台虚拟机 一台当做服务器使用 另一台当作虚拟机客户端使用 具体方法 鼠标右键某一个虚拟机 gt 点击管理 gt 点击克隆 提示 克隆好虚拟机后 记得修改主机名和IP地址 不然就和第一台冲突了 修改IP地址 使用
  • Tomcat源码:CoyoteAdapter、Valve#invoke、ApplicationFilterChain

    前文 Tomcat源码 启动类Bootstrap与Catalina的加载 Tomcat源码 容器的生命周期管理与事件监听 Tomcat源码 StandardServer与StandardService Tomcat源码 Container接
  • 通过百度驾车API计算一天的总行程

    前提 我们在校车上安装了GPS定位器 每5秒发送一次GPS信息到服务器后台 表结构是这个样子的 名称 行驶日志表 代码 log bus drive 注释 维护行驶日志记录 名称 代码 数据类型 限定 注释 主键 bus drive id l
  • Linux简答

    1 静态库和动态库 2 gcc编译四个阶段 预处理 编译 汇编和链接 标准I O提供了三种类型的缓冲 分别是 单缓冲 双缓冲 循环缓冲 3 Vim的三种模式 命令模式 插入模式 底行模式 i键 进入编译模式 ctrl v 进入可视模式 ES
  • 并发编程系列之volatile内存语义

    前言 前面介绍顺序一致性模型时 我们提到了程序如果正确的同步就会具备顺序一致性 这里所说的同步泛指广义上的同步 其中包括就包括同步原语volatile 那么volatile声明的变量为什么就能保证同步呢 这又是如何实现的呢 今天就让我们一起
  • js混淆与反混淆

    介绍几种js混淆方式 1 eval混淆 js中的eval 方法 就是一个js语言的执行器 它能把字符串解析成javascript的语法进行执行 简单来说就是把原本的js代码当成eval方法的参数 据说此方法出来的第一天就被破解了 修改一下代
  • 用java实现数组单元素操作

    题目 1 如果字符串中的字符为大写字母 则转换为小写字母 2 如果字符串中的字符为小写字母 则直接输出 3 如果字符串中的字符不是字母 则过滤掉 首先明确如何输入字符数组 import java util Scanner class put
  • Web项目中使用容器对象

    要是使用Maven构建项目 首先需要加入Maven依赖
  • 以太坊的RPC机制

    1 go语言的RPC机制 RPC Remote Procedure Call 远程过程调用 是一种通过网络从远程计算机程序上请求服 务 而不需要了解底层网络细节的应用程序通信协议 RPC协议构建于TCP或UDP 或者是 HTTP 之上 允许
  • linux set o,Linux Set 和 shopt 命令

    用set命令可以设置各种shell选项或者列 出shell变量 单个选项设置常用的特性 在某些选项之后 o参数将特殊特性打开 在某些选项之后使用 o参数将关闭某些特性 不带任何参数的set命 令将显示shell的全部变量 除非遇到非法的选项
  • 报这样的错误 error: #35: #error directive: "Please select first th 解决方法

    右键点击工程名 选择第一个options for target 下面选择C C 在define文本框中输入 USE STDPERIPH DRIVER STM32F10X MD MD根据你选择的机种更换为LD或HD
  • 暴击事件

    在许多场景中 我们可能会遇到需要处理一种快速多次触发某事件 并处于某种阈值时 执行某一指定操作 例如 双击 即快速按鼠标左键两次 或更多击 连按键盘某键 某方法被执行数次等 其中 双击有对应的事件可以注册 然而 更多的情况是没有的类似事件方
  • JS中'true'==true为什么返回false

    相等操作符在转换不同的数据类型时 相等和不相等操作符遵循下列基本规则 如果有一个操作数是布尔值 则在比较相等性之前先将其转换为数值 false转换为0 而true转换为1 如果一个操作数是字符串 另一个操作数是数值 在比较相等性之前先将字符
  • OLED拼接屏连接方法,需要注意哪些事项?

    OLED拼接屏是由多个OLED屏幕拼接而成的大屏幕 可以用于展示大型广告 信息发布 舞台背景等场合 在拼接OLED屏幕时 需要注意接法 以确保整个屏幕的显示效果和稳定性 首先 需要选择合适的OLED屏幕 一般来说 拼接屏幕的每个单元都应该是
  • PHP 23种设计模式

    设计模式的目的 重用性 相同功能的代码 不用多次编写 可读性 编程规范性 便于其他程序员的阅读和理解 可扩展性 当需要增加新的功能时 非常的方便 称为可维护 可靠性 当我们增加新的功能后 对原来的功能没有影响 使程序呈现高内聚 低耦合的特性
  • redis 3.0的集群部署

    文章转载自 http hot66hot iteye com blog 2050676 转载请注明出处 http hot66hot iteye com admin blogs 2050676 最近研究redis cluster 正好搭建了一个
  • 使用ChatGPT的gpt-3.5-turbo模型, PHP接入代码

  • CAN 总线通信 简要概括

    CAN 通信总线协议 简要概括 CAN 介绍 CAN 类型 高速 CAN 低速 CAN CAN 总线系统结构 CAN bus通信帧 CAN 基本数据帧结构 CAN 硬件设计 CAN 介绍 CAN Controller Area Networ
  • 2022年Python面试题汇总【面试官爱问】

    2022年Python面试题汇总 常问 1 请你讲讲python获取输入的方式 以及python如何打开文件 2 Python数据处理的常用函数 3 请你说说python传参传引用 4 请你说说python和java的区别 5 Python
  • IPv6知识概述 - IPv6地址

    IPv6知识概述 IPv6地址 IPv6地址表示 根据RFC4291 IPv6地址有3中格式 首选格式 压缩表示和内嵌IPv4地址的IPv6地址表示 首选格式 IPv6的地址长度是128位 bit 将这128位的地址按每16位划分为一个段