IPV6 邻居发现ND协议解析

合集下载

IPv6网络配置

IPv6网络配置

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类型消息名称 ICMPv6类型消息名称Type=133 RS(Router Solicitation,路由器请求)Type=136 NA(Neighbor Advertisement,邻居公告)Type=134 RA(Router Advertisment,路由器公告 Type=137 Redirect(重定向报文)Type=135 NS(Neighbor Solicitationh,领居请求)IPv6地址解析地址解析在报文转发过程中具有至关重要的作用。

ipv6邻居发现协议

ipv6邻居发现协议

IPv6地邻居发现技术2、工作原理邻居发现协议是IPv6协议的一个基本的组成部分,它实现了在IPv4中的地址解析协议(ARP)、控制报文协议(ICMP)中的路由器发现部分、重定向协议的所有功能,并具有邻居不可达检测机制。

邻居发现协议实现了路由器和前缀发现、地址解析、下一跳地址确定、重定向、邻居不可达检测、重复地址检测等功能,可选实现链路层地址变化、输入负载均衡、泛播地址和代理通告等功能。

邻居发现协议采用5种类型的IPv6控制信息报文(ICMPv6)来实现邻居发现协议的各种功能。

这5种类型消息如下。

(1)路由器请求(Router Solicitation):当接口工作时,主机发送路由器请求消息,要求路由器立即产生路由器通告消息,而不必等待下一个预定时间。

(2)路由器通告(Router Advertisement):路由器周期性地通告它的存在以及配置的链路和网络参数,或者对路由器请求消息作出响应。

路由器通告消息包含在连接(on-link)确定、地址配置的前缀和跳数限制值等。

(3)邻居请求(Neighbor Solicitation):节点发送邻居请求消息来请求邻居的链路层地址,以验证它先前所获得并保存在缓存中的邻居链路层地址的可达性,或者验证它自己的地址在本地链路上是否是惟一的。

(4)邻居通告(Neighbor Advertisement):邻居请求消息的响应。

节点也可以发送非请求邻居通告来指示链路层地址的变化。

(5)重定向(Redirect):路由器通过重定向消息通知主机。

对于特定的目的地址,如果不是最佳的路由,则通知主机到达目的地的最佳下一跳。

3、主机的数据结构IPv6的一个设计要求是:即使在一个有限的网络内,主机也必须正确工作,而不像路由器不能储存路由表,不能有永久的配置,因此主机必须能自动配置,必须能学到交换数据的有关目的地的最小信息。

这些信息储存的存储器叫做缓存,这些数据结构是一系列记录的排列,称作表项。

IPV6 邻居发现ND协议

IPV6 邻居发现ND协议

• 一个链路可以分配多个前缀。默认,主机从路由器得知所有的前缀,但路由器也可以
配置为不通告前缀,此时路由器接收到含未通告的前缀的数据包,会发布ICMP重定向
消息。
• 标准身份验证和安全机制可应用于邻居发现。
.
12
IPv6地址结构
• IPv6地址 = 前缀 + 接口标识 – 前缀:相当于v4地址中的网络ID – 接口标识:相当于v4地址中的主机ID 2001:A304:6101:1::E0:F726:4E58
.
19
.
20
• Router Solicitation消息格式
• --主机发送Router Solicitations以便督促路 由器尽快生成Router Advertisements。 Router Solicitation消息格式如图1所示sement消息格式 ----路由器周期地发出Router Advertisement消息,或因 响应Router Solicitations而发送Router Advertisement消息。
.
18
路由器周期性发送路由通告
在IPv6网络中,路由器以一定的时间间隔发送路由 通告消息,便利主机获得IPv6前缀,但是,当主机 产生了链路地址后,主机就会发送路由器请求消息 Router Solicitation,主机将Router Solicitation消 息发送到ALL-ROUTERS多播组,典型的源地址是 一个接口的链路本地地址。Router Solicitation消息 促使路由器立即发送Router-Advertisement消息。
路由通告
RS报文 RA报文
.
1::1/64
节点请求
15
路由器请求和公告

IPV6ND协议之地址解析

IPV6ND协议之地址解析

IPv6地址解析之链路层地址学习
IPV6地址解析包括两个部分:一部分解析目的IP对应的链路层地址(类似于IPV4的ARP 协议),另一部分是邻居状态可达性检测(NUD)。

IPV6地址解析工作在网络层,与链路层协议无关。

地址解析过程:
假设PC1pingPC2
PC1------------------------------------------------------PC2
2001:0206::1/64 2001:0206::2/64
00:24:ac:ef:47:8a 00:24:ee:ee:ee:88
1、PC1pingPC2需要封装二层头部,首先暂停发送该ping包,学习链路层地址。

2、PC1发送一条请求消息(NS),请求PC2的链路层地址,该请求消息的目的IP为被请求节点的组播地址,源地址为PC1的IP地址。

3、PC2收到该请求后,回应一个邻居宣告消息(NA),源IP为PC2,目的IP为PC1(单播)。

消息的内容是PC2的链路层地址。

PC2将PC1的IP地址和MAC地址加入自己的邻居缓存表中。

4、PC1收到邻居宣告消息后,将PC2的IP地址和MAC地址加入自己的邻居缓存表中。

5、此时PC1可以发送对PC2的ping包了。

解析过程中NS消息二层地址与三层地址的形成:
三层地址:取全球单播地址的后24位,与固定前缀FF02:1:FF::/104形成。

二层地址:RFC2464规定使用33-33-xx-xx-xx-xx,其后32位取用三层地址后32位。

IPv6 ND配置举例

IPv6 ND配置举例

IPv6 ND配置举例关键词:IPv6 ND摘要:本文主要介绍IPv6 ND的应用及其典型配置。

缩略语:目录1特性简介 (3)2应用场合 (3)3配置举例 (3)3.1组网需求 (3)3.2配置思路 (4)3.3配置步骤 (4)3.3.1 Router A的配置 (4)3.3.2 Router B的配置 (5)3.3.3 Host的配置 (6)3.3.4验证结果 (6)4相关资料 (8)4.1相关协议和标准 (8)1特性简介IPv6邻居发现协议(IPv6 ND,简称ND)是IPv6的一种基础协议,它利用NA、NS、RA、RS 和重定向五种类型的ICMPv6消息,来确定邻居节点之间关系和地址信息,实现地址解析、验证邻居是否可达、重复地址检测、路由器发现/前缀发现、地址自动配置和重定向等功能。

邻居发现协议代替了IPv4中的ARP、ICMP路由器发现(Router Discovery)和ICMP重定向消息(Redirect Message),并提供了一系列增强功能,保障了设备的安全性。

2应用场合在IPv6通信过程中始终需要运行ND协议。

例如,通信节点间转发IPv6报文、主机和路由器间交换IPv6地址配置信息时,都需要使用ND协议获得链路层地址、邻居可达性等必要的信息。

主机通过ND可以实现:发现邻居路由器;自动获取地址前缀和其他相关配置参数。

路由器通过ND可以实现:发布路由器的存在、主机配置参数和地址前缀;通知主机向特定目的地址转发报文的理想下一跳地址。

通过ND,主机和路由器还可以实现:解析邻居节点的链路层地址;按照一定机制维护邻居信息。

一般情况下,ND默认的配置就可以满足普通用户的需求,但是,下面两种情况下,需要在设备上进行ND的配置:网络状态不稳定或网络中存在安全隐患时,为了保证设备间通信稳定,需要调整部分参数;设备为其他主机提供地址前缀信息时,需要对设备进行设置。

3配置举例3.1组网需求如下图所示,Router A,Router B为SR6602。

ipv6,nd协议,广播

ipv6,nd协议,广播

竭诚为您提供优质文档/双击可除ipv6,nd协议,广播篇一:网络基础邻居发现(nd)协议网络基础邻居发现(nd)协议ipv6邻居发现(nd)是一组确定邻居节点之间关系的消息和过程。

nd代替了在ipv4中使用的“地址解析协议(aRp)”、“internet控制消息协议(icmp)”、路由器发现和icmp重定向,并提供了其他功能。

nd在RFc2461“用于ip版本6(ipv6)的邻居发现”(neighbordiscoveryforipVersion6(ipv6))中进行了描述。

邻居发现(nd)协议的使用主要可分为三个方面,包括nd由主机使用、nd由路由器使用和nd由节点使用。

其中,在nd由主机使用中,主要用于探索邻居路由器、探索地址、地址前缀和其他配置参数;在nd由路由器使用中,主要用于公告它们的存在、主机配置参数以及处于链路的前缀,通知主机更好的下一个跃点地址,以便转发用于特定目标的数据包;在nd由节点使用中,主要用于解析ipv6数据包所转发到的邻居节点的链路层地址,确定邻居节点的链路层地址何时发生变化,确定ipv6数据包是否可以发送到邻居和能否收到来自邻居的数据包。

邻居发现(nd)协议的描述过程如表5-2所示。

篇二:ipV6基本协议分析实验上机报告篇三:ipv6协议实验项目名称:实验报告i.实验目的1.配通自己pc的ipv6网络,熟悉ipv6相关的控制台命令;2.学习nd及相关应用(如路由器发现、不可达检测、重复地址检测、前缀发现、参数发现、重定向等);(可选做其它感兴趣的协议或应用)ii.实验要求在网络上抓取任意4种nd消息报文(至少4个截图),做报文分析。

提交的作业内容包括:1.自己pc的ipv6地址,如何知道ipv6是通的?请以截图配文字说明;2.用抓包工具(如wireshark),抓取nd 消息报文,分析之,以截图(至少4个截图)配文字的形式。

iii.现有条件学校的网络,能够上ipv6网站。

IPv6网络邻居发现概述

IPv6网络邻居发现概述
[Router-Ethernet0/0] ipv6 neighbors max-learningnum number
15
配置RA消息相关参数
取消对RA消息发布的抑制
[Router-Ethernet0/0] undo ipv6 nd ra halt
配置RA消息发布的时间间隔
[Router-Ethernet0/0] ipv6 nd ra interval maxinterval-value min-interval-value
1::2:B/64
Stale Delay Probe Reachable Stale
10
目录
邻居发现协议 地址解析 无状态地址自动配置 ND协议配置
IPv6地址自动配置
有状态地址自动配置
从DHCP服务器获取地址及相关信息
无状态地址配置
根据路由器发布的信息而自动配置IPv6地址及相 关信息
IPv6网络邻居发现概述
技术创新,变革未来
引入
ND(Neighbor Discovery,邻居发现)协议是IPv6 的一个关键协议,它综合了IPv4中的一些协议如 ARP、ICMP路由器发现和ICMP重定向等,并对他 们做了改进。本章介绍了IPv6邻居发现协议中的地 址解析、无状态地址自动配置等重要功能,并对如何 配置ND协议进行了讲解。
Type = 137
Redirect -(重定向消息)
5
目录
邻居发现协议 地址解析 无状态地址自动配置 ND协议配置
IPv6地址解析概述
与IPv4中的地址解析不同,IPv6地址解析包 含了两个过程
解析IPv6地址所对应的链路层地址过程 邻居可达性状态的维护过程,即邻居不可达检测
(NUD)

linux内核 ipv6邻居表项的老化机制

linux内核 ipv6邻居表项的老化机制

linux内核 ipv6邻居表项的老化机制
Linux内核中的IPv6邻居表项的老化机制是通过NDISC(邻
居发现协议)来实现的。

NDISC是IPv6网络中用于解析邻居(即相邻路由器或主机)的IPv6地址与链路层地址的协议。

在Linux内核中,NDISC协议在IPv6邻居缓存中会为每个邻
居表项设置一个存活时间(lifetime),即表项在该时间之后
将被认为过期并从缓存中删除。

存活时间由邻居发现过程中的各种信息和事件动态地更新。

当IPv6邻居表项未被访问一段
时间后,其存活时间会递减,直到到达零值。

当邻居表项的存活时间为零时,内核会发送一个NDISC Neighbor Advertisement(邻居广告)报文,以验证邻居的存在。

如果该邻居正常回复一个NDISC Neighbor Solicitation(邻居
请求)报文,则邻居表项的存活时间会被重新设置并重新开始计时。

如果邻居没有回复,那么该邻居表项将被认为已经过期,会从邻居缓存中删除。

此外,内核还会通过其他机制来更新邻居表项,如接收到邻居的数据包、链路状态改变等。

这些事件会触发对邻居表项的更新和存活时间的刷新。

总结来说,Linux内核中的IPv6邻居表项的老化机制是通过NDISC协议和存活时间的动态调整来实现的。

邻居表项在一
段时间内未被访问时,存活时间会递减,直到零。

当存活时间为零时,内核会发送邻居广告报文来验证邻居的存在,并根据
回复情况来决定是否将表项删除或重新计时。

同时,其他事件也会触发对邻居表项的更新和存活时间的刷新。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LWF
ICMPv6报文格式
• Type值决定了报文所属的类别
– 0 -127:错误报文 – 128-255:信息报文 • • • • • ICMPv6 error messages: 1 Destination Unreachable目的不可达 2 Packet Too Big 数据包超长 3 Time Exceeded 超时 4 Parameter Problem 参数问题
• ICMPv6 informational messages: 128 Echo Request 回送请求 129 Echo Reply 回送应答
24 位
LWF
链路本地地址(link-local address):
• (FE80::/10)
站点本地地址
• FEC0::/10
唯一本地地址
• FC00::1/7
未指定地址(unspecified address):
• 保留地址值,它表示没有这个地址(例如,地址未知)。它决不能用 于目的地地址,但是可用于源地址,如果发送者(还)不知道它自己的 地址(例如,在无状态地址自动配置期间验证地址没有被使用时 [ADDRCONF])。未指定地址的值为 0:0:0:0:0:0:0:0。
LWF
off-link: • 与“on-link”相反;它也是一个地址,该地址没有分配给特定链路上 的任何接口。 最长前缀匹配(longest prefix match): • 在覆盖目标地址的一组前缀中确定一个前缀的处理。如果前缀中的所 有比特匹配目标地址的最左边比特,目标地址由该前缀覆盖。当多个 前缀覆盖一个地址时,最长前缀是那个匹配的前缀。 可达性(reachability): • 在任何情况下通向邻居的单向“转发”路径正在正常运行。尤其是, 是否发送到邻居的分组正在达到邻居的 IP 层,以及正在被接收 IP 层 适当处理。对于邻近路由器,可达性意味着由节点的 IP 层发送的分 组被交付到该路由器的 IP 层,并且该路由器的确正在转发分组(即, 它被配置为路由器,而不是主机)。对于主机,可达性意味着由节点 的 IP 层发送的分组正在交付到邻居主机的 IP 层。
LWF
常见术语
节点(node):执行 IP 协议的设备。
路由器(router):一个节点,转发不是显示寻址到自己的 IP 分组。
主机(host):任何不是路由器的节点。
上层(upper layer):紧挨着下面的 IP 层的协议层。例如传输协议 TCP 和 UDP、控制协议 ICMP、路由协议OSPF,以及被在 IP 上“隧道 化” (即,被封装进 IP)的互联网络层(或低层)协议,例如 IPX、 AppleTalk 或 IP 自身。 链路(link):通信设施或媒介,是紧挨着上面的 IP 层的协议层,节点能够 在其上的链路层通信。例如以太网(简单或桥接)、PPP 链路、X.25、 帧中继、ATM 网络,以及互联网络层(或高层)“隧道”,例如 IPv4 或 IPv6 自身之上的隧道。
LWF
链路类型
不同链路层有不同特性.与 Neighbor Discovery 有关的链路特性是:
多播能力(multicast capable): • 一条链路,它在链路层上支持一种本地机制,发送分组到所有邻居(即,广播),或所有邻居的一 个子集。 点对点(point-to-point): • 一条链路,它仅连接两个接口。假定点对点链路有多播能力和链路本地地址。 非广播多址(non-broadcast multi-access, NBMA): • 一条链路,有多于两个接口附着到它,但是该链路不支持多播或广播的本地形式(例如,X.25、 ATM、帧中继等)。 共享介质(shared media): • 一条链路, 它允许众多节点间直接通信,但是附着在共享介质上的节点们按这样一种方 • 法配置:对于所有 on-link 目的地,它们没有完整的前缀消息。即,在 IP 层,在同一链路 • 上的节点们或许不知道它们彼此是邻居;默认情况,它们通过路由器通信。例如大型公共 • 数据网络,如 SMDS 和 B-ISDN。也称为“大型云”。参阅[SH-MEDIA]。 可变MTU(variable MTU): • 一条链路,它没有公认的MTU(例如,EEE 802.5令牌环)。许多链路(例如,以太网)有由 • 链路层协议或由特定的文件定义的标准MTU,描述如何在链路层上运行IP。 非对称可达性(asymmetric reachability): • 一条链路,在那里,非折返可达性,和/或非传递可达性是正常操作的一部分。(非折返 • 可达性意味着分组可从A到B的,但是分组不能从B到A。非传递可达性意味着分组可从A • 到B,并且分组可从B到C,但是分组不能从A到C。)许多无线链路具有这种性质。
LWF
地址分类
所有节点多播地址(all-nodes multicast address): 到所有节点的链路本地范围地址,FF02::1。 所有路由器多播地址(all-routers multicast address): 到所有路由器的链路本地范围地址,FF02::2。 被请求-节点多播地址(solicited-node multicast address):FF02::1:FFXX:XXXX
LWF
接口(interface): 节点附着到链路的点。
邻居(neighbors):附着在相同链路的节点们。
前缀(prefix):由地址的一些起Fra bibliotek比特构成的比特串。
链路层地址(link-layer address):接口的链路层标识符。例如以太网链路 的 IEEE802 地址。
on-link: • 一个地址。该地址分配给特定链路上的接口。 如果满足下述条件, 节点认为地址是 on-link: • 该地址由链路的多个前缀之一覆盖(例如,由Prefix Information选 项中on-link标记标识),或 • 邻近路由器规定该地址为Redirect消息的目标,或 • 收到针对该(目标)地址的Neighbor Advertisement消息,或 • 从该地址收到任何Neighbor Discovery消息。
相关文档
最新文档