IPv6 NDP邻居发现协议 1

article/2025/10/30 8:18:21

NDP(Neighbor Discovery Protocol,邻居发现协议)是IPv6的一个关键协议,它组合了IPv4中的ARP、ICMP路由器发现和ICMP重定向等协议,并对它们作了改进。作为IPv6的基础性协议,NDP还提供了前缀发现、邻居不可达检测、重复地址监测、地址自动配置等功能。

这里的邻居:是指附着在相同链路的节点们


1
.地址解析:地址解析是一种确定目的节点的链路层地址的方法。NDP中的地址解析功能不仅替代了原IPv4中的ARP,同时还用邻居不可达检测(NUD)方法来维持邻居节点之间的可达性状态信息。

2.无状态地址配置:NDP中特有的地址自动配置机制,包括一些列相关功能,如路由器发现、接口ID自动生成、重复地址监测等。通过无状态自动配置机制,链路上的节点可以自动获得IPv6全球单播地址。

a)路由器发现:路由器与其他相连的链路上发布网络参数信息,主机捕获此信息后,可以获得全球单播IPv6地址前缀、默认路由、链路参数(链路MTU)等信息。

b)接口ID自动生成:主机根据EUI-64规范或其他方式为接口自动生成接口标识符。

c)重复地址监测(DAD):根据前缀信息生成或手动配置IPv6地址后,为保证该地址的唯一性,在其可以使用之前,主机需要检验它是否已被链路上的其他节点所使用。

d)前缀重新编址:当网络前缀变化时,路由器在与其相连的链路上发布新的网络参数信息,主机捕获这些新信息后,重新配置前缀、链路MTU等地址相关信息。

3.路由重定向:当在本地链路上存在一个更好的到达目的网络的路由器时,路由器需要通告节点来进行相应配置改变。 

NDP定义了5种ICMPv6报文类型,包括RS、RA、NS、NA和Redirect报文,如表2-1所示。

表2-1  ICMPv6报文类型

ICMPv6类型               消息名称

Type=133                  RS(Router Solicitation,路由器请求)

Type=134                  RA(Router Advertisment,路由器公告)

Type=135                  NS(Neighbor Solicitationh,领居请求)

Type=136                  NA(Neighbor Advertisement,邻居公告)

Type=137                  Redirect(重定向报文)

 

IPv6地址解析

地址解析在报文转发过程中具有至关重要的作用。当一个节点需要得到同一条链路上另外一个节点的链路层地址时,需要进行地址解析。IPv6使用NDP实现了这个功能,且有所增强。IPv6的地址解析过程包括两部分:一部分解析目的IP地址所对应的链路层地址;另一部分是邻居可达性状态的维护过程,即邻居不可达检测。

1.地址解析

与IPv4的ARP相比,IPv6地址解析技术工作在OSI参考模型的网络层,与链路层协议无关。这一特点的益处如下:

(1)加强了地址解析协议与底层链路的独立性。对每一种链路层协议都使用相同的地址解析,无须再为每一种链路层协议定义一个新的地址解析协议。

(2)增强了安全性。在第三层实现地址解析可以利用三层标准的安全认证机制来防止ARP攻击和ARP欺骗。

(3)减小了报文传播范围。IPv6的地址解析利用三层组播寻址限制了报文的传播范围,可节省网络带宽。

在IPv6中,NDP通过在节点间交互NS和NA报文完成IPv6地址到链路层地址的解析,然后通过解析后得到的链路层地址IPv6等地址信息来建立相应的邻居缓存表项。如图2-10所示,NodeA的链路层地址为00E0-FC00-0001,全局地址为1::1:A;NodeB的链路层地址为00E0-FC00-0002,全局地址为1::2:B。当NodeA要发送数据报文到NodeB时,需要NDP完成地址解析过程。

(1)NodeA发送一个NS报文到链路上,目的IPv6地址为NodeB对应的被请求节点组播地址(FF02::1:FF02:B),选项字段中携带了NodeA的链路层地址00E0-FC00-0001。

