【IPv6】IPv6地址格式及地址分类(组播、单播、任播)整理

IPv6地址格式

       IPv6 地址从 IPv4 地址的 32 bits 扩展到 128 bits,IPv6 地址的表示、书写方式也从 IPv4 的点分十进制,修改16进制的冒号分割

IPv4 点分格式(.)

192.168.11.11

IPv6 冒号分割(:)

2408:8459:3032:0000:0000:0000:0001:a9fd

IPv6 的规范

IPv6 地址,IETF 在标准中规定了 IPv6 的规范文本表示形式:

省略每个字段中的前导零

压缩前:0000:0000:0000:0000:0000:0000:0000:0001
压缩后:::1

使用双冒号 “::” 替换连续全零的字段

       每一块多个前导的0可以省略,一个块全为0可以简写为一个0,,多个块为连续0的话可以简写为:: (地址表示中仅能有一个::)

压缩前:2001:0410:0000:0000:fb00:1200:5000:4500
压缩后:2001:410::fb00:1200:5000:4500

压缩前:2001:0410:0000:1234:fb00:1200:5000:4500
压缩后:2001:410::1234:fb00:1200:5000:4500

压缩前: 3ffe:0000:0000:0000:1010:2a2a:0000:0001
压缩后:3ffe::1010:2a2a:0:1

不允许压缩单个零字段

压缩前: 3ffe:0000:0000:0000:1010:2a2a:0000:0001
压缩后:3ffe::1010:2a2a:0:1

十六进制中的 a, b, c, d, e, f 必须是小写的

2001:0410:0000:1234:fb00:1200:5000:4500

IPv6 地址分类

单播 (Unicast)

        单播地址唯一标识一个 IPv6 节点的接口。发送到单播地址的报文将被发送到由该地址标识的接口。

全球单播地址

       全球单播(Global Unicast) 一般从运营商处申请到的IPv6地址空间为/48,三个最高有效位始终设置为001,再由自己根据需要进一步规划:

       

链路本地单播地址 

        只在本地链路的节点之间使用,不会被路由(不同的链路上可以重复),用来自动地址配置、邻居发现、路由器发现等等,每个ipv6接口都必须具备的地址,且默认自动配置。类似于windows系统中IPv4的169.254.0.0/16地址(link-local IPv4 address)它的有效范围仅仅在所处链路上。以FE80::/10为前缀,11-64位为0,外加一个64bits的接口标识(一般是EUI-64)。

        链路本地地址是仅用于与同一本地链路上的设备进行通信。必须保证这些地址在链路上的唯一性,因为数据包不会被路由到该链路之外。也就是说,路由器不会转发任何以链路本地地址为源地址或目的地址的数据包。所有 IPv6 网络接口都配置链路本地地址,前缀为 fe80::/10 (实际上是 fe80::/64 的子集)。

环回

       与 IPv4 环回地址 127.0.0.1 等价。不能将该地址分配给任何物理接口,主机可以利用此地址向自己发送 IPv6 数据包。在路由器等网络设备上,通常使用环回地址来建立路由协议的邻居。

未指定地址

      未指定地址是全 0 地址,不能分配给接口。未指定地址被用作源地址以表示接口无 IPv6 地址,仅被用做源地址。

本地唯一地址

       其实就是类似ipv4的内网地址,ipv4有三段192.168/16、10/8、172.16~172.31/16,只能在私网内使用,自行配置网段

        本地唯一地址的前缀为:fc00::/7,是对 IPv4 私有地址的替换 (RFC 1918),仅供在一个站点或一组站点中本地使用。本地唯一地址具有全局唯一性,但无法在全球互联网上路由。本地唯一地址解决了 IPv4 和 RFC 1918 地址中出现的一些操作问题,被设计用于企业站点或有限的网络集。
ULAs 必须通过在路由器上配置本地前缀 (Router Advertisement) 或通过 DHCPv6 来分配,地址结

 

