NDP 常用报文格式

简介: 【2月更文挑战第27天】

邻居发现协议(Neighbor Discovery Protocol,NDP)是IPv6协议体系中最重要的基础协议之一,很多IPv6功能都依赖NDP来实现。一般说来,NDP可以实现的功能包括:替代IPv4的ARP来形成邻居表;默认网关的自动获取;无状态地址自动配置;路由重定向等。


NDP定义了5类ICMPv6报文,即路由器请求(Router Solicitor,RS)报文、路由器通告(Router Advertisement,RA)报文、邻居请求(Neighbor Solicitor,NS)报文、邻居通告(Neighbor Advertisement,NA)报文和路由重定向报文。这5种类型的ICMPv6报文都是消息类型的报文,用来实现邻居链路层地址解析、网关发现、地址自动配置和路由重定向等功能。


1、RS报文

RS报文供IPv6主机用以查找本地链路上存在的路由器,主机发送RS报文后会触发同网段的路由器立即回复RA报文,以获取前缀信息、MTU信息等,而不用等待路由器周期性地发送RA报文。

2、RA报文

路由器会周期性(思科路由器默认是200秒)地发送RA报文,向邻居节点通告自己的存在。RA报文可以携带一些路由前缀、自身链路层等参数信息。

3、NS报文

NS报文用于查询邻居节点的链路层地址。NS报文中的目的地址字段存放的是想要解析成链路层地址的IPv6单播地址。选项字段可以携带自身的链路层地址。当NS报文用于邻居可达性检测时,目的地址是单播地址;当用于邻居解析时,目的地址是被请求节点的组播地址FF02::1:FF00:0/104加目的单播地址的最后24位。IPv6节点在检测IPv6地址冲突时,也会发送邻居请求报文,此时目的IPv6地址是被请求节点的组播地址FF02::1:FF00:0/104加自己IPv6地址的最后24位,若收不到回复则表示IPv6地址没有冲突,IPv6地址配置生效。在实际配置中发现,在为Windows计算机配置IPv6地址时若存在地址冲突,不会弹出提示信息,这一点与IPv4地址的配置不同(在地址冲突时会弹出提示信息)。因此只能在命令行模式下执行ipconfig命令来查看IPv6地址是否生效。若没有生效,则可能是地址配置存在冲突。

4、NA报文

IPv6节点通过使用NA报文来通告自己的存在,或者告诉邻居需要更新自己的链路层地址信息。当节点发送NA报文来回应NS报文时,目的地址使用单播地址,如果目的是告诉邻居需要更新自己的链路层地址信息,则使用组播地址FF02::1作为目的地址。需要注意的是,路由器除了发送RA报文,也会发送NA报文。NA报文中有3个标志位:当R位为1时表示此报文是由路由器发送的;当S位为1时表示这是NS报文的回复;当O位为1时则表示需要更改原先的邻居表条目。在S位为1的情况下,NA报文的源地址字段是对应的NS报文中的目的地址字段,如果S位为0,则NA报文的源地址就是自身需要更新链路层地址信息的接口IPv6地址。

5、路由重定向报文

当路由器收到一个报文时,若发现同网段有更好的下一跳,则向发送方发送重定向报文(这与IPv4类似)。

相关文章
|
7月前
|
网络协议 算法 Linux
TCP 协议报文格式&tcpdump抓包工具
之前文章介绍过 wireshark 抓包工具的 捕获过滤器 和 显示过滤器,而 捕获过滤器 使用的 BPF 过滤语法可以在 tcpdump 中使用,tcpdump 可以在 Linux 服务端使用,熟悉和了解 tcpdump 抓包工具的使用,可以帮助分析服务端数据报文的情况。
103 0
|
网络性能优化 网络架构 网络协议
|
5月前
|
网络协议 算法 安全
UDP报文格式详解
UDP报文格式详解
117 0
|
5月前
|
网络协议 程序员 网络性能优化
传输层重要协议之UDP协议和TCP协议详解
传输层重要协议之UDP协议和TCP协议详解
|
9月前
|
网络协议
UDP的报文结构
UDP的报文结构
62 0
|
9月前
|
网络协议
TCP协议报头格式和滑动窗口
TCP协议报头格式和滑动窗口
53 0
TCP协议报头格式和滑动窗口
|
12月前
|
存储 消息中间件 缓存
计网 - TCP 的封包格式:TCP 为什么要粘包和拆包?
计网 - TCP 的封包格式:TCP 为什么要粘包和拆包?
68 0
|
网络性能优化
UDP 协议详解
UDP 协议详解
98 0
UDP 协议详解
|
缓存 中间件
SOME/IP 报文帧格式是什么
SOME/IP 报文帧格式是什么
SOME/IP 报文帧格式是什么