(2)NodeB接收到该NS报文后,由于报文的目的地址FF02::1::FF02:B是NodeB的被请求节点组播地址,所以NodeB会处理该报文;同时,根据NS报文中的源地址和源链路层地址选项更新自己的邻居缓存表项。

(3)NodeB发送一个NA报文来应答NS,同时在消息的目标链路层地址选项中携带自己的链路层地址00E0-FC00-0002。

(4)NodeA接收到NA报文后,根据报文中携带的NodeB链路层地址,创建一个到目标节点NodeB的邻居缓存表项。

图2-10  地址解析

通过交互,NodeA和NodeB就获得了对方的链路层地址,建立起了到达对方的邻居 缓存表项,从而可以相互通信。当一个节点的链路层地址发生改变时,将以所有节点组播地址FF02::1为目的地址发送NA报文,通知链路上的其他节点更新邻居缓存表项。

2.邻居不可达检测(NUD

NUD(Neighbor Unreachable Detection,邻居不可达检测)是节点确定邻居可达性的过程。邻居不可达检测机制通过邻居可达性状态机来描述邻居的可达性。

邻居可达性状态机保存在邻居缓存表中,共有如下6种状态:

(1)INCOMPLETE(未完成状态):表示正在解析地址,但邻居链路层地址尚未确定。

(2)REACHABLE(可达状态):表示地址解析成功,该邻居可达。

(3)STALE(失效状态):表示可达时间耗尽,未确定邻居是否可达。

(4)DELAY(延迟状态):表示未确定邻居是否可达。DELAY状态不是一个稳定的状态,而是一个延时等待状态。

(5)PROBE(探测状态):节点会向处于PROBE状态的邻居持续发送NS报文。

(6)EMPTY(空闲状态):表示节点上没有相关邻接点的邻居缓存表项。

 

图2-11  邻居状态机

图中实线箭头表示由NS/NA报文交互导致的状态变化,各状态间的相互转换如下:

① 在EMPTY状态时,如果有报文要发送给邻接节点,则在本地邻居缓存表建立该邻接节点的表项,并将该表项置于INCOMPLETE状态,同时向邻接节点以组播方式发送NS报文。

② 节点收到邻居回应的单播NA报文后,将处于INCOMPLETE状态的邻居缓存表项转化为REACHABLE状态。如果地址解析失败(发出的组播NS超时),则删除该表项。

③ 处于REACHABLE状态的表项,如果在REACHABLE_TIME时间内没有收到关于该邻居的“可达性证实信息”,则进入STALE状态。此外,如果该节点收到邻居节点发出的非S置位NA报文,并且链路层地址有变化,相关表项会进入STALE状态。

④ 处于STALE状态的表项,当有报文发往该邻居时,这个报文会利用缓存的链路层地址进行封装,并使该表项进入DELAY状态,等待收到“可达性证实信息”。

⑤ 进入DELAY状态后,如果DELAY_FIRST_PROBE_TIME时间之内还未收到关于该邻居的“可达性证实信息”,则该表项进入PROBE状态。

⑥ 在PROBE状态时,节点会周期性地用NS报文来探测邻居的可达性,探测最大时间间隔为RETRANS_TIMER,在最多尝试MAX_ UNICAST_SOLICIT次后,如果仍未收到邻居回应的NA报文,则认为该邻居已不可达,该表项将被删除。

NodeA上,NodeB的表项处于STALE状态。此时若NodeA有报文发往NodeB,且没有上层协议能够提供到NodeB的“可达性证实信息”时,则NodeA需要重新验证到NodeB的可达性。

NUD过程与地址解析过程的主要不同之处在于以下两点

(1)NUD的NS报文的目的MAC是目的节点的MAC地址;目的IPv6地址为NodeB的单播地址,而不是被请求节点组播地址。

(2)NA报文中的S标记须置位,表示是可达性确认报文,即这个NA报文是专门响应NS报文的。

无状态地址自动配置

IPv6同时定义了无状态和有状态地址自动配置机制。有状态地址自动配置使用DHCPv6来给主机动态分配IPv6地址,无状态地址自动配置通过NDP来实现。在无状态地址自动配置中,主机通过接收链路上的路由器发出的RA消息,结合接口的标识符而生成一个全球单播地址。

1.路由器发现

路由器发现是指主机定位本地链路上的路由器和确定其配置信息的过程,主要包含以下3方面内容:

(1)路由器发现(Router Discovery):主机发现邻居路由器及选择某一个路由器作为默认网关的过程。

(2)前缀发现(Prefix Discovery):主机发现本地链路上的一组IPv6前缀,生成前缀列表该列表用于主机的地址自动配置和on-link判断。

(3)参数发现(Parameter Discovery):主机发现相关操作参数的过程,如MTU、报文的默认跳数限制、地址分配方式等信息。

2.重复地址检测

DAD(Duplicate Address Detection,重复地址检测)是节点确定即将使用的地址是否在链路上唯一的过程。所有的IPv6单播地址,包括自动配置或手动配置的单播地址,在节点使用之前必须要通过重复地址检测。

DAD机制通过NS和NA报文实现。节点会发送NS报文,其源地址为未指定地址,目的地址为接口配置的IPv6地址。在NS报文发送到链路上后,如果在规定时间内没有收到应答的NA报文,则认为这个单播地址在链路上是唯一的,可以分配给接口;反之,如果收到应答的NA报文,则表明这个地址已经被其他节点所使用,不能配置到接口。

3.前缀重新编址

前缀重新编址(Prefix Renumbering)允许网络从以前的前缀平稳地过渡到新的前缀,用于提供对用户透明的网络重新编址能力。路由器通过RA报文中的优先时间和有效时间参数来实现前缀重新编址。

(1)优先时间(Preferred Lifetime):无状态自动配置得到的地址保持优先选择状态的时间。

(2)有效时间(Valid Lifetime):地址保持有效状态的时间。  

对于一个地址或前缀,优先时间小于或等于有效时间。当地址的优先时间到期时,该地址不能被用来建立新连接,但是在有效时间内,该地址还能用来保持以前建立的连接。在重新编址时,站点内的路由器会继续通告当前前缀,但是有效时间和优先时间将被减小到接近于0;同时,路由器开始通告新的前缀。这样,在每个链路上至少有两个前缀共存,RA消息中包括一个旧的和一个新的IPv6前缀信息。

4.无状态地址自动配置过程

NDP的无状态自动配置包含两个阶段:链路本地地址的配置和全球单播地址的配置。当一个接口启用时,主机会首先根据本地前缀FE80::/64和EUI-64接口标识符,为该接口生成一个链路本地地址,如果在后续的DAD中发生地址冲突,则必须对该接口手动配置本地链路地址,否则该接口将不可用。需要说明的是,一个链路本地地址的优先时间和有效时间是无限的,永远不超时。

对于主机上全球单播地址的配置步骤如下:

① 主机节点NodeA在配置好链路本地地址后,发送RS报文,请求路由器的前缀信息。

② 路由器收到RS报文后,发送单播RA报文,携带用于无状态地址自动配置的前缀信息,同时路由器也会周期性地发送组播RA报文。

③ NodeA收到RA报文后,根据前缀信息和配置信息生成一个临时的全球单播地址。同时启动DAD,发送NS报文验证临时地址的唯一性,此时该地址处于临时状态。

④ 链路上的其他节点收到DAD的NS报文后,如果没有用户使用该地址,则丢弃报文,否则产生应答NS的NA报文。

⑤ NodeA如果没有收到DAD的NA报文,说明地址是全局唯一的,则用该临时地址初始化接口,此时地址进入有效状态。

地址自动配置完成后,路由器可以自动进行NUD,周期性地发送NS报文,探测该地址是否可达。

路由器重定向

在重定向过程中,路由器通过发送重定向报文来通知链路上的报文发送节点,在同一链路上存在一个更优的转发数据报文的路由器。接收到该消息的节点据此修改其本地路由表项。路由器仅为单播数据流发送重定向报文,而重定向报文也仅以单播形式发送到始发主机,并且只会被始发节点处理。

如图2-12所示,NodeA的默认路由器为RTA,现在NodeA想发送数据报文到NodeB,路由器重定向机制需要经过以下过程:

图2-12  路由器重定向过程

(1)NodeA首先传送第一个数据报文到它的默认路由器RTA,当该报文经过RTB到达NodeB后,RTA知道RTB是链路上转发报文的更好选择。

(2)RTA向始发报文的NodeA发送一个ICMPv6重定向报文,目标地址中含有RTB的IPv6地址,报文选项字段的目标链路层地址中含有RTB的链路层地址。

(3)NodeA获悉RTB是到NodeB的更好路径后,修改自己的目的缓存表,当再发送到NodeB的报文时优先发送到RTB,重定向完成。


http://chatgpt.dhexx.cn/article/fbbhFuwB.shtml

相关文章

NPDP是什么?

NPDP由美国产品开发与管理协会(PDMA)发起,是国际公认的唯一的新产品开发专业认证,集理论、方法与实践为一体的全方位知识体系。 一,为什么要考NPDP认证? 1.对于个人: 1)确保精通新…

