IPv6地址分类,EUI-64转换规则
1、可聚合的单全球单播地址Global Unique Address:
Aggregate global unicast address,前3位是001,即2000::/3,目前IANA已经将一部分可聚合全球单播进行了专门使用,如:2001::/16用于IPV6互联网,2002::/16用于6to4网络
对于地址的IPV6全球单播地址的划分:3.14(Pi法则)
3:代表全球路由前缀为3个16位组,即48bit。
1:代表子网ID部分为1个16位组,即16bit。
4:代表接口ID部分为4个16位组,即64bit。
2、链路本地地址:link-local address
前缀:FE80::/10
范围:只能在本地链路使用,不能在子网间路由
3、站点本地地址:site-local address
IPV6的私网地址,就像IPV4中的私网保留地址一样
前缀:FD00::/8 其后的56比特用于子网ID 最后64位用于主机ID
范围:只能在本站点内使用,不能在公网上使用
如:在本地分配十个子网
1、FD00:0:0:0001::/64
2、FD0:0:0:0002::/64
3、FD0:0:0:0003::/64
4、组播地址:Multicast
IPV6中没有广播,用组播来代替,对应于一组接口的地址,且这些接口分属于不同的节点,会被每个接口接收,前8位为1,前缀:FF00::/8
1111 1111 4bit 4bit 112bit
|→固定值←||→标志←| |→范围←|→组ID←|
标志位为0000表示是永久保留的组播地址,分配给各种技术使用,标志位为0001表示是用户可使用的临时组播地址
范围段定义了组播地址的范围,其定义如下:
十六进制 范围类型
FF01::1 本地接口范围内
FF01::2 本地接口范围内
FF01::3 本地子网范围
FF01::4 本地管理范围
FF01::5 本地站点范围 类似组播的私网地址
FF01::8 组织机构范围
FF01::E 全球范围 类似组播的公网地址
下面是一些组播指定地址:
FF02::1 all nodes 在本地接口范围的所有节点组播地址
FF02::2 all routers 在本地链路范围的所有路由器组播地址
FF02::5 all ospf routers
FF02::9 all rip routers 所有运行RIP的路由器
FF02::A all eigrp routers 所有运行eigrp的路由器
FF05::2 在一个站点范围内的所有路由器
测试:路由器上可ping一下组播地址:ping ipv6 ff02:::1
b.被请求节点的组播地址solicited-node multicast address
还有一种被请求节点的组播地址solicited-node multicast address,它的前104位是固定的,即:FF02::1:FF00:0000/104,后面24位是单播或者任播的低24位地址。主要用于替代IPv4的ARP来获取邻居的MAC以生成邻居表,并用在局域网中进行地址冲突检测。一种特殊的组播地址,对于节点或路由器的接口上配置的每个单播和任意播地址,都会自动生成一个对应的被请求节点组播地址。注意link-local address也会生成一个被请求节点的组播地址。
FF02::1:FF00:1 全球单播地址对应的被请求节点的组播地址
FF02::1:ff00:300 本地链路单播地址对应的被请求节点的组播地址
工作范围:只在本地链路上有效
特点:1、在本地链路上,被请求节点的组播地址组中通常只包含一个用户
2、只要知道一个节点的IPV6地址,就能计算出它的被请求节点的组播地址
作用:1、在IPV6中,没有ARP。ICMP代替了ARP的功能,被请求节点的组播地址被节点用来获得相同本地链路上邻居节点的链路层地址
3、用于重复地址检测DAD,在使用无状态自动配置将某个地址配置为自已的IPV6地址之前,节点利用DAD
验证在其本地链路上该地址是否已经被使用。
前缀:FF02:0000:0000:0000:0000:0001:FFxx:xxxx/104
FF02::1:FFxx:xxxx/104
如何产生:被请求节点组播地址的前104位固定,将IP地址的后24位移下来填充到后面就可以了
例如:IPv6---2001::1234:5678/64
被请求节点组播地址---FF02::1:FF34:5678/104
其中FF02::1:FF为固定部分,共104位
组播IP地址到MAC地址的映射:
映射规则:组播MAC地址的前16位固定为0x3333,将组播IPV6地址的后32位直接映射到组播MAC地址的后32位就可以了。
例:IPV6地址为--FF12::1234:5678/64
对应的组播MAC地址为--3333:1234:5678
0x3333为固定前缀
例:所有节点的组播地址:FF02::0001
对应的组播MAC地址:3333:0000:0001
c.组播地址到MAC地址的映射:
组播地址是在网络层中应用,在以太网中,还需要链路层来封装传输数据帧,所以需要将组播地址映射成MAC地址。IPv4中,其映射关系是前24位固定为0100.5E,第25位为0,然后再加上组播地址的低23位。而在IPv6中,映射关系是前16位固定为3333,再加上组播地址的低32位,构成了48位MAC地址。如组播地址为FF02::1111:AAAA:BBBB,则对应的MAC地址为3333.AAAA.BBBB。
5、任播地址Anycast address:
若某个数据包的目标地址是任播地址,该数据包将被发送到路由意义上最近的一个网络接口,即one-to-nearest(一到近)模式,如:Mobile方面的特性,移动设备漫游到其他区域,不必接入原始的接入点,只需要找到最近的即可。用于表示一组不同节点的接口。
为了和单播地址区分,任播地址一般约定64位接口ID为全0。与IPv4不同,全0的网络地址和全1的广播地址不能分配给设备使用在,而IPv6主机位全是0的任播地址和全1的地址是能供设备使用的。
6、必须的IPV6地址:
一旦节点启用IPV6,那么接口就会自动生成下列地址
1、本地链路地址
2、回环地址::1
3、所有节点多播地址FF02::1
4、如果是路由器,还会有FF02::2
5、被请求节点的组播地址
注意:串口和loopback口会借用以太口的MAC地址来生成link-local地址。
7、内嵌入IPv4的兼容地址:
过渡技术一般分为三类:双协议栈技术、协议转换技术、隧道技术,其中双协议栈一般用于在IPv4网络中建立IPv6自动隧道,从而将IPv6孤岛连接起来,在IPv6侧使用兼容地址,IPv4侧提取兼容地址中的v4地址信息,构建IPv4报头,然后对IPv6进行封装。常见的兼容地址有:::FFFF/96+32位IPv4;6to4使用2002:IPv4:子网ID:接口ID;ISATAP隧道使用固定前缀:0000:5EFE:IPv4
8、EUI-64:Exteded Unique Interface-64
EUI-64 地址使用 U/L 和 I/G 位的方式与 IEEE 802 地址相同,用于网络适配器的传统接口标识可使用称为 IEEE 802 地址的 48 位地址。此地址由 24 位公司 ID(也称为制造商 ID)和 24位扩展ID(也称为底板 ID)组成。
公司 ID(唯一指派给每个网络适配器的制造商)和底板 ID(在装配时唯一指派给每个网络适配器)的组合,即可生成全局唯一的 48 位地址。这个 48 位地址也称为物理地址、硬件地址或媒体访问控制(MAC) 地址。
从图中看出:就是先把前24位的公司ID和后24位扩展ID中间插入了FFFE,再把第7位反转,使48位变成了64位,从原来MAC地址的三组变成了4组。
但在Windows中,为了私密性,不使用EUI-64转换规则,将接口ID随机化了我们看到随机标识符是enabled:
netsh interface ipv6 show global
启用EUI-64,可以用以下命令(管理员模式下运行):
netshell interface ipv6 set global randomizeidentifiers=disable store=persistent
华为交换机上启用eui-64并配置IP地址:
ipv6 enable
ipv6 address 2001::1/64 eui-64
ipv6 address FE80::1 link-local
dis ipv6 interface G0/0/0
相关文章:

