IPv6地址解析详解

本文详细介绍了IPv6的NDP(Neighbor Discovery Protocol)协议,包括NDP的基本功能、五种报文类型(RA、RS、NS、NA、Redirect)以及在地址解析中NS和NA报文的工作原理。NDP在IPv6中起到类似IPv4 ARP的角色,但使用了不同的机制,如基于组播的被请求节点组播地址。此外,文章还通过实例解析了NS和NA报文的封装过程,并提供了抓包验证的结果。
摘要由CSDN通过智能技术生成

我们都知道,为了实现数据包在数据链路层的封装,需要有一个机制来发现网络中IP地址和MAC地址的对应关系。在IPv4协议栈中,该机制为ARP协议,而在IPv6中,该机制的实现是基于NDP(Neighbor Discovery Protocol邻居发现)协议,今天,我就来给大家介绍一下IPv6的NDP协议。
本文涉及到一些IPv6的理论知识,要想读懂本文,您需要又一定的IPv6的基础,如果您对IPv6还不是很熟悉,欢迎查阅一下文章:IPv6报文格式讲解及其科学性探究IPv6地址简介IPv6各地址计算方式汇总

一、NDP协议简介

NDP,Neighbor Dicovery Protocol,邻居发现协议,是在ICMPv6版本定义的一种协议。在IPv4中,ICMP协议主要就是通过PING,检测网络的连通性。而在IPv6中,ICMPv6协议除了用来检测网络连通性外,还需要完成地址解析的任务。因此,如果没有ICMPv4协议,那么在IPv4中可能只是无法使用PING命令而已,但是对于IPv6,如果没有IPv6,可能无法完成网络的互联,因此,ICMPv6协议在IPv6协议栈中起到了越来越重要的作用。
在NDP协议中,一共定义了5种报文:
1、RA报文,即Router Advertisement,路由器公告报文,该报文主要是路由器用来周期性的发布自身的hop limit 、link MTU等消息。
2、RS报文,即Router Solicitation,路由器信息请求报文,该报文用于请求RA报文,当设备刚上线时,可能会使用该报文请求路由器发送RA报文,该报文可以使得路由器立即发送RA报文而不用等待RA周期。
3、NS报文,即Neighbor Solicitation,邻居请求报文,该报文用于请求地址解析。
4、NA报文,即Neighbor Advertisements,邻居公告报文,该报文用于答复NS报文,完成地址解析和报文刷新等功能。
5、Redirect报文,当路由器发现更好的报文转发路径时,会使用该报文通知其他设备。
而要完成IPv6的地址解析功能,所用到的就是NS和NA报文。在IPv6实现地址解析,与IPv4有两点很大的不同:
①IPv4的ARP协议是链路层封装协议,没有涉及到IP地址的概念,而IPv6实现的地址解析是网络层协议,在发送NS和NA报文时,需要封装源IP地址和目的IP地址。
②IPv4中,ARP协议使用了广播的MAC地址,而在IPv6中,因为没有广播的定义,因此在IPv6中在进行地址解析的时候,所有的广播功能实现都是基于组播,而使用的组播报文,就是在下面介绍的被请求节点组播报文。

二、被请求节点组播地址简介

被请求节点组播地址是IPv6中组播地址的一种。该中形式的组播在scope字段为2,因此该组播地址前面都是一样的,为:
ff02::1:ff
该种形式的组播只有后24bit不同。并且后面的24bit的具体数值,就是该地址所对应的IPv6单播地址的后24bit。有关该地址的计算详情请见IPv6各地址计算方式汇总
在IPv6实现地址解析的时候,都是先由被解析一方的IPv6单播地址,计算出该地址对应的被请求节点组播地址,然后再由该地址计算出组播MAC地址,最后完成封装的。

三、NS、NA报文详解