内嵌IPv4

        映射 IPv4 地址的 IPv6 地址,用来帮助从 IPv4 迁移到 IPv6,如在 IPv6 套接字上处理 IPv4 连接。使用前缀 ::ffff:0:0/96 (0:0:0:0:0:ffff:0:0/96),例如 ::ffff:192.0.2.124。注意,这里的文本表示方式略有不同,以便更容易在 IPv6 地址中嵌入 32 位 IPv4 地址。

        这个地址就是把IPv4地址包含在IPv6地址中,把IPv6地址的高80位全部设置为0, 然后中间16位设置为1, 低32位设置为IPv4地址。如下图:

image-20210417163307557

组播 (Multicast)

       IPv6 组播(多播)地址是一组接口的标识符(典型在不同节点上)。一个接口可以属于任何数目的组播组。组播地址最高位前8位固定为全1,也就是“FFXX::/8”

       IPv6通信的核心大量的使用了组播(邻居发现协议NDP),IPv6不再使用广播。IPv6的任何节点都能够成为一个组播成员,源节点可以发送数据包到组播组,任何一个组播成员都能收到来自这个组播组的数据包。

well-known组播

Interface-local scope

Link-local scope
 Site-local scope

节点请求(Solicited-Node)

       Solicited-Node多播地址前缀是ff02:0:0:0:0:1:ff00::/104,Solicited-Node多播地址用于主要用于NDP(Neighbor Discovery Protocol)协议,NDP协议的功能有两个:

Address resolution

Duplicate Address Detection (DAD)

       NDP协议的Address resolution功能就类似IPv4的ARP协议,名字都一样,就是根据IP地址请求MAC地址。DAD功能是用来检测局域网中的所有设备的单播地址都是不同的。

        在IPv4环境中,ARP地址解析协议利用广播将MAC请求消息发送给整个以太网链路上的所有主机,目的主机回应ARP Reply从而使发送源获得目的主机的MAC地址。

        节点请求则以一种“点对点”的形式将MAC地址请求消息发送到目标主机(因为主机的请求节点组播地址如FF02::1:FFAA:4C3E在整个链路上是唯一的),所以源主机可以直接将节点请求信息发到目标主机节点请求组播地址上,节点请求组播地址是提高MAC地址解析的核心技术,那么这个目标主机的节点请求组播是如何生成的?

        节点请求组播的构成如下: 该组播地址是将一个单播IPv6地址(可以是本地链路地址也可以是全球单播地址)的后24位填充到一个请求节点组播地址的124位的固定前缀FF02::1:FF中,生成一个唯一的节点请求组播地址。

        如一台IPv6主机的本地链路地址为FECO:0000:0000:0000:0230:18FF:FEAA:4C3E,现在通过对这个地址的实践分析,来理解该地址所对应的节点请求组播地址的构成原理,如下图所示。首先是还原节点请求组播地址的124位固定前缀的标准格式:“FF02:0000:0000:0000:0000:0001:FF”然后取出IPv6主机的本地链路地址FECO:0000:0000:0000:0230:18FF:FEAA:4C3E中的最后24位,填充到“FF02:0000:0000:0000:0000:0001:FF”前缀中,IPv6使用十六进制表达,那么一个十六进制字符是4个二进制位,所以需要将IPv6单播地址中的最后6个字符(二进制为24位)取下填充到124位固定前缀中形成最后的地址:FF02:0000:0000:0000:0000:0001:FFAA:4C3E,最后使用“零压缩”法表示成为:FF02::1:FFAA:4C3E。

 IPv6的组播地址与MAC地址的映射关系

       IPv6的节点请求多播地址去替代了ARP地址解析协议的目标广播地址255.255.255.255,这只能表示IPv6的节点请求从网络层上的优化与改进,在数据链路层优化则是:

        在IPv4的ARP地址解析协议中的请求消息报文的目标链路层地址为FFFF.FFFF.FFFF,那么在IPv6中节点请求消息报文的目标链路层地址是什么?在IPv4中组播的IP地址是可以映射成为数据链路层的MAC地址,在IPv6中这个概念仍然生效,IPv6的节点请求组播地址也可以映射成数据链路层地址,具体方法如下图所示组播的MAC地址是通地IPv6的组播IP地址映射而来,映射的原则是:将IPv6组播地址的后32位取出,填充到固定前缀是3333的MAC地址中来生成数据链路层地址。

