蓝牙™ Mesh子网 桥接
蓝牙™ Mesh子网 桥接
技术概览
发布 : | 1.0.0 |
文件版本 : | 1.0 |
最后更新 : | 2023 年 9 月 19 日 |
作者 : |
马丁-伍利Bluetooth SIG |
Version |
Date |
Author |
Changes |
1.0.0 |
September 19, 2023 |
Martin Woolley, Bluetooth SIG |
Initial version |
备注 Bluetooth Mesh 配置文件 规范已更名,现称为Bluetooth Mesh 协议规范。本文件和相关文件在提及 1.1 版规范时将使用这一名称,但在提及 1.0 版规范时,仍将继续称其为Bluetooth Mesh 配置文件规范。 |
1.背景情况
子网桥接是在蓝牙™ Mesh 协议规范 1.1 版本中引入的。要充分了解蓝牙子网 桥接的功能和优势,有必要了解蓝牙子网 1.0 版本的某些方面。本节将提供相关背景信息,为研究蓝牙子网 桥接功能提供支持。
1.1 子网
蓝牙™ 网状网络由所有单播地址的地址 空间组成。一个蓝牙网状网络可能由一个或多个子网组成,共享这个共同的地址 空间。每个子网 都有一个唯一的网络密钥 网络层密钥 ,如果一个节点在配置时获得了这个网络密钥 ,那么它就是该子网的成员。
一个节点可以拥有一个以上的网络密钥 ,因此也是一个以上子网的成员,但在蓝牙网格配置文件 规范的 1.0 版本中,信息无法从一个子网 传递到另一个子网 。子网之间是完全隔离的。
1.2 区域隔离
通过将网络划分为几个不同的子网,将网络的一部分与另一部分隔离开来的能力具有许多好处。
1.2.1 区域隔离和安全
出于安全考虑,防止一个子网 中的设备与其他子网中的设备进行交互可能是有用的,甚至是必要的。以酒店客房为例,房间内的智能设备可以与同一房间内的其他设备通信,但不能与房间外的设备通信。将酒店每个房间的设备放置在各自的子网 中,可以将每个房间的设备与其他房间的设备隔离,满足酒店客房的安全要求。
图 1 - 酒店客房子网 隔离区
1.2.2 区域隔离和网络效率
子网还可用于将网络流量控制在建筑物的一个区域内。当信息需要中继才能到达所有目的地 节点和使用蓝牙网状网络泛洪 时,这一点尤其有用。子网可被视为在设备组周围设置了一个边界,使信息即使在中继时也不能越过这些边界,从而避免将无关信息中继到没有目标设备所在的网络部分。
这种技术通常用于隔离办公室中的一层与另一层,如图 2 所示。三楼电灯开关发出的信息将由该楼层天花板上的中继节点转发,因为它们属于同一个子网,但上下楼层的中继节点可能会收到开关发出的信息,它们会立即丢弃信息,因此信息不会跨楼层传播。
图 2 - 办公室内的子网
1.3 重放攻击和序列号
恶意设备可以被动接收信息,并在稍后时间重新传输,从而可能导致网络发生未经授权的变化。这种攻击被称为重放攻击。蓝牙™ Mesh 定义了防止重放攻击的重放保护机制。
重放保护涉及所有具有相关联的 唯一性数据值,其中包括一个 24 位序列号 (SEQ),源节点在发送每一条新信息时都必须递增该序列号 (SEQ)。如果一个节点每 5 秒钟发送一次信息,那么 SEQ 值将需要两年多的时间才能循环使用。不过,为了防止这种情况发生,SEQ 值由一个 32 位初始化向量(IV)值扩展,该值在整个网络中共享。每当 SEQ 值有可能耗尽时,IV 就会通过一个名为IV更新 程序自动更新。
32 位 IV 值本身并不包含在报文中。取而代之的是一个称为 IVI 的单个比特字段,该字段表示网络在同一时间可能使用的两个 IV 值中,哪一个与报文有关。
接收设备会记录每个信息源地址上次成功处理信息的 IV 值和 SEQ 值。如果接收到的信息的 IV 值和 SEQ 值组合在数值上不高于从同一来源单播地址接收到的最后一条信息,则该信息将被视为可能的重放攻击而被丢弃。
1.4 对蓝牙™ Mesh 1.0 中子网的评估
Bluetooth Mesh 配置文件 规范 1.0 版本中定义的子网具有一些出色的安全性和网络利用效率优势。但是,由于子网造成的区域隔离的绝对性,有些要求很难满足。如果出于利用效率的考虑,需要使用子网来限制信息在网络无关部分的传输,那么网络规划人员就必须仔细考虑如何使用子网。安装人员必须在首次创建网络时设置所需的子网。
蓝牙网格定向转发(参见蓝牙网格定向转发技术概述文件)提供了一种出色的方法,可将节点间的流量限制在网络的相关部分。子网有时也能达到类似的效果,但子网 区域隔离不能像蓝牙网格定向转发那样精确定向,只能限制选定的设备处理信息。现在,蓝牙网格定向转发被推荐为满足地址 网络利用效率要求的方法。
使用子网作为网络安全机制的区域隔离功能非常强大。但想象一下,一家酒店的每间客房都使用了子网 区域隔离。酒店客房采用了智能技术,可对设备和系统进行手动和自动控制,客人对此感到非常满意。酒店管理层对一个房间的设备不能干扰其他房间的设备感到满意。但是,酒店管理层希望安装一个网关,让每个酒店房间的传感器都能报告入住数据,从而为基于 TCP/IP 的图形用户界面系统提供信息,该系统可无干扰地安排房间清洁和洗衣服务。在使用蓝牙™ Mesh 1.0 子网时,如果不在每个酒店房间安装网关节点,就无法实现这一目标。
2.关于子网 桥接
有时,需要在不同子网的设备之间进行通信,但又不影响子网 提供的区域隔离。蓝牙子网 桥接功能使这成为可能。
2.1 能力和优势
Bluetooth Mesh子网 桥接功能 允许网络使用子网进行区域隔离,但也允许在不同的相邻子网中的特定设备之间有选择地进行通信。
2.1.1 启用子网 桥接
网络规划人员必须决定网络中哪些节点可充当子网 桥,允许两个相邻子网中的某些节点之间进行受控通信。 配置服务器模型的存在表明节点支持蓝牙子网 桥接。
要使节点成为子网 桥接器,必须将名为子网 桥接器的状态 设置为启用。然后,还必须在名为桥接表(Bridging Table)的状态 中填入配置节点蓝牙子网 桥接功能的子网 。
2.1.2 桥接表状态
桥接表(Bridging Table)是一个状态 ,其中包含的条目定义了将执行蓝牙子网 桥接的源地址和目的地 地址。一个条目可定义从一个地址 到另一个地址 的桥接是单向的还是双向的。无论哪种情况,每个桥接表项都包含两个子网中每个子网的网络键的索引值。蓝牙™ 网状网络协议规范第 4.2.42 节提供了桥接表项的完整格式,在图 3 中重复了该格式。
现场 |
大小(位) |
费用项目 |
路线指引 |
8 |
桥接流量的允许方向 |
NetKeyIndex1 |
12 |
第一子网的子网密钥索引 |
NetKeyIndex2 |
12 |
第二子网的子网密钥索引 |
地址1 |
16 |
第一个子网中节点的地址 |
地址2 |
16 |
第二子网节点的地址 |
图 3 - 桥接表状态 条目格式
方向字段的值为 0x01 或 0x02。
0x01 表示只允许单向桥接,对于地址 (SRC)等于地址 1 桥接表项、目的地 地址 目的地址)等于地址 2 的报文,允许报文从第一个子网 转发到第二个子网 。
0x02 表示,对于地址 (SRC)等于地址 2,目的地 地址 (目的地址)等于地址 1 的报文,可以在任一方向上进行桥接,包括从第二个子网 到第一个子网 。
2.1.3子网 桥接和安全
子网可以将网络的不同部分相互隔离,这在某些情况下具有安全优势,可以防止一个子网 中的节点与另一个子网 中的节点通信。
蓝牙网格子网 桥接允许跨子网通信。但桥接表确保这只能发生在特定的源和目的地 地址 对以及特定的子网对之间。例如,在一家酒店里,客人可以按下一个按钮,向客房清洁团队发出他们希望房间得到清洁的信号,而客房清洁团队会通过蓝牙子网 桥接和蓝牙子网定向转发功能,从客人房间所属的子网 向整个酒店发送信息。但客人房间里的其他设备将无法与子网之外的任何其他节点通信。蓝牙网状子网 桥接允许在子网间进行选择性和受控通信,但保留了区域隔离带来的安全优势。
子网 桥以与目的地 节点相同的方式执行重放保护,在子网 桥处理的信息中针对地址 跟踪 IV 和 SEQ 值。如果 IV 和 SEQ 值组合在数值上不高于从特定源地址收到的最后一个桥接值,则会被丢弃。这样,子网 桥接器就能在下一个子网 的目的地 节点之前提供重放保护,保护下一个子网 免受拒绝服务攻击。
2.1.4子网 在行动中架设桥梁
蓝牙网格子网 桥接是在子网 桥接节点内的网络层 进行的。收到信息时,将检查桥接表中是否有地址 1 和地址 2 字段与信息的地址 和目的地 地址 相匹配的条目,或是否有地址 2 包含信息 SRC地址 ,地址 1 包含信息目的地址 地址 ,且 "方向 "字段表示支持双向桥接的条目。还需进一步检查,以核实报文网络 PDU 是否已使用子网源的网络密钥 加密。如果满足这些条件,信息将使用源子网络密钥解密,用目的地 子网 网络密钥重新加密,然后重新传输。如果子网 桥接节点的配置适当,则信息可被重传多次,并在多个子网中传播。
如果信息源和目的地 地址 不在桥接表中的单向或双向桥接条目格式中,则该信息不会被重新传输到其它子网。中继或蓝牙网格定向转发(Bluetooth Mesh Directed Forwarding)仍可能导致信息在当前子网 内重新传输。
2.1.5子网 桥接和定向转发
蓝牙网格定向转发(请参阅蓝牙网格定向转发技术概述文件)可与蓝牙网格子网 桥接一起使用,并涉及两种节点依赖关系。
第一个依赖关系存在于第一个子网 中的源节点与作为第二个子网成员的子网 之间。第二个存在于作为第一个子网 成员的子网 与第二个子网中的目的地 节点之间。
子网桥在节点依赖关系中充当支持节点,并代表其依赖节点执行路径发现和维护程序以及信息转发。
3.关闭
Bluetooth Mesh子网 桥接使需要跨子网的子网的使用更加灵活,设置更加简便,同时不影响安全性。