IPv6地址分类,EUI-64转换规则
1、可聚合的单全球单播地址Global Unique Address: Aggregate global unicast address,前3位是001,即2000::/3,目前IANA已经将一部分可聚合全球单播进行了专门使用,如:2001::/16用于IPV6互联网,…...

Nginx安装部署
什么是Nginx? Nginx(发音同engine x)是一款由俄罗斯程序员Igor Sysoev所开发轻量级的网页服务器、反向代 理服务器以及电子邮件(IMAP/POP3)代理服务器。 Nginx 因具有高并发(特別是静态资源)、 占用系统资…...

物联网|按键实验---学习I/O的输入及中断的编程|读取I/O的输入信号|中断的编程方法|轮询实现按键捕获实验-学习笔记(13)
文章目录 实验目的了解擒键的工作原理及电原理图 STM32F407中如何读取I/O的输入信号STM32F407对中断的编程方法通过轮询实现按键捕获实验如何利用已有内工程创建新工程通过轮询实现按键捕获代码实现及分析1 代码的流程分析2 代码的实现 Tips:下载错误的解决 实验目的 了解擒键…...

Hadoop-HDFS的Namenode及Datanode(参考Hadoop官网)
HDFS有什么特点,被设计做什么 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。有一下几个特点: HDFS是一个高度容错性的系统,具有高容错、高可靠性、高扩展性的特点,适合部…...
C:通过alarm发送信号
可以通过alarm定时发送SIGALRM信号: #include <unistd.h> unsigned int alarm(unsigned int seconds); alarm()函数用来在seconds秒之后安排发送一个SIGALRM信号,如果seconds为0,将取消所有已设置的闹钟请求。alarm()函数的返回值是以前…...

