码迷,mamicode.com
首页 > 其他好文 > 详细

【IPv6】NS,NA 报文学习

时间:2018-07-25 17:44:51      阅读:4084      评论:0      收藏:0      [点我收藏+]

标签:ica   tab   nbsp   arp   链路   height   font   内容   接口   

【IPv6】NS,NA 报文学习

IPV6邻居发现报文学习

IPv6的邻节点发现协议的所有功能都由以下报文来完成:

路由器请求报文;

路由器公告报文;

邻节点请求报文;

邻节点公告报文;

重定向报文。

一.邻节点请求报文详细分析

请求报文分为2类:

1. 地址冲突检测(DAD)类邻节点请求报文。

2. 邻居可达性检测(NUD)类邻节点请求报文。

1.地址冲突检测(DAD)类邻节点请求报文分析

DAD NS报文

以太层

源MAC

目的MAC

发送方网卡的MAC

与目标的请求节点地址相对应的以太网MAC地址(组播MAC)

IP层

源IP

目的IP

::

目标的请求节点地址(组播IP)

 

DADNS报文以太层,IP层参数值的说明:

报文例子是DAD NS报文

MAC:发出该NS报文的网卡的MAC,例如报文示例的00:0C:29:ED:92:F2

目的MAC与目标的请求节点地址相对应的以太网MAC地址(组播MAC),例如报文示例的33:33:FF:BC:DE:F1,它是目标的请求节点地址1234:5678:90AB:CDEF:2345:6789:A0BC:DEF1对应的以太网MAC地址。有一个对应算法,补充介绍。

IP:发送NS报文的源IP。例如报文示例的 ::。其中::DAD报文发送NS报文专用。

目的IP:发送到哪个IP上,这里是目标的请求节点地址。例如报文示例的FF02::1:FFBC:DEF1。有一个对应的算法,补充介绍。

Target Address:请求的IP地址。例如报文示例的1234:5678:90AB:CDEF:2345:6789:A0BC:DEF1

2.邻居可达性检测(NUD)类邻节点请求报文分析

NUD NS报文

以太层

源MAC

目的MAC

发送方网卡的MAC

邻节点的单播MAC地址

IP层

源IP

目的IP

发送方接口的单播IPv6地址

目标的单播地址

 

 

邻居可达性检测类请求报文中,因为邻居的信息已经是确定的,所以对应的目的MAC,目的IP都是确定的单播。内容相对简单。

 

邻节点请求报文通用参数:

报文类型:135

源链路层地址选项:该选项非DAD请求报文中打开。报文中带着自己本身的MAC

 

二.邻节点公告报文详细分析

公告报文分为2类:

1. 回复邻节点请求的公告报文。

2. 自动发送类公告报文。

1. 回复邻节点请求的公告报文分析

回复NUD请求的NA报文

回复NUD请求的NA报文

以太层

源MAC

目的MAC

发送方网卡的MAC

NS请求的最初发送者的单播MAC地址(即NS报文中源MAC)

IP层

源IP

目的IP

发送方接口的单播IPv6地址

NS请求的最初发送者的单播IP地址(即NS报文中的源IP)

 

回复DAD请求的NA报文

回复DAD请求的NA报文

以太层

源MAC

目的MAC

发送方网卡的MAC

NS请求的最初发送者的单播MAC地址(即NS报文中源MAC)

IP层

源IP

目的IP

发送方接口的单播IPv6地址

FF02::1

 

2.自动发送类公告报文分析

节点会主动发送NA报文,公告自己的信息。免费ARP

自发发送NA报文

以太层

源MAC

目的MAC

发送方网卡的MAC

33:33:00:00:00:01

IP层

源IP

目的IP

发送方接口的单播IPv6地址

FF02::1

 

 

特殊MAC33:33:00:00:00:01,这是与链路本地范围所有节点多播地址相对应的以太网MAC地址。

特殊IPFF02::1,这是链路本地范围所有节点多播地址。

 

邻节点公告报文通用参数:

报文类型:136

补充

算法补充

根据节点IP计算对应节点地址(组播IP)

假设节点IP1234:5678:90AB:CDEF:2345:6789:A0BC:DEF1,那么它对应的节点地址为FF02::1:FFBC:DEF1

IPv6地址对应节点IPv6地址(组播)

IPv6地址

1234:5678:90AB:CDEF:2345:6789:A0BC:DEF1

对应节点IPv6地址(组播)

FF02::1:FFBC:DEF1

 

算法内容:

IPv6地址对应的节点IPv6组播地址,有固定前缀FF02::1:FF,剩余部分为原地址的后24位。

将固定前缀与原地址的后24位组合在一起就计算出对应的节点地址。

根据节点IP计算对应的以太网MAC

假设节点地址为1234:5678:90AB:CDEF:2345:6789:A0BC:DEF1,那么它对应的MAC33:33:FF:BC:DE:F1

IPv6地址对应组播MAC地址

IPv6地址

1234:5678:90AB:CDEF:2345:6789:A0BC:DEF1

对应节点IPv6地址(组播)

FF02::1:FFBC:DEF1

对应组播MAC

33:33:FF:BC:DE:F1

算法内容:

MAC都是48位,对应的组播MAC有固定前缀33:33,剩余部分为要发送的地址的后32位。

将固定前缀与对应节点IPv6地址的低32位组合在一起就计算出对应的以太MAC

 

 



【IPv6】NS,NA 报文学习

标签:ica   tab   nbsp   arp   链路   height   font   内容   接口   

原文地址:http://blog.51cto.com/qiaopeng688/2150114

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!