Win10系统中通过netsh interface ipv6 show neighbors可查看设备各个接口下的邻居建立情况: 

单播地址到Solicited-Node组播地址的映射

       Solicited-Node组播地址前104位是固定的,还剩下的24位则是来自单播地址,这剩下24位和单播地址是相同的。如下图,把单播地址的低24位拷贝过来,作为Solicited-Node多播地址的低24位。

这个单播地址可以是全局单播地址,也可以是Link-Local单播地址。

Solicited-Node组播地址到MAC地址的映射

        Solicited-Node组播地址要映射到MAC地址上,就是Mac地址的高12位不变,低32位改为Solicited-Node多播地址的低32位。如图所示:


 

组播地址示例

       IPv6 标准为所有的 NTP servers 定义了组播组 ID:0x101
这个组 ID 可以与不同的范围值一起使用:

注意:
临时分配的多播地址只有在定义的范围内才有意义。
组播地址不应用作 IPv6 报文的源地址或出现在任何路由报头中。
node-local scope 修改为 interface-local scope

任播 (Anycast)        

          任播地址的作用是在多台主机或多台路由器提供相同服务的场合下实现冗余性和负载均衡机制。任播并不专用于IPv6,早在1993年的RFC 1546中就已经将任播定义为用于IPv4的试验性规范。该规范为任播定义了专用前缀,使得通过该前缀即可识别任播地址。任播主要应用于DNS和HTTP等服务。为了正确处理这些非全局唯一的地址,该RFC还讨论了需要对TCP做的可能修改。

         但是在实际应用中,任播并没有得到所期望的实现和使用。通常使用的是一种被称为共享单播地址(shared unicast address)的方法。该方法通过将一个普通单播地址分配给多个接口并在路由表中创建多个路由表项。在这种情况下,网络层和传输层都将其视为全局唯一的IP地址。如果不是,那么应用程序中就必须内嵌处理这种有歧义地址的相关机制。一种例外情况就是应用程序采用了独立的无状态请求/应答处理方式,如DNS over UDP。Internet上的根DNS就是使用共享单播地址设立的,该过程无需网络层的任何支持,也能用于IPv6。

        IPv6开发人员在设计之初就考虑如何根据RFC 1546将任播融合到网络层中,因而没有为任播分配特殊前缀。IPv6任播地址空间与全局单播地址完全相同,因而必须为任播参与接口明确说明所配置的是任播地址。在接口包含相同任播地址的区域中,必须在路由表中将每台主机都宣告为一条独立的表项。如果多播接口没有可定义的区域,那么就要通过Internet传播所有的任播表项(这是最坏的一种情况),因而建议不使用或严格限制这类全局任播地址。

        如果网络中的一组路由器都能提供访问公共路由域的能力,那么就可以为这组路由器分配单个地址。客户端向该地址发送数据包时,会被依次转发给可用路由器。一个例子就是RFC 3068中定义的6to4中继任播地址(将在第10章讨论)。移动IPv6规范也使用了任播地址。

       需要注意到是,使用任播地址时,发送端无法控制将数据包发送到特定接口,该决策是在路由协议层面确定的。发送端向任播地址发送多个数据包的时候,数据包可能会到达不同的目的端。因此,如果是一系列请求和应答消息或者数据包被分段了,任播就可能会出现问题。

       RFC 4291 规定的子网路由器的任播地址如下:

        基本上,该地址看起来像一个常规的单播地址,带有指定子网的前缀和设置为全零的标识符。发送到这个地址的数据包将被发送到该子网的一台路由器上。所有路由器都需要支持它们有接口的子网的子网路由器任播地址。

       保留子网任播地址可以有两种格式:   

 

 RFC 2526 规定在每个子网内,最大的 128 个接口标识值将保留为子网任播地址分配。
