IPv6基础篇:邻居发现协议NDP
创始人
2025-03-18 06:00:21
0

 本期我们将基于ICMPv6介绍IPv6体系中基础的邻居发现协议,即IPv6 ND。邻居发现协议代替了IPv4协议栈中的ARP和路由发现的功能,实现了地址解析,重复地址检测,路由器发现以及路由重定向等功能。

[[276997]]

一、IPv6邻居发现协议使用的ICMPv6消息类型

IPv6邻居发现协议使用5种类型的ICMPv6消息类型,用来实现地址解析,重复地址检测,路由器发现以及路由重定向等功能。具体的ICMPv6的消息类型及具体作用如下:

1、ICMPv6邻居请求(Neighbor Solicitation)消息

 

IPv6基础篇(四):邻居发现协议NDP

 

邻居请求报文NS(Neighbor Solicitation)报文:Type字段值为135,Code字段值为0,在地址解析中的作用类似于IPv4中的ARP请求报文。用来获取邻居的链路层地址,验证邻居是否可达,进行重复地址检测等。

2、ICMPv6邻居通告(Neighbor Adivertisment)消息

 

IPv6基础篇(四):邻居发现协议NDP

 

邻居通告报文NA(Neighbor Adivertisment)报文:Type字段值为136,Code字段值为0,在地址解析中的作用类似于IPv4中的ARP应答报文。用来对NS消息进行响应。另外,当节点在链路层变化的时候主动发出NA消息,告知邻居本节点的变化。

3、ICMPv6路由器请求(Router Solicitation)消息

 

IPv6基础篇(四):邻居发现协议NDP

 

ICMPv6路由器请求(Router Solicitation)消息:Type字段值为133,节点启动后,通过RS消息向路由器发出请求,请求前缀和其他配置信息,用于节点的自动配置。

4、ICMPv6路由器通告(Router Advertisement)消息

 

IPv6基础篇(四):邻居发现协议NDP

 

ICMPv6路由器通告(Router Advertisement)消息:Type字段值为134,对RS消息进行回应。在没有抑制RA消息发布的条件下,路由器会周期性地发布RA消息,其中包括前缀信息选项和一些标志位的信息。

5、ICMPv6重定向(Redirect)消息

 

IPv6基础篇(四):邻居发现协议NDP

 

ICMPv6重定向(Redirect)消息:Type字段值为137,当满足一定的条件时,缺省网关通过向源主机发送重定向消息,使主机重新选择正确的下一跳地址进行后续报文的发送。

二、地址解析

获取同一链路上邻居节点的链路层地址(与IPv4的ARP功能相同),通过邻居请求消息NS和邻居通告消息NA实现。节点1要获取节点节点2的链路层地址。

 

IPv6基础篇(四):邻居发现协议NDP

 

节点1在向节点2发送报文之前要解析出节点2的链路层地址。地址解析的过程主要如下(我们使用HCL模拟器来模拟这个过程):

组网如下:

 

IPv6基础篇(四):邻居发现协议NDP

 

整体报文交互总览(NS和NA):

 

IPv6基础篇(四):邻居发现协议NDP

 

①节点1会发送一个NS报文,Type值为135,源地址为节点1的IPv6地址。目的地址为节点2的被请求节点组播地址,要请求的为节点2的链路层地址。同时NS的报文的Options字段中携带了节点1的链路层地址。如下图:

 

IPv6基础篇(四):邻居发现协议NDP

 

②节点2收到NS消息后,会回应NS消息,源地址为节点2的IPv6地址,目的地址为节点1的IPv6地址,节点2的链路层地址会被放在Option字段里。

 

IPv6基础篇(四):邻居发现协议NDP

 

③节点1获取到了节点2的链路层地址。

最后我们在路由器上可以查看到RouterA的IPv6地址信息和所有的邻居信息:

 

IPv6基础篇(四):邻居发现协议NDP

 

 

IPv6基础篇(四):邻居发现协议NDP

 

在Ping链路本地地址时,需要使用-i参数,来指定链路本地地址的接口。

 

IPv6基础篇(四):邻居发现协议NDP

 

三、重复地址检测

当节点获取到一个IPv6地址后,需要使用重复地址检测功能确定该地址是否已被其他节点使用(与IPv4的免费ARP功能相似)。通过NS和NA可以实现重复地址检测。

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

IPv6重复地址检测技术和IPv4中的免费ARP类似:节点向一个自己将使用的试验地址所在的Solicited-Node组播组发送一个以该实验地址为请求的目标地址的NS报文,如果收到节点回应的NA报文,就证明该地址已被网络上使用,节点将不能使用该实验地址通讯。

 

IPv6基础篇(四):邻居发现协议NDP

 

DAD检测过程:

PC1的IPv6地址2000::1为新配置地址,即2000::1为PC1的试验地址。PC1向2000::1的Solicited-Node组播组发送一个以2000::1为请求的目标地址的NS报文进行重复地址检测,由于2000::1并未正式指定,所以NS报文的源地址为未指定地址。当PC2收到该NS报文后,有两种处理方法:

如果PC2发现2000::1是自身的一个实验地址,则PC2放弃使用这个地址作为接口地址,并且不会发送NA报文。

如果PC2发现2000::1是一个已经正常使用的地址,那么PC2会向该地址的ALL-NODES组播组发送一个NA报文,该消息中会包含2000::1。这样,PC1收到这个消息后就会发现自身的实验地址是重复的,从而弃用该地址。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...