深度分析IPV6 NDP邻居发现协议

我在前面的文章《深度分析ipv6建立过程》中分析IPV6协商的整个过程,今天我就对IPV6的邻居发现协议 NDP(neighbor discovery protocol)进行更深入的分析。
在IPV6中 NDP(neighbor discovery protocol)是用来发现邻接点相关信息的协议。ndp运行在数据链路层,因此可以支持不同的网络层协议。 ndp用来发现直接相连的邻居信息,包括邻接设备的设备名称、软/硬件版本、连接端口等,另外还可提供设备的id、端口地址、硬件平台等信息。
支持ndp的设备都维护ndp邻居信息表,邻居信息表中的每一表项都是可以老化的,一旦老化时间到,ndp自动删除相应的邻居表项。同时,用户可以清除当前的ndp信息以重新收集邻接信息。
运行ndp的设备定时向所有激活的端口广播带有ndp数据的报文,报文中携带有效保留时间,该时间指示接收设备必须保存该更新数据的时间。接收ndp报文的设备保存报文中的信息,但不转发ndp报文。收到的信息如果与旧的信息不同,则更新ndp表中的相应数据项;如果相同,则只更新有效保留时间。
今天在这里用自己构造IPV6报文来模拟整个NDP过程,实验环境如下:
深度分析IPV6 NDP邻居发现协议
现在欲在R1上建2001:226::2条目,并使此条目二层地址被解析为00:00:00:00:00:02。
从测试仪IX1上发送ns报文。报文具体格式如下:

深度分析IPV6 NDP邻居发现协议

图2 R1发送给2001:226::2的na

因为na回复将发送给2001:226::2此地址,使用到了2001:226::2条目,此条目转为delay状态。此时的邻居表状态如下:
深度分析IPV6 NDP邻居发现协议

图4 从delay状态转入到probe状态

进入probe状态后R1继续发送ns请求确认此条目,默认重传时间1s,达到3次请求上限后,仍未收到回应,将删除此条目。
深度分析IPV6 NDP邻居发现协议

图6 probe达次数上限后,probe状态条目被删除

从IX1上构造2001:226::2条目的na报文如下:
深度分析IPV6 NDP邻居发现协议

图8 R1收到na确认的debug信息

此时查看邻居表的2001:226::2条目已转为reach,如下:
深度分析IPV6 NDP邻居发现协议

图10 条目在可达时间到期后转为stale

而从Ix1发送na时的另外一种情况为,在条目进入delay状态后,等待其超时5s进入probe状态后再发送na让R1确认2001:226::2条目的mac地址。debug信息如下:
深度分析IPV6 NDP邻居发现协议

图12 收到na后,进入可达状态

当同时从Ix1口连续往R1上同时发送ns和na两条数据流时,可以在R1上建立起reach状态的2001:226::2邻居条目,链路地址被解析为00:00:00:00:00:02。然后开启R1的fa0/0口,从Ix2上发送ipv6数据流。数据流达到R1的fa1/0口后,R1提交给ip层处理,查看发现2001:226::2的对应mac地址为00:00:00:00:00:02,将其从fa0/0口转发出去。此时从发包工具口上可以看到接收到了此条ipv6数据流。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值