IPv6邻居发现协议--NDP详解

这篇具有很好参考价值的文章主要介绍了IPv6邻居发现协议--NDP详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、ICMPv6 -Internet控制报文协议

ICMPv6是IPV6的基础协议之一,用于向源节点传递报文转发的信息或错误

协议类型号(即:IPv6Next Header)为58

IPv6邻居发现协议--NDP详解

icmpv6可以提供icmpv4的的对应功能之外,还有其他一些功能的基础如邻居发现、无状态地址配置、重复地址检测、PMTU发现等。

消息类型:
IPv6邻居发现协议--NDP详解

IPv6和IPv4相比有哪些优势?

  • v4是用arp广播试下地址解析和重复地址检测
  • v6是用组播形式,减轻设备性能压力
  • v6在三层完成地址解析,适用更多的链路层(介质独立性)
  • v6在三层完成解析,可以使自身ipsec安全认证机制提高安全性,避免类似v4中的arp欺骗

二、IPv6邻居发现协议–NDP详解

NDP(Neighbor Discovery Protocol,邻居发现协议) 是IPv6的一个关键协议,它组合了IPv4中的ARP、ICMP路由器发现和ICMP重定向等协议,并对它们作了改进。该协议使用icmpv6协议实现,作为IPv6的基础性协议,NDP还提供了前缀发现、邻居不可达检测、重复地址监测、地址自动配置等功能。

NDP使用的ICMPv6的相关报文 Type字段 说明
RS(router solicitation)路由器请求 133 当主机刚刚接入网络并被配置为自动获取地址,主机需要自动获得前缀、前缀长度、默认网关等信息时,就会发送RS消息。
RA(router Advertisment)路由器通告报文 134 RA消息由路由器周期性地发送,或者在收到主机发送的RS消息后立刻发送,主要为主机提供编址信息以及其他配置信息。
NS(Neighbor solicition)邻居请求报文 135 当节点不知道目标地址的链路层地址时,将发送NS消息。
NA(Neighbor Advertisement):邻居通告报文) 136 当节点接收到NS消息后,会快速响应NA消息,或者当节点需要快速传播新的信息(非请求)时,也会发送NA消息。
重定向报文 137 通过重定向消息,路由器可以通告更优的下一跳路由,也可以用于通知目标地址就是邻居。

NDP功能点:

  • 路由发现-----------发现链路上的路由器,获得路由器通告的信息 ( RS RA报文)
  • 无状态自动配置–通知路由器通告的地址前缀,终端自动生成IPv6地址 (NS NA报文)
  • DAD-----------------获得地址后,进行地址重复检测,确保地址不存在冲突 (NS NA报文)
  • 地址解析-----------请求目的网络地址对应的数据链路层地址,类似IPv4的ARP (NS NA报文)
  • 邻居状态跟踪-----通过NDP发现链路上的邻居并跟踪邻居状态 (NS NA报文)
  • 前缀重编址--------路由器对所通告的地址前缀进行灵活设置实现网络重编址
  • 路由重定向--------告知其他设备,到达目标网络的更优下一跳

地址解析:

IPv6的地址解析实现了从IP地址解析到链路层地址的功能。
与IPv4协议不同,IPv6的地址解析有了以下变化:
① 不再使用ARP协议而是使用NDP协议;
② 不再使用广播方式而是使用组播方式;
③ 地址解析在三层(icmpv6)完成而不是2.5层(arp)。

由此,IPv6的地址解析具有如下优点:
① 由于地址解析在三层完成,不同的二层介质可以使用相同的地址解析协议;
② 采用组播方式发送NS消息,更加高效,减少了二层网络的压力;
③ 可以使用三层的安全机制(如IPSec)以避免地址解析攻击。

ipv6地址解析过程中使用了两种报文:邻居请求报文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:
IPv6邻居发现协议--NDP详解
ps:

  • IPv6组播MAC地址以0x3333开头,低32位为IPv6组播地址的低32位,最终形成48比特的组播MAC地址

  • RFC4291定义组播地址格式如下;

    |         8        |  4  |  4   |                     112                                  |
    +---------------+----+------+---------------------------------------------+
    |11111111|flgs|scop|                  group ID                            |
    +--------------+-----+-------+--------------------------------------------+
    

(1)组播地址高8bit为固定值FF,此高8个bit中4bit为flgs位,4bit为组播组的泛洪范围。
(2)flags位为4bit: |0|R|P|T|

