HBONE
**HBONE**(またはHTTP-Based Overlay Network Environment)は、Istioコンポーネント間で使用されるセキュアなトンネリングプロトコルです。HBONEはIstio固有の用語です。これは、単一のmTLS暗号化ネットワーク接続(暗号化トンネル)を介して、多くの異なるアプリケーション接続に関連するTCPストリームを透過的に多重化するためのメカニズムです。
Istioにおける現在の実装では、HBONEプロトコルは3つのオープン標準で構成されています。
HTTP CONNECTはトンネル接続の確立に使用され、mTLSはその接続のセキュリティと暗号化に使用され、HTTP/2はその単一のセキュアで暗号化されたトンネルを介してアプリケーション接続ストリームを多重化し、追加のストリームレベルのメタデータを送信するために使用されます。
セキュリティとテナント
mTLS仕様で強制されているように、各基盤となるトンネル接続には一意の送信元と一意の宛先IDが必要です。これらのIDは、その接続の暗号化を確立するために使用されます。
これは、同じ宛先IDへのHBONEプロトコル経由のアプリケーション接続が、同じ共有された暗号化され保護された基盤となるHTTP/2接続を介して多重化されることを意味します。事実上、その基盤となる専用接続が複数のアプリケーションレベルの接続を処理している場合でも、各一意の送信元と宛先には、専用のセキュアなトンネル接続が必要です。
実装の詳細
Istioの慣例により、ztunnelおよびHBONEプロトコルを理解する他のプロキシは、TCPポート15008でリスナーを公開します。
HBONEはHTTP/2、HTTP CONNECT、およびmTLSの組み合わせに過ぎないため、HBONE対応プロキシ間を流れるHBONEトンネルパケットは次の図のようになります。
HBONEトンネルの重要な特性は、基盤となるアプリケーショントラフィックストリームを何らかの形で変更することなく、元のアプリケーションリクエストを透過的にプロキシできることです。つまり、アプリケーションリクエストを変更することなく、接続に関するメタデータを宛先プロキシに伝えることができます。たとえば、Istio固有のヘッダーをアプリケーショントラフィックに追加する必要がなくなります。
アンビエントモードと標準の進化に伴い、HBONEとHTTPトンネリング(UDPなど)の追加のユースケースは今後検討されます。