IPv6知识点整理

        IPv6:是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址 。

        国际IP地址分配方式:

  1. ICANN的IANA部门负责将IP地址分配给5个区域性的互联网注册机构RIR ,比如APNIC,它负责亚太地区的IP分配
  2. RIR将地址进一步分配给当地的ISP,比如:中国电信和中国移动
  3. ISP再根据自己的情况,将IP地址分配给机构或者直接分配给用户,比如将IPv4 A类地址分配给一个超大型机构,而将IPv4 C类地址分配给一个中型企业。

【1】与IPV4相比,IPV6具有以下优势:

  1. IPv6具有更大的地址空间
    IPv4中规定IP地址长度为32,即有2^32-1(符号^表示升幂,下同)个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。
  2. IPv6使用更小的路由表
    IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
  3. IPv6增加了增强的组播(Multicast)支持以及对流的支持(Flow Control)
    使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。
  4. IPv6加入了对自动配置(Auto Configuration)的支持
    对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
  5. IPv6具有更高的安全性
    在使用IPv6网络中,用户可以对网络层的数据进行加密,并对IP报文进行校验,极大增强了网络安全性。

 IPv6地址和IPv4地址对比

【2】IPv6地址介绍

        IPv6地址长度为128位,是IPv4地址长度的4倍。IPv4点分十进制格式不再适用,IPv6采用十六进制表示。

        IPv6地址用冒号分隔为8段,每一段16位,每一段用十六进制表示。

        与IPv4地址类似,IPv6也用"IPv6地址/掩码长度"的方式来表示IPv6地址,例如:
        2001:0db8:85a3:08d3:1319:8a2e:0370:7344/64

【2.1】IPv6的3种表示方法

【2.1.1】冒号分隔(简称:冒分)十六进制表示法

        格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16bit(16位二进制数),以十六进制表示,例如:

        ABCD:EF01:2345:6789:ABCD:EF01:2345:6789/64

        这种表示法中,每个X的前导0是可以省略的,例如:

        2001:0DB8:0000:0023:0008:0800:200C:417A >> 2001:DB8:0:23:8:800:200C:417A

【2.1.2】0位压缩表示法

        有时候一个IPv6地址中间可能连续多个0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:
        FF01:0:0:0:0:0:0:1101>>FF01::1101
        0:0:0:0:0:0:0:1 >> ::1
        0:0:0:0:0:0:0:0 >> ::

【2.1.3】内嵌IPv4地址表示法

        IPv4地址会嵌入IPv6地址中,表示格式为:X:X:X:X:X:X:d.d.d.d,即IP地址前96位采用IPv6冒分十六进制表示,IP地址最后32位使用IPv4点分十进制表示,例如:
        ::192.168.0.1
        ::FFFF:192.168.0.1

注意在前96位,前导0省略和压缩0位的方法依旧适用。

【2.2】IPv6地址结构

IPv6地址分为如下两部分:网络前缀+接口标识

  • 网络前缀:nbit,相当于IPv4地址中的网络ID
  • 接口标识:(128 - n)bit,相当于IPv4地址中的主机ID

示例:

        2001:0DB8:6101:0001:5ED9:98FF:FECA:A298/64

【2.2.1】IPv6地址前缀

        鉴于IPv4地址在规划和分配上的局限性,IETF对IPv6地址类型进行了精细划分,不同类型的IPv6地址被赋予了不同的前缀,且受地址分配机构的严格管理。

        现阶段常用的IPv6地址或前缀

特定前缀IPv6地址

含义

2001::/16

用于IPv6 Internet,类似于IPv4公网地址

2002::/16

用于6to4隧道

FE80::/10

链路本地地址前缀,用于本地链路范围内的通信

FF00::/8

组播地址前缀,用于IPv6组播

::/128

未指定地址,类似于IPv4中的0.0.0.0

::1/128

环回地址,类似于IPv4中的127.0.0.1

【2.2.2】IPv6地址接口标识

接口ID可以通过三种方式生成:

  • 手工配置
  • 系统自动生成
  • 基于IEEE EUI-64规范生成

