IPv6 地址创建 EUI-64 格式接口 ID 的过程

IPv6 接口标识符

IPv6 地址中的接口标识符(ID)用于识别链路上的唯一接口,有时被称为 IPv6 地址的 “主机部分”。接口 ID 在链路上必须是唯一的,始终为 64 位长,并且可以根据数据链路层地址动态创建。

MAC 地址 中的 L/G 位(有时也称为 U/L 位)和 I/G 位都位于每个 MAC 地址的最高有效字节中,其中 I/G 位是该字节中最低有效位,L/G 位是该字节中第二低有效位。

IG 位区分 MAC 地址是单播地址还是组播地址。I/G 位为 0 表示是单播地址,I/G 位为 1 表示是组播地址。

U/L 位指示接口 ID 是本地唯一(仅在该链路上)还是全局(全球)唯一;从全球唯一 MAC 地址派生的 ID 被认为是全局唯一的。
接口 ID 的第一个字节中的第八位是用于管理多播组的 I/G 位;它不会改变。

在绝大多数情况下(广播消息除外),会看到两个位都设置为 0(单播和供应商分配)。
在这里插入图片描述

EUI-64 格式接口 ID 生成过程

接口的数据链路层类型决定了 IPv6 接口 ID 的动态创建方式以及地址解析的工作方式。

以太网中的 EUI-64 格式接口 ID 是通过在 MAC 地址的组织唯一标识符 OUI 字段(前三个字节) 和在供应商代码 EUI 字段(后三个字节)之间插入十六进制数 FFFE ,并在 OUI 字段最高有效字节中翻转 U/L 位与网络前缀结合派生的。
翻转 U/L 位

原 U/L 位如果是 0(表示全局唯一),则转换为 1;如果是 1(表示本地管理),则转换为 0。

插入 FFFE

在翻转后的 MAC 地址 OUI 字段和 EUI 字段之间插入十六进制数 FFFE,使原来的 48 位 MAC 地址扩展到 64 位。

生成接口 ID

将从 48 位 MAC 地址扩展得到的 64 位字段与网络前缀结合形成完整的 EUI-64 格式的接口 ID 地址。

3 张图 3 个角度 一目了然的图解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

EUI-64 在 IPv6 无状态自动配置(SLAAC)中的作用

在无状态自动配置过程中,每个 IPv6 设备利用 EUI-64 方法自动生成其接口 ID,同时通过监听RA(Router Advertisement,路由器通告)消息来获取网络前缀。RA 消息包含了网络的前缀信息以及其他配置参数。设备将获取到的前缀与自己生成的接口 ID 结合,就可以得到一个全局唯一的 IPv6 地址,无需任何人工干预或 DHCP 服务器的支持。

  • 下文《MAC 地址格式详解》引自 51cto 刘长卿 2016-04-02

MAC 地址格式详解

MAC(Medium Access Control,介质访问控制),它通常被固化在每个 NIC(Network Interface Card,以太网网卡)。MAC 地址长 48 位(6 字节),采用十六进制格式。

24 位 OUI(组织唯一标识符)由 IEEE(电气和电子工程师协会)分配给厂商,厂商再用其他的 24 位 EUI(扩展唯一标识符)为其生产的每个网卡分配一个全球唯一的全局管理地址 。
在这里插入图片描述

I / G( Individual / Group )

如果 I/G = 0,则是某台设备的 MAC 地址,即单播地址;如果 I/G = 1,则是多播地址(组播 + 广播 = 多播)。

G / L( Global / Local,也称为 U/L 位,其中 U 表示 Universal )
如果 G/L = 0,则是全局管理地址,由 IEEE 分配;如果 G/L = 1,则是本地管理地址,是网络管理员为了加强自己对网络管理而指定的地址。

在数据链路层,数据帧通常依赖于 MAC 地址来进行数据交换。数据传输是按字节逐位传输的,一个字节传输完了才到下一个字节。对于 I/G 和 G/L 位的位置,目前有两种说法,或者说两种格式。
在这里插入图片描述

第一种,每个字节的高位在前,低位在后,I/G 位和 G/L 分别在字节中的最低位和次低位,最高位先发送,到了对端还是最高位

第二种,每个字节的低位在前,高位在后,I/G 位和 G/L 分别在字节中的最低位和次低位,最低位先发送,到了对端还是最低位

两种看似不一样,但是结果还是一样的。

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

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

相关文章

Jenkins安装 :Aws EC2下Docker镜像安装

1 安装docker # 安装docker $ sudo yum install -y docker# 启动docker daemon $ sudo systemctl start docker# 用户加入docker组 $ sudo usermod -aG docker username 2 docker安装jenkins $ docker pull jenkins/jenkins:lts# 安装成功 $ docker images REPOSITORY …

逻辑这回事(一)----编码规范

说明:优先级是M的规则为强制项,优先级为R的规则为建议项。 通用约束 应有全局观念。 优先级:M 说明:你所编写的代码在成为最终硅片上的一部分之前,需要经过许多设计者利用各种各样的工具进行各种各样的处理。有时&…

解决vue3项目vite打包忽略.vue扩展名

项目打包时报could not relolve “...”,因为vite已不再默认忽略.vue扩展名。 解决方法如下: 在vite.config.js中配置vite使其忽略 .vue 扩展名(不建议忽略) 注意:即使忽略了.vue文件,在实际写的时候也要加…

达梦8 RLOG_COMPRESS_LEVEL参数对系统的影响

测试环境是一套主备达梦数据库。下面在主备库分别设置参数进行测试 测试一、 主库设置RLOG_COMPRESS_LEVEL9&#xff0c;备库设置为0。 分别删除主备库的归档日志后执行测试脚本 #当前时间 date disql SYSDBA/SYSDBA:1807 <<EOF #显示归档大小 select sum(free)/1024…