802.11 NDP Sounding

NDP Sounding 1.NDP原理2.NDP 过程3.帧结构3.1 NDPA结构3.2 CBF帧 1.NDP原理 802.11n标准提供的波束成形技术,可以通过预先补偿发射天线的相位,让两条波束进行叠加以实现最好的效果 显式波束成形需要终端反馈信道信息: AP向STA发送探测数据…

【IPv6】IPv6 NDP邻居状态详解

NDP 邻居状态 任意两个通信的主机在通信之前,先要建立邻居。(省的去查找arp了) 因为接下来的文字会很乱,排版费劲,所以用这个来。 未完成(Incomplete),可达(Reachable),陈旧(Stale),延迟(Delay),探查(Probe) 正常过程…

ICMPV6协议及NDP协议

一、ICMPV6 1、基于ipv6的ICMPv6(Internet control message protocol for IPv6)是 IPv6 下的 Internet 控制报文协议;在 IPv6 中,ICMPv6 整合实现了 IPv4 中的 ICMP(ping命令)、ARP 以及 IGMP 的所有功能&a…

IPV6 邻居发现协议(NDP)

IPV6除了显著增加了地址空间外,另一个最显著的特征就是它的即插即用性。 邻居发现协议(Neighbor Discovery Protocol,NDP)就是使用以下的功能实现即插即用特性的协议: 路由器发现:当一个节点连接到一个IPV6的链路时,它…

