ICMPv6与DHCPv6之网络工程师软考中级

ICMPv6概述

ICMPv6是IPv6的基础协议之一。
在IPv6报文头部中,Next Header字段值为58则对应为ICMPv6报文。
ICMPv6报文用于通告相关信息或错误。
ICMPv6报文被广泛应用于其它协议中,包括NDP、Path MTU发现机制等
ICMPv6控制着IPv6中的地址自动配置、地址解析(通过NS报文)、地址冲突检测(也是用NS)、路由选择、以及差错控制等关键环节。
自动配置有两种,一种是无状态,还有一种是有状态(DHCPv6)

ICMPv6报文格式

在这里插入图片描述
特别注意Echo Request和Echo Reply

差错报文(Error Messages),也称为差错消息,Type字段最高bit为0,也就是ICMPv6 Type=[0,127]差错消息用于报告在转发IPv6数据包过程中出现的错误,如常见的目的不可达、超时
等等。
信息报文(Information Messages也称为信息消息,Type字段最高bit为1,也就是ICMPv6 Type=[128,255]信息报文可以用来实现同一链路上节点间的通信和子网内的组播成员管理等,

ICMPv6差错报文的应用-Path MTU发现

在IPv6中,中间转发设备不对IPv6报文进行分片,报文的分片将在源节点进行。
PMTU(Path MTU)就是路径上的最小接口MTU。
PMTUD(Path MTU发现机制)的主要目的是发现路径上的MTU,当数据包被从源转发到目的地的过程中避免分段。
依赖PMTUD,数据的发送方可以使用所发现到的最优PMTU与目的地节点进行通信,这样可以避免数据包在从源传输到目的的过程之中,被中途的路由器分片而导致性能的下降。
在这里插入图片描述

ICMPv6信息报文的应用-Ping

Ping基于ICMPv6信息报文实现
Echo Request:用于发送到目标节点,以使目标节点立即发回一个Echo Reply应答报文。Echo Request报文的Type字段值为128,Code字段的值为0。
Echo Reply:当收到一个Echo Request报文时,ICMPV6会用Echo Reply报文响应,Echo Reply报文的Type字段的值为129,Code字段的值为0。
在这里插入图片描述

NDP概述

RFC2461定义了IPv6邻居发现协议NDP。NDP是IPv6中非常核心的组件。其主要功能如下:
在这里插入图片描述
NDP报文类型及功能
NDP使用以下几种ICMPv6报文
RS(Router Solicitation):路由器请求报文。RA(RouterAdvertisement):路由器通告报文
NS(Neighbor Solicitation):邻居请求报文NA(NeighborAdvertisement):邻居通告报文
在这里插入图片描述

路由器发现

路由器发现是指主机发现本地链路上路由器和确定其配置信息的过程。路由器发现可以同时实现以下三个功能:
路由器发现(Router Discovery):主机定位邻居路由器以及选择哪一个路由器作为缺省网关的过程。
前缀发现(Prefix Discovery):主机发现本地链路上的一组IPv6前缀的过程,用于主机的地址自动配置。
参数发现 (Parameter Discovery):主机发现相关操作参数的过程,如输出报文的缺省跳数限制、地址配置方式等信息。
使用报文:
-RS 路由器请求
-RA路由器通告
协议交互主要有两种情况:
-主机发送RS触发路由器回应RA
-路由器周期发送RA
在这里插入图片描述

地址解析

IPv6地址解析通过ICMPv6(NS和NA报文)来实现。
·在三层完成地址解析,主要带来以下几个好处:
·地址解析在三层完成,不同的二层介质可以采用相同的地址解析协议。
·可以使用三层的安全机制避免地址解析攻击。
·使用组播方式发送请求报文,减少了二层网络的性能压力
在这里插入图片描述

跟踪邻居状态

通过邻居或到达邻居的通信,会因各种原因而中断,包括硬件故障、接口卡的热插入等。如果目的地失效,则恢复是不可能的,通信失败:如果路径失效,则恢复是可能的。因此节点需要维护一张邻居表,每个邻居都有相应的状态,状态之间可以迁移。RFC2461中定义了5种邻居状态,分别是:未完成(Incomplete)、可达(Reachable)、陈旧(Stale)、延迟(Delay)、探查(Probe)。

在这里插入图片描述

重复地址检测

重复地址检测DAD(Duplicate Address Detect)是在接口使用某个IPv6单播地址之前进行的,主要是为了探测是否有其它的节点使用了该地址。尤其是在地址自动配置的时候,进行DAD检测是很必要的。一个IPv6单播地址在分配给一个接口之后且通过重复地址检测之前称为试验地址(Tentative Address)。IPv6重复地址检测技术和IPv4中的免费ARP类似:节点向试验地址所对应的Solicited-Node组播组发送NS报文。NS报文中目标地址即为该试验地址。如果收到某个其他站点回应的NA报文,就证明该地址已被网络上使用,节点将不能使用该试验地址通讯。

重定向

重定向是指网关设备发现报文从其它网关设备转发更优,它就会发送重定向报文告知报文的发送者让报文发送者选择另一个网关设备。重定向报文也承载在ICMPv6报文中,其Type字段值为137。
在这里插入图片描述
1.PC1希望发送报文到服务器,于是根据配置的默认网关地址向网关R2发送报文,
2.网关R2收到报文后,检查报文信息,发现报文应该转发到与PC1在同一网段的另一个网关设备R1,此转发路径是更优的路径,于是R2会向PC1发送一个重定向消息,通知PC1去往服务器的报文应直接发给R1。
3.PC1收到重定向消息后,会向R1发送报文,R1再将该报文转发至服务器。

IPv6地址配置方式

IPv6地址配置的方式可以分为静态配置和动态配置。其中,动态地址配置又可以分为无状态地址自动配置(Stateless Address Autoconfiguration,SLAAC)和有状态地址自动配置(Stateful AddressAutoconfiguration)。
在这里插入图片描述
有状态又可以分为两种,一种叫做DHCP的有状态,一种叫做DHCP的无状态

在这里插入图片描述

IPv6地址无状态自动配置过程

1.PC1根据本地的接口ID自动生成链路本地地址,
2.PC1对该链路本地地址进行DAD检测,如果该地址无冲突则可启用,此时PC1具备IPv6连接能力,
3.PC1发送RS报文,尝试在链路上发现IPv6路由器
4.R1发送RA报文(携带可用于无状态地址自动配置的IPv6地址前缀。路由器在没有收到RS报文时也能够主动发出RA报文):
PC1解析路由器发送的RA报文,获得IPv6地址前缀使用该前缀加上本地的接口ID生成IPv6单播地址。
PC1对生成的IPv6单播地址进行DAD检测,如果没有检测到冲突,则启用该地址。

在这里插入图片描述

IPv6地址无状态自动配置示例

IPv6无状态地址配置通过交互RS和RA报文完成。

在这里插入图片描述

RA报文中的Flages字段

在这里插入图片描述

DHCPv6概述

·DHCPv6针对IPv6编址方案设计,支持对客户端分配IPv6前缀、IPv6地址和其他网络配置参数,并记录这些信息,便于网络管理。
·DHCPv6又分为如下三种:
1.DHCPv6有状态自动配置:DHCPV6服务器自动配置IPv6地址/前缀及其他网络配置参数(DNSNIS、SNTP服务器地址等参数)。
2.DHCPv6无状态自动配置:主机IPv6地址仍然通过路由通告方式自动生成,DHCP6服务器只分配除IPv6地址以外的配置参数,包括DNS服务器等参数。
3.DHCPv6 PD(Prefix Delegation,前缀代理)自动配置:下层网络路由器不需要再手工指定用户侧链路的IPv6地址前缀,它只需要向上层网络路由器提出前缀分配申请,上层网络路由器便可以分配合适的地址前缀给下层路由器,下层路由器把获得的前缀(前缀一般长度小于64)进一步自动细分成64位前缀长度的子网网段,把细分的地址前再通过路由通告(RA)至与IPv6主机直连的用户链路上,实现主机的地址自动配置,从而完成整个IPv6网络的层次化布局。

DHCPv6中的常用概念

在这里插入图片描述

DHCPv6有状态自动配置-四步交互

四步交互是指DHCPv6客户端与服务器交互四次来完成前缀/地址等参数获取的过程。
1.DHCPV6客户端发送Solicit消息,请求DHCPv6服务器为其分配IPv6地址/前缀和网络配置参数。
2.DHCPV6服务器回复Advertise消息,通知客户端可以为其分配的地址/前缀和网络配置参数。
如果DHCPV6客户端接收到多个服务器回复的Advertise消息则根据消息接收的先后顺序、服务器优先级等,选择其中一台服务器,并向该服务器发送Request消息,请求服务器确认为其分配地址/前缀和网络配置参数。
4.DHCPV6服务器回复Reply消息,确认将地址/前缀和网络配置参数分配给客户端使用。
在这里插入图片描述

DHCPv6有状态自动配置-两次交互

DHCPv6客户端可以在发送的Solicit消息中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址/前缀和网络配置参数。
在这里插入图片描述
1.DHCPV6客户端发送Solicit报文,携带Rapid Commit选项。
2.DHCPV6服务器接收到Solicit报文后,将会判断,如果DHCPv6服务器支持快速分配,则直接返回Reply报文,为客户端分配IPv6地址/前缀和其他网络配置参数。如果DHCPV6服务器不支持快速分配,则将采用四步交互方式。

DHCPv6无状态自动配置

DHCPV6服务器为已经具有IPv6地址/前缀的客户端分配除地址/前缀以外的其他网络配置参数,该过程称为DHCPv6无状态自动配置。
在这里插入图片描述
1.DHCPv6客户端以组播的方式向DHCPv6服务器发送Information-request报文,该报文中携带OptionRequest选项,指定客户端需要从服务器获取的配置参数。
2.服务器收到该报文后,为客户端分配网络配置参数并单播发送Reply报文将网络配置参数返回给客户端:客户端检查Reply报文中提供的信息,如果与Information-request报文中请求的配置参数相符,则按照Reply报文中提供的参数进行网络配置;否则,忽略该参数。

DHCPv6报文总结

在这里插入图片描述

地址自动配置比较

在这里插入图片描述

IPV6地址配置举例 -静态配置

在这里插入图片描述
ipv6后面不需要加enable
ipv6 address auto link-local表示链路地址自动去生成

IPv6地址配置距离-无状态自动配置

在这里插入图片描述

IPv6地址配置举例-DHCPv6

在这里插入图片描述

本文章为个人学习记录/笔记,如有错误请指出,如有雷同纯属巧合!!!

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

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

相关文章

将github上的项目导入到vscode并创建虚拟环境

1、将github上的项目导入到vscode 直接从github上下载到本地&#xff0c;用vscode打开&#xff08;Open file&#xff09; 2、创建虚拟环境 python -m venv <name> <name>\Scripts\activate ps: 1、退出虚拟环境 deactivate 2、如果运行python -m venv <…

十七、(正点原子)Linux LCD驱动

一、Framebuffer设备 在 Linux 中应用程序通过操作 RGB LCD 的显存来实现在 LCD 上显示字符、图片等信息。 先来看一下裸机 LCD 驱动如下&#xff1a; ①、初始化 I.MX6U 的 eLCDIF 控制器&#xff0c;重点是 LCD 屏幕宽(width)、高(height)、 hspw、 hbp、 hfp、 vspw…

c++语言实现类似swoole扩展的项目实践

实践目录&#xff1a; 最终实现的效果&#xff1a; <?php$server new BF\Server("0.0.0.0",9509);$server->on("connect",function($server,$fd){print_r($server);echo "收到客户端的连接了\r\n" ; });$server->on("receive…

嵌入式人工智能(24-树莓派4B的Linux系统故障日志查询分析)

1、dmesg ‌dmesg命令用于显示或控制‌Linux内核的环形缓冲区内容&#xff0c;主要用于查看系统启动信息、硬件检测、驱动加载等关键信息。以下是该命令的一些基本用法和选项&#xff1a; 基本用法&#xff1a;直接输入dmesg命令即可查看内核消息。例如&#xff0c;使用sudo …

Windows10+vs 2017中创建WEB API教程

我们如果需要用到web api怎么办&#xff1f;一般来说可以自己开发和去使用别人开发好的api&#xff0c;今天我们来讲一下Windows10vs 2017中创建web Api的教程。目前本教程当中的方法在Win10 VS2017&#xff08;MVC5&#xff09;win server2016vs2017&#xff0c;vs2013 vs201…

PHP简单商城单商户小程序系统源码

&#x1f6cd;️轻松开店&#xff0c;触手可及&#xff01;「简单商城小程序」让电商梦想照进现实&#x1f31f; &#x1f389;开店新风尚&#xff0c;「简单商城小程序」引领潮流&#xff01; 还在为繁琐的电商开店流程烦恼吗&#xff1f;想要快速搭建自己的线上商城&#x…

vue3引入openlayers

安装ol包 OpenLayers作为 ol npm包提供&#xff0c;它提供了官方支持的API的所有模块。 官方地址&#xff1a;ol npm install ol模块和子模块约定 具有CamelCase名称的OpenLayers模块提供类作为默认导出&#xff0c;并且可能包含其他常量或函数作为命名导出&#xff1a; i…

得物App弱网诊断探索之路

一、背景 随着得物用户规模和业务复杂度不断提升&#xff0c;端上网络体验优化已逐步进入深水区。为了更好地保障处于弱网状态下得物App用户的使用体验&#xff0c;我们在已有的网络体验大盘、网络诊断工具的基础上研发了弱网诊断能力。该工具能够高效实时诊断用户真实网络环境…

c++初阶知识——string类详解

目录 前言&#xff1a; 1.标准库中的string类 1.1 auto和范围for auto 范围for 1.2 string类常用接口说明 1.string类对象的常见构造 1.3 string类对象的访问及遍历操作 1.4. string类对象的修改操作 1.5 string类非成员函数 2.string类的模拟实现 2.1 经典的string…

Jenkins+Gitlab持续集成综合实战

一、持续集成应用背景&#xff1a; DevOps&#xff1a;&#xff08;英文Development&#xff08;开发&#xff09;和Operations&#xff08;技术运营&#xff09;的组合&#xff09;是一组过程、方法与系统的统称&#xff0c;用于促进开发&#xff08;应用程序/软件工程&#…

本地生活抽佣系统搭建:如何让系统具有竞争优势?

随着本地生活的潜力不断展现&#xff0c;本地生活服务商逐渐成为新兴职业中的一大热门&#xff0c;本地生活抽佣系统搭建的热度也一直保持着飙升的状态。 抖音生活发布的《2023年数据报告》显示&#xff0c;2023年&#xff0c;抖音生活服务平台总交易额增长256%&#xff0c;抖…

android13 Settings动态显示隐藏某一项

总纲 android13 rom 开发总纲说明 目录 1.前言 2.确定目标设置项 3.修改参考 3.1 方法1 3.2 方法2 4.编译测试 5.彩蛋 1.前言 在Android 13系统中,动态显示或隐藏Settings应用中的某一项通常涉及到对Settings应用的内部逻辑进行修改。由于Settings应用是一个系统应用…

涉及VPN、金融、健康服务等类型应用上架政策突变

大家好&#xff0c;我是牢鹅&#xff01;今天为大家分享Google Play 2024年7月17日下发的政策更新&#xff0c;此次政策更新距上次&#xff08;4月5日&#xff09;政策大更新仅过去三个月。前段时间牢鹅跟谷歌的人有聊过&#xff0c;今年他们的目标很明确&#xff0c;提高开发者…

云计算复习--虚拟化技术

文章目录 虚拟化技术定义与原理虚拟机监视器&#xff08;VMM&#xff09;虚拟化技术服务器虚拟化存储虚拟化网络虚拟化应用虚拟化 关键技术新型虚拟化技术发展进展作业 虚拟化技术定义与原理 定义&#xff1a;虚拟化技术是一种将计算机物理实体&#xff08;如服务器、存储设备…

ElasticSearch学习篇15_《检索技术核心20讲》进阶篇之TopK检索

背景 学习极客实践课程《检索技术核心20讲》https://time.geekbang.org/column/article/215243&#xff0c;文档形式记录笔记。 相关问题&#xff1a; ES全文检索是如何进行相关性打分的&#xff1f;ES中计算相关性得分的时机?如何加速TopK检索&#xff1f;三种思路 精准To…

SAP如何获取程序变式

一&#xff1a;获取变式的值 二&#xff1a;相关的内容表 VARID&#xff1a;变式目录 VARIT&#xff1a;变式描述 VARI &#xff1a;变式内容

CanFestival对象字典编辑器Python3版本

CanFestival是一个CANOpen开源C库&#xff0c;其自带对象字典编辑器&#xff0c;但是得用Python2来打开&#xff0c;其界面库使用的也是老版本的wxPython&#xff0c;使用起来非常不方便。 本人复制了一份对象字典编辑器源码&#xff0c;然后经过辛苦的修改&#xff0c;终于可…

Pyqt5新手教程

PyQt界面开发的两种方式&#xff1a;可视化UI 编程式UI &#xff08;1&#xff09;可视化UI&#xff1a;基于Qt Designer可视化编辑工具进行组件拖放、属性设置、布局管理等操作创建界面。 一是将其保存为.ui文件&#xff0c;然后在PyQt应用程序中加载和使用.ui文件。 二是使用…

【监控软件】Zabbix

目录 重点提要 1. 常见监控软件 2. 常用的zabbix组件 3. 主动模式与被动模式原理 4. 主动模式与被动模式实现 5. 监测JAVA程序Tomcat 6. proxy架构 7. proxy的安装 8. proxy的主动被动实现 9. zabbix自定义模版 10. zabbix邮件通知 11. zabbix自愈(nginx为例) 12. …

EXCEL 排名(RANK,COUNTIFS)

1.单列排序 需求描述&#xff1a;如有下面表格&#xff0c;需要按笔试成绩整体排名。 解决步骤&#xff1a; 我们使用RANK函数即可实现单列整体排名。 Number 选择第一列。 Ref 选择这一整列&#xff08;CtrlShift向下箭头、再按F4&#xff09;。 "确定"即可计算…