如何将 dubbo filter 拦截器原理运用到日志拦截器中?
业务背景 我们希望可以在使用日志拦截器时,定义属于自己的拦截器方法。 实现的方式有很多种,我们分别来看一下。 拓展阅读 java 注解结合 spring aop 实现自动输出日志 java 注解结合 spring aop 实现日志traceId唯一标识 java 注解结合 spring ao…...

【java】【maven】【基础】MAVEN安装配置介绍
目录 1 下载 2 安装-windows为例 3 配置环境变量 3.1 JAVA_HOME 3.2 MAVEN_HOME 3.3 PATH 3.4 验证 4 MAVEN基础概念 4.1 仓库概念 4.2 坐标概念 4.2.1 打开网址 4.2.2 输入搜索内容junit 4.2.3 找到对应API名称点击 4.2.4 点击对应版本 4.2.5 复制MAVEN坐标 4.3 配置…...

【C语言进阶】指针的高级应用(下)
文章目录 一、指针数组与数组指针1.1 指针数组与数组指针的表达式 二、函数指针2.1 函数指针的书写方式 三、二重指针与一重指针3.1 二重指针的本质3.2 二重指针的用法3.3 二重指针与数组指针 总结 一、指针数组与数组指针 (1)指针数组的实质是一个数组,这个数组中存…...
【uniapp APP隐藏顶部的电量,无线,时间状态栏与导航栏】
uniapp APP隐藏顶部的电量,无线,时间状态栏 如下代码配置(在一个页面设置这个段代码,所有页面都会消失) onShow() {// #ifdef APP-PLUS// 隐藏顶部电池,时间等信息 plus.navigator.setFullscreen(true);//隐藏虚拟按…...
微信小程序前后页面传值
微信小程序前后页面传值 从前一个页面跳转到下一个页面,如何传递参数?从后一个页面返回前一个页面,如何回调参数? 向后传值 从前一个页面跳转到下一个页面并传值。 前页面:在跳转链接中添加参数并传递 wx.navigat…...
没有jodatime,rust里怎么比较两个日期(时间)的大小呢?
关注我,学习Rust不迷路!! 在 Rust 中,比较两个日期的大小有多种方法。以下是列举的四种常见方法: 1. 使用 PartialOrd trait: use chrono::prelude::*;fn main() {let date1 NaiveDate::from_ymd(2022,…...

【雕爷学编程】Arduino动手做(186)---WeMos ESP32开发板18
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…...
C语言假期作业 DAY 14
一、选择题 1、有以下函数,该函数的功能是( ) int fun(char *s) {char *t s;while(*t);return(t-s); } A: 比较两个字符的大小 B: 计算s所指字符串占用内存字节的个数 C: 计算s所指字符串的长度 D: 将s所指字符串复制到字符串t中 答案解析 …...

Maven-生命周期及命令
关于本文 ✍写作原因 之前在学校学习的时候,编写代码使用的项目都是单体架构,导入开源框架依赖时只需要在pom.xml里面添加依赖,点一下reload按钮即可解决大部分需求;但是在公司使用了dubbo微服务架构之后发现只知道使用reload不足…...

常温超导:AI在研发中的潜力
目录 引言:1. 常温超导的挑战:2. AI在材料研究中的作用:3. AI在理论模型中的作用:4. AI与实验室合作的潜力:结论: 引言: 常温超导一直被认为是科学界的“圣杯”,可以在室温条件下实…...

【C++】开源:Eigen3矩阵与线性代数库配置使用
😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Eigen3矩阵与线性代数库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&…...

OpenMesh 网格简化算法(基于边长度)
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 网格简化的算法有很多种,基于边结构进行简化的方法便是其中一种方式。此类算法主要关注于它们如何选择要收缩的边,并且似乎都是为流形表面设计的,尽管边缘收缩也可以用于非流形表面,但往往会存在变形较大的问题…...

FFmpeg解码详细流程
介绍 FFmpeg的 libavcodec 模块完成音视频多媒体的编解码模块。老版本的 FFmpeg 将avcodec_decode_video2()作为视频的解码函数 API,将avcodec_decode_audio4()作为音频的解码函数 API;从 3.4版本开始已经将二者标记为废弃过时 API(attribut…...

人工智能的缺陷
首先从应用层面理解什么是人工智能,目前人工智能主流应用面包括:自然语言处理领域,代表为chatgpt,我们能用其进行日常交流,问题答疑,论文书写等。计算机视觉领域,代表为人脸识别,现在…...

基于ASP.NET MVC开发的、开源的个人博客系统
推荐一个功能丰富、易于使用和扩展的开源博客,可以轻松地创建和管理自己的博客。 项目简介 基于.Net Framework 4.5开发的、开源博客系统,具有丰富的功能,包括文章发布、分类、标签、评论、订阅、统计等功能,同时也可以根据需要…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
Python常用模块:time、os、shutil与flask初探
一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...
深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙
WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...