【IPv6】基本概念及字段

2023-05-16

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隧道

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【IPv6】基本概念及字段 的相关文章

  • vs中加入.h文件后改名为.cpp后,其中的函数无法被链接

    这个问题一般碰不到 一个项目 xff0c 是vs2015 c 43 43 win32类型的 xff0c 项目不大 xff0c 大约有10来个源文件 xff0c 一切都是正常的 后来由于需要添加md5加密 xff0c 所以就从别的项目中拿了一
  • windows下编译opencv 3.4.0

    为了方便后期的调试 xff0c 自己动手编译opencv3 4 0 xff0c 这样有需要的时候还可以自己修改修改源代码 通常来说 xff0c 编译32位比较简单 xff0c 直接用cmake生成编译的工程就行了 xff0c 但64位就比较
  • opencv添加的新接口clearVec()的实现

    自己编译的opencv xff0c 之前文章有说添加了这个接口 xff0c 也有上传3 3 0版本添加这个接口之后编译好的库 xff0c 但是没有把实现过程展现出来 xff0c 导致有些朋友问我如何实现的 xff0c 今天把这个实现放出来
  • Unity 3D代码在vs中无法自动提示的解决办法

    我安装Unity 3D后 xff0c 建立一个工程 xff0c 采用vs2019来编写代码 xff0c 发现没有自动提示功能 xff0c 根据网上说的 xff0c 要在unity中选择vs2019做为编辑器 xff0c 我也选择了 xff0
  • Arduino的全局变量的单独定义

    Arduino语言和C语言很像 xff0c 比如先定义变量再使用 xff0c 也可以采用 define 进行一些预定义等等 xff0c 但又有一些不同 当一个文件中的代码理过多时 xff0c 如果想把它们分开成多个文件 xff0c 则涉及到
  • 苏泊尔电饭煲不工作的维修

    本篇文章与其说是维修 xff0c 倒不如说成是 拆 xff0c 因为维修相对容易 xff0c 但想拆开却很艰难 xff0c 大部分的时间都花在了拆的工作上面 老家伙的样子如下 型号为 xff1a CYSB50FC99 100 xff0c 铭
  • 萨克斯吹不响的解决办法

    刚开始吹萨克斯 xff0c 发现总是吹不响 看各种入门的文章 xff0c 很多都强调口型的重要性 xff0c 各文章说得也都差不多 xff0c 我仔细捉摸 xff0c 不断尝试 xff0c 似乎还是不得要领 特别是安装好之后 xff0c 很
  • webpack是什么

    一 webpack是什么 webpack 是一个用于现代 JavaScript 应用程序的静态模块化打包构建工具 模块化 xff1a 服务端Common js xff08 module exports require xff09 浏览器端E
  • OLED显示秒表

    OLED显示秒表 include stm32f10x h include sys h include delay h include relay h include oled0561 h include led h include key
  • IP和MAC的通俗理解

    首先看下为什么有IP地址 xff0c 借鉴大佬的帖子 https showme codes 2018 05 17 understand mac ip 若有侵权 xff0c 即刻删除 IP和MAC都是为了确定一个地址 xff0c 区别在于 I
  • 图像特征提取三大法宝:HOG特征、LBP特征、Haar-like特征

    转自http dataunion org 20584 html xff08 一 xff09 HOG特征 1 HOG特征 xff1a 方向梯度直方图 xff08 Histogram of Oriented Gradient HOG xff09
  • 中英文环境配置 /etc/environment

    lwg 64 anima cat etc environment 中文界面配置 LANGUAGE 61 34 zh CN zh en US en 34 LC ALL 61 zh CN UTF 8 LANG 61 zh CN UTF 8 GS
  • SDN你必须知道的十大问题——SDN有哪些开源项目

    SDN之所以能够发展的如此之快 xff0c 其中开源社区的贡献不容忽视 随着SDN 各类社区的不断发展状大 xff0c 开源项目也在不断增多 xff0c 从控制器到交换机再到网络虚拟化 xff0c 开源项目一度让小编眼花缭乱 可能你熟悉Op
  • 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0/Ubuntu

    上篇介绍了使用命令行编译打包运行自己的MapReduce程序 xff0c 使用 Eclipse 更加方便 要在 Eclipse 上编译和运行 MapReduce 程序 xff0c 需要安装 hadoop eclipse plugin xff
  • windows远程连接阿里云ubuntu(问题集合)

    w 阿里云轻量应用服务器简单图形化界面以及VNC安装使用 橘游静的博客 CSDN博客 成功部署如上 xff1a 灰屏问题解决方法如下 xff1a vncviewe连接ubuntu系统显示灰屏解决方案 jx18080136806的专栏 CSD
  • VTK学习笔记(十)基于VTK和ITK程序

    VTK学习笔记 xff08 十 xff09 基于VTK和itk程序 1 程序2 CMakeLists txt3 哪里使用了VTK4 程序的执行5 数据存储与显示6 数据变化流程 1 程序 下面程序是一个基于ITK的连通域分析程序 span
  • 通过lodash和原生JS中的find方法实现根据数组对象中的某个参数去找到这个对象

    根据数组对象中的某个参数去找到这个对象 span class token variable const span span class token variable object span span class token punctuat
  • 零基础保姆级VirtualBox创建Linux虚拟机图文教程

    文章难度 xff1a 入门 环境 xff1a 软件环境 xff1a 操作系统 xff1a Windows 7专业版 VirtualBox xff1a 5 2 34 r133893 Qt5 6 2 硬件环境 xff1a CPU xff1a I
  • VirtualBox中Linux和Windows双向拖放的配置方法

    文章难度 xff1a 入门 环境 xff1a 软件环境 xff1a VirtualBox xff1a 5 2 34 主机操作系统 xff1a Windows 7专业版 虚拟机操作系统 xff1a Ubuntu 16 04 Desktop a
  • STM32输入捕获

    输入捕获模式可以用来测量脉冲宽度或者测量频率 STM32 的定时器 xff0c 除了 TIM6 和 TIM7 xff0c 其他定时器都有输入捕获功能 STM32 的输入捕获 xff0c 简单的说就是通过检测 TIMx CHx 上的 边沿信号

