【IPv6】基本概念及字段

news2024/9/21 12:31:40

IPV4知识点:

字段值

3ItgMj.png

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来填充

3I73uQ.png

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接口标识就是:

3769HK.png

另一方面,在路由器上部署ISATAP后,路由器会产生一个Tunnel接口,用于响应ISATAP主机的隧道建立请求,这个TUNNEL接口同样会产生接口标识。地址的格式是IANA保留给ISATAP的32比特的0000:5EFE后追加32比特的V4地址。如下图,假设ISA路由器配置的V4地址(用于隧道)是2.2.2.2 那么ISA Tunnel的地址标识就是

37cQqx.png

这里关于64bits接口标识中“为ISATAP保留的” 高阶32bits,也就是前缀,上面红色的地址字段,貌似有着全局唯一和私有之分,不过在IETF的

ISA主机和路由器产生的64bits接口标识,可进一步用于构造隧道接口的链路本地地址,以及V6全局单播地址。另外因为ISATAP的操作范围在站点内,所以ISA主机和路由器的V4地址可以是私有地址,也可以是公有地址。

工作机制

37gGmq.png

6to4隧道

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

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

相关文章

如何编写高质量代码

如何编写高质量代码 1. 前言2. 明确业务场景和用户需求3. 编程实践技巧3.1 提高命名规范3.2 保持代码简洁3.3 好的注释 4. 软件测试5. 总结 1. 前言 现代软件开发中,代码是构建高质量软件的核心。高质量代码能够提高软件系统的可靠性、可维护性和可扩展性&#xff…

3.3 动态存储随机存储器

学习目标: 理解动态随机存取存储器的基本原理和工作机制。掌握动态随机存取存储器的读写操作及时序。理解动态随机存取存储器的存储单元结构和电路设计。熟悉动态随机存取存储器的刷新技术及其影响因素。理解动态随机存取存储器与静态随机存取存储器的异同。掌握动态…

2008-2019年主要城市PITI指数

2008-2019年主要城市PITI指数 1、来源:附在文件内 2、时间区间:2008-2019年 3、具体时间分布:、2008、2009-2010、2011、2012、2013-2014、2014-2015、2015-2016、2016-2017、2017-2018、2018-2019、 4、范围:包括110个城市&a…

Runtime Data Area(运行时数据区域)

运行时数据区是JVM用来管理和存储Java程序执行过程中所需要的各种数据的区域,也成为JVM内存结构。JVM内存结构主要包括以下几个部分: 程序计数器(Program Counter Register) 程序计数器是一种特殊的内存区域,它可以在…

线索二叉树(前中后序线索化/遍历/画线索)

线索二叉树 文章目录 线索二叉树1 线索二叉树的基本概念2 线索二叉树的构造2.1 线索二叉树的存储结构2.2 给线索二叉树画线索2.2.1 中序2.2.2 先序2.2.3 后序 2.3 二叉树线索化代码实现2.3.1 通过中序遍历线索化2.3.2 通过先序遍历线索化2.3.3 通过后序遍历线索化 3 线索二叉树…

五一欢乐赛!题解

前言 有点一言难尽, 这次本来想的给大火减减压放了很多区域赛和省赛的签到题(还有一些是写过的题), 没想到打的并不是很理想, 还用了分数值想减少一些差距, 结果看起来好像让差距更大了, 尴尬 A题 Frozen Scoreboard https://codeforces.com/gym/104076/problem/D 济南站的中…

【MST+离线】ABC235 E - MST + 1

一开始想的是分类讨论,看那条边加了之后成不成环,如果不成环且权值在前n-1,则一定在MST里,不在前n-1则不在MST里;如果成环了,如果权值不在前n-1,则不在MST里,如果权值在前n-1&#x…

InstructGPT怎么准备和标记数据集