基于IEEE EUI-64的规范生成IPv6接口标识

        转换算法:将第7位取反,即0变为1,或者1变为0,在MAC地址的中间(24bit处)插入两个字节:FFFE。

【3】IPv6地址分类

        IPv6协议主要定义了三种地址类型:单播地址(Unicast Address)、组播地址(Multicast Address)和任播地址(Anycast Address)。

        单播地址:用来唯一标识一个接口,发送到单播地址的数据报文将被传送给此地址所标识的一个接口。

        组播地址:用来标识一组接口(通常这组接口属于不同的节点),发送到组播地址的数据报文被传送给此地址所标识的所有接口。

        任播地址:用来标识一组接口(通常这组接口属于不同的节点),发送到任播地址的数据报文被传送给此地址所标识的一组接口中距离源节点最近(根据使用的路由协议进行度量)的一个接口。

        IPv6地址类型是由地址前缀部分来确定,主要地址类型与地址前缀的对应关系如下:

地址类型地址前缀(二进制)IPv6前缀标识
单播地址未指定地址00…0(128 bits)::/128
环回地址00…1(128 bits)::1/128
链路本地地址1111 1110 10FE80::/10
唯一本地地址1111 110FC00::/7(包括FD00::/8和不常用的FC00::/8)
站点本地地址(已弃用,被唯一本地地址代替)1111 1110 11FEC0::/10
全局单播地址其他形式-
组播地址1111 1111FF00::/8
任播地址从单播地址空间中进行分配,使用单播地址的格式

【3.1】单播地址

        IPv6单播地址包括四个类型:全局单播地址、本地单播地址、兼容性地址、特殊地址。

【3.1.1】全局单播地址(GUA---Global Unicast Address)

        也被成为可聚合全球单播地址,相当于IPv4中的公网地址,用于IPv6 Internet上进行全局路由和访问。这种地址类型允许路由前缀的聚合,从而限制了全球路由表项的数量。

        注:由于全局单播地址前3bit固定为001,因此全球单播地址在用冒分十六进制表示时,是以2000或3000开头,如,2000:X:X:X:X:X:X:X或者3000:X:X:X:X:X:X:X

【3.1.2】本地单播地址

        链路本地地址和唯一本地地址都属于本地单播地址,在IPv6中,本地单播地址就是指本地网络使用的单播地址。每个接口上至少要有一个链路本地单播地址,另外还可分配任何类型(单播、任播和组播)或范围的IPv6地址。

【3.1.2.1】链路本地地址(LLA---Link-Local Address)

        链路本地地址网络前缀为FE80::/10,仅用于单个链路(链路层不能跨网段),不能在不同子网中路由。结点使用链路本地地址与在同一个链路上的相邻结点进行通信。例如,在没有路由器的单链路IPv6网络上,主机使用链路本地地址与该链路上的其他主机进行通信。

        注:由于链路本地地址前10bit固定为1111 1110 10,因此链路本地地址在用冒分十六进制表示时,是以FE8、FE9、FEA和FEB开头,如,FE80:X:X:X:X:X:X:X、FE90:X:X:X:X:X:X:X、FEA0:X:X:X:X:X:X:X或者FEB0:X:X:X:X:X:X:X 

【3.1.2.2】唯一本地地址(ULA---Unique Local Address)

        唯一本地地址网络前缀为FC00::/7,是IPv6私网地址,只能够在内网中使用。该地址空间在IPv6公网中不可路由,因此不能用于访问公网(Internet)。

        注:由于唯一本地地址前7bit固定为1111 110,因此唯一本地地址在用冒分十六进制表示时,是以FC或FD开头,如,FC00:X:X:X:X:X:X:X或者FD00:X:X:X:X:X:X:X

 【3.2】组播地址

        IPv6组播地址可识别多个接口,对应于一组接口的地址(通常分属不同节点)。发送到组播地址的数据包被送到由该地址标识的每个接口。使用适当的组播路由拓扑,将向组播地址发送的数据包发送给该地址识别的所有接口。任意位置的IPv6节点可以侦听任意IPv6组播地址上的组播通信。IPv6节点可以同时侦听多个组播地址,也可以随时加入或离开组播组。

        IPv6组播地址q前8位固定为1111 1111,即以FF开始的IPv6地址为组播地址。

        组播地址由前缀(FF::/8)、标志(Flag)字段、范围(Scope)字段以及组播组ID(Group ID)4个部分组成。最后112位为组ID( Group ID ),标识不同的组播组,前面的80位为0 ,只使用最后32位。

