IPv6的过度技术
如何界定手动与自动?
主要是隧道目标地址能否自动获取
👯1. 双栈
必须支持IPv4和IPv6协议
链接双栈网络的接口必须同时配置v4和v6地址
路由器能够根据二层标记识别协议,type:0x0800代表IPV4,type:0x86dd代表IPv6
针对主机上层应用:例如DNS上层应用会优先选择IPv6协议栈,而不是IPv4。比如一个同时支持v4和v6的应用请求通过DNS请求地址,会先请求AAAA记录,如果没有,则再请求A记录。
也就是访问v4用v4地址,访问v6用v6地址
🖐️2. 手动隧道
(1)IPv6 over IPv4 手动隧道
隧道的源地址和目的地址均需要手工指定
主要用于边界路由器与边界路由器 或者 主机与边界路由器
通过在IPv6报头前加一个IPv4报头来通过IPv4的链路
interface Tunnel [隧道号] //进入隧道接口tunnel-protocol ipv6-ipv4 //设置隧道封装协议ipv6 address [IPv6地址] //隧道口从逻辑上也是一个接口,又要传v6报文所以也需要一个v6地址source [隧道源地址] //使用哪个ipv4地址封装,一般选用换回口destination [隧道目的地址] //隧道终点的IPv4地址
(2)GRE隧道
原理与6over4隧道类似,报文区别就是在v4头和v6头间插一个GRE头
interface Tunnel [隧道号] //进入隧道接口tunnel-protocol GRE //设置隧道封装协议ipv6 address [IPv6地址] //隧道口从逻辑上也是一个接口,又要传v6报文所以也需要一个v6地址source [隧道源地址] //使用哪个ipv4地址封装,一般选用换回口destination [隧道目的地址] //隧道终点的IPv4地址
🛰️3. 自动隧道
(1)6to4隧道
6to4 只能使用固定地址格式:2002:/16 也就是必须是2002开头 格式:2002:ipv4::/48 如:2002:0101:0101:5:9 对应ipv4:1.1.1.1
所以在规划子网的时候就要规划好
可以连接多个6to4网络,同各国SLA ID区分
通信方式依旧V6的报文是穿上V4的报头,通过v4的链路,但差别是如何建立的隧道
当pc1想访问pc2时,将(源2002:0101:0101:0003::2,目2002:0202:0202:0001::1)报文发给网关,网关配置了隧道,隧道会根据目的地址解析出隧道终点的v4地址,到达隧道终点拆掉v4报头,又变成了正常的v6报文在v6链路中转发
6to4隧道配置如下:
interface Tunnel [隧道号] //进入隧道接口tunnel-protocol ipv6-ipv4 6to4 //设置隧道封装协议ipv6 address [最好6to4的特殊地址] //如果不是2002特殊地址,就不能中继了source [隧道源地址] //使用哪个ipv4地址封装,一般选用环回口需要另外指定一条缺省路由
ipv6 route-static 2002:: 16 Tunnel [隧道号]
6to4 中继
普通6to4隧道地址必须是2002开头的,如果有主机不是2002开头的就不能访问,非常不灵活
所谓中继就是在路由器上配置一条静态地址,6to4隧道能够根据下一跳提取终点地址,也就是在上述命令中提到的隧道口地址最好也是2002开头的特殊6to4地址
(2)ISATAP自动隧道
ISATAP隧道和6to4差不多,也是采用专用地址,但不想6to4固定开头,而是使用固定的第4组和第5组数,0000:5EFE,也就是主机位的前两段。最后两组数来指代v4地址
例如,2004:1212:4545:7878:0000:5EFE:0101:0101
固定的两组数 v4地址1.1.1.1
由于不是使用的固定前缀,所以它可以通过NDP协议来获取前缀
如果IPV4地址是全局唯一的,则u位为1,否则u位为0。g位是IEEE群体/个体标志。由于ISATAP是通过接口标识来表现的,所以,ISATAP地址有全局单播地址、链路本地地址、ULA地址、组播地址等形式。
ISATAP过渡机制允许在现有的IPV4网络内部署IPV6,该技术简单而且扩展性很好,可以用于本地站点的过渡。
ISATAP支持IPv6站点本地路由和全局IPv6路由域,以及自动IPV6隧道。ISATAP同时还可以与NAT结合,从而可以使用站点内部非全局唯一的IPv4地址。典型的ISATAP隧道应用是在站点内部所以,其内嵌的IPv4地址不需要是全局唯一的,只需要有个全局唯一前缀即可。
1.首先配置ISATAP隧道接口,这时会根据IPv4地址生成ISATAP类型的接口ID,也就是后64bit
2.根据接口ID生成一个ISATAP链路本地IPv6地址,因为本地链路地址固定前缀是FE80::,生成链路本地地址以后,主机就有了在本地链路上进行IPv6通信的能力。
3.可以通过NDP下发前缀进行自动配置,主机获得IPv6全球单播地址、ULA地址等
4.当主机与其它IPv6主机进行通讯时,从隧道接口转发,将从报文的下一跳IPv6地址中取出IPv4地址作为IPv4封装的目的地址。如果目的主机在本站点内,则下一跳就是目的主机本身,如果目的主机不在本站点内,则下一跳为ISATAP路由器的地址。
🥴4. 过度后期
由于目前应用很少,这里先简要介绍
(1)IPv4 over IPv6
当进入过度后期,IPv6为主流但还存在少量IPv4孤岛,所以要在v6网络上传播v4报文
和上文中的6over4类似,4over6只是在v4报头前套上v6报头
(2)NAT64
NAT64技术实际上是一种协议转换技术,能够将分组在V4及V6格式之间灵活转换。
IPv6过渡中的协议翻译技术就是将IPv6数据包的每个字段与IPv4数据包中的字段建立起一一映射的关系,从而在两个网络的边缘实现数据报文的转换。
1.IPv6单栈PC终端通过IPV6网络向DNSIPV6服务器发送对于网站www.abc.com的AAAA请求。
2.由于IPv6网络中没有www.abc.com的AAAA地址,DNS IPV6服务器获取此URL(UniformResource Locator,统一资源定位器)地址的A地址解析结果(10.10.0.11)。
3.DNS IPV6服务器在A请求返回的IPv4地址前面增加指定的IPv6前缀(64:FF9B),形成64:FF9B:0A0A:B的IPV6 AAAA解析结果给终端
4. 终端使用源地址2001:DB8:1、源端口1500,向目的地址64:FF9B:0A0A:B、目的端口80发送报文
5.报文在网络中被转发到NAT64设备。注意:NAT64设备会将64:FF9B/96路由发布出去,以引导所有去往这个网段的流量都转发到NAT64设备。
注意:NAT64设备会将64:FF9B/96路由发布出去,以引导所有去往这个网段的流量都转发到NAT64设备。
6.NAT64设备对IPV6报文的目的地址除去IPv6前缀(64:FF9B),对于源地址和源端口进行NAT64转换(源地址转换为192.168.113.1,源端口转换为2000),转换为IPv4报文后转发到IPv4网络。
当内网流量进行正向的NAT64转换时,将在NAT64设备的NAT64映射表中创建一条表项,该映射表项的信息如下所示。
地址映射:内网地址2001:DB8::1映射外网地址192.168.113.1。
端口映射:内网端口1500映射外网2000。当外网流量返回时,将会命中该表项,通过反向的NAT64转换为IPV6报文,转发回IPv6网络
相关文章:

IPv6的过度技术
如何界定手动与自动? 主要是隧道目标地址能否自动获取 👯1. 双栈 必须支持IPv4和IPv6协议 链接双栈网络的接口必须同时配置v4和v6地址 路由器能够根据二层标记识别协议,type:0x0800代表IPV4,type:0x…...

Python用K-Means均值聚类、LRFMC模型对航空公司客户数据价值可视化分析指标应用|数据分享...
全文链接:https://tecdat.cn/?p38708 分析师:Yuling Fang 信息时代的来临使得企业营销焦点从产品中心转向客户中心,客户关系管理成为企业的核心问题(点击文末“阅读原文”获取完整代码数据)。 客户关系管理的关键是客…...

WebRTC的三大线程
WebRTC中的三个主要线程: signaling_thread,信号线程:用于与应用层交互worker_thread,工作线程(最核心):负责内部逻辑处理network_thread,网络线程:负责网络数据包的收发…...

Spring SpEL表达式由浅入深
标题 前言概述功能使用字面值对象属性和方法变量引用#this 和 #root变量获取类的类型调用对象(类)的方法调用类构造器类型转换运算符赋值运算符条件(关系)表达式三元表达式Elvis 操作符逻辑运算instanceof 和 正则表达式的匹配操作符 安全导航操作员数组集合(Array 、List、Map…...

