【IPv6】基本概念及字段
IPV4知识点:
字段值
IPv4字段共
字段值 | 解释 |
---|---|
Version版本 | 版本字段,可以区分V4和V6版本,V4是0100,V6是0110,需要注意的是V4和V6头部除了版本字段位置相同外,其他都是不一样的,因此两个协议不能直接互相操作。 |
IHL | 保存 |
Type Of Service(8字节) | 前6为DS字段,后两位是ECN字段,参考QOS章节 |
Total Length | |
Identification | |
Flags | |
Fragment Offset | |
Time to Live | |
Protocol | |
Header Checksum | |
Source Address | |
Destination Address | |
Options | |
Padding |
Version版本:
IHL:
IPV6都可以保证端到端全球唯一,并且也不需要NAT,PAT
多宿主
Link Local链路本地地址,用来做网络内
IPV6把一个广播域成为一个链路,
IPV6允许同一个链路上不同的节点AGUA的网络位不一致
能够同时拥有多个地址,多宿主
自动配置
无状态地址自动配置
DHCP无状态,DHCP有状态
有状态地址自动配置
IPV6的地址重编制
IPV6任何一对多的流量都是组播,没有广播
FF02::1
单播,组播,任意播
IPv6
概述
首先v6的出现是因为v4的地址紧缺问题导致。v6的地址将不同于v4,v4构成由32bit,4字节并且是二进制。v6构成是由128bits,16字节并且是16进制。他们在表示形式上也有着巨大的差异化。
IPv6地址格式
首先格式
无脑格式,直接将128位全部表现出来
例
压缩前:2001:0410:0000: 0000:FB00:1400:5000:45FF
压缩后:2001:0410:0000: 0000:FB00:1400:5000:45FF
压缩表示
将地址中的0省略,但是省略也不是想省就行的。是有规范的省略的
1)省略掉段中没必要出现的0,一个地址只能一次省略"::"
说明:可以看出,由于该地址8个段全为0,所以用**::就都表示了出来,计算机拿到这个压缩后的地址时,发现比以往正常的128位少了128位。就会在:😗*的地方补上缺少的0。
例3 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
压缩前:2001:0410:0000: 0000:FB00:1400:5000:45FF
压缩后:2001:0410 :: FB00:1400:5000:45FF
需要注意的是,压缩的是段,第一个例子中8个段全为0,那么就可 以都压缩,但是例2中,七个段为0,那么只可以压缩7个段。
例4 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
压缩前:3ffe:0000:0000:0000:1010:2a2a:0000:0001
压缩后:
是3ffe:0000:1010:2a2a: 0000:0000:0000:0001
或3ffe:0000:00001010:2a2a::0000:0000:0001
或3ffe:0000:0000:0000:1010:2a2a:0000:0001
这个例子需要注意了,他2,3,4,7段都是0,但这样也就出现了一个问题,那么这个格式压缩后,计算机再解压出来,会有好几种形式。由于压缩了4个不是连续的段落,所以计算机并不知道前面压缩的是几个段落,后面压缩的是几个段落,所以:在压缩IPV6地址中,一个地址只能出现一个"::"
2)省略前导向的0
首先什么是前导向,就是前面的0,例如一个数字0301,你省略中间的0就变成了031,计算机填充时,有两种结果:0310和0301,省略后面的0也是一样的,所以是省略前面 也就是前导向的0
例1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
压缩前:2001:0410:0000: 0000:FB00:1400:5000:45FF
压缩后:2001:410::FB00:1400:500:45FF
这是在省略没必要段落的0上,再次的简化。
v4内嵌v6
这就和Qos中的CS字段相得益彰了,具体讲解这个懒得说了。就说下是怎么弄的
v6是128位,它们相差了96,想要内嵌到v6中就需要增添这96位0。
例
::192.168.1.1
0000:0000:0000:192.168.1.1 前面太多0,懒得写了
**注:**IPv6中没有广播地址,v6不建议划子网,如果非要划,网络位请不要低于48位。
IPv6地址类型
首先在v4的地址中,将地址有着类别划分:私有地址,组播广播和不可用地址等。而在v6中也类似的地址类型,需要了解的有三种:单播,任意播和组播。
Unicast单播
单播地址分为Link-Local Address链路本地地址、Unique Local Address唯一站点地址和Aggregatable Global Address可聚合全球地址以及回环地址。
▷ 全球单播:对应IPv4的公网
▷ 唯一本地:对应IPv4的私网
▷ 链路本地:在IPv4中也有对应,就是169.254.x.x
(这在IPv4中也叫链路本地)
▷ ::1
,表示环回地址,对应IPv4中的127.0.0.1
▷ ::
,表示未指定地址,对应IPv4中的0.0.0.0
Link-Local Address
v4节点将数据包发给下一节点时,必须在数据包中封装三层IP地址再封装下一节点的二层链路地址MAC,才能够发送,并且封装的二层MAC地址确实为下一节点的真实地址,对方才能接收。这就是二层链路地址的功能,而V6中的链路本地地址,也是和这个差不多的性质。
链路本地地址前缀是FE80::/64类似地址:FE80::713e:a426:d167:37ab这个概念如同v4中的169.254,也就是DHCP分配失败时自动生成的地址。凡是源地址和或目的地址含有链路本地地址的报文,路由器都不应当转发,这样的报文只能LAN中互通。
链路本地地址是必须要存在的。没有这个地址的v6是不能通信的,这个地址默认自动产生,也恶意手动设置。自动产生的地址默认以FE80::/10打头,再加54个0,还差64,就由EUI-64来填充
EUI-64结构
EUI-64其实就是MAC地址,将48位MAC平均分成两份,前面24后面24.中间补上FEFE(16位)。
例
MAC地址:00:12:33:5C:82:E1
EU1-64:00:12:33FFEE:5C:82:E1
Serial串行链路是没有MAC地址的,一般情况下,当一个接口上启用v6后,会自动产生链路本地地址,但是Serial链路是没有MAC地址的。通常会借用设备上第一个以太网插槽的第一个接口的地址。也就是说:没有MAC地址的接口,通常会使用设备上MAC地址池第一个地址。
Unique Local Address
唯一站点地址是单播中受限制的地址,只能在一个站点中使用,不会默认启用,这个地址不能在公网上路由,这就如同v4中的私网保留地址,而唯一站点地址占用整个地址空间的0.1%
前缀:FECO::/10 其后54bit用于子网ID,最后64bit用于主机ID。
唯一站点地址被设计用于永远不用与全球V6英特网进行通信的设备:例如:打印机、内部网服务器、网络交换机等。
Global Address
相当于是v4中的公网地址,可以被路由且正常使用的地址,网络位最少为48.范围是2000::到3FFF:FFFF:FFFF后面都是F。可聚合全球单播地址是2和3打头的地址,占用整个地址空间的8分之一。
两种生成方式:手动配置和自动配置
1)自动配置根据获取方式,分为
无状态:根据路由通告报文RA(Router Advertisement)包含的prefix自动配置v6地址,组成方式是Prefix+(EUI64 or 随机)。无状态也称为SLAAC
有状态:通过DHCPv6方式获得地址。
2)其中有状态分为两种
有状态DHCPv6:IPv6地址、其他参数(如DNS)均通过DHCPv6获取
无状态DHCPv6:IPV6地址依然通过RA生成,其他参数(如DNS)均通过DHCPv6获取
**明确有状态和无状态的区别:**首先请明确一点,有无状态仅针对IPv6地址分配方式,并不包含其他参数。有状态是可控和可管理的,在网络中存在一个地址管理者,它能够识别客户端,根据不同的客户端分配对应的v6地址,客户端于服务端之间需要维护IP地址的租期及续约。目前实现这种效果的就是DHCPv6。IP地址管理者就是DHCPv6 Server。
无状态是不可控和难管理的,在网络中只有网关,没有地址管理者。因此无人去识别客户的,每个客户端根据网关发送的相同的RA报文内容,自行配置v6地址。
配置效果请参考附件:IPv6中有无状态配置过程.md
回环地址:类似v4中的127.0.0.1/8。v6中是::1
任意播
组播
任意播地址
任意播地址表示一组接口,当一个发往某个任意播地址的数据包,只被最近的接口收到,这个地址是由路由协议定义的。不能手工配置,但是我们无法看到一个地址就能区别出到底是单播地址还是任意播地址,因为任意播地址的表示格式和单播地址是一样的,也就是说任意播地址就是用普通的单播地址来表示的。任意播地址只能出现在路由器上,并且不能作为数据包的源地址来使用。
组播
组播地址是以FE00::8开头
ISATAP隧道
概要
ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)是一种过渡进制,这是和6TO4隧道一样,都可以用于连接被V4隔离的V6孤岛,通过将V4地址嵌入到V6地址中,并将V6封包封装在V4中传送,在主机相互通信中抽出IPv4地址建立tunnel。但具体实现的流程,IPv6地址和应用范围不尽相同。
首选要求PC是V4/V6双栈PC,并且要有支持该机制的路由器,ISATAP路由器可以在网络中的任何位置,只需要PC能够访问这台路由器,接下来可以通过我们可以通过在路由器上部署ISATAP,这样网络中支持ISATAP的双栈主机,在需要访问IPV6资源的时候,可以与ISATAP路由器建立ISATAP隧道,ISATAP主机根据ISATAP路由器下发的IPv6前缀构造自己的IPv6地址(这个v6地址时被自动关联到ISATAP主机本地产生的一张ISATAP虚拟网卡上的)并且这个ISATAP路由器设置为自己是IPV6默认网关,如此一来,后续的这台主机就能通过这台ISATAP路由器去访问IPv6的资源。
在许多场合,客户为了节省成本,又希望网络中的IPv6主机能够访问V6资源,同时又不愿意对现有网络做大规模的变更及设备升级,那么就可以采用这种方法,
功能组件
1、自动隧道
ISATAP的隧道机制也是自动的,隧道在主机和ISATAP路由器之间被创建。主机所选需要知道ISATAP路由器的V4地址。
2、ISATAP地址格式
分配给ISATAP路由器的V6地址是全局单播地址,该地址的前缀将被ISATAP主机用于自己的V6地址构造。ISATAP主机通过在V4建立起来的ISATAP隧道从ISATAP路由器发送的信息中接收/64的IPv6前缀,并且使用这个前缀结合“特殊的接口标识”来构造自己的V6地址。
3、接口标识
ISATAP在主机上启用后,会产生一个ISATAP虚拟网卡,该虚拟网卡会产生一个64bits的特殊接口标识,有点类似EUI-64,但是产生机制不同,它是专为ISATAP保留的32位0200:5EFE加上主机配置的V4地址构成,假设ISATAP主机是1.1.1.1那么虚拟网卡的64bits接口标识就是:
另一方面,在路由器上部署ISATAP后,路由器会产生一个Tunnel接口,用于响应ISATAP主机的隧道建立请求,这个TUNNEL接口同样会产生接口标识。地址的格式是IANA保留给ISATAP的32比特的0000:5EFE后追加32比特的V4地址。如下图,假设ISA路由器配置的V4地址(用于隧道)是2.2.2.2 那么ISA Tunnel的地址标识就是
这里关于64bits接口标识中“为ISATAP保留的” 高阶32bits,也就是前缀,上面红色的地址字段,貌似有着全局唯一和私有之分,不过在IETF的
ISA主机和路由器产生的64bits接口标识,可进一步用于构造隧道接口的链路本地地址,以及V6全局单播地址。另外因为ISATAP的操作范围在站点内,所以ISA主机和路由器的V4地址可以是私有地址,也可以是公有地址。
工作机制
6to4隧道
相关文章:

【IPv6】基本概念及字段
IPV4知识点: 字段值 IPv4字段共 字段值解释Version版本版本字段,可以区分V4和V6版本,V4是0100,V6是0110,需要注意的是V4和V6头部除了版本字段位置相同外,其他都是不一样的,因此两个协议不能直…...

数据库中的 Schema 变更实现
线上沙龙-技术流第 30 期营业啦 05月09日(周二)19:30 KaiwuDB - B站直播间 传统数据库操作 Schema 变更时,第一步便是锁表,需持续到 Schema 变更操作完成。这样的做法虽然实现简单,无需考虑事务并发带来的影响&#…...

【C++ 学习 ②】- 类和对象(上)
目录 一、 面向对象的基本理念 1.1 - 什么是对象? 1.2 - 类和对象 1.3 - 面向对象的五条原则 1.4 - 面向过程 vs 面向对象 二、C 中的结构体 三、类的定义 3.1 - 类的两种定义方式 3.2 - 成员变量的命名规范 四、类的访问限定符和封装 4.1 - 访问限定符 …...

最好的物联网教程:软硬结合——从零打造物联网
在大学里不同专业有着不同的追求:机械类与强电类专业学生追求的是 “机电合一” ,既懂机械又懂电气,整个电气机械自动化便能打通。弱电类专业学生追求的是 “软硬结合” ,既懂硬件又懂软件,整个电子产品便能打通。我作…...