尽管IPv6的地址解析实现与IPv4有很多的不同,但是其基本原理都是一样的,他们的目的都是询问一个IP地址所对应的MAC地址。在本节,我将从NS和NA报文的细节入手,还原IPv6地址解析的全过程:
对于发送NS报文的一方,必然是要向同网段的IPv6地址尝试发数据包的一方,如果该设备不知道目的IPv6地址所对应的MAC地址,就无法完成数据包在数据链路层的封装,因此在发送数据包之前,他就必须先发送NS数据包,来询问该IPv6地址所对应的MAC地址。
在NS报文中,完成上述功能最重要的是target字段和option字段,这就类似于IPv4中ARP的源目MAC地址和源目IP地址相似。target字段就是要解析的IP地址,而option字段就是发送方的MAC地址。NS和NA报文,就是通过这两个字段,以及源目IP地址,来实现的地址解析功能,下面的讲解就着重介绍一下NS和NA报文中这两个字段的封装。
假设网络拓扑如下所示:
在这里插入图片描述
假设R1要PING R2
NS报文:
对于R1发送给的NS报文来说,源IP地址肯定是自己的IP地址,即2000::1,而目的IP地址则要填写R2的IPv6地址对应的被请求节点组播地址,很容易计算得到该地址为ff02::1:ff00:2。在ICMPv6报文中,target字段为R2 的IPv6地址,即2000::2,而option字段为R1的MAC地址。
因此,最后得到的NS报文为:

源MAC:R1的MAC地址
目的MAC:3333:ff00:2
	源IP:2000::1
	目的IP:ff02::1:ff00:2
	ICMP:
		target:2000::2
		option:R1的MAC地址

NA报文:
对于R2给R1回复的NA报文,源IP地址是R2自己的IPv6地址,目的IP地址是R1的IP地址,即2000::1,target还是R2的IPv6地址——2000::2,option为R2的MAC地址。
因此,最后的NA报文为:

源MAC:R2的MAC地址
目的MAC:R1的MAC地址
	源IP:2000::2
	目的IP:2000::1
	ICMP:
		target:2000::2
		option:R2的MAC地址

四、抓包验证

最后,我采用一个小的实验,实现了NS和NA报文完成地址解析的功能,在实验过程中,抓取数据包如下:
NS、NA数据包如下:
在这里插入图片描述
在NS报文中target和option字段如下:
在这里插入图片描述
在NA报文中target和option字段如下:
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118652282

