IPv6(五)

server/2024/9/21 14:30:18/

文章目录

  • IPv6协议
    • ICMPv6
    • NDP邻居发现

IPv6协议

ICMPv6

IPv6的基础协议之一

在IPv4中,Internet 控制报文协议 ICMP 向源节点报告关于向目的地传输IP数据包过程中的错误和信息。它为诊断、信息和管理目的定义了一些消息,如:目的不可达、数据包超长、超时、回应请求和回应应答等。

在IPv6中,ICMPv6除了提供ICMPv4常用的功能之外,还是其它一些功能的基础,如邻接点发现、无状态地址配置(包括重复地址检测)、PMTU发现等。

ICMPv6的协议类型号(即IPv6报文中的Next Header字段的值)为58

  • Type:表明消息的类型,0至127表示差错报文类型,128至255表示消息报文类型。
  • Code:表示此消息类型细分的类型。
  • Checksum:表示ICMPv6报文的校验和。
  • type:
    0-127表示差错报文类型
    128-255表示消息报文类型
    128 : Request
    129 : Reply
    133 : RS //寻找路由器的报文
    134 : RA //路由器发送的报文
    135 : NS //类似于ARP-Request报文
    136 : NA //类似于ARP-Reply报文
    137 : ICMPV6重定向

NDP邻居发现

邻居发现协议NDP(Neighbor Discovery Protocol)是IPv6协议体系中一个重要的基础协议

邻居发现协议替代了IPv4的ARP(Address Resolution Protocol)和ICMP路由器发现(Router Discovery),定义了使用ICMPv6报文实现地址解析,跟踪邻居状态,重复地址检测,路由器发现以及重定向等功能。


邻居通告报文:

  • 邻居请求报文NS:类型字段值为135
  • 邻居通告报文NA:类型字段值为136
  • 在路由器发现中使用了两种ICMPv6报文:路由器通告和路由器请求报文:
  • 路由器通告RA:类型字段值为134
  • 路由器请求RS:类型字段值为133
  • 重定向使用了一种新的ICMPv6报文:重定向报文。重定向报文类型字段值为137




地址解析

类似于IPv4中的ARP协议

  • 基于ICMPv6实现
  • 包括NS报文和NA报文
#PC1 发送NS消息(135)请求
Source IP:自己的IPv6地址                 目的IP:PC2的请求节点组播地址#(物理接口的地址可以推出来请求节点组播地址)
Source MAC:自己的MAC                    目的MAC:33开头的组播MAC地址
target address:PC1的IP地址
Option:自己的MAC地址#PC2 回应NA消息(136)应答,回复的时候发送的是单播报文
Source IP:自己的IPv6地址                 目的IP:PC1的IPv6地址
Source MAC:自己的MAC                    目的MAC:PC1的MAC
target address:PC2的IP地址
Option:自己的MAC地址

IPv6定义了五种邻居状态

Empty状态为空白状态

  • 未完成(Incomplete)
  • 可达(Reachable)
  • 陈旧(Stale)
  • 延迟(Delay)
  • 探查(Probe)
#下面以A、B两个邻居节点之间相互通信过程中A节点的邻居状态变化为例(假设A、B之前从未通信),说明邻居状态迁移的过程。
1.A先发送NS报文,并生成缓存条目,此时邻居状态变为Incomplete。
2.若B回复NA报文,则邻居状态由Incomplete变为Reachable,如固定时间后未收到NA报文则邻居状态由Incomplete变为Empty,即删除表项。此状态可以通信
3.邻居链路空余固定时间后,邻居状态由Reachable变为Stale,即未知是否可达。
4.如果在Reachable状态,A收到B的非请求NA报文,且报文中携带的B的链路层地址(NAC地址)和表项中不同,则邻居状态马上变为Stale。
5.在Stale状态若A要向B发送数据,则邻居状态由Stale变为Delay,并发送NS请求。如果有NA应答,变成Reachable。
6.再经过一段固定时间后,邻居状态由Delay变为Probe,期间若有NA应答,则邻居状态由Delay变为Reachable。
7.在Probe状态,A每隔一定时间间隔发送单播NS,发送固定次数后,有应答则邻居状态变为Reachable,无应答则邻居状态变为Empty,即删除表项。dis ipv6 neighbors    //查看IPv6邻居状态debugging ipv6 nd    //开启Debug测试
terminal debugging    //终端显示Debug信息
terminal monitor    //监控显示Debug信息

DAD重复地址检测

IPv4使用免费ARP进行重复地址的检测、IPv6使用DAD进行地址冲突的检测

  • 基于ICMPv6实现

  • 包括 NS 报文和 NA 报文

  • 在进行DAD检测是,一个IPv6单播地址在分配给一个接口之后且通过重复地址检测之前称为试验地址(Tentative Address)。此时该接口不能使用这个试验地址进行单播通信,但是仍然会加入两个组播组:ALL-NODES组播组和实验地址所对应的Solicited-Node组播组。

  • IPv6重复地址检测技术和IPv4中的免费ARP类似:节点向一个自己即将使用的试验地址所在Solicited-Node组播组发送一个以该试验地址为请求的目标地址的NS报文,如果收到某个其他站点回应的NA报文,就证明该地址已被网络上使用,节点将不能使用该实验地址通讯,如果没有收到某个其他站点发送的NA报文,那么这个试验地址转换为正式地址就可以使用了

