Weave Fbric 是一系列支援 Weave 的資源。這項功能可讓使用者家中的 Weave 節點以安全的方式交換訊息。
架構是由 Weave 系統的第一個節點佈建。佈建完成後,其他節點就能使用 Weave 憑證安全地加入結構體。稍後我們會進一步探討憑證和安全性,但請注意,透過 Weave 加入的裝置配對和布料隨時都很安全。
架構中的每個資源都會獲派特殊 IPv6 位址,供 Weave 應用程式使用。你可以使用哪些可路由的無線技術。 乙太網路、Wi-Fi 或 Thread:只要每個節點都執行 Weave,而且為布料成員,就可能收發訊息。
範例
假設您有一個簡單的住家區域網路 (HAN),其中包含透過 Wi-Fi 和 Thread 連線的資源。這兩個網路會透過邊界路由器連結,該路由器會參與這兩個網路,並充當路由器,在兩個網路之間引導流量。
每個網路中的資源會使用各自的標準 IP 轉送設定,透過 UDP 或 TCP 等傳輸通訊協定相互通訊,但是在佈建 Weave 架構的情況下,現在它們可以透過相同的傳輸方式傳送 Weave 訊息。
IPv6 位址
Weave 結構體會為結構體中的每個資源指派 Unique Local Address (ULA)
,讓 Weave 應用程式之間可進行簡單的 IPv6 路由。Weave 應用程式會使用這個位址轉送 Weave 訊息。以下是節點的 IPv6 Weave 位址範例:
fd00::fab1:2:3e36:13ff:fe33:732e
讓我們來看看地址的各個元素。
全域前置字串
所有 Weave 節點都會使用 IPv6 全域前置字串 fd00::/48
。RFC-4193 中的 IETF 會指定此區塊中的位址,用於 HAN 等私人網路。
Fabric ID
在佈建時,系統會為結構體指派隨機產生的 64 位元專屬 ID。這個 ID 會成為 IPv6 全域前置碼的一部分。
舉例來說,如果織物指派的織物 ID 為 fab1
,則織物的全域前置字會變成:
fd00:0000:fab1::/48
節點 ID
結構體中的每個節點都會為自己指派一個 Weave 節點 ID,其格式為 IEEE 擴充專屬 ID (EUI-64)。大多數節點的節點 ID 都會從 MAC 位址衍生而來。節點可能會有 48 位元或 64 位元 MAC 位址,通常分別與 Wi-Fi 或 802.15.4 介面相關聯。我們建議盡可能使用 64 位元值做為節點 ID (如有)。
如果節點只有 48 位元 MAC 位址,根據 RFC 4291,Weave 會在中間插入 FF:FE
的 16 位元值,以建立 EUI-64 值,用於做為 Weave 節點 ID。
舉例來說,如果節點的 MAC 位址是 48 位元 3c:36:13:33:73:2e
,產生的 Weave 節點 ID 就是 3c3613fffe33732e
。
如要在 IPv6 位址中使用節點 ID,您必須翻轉第七個位元 (稱為通用/本機位元),將其轉換為介面 ID。因此,3c3613fffe33732e
的節點 ID 會成為 3e3613fffe33732e
的介面 ID。
子網路
Weave IPv6 位址的最後一部分是子網路,這是一種用來識別網路介面的 16 位元值。這些值是由基礎網路決定。例如 Wi-Fi 或 Thread。
在本例中,假設我們的子網路是 0x0002
。
全面整合使用
將上述所有元素組合起來,即可取得 Weave IPv6 位址:
資源加入 Fabric 後,Weave 設定檔現在可以透過節點的 Weave 指派 IPv6 位址,在該資源與 Fabric 中的其他資源之間傳遞訊息。接下來,我們將介紹 Weave 中的訊息傳送作業。
重點回顧
您學到的內容:
- 結構體 是一組支援 Weave 的資源 ,這些資源會合作為使用者和結構體提供服務
- 資源一律經過驗證,並以安全的方式連接架構
- 系統會為結構體中的每個資源指派 IPv6 專屬本機位址 ,供 Weave 使用
- 無論底層無線技術或傳輸方式為何,Weave 訊息 都會在這些 IPv6 位址之間傳遞