Reserved anycast IDs

        这种形式的任播地址和共享单播地址之间的主要区别是,在后者中,应用程序需要支持任播,而在前者中,如果可能的话,将避免这种支持。我们需要指导如何使用它和修改现有的有状态传输协议。 

        任播地址与共享单播地址在使用上的主要区别在于,使用共享单播地址时,应用必须支持任播,而使用任播地址时,应用可以不支持任播,因而需要有相应的使用指南并说明如何对现有的状态化传输协议进行修改。Draft-doi-ipv6-anycast-func-term-05.txt描述了IPv6任播的使用条件以及使用要点。 

任播与组播的区别

       任播是将报文转发到一组节点中的一个(仅是一个),而组播却是将 报文转发给一组节点中的所有成员。
        Server A, B, C均申明适用任播地址2001:AD02::1, 路由器根据路由协议决定将目的为2001:AD02::1的报文发给三者中的一个(如:Cost最小的Server C)

IPv6 vs. IPv4 特殊地址

PrefixDesignationIPv4 equivalent
::/128Unspecified
This address may only be used as a source address by an initializing host before it has learned its own addresses.
0.0.0.0
::1/128Loopback
This address is used when a host talks to itself over IPv6. This often happens when one program sends data to another.
127.0.0.1
::ffff/96

Example: ::ffff:192.0.2.47

IPv4-mapped
Used to embed IPv4 addresses in an IPv6 address. One use for this is in a dual-stack transition scenario where IPv4 addresses can be mapped into an IPv6 address. See RFC 4038 for more details.
No IPv4 equivalent. However, you can search for the mapped IPv4 address in the relevant Whois Database.
fc00::/7

Example: fdf8:f535:82e4::53

Unique Local Addresses (ULAs)
Reserved for local use in home and enterprise environments (not public address space).
Private, or RFC 1918 address space:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
fe80::/10

Example: fe80::200:5aee:feaa:20a2

Link-Local Addresses

Used on a single link or a non-routed common access network, such as an Ethernet LAN. They do not need to be unique outside of that link.

May appear as the source or destination of an IPv6 packet. Routers must not forward IPv6 packets if the source or destination contains a link-local address.

169.254.0.0/16
2001:0000::/32

Example: 2001:0000:4136:e378:8000:
63bf:3fff:fdd2

Teredo
This is a mapped address allowing IPv6 tunnelling through IPv4 NATs. The address is formed using the Teredo prefix, the server’s unique IPv4 address, flags describing the type of NAT, the obscured client port, and the client IPv4 address, which is usually a private address. It is possible to reverse the process and identify the IPv4 address of the relay server, which can then be looked up in the relevant Whois Database.
No IPv4 equivalent
2001:0002::/48

Example: 2001:0002:6c:ab::a

Benchmarking
Reserved for use in documentation. They should not be used as source or destination addresses.
198.18.0.0/15
2002::/16

Example: 2002:cb0a:3cdd:1::1

6to4
A 6to4 gateway adds its IPv4 address to this 2002::/16, creating a unique /48 prefix. As the IPv4 address of the gateway router is used to compose the IPv6 prefix, it is possible to reverse the process and identify the IPv4 address, which can then be looked up in the relevant Whois Database.

See how it works on Potaroo.

There is no IPv4 equivalent, but 192.88.99.0/24 has been reserved as the 6to4 relay anycast address prefix by the IETF.
2001:db8::/32

Example: 2001:db8:8:4::2

Documentation
used in examples and documentation. These should never be source or destination addresses.
  • 192.0.2.0/24
  • 198.51.100.0/24
  • 203.0.113.0/24