中文高清 PDF 格式 目 录 译者序 前言 第一部分 IP基础知识 第1章 为何要升级IP 1 1.1 IP的影响 1 1.1.1 什么是IP 2 1.1.2 IP应用在哪些地方 3 1.1.3 有多少人在使用IP 3 1.1.4 当IP发生变化时会产生哪些影响 4 1.2 IPv4的局限性及其缺点 4 1.2.1 IP地址空间危机 5 1.2.2 IP性能议题 5 1.2.3 IP安全性议题 6 1.2.4 自动配置 6 1.3 紧迫感 7 第2章 TCP/IP网络互联简介 8 2.1 网络互联问题 8 2.2 分层网络互联模型 9 2.2.1 OSI模型 10 2.2.2 Internet模型 10 2.2.3 封装 11 2.3 IP 12 2.3.1 IP寻址 13 2.3.2 IP头 15 2.3.3 数据报的转移 17 2.4 ICMP 18 2.5 选路、传输和应用协议 18 2.5.1 选路协议 19 2.5.2 传输协议 19 2.5.3 应用协议 19 第3章 IPv4的问题 20 3.1 修改还是替换 20 3.2 过渡还是不过渡 26 第4章 通向IPng之路 27 4.1 概念的诞生 27 4.1.1 对Internet将来的估计 27 4.1.2 Internet发展中需要考虑的领域 28 4.2 第一回合 29 4.3 拾遗 31 4.4 IPv6,第一回合 32 4.5 IPv6,第二回合 32 第二部分 IPv6细节 第5章 IPv6的成型 33 5.1 IPv6 33 5.1.1 变化概述 33 5.1.2 包头结构 35 5.1.3 IPv4与IPv6的比较 36 5.1.4 流标签 37 5.1.5 业务流类别 37 5.1.6 分段 38 5.1.7 扩展头 39 5.2 ICMPv6 40 第6章 IPv6寻址 43 6.1 地址 43 6.1.1 地址表达方式 43 6.1.2 寻址模型 44 6.1.3 地址空间 45 6.2 地址类型 46 6.2.1 广播路在何方 46 6.2.2 单播 46 6.2.3 单播地址格式 47 6.2.4 组播 51 6.2.5 泛播 53 第7章 IPv6扩展头 54 7.1 扩展头 54 7.2 扩展头的用法 54 7.2.1 扩展头的标识 55 7.2.2 扩展头的顺序 56 7.2.3 建立新的选项 56 7.2.4 选项扩展头 56 7.2.5 选项 57 7.3 逐跳选项 58 7.4 选路头 59 7.5 分段头 59 7.6 目的地选项 60 第8章 IPv6选路 62 8.1 地址对IP网络的影响 62 8.1.1 标识符和定位符 62 8.1.2 地址分配、无缝互操作和网络 拓扑 64 8.2 选路问题 65 第9章 IPv6身份验证和安全性 69 9.1 为IP增加安全性 69 9.1.1 安全性目标 69 9.1.2 RFC 1825及建议的更新 70 9.2 IPsec 70 9.2.1 加密和身份验证算法 71 9.2.2 安全性关联 73 9.2.3 密钥管理 74 9.2.4 实现IPsec 74 9.2.5 隧道模式与透明模式 75 9.3 IPv6安全性头 76 9.3.1 身份验证头 76 9.3.2 封装安全性净荷头 78 第10章 相关的下一代协议 80 10.1 协议的层次 80 10.1.1 应用层 80 10.1.2 传输层 80 10.1.3 链路层 81 10.2 IPv6域名系统扩展 81 10.3 地址解析协议和邻居发现 82 第11章 自动配置和移动IP 84 11.1 IPv6的即插即用 84 11.1.1 状态自动配置与无状态自动 配置 84 11.1.2 IPv6无状态自动配置 85 11.1.3 BOOTP和DHCP 86 11.1.4 DHCPv6 86 11.2 移动网络技术 86 11.2.1 IPv4中的移动IP 87 11.2.2 IPv6中的移动IP 87 第三部分 IP过渡和应用 第12章 IP过渡策略 89 12.1 IPv6协议隧道方法 89 12.1.1 与IPv4兼容的IPv6地址 90 12.1.2 配置隧道和自动隧道 90 12.1.3 IPv6隧道类型 90 12.2 IPv4/IPv6双栈方法 91 12.3 IPv6地址分配 92 12.4 6BONE 93 第13章 IPv6解决方案 94 13.1 需要支持IPv6的产品 94 13.2 正在开发IPv6产品的公司 94 13.3 对IPv6的期待 95 附录A 与IPv6有关的RFC索引 97 附录B RFC精选 100
### 回答1: IPv6 DHCP池是用于IPv6网络中分配IPv6地址和其他配置参数的资源池。DHCP是动态主机配置协议,它允许设备在加入网络时自动获取各种网络配置。 IPv6 DHCP池包含了一组可用的IPv6地址和其他配置参数,比如网关、DNS服务器和域名等。当设备加入网络时,它可以向DHCP服务器发送一个请求,从这个池中获取一个可用的IPv6地址和其他配置参数。 IPv6 DHCP池的详解包括以下内容: 1. IPv6地址分配:DHCP服务器从IPv6地址池中选择一个可用的IPv6地址分配给设备。IPv6地址池通常包含一系列连续的IPv6地址,DHCP服务器按顺序从中选择一个地址分配给设备。 2. 其他配置参数:除了IPv6地址之外,DHCP服务器还可以为设备提供其他配置参数。这些参数可以包括默认网关、DNS服务器、域名、MTU和其他自定义选项等。设备可以使用这些配置参数来正确配置自己的网络连接。 3. 地址回收和再分配:当设备离开网络或释放IPv6地址时,该地址将会被收回并重新加入IPv6地址池中。这样,当新设备加入网络时,它可以获取到一个之前被释放的地址,提高了地址资源的利用率。 4. 配置控制:DHCP服务器可以通过控制IPv6地址池中可用地址的数量来限制网络中设备的数量。通过配置控制,管理员可以确保网络资源的合理分配和管理。 可以说,IPv6 DHCP池为IPv6网络中设备的自动配置提供了一种简单而有效的方法。管理员可以通过配置和管理IPv6 DHCP池来确保设备能够获得正确的网络配置,并提高IP地址资源的利用率。 ### 回答2: IPv6 DHCP池是一种IPv6地址分配管理工具,它允许网络管理员为使用IPv6协议的设备动态分配全局唯一的IPv6地址IPv6 DHCP池包含一系列IP地址,这些地址可以被DHCP服务器分配给设备。DHCP服务器首先为设备分配一个IPv6地址,然后为其分配其他网络配置信息,例如子网掩码、默认网关和DNS服务器地址等。 IPv6 DHCP池的详解包括以下几个方面: 1. 子网和地址范围:管理员需要指定一个包含IPv6地址的子网,并为其中的地址范围设置起始地址和结束地址。DHCP服务器将从此范围内为设备动态分配IPv6地址。 2. 端口配置:DHCP服务器需要配置网络接口,以便接收和发送IPv6 DHCP消息。通常,服务器的端口将与需要进行地址分配的子网进行绑定。 3. 地址分配策略:管理员可以根据实际需求设置不同的分配策略。例如,管理员可以选择按照设备的MAC地址、设备类型或其他标识符来分配IPv6地址。 4. 地址池选项:管理员可以配置其他选项,如掩码长度、地址预留、地址重用等。这些选项可以根据网络需求进行调整。 5. 协议支持:IPv6 DHCP池通常支持各种IPv6协议,如SLAAC(Stateless Address Autoconfiguration)和DHCPv6(Dynamic Host Configuration Protocol for IPv6)。DHCPv6提供了更灵活的地址分配和配置选项。 总之,IPv6 DHCP池是一种用于动态分配IPv6地址和配置信息的工具,可以方便地为使用IPv6的设备提供网络连接。通过合理配置不同的参数和选项,管理员可以根据网络需求实现灵活和高效的IPv6地址分配。 ### 回答3: IPv6 DHCP池是用于分配IPv6地址的一组地址范围。DHCP代表动态主机配置协议,它是一种网络协议,允许设备自动获得IP地址和其他网络配置信息,而无需手动配置。IPv6是下一代互联网协议,提供了更大的地址空间和更好的网络性能。 当IPv6 DHCP服务配置为DHCP池模式时,它会将一组IPv6地址范围分配给设备。池中的每个地址范围都可以包含多个可用的IPv6地址。当设备连接到网络时,它会向DHCP服务器发送一个地址请求,DHCP服务器会从池中选择一个可用的IPv6地址并将其分配给设备。这个过程使得网络管理员能够轻松地管理和分配IPv6地址,而无需手动为每个设备配置地址IPv6 DHCP池的一些常见配置选项包括: - IPv6地址范围:指定用于分配的IPv6地址范围。这个范围可以是连续的地址段,也可以是多个不连续的地址段。 - 地址租期:指定分配给设备的IPv6地址的有效期。设备在租期到期之前必须续约或重新请求地址。 - DNS服务器:指定分配给设备的DNS服务器的IPv6地址。这样设备就可以解析域名和访问互联网。 - 默认网关:指定设备的IPv6默认网关的地址。默认网关用于将设备的数据发送到其他网络。 - 附加选项:可以添加其他自定义配置选项,例如IPv6前缀长度或其他网络参数。 使用IPv6 DHCP池可以简化IPv6地址分配过程,提高网络管理效率。它允许网络管理员集中管理大量设备的IPv6地址,并自动分配这些地址给设备。此外,IPv6 DHCP池还可以通过指定其他网络配置选项,如DNS服务器和默认网关,为设备提供更好的网络连接和互联网访问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值