Flags(标记):第一位为零,格式为|0|r|p|t|,通常0000或者0001。

  • r位:取0表示内嵌RP,取1表示内嵌RP。
  • p位:取0表示非基于单播前缀的组播地址,取1表示基于单播前缀的组播地址。
  • t位:取0表示永久分配组播地址,取1表示临时分配组播地址。

Scope(范围):4bit,标识传播范围。

  • 0001 node(节点):本地接口范围,仅用于Lookback。
  • 0010 link(链路):本地链路范围。
  • 0101 Site(站点):本地站点范围。

        发送组播数据包通常是单台设备,可以是组播组成员,也可以是其它主机,数据包的目的地址是组播地址。 

        被请求节点组播地址:当一个节点具有了单播和任播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组。该地址主要用于邻居发现机制和地址重复检测功能。被请求节点组播地址的有效范围为本地链路范围。被请求节点组播地址格式如下:

        被请求节点组播地址的前104位是固定的,后24位根据单播地址的后24来进行填充。
        例如:全球单播地址:2001:172:16:12::1
        对应被请求节点组播地址为:FF02::1:FF00:01 
        其中FF02::1表示所有主机,FF02::2表示所有路由器。

 如下示例:

        PC1发送数据至PC2前,首先需要获取其MAC地址。PC1将发起类似IPv4中ARP的解析流程,IPv6使用ICMPv6的NS和NA报文来实现地址解析过程,NS报文的目的IPv6地址为目标IPv6单播地址对应的被请求节点组播地址。

        组播IPv6报文的目的IP为组播IPv6地址,同样,目的MAC为组播MAC地址。组播MAC的前16bit为"33:33",是专门为IPv6组播预留的MAC地址前缀。后32bit从组播IPv6地址的后32bit直接映射而来。

【3.3】任播地址

        在IPv6中没有广播的概念,但是有任播地址,它的范围和全球单播地址一致,只不过可以重复配置,无法根据地址判断是单播地址还是任意播地址。通过合适的路由拓扑,目的地址为任播地址的数据包将被发送到单个接口(该地址识别的最近接口,最近接口定义的根据是路由距离最近,而且当最近的路由器故障时,根据路由指向下一台最近的路由器。),一个任播地址绝不能用作IPv6数据包的源地址;也不能分配给IPv6主机,仅可以分配给IPv6路由器 。

【4】IPv6报文结构

IPv6报文一般由三个部分组成:

  • 基本报头:提供报文转发的基本消息,路由器通过解析基本报头就能完成绝大多数额报文转发任务(长度固定为40字节)
  • 扩展报头:提供一些扩展的报文转发信息,如分段、加密等,该部分不是必需的,也不是每个路由器都需要处理,仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头
  • 上层协议数据单元:一般由上层协议报头和它的有效载荷构成,该部分与IPv4上层协议数据单元相似

【4.1】IPv6基本报头

版本号表示协议版本,值为6
流量类别主要用于QoS
流标签用来标识同一个流里面的报文
载荷长度包含扩展报头和数据部分的长度,最多可表示65535字节数,超过则置为0
下一报头该字段用来指明报头后接的报文头部的类型,若存在扩展头,表示第一个扩展头的类型,否则表示其上层协议的类型,它是IPv6各种功能的核心实现方法
跳数限制该字段类似于IPv4中的TTL,每次转发跳数减一,该字段达到0时包将会被丢弃
源地址标识该报文的来源地址
目的地址标识该报文的目的地址