数据设计规范
目录 一、数据库设计的原则 二、表设计原则 三、其他设计规范 四、最佳实践 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据&#…...

基于SpringBoot的宠物寄养系统的设计与实现(源码+SQL+LW+部署讲解)
文章目录 摘 要1. 第1章 选题背景及研究意义1.1 选题背景1.2 研究意义1.3 论文结构安排 2. 第2章 相关开发技术2.1 前端技术2.2 后端技术2.3 数据库技术 3. 第3章 可行性及需求分析3.1 可行性分析3.2 系统需求分析 4. 第4章 系统概要设计4.1 系统功能模块设计4.2 数据库设计 5.…...

深度学习中的HTTP:从请求到响应的计算机网络交互
在现代深度学习应用中,HTTP(超文本传输协议)不仅仅是网页浏览的基础协议,它也在机器学习和人工智能的服务架构中扮演着至关重要的角色。本文将深入探讨HTTP在深度学习中的应用,并阐明它如何支持模型的训练、推理及API服…...

Agent系列:AppAgent v2-屏幕智能Agent(详解版)
引言 简介 方法 Agent 框架 Agent 交互 探索阶段 部署阶段 文档生成 高级功能 实验结果 总结 局限性 未来工作 1. 引言 大语言模型(LLM)如 ChatGPT 和 GPT-4 显著提升了自然语言处理能力,并且推动了智能体在自主决策中的应用。…...

艾体宝方案丨全面提升API安全:AccuKnox 接口漏洞预防与修复
一、API 安全:现代企业的必修课 在现代技术生态中,应用程序编程接口(API)扮演着不可或缺的角色。从数据共享到跨平台集成,API 成为连接企业系统与外部服务的桥梁。然而,伴随云计算的普及与微服务架构的流行…...

开源的Vue低代码表单设计器 form-create-designer v3.2.9 版本发布,新增10多种功能
form-create-designer 是一款开源的低代码表单设计器,通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。并广泛应用于在政务系统、OA系统、ERP系统、电商系统、流程管理等领域。 项目采…...

Android Killer 无法调用jd-gui.exe
在Android Killer 时,点击图标转换为java代码时,调用jd-gui.exe 弹窗无法验证发布者,点击运行没反应 第一种方案:开启组策略(网上找的,没有效果) 键盘WinR ,在弹出窗口中输入gped…...

24.01.01 MyBatis
对sql拆分简化之后,更适合使用MyBatisPlus 搭建项目 引入依赖 <!--Mysql 驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--Druid数据库连接池--><dependenc…...

游戏引擎学习第70天
这一节没讲什么主要是关于接下来要干的任务 开发过程概览 我们正在进行最后的总结,并计划接下来的步骤。目前的目标是创建一个包含所有必要组件的游戏引擎原型版本,目的是让这些部分能够协同工作并展现预期效果。通过这一过程,可以实验和探…...

深入理解 Spring Cloud 中的 Eureka、Ribbon 和 Feign
1.eureka自我保护机制是什么? Eureka的自我保护机制是一种针对网络异常情况的安全保护措施,旨在防止因为网络问题导致的服务注册中心(Eureka Server)与微服务实例之间的通信故障。当网络分区或其他形式的网络故障发生时,即使微服…...

DVWA靶场Brute Force (暴力破解) 漏洞low(低),medium(中等),high(高),impossible(不可能的)所有级别通关教程
目录 暴力破解low方法1方法2 mediumhighimpossible 暴力破解 暴力破解是一种尝试通过穷尽所有可能的选项来获取密码、密钥或其他安全凭证的攻击方法。它是一种简单但通常无效率的破解技术,适用于密码强度较弱的环境或当攻击者没有其他信息可供利用时。暴力破解的基…...

山高路陡,无人机代替滑轨吊运物资极大提高做作业效率降低成本
在山高路陡的地区,无人机代替传统的滑轨吊运物资,极大地提高了作业效率并降低了成本。以下是对这一现象的详细分析: 一、无人机吊运的优势 1. 提高作业效率: 无人机能够快速响应并执行吊运任务,尤其在高山、陡峭或交…...