2000::/3Global Unicast
The operators of networks using these addresses can be found using the RIR Whois servers listed in the IANA registry.
No equivalent single IPv4 block
ff00::/8

Example: ff01:0:0:0:0:0:0:2

Multicast
Used to identify multicast groups. They should only be used as destination addresses, never as source addresses.
224.0.0.0/4

 参考链接

ipv6地址零压缩方法_IPv6地址详解-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/weixin_39983554/article/details/112415232IPv6 地址格式及报文详解_ipv6格式-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/u013669912/article/details/139904198
华为数通 IPv6 全球单播地址、组播、任播 | Leoco-Blog (zleoco.com)icon-default.png?t=O83Ahttps://www.zleoco.com/?p=2155

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/438393.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Axure大屏可视化模板在不同领域中的实际应用案例

一、农业领域 案例背景: 智慧农业是当前农业发展的重要趋势,通过物联网、大数据等技术手段,实现农业生产的智能化管理。Axure大屏可视化模板在智慧农业平台的建设中发挥了重要作用。 实际应用: 农田环境监控:通过Axu…

828华为云征文 | 华为云Flexus云服务器X实例搭建企业内部VPN私有隧道,以实现安全远程办公

VPN虚拟专用网络适用于企业内部人员流动频繁和远程办公的情况,出差员工或在家办公的员工利用当地ISP就可以和企业的VPN网关建立私有的隧道连接。 通过拨入当地的ISP进入Internet再连接企业的VPN网关,在用户和VPN网关之间建立一个安全的“隧道”&#xff…

智慧环保大数据平台建设方案

1. 智慧环保现状与挑战 随着环境问题日益严重,环境事件频发,如贵州都匀矿渣污染、云南南盘江水污染等,以及癌症高发率的出现,智慧环保建设显得尤为重要。智慧环保旨在通过技术手段提升环境管理和决策的智能化水平。 2. 宏观环境…

OpenCV Canny()函数

OpenCV Canny()函数被用来检测图像物体的边缘。其算法原理如下: 高斯滤波:使用高斯滤波器平滑图像以减少噪声。高斯滤波器是一种线性滤波器,可以消除图像中的高频噪声,同时保留边缘信息。计算梯度强度和方向:使用Sobe…

MySQL高阶2010-职员招聘人数2

目录 题目 准备数据 分析数据 总结 题目 一家公司想雇佣新员工。公司的工资预算是 $70000 。公司的招聘标准是: 继续雇佣薪水最低的高级职员,直到你不能再雇佣更多的高级职员。用剩下的预算雇佣薪水最低的初级职员。继续以最低的工资雇佣初级职员&…

【华为HCIP实战课程三】动态路由OSPF的NBMA环境建立邻居及排错,网络工程师

一、NBMA环境下的OSPF邻居建立问题 上节我们介绍了NBMA环境下OSPF邻居建立需要手动指定邻居,因为NBMA环境是不支持广播/组播的 上一节AR1的配置: ospf 1 peer 10.1.1.4 //手动指定邻居的接口地址,而不是RID peer 10.1.1.5 area 0.0.0.0 手动指定OSPF邻居后抓包查看OSP…

自动驾驶-轨迹拼接

在进行自动驾驶的规划之前,要确定当前帧轨迹规划的起点,这个起点常被误认为是当前车辆的位置,即每次以车辆的当前位置进行轨迹规划;其实不是这样的,直观上,这会导致本次次规划的轨迹同上次规划的轨迹之间是…

IDEA 使用技巧与插件推荐

目录 前言1. IDEA 使用技巧1.1 快捷键优化与应用1.2 高效调试与日志分析1.3 代码模板与片段的自定义 2. 插件推荐2.1 MyBatisX2.2 Lombok2.3 CheckStyle-IDEA2.4 Key Promoter X2.5 GitToolBox2.6 Rainbow Brackets 3. IDEA 性能优化3.1 内存与堆栈设置3.2 禁用不必要的插件3.3…

设计模式——责任链模式

