Pv6具有IPv4所缺乏的特性,这使得它在物联网部署方面具有优势,例如支持大型物联网网络、有助于延长物联网设备的电池寿命,减少其管理和维护负担。那么物联网能否有助于推动企业网络中的IPv6应用?
IPv6拥有很多地址
IPv4的一个突出问题是它可能只支持42亿个地址。据估计,到2022年联网设备的数量将增长到285亿。这是一个巨大的缺口,意味着在部署物联网时,如果没有网络地址转换(network address translation, NAT)这一技术层的介入,大多数的设备都无法连接到互联网。
另一方面,IPv6支持大约340万亿个地址,这足以为每个物联网设备提供通用的唯一IP地址。它可以做到这一点,而无需进一步投资NAT。
IPv6和物联网电池寿命
IPv4在保持物联网电池寿命方面也存在缺陷。因为许多联网设备都是由电池供电的,并且因为物联网网络(例如工厂传感器系统)可以包含数百或数千个设备,所以尽可能长时间地使用电池是一个巨大的优势。想象一下,在许多广泛分散的物联网设备中更换电池所需的时间和精力是巨大的。
使用IPv4,常规广播消息不必要地消耗电池寿命。例如,广播消息用于地址解析协议(ARP)等进程,ARP用于将MAC地址绑定到IPv4地址。它的工作方式是,ARP消息被发送到网络中的每个设备,每个设备必须处理这个数据包,因此消耗一些电池电量,而不管该设备是否需要参与交换。
这种低效率也会破坏整个网络,在短时间内频繁使用广播的情况下,与广播风暴相关的问题是众所周知的,这类事件对物联网网络是有害的。
使用IPv6,没有广播功能。相反,有效的多播通信用于这些一对多通信。IPv6的邻居发现协议(NDP)使用具有请求节点多播地址的高效多播来构建和维护邻居缓存,而不是广播。邻居(NS)数据包仅发送到LAN的/64前缀的一小部分子集,而邻居数据包使用单播发回。
IPv6全节点链路本地多播组地址(FF02::1)与IPv6的广播非常接近,物联网设备尽可能使用单播消息来进一步节省电池电量。
细节:IPv6如何减少使用物联网的电池
IPv6提供了多种方法来动态地为物联网设备分配地址。IPv6节点具有多个地址,不像IPv4节点只有一个单播地址。IPv6节点具有链路本地地址(FE80::/10)和每个接口一个或多个IPv6单播地址。链路本地地址用于“引导”获取单播地址作为路由器请求(RS)消息的源地址,以发现本地路由器。
第一跳路由器将路由器通告(RA)消息发送回全节点多播组(FF02::1),指示本地IPv6/64前缀以及获取其单播地址的方法。基于RA消息中的某些标志和其他选项,节点被告知使用无状态地址自动配置(SLAAC)(RFC 4862),有状态DHCPv6(RFC 8415)或递归DNS服务器(RDNSS)(RFC 8106)。使用哪个是企业网络中经常出现的问题。
对于缺乏运行DHCPv6所需的强大计算能力并且只需要在扁平网络上运行的传感器,SLAAC是一个显而易见的选择。对于企业的台式机和服务器,DHCPv6一直是推荐的,但决定有点模糊。现在有更多操作系统支持RDNSS,包括Android,RDNSS正在成为一种流行的选择。
RA数据包通常每200秒由本地路由器传输一次,以使所有节点都能获知更改信息。加入网络的新节点没有耐心,将一个RS数据包发送到所有路由器链路本地多播组(FF02::2),以了解它们已加入的网络。本地路由器通过向所有节点发送RA来立即响应RS。可以想象,这可以在物联网应用程序中消耗一些可测量的电池寿命,因此创建了控制RAs的选项。
一种选择是为物联网使用更长的RA间隔。物联网设备可能只需要每天接收一次RA消息,甚至更长时间。但是,每当新的物联网设备加入网络时,它就会发送一个RA,触发本地路由器发送的全节点RA组播。
为了进一步限制所有节点的组播数据包,可以将RA更改为发送RS的单个节点的单播数据包。这将阻止任何其他已建立的节点接收多播RA。此“Unicast-RA”功能消除了发送到全节点多播组的RA。这已在Cisco IOS版本15.4(2)T,15.4(2)S,15.2(1)SY1和更高版本中实现,并使用第3层接口命令“ ipv6 nd ra solicited unicast ”进行配置。
创新的IPv6物联网协议
IPv6促进了创新,并且已经有大量开发支持IPv6的物联网协议。以下是关于物联网网络如何使用IPv6的几个示例。
6LoWPAN(IPv6 over Low Power Wireless Personal Area Networks)是一种基于IPv6的低速无线个域网标准,允许IPv6数据包被压缩、封装并分成多个较小的帧,通过IEEE 802.15.4无线网络(RFC 4944和RFC 6282)发送。因此,6LoWPAN需要网关设备(边缘路由器)将本地IPv6网络连接到IoT设备网络。目标是进一步限制IPv6组播的使用,以最大限度地延长电池寿命(RFC 6775)。这些方法由Zigbee协议套件使用。
IETF正在通过像LoRaWAN这样的低功耗广域网和用于使用IPv6的小型嵌入式设备的轻量级实现指导(lwig)来研究IPv6。IETF还创建了用于这些低功耗和有损网络(LLNs)的路由协议。IETF创建了“RPL: IPv6路由协议用于低功耗网络”(RFC 6550)和多播协议用于低功耗网络(MPL) (RFC 7731)。RPL使用IPv6来发现使用IPv6组FF02::1A的所有RPL节点。
IETF已经开发了使用Web和RESTful接口(CoRE)通过IPv6进行物联网设备通信的标准。约束应用协议(CoAP协议)(RFC 7252)定义了这些物联网设备使用公共Web服务的方法。CoAP使用IPv6组播组FF0X::FD(所有CoAP节点)。
移动IPv6(MIPv6)协议(RFC 6275)已被指定多年,作为无约束设备在第3层网络之间转换期间维持其通信的一种方式。
IPv6甚至用于工业物联网制造和机器人网络。精确时间协议(PTP)(IEEE 1588-2008)使用IPv6多播到用于高速运动的精确编排进行时钟同步到亚微秒的精度,PTP使用IPv6组播组FF02::6B和FF0X::181。随着企业继续部署任何类型的物联网应用程序,他们应该探索如何使该系统使用IPv6。