数据的高级处理——pandas模块进阶——数据的统计运算
今天的学习用有好几处与书上的内容有出入,不只是因为pycharm中函数更新、弃用的问题,还是作者有些疏忽。不过影响不大,运行报错,GPT分析一下,原因很简单。这里不进行详细书名,在下边的代码上已经进行详细的…...

【Leetcode】3280. 将日期转换为二进制表示
文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 给你一个字符串 date,它的格式为 yyyy-mm-dd,表示一个公历日期。 date 可以重写为二进制表示,只需要将年、月、日分别转换为对应的二进制表示&a…...

Vue3 中自定义hook
什么是hook?—— 本质是一个函数,把setup函数中使用的Composition API进行了封装,类似于vue2.x中的mixin。 自定义hook的优势:复用代码, 让setup中的逻辑更清楚易懂。 场景需求:现在我需要获取当前鼠标所点击的地方的…...

嵌入式系统 第七讲 ARM-Linux内核
• 7.1 ARM-Linux内核简介 • 内核:是一个操作系统的核心。是基于硬件的第一层软件扩充, 提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统, 决定着系统的…...

音视频入门基础:MPEG2-PS专题(2)——使用FFmpeg命令生成ps文件
一、错误的命令 通过FFmpeg命令可以将mp4文件转换为ps文件,PS文件中包含PS流数据。 由于PS流/PS文件对应的FFInputFormat结构为: const FFInputFormat ff_mpegps_demuxer {.p.name "mpeg",.p.long_name NULL_IF_CONFIG_SMALL…...

Embedding
Embedding 在机器学习中,Embedding 主要是指将离散的高维数据(如文字、图片、音频)映射到低纬度的连续向量空间。这个过程会生成由实数构成的向量,用于捕捉原始数据的潜在关系和结构。 Text Embedding工作原理 词向量化&#x…...

Android Studio学习笔记
01-课程前面的话 02-Android 发展历程 03-Android 开发机器配置要求 04-Android Studio与SDK下载安装 05-创建工程与创建模拟器...

Git的使用流程(详细教程)
目录 01.Git是什么? 1.1 Git简介 1.2 SVN与Git的最主要的区别 1.3 GIt主要特点 02.Git是干什么的? 2.1.Git概念汇总 2.2 工作区/暂存区/仓库 2.3 Git使用流程 03.Git的安装配置 3.1 Git的配置文件 3.2 配置-初始化用户 3.3 Git可视化…...

Keil中的gcc
文章目录 一、IDE背后的命令1.1 IDE是什么1.2 IDE的背后是命令1.3 有两套主要的编译器 二、准备工作2.1 arm-linux-gcc和gcc是类似的2.2 Code::Blocks2.2.1 设置windows环境变量2.2.2 命令行示例 三、gcc编译过程详解3.1 程序编译4步骤3.2 gcc的使用方法3.2.1 gcc使用示例3.2.2…...

bilibili 哔哩哔哩小游戏SDK接入
小游戏的文档 简介 bilibili小游戏bilibili小游戏具有便捷、轻量、免安装的特点。游戏包由云端托管,在哔哩哔哩APP内投放和运行,体验流畅,安全可靠。https://miniapp.bilibili.com/small-game-doc/guide/intro/ 没想过接入这个sdk比ios还难…...

springboot523基于Spring Boot的大学校园生活信息平台的设计与实现(论文+源码)_kaic
摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本大学校园生活信息平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据…...

【YOLO算法改进】ALSS-YOLO:无人机热红外图像|野生动物小目标检测
目录 论文信息 论文创新点 1.自适应轻量通道分割和洗牌(ALSS)模块 2.轻量坐标注意力(LCA)模块 3.单通道聚焦模块 4.FineSIOU损失函数 摘要 架构设计 轻量高效网络架构 - ALSS模块 LCA模块 单通道聚焦模块 损失函数优…...

XML解析
一,XML概述 1.什么是XML XML即为可扩展的标记语言(eXtensible Markup Language) XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识 2.XML和HTML不同之处 XML主要用于说明文档的主题,而…...

PlasmidFinder:质粒复制子的鉴定和分型
质粒(Plasmid)是一种细菌染色体外的线性或环状DNA分子,也是一种重要的遗传元素,它们具有自主复制能力,可以在细菌之间传播,并携带多种重要的基因(如耐药基因与毒力基因等)功能。根据质粒传播的特性…...