哈喽,各位盆友们!我是你们亲爱的学徒小z,今天给大家分享的文章是设计模式的——责任链模式。 文章目录 定义通用类图1.具体代码2.责任链模式的组成:3.责任链模式的优点:4.责任链模式的缺点: 实际应用&#…

向日葵软件安装失败

一开始点击普通下载,下载完毕后,安装了好几次也没安装成功。 查找解决方法后 在控制面板-程序和功能,寻找已安装 的向日葵 手动卸载已安装但是又没成功的向日葵 重新点击普通下载,下载完安装还是失败。 于是改为安全下载&…

夜间道路目标检测数据集 5000张 夜间道路 带标voc yolo

夜间道路目标检测数据集 5000张 夜间道路 带标voc yolo 夜间道路目标检测数据集 5000张 夜间道路 带标voc yolo label | pic_ num | box_ num car: (4907, 43417) pedestrian: (1039, 3520) traffic light: (3276, 15271) traffic sign: (4072, 15821) bicycle: (155, 233) bus…

开发人员智能助手

据说AI可以代替开发人员,目前看暂时不用担心,不仅不担心,还要主动使用它。 过去有了问题需要自己各网站搜索,真真假假的东西太多,很难找到正确答案,现在可以问智能体了: 1、JAVA开发大师 htt…

ElasticSearch备考 -- 多字段查询

一、题目 索引task有3个字段a、b、c,写一个查询去匹配这三个字段为mom,其中b的字段评分比a、c字段大一倍,将他们的分数相加作为最后的总分数 二、思考 通过题目要求对多个字段进行匹配查询,可以考虑multi match、bool query操作。…

【C++】——list的介绍和模拟实现

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:Yan. yan.                        …

1.9 物理层设备

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言1 中继器1.1 基本定义1. 2 工作原理 2 集线器2.1 基本定义2.2 工作原理2.3 冲突域 3 中继器与集线器的比较 前言 计算机网络的物理层是OSI模型中的第一层,主要…

【机器学习】任务六:分类算法(支持向量机(SVM)在线性可分与不可分数据中的应用与可视化分析)

目录 1.知识简介 2.SVM 支持向量机模型训练与可视化报告 2.1 导入本项目所需的模块和包 (1)目的 (2)代码实现 (3)代码解释 2.2 随机生成线性可分的数据并可视化 (1)目的 &a…

Label-Studio ML利用yolov8模型实现自动标注

引言 Label Studio ML 后端是一个 SDK,用于包装您的机器学习代码并将其转换为 Web 服务器。Web 服务器可以连接到正在运行的 Label Studio 实例,以自动执行标记任务。我们提供了一个示例模型库,您可以在自己的工作流程中使用这些模型&#x…

YOLOv11改进 | Conv篇 | YOLOv11引入SAConv模块

1. SAConv介绍 1.1 摘要: 许多现代物体检测器通过使用三思而后行的机制表现出出色的性能。 在本文中,我们在目标检测的主干设计中探索了这种机制。 在宏观层面,我们提出了递归特征金字塔,它将特征金字塔网络的额外反馈连接合并到自下而上的骨干层中。 在微观层面,我们提出…

Blazor流程编排的艺术:深入Z.Blazor.Diagrams库的使用与实践

为现代网页应用开发提供动力的其中一个重要方面就是前端框架的强大功能与灵活性。而在.NET生态中,Blazor以其独特的工作方式和优势逐渐获得了开发者们的青睐。今天,在这篇文章中,我将带你深入探索一个基于Blazor的优秀库——Z.Blazor.Diagram…

TiDB 7.x 源码编译之 TiFlash 篇

本文首发于TiDB社区专栏:https://tidb.net/blog/5f3fe44d 导言 TiFlash 从去年四月一日开源至今已经过去将近一年半,这段时间里 TiFlash 从 v6.0.0-DMR 升级到了 v7.3.0-DMR,并增加了若干新特性,比如支持 MPP 实现窗口函数框架&am…