猫狗训练集训练报错:Failed to find data adapter that can handle input
这里写自定义目录标题 Jupyter Notebook6.5.4 tensorflow 2.12.0 pillow 9.5.0 numpy 1.23.5 keras 2.12.0 报错详细内容: ValueError: Failed to find data adapter that can handle input: (<class ‘tuple’> containing values of types {“<class ‘k…...

中国网络安全人才需求
如果你是一个想要入门网络安全行业的小白、如果你是网络安全专业在读的大学生、如果你是正在找工作的新手,那么这篇文章你一定要仔细看。毕竟知己知彼百战百胜,知道行业的人才需求才能更好得发挥自己的优势。 当你打开BOSS直聘、拉钩等招聘网站…...

设计模式之组合模式
目录 1、组合模式的定义 2、组合模式例子 3、组合模式实现 3.1 组合模式的结构 3.2 组合模式的分类 3.3 组合模式代码实现(透明组合模式) 4、组合模式的优点 5、组合模式使用场景 1、组合模式的定义 组合模式又名部分整体模式,是用于把…...

计算机基础书籍
一操作系统 二常见问题总结 1.操作系统的特征? 并发、共享、虚拟、异步性 2.进程阻塞与唤醒的条件 等待 I/O 操作完成请求系统资源失败等待信号量或事件等待子进程结束被高优先级进程抢占 3.如何避免死锁? 1、避免资源竞争 2、破坏循环等待条件 3、优…...

保龄球游戏的获胜者、找出叠涂元素----2023/4/30
保龄球游戏的获胜者----2023/4/30 给你两个下标从 0 开始的整数数组 player1 和 player2 ,分别表示玩家 1 和玩家 2 击中的瓶数。 保龄球比赛由 n 轮组成,每轮的瓶数恰好为 10 。 假设玩家在第 i 轮中击中 xi 个瓶子。玩家第 i 轮的价值为: …...
jQuery事件
1. jQuery事件注册 单个事件注册 语法: element.事件(function(){}) eg:$(“div”).click(function(){ 事件处理程序 }) 其他事件和原生基本一致。比如mouseover、mouseout、blur、focus、change、keydown、keyup、resize、scroll 等 <!DOCTYP…...

初识SpringCloud
一、软件架构演进 单体架构 垂直架构 分布式架构 SOA架构 微服务架构 二、微服务架构 2.1 微服务理念 "微服务”一词源 于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到http://martinfowler.com/articles/microservices.html微服务是系统架构上…...

安装java配置
目录 安装JDK 编辑 环境变量配置 3、检验环境变量配置 二、安装tomcat 验证Tomcat配置是否成功 三、安装Mysql 一、安装 二、卸载 四、安装Maven 安装JDK 点击更改将C直接给为F即可。 点击确定后进行安装,安装完以后会提示安装JRE; 检测是否已经安装JDK的…...
KBO的选秀会有哪些规定和流程`棒球7号位
KBO(韩国职业棒球联盟)的选秀会有以下规定和流程: 1. 选秀对象:KBO的选秀会主要面向年满18岁及以上的高中和大学生,以及海外球员和自由球员。KBO的球队可以在选秀会中挑选所需的球员,每个球队有一定数量的选…...
男子订民宿被毁约5个家庭漂泊街头 房东:住满了,没办法
据媒体报道,5月1日,一位叫做诸先生的消费者和朋友们提前在平台上预订了五一假期前往青岛金沙滩地中海两天的别墅民宿,并支付了房款9600元。 但是当他们到达目的地前一个半小时联系房东时,却发现联系不上人。到达指定地点后&#x…...

Vue快速入门,常用指令,生命周期
Vue常用指令 案例: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"…...
【热门框架】Mybatis-Plus入门介绍看这一篇文章就足够了
MyBatis-Plus 是在 MyBatis 的基础上进行了封装,提供了更加便捷的开发方式,具有简化开发、提高效率等优点。以下是 MyBatis-Plus 的一些特点和用法: 通用 CRUD 操作:MyBatis-Plus 提供了通用的 CRUD 接口,可以直接调用…...

Node【Node.js 20】新特性
文章目录 🌟前言🌟Node.js 20: 一次重要的升级和改进🌟Internationalization API Update🌟端口管理器🌟字符串处理🌟 更好的调试工具🌟 Crypto模块的更新🌟总结🌟写在最后…...

前端程序员的职业发展规划与路线——ChatGPT的回答
文章目录 一、前端程序员的职业规划是?回答1: 作为一个前端开发程序员,您的职业发展路线可能如下:回答2:作为前端开发程序员,您的职业发展路线可能如下:回答3: 你的职业发展路线可能…...

AlgoC++第八课:手写BP
目录 手写BP前言1. 数据加载2. 前向传播3. 反向传播总结 手写BP 前言 手写AI推出的全新面向AI算法的C课程 Algo C,链接。记录下个人学习笔记,仅供自己参考。 本次课程主要是手写 BP 代码 课程大纲可看下面的思维导图 1. 数据加载 我们首先来实现下MNIST…...

【Java笔试强训 27】
🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥 不用加…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...

Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...