織り生地

織物

Weave のファブリックは、Weave 対応リソースの集まりです。これにより、ユーザーの自宅にある Weave ノードが安全な方法でメッセージを交換できるようになります。

ファブリックは Weave システムの最初のノードによってプロビジョニングされます。プロビジョニングされると、他のノードは Weave 証明書を使用して安全にファブリックに参加できます。 証明書とセキュリティについては後で詳しく説明しますが、Weave でのデバイスのペア設定とファブリック参加は常に安全です。

ファブリック内の各リソースには、Weave アプリケーションで使用する特別な IPv6 アドレスが割り当てられます。どのルーティング ワイヤレス テクノロジーを使うかは関係ありません。 イーサネット、Wi-Fi、スレッド - 各ノードが Weave を実行し、ファブリックのメンバーである限り、メッセージの送受信を行えます。

Wi-Fi と Thread の両方で接続されたリソースで構成されるシンプルなホームエリア ネットワーク(HAN)があるとします。この 2 つのネットワークは境界ルーターによって結合されます。このルーターは、両方のネットワークに参加し、ルーター間でトラフィックをルーティングするルーターとして機能します。

ハン

各ネットワークのリソースは、標準の IP ルーティング構成を使用して、UDP や TCP などのトランスポート プロトコルを介して相互に通信しますが、Weave ファブリックがプロビジョニングされると、同じトランスポートで Weave メッセージを渡すことができます。

Weave を使用した HAN

IPv6 アドレス指定

Weave ファブリックでは、一意のローカル アドレス(ULA) をファブリック内の各リソースに割り当てることで、Weave アプリケーション間の単純な IPv6 ルーティングが可能になります。Weave アプリケーションは、このアドレスを使用して Weave メッセージをルーティングします。

以下は、ノードの IPv6 Weave アドレスの例です。

fd00::fab1:2:3e36:13ff:fe33:732e

ここでは、住所を構成するさまざまな要素について説明します。

グローバル接頭辞

すべての Weave ノードでは、IPv6 グローバル接頭辞として fd00::/48 が使用されます。このブロックのアドレスは、HAN などのプライベート ネットワーク内で使用するために IETF により RFC-4193 に指定されています。

ファブリック ID

ファブリックのプロビジョニング時に、ファブリックにランダムに生成された一意の 64 ビット ID が割り当てられます。この ID は IPv6 グローバル プレフィックスの一部になります。

たとえば、ファブリック ID に fab1 というファブリック ID が割り当てられている場合、ファブリックのグローバル接頭辞は次のようになります。

fd00:0000:fab1::/48

ノード ID

ファブリック内の各ノードは、IEEE Extended Unique Identifier(EUI-64)の形式で Weave ノード ID を自身に割り当てます。ほとんどのノードは MAC アドレスからノード ID を取得します。ノードに 48 ビットまたは 64 ビットの MAC アドレスが割り当てられていて、通常はそれぞれ Wi-Fi または 802.15.4 インターフェースに関連付けられています。Weave では、可能な場合は 64 ビット値をノード ID として使用します。

ノードに 48 ビットの MAC アドレスしかない場合、RFC 4291 に従い、Weave は中間に FF:FE の 16 ビット値を挿入して、Weave ノード ID として使用される EUI-64 値を作成します。

たとえば、ノードの MAC アドレスが 48 ビットの 3c:36:13:33:73:2e である場合、生成される Weave ノード ID は 3c3613fffe33732e です。

ノード ID を IPv6 アドレスで使用するには、7 ビット(ユニバーサル/ローカル ビット)を反転させてインターフェース ID に変換する必要があります。したがって、3c3613fffe33732e のノード ID は 3e3613fffe33732e のインターフェース識別子になります。

サブネット

Weave IPv6 アドレスの最後の部分はサブネットです。これは、ネットワーク インターフェースの識別に使用される 16 ビットの値です。これらの値は、基盤となるネットワークによって決まります。(例: Wi-Fi、スレッド)。

この例では、サブネットが 0x0002 であるとします。

すべてを組み合わせる

上記の要素をすべて合わせると、Weave IPv6 アドレスが得られます。

ファブリック ULA

ファブリックにリソースが結合されると、Weave プロファイルは、ノードの Weave に割り当てられた IPv6 アドレスを使用して、ファブリック内の他のリソースとメッセージをやり取りできます。次に、Weave のメッセージの基本について説明します。

内容のまとめ

学習した内容:

  • ファブリック は、ユーザーとストラクチャにサービスを提供するための連携する Weave 対応リソース のコレクションです。
  • リソースが常に認証され、ファブリックに安全に結合される
  • ファブリック内の各リソースに IPv6 の一意のローカル アドレス を割り当て、Weave で使用できるようにします。
  • Weave メッセージ は、基盤となるワイヤレス技術やトランスポートに関係なく、IPv6 アドレス間で渡されます。