【4.2】IPv6扩展报头

  • Extension Header Length:扩展报头长度,长度为8bit。表示扩展报头的长度(不包含Next Header字段)
  • Extension Header Data:扩展报头数据,长度可变。扩展报头的内容,为一系列选项字段和填充字段的组合

  • 逐跳选项报头:该扩展报头被每一条处理,可包含多种选项,如路由器告警选项
  • 目的选项报头:目的地处理,可包含多种选项,如Mobile IPv6的家乡地址选项
  • 路由报头:指定源路由,类似IPv4 源路由选项,IPv6源节点用来指定信息报到达目的地的路径上所必须经过的中间节点。IPv6基本报头的目的地址不是分组的最终目的地址,而是路由扩展头中所列的第一个地址
  • 分段报头:IP报文分片信息,只由目的地处理
  • 认证报头:IPsec用扩展头,只由目的地处理
  • 封装安全净载报头:IPsec用扩展头,只由目的地处理

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React的生命周期函数详解

import React,{Component} from "react";import SonApp from ./sonAppclass App extends Component{state{hobby:爱吃很多好吃的}// 是否要更新数据,这里返回true才会更新数据shouldComponentUpdate(nextProps,nextState){console.log("app.js第一步…

创建和探索VGG16模型

PyTorch在torchvision库中提供了一组训练好的模型。这些模型大多数接受一个称为 pretrained 的参数,当这个参数为True 时,它会下载为ImageNet 分类问题调整好的权重。让我们看一下创建 VGG16模型的代码片段: from torchvision import models…

视图(views)

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 下面通过一个例子讲解在Django项目中定义视图,代码如下: from django.http import HttpResponse # 导入响应对象 impo…

Flutter【组件】点击类型表单项

简介 flutter 点击表单项组件,适合用户输入表单的场景。 点击表单项组件是一个用户界面元素,通常用于表单或设置界面中,以便用户可以点击它们来选择或更改某些设置或输入内容。这类组件通常由一个标签和一个可点击区域组成,并且…

Redis-数据类型-zset

文章目录 1、查看redis是否启动2、通过客户端连接redis3、切换到db4数据库4、将一个或多个member元素及其score值加入到有序集key当中5、升序返回有序集key6、升序返回有序集key,让分数一起和值返回的结果集7、降序返回有序集key,让分数一起和值返回到结…

Charles抓包工具系列文章(一)-- Compose 拼接http请求

一、背景 众所周知,Charles是一款抓包工具,当然是http协议,不支持tcp。(如果你想要抓tcp包,请转而使用wireshark,在讲述websocket的相关技术有梳理过wireshark抓包) 话说回来,char…

浏览器自带的IndexDB的简单使用示例--小型学生管理系统

浏览器自带的IndexDB的简单使用示例--小型学生管理系统 文章说明代码效果展示 文章说明 本文主要为了简单学习IndexDB数据库的使用&#xff0c;写了一个简单的增删改查功能 代码 App.vue&#xff08;界面的源码&#xff09; <template><div style"padding: 30px&…

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇域控系统提权NetLogonADCSPACKDC永恒之蓝CVE漏洞

红队内网攻防渗透 1. 内网横向移动1.1 横向移动-域控提权-CVE-2020-1472 NetLogon1.2 横向移动-域控提权-CVE-2021-422871.3 横向移动-域控提权-CVE-2022-269231.4 横向移动-系统漏洞-CVE-2017-01461.5 横向移动-域控提权-CVE-2014-63241. 内网横向移动 1、横向移动-域控提权-…

elementui组件库实现电影选座面板demo

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Cinema Seat Selection</title><!-- 引入E…

【学一点儿前端】单页面点击前进或后退按钮导致的内存泄露问题(history.listen监听器清除)

今天测试分配了一个比较奇怪的问题&#xff0c;在单页面应用中&#xff0c;反复点击“上一步”和“下一步”按钮时&#xff0c;界面表现出逐渐变得卡顿。为分析这一问题&#xff0c;我用Chrome的性能监控工具进行了浏览器性能录制。结果显示&#xff0c;每次点击“上一步”按钮…

区间预测 | Matlab实现CNN-ABKDE卷积神经网络自适应带宽核密度估计多变量回归区间预测

区间预测 | Matlab实现CNN-ABKDE卷积神经网络自适应带宽核密度估计多变量回归区间预测 目录 区间预测 | Matlab实现CNN-ABKDE卷积神经网络自适应带宽核密度估计多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CNN-ABKDE卷积神经网络自适应…

思考题:相交的几何图形

给定不超过 26 个几何图形&#xff0c;每个图形都有一个唯一大写字母作为其编号。 每个图形在平面中的具体位置已知&#xff0c;请你判断&#xff0c;对于每个图形&#xff0c;有多少个其他图形与其存在交点。 在判断交点时&#xff0c;只考虑边与边相交的情况&#xff0c;如…

Java 8 Date and Time API

Java 8引入了新的日期和时间API&#xff0c;位于java.time包下&#xff0c;旨在替代旧的java.util.Date和java.util.Calendar类。新API更为简洁&#xff0c;易于使用&#xff0c;并且与Joda-Time库的一些理念相吻合。以下是Java 8 Date and Time API中几个核心类的简要概述&…

AIGC-CVPR2024best paper-Rich Human Feedback for Text-to-Image Generation-论文精读

Rich Human Feedback for Text-to-Image Generation斩获CVPR2024最佳论文&#xff01;受大模型中的RLHF技术启发&#xff0c;团队用人类反馈来改进Stable Diffusion等文生图模型。这项研究来自UCSD、谷歌等。 在本文中&#xff0c;作者通过标记不可信或与文本不对齐的图像区域&…

【网络协议】精讲ARP协议工作原理!图解超赞超详细!!!

亲爱的用户&#xff0c;打开微信&#xff0c;搜索公众号&#xff1a;“风云说通信”&#xff0c;即可免费阅读该文章~~ 目录 前言 1. ARP协议介绍 1.1 ARP协议功能 1.2 ARP请求报文 1.3 ARP工作原理 2. ARP 缓存超时 2.1 RARP 3. ARP 攻击 3.1 ARP 攻击分类 前言 首先…

HTML(16)——边距问题

清楚默认样式 很多标签都有默认的样式&#xff0c;往往我们不需要这些样式&#xff0c;就需要清楚默认样式 写法&#xff1a; 用通配符选择器&#xff0c;选择所有标签&#xff0c;清除所有内外边距选中所有的选择器清楚 *{ margin:0; padding:0; } 盒子模型——元素溢出 作…

超越AnimateAnyone, 华中科大中科大阿里提出Unimate,可以根据单张图片和姿势指导生成视频。

阿里新发布的UniAnimate&#xff0c;与 AnimateAnyone 非常相似&#xff0c;它可以根据单张图片和姿势指导生成视频。项目核心技术是统一视频扩散模型&#xff0c;通过将参考图像和估计视频内容嵌入到共享特征空间&#xff0c;实现外观和动作的同步。 相关链接 项目&#xff1…

Eclipse使用TFS(Team Foundation Server) 超详细

Eclipse使用TFS 1、什么是TFS2、TFS和Git的区别3、签出代码4、签入代码4.1、签出以进行编辑4.2、修改本地代码4.3、签入挂起的更改4.4、签入 如果不能 签入挂起的更改&#xff0c;则先 签出以进行编辑如果 签入挂起的更改不可选中&#xff0c;则 如下操作 1、什么是TFS Team F…

fastadmin多语言切换设置

fastadmin版本&#xff1a;1.4.0.20230711 以简体&#xff0c;繁体&#xff0c;英文为例 一&#xff0c;在application\config.php 里开启多语言 // 是否开启多语言lang_switch_on > true, // 允许的语言列表allow_lang_list > [zh-cn, en,zh-tw], 二…

达梦数据守护集群部署

接上篇 达梦8单机规范化部署 https://blog.csdn.net/qq_25045631/article/details/139898690 1. 集群规划 在正式生产环境中&#xff0c;两台机器建议使用统一配置的服务器。使用千兆或千兆以上网络。 两台虚拟机各加一块网卡&#xff0c;仅主机模式&#xff0c;作为心跳网卡…