802.11 - NDP反馈报告

目录 概述 帧格式 能力指示 NFRP Trigger帧格式 Common Info字段 HE TB feedback NDP帧格式 NDP Feedback Report Parameter Set element格式 NDP反馈报告流程 概述 STA行为 NDP反馈报告的TXVECTOR参数 STA处理流程 NDP反馈报告流程中的Power save操作 概述 NDP反…

ipv6的NDP协议有哪些功能,是如何进行工作的

ipv6的NDP协议有哪些功能 NDP(neighbor Discovery protocol)是ICMPv6的子协议是IPV6协议体系中一个重要的基础协议,邻居发现协议替代了IPV4的ARP,ICMP路由器发现。它定义了使用ICMPv6报文实现地址解析,跟踪邻居状态&a…

IPV6邻居发现协议(NDP)

概述 NDP(Neighbor Discovery Protocol,邻居发现协议)是IPv6的一个关键协议,它组合了IPv4中的ARP、ICMP路由器发现和ICMP重定向等协议,并对它们作了改进。作为IPv6的基础性协议,NDP还提供了前缀发现、邻居不…

11.NDP协议分析与实践

NDP 协议分析与实践 1. 概述 1.1 简介 Neighbor Discovery Protocol 基于 ICMPv6 实现,用于替代 IPv4 中的 ARP 和 ICMP 路由器发现基于 ICMPv6 实现节点发现(主机和路由)、重复地址检测、地址解析、邻居不可达检测和重定向等功能 1.2 NDP 报文格式 1.2.1 路由…