随机推荐

  • 设置VirtualBox共享文件夹的方法

    文章难度 xff1a 入门 环境 xff1a 软件环境 xff1a VirtualBox xff1a 5 2 34 主机操作系统 xff1a Windows 7专业版 虚拟机操作系统 xff1a Ubuntu 16 04 Desktop a
  • VirtualBox加载光盘的镜像文件

    环境 xff1a 软件环境 xff1a 操作系统 xff1a Windows 7专业版 VirtualBox xff1a 5 2 34 硬件环境 xff1a CPU xff1a Intel i5 内存 xff1a 8G 大部分新建的Virt
  • git设置http全局代理

    git config global 变量名称 变量内容 git config global unset 取消变量 例如 xff1a git设置全局http代理和https代理 git config global http proxy 127
  • ubuntu 20.04 gedit中文乱码的解决方法

    Ubuntu 20 04的gedit打开中文时会出现乱码 不废话 xff0c 直接上代码 打开命令行后 xff0c 输入如下指令 xff1a gsettings span class token keyword set span org g
  • Emacs中插入当前光标处的单词

    在查找时 xff0c 如果我们希望直接查找当前光标处的单词 xff0c 我们可以这样做 将光标移动到单词的第一个字母 使用快捷键 xff1a M 43 j 在Windows上M是ALT按键 如果觉得有帮助 xff0c 请点赞收藏 xff0c
  • 解决gitlab-ee安装时碰到的错误 28:in `initialize‘: undefined method `[]‘ for nil:NilClass (NoMethodError)

    直接开始解决问题 安装postgresql sudo apt install postgresql 重新配置gitlab sudo gitlab ctl reconfigure 继续安装gitlab sudo apt install gil
  • 【重识云原生】第四章云网络4.8.4节——OpenStack与SDN的集成

    1 Neutron项目简介 1 1 项目简介 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp OpenStack自己官方的网络项目是Neutron Neutron有着自己的一套网络实现方案 基于linux n
  • 【重识云原生】第六章容器6.3.1节——K8S核心组件总述

    1 K8S核心组件分类 一个kubernetes集群主要是由控制节点 master 工作节点 node 构成 xff0c 每个节点上都会安装不同的组件 xff0c 依然先放上经典的K8S架构图 xff1a 1 1 Master Master
  • xmanager远程Ubuntu1604LTS

    xmanager远程Ubuntu1604LTS 方案综述与选择 私有云走入千家万户 xff0c 单位要搞虚拟机 xff0c 终端要远程方式登陆 windows的mstsc xff0c centos6 3的xdmcp与xmanager都很好用
  • MySQL数据库 - 单表查询(三)

    第1关 对查询结果进行排序 本关任务 以成绩的降序显示学生成绩表中所有信息 USE School span class token punctuation span 请在此处添加实现代码 Begin 查询 span class token
  • BGP LinkState

    BGP LinkState xff1a 描述链路状态的路由协议 xff0c 一共由3部分组成 xff0c Node 43 Link 43 Prefix 通过查看prefic的detail信息查看sid xff0c 每个prefix都有一个s
  • 华为鲲鹏云服务器编译安装mysql-5.7.27 报错error: could not split insn

    华为鲲鹏云底层跟原来的华为云服务器又点区别 1 编译安装mysql 5 7 27时 xff0c 走到一半出现error could not split insn 无法在进行下一步 首先查看一下自己的gcc的版本 rpm qa grep gc
  • 3种云桌面(VDI、IDV、VOI)技术解决方案简介

    概述 云桌面技术的出现以其具有灵活性 安全性大大地简化了运维人员对终端设备的运维工作 同时也让用户可以不再局限于设备 地点 时间 xff0c 随时随地都可以通过网络访问自己的桌面系统了 云桌面技术作为云计算虚拟化技术的一种方式 xff0c
  • [H3C] 5120V2设备配置WEB以及TELNET界面

    H3C 5120V2设备配置WEB以及TELNET界面 Int vlan 1 Ip add 192 168 15 132 25 添加IP地址 H3C local user admin 建立一个新用户 New local user added
  • BFD的原理及配置

    BFD 简述 BFD xff08 Bidirectional Forwarding Detection xff0c 双向转发检测 xff09 是一个通用的 标准化的 介质无关和协议无关的快速故障检测机制 xff0c 用于检测IP网络中链路的
  • ISIS协议基础知识

    前言 介绍 ISIS xff0c 中间系统到中间系统的网络协议 xff0c 最初是OSI组织为了他的CLNP xff08 类似于TCP IP中的IP网络 xff09 而设计的动态路由协议 xff0c 后IETF对其进行修改和填充 xff0c
  • 信息安全管理与评估 21年国赛真题解析答案

    祝各位选手在比赛中荣获佳绩 xff0c 网络系统管理与信息安全交流群可见其他文章 xff0c 欢迎各位的加入 本文仅供参考 xff0c 请勿购买专栏 xff0c 有意合作私聊 DCRS工作任务 DCRS 开启 telnet 登录功能 xff
  • 神州数码 AP上线指南(待优化)

    网络安全 amp 网络系统管理交流群 xff1a 320870333 AP默认地址192 168 1 10 wireless no auto ip assign enable ap authentication none discovery
  • 【IPv6】IPv6 NDP邻居状态详解

    NDP 邻居状态 任意两个通信的主机在通信之前 xff0c 先要建立邻居 xff08 省的去查找arp了 xff09 因为接下来的文字会很乱 xff0c 排版费劲 xff0c 所以用这个来 未完成 Incomplete 可达 Reachab
  • 【IPv6】基本概念及字段

    IPV4知识点 xff1a 字段值 IPv4字段共 字段值解释Version版本版本字段 xff0c 可以区分V4和V6版本 xff0c V4是0100 xff0c V6是0110 xff0c 需要注意的是V4和V6头部除了版本字段位置相同