6000+长文,只为讲清IPv6基础知识点
目录
更多免费内容,尽在G Z H :数通那点事
一、IPv6的报头
(一)IPv4的报头内容
(二)IPv6报头
二、IPv6的基本知识点
(一)IPv6的表示
(二)IPv6地址的压缩
(三)EUI-64简述
A.具体转换方式如下:
B.需要注意的是:
C. eui-64的优缺点:
(四)链路本地地址(Link-local-address,LLA)
三、IPv6单播地址
(一)未指定的回环地址
(二)本地链路地址
(三)可聚合全球地址
(四)唯一本地地址
(五)IPv4兼容地址
(六)本地链路地址,唯一本地地址,可聚合全球地址的区别
四、IPv6组播
(一)IPv6 组播基本知识点
A.组播的地址范围
B.组播地址格式
C.ip组播与组播mac地址的映射
(二)被请求节点组播地址
A.特点
B.地址格式
C.作用
五、 任播
更多免费内容,尽在G Z H :数通那点事
一、IPv6的报头
今天我们聊聊IPv6的报头。下图是思科ppt上的一个对比图,个人感觉还是比较直观的,我们就以这张图来梳理IPv6的报头内容。
对比图
(一)IPv4的报头内容
首先,我们先重新回顾一下IPv4的报头内容,对于这个内容比较熟悉的朋友可以直击跳过:
1.Version(4位)用来表明IP协议版本,如果是IPv4协议,为0100(也就是十进制的4)
2.IHL(Internet Header Length)来记录头部的总长度。
3.Type of Service 服务类型。Type of Service最初是用来给IP包分优先级,比如语音通话需要实时性,所以它的IP包应该比Web服务的IP包有更高的优先级。后来,Type of Service被实际分为两部分:Differentiated Service Field (DS, 前6位)和Explicit Congestion Notification (ECN, 后2位),前者依然用来区分服务类型,而后者用于表明IP包途径路由的交通状况。
4.total length 总长度,包括报头的长度和数据的长度。
5.Identification标识,用于区分不同的数据报。
6.flags,标定是否进行了分段。
7.fragment offset,分段偏移量,在分组太大的时候,提供分段和重组功能。
8.Time to Live最初是表示一个IP包的最大存活时间:如果IP包在传输过程中超过Time to Live,那么IP包就作废。后来,IPv4的这个区域记录一个整数(比如30),表示在IP包接力过程中最多经过30个路由接力,如果超过30个路由接力,那么这个IP包就作废。IP包每经过一个路由器,路由器就给Time to Live减一。当一个路由器发现Time to Live为0时,就不再发送该IP包。
9.Protocol,用来说明上层协议的端口,也就是IP包之上的协议是什么(tcp为6,udp为17)。
10.Header Checksum区域。这个checksum用于校验IP包的头部信息。
11.Source Adrresss表示源IP地址。
12.Destination Address表示目的地的IP地址。
13.options.用于网络测试,调试,安全。
下图是通过ensp模拟器抓包时的ip报头,大家可以对照的再次回顾一下各报头的含义和作用。
(二)IPv6报头
下面我们来看IPv6报头:
保留的内容:IPv6的报头保留了IPv4报头中的version,Source Adrresss,Destination Address。
变动的的内容:
1.Payload Length用来表示IPv6的数据部分的长度。整个IP包为40 bytes + Payload Length。
2.Hop Limit区域,IPv6用于记录的也是最大路由接力数,与IPv4的Time to Live功能相同。Hop Limit避免了IP包在互联网中无限接力。
3.Next Header,与IPv4的Protocol功能一致,用来说明上层协议的端口。
4.Traffic Class在IPv6中也被如此分成两部分。通过IP包提供不同服务的想法,并针对服务进行不同的优化的想法已经产生很久了,但具体做法并没有形成公认的协议。
新增的区域:
Flow Label是IPv6中新增的区域。它被用来提醒路由器来重复使用之前的接力路径。这样IP包可以自动保持出发时的顺序。这对于流媒体之类的应用有帮助。
删除了6项内容:
1.IHL(Internet Header Length)来记录头部的总长度。因为IPv6的报头总长度是固定的40字节。
2Header Checksum区域。IPv6的校验依赖高层的协议来完成,而且我们都知道,不仅高层协议有校验,在二层的封装上,也有FCS进行校验。因此,IPv6删除了这个区域。
3.options。因为IPv6没有options,它的头部是固定的长度40 bytes,所以IPv6中并不需要IHL区域。
4.Identification标识,用于区分不同的数据报。
5.flags,标定是否进行了分段。
6.fragment offset,分段偏移量,在分组太大的时候,提供分段和重组功能。
下面是IPv6在ensp中的抓包数据。
二、IPv6的基本知识点
(一)IPv6的表示
首先,我们在设备上进行IPv6地址的配置。需要注意的是,在配置IPv6地址的时候,首先要在全局开启IPv6,然后进入接口后,还需要再次开启IPv6的服务。
为了让大家全面的了解IPv6地址的表示,在配置地址的时候是使用的完全表示,当我们使用dis this命令进行查看的时候,显示的地址是压缩表示的方法。
从IPv6的完全表示方式来看,IPv6的地址是由8组4个16进制数来表示的,共128位(ipv4是点分十进制,由4组4个十进制数来表示,共32位),
后面的64表示的是前缀长度,与ipv4的前缀表示方式一样。a,b是十六进制数10,11的表示。
(二)IPv6地址的压缩
地址压缩规则主要有以下四点:
1.每个组前导的0可以省略,比如0101可以省略成101,
2.如果该组所有都为0,则可以写成一个"0",比如0000可以省略为0
3. 若连续2个或者多个组都为0,则可以使用"::”代替,
4."::"这只能出现一次
(三)EUI-64简述
EUI-64是一个产生IPV6接口ID的方式。主要实现将接口mac转为接口ipv6的ip,命令为
A.具体转换方式如下:
1.先获取到接口的硬件地址,可以在全局模式下输入dis int g0/0/0
通过查看,该接口的硬件地址为:5489-9828-2a5a
2.将FFFE从硬件地址的正中间插入,变成:5498-98FF-FE28-2A5A
3.将第7位进行置位,
4.加上设定的前缀,组成新的IPv6的地址。
B.需要注意的是:
1.如果给定的前缀不满足64bit,在接口ID部分往前补0.
2.如果前缀超过64bit,华为会报错,思科是进行截取。
C. eui-64的优缺点:
优势:能够尽可能的避免地址的冲突。
缺点:可由链路地址反推网络地址,存在一定的安全隐患
(四)链路本地地址(Link-local-address,LLA)
1.地址空间:FE80:: ~FEBF:FFFF(之后各组都为FFFF)
2.范围:仅在广播域内有效,不能跨越3层网络
3.产生方式:
a.自动产生,由FE80:: /10作为前缀和EUI-64产生接口ID部分,比如下图
b.自己设定,具体命令如下:
通过设定可以看出本机的LLA的变更
Tips:
::为保留地址,类似有ipv4中的 0.0.0.0
:: 1是回环地址 类似于ipv4中的127.0.0.1
图一:IPv6地址梳理
三、IPv6单播地址
(一)未指定的回环地址
A :: /128 类似于IPv4中的0.0.0.0,主要是用于ICMPV6的DAD(重复地址检测)中。
B ::1/128 是回环地址,类似于IPv4中的127.0.0.1,用于检测本机IP协议是否安装成功。
(二)本地链路地址
a.本地链路地址的范围是FE80::~FEBF:FFFF....
b.当你在接口开启IPv6的应用时,接口会生成一个本地链路地址,用于本广播域内的通信。所以,即便没有给接口设置IPv6的地址,在本广播域中,仍然能够进行通信。而且不同广播域内的本地链路地址可以相同。
c.本地链路地址的产生方式有自动产生和人工设定两种方式,具体详见(NO.2 IPv6的基本知识点)。
d.本地链路地址是一个二层地址。不能够进行三层的通信,一般在网络中,遇到FE80的地址,路由器会自动进行过滤。
(三)可聚合全球地址
a 类似于IPv4中的公网地址。范围是2000::~3FFF:FF.....
b 由全局路由前缀,子网ID和接口标识组成
全局路由前缀:由提供商制定给一个组织机构,一般至少48bit,目前已经分配的全局路由前缀的3bit均为001,因此前缀为2000::/3,在实际使用中,个人可以实际需求进行购买,长度不固定。
子网:与IPv4中的子网号作用相似,用于自身内部子网的划分,子网ID通常最多划分到64位。
接口标识:用于表示链路上的接口,主要由三种生成方式,1.手工配置,2.系统通过软件自动生成,3.通常使用的EUI-64方式生成。
PS:以上所说的都是一般情况下,在图中,m,n都是可变的,并不是固定的长度,m+n一般等于64bit,但也可超过64bit。
c 在IPv6地址梳理图中显示的的三个地址分别是2001::/16 2002::/16 3FFE::/16:
2001::/16 是前公网的地址从这个网段开始划分的;
2002::/16 是6to4的兼容隧道,用于IPv6与IPv4之间的通信
3FFE::/16 公共IPv6研究所使用的地址,目前该研究所已经废止了,目前该段地址还有没有进行重新分配需要进行查看。
(四)唯一本地地址
本地站点地址目前已经被唯一本地地址(FC00::/7)所取代,类似于IPv4 的私有地址,唯一本地地址中,“本地”指的就是该地址是一个本地的地址,内部的地址,私有的地址,而“唯一”的意思就是说这个地址是唯一的,即便是在公网上,他也能确保唯一性,不像IPv4的私有地址,任何内网都可以使用。具体格式如下:
prefix:唯一本地地址的固定前缀,FC00::/7,从二进制来看,就是1111 110 是固定的。
L:是表示该地址是本地范围内被使用的,他永远是置位为1的,L=0还没有被定义。换句话讲:就是目前我们所指的唯一本地地址都是FD开头的IPv6地址。
global ID:全球的唯一前缀,指端地址是向提供商进行购买的,提供商分配的global ID是唯一的。他的生成方式是由RFC4193提供的一套算法进行生成。具体如下图,大家可以简单了解一下。
subnet ID:子网ID,根据自身的实际情况进行划分。
interface ID:接口ID,一般根据EUI-64的方式生成。
(五)IPv4兼容地址
目前已经不被使用了。他是在IPv6的格式中内嵌IPv4的地址。具体方法是在ipv4地址前用0补齐,如下图:
(六)本地链路地址,唯一本地地址,可聚合全球地址的区别
关于本地链路地址,唯一本地地址,可聚合全球地址这三者的区别。
对于刚接触IPv6的小伙伴对于这三个地址的作用还不是太清楚,为什么要有这么多地址?
那下图来讲,本地链路地址只能够在广播域内使用,路由器不会去转发本地链路地址,所以,他只能够在各部门内部中进行使用,如果我想访问其他部门,则必须使用路由器可以进行转发的可聚合全球地址,如果说,你只是在内部网络里进行通行,你可以随便设置可聚合全球地址,如果你要接入公网,那必须向提供商申请可聚合全球地址。唯一本地地址一般用于军事机构等特殊集体。
四、IPv6组播
(一)IPv6 组播基本知识点
组播地址是用来标识一组接口,发往组播地址的数据将被转发给侦听该地址的多个设备。
A.组播的地址范围
IPv4组播地址范围是224.0.0.0~239.255.255.255。其中224.0.0.0~224.0.0.255分配给控制协议,比如224.0.0.5,225.0.0.6就是ospf协议中的组播地址。
IPv6组播地址范围是FF00::/8,简单来说就是FF开头的IPv6地址都是组播地址。
B.组播地址格式
IPv6组播地址格式如图:
前8bit为固定的1111 1111。即FF
flags:占位4bit,用于标识永久组播地址还是临时组播地址。
如果flags为0表示永久组播,
其他如图。
scops:占位4bit,表示组播的范围。
0:预留
1.节点本地范围
2.链路本地范围 例如:FE02::1
5.站点本地范围
8.组织本地范围
E:全球范围
F:预留
Reserved:还没有定义,目前这80bit必须保持为0。
group ID:组播组ID,共32bit。
常见的预定义组播地址如下:其中node-local的两个常用于研发人员做测试。
C.ip组播与组播mac地址的映射
在以太网传输单播报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播数据时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用组播MAC地址,相应的对应关系如下:
ipv4:组播地址的前4位是固定的1110,对应组播MAC地址的高25位,后28位中只有23位被映射到MAC地址,因此丢失了5位的地址信息,直接结果是有32个IPv4组播地址映射到同一MAC地址上。
例如IP地址为224.0.1.1、224.128.1.1、225.0.1.1、239.128.1.1等组播组的组播MAC地址都为01-00-5e-00-01-01。网络管理员在分配地址时必须考虑这种情况。拿我们熟悉的ospf组播地址举例,组播IP为:224.0.0.5,组播Mac地址为01-00-5e-00-00-05。
IPv6:在IPv6中,组播IPv6地址与组播Mac地址的映射关系如下图:
组播Mac的前四位3333是固定的,后面的32bit是从IPv6地址的最后32bit进行复制。比如组播地址FF02::1,那他对应的组播Mac地址为3333-0000-0001。
(二)被请求节点组播地址
A.特点
1.当一个节点具有了单播或任意播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组。
2.一个单播地址或任播地址对应一个被请求节点组播地址。
3.该地址主要用于邻居发现机制和地址重复检测功能。
4.被请求节点组播地址的有效范围为本地链路范围。
B.地址格式
被请求节点地址固定前缀为:FF02::1:FF00:0000/104。
生成方式为:前104bit为固定的FF02::1:FF,后面24bit是将IPv6地址的最后24bit直接拷贝。
比如,我们在接口处配置IPv6地址(2001::1/64),其对应的被请求节点组播地址为FF02::1::FF00:1。
C.作用
被请求节点组播地址取代了IPv6中的广播,减少了对其他设备的骚扰,提高了安全性。因为当交换机对于一个被请求节点组播地址进行泛红后,由于每个设备的被请求节点组播地址不同,从而在链路层进行处理或丢弃。
举个例子,在下图中,各PC的IPv6地址和Mac地址如图进行假设。
如果PC1想请求PC2的Mac地址,他会封装一个请求报文,其源IP,目的IP,源Mac地址,目的Mac地址如图所示。
当交换机接收到这个报文后,因为其目的Mac为3333开头,发现这是一个组播报文,然后对此报文进行泛洪。
当PC2接受到这个报文后,由于PC2有一个被请求节点组播地址FF02::1:FF00:2,所以,PC2会侦听相对应的3333-FF00:0002组播Mac地址通过二层拆封,发现其目的Mac是自己的,就会进行回复。而对于PC3来说,他不侦听该组播Mac地址,所以就会直接丢弃,不再进行三层的拆封。从而节省了PC3设备的资源。
五、 任播
1.任播地址是IPv6特有的地址类型,用来标识一组网络接口(通常属于不同的节点)。
2.发往任播的报文只会被发送到最近的一个接口,这里所说的最近是指路由层面上的“最近”。
3.任播地址与单播地址使用相同的地址空间,因此任播与单播的表示无任何区别;
4.配置时须明确表明是任播地址,以此区别单播和任播。
6000+长文,只为讲清IPv6基础知识点相关推荐
- 网络协议IPV6基础知识点集锦
由于互联网的快速发展与普及,原有的IPV4地址已不能满足网络用户的需求,虽然NAT可以缓解IPV4地址的耗尽,但NAT破坏了网络环境的开放.透明以及端到端的特性,因此IPV6地址协议应运而生. IPV ...
- 一文讲清-NFT市场新秀SudoSwap的AMM机制-创新挑战与局限
NFT交易市场的近期颓势频现,整个市场的流动性大幅降低,而此时8月异军突起的SudoSwap则凭借一超多强的增长数据,让基于AMM机制的交易市场映入大众视野. 基于链上数据分析截至8.20日,已有上千 ...
- 打工人一文讲清软件性能优化
性能优化是指在不影响正确性的前提下,使程序运行得更快,它是一个非常广泛的话题. 优化有时候是为了降低成本,但有时候,性能能决定一个产品的成败,比如游戏服务器的团战玩法需要单服达到一定的同时在线人数才能 ...
- 【三分钟讲清区块链/比特币】之二:比特币入门教程
前言:阅读本文之前,我假设你已经了解了区块链及其相关概念.如果没有,建议先阅读一下本系列的前一篇:[三分钟讲清区块链/比特币]之一:区块链入门教程,然后再阅读本文. 比特币(bitcoin)诞生于20 ...
- 【三分钟讲清区块链/比特币】之一:区块链入门教程
区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来.可是,简单易懂的入门文章却很少.区块链到底是什么,有何特别之处,很少有解释. 下面,我就来尝试,写一篇最好懂的区块链教 ...
- 一文快速掌握IPv6基础知识及使用指南
随着5G.物联网等新兴技术领域的发展,IP空间需求巨大,IPv6成为万物互联的基础,势在必行:华为云作为IPv6成熟商用开拓者,针对金融.广电.媒资等不同行业推出IPv6解决方案,助力企业平滑升级到I ...
- 【必备干货】1000字讲清3大财务数据表
众所周知,基础财务数据表有3大:资产负债表.利润表.现金流量表.这3张基本财务数据表的业务含义,以及之间存在的业务关联关系,你是否了解得一清二楚呢?资产负债表最重要的八个字,你知道吗?本文就用1000 ...
- IPv6基础介绍--IPv6路由基础--DHCPv6原理与配置——总结
一.IPv6基础介绍 1.IPv6是Internet工程任务组(IETF)设计的一套规范,它是网络层协议的第二代标准协议,也是IPv4(Internet Protocol Version 4)的升级版 ...
- 小白都能学会的Python基础 第二讲:Python基础知识
1.华小智系列 - Python基础(案例版) <Python基础>目录 第二讲:Python基础知识 1.变量.行与缩进 2.数据类型:数字与字符串 3.列表与字典 4.运算符介绍与实践 ...
- P,NP,PSPACE都是什么,一文讲清计算复杂性分类
P,NP,PSPACE都是什么鬼一文讲清计算复杂性分类 7种计算复杂类的关系 导语 对于计算机来说,哪些问题是容易计算的,哪些是几乎不可能的?这些是计算复杂性领域的核心问题.本文是对这些问题的鸟瞰.( ...
最新文章
- docker中安装mycat
- S3C2440 SDRAM内存驱动 .
- java中什么时候不能用泛型_java中泛型的正确使用姿势
- php 非阻塞post请求,PHP实现的CURL非阻塞调用类
- NSDate与NSDateFormatter的相关用法
- hibernate -- hello world
- 关于dhtmlxScheduler的使用说明(ADD EDIT DEL,自定义CelendarBox)
- 【OpenCV 例程200篇】35. 图像的投影变换(边界填充)
- 006-Python迭代器
- OpenShift 4 - Pod 优先级
- 推荐系统预训练任务的研究进展
- VB 阿拉伯数字转换为中文大写数值函数
- 自动化测试===unittest和requests接口测试案例,测试快递查询api(二)
- java集合框架小结
- 数字调制解调—扩频通信和伪码同步
- 17万字 | 2021密码应用技术白皮书(附下载)
- 数据仓库与数据挖掘归纳汇总
- 命令行字体推荐-更纱黑体
- 基于QT实现的旅游路线查询系统
- Toolbar中setNavigationIcon的返回图标太大,图标大小调整解决方法
热门文章
- 使用msi2lmp和materials studio导出复杂结构的data文件的报错:Unable to find bond data for XXX,Unable to find oop data
- vue3知识点:Suspense组件
- 专业图形卡测试软件,专业卡能玩游戏么?实测很是意外
- 单纤双向BIDI光模块常识
- 小公司需要企业邮箱么?小企业用什么企业邮箱?
- win7+vs2015+cuda8.0+cudnn5.1+caffe+tensorflow+keras环境搭建
- TOP100summit:【分享实录】爆炸式增长的斗鱼架构平台的演进
- 安卓RecyclerView万能分割线
- 一张纸(5毫米)折叠多少次可以达到珠穆朗玛峰的高度(8848米)?
- 为何个税突然变多了?“税率跳档”了解一下