IPv6邻居发现协议--NDP详解

一、ICMPv6 -Internet控制报文协议 ICMPv6是IPV6的基础协议之一,用于向源节点传递报文转发的信息或错误 协议类型号(即:IPv6Next Header)为58 icmpv6可以提供icmpv4的的对应功能之外,还有其他一些功能的基础如邻居发…

IPv6中NDP协议简介

本文介绍IPv6中一种重要协议——NDP协议。NDP协议是实现IPv6通信的重要协议之一,本文将详细介绍IPv6中NDP的协议实现过程和技术细节。 阅读本文,您需要又有一定的IPv6基础知识,您如果对此还存在困惑,欢迎查阅下列文章:…

5. NDP

NDP(Neighbor Discovery Protocol)NDP实现了IPv6中诸多重要机制。 路由器发现:该功能帮助设备发现链路上的路由器,并获得路由器通告的信息。 无状态自动配置:无状态自动配置是IPv6的一个亮点功能,它使得IP…

NDP原理详解

概述: 节点使用ND,可以确定连接在同一链路上的邻居的链路层地址,快速清除已经变成无效的缓存值。主机也使用ND发现能为其转发报文的路由器。最后,节点使用此协议主动跟踪哪一个邻居可达,哪一个邻居不可达,…

NDP 协议介绍

邻居发现协议NDP(Neighbor Discovery Protocol)是IPv6协议体系中一个重要的基础协议。 邻居发现协议替代了IPv4的ARP(Address Resolution Protocol)和ICMP路由器 发现(RouterDiscovery),它定义了…

一文解释NDP协议(IPv6邻居发现协议)ICMPv6

目录 目录 一、前言介绍: 1.1、NDP简单说明: 1.2、ICMPv6-Internet控制报文协议 1.3、IPv6和IPv4相比有哪些优势? 二、IPv6邻居发现协议--NDP详解 2.1、IPv6地址解析 2.1.1、邻居请求(Neighbor solicition)NS …

欧拉道路与欧拉回路

1. 相关的概念如下: ① 有向图G为欧拉回路:当且仅当G的基图连通,且所有顶点的入度等于出度 ② 有向图G为欧拉路:当且仅当G的基图连通,而且只存在一个顶点u的入度比出度大于1,只存在一个顶点v的出度比入度…

欧拉回路及例题

欧拉回路 几个定义性质与定理 定理1 推论1 定理2 推论2 性质1性质2 算法主体例题 uoj117求给定图的欧拉回路poj1041求字典序最小的欧拉回路poj1386Play on Wordspoj2230求无向图欧拉图要求每条边走两遍且方向不同poj2513字符串的欧拉图poj2337字典序poj1637Sightseeing tour求…

欧拉回路和Hanmilton回路

1、 一个是对点的,一个是对边的。 2、欧拉回路、欧拉图。有欧拉回路的,就做欧拉图?其实,还有欧拉通路的概念,一笔画完一个图的概念。理一理。 欧拉图:就是从起点出发,可以回到起点的图&#x…

欧拉回路,欧拉路径,欧拉图详解

欧拉回路定义: 欧拉回路:每条边恰好只走一次,并能回到出发点的路径 欧拉路径:经过每一条边一次,但是不要求回到起始点 首先看欧拉回路存在性的判定(这里先不说混合图): 一、无向图…

欧拉回路的基本概念

欧拉回路相关定义: || 如果图G(有向图或者无向图)中有一条通路,该通路上所有边一次且仅有一次行遍所有顶点,那么这条通路称为欧拉通路 || 如果图G中所有边一次且仅有一次行遍所有顶点,称图G有欧拉回路 |…