flags位的高1bit为保留,必须设置为0
T位如果为置0表示永久分配或者是well-known组播地址,如果置1表示临时分配动态的地址,不固定。
P位如果置1的话表示此组播地址是一个基于单播前缀的ipv6组播地址。默认为0,如果P位设置为1,那么T位必须为1。
R位如果置1的话表示此组播地址是一个内嵌RP地址的ipv6组播地址。默认为0

(3)4bit scope位来限制组播组的传播范围。

         0  reserved
         1  Interface-Local scope
         2  Link-Local scope--链路本地范围
         3  reserved
         4  Admin-Local scope-管理本地范围
         5  Site-Local scope--站点本地范围
         6  (unassigned)
         7  (unassigned)
         8  Organization-Local scope-组织本地范围
         9  (unassigned)
         A  (unassigned)
         B  (unassigned)
         C  (unassigned)
         D  (unassigned)
         E  Global scope--全局范围的
         F  reserved

(4)低112 bit为组播地址的可用组ID。举例:

所有节点的组播地址:  FF02:0:0:0:0:0:0:1
所有路由器的组播地址:FF02:0:0:0:0:0:0:2 
Solicited-Node组播地址:  FF02:0:0:0:0:1:FFXX:XXXX
所有OSPF路由器组播地址: FF02:0:0:0:0:0:0:5
所有OSPF的DR路由器组播地址: FF02:0:0:0:0:0:0:6
所有RIP路由器组播地址: FF02:0:0:0:0:0:0:9
所有PIM路由器组播地址: FF02:0:0:0:0:0:0:D

② 当R2收到了NS报文后,就会回应NA报文,其中源地址为R2的IPv6地址,目的地址是R1的IPv6地址(使用NS报文中的R1的MAC地址进行单播),R2的MAC地址被放在Options字段中,这样就完成了一个地址解析的过程

NA:
IPv6邻居发现协议--NDP详解

路由发现:

全球单播地址的配置步骤如下:
1)客户端在配置好链路本地地址后,发送RS报文,请求路由器的前缀信息。
2)路由器收到RS报文后,发送RA报文,其中携带M、O flag用于指示进行何种类型配置,A flag用于无状态地址自动配置的前缀信息。同时路由器也会周期性地发送组播RA报文。
3)客户端根据RA报文携带A flag,获取网关信息。如果是自动配置或者是无状态,则根据M、O flag,选择IPv6地址及DNS的获取方式。

  • 路由器请求RS(Router Solicitation)报文:很多情况下主机接入网络后希望尽快获取网络前缀进行通信,此时主机可以立刻发送RS报文,网络上的设备将回应RA报文。RS报文的Tpye字段值为133。

IPv6邻居发现协议--NDP详解

  • 路由器通告RA(Router Advertisement)报文:每台设备为了让二层网络上的主机和设备知道自己的存在,定时都会组播发送RA报文,RA报文中会带有网络前缀信息,及其他一些标志位信息。RA报文的Type字段值为134。

IPv6邻居发现协议--NDP详解

M flag:为1通过DHCPv6获取IP地址,为0则是通过RA报文获取地址。
O flag:为1通过DHCPv6获取DNS等其他配置,为0通过RA报文获取其他配置。
A flag:表示是否可以使用RA报文前缀信息配置无状态地址

虚拟机中查看ra生成的路由:

# ip -6 route
default via fe80::216:3eff:fe22:314 dev eth0  proto ra  metric 1024  expires 295sec hoplimit 64

下图可以理解其流程:
IPv6邻居发现协议--NDP详解

图片引用自:https://www.cnblogs.com/fzxiaomange/p/ipv6-autoconf-stateless-stateful.html

三、DHCPv6协议

和IPv4的bootp(DHCPv4)作用类似,DHCPv6基于UDP,通过与服务器协商获取IP地址及DNS等信息
DHCPv6和DHCPv4报文对比:
IPv6邻居发现协议--NDP详解

dhcpv6请求过程如下:
IPv6邻居发现协议--NDP详解

其中的NS报文展开如下,即DAD重复地址检测。
IPv6邻居发现协议--NDP详解
IPv6重复地址检测和IPv4中的免费ARP类似:节点向试验地址所对应的Solicited-Node组播组发送NS邻居请求报文。NS报文中目标地址即为试验地址(一个IPv6单播地址在分配给一个接口之后且通过重复地址检测之前称为试验地址Tentative Address)。如果收到某个其他站点回应的NA报文,就证明该地址已被网络上使用,节点将不能使用该试验地址通讯。

参考
https://blog.csdn.net/u011029104/article/details/119427279
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文章来源地址https://www.toymoban.com/news/detail-405718.html

