【IPv6】NS,NA 报文学习

原本地址:https://blog.51cto.com/qiaopeng688/2150114?source=dra

 

 

IPV6邻居发现报文学习

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

l 路由器请求报文;

l 路由器公告报文;

l 邻节点请求报文;

l 邻节点公告报文;

l 重定向报文。

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

请求报文分为2类:

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

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

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

DAD NS报文

以太层

源MAC

目的MAC

发送方网卡的MAC

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

IP层

源IP

目的IP

::

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

 

DAD类NS报文以太层,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。

3. 地址解析请求报文分析

地址解析NS报文

以太层

源MAC

目的MAC

发送方网卡的MAC

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

IP层

源IP

目的IP

发送方接口的单播IPv6地址

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

 

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

公告报文分为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

 

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

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

 

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

报文类型:136

三.路由器请求报文详细分析

分为2种,一种是接口未获得linklocal地址,另一种是接口已经获得linklocal地址。

1. 接口未获得linklocal地址RS报文分析

 

未获得linklocal地址

以太层

源MAC

目的MAC

发送方网卡的MAC

33:33:00:00:00:02

IP层

源IP

目的IP

::

链路本地范围所有路由器多播地址FF02::2

 

2. 接口获得linklocal地址RS报文分析

 

已经获得linklocal地址

以太层

源MAC

目的MAC

发送方网卡的MAC

33:33:00:00:00:02

IP层

源IP

目的IP

发送方接口的链路本地IPv6地址

链路本地范围所有路由器多播地址FF02::2

 

路由请求报文通用参数:

报文类型:133

源链路层地址选项

 

四.路由器通告报文详细分析

路由器通告报文分为2种,一种是单播RA,另一种是组播RA。

1. 单播RA报文分析

RA单播报文

以太层

源MAC

目的MAC

发送方网卡的MAC

发送RS请求报文的主机的单播MAC地址

IP层

源IP

目的IP

发送方接口的链路本地IPv6地址

发送RS请求报文的主机的的单播IPv6地址

 

2. 组播RA报文

RA组播报文

以太层

源MAC

目的MAC

发送方网卡的MAC

33:33:00:00:00:01

IP层

源IP

目的IP

发送方接口的链路本地IPv6地址

FF02::1

 

路由通告报文通用参数:

报文类型:134

当前条数限制:255

管理地址配置标志:当管理地址配置标志为1时,表示接收这个路由器公告报文的主机除了有可能从无状态地址自动配置协议获得地址外,还必须使用有状态地址配置协议(DHCPv6)来获得地址。

其他状态配置标志:当其它状态配置标志为1时,表示收到这个路由器通告报文的主机必须使用有状态地址配置协议(DHCPv6)来获得非地址配置的信息。

。。。

 

补充

算法补充

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

假设节点IP为1234: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,那么它对应的MAC为33: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)