【独家揭秘!玩转ChatGPT?一文带你解锁秘籍!】

&#x1f680;【独家揭秘&#xff01;玩转ChatGPT&#xff1f;一文带你解锁秘籍&#xff01;】&#x1f680; &#x1f449; 【直达ChatGPT体验站】 ChatGPT&#xff0c;全称“Chat Generative Pre-trained Transformer”&#xff0c;是人工智能研究实验室OpenAI于2022年底推出…

HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求。...

在做MVC站点时(使用IIS版本为7.5)&#xff0c;使用Get请求&#xff0c;当Url里查询字符串过长时&#xff0c;会出现如下错误&#xff1a; 出现该错误的原因为&#xff1a;IIS7.5对于Query String有长度限制&#xff0c;默认为2048。 按照图中可尝试的操作提示&#xff0c;可以…

Redis(1)-Jedis连接配置

问题 阿里云安装并启用Redis后&#xff0c;尝试在本地用Jedis调用&#xff0c;发现报错 public class Jedis01 {Testpublic void connect(){Jedis jedis new Jedis("101.37.31.211", 6379); // 公网ipjedis.auth("123"); // 密码String ping jedis.pin…

MySQL中的sql语句

MySQL中的sql语句 DML、 DDL、 DCL DML(Data Manipulation Language)&#xff0c;用于对数据库中的数据进行操作&#xff0c;包括插入、查询、更新和删除数据等操作。常见的 DML 命令包括 SELECT&#xff08;查询&#xff09;、INSERT&#xff08;插入&#xff09;、UPDATE&a…

stm32H743不要将主频设置到480MHz

0 问题描述 本文使用的stm32H743是V版本&#xff0c;支持最高480MHz的主频。但在将主频设置为480MHz之后&#xff0c;使用FDCAN的回环模式出现了各种接收不到的异常问题。经过一番排查&#xff0c;将主频修改到400MHz&#xff0c;同时降低芯片内部LDO输出电压后恢复了正常。 …

jQuery实现瀑布流

以下是使用jQuery实现瀑布流的示例代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <titl…

Qml:键盘事件

import QtQuickWindow {width: 640height: 480visible: truetitle: qsTr("Test KeyEvent")//传递给活动窗口的QQuickWindow//传递给当前活动的Item&#xff08;focus为true&#xff09;&#xff0c;如没则找子节点中的&#xff0c;都没有则忽略Item{id:item1//focus:…

“定融”爆大雷,害苦有钱人

据《大猫财经》Pro(ID:caimao_shuangquan)报道&#xff0c;中植系的恒天财富有5名理财顾问被抓了。其实因为涉及刑事犯罪&#xff0c;中植系不少高管之前已经进去了&#xff0c;现在进去的这几个&#xff0c;是追赃过程中遇到的不配合的那些人。 这个消息是从“恒天财富”内部…

基于51单片机的火灾检测设计(仿真+程序+原理图+论文报告+讲解视频)

基于51单片机的火灾检测设计 基于51单片机的火灾检测设计&#xff08;仿真程序原理图论文报告&#xff09;功能要求仿真图&#xff1a;原理图&#xff1a;源程序&#xff1a;论文/报告&#xff1a;资料清单&#xff1a; 基于51单片机的火灾检测设计&#xff08;仿真程序原理图论…

【MySQL精通之路】InnoDB存储引擎

此博客为草稿&#xff0c;优先发布只为了获取主博客的地址 可以随时催更。。 1 InnoDB简介 2 InnoDB和ACID模型 【MySQL精通之路】InnoDB(2)-ACID模型-CSDN博客 3 InnoDB多版本管理 【MySQL精通之路】InnoDB(3)-MVCC多版本管理-CSDN博客 4 InnoDB架构图 【MySQL精通之路…

算法课程笔记——矩阵乘法整除同余LCMGCD

算法课程笔记——矩阵乘法&整除&同余&LCM&GCD bool相等 不需要库函数 只有除法不是 本身就很大&#xff0c;如果不行就要考虑其他方法

通关!游戏设计之道Day14

力量与你同在 所有类型的游戏里&#xff0c;赛车类&#xff0c;解谜类&#xff0c;动作冒险类和射击类你都能找到强化道具。 强化道具 设计强化道具时&#xff0c;设计师应该开动脑筋琢磨下面几个问题 1.强化道具有什么用&#xff1f; 2.他长什么样子&#xff0c;在整个游戏…

Lua获取表的长度

1.代码 -- 创建一个表并添加一些元素 local myTable {10, 20, 30, 40}-- 打印表的长度 print(#myTable) -- 输出 4&#xff0c;因为表中有 4 个元素-- 使用 # 来遍历表中的所有元素 for i 1, #myTable doprint(myTable[i]) end -- 这将依次打印 10, 20, 30, 40

C++知识点总结(35):快速幂

快速幂 一、意义1. 快速幂2. 时间复杂度 二、思想1. 模运算规则2. 幂的意义 三、程序模板 一、意义 1. 快速幂 快速幂是一种通过快速计算一个数的幂的方法。它主要用于对大数进行幂运算&#xff0c;以减少计算时间。 2. 时间复杂度 将一个数的幂表示为指数表达式&#xff0c;例…

CentOS配置应用服务自启动

1、创建服务脚本 cd /etc/systemd/system vim zhhg-service-prod.service 写入&#xff1a; [Unit] Descriptionzhhg-service-prod Afternetwork.target[Service] Typeforking Usermyuser ExecStartsh /home/cloud/zhhg-service-prod/restart.sh ExecStop/bin/kill -TERM $MAI…