Weave ファブリックは、Weave 対応リソースのコレクションです。ユーザーの自宅にある Weave ノードが安全にメッセージを交換するための便利な方法です。
ファブリックは、Weave システムの最初のノードによってプロビジョニングされます。プロビジョニングされると、他のノードは Weave 証明書を使用してファブリックに安全に接続できます。証明書とセキュリティについては後で詳しく説明しますが、Weave ではデバイスのペア設定とファブリックの結合は常に安全です。
ファブリック内の各リソースには、Weave アプリケーションで使用する特別な IPv6 アドレスが割り当てられます。使用するルーティング可能なワイヤレス技術は関係ありません。Ethernet、Wi-Fi、Thread - 各ノードが Weave を実行していて、ファブリックのメンバである限り、メッセージを送受信できます。
例
Wi-Fi と Thread の両方で接続されたリソースで構成されるシンプルなホーム エリア ネットワーク(HAN)があるとします。これらの 2 つのネットワークは、境界ルーターで結合されます。境界ルートは両方のネットワークに参加しており、両方のネットワーク間でトラフィックをルーティングするルーターとして機能します。
各ネットワークのリソースは、標準の IP ルーティング構成を使用して、UDP や TCP などのトランスポート プロトコルを介して相互に通信しますが、プロビジョニングされた Weave ファブリックを使用すると、同じトランスポートを介して Weave メッセージを渡すことができます。
IPv6 アドレス指定
Weave ファブリックでは、ファブリックの各リソースに一意のローカル アドレス(ULA)
を割り当てることで、Weave アプリケーション間でシンプルな IPv6 ルーティングを実現できます。Weave アプリケーションは、このアドレスを使用して Weave メッセージを転送します。ノードの IPv6 Weave アドレスの例を次に示します。
fd00::fab1:2:3e36:13ff:fe33:732e
住所を構成するさまざまな要素を見てみましょう。
グローバル接頭辞
すべての Weave ノードは、fd00::/48
の IPv6 グローバル プレフィックスを使用します。このブロックのアドレスは、HAN などのプライベート ネットワーク内で使用するために、IETF の RFC-4193 で指定されています。
ファブリック ID
ファブリックには、ファブリックのプロビジョニング中にランダムに生成された一意の 64 ビット ID が割り当てられます。この ID は IPv6 グローバル プレフィックスの一部になります。
たとえば、ファブリックに fab1
の Fabric ID が割り当てられている場合、ファブリックのグローバル プレフィックスは次のようになります。
fd00:0000:fab1::/48
ノード ID
ファブリックの各ノードは、IEEE 拡張一意識別子(EUI-64)の形式の Weave ノード ID を割り当てます。ほとんどのノードは MAC アドレスからノード ID を取得します。ノードには 48 ビットまたは 64 ビットの MAC アドレスが割り当てられます。通常、それぞれ Wi-Fi インターフェースまたは 802.15.4 インターフェースに関連付けられます。Weave では、可能な場合はノード ID として 64 ビットの値を使用します。
ノードに 48 ビットの MAC アドレスしかない場合、RFC 4291 に従って、Weave は 16 ビットの値 FF:FE
を中央に挿入して EUI-64 値を作成し、Weave ノード ID として使用します。
たとえば、ノードの MAC アドレスが 48 ビットの 3c:36:13:33:73:2e
の場合、生成される Weave ノード ID は 3c3613fffe33732e
です。
IPv6 アドレスでノード ID を使用するには、7 番目のビット(ユニバーサル/ローカル ビット)を反転してインターフェース ID に変換する必要があります。したがって、3c3613fffe33732e
のノード ID は 3e3613fffe33732e
のインターフェース ID になります。
サブネット
Weave IPv6 アドレスの最後の部分はサブネットです。これは、ネットワーク インターフェースの識別に使用される 16 ビットの値です。これらの値は、基盤となるネットワークによって決まります。たとえば、Wi-Fi や Thread などです。
この例では、サブネットは 0x0002
とします。
すべてを組み合わせる
上記の要素をすべて組み合わせると、Weave IPv6 アドレスが得られます。
リソースがファブリックに結合されると、Weave プロファイルは、ノードの Weave が割り当てた IPv6 アドレスを介して、そのリソースとファブリック内の他のリソース間でメッセージを渡すことができます。次に、Weave でのメッセージングの基本について説明します。
内容のまとめ
学習した内容:
- ファブリック は、ユーザーと構造にサービスを提供するために連携する Weave 対応リソース のコレクションです。
- リソースは常に認証され、ファブリックに安全に接続されます。
- ファブリックの各リソースには、Weave で使用される IPv6 一意のローカル アドレス が割り当てられます。
- 基盤となるワイヤレス テクノロジーやトランスポートに関係なく、Weave メッセージ がこれらの IPv6 アドレス間で渡されます。