Weave のファブリックは、Weave 対応リソースの集まりです。これにより、ユーザーの自宅にある Weave ノードが安全な方法でメッセージを交換できるようになります。
ファブリックは Weave システムの最初のノードによってプロビジョニングされます。プロビジョニングされると、他のノードは Weave 証明書を使用して安全にファブリックに参加できます。 証明書とセキュリティについては後で詳しく説明しますが、Weave でのデバイスのペア設定とファブリック参加は常に安全です。
ファブリック内の各リソースには、Weave アプリケーションで使用する特別な IPv6 アドレスが割り当てられます。どのルーティング ワイヤレス テクノロジーを使うかは関係ありません。 イーサネット、Wi-Fi、スレッド - 各ノードが 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 ノードでは、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 アドレスが得られます。
ファブリックにリソースが結合されると、Weave プロファイルは、ノードの Weave に割り当てられた IPv6 アドレスを使用して、ファブリック内の他のリソースとメッセージをやり取りできます。次に、Weave のメッセージの基本について説明します。
内容のまとめ
学習した内容:
- ファブリック は、ユーザーとストラクチャにサービスを提供するための連携する Weave 対応リソース のコレクションです。
- リソースが常に認証され、ファブリックに安全に結合される
- ファブリック内の各リソースに IPv6 の一意のローカル アドレス を割り当て、Weave で使用できるようにします。
- Weave メッセージ は、基盤となるワイヤレス技術やトランスポートに関係なく、IPv6 アドレス間で渡されます。