IPv6邻居发现协议--NDP详解
Posted 造夢先森
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IPv6邻居发现协议--NDP详解相关的知识,希望对你有一定的参考价值。
一、ICMPv6 -Internet控制报文协议
ICMPv6是IPV6的基础协议之一,用于向源节点传递报文转发的信息或错误
协议类型号(即:IPv6Next Header)为58
icmpv6可以提供icmpv4的的对应功能之外,还有其他一些功能的基础如邻居发现、无状态地址配置、重复地址检测、PMTU发现等。
消息类型:
IPv6和IPv4相比有哪些优势?
- v4是用arp广播试下地址解析和重复地址检测
- v6是用组播形式,减轻设备性能压力
- v6在三层完成地址解析,适用更多的链路层(介质独立性)
- v6在三层完成解析,可以使自身ipsec安全认证机制提高安全性,避免类似v4中的arp欺骗
二、IPv6邻居发现协议–NDP详解
NDP(Neighbor Discovery Protocol,邻居发现协议) 是IPv6的一个关键协议,它组合了IPv4中的ARP、ICMP路由器发现和ICMP重定向等协议,并对它们作了改进。该协议使用icmpv6协议实现,作为IPv6的基础性协议,NDP还提供了前缀发现、邻居不可达检测、重复地址监测、地址自动配置等功能。
在IPv4中,当主机需要和目标主机通信时,必须先通过ARP协议获得目的主机的链路层地址。在IPv6中,同样需要从IP地址解析到链路层地址的功能。邻居发现协议实现了这个功能。
ARP报文是直接封装在以太网报文中,以太网协议类型为0x0806,普遍观点认为ARP定位为第2.5层的协议。ND本身基于ICMPv6实现,以太网协议类型为0x86DD,即IPv6报文,IPv6下一个报头字段值为58,表示ICMPv6报文,由于ND协议使用的所有报文均封装在ICMPv6报文中,一般来说,ND被看作第3层的协议。在三层完成地址解析,主要带来以下几个好处:
- 地址解析在三层完成,不同的二层介质可以采用相同的地址解析协议。
- 可以使用三层的安全机制避免地址解析攻击。
- 使用组播方式发送请求报文,减少了二层网络的性能压力。
NDP使用的ICMPv6的相关报文 | Type字段 |
---|---|
RS(router solicitation)路由器请求 | type-133 |
RA(router Advertisment)路由器通告报文 | type-134 |
NS(Neighbor solicition)邻居请求报文 | type-135 |
NA(Neighbor Advertisement):邻居通告报文) | type-136 |
NDP功能点:
- 路由发现-----------发现链路上的路由器,获得路由器通告的信息 ( RS RA报文)
- 无状态自动配置–通知路由器通告的地址前缀,终端自动生成IPv6地址 (NS NA报文)
- DAD-----------------获得地址后,进行地址重复检测,确保地址不存在冲突 (NS NA报文)
- 地址解析-----------请求目的网络地址对应的数据链路层地址,类似IPv4的ARP (NS NA报文)
- 邻居状态跟踪-----通过NDP发现链路上的邻居并跟踪邻居状态 (NS NA报文)
- 前缀重编址--------路由器对所通告的地址前缀进行灵活设置实现网络重编址
- 路由重定向--------告知其他设备,到达目标网络的更优下一跳
IPv6的地址解析:
地址解析过程中使用了两种ICMPv6报文:邻居请求报文NS(Neighbor Solicitation)和邻居通告报文NA(Neighbor Advertisement)。
NS报文:Type字段值为135,Code字段值为0,在地址解析中的作用类似于IPv4中的ARP请求报文。
NA报文:Type字段值为136,Code字段值为0,在地址解析中的作用类似于IPv4中的ARP应答报文。
流程解析:
① R1要去R2ping包,但是不知道对方地址(即R1想要知道R2的MAC地址),所以R1会发送NS邻居请求报文(源为R1的IPv6地址),目的地址是(R2的被请求节点组播地址,以FF02::1:FF开头),同时需要指出的是在NS报文的Options字段中还携带了一个R1的MAC地址.
NS:
② 当R2收到了NS报文后,就会回应NA报文,其中源地址为R2的IPv6地址,目的地址是R1的IPv6地址(使用NS报文中的R1的MAC地址进行单播),R2的MAC地址被放在Options字段中,这样就完成了一个地址解析的过程
NA:
参考:https://www.pudn.com/news/6275d7fe9221806f9db9c56c.html#1.1%E3%80%81NDP%E7%AE%80%E5%8D%95%E8%AF%B4%E6%98%8E%EF%BC%9A
以上是关于IPv6邻居发现协议--NDP详解的主要内容,如果未能解决你的问题,请参考以下文章
「太阁干货」IPV6没有ARP 拯救你三层地址到二层地址映射的尴尬