到了这里,关于IPv6邻居发现协议--NDP详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【软考网络管理员】2023年软考网管初级常见知识考点(10)- 网际协议IP及IPV6,IPV4详解

    分类的IP地址,子网划分,CIDR和路由汇聚,IPV4数据报格式,IPV6协议,软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 原创于:CSDN博主-《拄杖盲学轻声码》,更多考点汇总可以去他主页查看 更多考试总结可关注CSDN博主-《拄杖盲学轻声码》 这

    2024年02月11日
    浏览(47)
  • 【软考网络管理员】2023年软考网管初级常见知识考点(13)-ARP、ICMP、IPv6协议详解

    #涉及知识点 ARP协议详解、ICMP协议详解、IPv6协议等软考内容详解 软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 原创于:CSDN博主-《拄杖盲学轻声码》,更多考点汇总可以去他主页查看 更多考试总结可关注CSDN博主-《拄杖盲学轻声码》 在网络

    2024年02月11日
    浏览(51)
  • IPV6网络协议基础知识 IPV6地址和IPV6报文格式详细介绍

    由于互联网的快速发展与普及,原有的IPV4地址已不能满足网络用户的需求,虽然NAT可以缓解IPV4地址的耗尽,但NAT破坏了网络环境的开放、透明以及端到端的特性,因此IPV6地址协议应运而生。IPV6协议使用128位地址替代32位的IPV4地址,这样大约可以产生340万亿亿亿亿(3.4*1038)个

    2024年02月08日
    浏览(70)
  • IPv6路由协议---IPv6动态路由(OSPFv3-4)

    链路状态通告是OSPFv3进行路由计算的关键依据,链路状态通告包含链路状态类型、链路状态ID、通告路由器三元组唯一地标识了一个LSA。 OSPFv3的LSA头仍然保持20字节,但是内容变化了。在LSA头中,OSPFv2的LS age、Advertising Router、LS Sequence Number、LS Checksum和Length字段都没有变化,但

    2024年01月25日
    浏览(65)
  • TCP/IP协议,IPV4,IPV6,为什么国家大力倡导IPV6的发展

    简单回顾一下TCP的特点 TCP是可靠性,UDP是负责效率,那么如何基于UDP实现可靠传输 本质还是考察TCP 目录 TCP/IP协议栈💛  那么假如IP地址不够用怎么办呢?NAT机制💙  IP地址的介绍💜  我们来简单了解一下,上面都是干什么的: (1)四位版本号 主流IPV4,IPV6(用于工作,商用这

    2024年02月08日
    浏览(53)
  • 【ip neigh】管理IP邻居( 添加ARP\NDP静态记录、删除记录、查看记录)

    1、 NUD_NONE : 初始状态 。当一个新的路由缓存条目被创建时,arp_bind_neighbour()函数被调用.如果找不到相匹配的ARP缓存条目, neigh_alloc()将创建一个新的ARP缓存条目并设置状态为NUD_NONE. 2、 NUD_INCOMPLETE : 未完成状态 。当第一个包发送需要新的ARP缓存条目neigh_resolve_output()被调用

    2023年04月08日
    浏览(65)
  • 网络协议 — IPv6 互联网协议第 6 版

    2024年02月09日
    浏览(56)
  • 思科路由器IPv6各种路由协议配置

      一、基础配置: R1 : Routerena Router#conf t Router(config)#host R1 R1(config)#int g0/0 R1(config-if)#ipv add 2001:3::1/64 R1(config-if)#no sh R1(config-if)#int g0/1 R1(config-if)#ipv6 add 2001:1::1/64 R1(config-if)#no sh R1(config-if)#exit R1(config)#ipv6 unicast-routing R1(config)# R2 : Routerena Router#conf t Router(config)#host R2 R2(config)

    2024年02月09日
    浏览(56)
  • IPv6的崛起:新一代网络协议的机遇与挑战

    目录 摘要: 引言: 一、IPv6的地址空间与扩展性 1.1 IPv6简介 1.2 IPv6结构的主要组成部分和特性 二、IPv6的优势: 2.1 庞大的地址空间 2.2 更好的安全性 2.3 更好的移动性支持 2.4 服务质量提升 三、IPv6崛起的挑战 3.1 兼容性问题 3.2 网络设备升级 3.3 配置和管理复杂 3.4 应用层适配

    2024年04月25日
    浏览(48)
  • IPV6地址详解

    ♥️ 作者:小刘在C站 ♥️ 每天分享课堂笔记,一起努力,共赴美好人生! ♥️ 夕阳下,是最美的,绽放。  目录 一.为什么要使用IPv6 二.   ipv4 三.   ipv6 地址,

    2024年02月05日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包