目录

更多免费内容,尽在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基础知识点相关推荐

  1. 网络协议IPV6基础知识点集锦

    由于互联网的快速发展与普及,原有的IPV4地址已不能满足网络用户的需求,虽然NAT可以缓解IPV4地址的耗尽,但NAT破坏了网络环境的开放.透明以及端到端的特性,因此IPV6地址协议应运而生. IPV ...

  2. 一文讲清-NFT市场新秀SudoSwap的AMM机制-创新挑战与局限

    NFT交易市场的近期颓势频现,整个市场的流动性大幅降低,而此时8月异军突起的SudoSwap则凭借一超多强的增长数据,让基于AMM机制的交易市场映入大众视野. 基于链上数据分析截至8.20日,已有上千 ...

  3. 打工人一文讲清软件性能优化

    性能优化是指在不影响正确性的前提下,使程序运行得更快,它是一个非常广泛的话题. 优化有时候是为了降低成本,但有时候,性能能决定一个产品的成败,比如游戏服务器的团战玩法需要单服达到一定的同时在线人数才能 ...

  4. 【三分钟讲清区块链/比特币】之二:比特币入门教程

    前言:阅读本文之前,我假设你已经了解了区块链及其相关概念.如果没有,建议先阅读一下本系列的前一篇:[三分钟讲清区块链/比特币]之一:区块链入门教程,然后再阅读本文. 比特币(bitcoin)诞生于20 ...

  5. 【三分钟讲清区块链/比特币】之一:区块链入门教程

    区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来.可是,简单易懂的入门文章却很少.区块链到底是什么,有何特别之处,很少有解释. 下面,我就来尝试,写一篇最好懂的区块链教 ...

  6. 一文快速掌握IPv6基础知识及使用指南

    随着5G.物联网等新兴技术领域的发展,IP空间需求巨大,IPv6成为万物互联的基础,势在必行:华为云作为IPv6成熟商用开拓者,针对金融.广电.媒资等不同行业推出IPv6解决方案,助力企业平滑升级到I ...

  7. 【必备干货】1000字讲清3大财务数据表

    众所周知,基础财务数据表有3大:资产负债表.利润表.现金流量表.这3张基本财务数据表的业务含义,以及之间存在的业务关联关系,你是否了解得一清二楚呢?资产负债表最重要的八个字,你知道吗?本文就用1000 ...

  8. IPv6基础介绍--IPv6路由基础--DHCPv6原理与配置——总结

    一.IPv6基础介绍 1.IPv6是Internet工程任务组(IETF)设计的一套规范,它是网络层协议的第二代标准协议,也是IPv4(Internet Protocol Version 4)的升级版 ...

  9. 小白都能学会的Python基础 第二讲:Python基础知识

    1.华小智系列 - Python基础(案例版) <Python基础>目录 第二讲:Python基础知识 1.变量.行与缩进 2.数据类型:数字与字符串 3.列表与字典 4.运算符介绍与实践 ...

  10. P,NP,PSPACE都是什么,一文讲清计算复杂性分类

    P,NP,PSPACE都是什么鬼一文讲清计算复杂性分类 7种计算复杂类的关系 导语 对于计算机来说,哪些问题是容易计算的,哪些是几乎不可能的?这些是计算复杂性领域的核心问题.本文是对这些问题的鸟瞰.( ...

最新文章

  1. docker中安装mycat
  2. S3C2440 SDRAM内存驱动 .
  3. java中什么时候不能用泛型_java中泛型的正确使用姿势
  4. php 非阻塞post请求,PHP实现的CURL非阻塞调用类
  5. NSDate与NSDateFormatter的相关用法
  6. hibernate -- hello world
  7. 关于dhtmlxScheduler的使用说明(ADD EDIT DEL,自定义CelendarBox)
  8. 【OpenCV 例程200篇】35. 图像的投影变换(边界填充)
  9. 006-Python迭代器
  10. OpenShift 4 - Pod 优先级
  11. 推荐系统预训练任务的研究进展
  12. VB 阿拉伯数字转换为中文大写数值函数
  13. 自动化测试===unittest和requests接口测试案例,测试快递查询api(二)
  14. java集合框架小结
  15. 数字调制解调—扩频通信和伪码同步
  16. 17万字 | 2021密码应用技术白皮书(附下载)
  17. 数据仓库与数据挖掘归纳汇总
  18. 命令行字体推荐-更纱黑体
  19. 基于QT实现的旅游路线查询系统
  20. Toolbar中setNavigationIcon的返回图标太大,图标大小调整解决方法

热门文章

  1. 使用msi2lmp和materials studio导出复杂结构的data文件的报错:Unable to find bond data for XXX,Unable to find oop data
  2. vue3知识点:Suspense组件
  3. 专业图形卡测试软件,专业卡能玩游戏么?实测很是意外
  4. 单纤双向BIDI光模块常识
  5. 小公司需要企业邮箱么?小企业用什么企业邮箱?
  6. win7+vs2015+cuda8.0+cudnn5.1+caffe+tensorflow+keras环境搭建
  7. TOP100summit:【分享实录】爆炸式增长的斗鱼架构平台的演进
  8. 安卓RecyclerView万能分割线
  9. 一张纸(5毫米)折叠多少次可以达到珠穆朗玛峰的高度(8848米)?
  10. 为何个税突然变多了?“税率跳档”了解一下