目录 1. 谁标记数据集 2. 数据集的来源 3.数据预处理 4. 标记数据集的方法 5. 数据多样性 6. 这样标记的数据的不足之处 名词解释 1. 谁标记数据集 OpenAI 公司在Upwork平台上和Scale AI公司聘请了大约 40 名承包商为他们标记数据,通过筛选测试(screening tes…

ros基础笔记

1创建工作空间 catkin_init_workspace 将文件夹初始化成ros文件 编译工作空间catkin_make vi ~/.bashrc 加入环境变量bashrc一下在任何终端都生效 catkin_create_pkg learning_communication通讯机制 std_msgs数据结构 rospy roscpp catkin_create_pkg mbot_description ur…

【C++】string类常用接口

目录 一、string类二、string类的常用接口1.string类对象的常见构造2.string类对象的容量操作3.string类对象的访问及遍历操作4.string类对象的修改操作5.string类非成员函数6.vs和g下string结构的说明 一、string类 STL的六大组件: 字符串是表示字符序列的类标准…

E. Train Hard, Win Easy(数学推导 + 前缀和)

Problem - E - Codeforces 这是一个有关竞赛编程的问题。Zibi 是一名竞赛编程教练,有 n 名选手想要备战。培训比赛具有一些不同寻常的规则——每个团队有两名成员和两个问题,每个选手都会编写其中一个问题的代码。当然,一个团队中的人将编写不…

ViveNAS - 一个基于LSM tree的文件存储实现 (一)

1. ViveNAS (GitHub - cocalele/ViveNAS) ViveNAS 是一个开源分布式的网络文件系统(NAS), 具有下面的特点: - 通过不同存储介质的结合,在高性能、低成本间寻找动态的平衡 - 解决数据的长期、低成本存储问题&#xff…

JVM-0428

执行引擎 执行引擎做什么的 执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引…

java基础入门-03

Java基础入门-03 10、字符串10.1.API10.1.1API概述10.1.2如何使用API帮助文档 10.2.String类10.2.1 String类概述10.2.2 String类的特点10.2.3 String类的构造方法10.2.4 创建字符串对象两种方式的区别10.2.5 字符串的比较10.2.5.1 号的作用10.2.5.2 equals方法的作用 10.2.6 用…

java web会话管理

在人机交互过程中,会话管理是指保持用户的整个会话活动的交互与计算机系统跟踪的过程。会话管理分为桌面会话管理、浏览器会话管理、Web会话管理。本书讨论的是Web会话管理(通常指的是session以及Cookie) , 也称为会话跟踪。 会话管理基本原理 使用隐藏…

机器学习笔记 图像特征提取器(卷积变体)的技术发展与演变

一、图像特征提取器简述 图像特征提取器是可用于从图像中学习表示的函数或模块。最常见的特征提取器类型是卷积,其中内核在图像上滑动,允许参数共享和平移不变性。 在深度学习技术的快速发展过程中,基于卷积也演变出来了若干新技术由于图像特征的提取,这里进行了一下简单梳…

[oeasy]python0145_版本控制_git_备份还原

git版本控制 回忆上次内容 上次我们了解了 try 的完全体 try 尝试运行 except 发现异常时运行的代码块 else 没有发现异常时运行的代码块 finally 无论是否发现异常最终都要运行的代码块 发现导入部分 可以再分为两个子模块一个输入 a一个输入 b 可以再拆分么?&…

【Python基础练习100题--第一篇:文件篇】

前言 这些题都是在B站的练习题,链接在这 对于刚学python的新手来说十分的适合, 可以加强和巩固我们的基础。 嘿嘿 一起噶油吧!🍉 🍉1.对学生成绩排序 # 这里对字典进行排序,同事使用到了sorted函数 # 这…

【安全工具】Httpx信息收集

文章目录 前言一、下载二、使用步骤1.帮助文档2.常用命令常用组合命令: 总结 前言 HTTPX 是一个功能强大的 HTTP 客户端工具,用于执行各种网络任务,例如发现 Web 应用程序漏洞、探测域名和端口等。它使用了 retryablehttp 库来运行多个探测器…

[计算机图形学]相机与透镜(前瞻预习/复习回顾)

一、相机 1.成像方法 成像方法有两种,合成和捕捉,我们之前所说的光栅化和光线追踪都属于合成的方法,也就是实际上不存在的东西。而另一种成像方法叫做捕捉成像,也就是把真实世界中存在的一些东西变成照片这就是捕捉成像&#xf…