#DAD检测过程
1、PC1的IPv6地址为2001::1为新配置的地址,即试验地址,PC1向2001::1所在的 Solicited-Node 组播组发送一个以 2001::1 为请求的目标地址的NS报文进行冲突检测,由于2001::1报文的源地址为未指定地址,PC2收到该NS报文后,有两种处理方法(1)、如果PC2发现2001::1是自身的一个试验地址,则PC2放弃使用该地址作为接口地址,并且不会发送NA报文(2)、如果PC2发现2001::1是自己已经在使用的地址,PC2会向该地址所在的All-Node组播组发送一个NA报文,消息中包含			2001::1。之后PC1收到消息之后就会停止使用该地址



路由发现

  • 基于ICMPv6实现
  • 发现与本地链路相连的路由器
  • 获取与地址自动配置相关的前缀和其他配置参数
  • 包括RA和RS报文

在IPv6中,IPv6地址可以支持无状态的自动配置,即主机通过某种机制获取网络前缀信息,然后主机自己生成地址的接口标识部分。路由器发现功能是IPv6地址自动配置功能的基础,主要通过以下两种报文实现:

  • 路由器通告RA(Router Advertisement)报文:每台路由器为了让二层网络上的主机和路由器知道自己的存在,定时都会组播发送RA报文,RA报文中会带有网络前缀信息,及其他一些标志位信息。RA报文的Type字段值为134。
  • 路由器请求RS(Router Solicitation)报文:很多情况下主机接入网络后希望尽快获取网络前缀进行通信,那么此时主机可以立刻发送RS报文,网络上的路由器将回应RA报文。RS报文的Type字段值为133。


    RA消息的源IP:自己 的Link-local地址 目的地址是FF02::1
#当存在以下情况时,忽略RA发送的前缀
1、ICMPv6里的Option字段的Flag中的Auto未置位
2、前缀与已有地址前缀重复(包括Link-local地址)
3、RA报文选项中 Preferred lifetime 时间大于 Valid lifetime
4、前缀长度与接口ID长度之和不等于128位
#除以上情况外,主机获得前缀同时也获取一些相关的时间参数
1、Preferred time 发起通讯的有效时间
2、valid lifetime 原有通讯的有效时间
#主机会周期新的发送RA报文,并根据此报文来更新自己的时间参数




ICMPv6中的Flag字段

M位置1:表示有状态–DHCPv6
M位置0:表示无状态–RA消息自动获取
O位置1:表示通过无状态获取到 IP 地址,但是通过有状态的方式获取到其他信息、比如DNS




ICMPv6----RA消息中的Flag字段:

  1. Cur Hop Limit:64----该字段用于帮助主机完成跳数限制。当PC使用该RA通告的前缀构建IPv6地址后,该PC发送的IPv6报文的跳数限制被设置为该值(64)
  2. Managed address configuration----M位默认为0,0时收到该RA的主机使用RA中包含的IPv6前缀用于无状态地址自动配置
    ----使用如下命令,可将该值设置为1----ipv6 nd autoconfig managed-address-flag
    ----当该值为1时,收到该RA的主机将采用有状态自动配置,也就是DHCPv6的方式来获取IPv6地址
  3. Other Configuration,默认为0,表示主机不应该使用有状态自动配置机制来配置除了IPv6地址外的其他参数
    ----使用命令:ipv6 nd autoconfig other-flag----将该值置1,则主机需使用DHCPv6来配置除了IPv6地址外的其他信息,如DNS,域名等,但是IPv6地址还是无状态自动获取的
  4. Router Lifetime:1800----单位是秒,主机将路由器视为缺省路由器的时间。该计时器到计数为0时,该路由器将不会出现在主机的缺省网关列表中



    对于M位和O位,配置强制置1命令之后需要重新使能一下接口来进行实现

Author:DC

http://www.ppmy.cn/server/119848.html

相关文章

camtasia2024绿色免费安装包win+mac下载含2024最新激活密钥

Hey, hey, hey!亲爱的各位小伙伴,今天我要给大家带来的是Camtasia2024中文版本,这款软件简直是视频制作爱好者的福音啊! camtasia2024绿色免费安装包winmac下载,点击链接即可保存。 先说说这个版本新加的功能吧&#…

html+css+js网页设计 旅游 厦门旅游网11个页面

htmlcssjs网页设计 旅游 厦门旅游网11个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&am…

Linux:重定向以及管道

重定向(重新定向命令的输出) 将前面命令的输出,作为内容,写入到后面的文件 管道 管道(操作符号 | ) 作用:将前面命令的输出,传递给后面命令,作为后面命令的参数…

安卓13修改设置设备型号和设备名称分析与更改-android13设置设备型号和设备名称更改

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 用户要定制一些系统显示的设备型号和设备名称,这就需要我们分析设置里面的相关信息来找到对应的位置进行修改了。 2.问题分析 像这种信息要么是config.xml里面写死了,要…

nginx常用配置及调优

文章目录 nginx编译安装php编译安装整合nginx连接php测试LNMP环境的PHP服务是否可以连接mysql nginx配置ssl证书及http跳转https编译安装nginx后新添加模块隐藏nginx版本号和标识配置nginx运行用户和cpu亲和性优化nginx事件处理模型优化nginx最多可打开文件数优化nginx进程最大…

IP纯净度对跨境电商有哪些影响

在全球化贸易的浪潮中,跨境电商凭借其打破地理界限的能力,成为推动国际贸易的重要力量。然而,跨境电商的运营并非没有挑战,其中IP纯净度是影响其成功的关键因素之一。本文将探讨IP纯净度对跨境电商运营的多方面影响,并…

基于python+django+vue的旅游网站系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

Unity的Button组件进行扩展

废话不多说,在Untiy中,如果想要对Button等组件进行扩展的话,那么不仅仅只需要将新增的属性设置为public或者增加SerializeField字段就行了的,同时需要对Inspector的GUI面板进行修改,以下直接展示代码: usi…